diff --git a/integration-tests/worker/CHANGELOG.md b/integration-tests/worker/CHANGELOG.md index 59c45bf4b..495dfa912 100644 --- a/integration-tests/worker/CHANGELOG.md +++ b/integration-tests/worker/CHANGELOG.md @@ -1,5 +1,14 @@ # @openfn/integration-tests-worker +## 1.0.95 + +### Patch Changes + +- 84bebf4: Fix an issue where certain error messages are badly processed the runtime & worker. This resulted in cryptic errors like "src.js is not in the SourceMap". + - @openfn/engine-multi@1.6.13 + - @openfn/lightning-mock@2.2.8 + - @openfn/ws-worker@1.15.4 + ## 1.0.94 ### Patch Changes diff --git a/integration-tests/worker/package.json b/integration-tests/worker/package.json index 66903fe7f..45b604649 100644 --- a/integration-tests/worker/package.json +++ b/integration-tests/worker/package.json @@ -1,7 +1,7 @@ { "name": "@openfn/integration-tests-worker", "private": true, - "version": "1.0.94", + "version": "1.0.95", "description": "Lightning WOrker integration tests", "author": "Open Function Group ", "license": "ISC", diff --git a/integration-tests/worker/test/exit-reasons.test.ts b/integration-tests/worker/test/exit-reasons.test.ts index 8ed4a4c27..8088ed244 100644 --- a/integration-tests/worker/test/exit-reasons.test.ts +++ b/integration-tests/worker/test/exit-reasons.test.ts @@ -53,6 +53,30 @@ test('crash: syntax error', async (t) => { t.regex(error_message, /Unexpected token \(1:9\)$/); }); +// https://github.com/OpenFn/kit/issues/1045 +test('crash: reference error', async (t) => { + const attempt = { + id: crypto.randomUUID(), + jobs: [ + { + name: 'x', // important! + adaptor: '@openfn/language-common@latest', + body: 'fn((s) => s.err.map(s => s))', + }, + ], + }; + + const result = await run(attempt); + + const { reason, error_type, error_message } = result; + t.is(reason, 'fail'); + t.is(error_type, 'RuntimeError'); + t.regex( + error_message, + /TypeError: Cannot read properties of undefined \(reading \'map\'\)/ + ); +}); + // https://github.com/OpenFn/kit/issues/758 test('crash: job not found', async (t) => { lightning.addDataclip('x', {}); diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index cb7f015ee..0f5054bb1 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,12 @@ # @openfn/cli +## 1.15.2 + +### Patch Changes + +- Updated dependencies [84bebf4] + - @openfn/runtime@1.7.3 + ## 1.15.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 052f99de5..8201685f5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/cli", - "version": "1.15.1", + "version": "1.15.2", "description": "CLI devtools for the OpenFn toolchain", "engines": { "node": ">=18", diff --git a/packages/engine-multi/CHANGELOG.md b/packages/engine-multi/CHANGELOG.md index 09e2e8ef2..4c664fda3 100644 --- a/packages/engine-multi/CHANGELOG.md +++ b/packages/engine-multi/CHANGELOG.md @@ -1,5 +1,12 @@ # engine-multi +## 1.6.13 + +### Patch Changes + +- Updated dependencies [84bebf4] + - @openfn/runtime@1.7.3 + ## 1.6.12 ### Patch Changes diff --git a/packages/engine-multi/package.json b/packages/engine-multi/package.json index 9af5df66d..76c9e7f5f 100644 --- a/packages/engine-multi/package.json +++ b/packages/engine-multi/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/engine-multi", - "version": "1.6.12", + "version": "1.6.13", "description": "Multi-process runtime engine", "main": "dist/index.js", "type": "module", diff --git a/packages/lightning-mock/CHANGELOG.md b/packages/lightning-mock/CHANGELOG.md index 8b102324d..a88ef7466 100644 --- a/packages/lightning-mock/CHANGELOG.md +++ b/packages/lightning-mock/CHANGELOG.md @@ -1,5 +1,13 @@ # @openfn/lightning-mock +## 2.2.8 + +### Patch Changes + +- Updated dependencies [84bebf4] + - @openfn/runtime@1.7.3 + - @openfn/engine-multi@1.6.13 + ## 2.2.7 ### Patch Changes diff --git a/packages/lightning-mock/package.json b/packages/lightning-mock/package.json index 5b9f1af33..c23c17395 100644 --- a/packages/lightning-mock/package.json +++ b/packages/lightning-mock/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/lightning-mock", - "version": "2.2.7", + "version": "2.2.8", "private": true, "description": "A mock Lightning server", "main": "dist/index.js", diff --git a/packages/runtime/CHANGELOG.md b/packages/runtime/CHANGELOG.md index 5ab835c6d..3408cf143 100644 --- a/packages/runtime/CHANGELOG.md +++ b/packages/runtime/CHANGELOG.md @@ -1,5 +1,11 @@ # @openfn/runtime +## 1.7.3 + +### Patch Changes + +- 84bebf4: Fix an issue where certain error messages are badly processed the runtime & worker. This resulted in cryptic errors like "src.js is not in the SourceMap". + ## 1.7.2 ### Patch Changes diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 75fc92a49..4b9a95112 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/runtime", - "version": "1.7.2", + "version": "1.7.3", "description": "Job processing runtime.", "type": "module", "exports": { diff --git a/packages/runtime/src/util/sourcemap-errors.ts b/packages/runtime/src/util/sourcemap-errors.ts index 331bc5140..7c91ade65 100644 --- a/packages/runtime/src/util/sourcemap-errors.ts +++ b/packages/runtime/src/util/sourcemap-errors.ts @@ -26,8 +26,8 @@ export default async (job: Job, error: RTError) => { } if (error.pos && !isNaN(error.pos.line!)) { - // TODO how to handle file name properly here? - const src = smc.sourceContentFor('src.js')!.split('\n'); + const fileName = job.name ? `${job.name}.js` : 'src.js'; + const src = smc.sourceContentFor(fileName)!.split('\n'); const line = src[error.pos.line! - 1]; error.pos.src = line; } diff --git a/packages/runtime/test/util/sourcemap-errors.test.ts b/packages/runtime/test/util/sourcemap-errors.test.ts index f12a71a7e..031aa648a 100644 --- a/packages/runtime/test/util/sourcemap-errors.test.ts +++ b/packages/runtime/test/util/sourcemap-errors.test.ts @@ -6,9 +6,9 @@ import { RTError } from '../../src'; const b = recast.types.builders; // compile an expression into a function -const compile = (src: string) => { +const compile = (src: string, sourceFileName = 'src.js') => { const ast = recast.parse(src, { - sourceFileName: 'src.js', + sourceFileName, }); // take the expression and wrap it in a function declaration @@ -22,12 +22,12 @@ const compile = (src: string) => { ast.program.body.push(fn); return recast.print(fn, { - sourceMapName: 'src.map.js', + sourceMapName: `${sourceFileName.replace('.js', '.map.js')}`, }); }; test('should write the step name to the error', async (t) => { - const { code, map } = compile('x + 1'); + const { code, map } = compile('x + 1', 'yyy.js'); // create a fake job const job = { diff --git a/packages/ws-worker/CHANGELOG.md b/packages/ws-worker/CHANGELOG.md index 835c95f54..7a474503e 100644 --- a/packages/ws-worker/CHANGELOG.md +++ b/packages/ws-worker/CHANGELOG.md @@ -1,5 +1,13 @@ # ws-worker +## 1.15.4 + +### Patch Changes + +- Updated dependencies [84bebf4] + - @openfn/runtime@1.7.3 + - @openfn/engine-multi@1.6.13 + ## 1.15.3 ### Patch Changes diff --git a/packages/ws-worker/package.json b/packages/ws-worker/package.json index 9837e269c..b7be5260b 100644 --- a/packages/ws-worker/package.json +++ b/packages/ws-worker/package.json @@ -1,6 +1,6 @@ { "name": "@openfn/ws-worker", - "version": "1.15.3", + "version": "1.15.4", "description": "A Websocket Worker to connect Lightning to a Runtime Engine", "main": "dist/index.js", "type": "module",