@workflow/builders 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apply-swc-transform.d.ts +7 -2
- package/dist/apply-swc-transform.d.ts.map +1 -1
- package/dist/apply-swc-transform.js +10 -4
- package/dist/base-builder-logging.test.d.ts +2 -0
- package/dist/base-builder-logging.test.d.ts.map +1 -0
- package/dist/base-builder-logging.test.js +99 -0
- package/dist/base-builder.d.ts +37 -14
- package/dist/base-builder.d.ts.map +1 -1
- package/dist/base-builder.js +301 -60
- package/dist/config-helpers.d.ts +2 -0
- package/dist/config-helpers.d.ts.map +1 -1
- package/dist/config-helpers.js +62 -1
- package/dist/config-helpers.test.d.ts +2 -0
- package/dist/config-helpers.test.d.ts.map +1 -0
- package/dist/config-helpers.test.js +17 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +18 -5
- package/dist/constants.test.js +7 -1
- package/dist/fast-discovery.d.ts +14 -0
- package/dist/fast-discovery.d.ts.map +1 -0
- package/dist/fast-discovery.js +649 -0
- package/dist/fast-discovery.test.d.ts +2 -0
- package/dist/fast-discovery.test.d.ts.map +1 -0
- package/dist/fast-discovery.test.js +376 -0
- package/dist/get-input-files.test.js +34 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/module-specifier.d.ts +13 -0
- package/dist/module-specifier.d.ts.map +1 -1
- package/dist/module-specifier.js +20 -1
- package/dist/standalone.d.ts.map +1 -1
- package/dist/standalone.js +4 -4
- package/dist/step-source-registration.test.d.ts +2 -0
- package/dist/step-source-registration.test.d.ts.map +1 -0
- package/dist/step-source-registration.test.js +82 -0
- package/dist/swc-esbuild-plugin.d.ts +1 -0
- package/dist/swc-esbuild-plugin.d.ts.map +1 -1
- package/dist/swc-esbuild-plugin.js +5 -3
- package/dist/swc-esbuild-plugin.test.js +25 -3
- package/dist/transform-utils.d.ts.map +1 -1
- package/dist/transform-utils.js +45 -6
- package/dist/transform-utils.test.js +92 -1
- package/dist/types.d.ts +9 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/vercel-build-output-api.d.ts.map +1 -1
- package/dist/vercel-build-output-api.js +8 -8
- package/dist/workflows-extractor.js +8 -3
- package/dist/workflows-extractor.test.d.ts +2 -0
- package/dist/workflows-extractor.test.d.ts.map +1 -0
- package/dist/workflows-extractor.test.js +70 -0
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows-extractor.test.d.ts","sourceRoot":"","sources":["../src/workflows-extractor.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { mkdtemp, rm, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
5
|
+
import { extractWorkflowGraphs } from './workflows-extractor.js';
|
|
6
|
+
describe('extractWorkflowGraphs', () => {
|
|
7
|
+
let tempDir;
|
|
8
|
+
afterEach(async () => {
|
|
9
|
+
vi.restoreAllMocks();
|
|
10
|
+
if (tempDir) {
|
|
11
|
+
await rm(tempDir, { recursive: true, force: true });
|
|
12
|
+
tempDir = undefined;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
it('parses workflowCode template literals with unicode-escape identifiers', async () => {
|
|
16
|
+
tempDir = await mkdtemp(join(tmpdir(), 'workflow-builders-'));
|
|
17
|
+
const bundlePath = join(tempDir, 'workflow-bundle.js');
|
|
18
|
+
const consoleError = vi
|
|
19
|
+
.spyOn(console, 'error')
|
|
20
|
+
.mockImplementation(() => { });
|
|
21
|
+
await writeFile(bundlePath, [
|
|
22
|
+
'const workflowCode = `',
|
|
23
|
+
'function workflow() {',
|
|
24
|
+
' var DEBURR_MAP = new Map(Object.entries({\\\\u00C6: "Ae"}));',
|
|
25
|
+
' return DEBURR_MAP;',
|
|
26
|
+
'}',
|
|
27
|
+
'workflow.workflowId = "workflow//./input.js//workflow";',
|
|
28
|
+
'`;',
|
|
29
|
+
].join('\n'));
|
|
30
|
+
await expect(extractWorkflowGraphs(bundlePath)).resolves.toEqual({
|
|
31
|
+
'./input.js': {
|
|
32
|
+
workflow: expect.objectContaining({
|
|
33
|
+
workflowId: 'workflow//./input.js//workflow',
|
|
34
|
+
}),
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
38
|
+
});
|
|
39
|
+
it('extracts step nodes when step proxies include pure annotations', async () => {
|
|
40
|
+
tempDir = await mkdtemp(join(tmpdir(), 'workflow-builders-'));
|
|
41
|
+
const bundlePath = join(tempDir, 'workflow-bundle.js');
|
|
42
|
+
await writeFile(bundlePath, [
|
|
43
|
+
'var stepOne = globalThis[/* @__PURE__ */ Symbol.for("WORKFLOW_USE_STEP")]("step//./input.ts//stepOne");',
|
|
44
|
+
'async function testWorkflow(input) {',
|
|
45
|
+
' const output = await stepOne(input);',
|
|
46
|
+
' return output;',
|
|
47
|
+
'}',
|
|
48
|
+
'testWorkflow.workflowId = "workflow//./input.ts//testWorkflow";',
|
|
49
|
+
].join('\n'));
|
|
50
|
+
await expect(extractWorkflowGraphs(bundlePath)).resolves.toEqual({
|
|
51
|
+
'./input.ts': {
|
|
52
|
+
testWorkflow: expect.objectContaining({
|
|
53
|
+
workflowId: 'workflow//./input.ts//testWorkflow',
|
|
54
|
+
graph: expect.objectContaining({
|
|
55
|
+
nodes: expect.arrayContaining([
|
|
56
|
+
expect.objectContaining({
|
|
57
|
+
type: 'step',
|
|
58
|
+
data: expect.objectContaining({
|
|
59
|
+
label: 'stepOne',
|
|
60
|
+
stepId: 'step//./input.ts//stepOne',
|
|
61
|
+
}),
|
|
62
|
+
}),
|
|
63
|
+
]),
|
|
64
|
+
}),
|
|
65
|
+
}),
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3dzLWV4dHJhY3Rvci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dvcmtmbG93cy1leHRyYWN0b3IudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFakUsUUFBUSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtJQUNyQyxJQUFJLE9BQTJCLENBQUM7SUFFaEMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ25CLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUVyQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwRCxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1RUFBdUUsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyRixPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDdkQsTUFBTSxZQUFZLEdBQUcsRUFBRTthQUNwQixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQzthQUN2QixrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztRQUVoQyxNQUFNLFNBQVMsQ0FDYixVQUFVLEVBQ1Y7WUFDRSx3QkFBd0I7WUFDeEIsdUJBQXVCO1lBQ3ZCLGdFQUFnRTtZQUNoRSxzQkFBc0I7WUFDdEIsR0FBRztZQUNILHlEQUF5RDtZQUN6RCxJQUFJO1NBQ0wsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2IsQ0FBQztRQUVGLE1BQU0sTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUMvRCxZQUFZLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsVUFBVSxFQUFFLGdDQUFnQztpQkFDN0MsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdFQUFnRSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlFLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUV2RCxNQUFNLFNBQVMsQ0FDYixVQUFVLEVBQ1Y7WUFDRSx5R0FBeUc7WUFDekcsc0NBQXNDO1lBQ3RDLHdDQUF3QztZQUN4QyxrQkFBa0I7WUFDbEIsR0FBRztZQUNILGlFQUFpRTtTQUNsRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDYixDQUFDO1FBRUYsTUFBTSxNQUFNLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQy9ELFlBQVksRUFBRTtnQkFDWixZQUFZLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO29CQUNwQyxVQUFVLEVBQUUsb0NBQW9DO29CQUNoRCxLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO3dCQUM3QixLQUFLLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQzs0QkFDNUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dDQUN0QixJQUFJLEVBQUUsTUFBTTtnQ0FDWixJQUFJLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO29DQUM1QixLQUFLLEVBQUUsU0FBUztvQ0FDaEIsTUFBTSxFQUFFLDJCQUEyQjtpQ0FDcEMsQ0FBQzs2QkFDSCxDQUFDO3lCQUNILENBQUM7cUJBQ0gsQ0FBQztpQkFDSCxDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkdGVtcCwgcm0sIHdyaXRlRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IGV4dHJhY3RXb3JrZmxvd0dyYXBocyB9IGZyb20gJy4vd29ya2Zsb3dzLWV4dHJhY3Rvci5qcyc7XG5cbmRlc2NyaWJlKCdleHRyYWN0V29ya2Zsb3dHcmFwaHMnLCAoKSA9PiB7XG4gIGxldCB0ZW1wRGlyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgYWZ0ZXJFYWNoKGFzeW5jICgpID0+IHtcbiAgICB2aS5yZXN0b3JlQWxsTW9ja3MoKTtcblxuICAgIGlmICh0ZW1wRGlyKSB7XG4gICAgICBhd2FpdCBybSh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB0ZW1wRGlyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3BhcnNlcyB3b3JrZmxvd0NvZGUgdGVtcGxhdGUgbGl0ZXJhbHMgd2l0aCB1bmljb2RlLWVzY2FwZSBpZGVudGlmaWVycycsIGFzeW5jICgpID0+IHtcbiAgICB0ZW1wRGlyID0gYXdhaXQgbWtkdGVtcChqb2luKHRtcGRpcigpLCAnd29ya2Zsb3ctYnVpbGRlcnMtJykpO1xuICAgIGNvbnN0IGJ1bmRsZVBhdGggPSBqb2luKHRlbXBEaXIsICd3b3JrZmxvdy1idW5kbGUuanMnKTtcbiAgICBjb25zdCBjb25zb2xlRXJyb3IgPSB2aVxuICAgICAgLnNweU9uKGNvbnNvbGUsICdlcnJvcicpXG4gICAgICAubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHt9KTtcblxuICAgIGF3YWl0IHdyaXRlRmlsZShcbiAgICAgIGJ1bmRsZVBhdGgsXG4gICAgICBbXG4gICAgICAgICdjb25zdCB3b3JrZmxvd0NvZGUgPSBgJyxcbiAgICAgICAgJ2Z1bmN0aW9uIHdvcmtmbG93KCkgeycsXG4gICAgICAgICcgIHZhciBERUJVUlJfTUFQID0gbmV3IE1hcChPYmplY3QuZW50cmllcyh7XFxcXFxcXFx1MDBDNjogXCJBZVwifSkpOycsXG4gICAgICAgICcgIHJldHVybiBERUJVUlJfTUFQOycsXG4gICAgICAgICd9JyxcbiAgICAgICAgJ3dvcmtmbG93LndvcmtmbG93SWQgPSBcIndvcmtmbG93Ly8uL2lucHV0LmpzLy93b3JrZmxvd1wiOycsXG4gICAgICAgICdgOycsXG4gICAgICBdLmpvaW4oJ1xcbicpXG4gICAgKTtcblxuICAgIGF3YWl0IGV4cGVjdChleHRyYWN0V29ya2Zsb3dHcmFwaHMoYnVuZGxlUGF0aCkpLnJlc29sdmVzLnRvRXF1YWwoe1xuICAgICAgJy4vaW5wdXQuanMnOiB7XG4gICAgICAgIHdvcmtmbG93OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgd29ya2Zsb3dJZDogJ3dvcmtmbG93Ly8uL2lucHV0LmpzLy93b3JrZmxvdycsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBleHBlY3QoY29uc29sZUVycm9yKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnZXh0cmFjdHMgc3RlcCBub2RlcyB3aGVuIHN0ZXAgcHJveGllcyBpbmNsdWRlIHB1cmUgYW5ub3RhdGlvbnMnLCBhc3luYyAoKSA9PiB7XG4gICAgdGVtcERpciA9IGF3YWl0IG1rZHRlbXAoam9pbih0bXBkaXIoKSwgJ3dvcmtmbG93LWJ1aWxkZXJzLScpKTtcbiAgICBjb25zdCBidW5kbGVQYXRoID0gam9pbih0ZW1wRGlyLCAnd29ya2Zsb3ctYnVuZGxlLmpzJyk7XG5cbiAgICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgICBidW5kbGVQYXRoLFxuICAgICAgW1xuICAgICAgICAndmFyIHN0ZXBPbmUgPSBnbG9iYWxUaGlzWy8qIEBfX1BVUkVfXyAqLyBTeW1ib2wuZm9yKFwiV09SS0ZMT1dfVVNFX1NURVBcIildKFwic3RlcC8vLi9pbnB1dC50cy8vc3RlcE9uZVwiKTsnLFxuICAgICAgICAnYXN5bmMgZnVuY3Rpb24gdGVzdFdvcmtmbG93KGlucHV0KSB7JyxcbiAgICAgICAgJyAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgc3RlcE9uZShpbnB1dCk7JyxcbiAgICAgICAgJyAgcmV0dXJuIG91dHB1dDsnLFxuICAgICAgICAnfScsXG4gICAgICAgICd0ZXN0V29ya2Zsb3cud29ya2Zsb3dJZCA9IFwid29ya2Zsb3cvLy4vaW5wdXQudHMvL3Rlc3RXb3JrZmxvd1wiOycsXG4gICAgICBdLmpvaW4oJ1xcbicpXG4gICAgKTtcblxuICAgIGF3YWl0IGV4cGVjdChleHRyYWN0V29ya2Zsb3dHcmFwaHMoYnVuZGxlUGF0aCkpLnJlc29sdmVzLnRvRXF1YWwoe1xuICAgICAgJy4vaW5wdXQudHMnOiB7XG4gICAgICAgIHRlc3RXb3JrZmxvdzogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIHdvcmtmbG93SWQ6ICd3b3JrZmxvdy8vLi9pbnB1dC50cy8vdGVzdFdvcmtmbG93JyxcbiAgICAgICAgICBncmFwaDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgbm9kZXM6IGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW1xuICAgICAgICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0ZXAnLFxuICAgICAgICAgICAgICAgIGRhdGE6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc3RlcE9uZScsXG4gICAgICAgICAgICAgICAgICBzdGVwSWQ6ICdzdGVwLy8uL2lucHV0LnRzLy9zdGVwT25lJyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/builders",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.2",
|
|
4
4
|
"description": "Shared builder infrastructure for Workflow SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"find-up": "7.0.0",
|
|
41
41
|
"json5": "2.2.3",
|
|
42
42
|
"tinyglobby": "0.2.17",
|
|
43
|
-
"@workflow/core": "4.
|
|
44
|
-
"@workflow/errors": "4.1.
|
|
45
|
-
"@workflow/utils": "4.1.
|
|
46
|
-
"@workflow/swc-plugin": "4.1.
|
|
43
|
+
"@workflow/core": "4.6.1",
|
|
44
|
+
"@workflow/errors": "4.1.5",
|
|
45
|
+
"@workflow/utils": "4.1.4",
|
|
46
|
+
"@workflow/swc-plugin": "4.1.2"
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
49
|
"build": "tsc",
|