@workflow/builders 4.0.1-beta.9 → 5.0.0-beta.0

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.
Files changed (115) hide show
  1. package/README.md +1 -1
  2. package/dist/apply-swc-transform.d.ts +19 -4
  3. package/dist/apply-swc-transform.d.ts.map +1 -1
  4. package/dist/apply-swc-transform.js +62 -7
  5. package/dist/apply-swc-transform.js.map +1 -1
  6. package/dist/base-builder.d.ts +77 -22
  7. package/dist/base-builder.d.ts.map +1 -1
  8. package/dist/base-builder.js +667 -202
  9. package/dist/base-builder.js.map +1 -1
  10. package/dist/build-queue.d.ts +18 -0
  11. package/dist/build-queue.d.ts.map +1 -0
  12. package/dist/build-queue.js +26 -0
  13. package/dist/build-queue.js.map +1 -0
  14. package/dist/config-helpers.d.ts +32 -0
  15. package/dist/config-helpers.d.ts.map +1 -1
  16. package/dist/config-helpers.js +61 -0
  17. package/dist/config-helpers.js.map +1 -1
  18. package/dist/constants.d.ts +2 -4
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.js +2 -4
  21. package/dist/constants.js.map +1 -1
  22. package/dist/discover-entries-esbuild-plugin.d.ts +5 -6
  23. package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
  24. package/dist/discover-entries-esbuild-plugin.js +98 -30
  25. package/dist/discover-entries-esbuild-plugin.js.map +1 -1
  26. package/dist/discover-entries-esbuild-plugin.test.d.ts +2 -0
  27. package/dist/discover-entries-esbuild-plugin.test.d.ts.map +1 -0
  28. package/dist/discover-entries-esbuild-plugin.test.js +110 -0
  29. package/dist/discover-entries-esbuild-plugin.test.js.map +1 -0
  30. package/dist/esbuild-tsconfig.d.ts +13 -0
  31. package/dist/esbuild-tsconfig.d.ts.map +1 -0
  32. package/dist/esbuild-tsconfig.js +25 -0
  33. package/dist/esbuild-tsconfig.js.map +1 -0
  34. package/dist/esbuild-tsconfig.test.d.ts +2 -0
  35. package/dist/esbuild-tsconfig.test.d.ts.map +1 -0
  36. package/dist/esbuild-tsconfig.test.js +94 -0
  37. package/dist/esbuild-tsconfig.test.js.map +1 -0
  38. package/dist/get-input-files.test.d.ts +2 -0
  39. package/dist/get-input-files.test.d.ts.map +1 -0
  40. package/dist/get-input-files.test.js +121 -0
  41. package/dist/get-input-files.test.js.map +1 -0
  42. package/dist/index.d.ts +10 -3
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +9 -2
  45. package/dist/index.js.map +1 -1
  46. package/dist/module-specifier.d.ts +85 -0
  47. package/dist/module-specifier.d.ts.map +1 -0
  48. package/dist/module-specifier.js +448 -0
  49. package/dist/module-specifier.js.map +1 -0
  50. package/dist/module-specifier.test.d.ts +2 -0
  51. package/dist/module-specifier.test.d.ts.map +1 -0
  52. package/dist/module-specifier.test.js +240 -0
  53. package/dist/module-specifier.test.js.map +1 -0
  54. package/dist/node-module-esbuild-plugin.d.ts +37 -0
  55. package/dist/node-module-esbuild-plugin.d.ts.map +1 -1
  56. package/dist/node-module-esbuild-plugin.js +364 -7
  57. package/dist/node-module-esbuild-plugin.js.map +1 -1
  58. package/dist/node-module-esbuild-plugin.test.js +461 -146
  59. package/dist/node-module-esbuild-plugin.test.js.map +1 -1
  60. package/dist/pseudo-package-esbuild-plugin.d.ts +20 -0
  61. package/dist/pseudo-package-esbuild-plugin.d.ts.map +1 -0
  62. package/dist/pseudo-package-esbuild-plugin.js +47 -0
  63. package/dist/pseudo-package-esbuild-plugin.js.map +1 -0
  64. package/dist/pseudo-package-esbuild-plugin.test.d.ts +2 -0
  65. package/dist/pseudo-package-esbuild-plugin.test.d.ts.map +1 -0
  66. package/dist/pseudo-package-esbuild-plugin.test.js +315 -0
  67. package/dist/pseudo-package-esbuild-plugin.test.js.map +1 -0
  68. package/dist/request-converter.d.ts +3 -0
  69. package/dist/request-converter.d.ts.map +1 -0
  70. package/dist/request-converter.js +14 -0
  71. package/dist/request-converter.js.map +1 -0
  72. package/dist/serde-checker.d.ts +70 -0
  73. package/dist/serde-checker.d.ts.map +1 -0
  74. package/dist/serde-checker.js +118 -0
  75. package/dist/serde-checker.js.map +1 -0
  76. package/dist/standalone.d.ts +3 -0
  77. package/dist/standalone.d.ts.map +1 -1
  78. package/dist/standalone.js +37 -13
  79. package/dist/standalone.js.map +1 -1
  80. package/dist/swc-esbuild-plugin.d.ts +23 -2
  81. package/dist/swc-esbuild-plugin.d.ts.map +1 -1
  82. package/dist/swc-esbuild-plugin.js +133 -43
  83. package/dist/swc-esbuild-plugin.js.map +1 -1
  84. package/dist/swc-esbuild-plugin.test.d.ts +2 -0
  85. package/dist/swc-esbuild-plugin.test.d.ts.map +1 -0
  86. package/dist/swc-esbuild-plugin.test.js +493 -0
  87. package/dist/swc-esbuild-plugin.test.js.map +1 -0
  88. package/dist/transform-utils.d.ts +68 -0
  89. package/dist/transform-utils.d.ts.map +1 -0
  90. package/dist/transform-utils.js +102 -0
  91. package/dist/transform-utils.js.map +1 -0
  92. package/dist/transform-utils.test.d.ts +2 -0
  93. package/dist/transform-utils.test.d.ts.map +1 -0
  94. package/dist/transform-utils.test.js +302 -0
  95. package/dist/transform-utils.test.js.map +1 -0
  96. package/dist/types.d.ts +31 -2
  97. package/dist/types.d.ts.map +1 -1
  98. package/dist/types.js +2 -0
  99. package/dist/types.js.map +1 -1
  100. package/dist/vercel-build-output-api.d.ts.map +1 -1
  101. package/dist/vercel-build-output-api.js +38 -14
  102. package/dist/vercel-build-output-api.js.map +1 -1
  103. package/dist/workflow-alias.d.ts +3 -0
  104. package/dist/workflow-alias.d.ts.map +1 -0
  105. package/dist/workflow-alias.js +65 -0
  106. package/dist/workflow-alias.js.map +1 -0
  107. package/dist/workflow-alias.test.d.ts +2 -0
  108. package/dist/workflow-alias.test.d.ts.map +1 -0
  109. package/dist/workflow-alias.test.js +53 -0
  110. package/dist/workflow-alias.test.js.map +1 -0
  111. package/dist/workflows-extractor.d.ts +92 -0
  112. package/dist/workflows-extractor.d.ts.map +1 -0
  113. package/dist/workflows-extractor.js +1476 -0
  114. package/dist/workflows-extractor.js.map +1 -0
  115. package/package.json +14 -13
@@ -0,0 +1,110 @@
1
+ import { mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+ import * as esbuild from 'esbuild';
5
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
6
+ const { applySwcTransformMock } = vi.hoisted(() => ({
7
+ applySwcTransformMock: vi.fn(),
8
+ }));
9
+ vi.mock('./apply-swc-transform.js', () => ({
10
+ applySwcTransform: applySwcTransformMock,
11
+ }));
12
+ import { createDiscoverEntriesPlugin, importParents, } from './discover-entries-esbuild-plugin.js';
13
+ const realTmpdir = realpathSync(tmpdir());
14
+ function normalizeSlashes(path) {
15
+ return path.replace(/\\/g, '/');
16
+ }
17
+ function writeFile(path, contents = '') {
18
+ mkdirSync(dirname(path), { recursive: true });
19
+ writeFileSync(path, contents, 'utf-8');
20
+ }
21
+ describe('createDiscoverEntriesPlugin projectRoot', () => {
22
+ let testRoot;
23
+ beforeEach(() => {
24
+ testRoot = mkdtempSync(join(realTmpdir, 'workflow-discover-plugin-'));
25
+ importParents.clear();
26
+ applySwcTransformMock.mockReset();
27
+ applySwcTransformMock.mockImplementation(async (filename, source) => {
28
+ // Simulate the SWC plugin producing a manifest in 'detect' mode
29
+ const hasWorkflow = /['"]use workflow['"]/.test(source);
30
+ const hasStep = /['"]use step['"]/.test(source);
31
+ const workflowManifest = {};
32
+ if (hasWorkflow) {
33
+ workflowManifest.workflows = {
34
+ [filename]: { handleMessageWorkflow: { workflowId: 'test' } },
35
+ };
36
+ }
37
+ if (hasStep) {
38
+ workflowManifest.steps = {
39
+ [filename]: { myStep: { stepId: 'test' } },
40
+ };
41
+ }
42
+ return { code: source, workflowManifest };
43
+ });
44
+ });
45
+ afterEach(() => {
46
+ importParents.clear();
47
+ rmSync(testRoot, { recursive: true, force: true });
48
+ });
49
+ function setupFixture() {
50
+ const appRoot = join(testRoot, 'apps', 'chat');
51
+ const packageRoot = join(testRoot, 'packages', 'vade');
52
+ const workflowFile = join(packageRoot, 'src', 'internal', 'message', 'workflow', 'handle-message.ts');
53
+ writeFile(workflowFile, `export async function handleMessageWorkflow(message) {
54
+ "use workflow";
55
+
56
+ return message;
57
+ }
58
+ `);
59
+ return {
60
+ appRoot,
61
+ packageRoot,
62
+ workflowFile,
63
+ };
64
+ }
65
+ it('uses the explicit projectRoot during discovery transforms', async () => {
66
+ const fixture = setupFixture();
67
+ const normalizedWorkflowFile = normalizeSlashes(fixture.workflowFile);
68
+ const state = {
69
+ discoveredSteps: new Set(),
70
+ discoveredWorkflows: new Set(),
71
+ discoveredSerdeFiles: new Set(),
72
+ };
73
+ const result = await esbuild.build({
74
+ entryPoints: [fixture.workflowFile],
75
+ absWorkingDir: fixture.packageRoot,
76
+ bundle: true,
77
+ format: 'esm',
78
+ platform: 'node',
79
+ write: false,
80
+ plugins: [createDiscoverEntriesPlugin(state, fixture.appRoot)],
81
+ });
82
+ expect(result.errors).toHaveLength(0);
83
+ expect(state.discoveredWorkflows).toEqual(new Set([normalizedWorkflowFile]));
84
+ // Single 'detect' mode call for AST-level manifest validation
85
+ expect(applySwcTransformMock).toHaveBeenCalledWith(normalizedWorkflowFile, expect.stringContaining('"use workflow"'), 'detect', normalizedWorkflowFile, fixture.appRoot);
86
+ });
87
+ it('defaults discovery transforms to absWorkingDir when projectRoot is omitted', async () => {
88
+ const fixture = setupFixture();
89
+ const normalizedWorkflowFile = normalizeSlashes(fixture.workflowFile);
90
+ const state = {
91
+ discoveredSteps: new Set(),
92
+ discoveredWorkflows: new Set(),
93
+ discoveredSerdeFiles: new Set(),
94
+ };
95
+ const result = await esbuild.build({
96
+ entryPoints: [fixture.workflowFile],
97
+ absWorkingDir: fixture.packageRoot,
98
+ bundle: true,
99
+ format: 'esm',
100
+ platform: 'node',
101
+ write: false,
102
+ plugins: [createDiscoverEntriesPlugin(state)],
103
+ });
104
+ expect(result.errors).toHaveLength(0);
105
+ expect(state.discoveredWorkflows).toEqual(new Set([normalizedWorkflowFile]));
106
+ // Single 'detect' mode call for AST-level manifest validation
107
+ expect(applySwcTransformMock).toHaveBeenCalledWith(normalizedWorkflowFile, expect.stringContaining('"use workflow"'), 'detect', normalizedWorkflowFile, fixture.packageRoot);
108
+ });
109
+ });
110
+ //# sourceMappingURL=discover-entries-esbuild-plugin.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-entries-esbuild-plugin.test.js","sourceRoot":"","sources":["../src/discover-entries-esbuild-plugin.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type EsbuildTsconfigOptions = {
2
+ tsconfig?: string;
3
+ tsconfigRaw?: string;
4
+ };
5
+ /**
6
+ * Returns the appropriate tsconfig options for esbuild.
7
+ *
8
+ * For symlinked tsconfig files we pass `tsconfigRaw` instead of `tsconfig` so
9
+ * path aliases (for example `@/*`) are resolved relative to the current
10
+ * working directory instead of the symlink target directory.
11
+ */
12
+ export declare function getEsbuildTsconfigOptions(tsconfigPath: string | undefined): Promise<EsbuildTsconfigOptions>;
13
+ //# sourceMappingURL=esbuild-tsconfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuild-tsconfig.d.ts","sourceRoot":"","sources":["../src/esbuild-tsconfig.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAgBjC"}
@@ -0,0 +1,25 @@
1
+ import { lstat, readFile } from 'node:fs/promises';
2
+ /**
3
+ * Returns the appropriate tsconfig options for esbuild.
4
+ *
5
+ * For symlinked tsconfig files we pass `tsconfigRaw` instead of `tsconfig` so
6
+ * path aliases (for example `@/*`) are resolved relative to the current
7
+ * working directory instead of the symlink target directory.
8
+ */
9
+ export async function getEsbuildTsconfigOptions(tsconfigPath) {
10
+ if (!tsconfigPath) {
11
+ return {};
12
+ }
13
+ try {
14
+ const stats = await lstat(tsconfigPath);
15
+ if (!stats.isSymbolicLink()) {
16
+ return { tsconfig: tsconfigPath };
17
+ }
18
+ const tsconfigRaw = await readFile(tsconfigPath, 'utf8');
19
+ return { tsconfigRaw };
20
+ }
21
+ catch {
22
+ return { tsconfig: tsconfigPath };
23
+ }
24
+ }
25
+ //# sourceMappingURL=esbuild-tsconfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuild-tsconfig.js","sourceRoot":"","sources":["../src/esbuild-tsconfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOnD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,YAAgC;IAEhC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;YAC5B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=esbuild-tsconfig.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuild-tsconfig.test.d.ts","sourceRoot":"","sources":["../src/esbuild-tsconfig.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,94 @@
1
+ import { mkdirSync, mkdtempSync, realpathSync, rmSync, symlinkSync, writeFileSync, } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+ import * as esbuild from 'esbuild';
5
+ import { afterEach, describe, expect, it } from 'vitest';
6
+ import { getEsbuildTsconfigOptions } from './esbuild-tsconfig.js';
7
+ const realTmpdir = realpathSync(tmpdir());
8
+ function writeFile(path, contents) {
9
+ mkdirSync(dirname(path), { recursive: true });
10
+ writeFileSync(path, contents, 'utf8');
11
+ }
12
+ function normalize(paths) {
13
+ return paths.map((p) => p.replace(/\\/g, '/'));
14
+ }
15
+ async function buildInputs({ workingDir, tsconfigOptions, }) {
16
+ const result = await esbuild.build({
17
+ absWorkingDir: workingDir,
18
+ bundle: true,
19
+ format: 'esm',
20
+ platform: 'node',
21
+ write: false,
22
+ logLevel: 'silent',
23
+ metafile: true,
24
+ stdin: {
25
+ contents: `import '@/workflows/target'; import '@/app/.well-known/agent/v1/steps';`,
26
+ resolveDir: workingDir,
27
+ sourcefile: 'entry.ts',
28
+ loader: 'ts',
29
+ },
30
+ ...tsconfigOptions,
31
+ });
32
+ return normalize(Object.keys(result.metafile.inputs));
33
+ }
34
+ describe('getEsbuildTsconfigOptions', () => {
35
+ const createdRoots = [];
36
+ const symlinkTest = process.platform === 'win32' ? it.skip : it;
37
+ afterEach(() => {
38
+ for (const root of createdRoots.splice(0)) {
39
+ rmSync(root, { recursive: true, force: true });
40
+ }
41
+ });
42
+ it('returns tsconfig for regular files', async () => {
43
+ const root = mkdtempSync(join(realTmpdir, 'workflow-tsconfig-regular-'));
44
+ createdRoots.push(root);
45
+ const workingDir = join(root, 'app');
46
+ const tsconfigPath = join(workingDir, 'tsconfig.json');
47
+ writeFile(tsconfigPath, JSON.stringify({
48
+ compilerOptions: {
49
+ paths: {
50
+ '@/*': ['./*'],
51
+ },
52
+ },
53
+ }, null, 2));
54
+ const options = await getEsbuildTsconfigOptions(tsconfigPath);
55
+ expect(options).toEqual({ tsconfig: tsconfigPath });
56
+ });
57
+ symlinkTest('uses tsconfigRaw for symlinked configs so aliases resolve from working dir', async () => {
58
+ const root = mkdtempSync(join(realTmpdir, 'workflow-tsconfig-symlink-'));
59
+ createdRoots.push(root);
60
+ const workingDir = join(root, 'webpack-app');
61
+ const sourceDir = join(root, 'turbopack-app');
62
+ const symlinkTsconfigPath = join(workingDir, 'tsconfig.json');
63
+ writeFile(join(sourceDir, 'tsconfig.json'), JSON.stringify({
64
+ compilerOptions: {
65
+ paths: {
66
+ '@/*': ['./*'],
67
+ },
68
+ },
69
+ }, null, 2));
70
+ writeFile(join(workingDir, 'workflows/target.ts'), 'export const id = "webpack";');
71
+ writeFile(join(workingDir, 'app/.well-known/agent/v1/steps.ts'), 'export const id = "webpack-app";');
72
+ writeFile(join(sourceDir, 'workflows/target.ts'), 'export const id = "turbopack";');
73
+ writeFile(join(sourceDir, 'app/.well-known/agent/v1/steps.ts'), 'export const id = "turbopack-app";');
74
+ symlinkSync(join(sourceDir, 'tsconfig.json'), symlinkTsconfigPath, 'file');
75
+ const directInputs = await buildInputs({
76
+ workingDir,
77
+ tsconfigOptions: { tsconfig: symlinkTsconfigPath },
78
+ });
79
+ expect(directInputs.some((input) => input.includes('turbopack-app/workflows/target.ts'))).toBe(true);
80
+ expect(directInputs.some((input) => input.includes('turbopack-app/app/.well-known/agent/v1/steps.ts'))).toBe(true);
81
+ const options = await getEsbuildTsconfigOptions(symlinkTsconfigPath);
82
+ expect(typeof options.tsconfigRaw).toBe('string');
83
+ expect(options.tsconfig).toBeUndefined();
84
+ const normalizedInputs = await buildInputs({
85
+ workingDir,
86
+ tsconfigOptions: options,
87
+ });
88
+ expect(normalizedInputs.some((input) => input.endsWith('workflows/target.ts'))).toBe(true);
89
+ expect(normalizedInputs.some((input) => input.endsWith('app/.well-known/agent/v1/steps.ts'))).toBe(true);
90
+ expect(normalizedInputs.some((input) => input.includes('turbopack-app/workflows/target.ts'))).toBe(false);
91
+ expect(normalizedInputs.some((input) => input.includes('turbopack-app/app/.well-known/agent/v1/steps.ts'))).toBe(false);
92
+ });
93
+ });
94
+ //# sourceMappingURL=esbuild-tsconfig.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuild-tsconfig.test.js","sourceRoot":"","sources":["../src/esbuild-tsconfig.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=get-input-files.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-input-files.test.d.ts","sourceRoot":"","sources":["../src/get-input-files.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,121 @@
1
+ import { mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
+ import { BaseBuilder } from './base-builder.js';
6
+ /**
7
+ * Minimal subclass to expose the protected `getInputFiles()` for testing.
8
+ */
9
+ class TestBuilder extends BaseBuilder {
10
+ async build() {
11
+ // no-op
12
+ }
13
+ // Expose for tests
14
+ getInputFiles() {
15
+ return super.getInputFiles();
16
+ }
17
+ }
18
+ // Resolve symlinks in tmpdir to avoid macOS /var -> /private/var issues
19
+ const realTmpdir = realpathSync(tmpdir());
20
+ /**
21
+ * Normalize a path to forward slashes for cross-platform comparison.
22
+ * tinyglobby always returns forward-slash paths, even on Windows,
23
+ * while Node's `path.join()` uses backslashes on Windows.
24
+ */
25
+ function normalize(p) {
26
+ return p.replace(/\\/g, '/');
27
+ }
28
+ function writeFile(dir, relativePath, content = '') {
29
+ const fullPath = join(dir, relativePath);
30
+ mkdirSync(dirname(fullPath), { recursive: true });
31
+ writeFileSync(fullPath, content, 'utf-8');
32
+ return fullPath;
33
+ }
34
+ function createBuilder(workingDir, dirs) {
35
+ const config = {
36
+ buildTarget: 'standalone',
37
+ workingDir,
38
+ dirs,
39
+ stepsBundlePath: join(workingDir, 'steps.js'),
40
+ workflowsBundlePath: join(workingDir, 'workflows.js'),
41
+ webhookBundlePath: join(workingDir, 'webhook.js'),
42
+ };
43
+ return new TestBuilder(config);
44
+ }
45
+ describe('getInputFiles', () => {
46
+ let testRoot;
47
+ beforeEach(() => {
48
+ testRoot = mkdtempSync(join(realTmpdir, 'get-input-files-'));
49
+ });
50
+ afterEach(() => {
51
+ rmSync(testRoot, { recursive: true, force: true });
52
+ });
53
+ it('discovers files inside dot-prefixed directories', async () => {
54
+ const srcDir = join(testRoot, 'src');
55
+ writeFile(srcDir, '.hidden/step.ts', "'use step';");
56
+ writeFile(srcDir, '.config/workflow.ts', "'use workflow';");
57
+ writeFile(srcDir, 'regular/step.ts', "'use step';");
58
+ const builder = createBuilder(testRoot, ['src']);
59
+ const files = (await builder.getInputFiles()).map(normalize);
60
+ expect(files).toContain(normalize(join(srcDir, '.hidden/step.ts')));
61
+ expect(files).toContain(normalize(join(srcDir, '.config/workflow.ts')));
62
+ expect(files).toContain(normalize(join(srcDir, 'regular/step.ts')));
63
+ });
64
+ it('discovers dot-prefixed files', async () => {
65
+ const srcDir = join(testRoot, 'src');
66
+ writeFile(srcDir, '.hidden-step.ts', "'use step';");
67
+ writeFile(srcDir, 'visible-step.ts', "'use step';");
68
+ const builder = createBuilder(testRoot, ['src']);
69
+ const files = (await builder.getInputFiles()).map(normalize);
70
+ expect(files).toContain(normalize(join(srcDir, '.hidden-step.ts')));
71
+ expect(files).toContain(normalize(join(srcDir, 'visible-step.ts')));
72
+ });
73
+ it('still excludes explicitly ignored dot-directories', async () => {
74
+ const srcDir = join(testRoot, 'src');
75
+ writeFile(srcDir, '.git/hooks/pre-commit.ts');
76
+ writeFile(srcDir, '.next/server/page.ts');
77
+ writeFile(srcDir, '.nuxt/workflow/steps.mjs');
78
+ writeFile(srcDir, '.vercel/output/step.ts');
79
+ writeFile(srcDir, '.svelte-kit/output/step.ts');
80
+ writeFile(srcDir, '.workflow-data/state.ts');
81
+ writeFile(srcDir, '.workflow-vitest/workflows.mjs');
82
+ writeFile(srcDir, '.well-known/workflow/route.ts');
83
+ writeFile(srcDir, '.turbo/cache/build.ts');
84
+ writeFile(srcDir, '.cache/babel/plugin.js');
85
+ writeFile(srcDir, '.yarn/releases/yarn.cjs');
86
+ writeFile(srcDir, '.pnpm-store/v3/files.ts');
87
+ writeFile(srcDir, 'node_modules/pkg/index.ts');
88
+ // This one should still be found
89
+ writeFile(srcDir, '.custom/step.ts', "'use step';");
90
+ const builder = createBuilder(testRoot, ['src']);
91
+ const files = (await builder.getInputFiles()).map(normalize);
92
+ expect(files).not.toContain(normalize(join(srcDir, '.git/hooks/pre-commit.ts')));
93
+ expect(files).not.toContain(normalize(join(srcDir, '.next/server/page.ts')));
94
+ expect(files).not.toContain(normalize(join(srcDir, '.nuxt/workflow/steps.mjs')));
95
+ expect(files).not.toContain(normalize(join(srcDir, '.vercel/output/step.ts')));
96
+ expect(files).not.toContain(normalize(join(srcDir, '.svelte-kit/output/step.ts')));
97
+ expect(files).not.toContain(normalize(join(srcDir, '.workflow-data/state.ts')));
98
+ expect(files).not.toContain(normalize(join(srcDir, '.workflow-vitest/workflows.mjs')));
99
+ expect(files).not.toContain(normalize(join(srcDir, '.well-known/workflow/route.ts')));
100
+ expect(files).not.toContain(normalize(join(srcDir, '.turbo/cache/build.ts')));
101
+ expect(files).not.toContain(normalize(join(srcDir, '.cache/babel/plugin.js')));
102
+ expect(files).not.toContain(normalize(join(srcDir, '.yarn/releases/yarn.cjs')));
103
+ expect(files).not.toContain(normalize(join(srcDir, '.pnpm-store/v3/files.ts')));
104
+ expect(files).not.toContain(normalize(join(srcDir, 'node_modules/pkg/index.ts')));
105
+ expect(files).toContain(normalize(join(srcDir, '.custom/step.ts')));
106
+ });
107
+ it('discovers files with various supported extensions in dot-directories', async () => {
108
+ const srcDir = join(testRoot, 'src');
109
+ writeFile(srcDir, '.api/route.tsx');
110
+ writeFile(srcDir, '.api/handler.mts');
111
+ writeFile(srcDir, '.api/utils.js');
112
+ writeFile(srcDir, '.api/config.cjs');
113
+ const builder = createBuilder(testRoot, ['src']);
114
+ const files = (await builder.getInputFiles()).map(normalize);
115
+ expect(files).toContain(normalize(join(srcDir, '.api/route.tsx')));
116
+ expect(files).toContain(normalize(join(srcDir, '.api/handler.mts')));
117
+ expect(files).toContain(normalize(join(srcDir, '.api/utils.js')));
118
+ expect(files).toContain(normalize(join(srcDir, '.api/config.cjs')));
119
+ });
120
+ });
121
+ //# sourceMappingURL=get-input-files.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-input-files.test.js","sourceRoot":"","sources":["../src/get-input-files.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,20 @@
1
1
  export type { WorkflowManifest } from './apply-swc-transform.js';
2
2
  export { applySwcTransform } from './apply-swc-transform.js';
3
3
  export { BaseBuilder } from './base-builder.js';
4
- export { createBaseBuilderConfig } from './config-helpers.js';
4
+ export { createBuildQueue } from './build-queue.js';
5
+ export { createBaseBuilderConfig, type DecoratorOptions, type DecoratorOptionsWithConfigPath, getDecoratorOptionsForDirectory, getDecoratorOptionsForDirectoryWithConfigPath, } from './config-helpers.js';
5
6
  export { STEP_QUEUE_TRIGGER, WORKFLOW_QUEUE_TRIGGER } from './constants.js';
6
7
  export { createDiscoverEntriesPlugin } from './discover-entries-esbuild-plugin.js';
8
+ export { clearModuleSpecifierCache, getImportPath, type ImportPathResult, type ModuleSpecifierResult, resolveModuleSpecifier, } from './module-specifier.js';
7
9
  export { createNodeModuleErrorPlugin } from './node-module-esbuild-plugin.js';
10
+ export { createPseudoPackagePlugin, PSEUDO_PACKAGES, } from './pseudo-package-esbuild-plugin.js';
11
+ export { NORMALIZE_REQUEST_CODE } from './request-converter.js';
12
+ export { analyzeSerdeCompliance, extractClassEntries, type SerdeCheckResult, type SerdeClassCheckResult, } from './serde-checker.js';
8
13
  export { StandaloneBuilder } from './standalone.js';
9
14
  export { createSwcPlugin } from './swc-esbuild-plugin.js';
10
- export type { BuildTarget, NextConfig, StandaloneConfig, SvelteKitConfig, VercelBuildOutputConfig, WorkflowConfig, } from './types.js';
11
- export { isValidBuildTarget, validBuildTargets, } from './types.js';
15
+ export { detectWorkflowPatterns, generatedWorkflowPathPattern, isGeneratedWorkflowFile, isWorkflowSdkFile, shouldTransformFile, turbopackContentPattern, useStepPattern, useWorkflowPattern, type WorkflowPatternMatch, workflowSdkPathPattern, workflowSerdeImportPattern, workflowSerdeSymbolPattern, } from './transform-utils.js';
16
+ export type { AstroConfig, BuildTarget, NextConfig, StandaloneConfig, SvelteKitConfig, VercelBuildOutputConfig, WorkflowConfig, } from './types.js';
17
+ export { isValidBuildTarget, validBuildTargets } from './types.js';
12
18
  export { VercelBuildOutputAPIBuilder } from './vercel-build-output-api.js';
19
+ export { resolveWorkflowAliasRelativePath } from './workflow-alias.js';
13
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EACV,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,8BAA8B,EACnC,+BAA+B,EAC/B,6CAA6C,GAC9C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,18 @@
1
1
  export { applySwcTransform } from './apply-swc-transform.js';
2
2
  export { BaseBuilder } from './base-builder.js';
3
- export { createBaseBuilderConfig } from './config-helpers.js';
3
+ export { createBuildQueue } from './build-queue.js';
4
+ export { createBaseBuilderConfig, getDecoratorOptionsForDirectory, getDecoratorOptionsForDirectoryWithConfigPath, } from './config-helpers.js';
4
5
  export { STEP_QUEUE_TRIGGER, WORKFLOW_QUEUE_TRIGGER } from './constants.js';
5
6
  export { createDiscoverEntriesPlugin } from './discover-entries-esbuild-plugin.js';
7
+ export { clearModuleSpecifierCache, getImportPath, resolveModuleSpecifier, } from './module-specifier.js';
6
8
  export { createNodeModuleErrorPlugin } from './node-module-esbuild-plugin.js';
9
+ export { createPseudoPackagePlugin, PSEUDO_PACKAGES, } from './pseudo-package-esbuild-plugin.js';
10
+ export { NORMALIZE_REQUEST_CODE } from './request-converter.js';
11
+ export { analyzeSerdeCompliance, extractClassEntries, } from './serde-checker.js';
7
12
  export { StandaloneBuilder } from './standalone.js';
8
13
  export { createSwcPlugin } from './swc-esbuild-plugin.js';
9
- export { isValidBuildTarget, validBuildTargets, } from './types.js';
14
+ export { detectWorkflowPatterns, generatedWorkflowPathPattern, isGeneratedWorkflowFile, isWorkflowSdkFile, shouldTransformFile, turbopackContentPattern, useStepPattern, useWorkflowPattern, workflowSdkPathPattern, workflowSerdeImportPattern, workflowSerdeSymbolPattern, } from './transform-utils.js';
15
+ export { isValidBuildTarget, validBuildTargets } from './types.js';
10
16
  export { VercelBuildOutputAPIBuilder } from './vercel-build-output-api.js';
17
+ export { resolveWorkflowAliasRelativePath } from './workflow-alias.js';
11
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAS1D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,uBAAuB,EAGvB,+BAA+B,EAC/B,6CAA6C,GAC9C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EACL,yBAAyB,EACzB,aAAa,EAGb,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAElB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAU9B,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Result of resolving a module specifier for a file.
3
+ */
4
+ export interface ModuleSpecifierResult {
5
+ /**
6
+ * The module specifier to use for ID generation.
7
+ * - For packages: "{name}@{version}" or "{name}/{subpath}@{version}"
8
+ * (e.g., "point@1.0.0", "@myorg/shared@2.0.0", "workflow/internal/builtins@4.0.0")
9
+ * - For local files: undefined (plugin will use default "./relative/path" format)
10
+ */
11
+ moduleSpecifier: string | undefined;
12
+ }
13
+ /**
14
+ * Resolve the module specifier for a file.
15
+ *
16
+ * @param filePath - Absolute path to the file being transformed
17
+ * @param projectRoot - Absolute path to the project root (usually process.cwd())
18
+ * @returns The module specifier result
19
+ *
20
+ * @example
21
+ * // File in node_modules (root export)
22
+ * resolveModuleSpecifier('/project/node_modules/point/dist/index.js', '/project')
23
+ * // => { moduleSpecifier: 'point@1.0.0' }
24
+ *
25
+ * @example
26
+ * // File in node_modules (subpath export)
27
+ * resolveModuleSpecifier('/project/node_modules/workflow/dist/internal/builtins.js', '/project')
28
+ * // => { moduleSpecifier: 'workflow/internal/builtins@4.0.0' }
29
+ *
30
+ * @example
31
+ * // File in workspace package
32
+ * resolveModuleSpecifier('/project/packages/shared/src/utils.ts', '/project')
33
+ * // => { moduleSpecifier: '@myorg/shared@0.0.0' }
34
+ *
35
+ * @example
36
+ * // Local app file
37
+ * resolveModuleSpecifier('/project/src/workflows/order.ts', '/project')
38
+ * // => { moduleSpecifier: undefined }
39
+ */
40
+ export declare function resolveModuleSpecifier(filePath: string, projectRoot: string): ModuleSpecifierResult;
41
+ /**
42
+ * Clear the package.json cache. Useful for testing or when package.json files may have changed.
43
+ */
44
+ export declare function clearModuleSpecifierCache(): void;
45
+ /**
46
+ * Result of resolving an import path for a file.
47
+ */
48
+ export interface ImportPathResult {
49
+ /**
50
+ * The import path to use.
51
+ * - For workspace packages: the package name (e.g., "@myorg/shared")
52
+ * - For node_modules packages: the package name
53
+ * - For local files: a relative path (e.g., "./src/workflows/order.ts")
54
+ */
55
+ importPath: string;
56
+ /**
57
+ * Whether this file is from a package (workspace or node_modules).
58
+ * When true, the import should go through package resolution which respects export conditions.
59
+ */
60
+ isPackage: boolean;
61
+ }
62
+ /**
63
+ * Get the import path to use for a file in a bundle's virtual entry.
64
+ *
65
+ * For workspace packages and node_modules packages, returns the package name
66
+ * so that bundler resolution will respect package.json exports and conditions.
67
+ *
68
+ * For local app files, returns a relative path.
69
+ *
70
+ * @param filePath - Absolute path to the file
71
+ * @param projectRoot - Absolute path to the project root
72
+ * @returns The import path and whether it's a package
73
+ *
74
+ * @example
75
+ * // Workspace package
76
+ * getImportPath('/project/packages/shared/src/index.ts', '/project')
77
+ * // => { importPath: '@myorg/shared', isPackage: true }
78
+ *
79
+ * @example
80
+ * // Local app file
81
+ * getImportPath('/project/src/workflows/order.ts', '/project')
82
+ * // => { importPath: './src/workflows/order.ts', isPackage: false }
83
+ */
84
+ export declare function getImportPath(filePath: string, projectRoot: string): ImportPathResult;
85
+ //# sourceMappingURL=module-specifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-specifier.d.ts","sourceRoot":"","sources":["../src/module-specifier.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAgQD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,qBAAqB,CA6BvB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AA0HD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,gBAAgB,CA6DlB"}