@workflow/builders 5.0.0-beta.0 → 5.0.0-beta.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.js.map +1 -1
- package/dist/base-builder.d.ts +7 -0
- package/dist/base-builder.d.ts.map +1 -1
- package/dist/base-builder.js +49 -24
- package/dist/base-builder.js.map +1 -1
- package/dist/build-queue.js.map +1 -1
- package/dist/config-helpers.js.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
- package/dist/discover-entries-esbuild-plugin.js +8 -7
- package/dist/discover-entries-esbuild-plugin.js.map +1 -1
- package/dist/discover-entries-esbuild-plugin.test.js +41 -1
- package/dist/discover-entries-esbuild-plugin.test.js.map +1 -1
- package/dist/esbuild-tsconfig.js.map +1 -1
- package/dist/esbuild-tsconfig.test.js.map +1 -1
- package/dist/get-input-files.test.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module-specifier.js.map +1 -1
- package/dist/module-specifier.test.js.map +1 -1
- package/dist/node-module-esbuild-plugin.js +2 -2
- package/dist/node-module-esbuild-plugin.js.map +1 -1
- package/dist/node-module-esbuild-plugin.test.js.map +1 -1
- package/dist/pseudo-package-esbuild-plugin.js.map +1 -1
- package/dist/pseudo-package-esbuild-plugin.test.js.map +1 -1
- package/dist/request-converter.js.map +1 -1
- package/dist/serde-checker.js.map +1 -1
- package/dist/standalone.js.map +1 -1
- package/dist/swc-esbuild-plugin.d.ts.map +1 -1
- package/dist/swc-esbuild-plugin.js +9 -0
- package/dist/swc-esbuild-plugin.js.map +1 -1
- package/dist/swc-esbuild-plugin.test.js.map +1 -1
- package/dist/transform-utils.d.ts +3 -9
- package/dist/transform-utils.d.ts.map +1 -1
- package/dist/transform-utils.js +4 -29
- package/dist/transform-utils.js.map +1 -1
- package/dist/transform-utils.test.js +36 -16
- package/dist/transform-utils.test.js.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vercel-build-output-api.d.ts.map +1 -1
- package/dist/vercel-build-output-api.js +10 -7
- package/dist/vercel-build-output-api.js.map +1 -1
- package/dist/workflow-alias.js.map +1 -1
- package/dist/workflow-alias.test.js.map +1 -1
- package/dist/workflows-extractor.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-swc-transform.js","sourceRoot":"","sources":["../src/apply-swc-transform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apply-swc-transform.js","sourceRoot":"","sources":["../src/apply-swc-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,iFAAiF;AACjF,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAGlC,CAAC;AAEJ,SAAS,mBAAmB,CAAC,WAAoB;IAC/C,MAAM,GAAG,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,IAAI,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;QAC9C,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA0BD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,MAAc,EACd,IAAuD;AACvD;;;;GAIG;AACH,YAAqB;AACrB;;;GAGG;AACH,WAAoB;IAKpB,MAAM,mBAAmB,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzD,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE;QAC5D,KAAK,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACjD,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,YAAY,GAChB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5B,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG,YAAY;QACnC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;YACpB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,EAAE,eAAe,EAAE,GAAG,sBAAsB,CAChD,gBAAgB,EAChB,mBAAmB,CACpB,CAAC;IAEF,uDAAuD;IACvD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE;QACrC,QAAQ;QACR,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,GAAG,CAAC,YAAY;oBACd,CAAC,CAAC;wBACE,MAAM,EAAE,YAAY;wBACpB,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC9B,UAAU,EAAE,gBAAgB,CAAC,UAAU;qBACxC;oBACH,CAAC,CAAC;wBACE,MAAM,EAAE,YAAY;wBACpB,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAC9B,UAAU,EAAE,gBAAgB,CAAC,UAAU;qBACxC,CAAC;aACP;YACD,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,IAAI;gBAChB,CAAC,CAAC;oBACE,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;iBACtD;gBACH,CAAC,CAAC,SAAS;YACb,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,OAAO,EAAE,UAAU;iBACpB;gBACD,eAAe,EAAE,gBAAgB,CAAC,eAAe;gBACjD,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB;aACtD;SACF;QACD,sDAAsD;QACtD,qDAAqD;QACrD,4CAA4C;QAC5C,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAC5C,wCAAwC,CACzC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CACd,CAAC;IAEtB,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,gBAAgB,EAAE,eAAe,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC","sourcesContent":["import { createRequire } from 'node:module';\nimport { dirname, isAbsolute, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { transform } from '@swc/core';\nimport { getDecoratorOptionsForDirectory } from './config-helpers.js';\nimport { resolveModuleSpecifier } from './module-specifier.js';\n\nconst require = createRequire(import.meta.url);\n\n// Cache decorator options per directory - tsconfig doesn't change during a build\nconst decoratorOptionsCache = new Map<\n string,\n ReturnType<typeof getDecoratorOptionsForDirectory>\n>();\n\nfunction getDecoratorOptions(projectRoot?: string) {\n const cwd = projectRoot ?? process.cwd();\n let cached = decoratorOptionsCache.get(cwd);\n if (!cached) {\n cached = getDecoratorOptionsForDirectory(cwd);\n decoratorOptionsCache.set(cwd, cached);\n }\n return cached;\n}\n\nexport type WorkflowManifest = {\n steps?: {\n [relativeFileName: string]: {\n [functionName: string]: {\n stepId: string;\n };\n };\n };\n workflows?: {\n [relativeFileName: string]: {\n [functionName: string]: {\n workflowId: string;\n };\n };\n };\n classes?: {\n [relativeFileName: string]: {\n [className: string]: {\n classId: string;\n };\n };\n };\n};\n\nexport async function applySwcTransform(\n filename: string,\n source: string,\n mode: 'workflow' | 'step' | 'client' | 'detect' | false,\n /**\n * Optional absolute path to the file being transformed.\n * Used for module specifier resolution when filename is relative.\n * If not provided, filename is joined with process.cwd().\n */\n absolutePath?: string,\n /**\n * Optional project root used for module specifier resolution.\n * Defaults to process.cwd() for backwards compatibility.\n */\n projectRoot?: string\n): Promise<{\n code: string;\n workflowManifest: WorkflowManifest;\n}> {\n const resolvedProjectRoot = projectRoot ?? process.cwd();\n const decoratorOptions = await getDecoratorOptions(resolvedProjectRoot);\n\n const swcPluginPath = require.resolve('@workflow/swc-plugin', {\n paths: [dirname(fileURLToPath(import.meta.url))],\n });\n\n // Determine if this is a TypeScript file\n const isTypeScript =\n filename.endsWith('.ts') ||\n filename.endsWith('.tsx') ||\n filename.endsWith('.mts') ||\n filename.endsWith('.cts');\n\n // Resolve module specifier for packages (node_modules or workspace packages)\n const absoluteFilename = absolutePath\n ? absolutePath\n : isAbsolute(filename)\n ? filename\n : join(resolvedProjectRoot, filename);\n const { moduleSpecifier } = resolveModuleSpecifier(\n absoluteFilename,\n resolvedProjectRoot\n );\n\n // Transform with SWC to support syntax esbuild doesn't\n const result = await transform(source, {\n filename,\n swcrc: false,\n jsc: {\n parser: {\n ...(isTypeScript\n ? {\n syntax: 'typescript',\n tsx: filename.endsWith('.tsx'),\n decorators: decoratorOptions.decorators,\n }\n : {\n syntax: 'ecmascript',\n jsx: filename.endsWith('.jsx'),\n decorators: decoratorOptions.decorators,\n }),\n },\n target: 'es2022',\n experimental: mode\n ? {\n plugins: [[swcPluginPath, { mode, moduleSpecifier }]],\n }\n : undefined,\n transform: {\n react: {\n runtime: 'preserve',\n },\n legacyDecorator: decoratorOptions.legacyDecorator,\n decoratorMetadata: decoratorOptions.decoratorMetadata,\n },\n },\n // TODO: investigate proper source map support as they\n // won't even be used in Node.js by default unless we\n // intercept errors and apply them ourselves\n sourceMaps: false,\n minify: false,\n });\n\n const workflowCommentMatch = result.code.match(\n /\\/\\*\\*__internal_workflows({.*?})\\*\\//s\n );\n\n const parsedWorkflows = JSON.parse(\n workflowCommentMatch?.[1] || '{}'\n ) as WorkflowManifest;\n\n return {\n code: result.code,\n workflowManifest: parsedWorkflows || {},\n };\n}\n"]}
|
package/dist/base-builder.d.ts
CHANGED
|
@@ -33,6 +33,13 @@ export declare abstract class BaseBuilder {
|
|
|
33
33
|
* that relies on `import.meta.url` works correctly in bundled CJS output.
|
|
34
34
|
*/
|
|
35
35
|
private getCjsImportMetaPolyfill;
|
|
36
|
+
/**
|
|
37
|
+
* When outputting fully-bundled ESM, CJS dependencies that call require()
|
|
38
|
+
* for Node.js builtins (e.g. debug → require('tty')) break because esbuild's
|
|
39
|
+
* CJS-to-ESM __require shim doesn't have access to a real require function.
|
|
40
|
+
* This banner provides one via createRequire so bundled CJS code works in ESM.
|
|
41
|
+
*/
|
|
42
|
+
private getEsmRequireBanner;
|
|
36
43
|
/**
|
|
37
44
|
* Performs the complete build process for workflows.
|
|
38
45
|
* Subclasses must implement this to define their specific build steps.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-builder.d.ts","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA2BjD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,8BAAsB,WAAW;IAC/B,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;gBAErB,MAAM,EAAE,cAAc;IAIlC,SAAS,KAAK,oBAAoB,IAAI,MAAM,CAE3C;IAED;;;OAGG;IACH,SAAS,KAAK,wBAAwB,IAAI,OAAO,CAEhD;IAED,SAAS,CAAC,kBAAkB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAMtD,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,qBAAqB;IAM7B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAiBhC;;;OAGG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B;;;OAGG;cACa,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK/D;;;;OAIG;cACa,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAqClD;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CACT;cAEA,eAAe,CAC7B,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-builder.d.ts","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/base-builder.js
CHANGED
|
@@ -89,6 +89,17 @@ export class BaseBuilder {
|
|
|
89
89
|
},
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* When outputting fully-bundled ESM, CJS dependencies that call require()
|
|
94
|
+
* for Node.js builtins (e.g. debug → require('tty')) break because esbuild's
|
|
95
|
+
* CJS-to-ESM __require shim doesn't have access to a real require function.
|
|
96
|
+
* This banner provides one via createRequire so bundled CJS code works in ESM.
|
|
97
|
+
*/
|
|
98
|
+
getEsmRequireBanner(format) {
|
|
99
|
+
if (format !== 'esm')
|
|
100
|
+
return '';
|
|
101
|
+
return 'import { createRequire as __createRequire } from "node:module";\nvar require = __createRequire(import.meta.url);\n';
|
|
102
|
+
}
|
|
92
103
|
/**
|
|
93
104
|
* Finds tsconfig.json/jsconfig.json for the project.
|
|
94
105
|
* Used by esbuild to properly resolve module imports during bundling.
|
|
@@ -152,12 +163,24 @@ export class BaseBuilder {
|
|
|
152
163
|
discoveredSerdeFiles: new Set(),
|
|
153
164
|
};
|
|
154
165
|
const discoverStart = Date.now();
|
|
166
|
+
// Resolve the SDK runtime entry point so that the discovery pass
|
|
167
|
+
// traces through it and discovers serde classes (like `Run`) that
|
|
168
|
+
// live inside SDK packages. Without this, files like `run.js` are
|
|
169
|
+
// only discovered when user code happens to import them.
|
|
170
|
+
// This is resolved here (rather than in callers) so that the original
|
|
171
|
+
// `inputs` array reference is preserved for WeakMap caching — callers
|
|
172
|
+
// like createWorkflowsBundle and createStepsBundle can share the same
|
|
173
|
+
// cache entry when they pass the same inputFiles array.
|
|
174
|
+
const resolvedWorkflowRuntime = await enhancedResolve(outdir, 'workflow/runtime').catch(() => undefined);
|
|
175
|
+
const entryPoints = resolvedWorkflowRuntime
|
|
176
|
+
? [...inputs, resolvedWorkflowRuntime]
|
|
177
|
+
: inputs;
|
|
155
178
|
const effectiveTsconfigPath = tsconfigPath ?? (await this.findTsConfigPath());
|
|
156
179
|
const esbuildTsconfigOptions = await getEsbuildTsconfigOptions(effectiveTsconfigPath);
|
|
157
180
|
try {
|
|
158
181
|
await esbuild.build({
|
|
159
182
|
treeShaking: true,
|
|
160
|
-
entryPoints
|
|
183
|
+
entryPoints,
|
|
161
184
|
plugins: [
|
|
162
185
|
createDiscoverEntriesPlugin(state, this.transformProjectRoot),
|
|
163
186
|
],
|
|
@@ -272,9 +295,22 @@ export class BaseBuilder {
|
|
|
272
295
|
* @param externalizeNonSteps - If true, only bundles step entry points and externalizes other code
|
|
273
296
|
* @returns Build context (for watch mode) and the collected workflow manifest
|
|
274
297
|
*/
|
|
275
|
-
async createStepsBundle({ inputFiles, format = '
|
|
276
|
-
|
|
277
|
-
|
|
298
|
+
async createStepsBundle({ inputFiles, format = 'esm', outfile, externalizeNonSteps, rewriteTsExtensions, tsconfigPath, discoveredEntries, }) {
|
|
299
|
+
const stepsBundleStart = Date.now();
|
|
300
|
+
const workflowManifest = {};
|
|
301
|
+
const builtInSteps = 'workflow/internal/builtins';
|
|
302
|
+
const resolvedBuiltInSteps = await enhancedResolve(dirname(outfile), 'workflow/internal/builtins').catch((err) => {
|
|
303
|
+
throw new Error([
|
|
304
|
+
chalk.red('Failed to resolve built-in steps sources.'),
|
|
305
|
+
`${chalk.yellow.bold('hint:')} run \`${chalk.cyan.italic('npm install workflow')}\` to resolve this issue.`,
|
|
306
|
+
'',
|
|
307
|
+
`Caused by: ${chalk.red(String(err))}`,
|
|
308
|
+
].join('\n'));
|
|
309
|
+
});
|
|
310
|
+
// Discovery of workflow/step/serde entries. The SDK runtime entry point
|
|
311
|
+
// (workflow/runtime) is resolved inside discoverEntries() itself so that
|
|
312
|
+
// callers can pass the original inputFiles reference and benefit from
|
|
313
|
+
// WeakMap caching across createWorkflowsBundle / createStepsBundle calls.
|
|
278
314
|
const discovered = discoveredEntries ??
|
|
279
315
|
(await this.discoverEntries(inputFiles, dirname(outfile), tsconfigPath));
|
|
280
316
|
const stepFiles = [...discovered.discoveredSteps].sort();
|
|
@@ -291,17 +327,6 @@ export class BaseBuilder {
|
|
|
291
327
|
workflowFiles,
|
|
292
328
|
serdeOnlyFiles,
|
|
293
329
|
});
|
|
294
|
-
const stepsBundleStart = Date.now();
|
|
295
|
-
const workflowManifest = {};
|
|
296
|
-
const builtInSteps = 'workflow/internal/builtins';
|
|
297
|
-
const resolvedBuiltInSteps = await enhancedResolve(dirname(outfile), 'workflow/internal/builtins').catch((err) => {
|
|
298
|
-
throw new Error([
|
|
299
|
-
chalk.red('Failed to resolve built-in steps sources.'),
|
|
300
|
-
`${chalk.yellow.bold('hint:')} run \`${chalk.cyan.italic('npm install workflow')}\` to resolve this issue.`,
|
|
301
|
-
'',
|
|
302
|
-
`Caused by: ${chalk.red(String(err))}`,
|
|
303
|
-
].join('\n'));
|
|
304
|
-
});
|
|
305
330
|
// Helper to create import statement from file path
|
|
306
331
|
// For workspace/node_modules packages, uses the package name so esbuild
|
|
307
332
|
// will resolve through package.json exports with the appropriate conditions
|
|
@@ -358,9 +383,10 @@ export class BaseBuilder {
|
|
|
358
383
|
]);
|
|
359
384
|
const esbuildTsconfigOptions = await getEsbuildTsconfigOptions(tsconfigPath);
|
|
360
385
|
const { banner: importMetaBanner, define: importMetaDefine } = this.getCjsImportMetaPolyfill(format);
|
|
386
|
+
const esmRequireBanner = this.getEsmRequireBanner(format);
|
|
361
387
|
const esbuildCtx = await esbuild.context({
|
|
362
388
|
banner: {
|
|
363
|
-
js: `// biome-ignore-all lint: generated file\n/* eslint-disable */\n${importMetaBanner}`,
|
|
389
|
+
js: `// biome-ignore-all lint: generated file\n/* eslint-disable */\n${importMetaBanner}${esmRequireBanner}`,
|
|
364
390
|
},
|
|
365
391
|
stdin: {
|
|
366
392
|
contents: entryContent,
|
|
@@ -456,7 +482,7 @@ export class BaseBuilder {
|
|
|
456
482
|
*
|
|
457
483
|
* @param bundleFinalOutput - If false, skips the final bundling step (used by Next.js)
|
|
458
484
|
*/
|
|
459
|
-
async createWorkflowsBundle({ inputFiles, format = '
|
|
485
|
+
async createWorkflowsBundle({ inputFiles, format = 'esm', outfile, bundleFinalOutput = true, keepInterimBundleContext = this.config.watch, tsconfigPath, discoveredEntries, }) {
|
|
460
486
|
const discovered = discoveredEntries ??
|
|
461
487
|
(await this.discoverEntries(inputFiles, dirname(outfile), tsconfigPath));
|
|
462
488
|
const workflowFiles = [...discovered.discoveredWorkflows].sort();
|
|
@@ -661,9 +687,10 @@ export const POST = workflowEntrypoint(workflowCode);`;
|
|
|
661
687
|
const bundleStartTime = Date.now();
|
|
662
688
|
// Now bundle this so we can resolve the @workflow/core dependency
|
|
663
689
|
// we could remove this if we do nft tracing or similar instead
|
|
690
|
+
const finalEsmRequireBanner = this.getEsmRequireBanner(format);
|
|
664
691
|
const finalWorkflowResult = await esbuild.build({
|
|
665
692
|
banner: {
|
|
666
|
-
js:
|
|
693
|
+
js: `// biome-ignore-all lint: generated file\n/* eslint-disable */\n${finalEsmRequireBanner}`,
|
|
667
694
|
},
|
|
668
695
|
stdin: {
|
|
669
696
|
contents: workflowFunctionCode,
|
|
@@ -858,12 +885,11 @@ export const OPTIONS = handler;`;
|
|
|
858
885
|
return;
|
|
859
886
|
}
|
|
860
887
|
// For Build Output API, bundle with esbuild to resolve imports
|
|
861
|
-
const
|
|
862
|
-
const { banner: webhookImportMetaBanner, define: webhookImportMetaDefine } = this.getCjsImportMetaPolyfill(webhookFormat);
|
|
888
|
+
const webhookEsmRequireBanner = this.getEsmRequireBanner('esm');
|
|
863
889
|
const webhookBundleStart = Date.now();
|
|
864
890
|
const result = await esbuild.build({
|
|
865
891
|
banner: {
|
|
866
|
-
js: `// biome-ignore-all lint: generated file\n/* eslint-disable */\n${
|
|
892
|
+
js: `// biome-ignore-all lint: generated file\n/* eslint-disable */\n${webhookEsmRequireBanner}`,
|
|
867
893
|
},
|
|
868
894
|
stdin: {
|
|
869
895
|
contents: routeContent,
|
|
@@ -875,7 +901,7 @@ export const OPTIONS = handler;`;
|
|
|
875
901
|
absWorkingDir: this.config.workingDir,
|
|
876
902
|
bundle: true,
|
|
877
903
|
jsx: 'preserve',
|
|
878
|
-
format:
|
|
904
|
+
format: 'esm',
|
|
879
905
|
platform: 'node',
|
|
880
906
|
conditions: ['import', 'module', 'node', 'default'],
|
|
881
907
|
target: 'es2022',
|
|
@@ -883,7 +909,6 @@ export const OPTIONS = handler;`;
|
|
|
883
909
|
treeShaking: true,
|
|
884
910
|
keepNames: true,
|
|
885
911
|
minify: false,
|
|
886
|
-
define: webhookImportMetaDefine,
|
|
887
912
|
resolveExtensions: [
|
|
888
913
|
'.ts',
|
|
889
914
|
'.tsx',
|
|
@@ -915,7 +940,7 @@ export const OPTIONS = handler;`;
|
|
|
915
940
|
async createVcConfig(dir, config) {
|
|
916
941
|
const vcConfig = {
|
|
917
942
|
runtime: config.runtime ?? 'nodejs22.x',
|
|
918
|
-
handler: config.handler ?? 'index.
|
|
943
|
+
handler: config.handler ?? 'index.mjs',
|
|
919
944
|
launcherType: config.launcherType ?? 'Nodejs',
|
|
920
945
|
architecture: config.architecture ?? 'arm64',
|
|
921
946
|
shouldAddHelpers: config.shouldAddHelpers ?? true,
|
package/dist/base-builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-builder.js","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-builder.js","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { mkdir, readFile, realpath, rename, writeFile } from 'node:fs/promises';\nimport { basename, dirname, join, relative, resolve } from 'node:path';\nimport { promisify } from 'node:util';\nimport { pluralize, usesVercelWorld } from '@workflow/utils';\nimport chalk from 'chalk';\nimport enhancedResolveOriginal from 'enhanced-resolve';\nimport * as esbuild from 'esbuild';\nimport { findUp } from 'find-up';\nimport { glob } from 'tinyglobby';\nimport {\n applySwcTransform,\n type WorkflowManifest,\n} from './apply-swc-transform.js';\nimport { createDiscoverEntriesPlugin } from './discover-entries-esbuild-plugin.js';\nimport { getEsbuildTsconfigOptions } from './esbuild-tsconfig.js';\nimport { getImportPath } from './module-specifier.js';\nimport { createNodeModuleErrorPlugin } from './node-module-esbuild-plugin.js';\nimport { createPseudoPackagePlugin } from './pseudo-package-esbuild-plugin.js';\nimport { createSwcPlugin } from './swc-esbuild-plugin.js';\nimport type { WorkflowConfig } from './types.js';\nimport { extractWorkflowGraphs } from './workflows-extractor.js';\n\nconst enhancedResolve = promisify(enhancedResolveOriginal);\n\nconst EMIT_SOURCEMAPS_FOR_DEBUGGING =\n process.env.WORKFLOW_EMIT_SOURCEMAPS_FOR_DEBUGGING === '1';\n\n/**\n * Normalize an array of file paths by appending the `realpath()` of each entry\n * (to handle symlinks, e.g. pnpm/workspace layouts) and deduplicating.\n */\nasync function withRealpaths(entries: string[]): Promise<string[]> {\n return Array.from(\n new Set(\n (\n await Promise.all(\n entries.map(async (entry) => {\n const resolved = await realpath(entry).catch(() => undefined);\n return resolved ? [entry, resolved] : [entry];\n })\n )\n ).flat()\n )\n );\n}\n\nexport interface DiscoveredEntries {\n discoveredSteps: Set<string>;\n discoveredWorkflows: Set<string>;\n discoveredSerdeFiles: Set<string>;\n}\n\n/**\n * Base class for workflow builders. Provides common build logic for transforming\n * workflow source files into deployable bundles using esbuild and SWC.\n *\n * Subclasses must implement the build() method to define builder-specific logic.\n */\nexport abstract class BaseBuilder {\n protected config: WorkflowConfig;\n\n constructor(config: WorkflowConfig) {\n this.config = config;\n }\n\n protected get transformProjectRoot(): string {\n return this.config.projectRoot || this.config.workingDir;\n }\n\n /**\n * Whether informational BaseBuilder logs should be printed.\n * Subclasses can override this to silence progress logs while keeping warnings/errors.\n */\n protected get shouldLogBaseBuilderInfo(): boolean {\n return true;\n }\n\n protected logBaseBuilderInfo(...args: unknown[]): void {\n if (this.shouldLogBaseBuilderInfo) {\n console.log(...args);\n }\n }\n\n private logCreateWorkflowsBundleInfo(...args: unknown[]): void {\n if (!this.config.suppressCreateWorkflowsBundleLogs) {\n this.logBaseBuilderInfo(...args);\n }\n }\n\n private logCreateWebhookBundleInfo(...args: unknown[]): void {\n if (!this.config.suppressCreateWebhookBundleLogs) {\n this.logBaseBuilderInfo(...args);\n }\n }\n\n private logCreateManifestInfo(...args: unknown[]): void {\n if (!this.config.suppressCreateManifestLogs) {\n this.logBaseBuilderInfo(...args);\n }\n }\n\n /**\n * When outputting CJS, esbuild replaces `import.meta` with an empty object,\n * making `import.meta.url` (and `import.meta.resolve`) undefined. This method\n * returns banner code and `define` entries that polyfill them using CJS\n * equivalents (`__filename`, `require.resolve`) so user code (e.g. Prisma)\n * that relies on `import.meta.url` works correctly in bundled CJS output.\n */\n private getCjsImportMetaPolyfill(format: string): {\n banner: string;\n define: Record<string, string>;\n } {\n if (format !== 'cjs') return { banner: '', define: {} };\n return {\n banner:\n 'var __import_meta_url = typeof __filename !== \"undefined\" ? require(\"url\").pathToFileURL(__filename).href : undefined;\\n' +\n 'var __import_meta_resolve = typeof require !== \"undefined\" && typeof __filename !== \"undefined\" ' +\n '? (s) => require(\"url\").pathToFileURL(require.resolve(s)).href : undefined;\\n',\n define: {\n 'import.meta.url': '__import_meta_url',\n 'import.meta.resolve': '__import_meta_resolve',\n },\n };\n }\n\n /**\n * When outputting fully-bundled ESM, CJS dependencies that call require()\n * for Node.js builtins (e.g. debug → require('tty')) break because esbuild's\n * CJS-to-ESM __require shim doesn't have access to a real require function.\n * This banner provides one via createRequire so bundled CJS code works in ESM.\n */\n private getEsmRequireBanner(format: string): string {\n if (format !== 'esm') return '';\n return 'import { createRequire as __createRequire } from \"node:module\";\\nvar require = __createRequire(import.meta.url);\\n';\n }\n\n /**\n * Performs the complete build process for workflows.\n * Subclasses must implement this to define their specific build steps.\n */\n abstract build(): Promise<void>;\n\n /**\n * Finds tsconfig.json/jsconfig.json for the project.\n * Used by esbuild to properly resolve module imports during bundling.\n */\n protected async findTsConfigPath(): Promise<string | undefined> {\n const cwd = this.config.workingDir || process.cwd();\n return findUp(['tsconfig.json', 'jsconfig.json'], { cwd });\n }\n\n /**\n * Discovers all source files in the configured directories.\n * Searches for TypeScript and JavaScript files while excluding common build\n * and dependency directories.\n */\n protected async getInputFiles(): Promise<string[]> {\n const ignore = [\n '**/node_modules/**',\n '**/.git/**',\n '**/.next/**',\n '**/.nuxt/**',\n '**/.output/**',\n '**/.vercel/**',\n '**/.workflow-data/**',\n '**/.workflow-vitest/**',\n '**/.well-known/workflow/**',\n '**/.svelte-kit/**',\n '**/.turbo/**',\n '**/.cache/**',\n '**/.yarn/**',\n '**/.pnpm-store/**',\n ];\n\n // Use relative patterns with `cwd` per directory so that `dot: true`\n // applies consistently to both the search pattern *and* the ignore\n // patterns. When absolute patterns are used with tinyglobby, the `**`\n // in ignore patterns does not match dot-prefixed path segments.\n const results = await Promise.all(\n this.config.dirs.map((dir) => {\n const cwd = resolve(this.config.workingDir, dir);\n return glob(['**/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs}'], {\n cwd,\n ignore,\n absolute: true,\n dot: true,\n });\n })\n );\n\n return results.flat();\n }\n\n /**\n * Caches discovered workflow entries by input array reference.\n * Uses WeakMap to allow garbage collection when input arrays are no longer referenced.\n * This cache is invalidated automatically when the inputs array reference changes\n * (e.g., when files are added/removed during watch mode).\n */\n private discoveredEntries: WeakMap<string[], DiscoveredEntries> =\n new WeakMap();\n\n protected async discoverEntries(\n inputs: string[],\n outdir: string,\n tsconfigPath?: string\n ): Promise<DiscoveredEntries> {\n const previousResult = this.discoveredEntries.get(inputs);\n\n if (previousResult) {\n return previousResult;\n }\n const state: DiscoveredEntries = {\n discoveredSteps: new Set(),\n discoveredWorkflows: new Set(),\n discoveredSerdeFiles: new Set(),\n };\n\n const discoverStart = Date.now();\n\n // Resolve the SDK runtime entry point so that the discovery pass\n // traces through it and discovers serde classes (like `Run`) that\n // live inside SDK packages. Without this, files like `run.js` are\n // only discovered when user code happens to import them.\n // This is resolved here (rather than in callers) so that the original\n // `inputs` array reference is preserved for WeakMap caching — callers\n // like createWorkflowsBundle and createStepsBundle can share the same\n // cache entry when they pass the same inputFiles array.\n const resolvedWorkflowRuntime = await enhancedResolve(\n outdir,\n 'workflow/runtime'\n ).catch(() => undefined);\n const entryPoints = resolvedWorkflowRuntime\n ? [...inputs, resolvedWorkflowRuntime]\n : inputs;\n\n const effectiveTsconfigPath =\n tsconfigPath ?? (await this.findTsConfigPath());\n const esbuildTsconfigOptions = await getEsbuildTsconfigOptions(\n effectiveTsconfigPath\n );\n try {\n await esbuild.build({\n treeShaking: true,\n entryPoints,\n plugins: [\n createDiscoverEntriesPlugin(state, this.transformProjectRoot),\n ],\n platform: 'node',\n write: false,\n outdir,\n bundle: true,\n sourcemap: false,\n absWorkingDir: this.config.workingDir,\n logLevel: 'silent',\n ...esbuildTsconfigOptions,\n // External packages that should not be bundled during discovery\n external: this.config.externalPackages || [],\n });\n } catch (_) {}\n\n this.logBaseBuilderInfo(\n `Discovering workflow directives`,\n `${Date.now() - discoverStart}ms`\n );\n\n this.discoveredEntries.set(inputs, state);\n return state;\n }\n\n /**\n * Writes debug information to a JSON file for troubleshooting build issues.\n * Uses atomic write (temp file + rename) to prevent race conditions when\n * multiple builds run concurrently.\n */\n private async writeDebugFile(\n outfile: string,\n debugData: object,\n merge?: boolean\n ): Promise<void> {\n const prefix = this.config.debugFilePrefix || '';\n const targetPath = `${dirname(outfile)}/${prefix}${basename(outfile)}.debug.json`;\n let existing = {};\n\n try {\n if (merge) {\n try {\n const content = await readFile(targetPath, 'utf8');\n existing = JSON.parse(content);\n } catch (e) {\n // File doesn't exist yet or is corrupted - start fresh.\n // Don't log error for ENOENT (file not found) as that's expected on first run.\n if ((e as NodeJS.ErrnoException).code !== 'ENOENT') {\n console.warn('Error reading debug file, starting fresh:', e);\n }\n }\n }\n\n const mergedData = JSON.stringify(\n {\n ...existing,\n ...debugData,\n },\n null,\n 2\n );\n\n // Write atomically: write to temp file, then rename.\n // rename() is atomic on POSIX systems and provides best-effort atomicity on Windows.\n // Prevents race conditions where concurrent builds read partially-written files.\n const tempPath = `${targetPath}.${randomUUID()}.tmp`;\n await writeFile(tempPath, mergedData);\n await rename(tempPath, targetPath);\n } catch (error: unknown) {\n console.warn('Failed to write debug file:', error);\n }\n }\n\n /**\n * Logs and optionally throws on esbuild errors and warnings.\n * @param throwOnError - If true, throws an error when esbuild errors are present\n */\n private logEsbuildMessages(\n result: { errors?: any[]; warnings?: any[] },\n phase: string,\n throwOnError = true,\n options?: {\n suppressWarnings?: boolean;\n }\n ): void {\n if (result.errors && result.errors.length > 0) {\n console.error(`❌ esbuild errors in ${phase}:`);\n const errorMessages: string[] = [];\n for (const error of result.errors) {\n console.error(` ${error.text}`);\n errorMessages.push(error.text);\n if (error.location) {\n const location = ` at ${error.location.file}:${error.location.line}:${error.location.column}`;\n console.error(location);\n errorMessages.push(location);\n }\n }\n\n if (throwOnError) {\n throw new Error(\n `Build failed during ${phase}:\\n${errorMessages.join('\\n')}`\n );\n }\n }\n\n if (\n !options?.suppressWarnings &&\n result.warnings &&\n result.warnings.length > 0\n ) {\n console.warn(`! esbuild warnings in ${phase}:`);\n for (const warning of result.warnings) {\n console.warn(` ${warning.text}`);\n if (warning.location) {\n console.warn(\n ` at ${warning.location.file}:${warning.location.line}:${warning.location.column}`\n );\n }\n }\n }\n }\n\n /**\n * Converts an absolute file path to a normalized relative path for the manifest.\n */\n private getRelativeFilepath(absolutePath: string): string {\n const normalizedFile = absolutePath.replace(/\\\\/g, '/');\n const normalizedWorkingDir = this.config.workingDir.replace(/\\\\/g, '/');\n let relativePath = relative(normalizedWorkingDir, normalizedFile).replace(\n /\\\\/g,\n '/'\n );\n // Handle files discovered outside the working directory\n if (relativePath.startsWith('../')) {\n relativePath = relativePath\n .split('/')\n .filter((part) => part !== '..')\n .join('/');\n }\n return relativePath;\n }\n\n /**\n * Creates a bundle for workflow step functions.\n * Steps have full Node.js runtime access and handle side effects, API calls, etc.\n *\n * @param externalizeNonSteps - If true, only bundles step entry points and externalizes other code\n * @returns Build context (for watch mode) and the collected workflow manifest\n */\n protected async createStepsBundle({\n inputFiles,\n format = 'esm',\n outfile,\n externalizeNonSteps,\n rewriteTsExtensions,\n tsconfigPath,\n discoveredEntries,\n }: {\n tsconfigPath?: string;\n inputFiles: string[];\n outfile: string;\n format?: 'cjs' | 'esm';\n externalizeNonSteps?: boolean;\n rewriteTsExtensions?: boolean;\n discoveredEntries?: DiscoveredEntries;\n }): Promise<{\n context: esbuild.BuildContext | undefined;\n manifest: WorkflowManifest;\n }> {\n const stepsBundleStart = Date.now();\n const workflowManifest: WorkflowManifest = {};\n const builtInSteps = 'workflow/internal/builtins';\n\n const resolvedBuiltInSteps = await enhancedResolve(\n dirname(outfile),\n 'workflow/internal/builtins'\n ).catch((err) => {\n throw new Error(\n [\n chalk.red('Failed to resolve built-in steps sources.'),\n `${chalk.yellow.bold('hint:')} run \\`${chalk.cyan.italic('npm install workflow')}\\` to resolve this issue.`,\n '',\n `Caused by: ${chalk.red(String(err))}`,\n ].join('\\n')\n );\n });\n\n // Discovery of workflow/step/serde entries. The SDK runtime entry point\n // (workflow/runtime) is resolved inside discoverEntries() itself so that\n // callers can pass the original inputFiles reference and benefit from\n // WeakMap caching across createWorkflowsBundle / createStepsBundle calls.\n const discovered =\n discoveredEntries ??\n (await this.discoverEntries(inputFiles, dirname(outfile), tsconfigPath));\n const stepFiles = [...discovered.discoveredSteps].sort();\n const workflowFiles = [...discovered.discoveredWorkflows].sort();\n const serdeFiles = [...discovered.discoveredSerdeFiles].sort();\n\n // Include serde files that aren't already step files for cross-context class registration.\n // Classes need to be registered in the step bundle so they can be deserialized\n // when receiving data from workflows and serialized when returning data to workflows.\n const stepFilesSet = new Set(stepFiles);\n const serdeOnlyFiles = serdeFiles.filter((f) => !stepFilesSet.has(f));\n\n // log the step files for debugging\n await this.writeDebugFile(outfile, {\n stepFiles,\n workflowFiles,\n serdeOnlyFiles,\n });\n\n // Helper to create import statement from file path\n // For workspace/node_modules packages, uses the package name so esbuild\n // will resolve through package.json exports with the appropriate conditions\n const createImport = (file: string) => {\n const { importPath, isPackage } = getImportPath(\n file,\n this.config.workingDir\n );\n\n if (isPackage) {\n // Use package name - esbuild will resolve via package.json exports\n return `import '${importPath}';`;\n }\n\n // Local app file - use relative path\n // Normalize both paths to forward slashes before calling relative()\n // This is critical on Windows where relative() can produce unexpected results with mixed path formats\n const normalizedWorkingDir = this.config.workingDir.replace(/\\\\/g, '/');\n const normalizedFile = file.replace(/\\\\/g, '/');\n // Calculate relative path from working directory to the file\n let relativePath = relative(normalizedWorkingDir, normalizedFile).replace(\n /\\\\/g,\n '/'\n );\n // Ensure relative paths start with ./ so esbuild resolves them correctly.\n // Paths like \".output/...\" are not valid relative specifiers and must\n // become \"./.output/...\".\n if (!relativePath.startsWith('./') && !relativePath.startsWith('../')) {\n relativePath = `./${relativePath}`;\n }\n return `import '${relativePath}';`;\n };\n\n // Create a virtual entry that imports all files. All step definitions\n // will get registered thanks to the swc transform.\n const stepImports = stepFiles.map(createImport).join('\\n');\n\n // Include serde-only files for class registration side effects\n const serdeImports = serdeOnlyFiles.map(createImport).join('\\n');\n\n const entryContent = `\n // Built in steps\n import '${builtInSteps}';\n // User steps\n ${stepImports}\n // Serde files for cross-context class registration\n ${serdeImports}\n // API entrypoint\n export { stepEntrypoint as POST } from 'workflow/runtime';`;\n\n // Bundle with esbuild and our custom SWC plugin\n const entriesToBundle = externalizeNonSteps\n ? [\n ...stepFiles,\n ...serdeFiles,\n ...(resolvedBuiltInSteps ? [resolvedBuiltInSteps] : []),\n ]\n : undefined;\n const normalizedEntriesToBundle = entriesToBundle\n ? await withRealpaths(entriesToBundle)\n : undefined;\n const normalizedSideEffectEntries = await withRealpaths([\n ...stepFiles,\n ...serdeOnlyFiles,\n ...(resolvedBuiltInSteps ? [resolvedBuiltInSteps] : []),\n ]);\n const esbuildTsconfigOptions =\n await getEsbuildTsconfigOptions(tsconfigPath);\n const { banner: importMetaBanner, define: importMetaDefine } =\n this.getCjsImportMetaPolyfill(format);\n const esmRequireBanner = this.getEsmRequireBanner(format);\n\n const esbuildCtx = await esbuild.context({\n banner: {\n js: `// biome-ignore-all lint: generated file\\n/* eslint-disable */\\n${importMetaBanner}${esmRequireBanner}`,\n },\n stdin: {\n contents: entryContent,\n resolveDir: this.config.workingDir,\n sourcefile: 'virtual-entry.js',\n loader: 'js',\n },\n outfile,\n absWorkingDir: this.config.workingDir,\n bundle: true,\n format,\n platform: 'node',\n conditions: ['node'],\n target: 'es2022',\n write: true,\n treeShaking: true,\n keepNames: true,\n minify: false,\n jsx: 'preserve',\n logLevel: 'error',\n // Use tsconfig for path alias resolution.\n // For symlinked configs this uses tsconfigRaw to preserve cwd-relative aliases.\n ...esbuildTsconfigOptions,\n define: importMetaDefine,\n resolveExtensions: [\n '.ts',\n '.tsx',\n '.mts',\n '.cts',\n '.js',\n '.jsx',\n '.mjs',\n '.cjs',\n ],\n // Inline source maps for better stack traces in step execution.\n // Steps execute in Node.js context and inline sourcemaps ensure we get\n // meaningful stack traces with proper file names and line numbers when errors\n // occur in deeply nested function calls across multiple files.\n sourcemap: 'inline',\n plugins: [\n // Handle pseudo-packages like 'server-only' and 'client-only' by providing\n // empty modules. Must run first to intercept these before other resolution.\n createPseudoPackagePlugin(),\n createSwcPlugin({\n mode: 'step',\n entriesToBundle: normalizedEntriesToBundle,\n outdir: outfile ? dirname(outfile) : undefined,\n projectRoot: this.transformProjectRoot,\n workflowManifest,\n rewriteTsExtensions,\n sideEffectEntries: normalizedSideEffectEntries,\n }),\n ],\n // Plugin should catch most things, but this lets users hard override\n // if the plugin misses anything that should be externalized\n external: ['bun', 'bun:*', ...(this.config.externalPackages || [])],\n });\n\n const stepsResult = await esbuildCtx.rebuild();\n\n this.logEsbuildMessages(stepsResult, 'steps bundle creation');\n this.logBaseBuilderInfo(\n 'Created steps bundle',\n `${Date.now() - stepsBundleStart}ms`\n );\n\n // Handle workflow-only files that may have been tree-shaken from the bundle.\n // These files have no steps, so esbuild removes them, but we still need their\n // workflow metadata for the manifest. Transform them separately.\n const workflowOnlyFiles = workflowFiles.filter(\n (f) => !stepFiles.includes(f)\n );\n await Promise.all(\n workflowOnlyFiles.map(async (workflowFile) => {\n try {\n const source = await readFile(workflowFile, 'utf8');\n const relativeFilepath = this.getRelativeFilepath(workflowFile);\n const { workflowManifest: fileManifest } = await applySwcTransform(\n relativeFilepath,\n source,\n 'workflow',\n workflowFile,\n this.transformProjectRoot\n );\n if (fileManifest.workflows) {\n workflowManifest.workflows = Object.assign(\n workflowManifest.workflows || {},\n fileManifest.workflows\n );\n }\n if (fileManifest.classes) {\n workflowManifest.classes = Object.assign(\n workflowManifest.classes || {},\n fileManifest.classes\n );\n }\n } catch (error) {\n // Log warning but continue - don't fail build for workflow-only file issues\n console.warn(\n `Warning: Failed to extract workflow metadata from ${workflowFile}:`,\n error instanceof Error ? error.message : String(error)\n );\n }\n })\n );\n\n // Create .gitignore in .swc directory\n await this.createSwcGitignore();\n\n if (this.config.watch) {\n return { context: esbuildCtx, manifest: workflowManifest };\n }\n await esbuildCtx.dispose();\n return { context: undefined, manifest: workflowManifest };\n }\n\n /**\n * Creates a bundle for workflow orchestration functions.\n * Workflows run in a sandboxed VM and coordinate step execution.\n *\n * @param bundleFinalOutput - If false, skips the final bundling step (used by Next.js)\n */\n protected async createWorkflowsBundle({\n inputFiles,\n format = 'esm',\n outfile,\n bundleFinalOutput = true,\n keepInterimBundleContext = this.config.watch,\n tsconfigPath,\n discoveredEntries,\n }: {\n tsconfigPath?: string;\n inputFiles: string[];\n outfile: string;\n format?: 'cjs' | 'esm';\n bundleFinalOutput?: boolean;\n keepInterimBundleContext?: boolean;\n discoveredEntries?: DiscoveredEntries;\n }): Promise<{\n manifest: WorkflowManifest;\n interimBundleCtx?: esbuild.BuildContext;\n bundleFinal?: (interimBundleResult: string) => Promise<void>;\n }> {\n const discovered =\n discoveredEntries ??\n (await this.discoverEntries(inputFiles, dirname(outfile), tsconfigPath));\n const workflowFiles = [...discovered.discoveredWorkflows].sort();\n const serdeFiles = [...discovered.discoveredSerdeFiles].sort();\n\n // Include serde files that aren't already workflow files for cross-context class registration.\n // Classes need to be registered in the workflow bundle so they can be deserialized\n // when receiving data from steps or when serializing data to send to steps.\n const workflowFilesSet = new Set(workflowFiles);\n const serdeOnlyFiles = serdeFiles.filter((f) => !workflowFilesSet.has(f));\n\n // log the workflow files for debugging\n await this.writeDebugFile(outfile, { workflowFiles, serdeOnlyFiles });\n\n // Helper to create import statement from file path\n // For packages, uses the package name so esbuild will resolve through\n // package.json exports with conditions: ['workflow']\n const createImport = (file: string) => {\n const { importPath, isPackage } = getImportPath(\n file,\n this.config.workingDir\n );\n\n if (isPackage) {\n // Use package name - esbuild will resolve via package.json exports\n // and apply the 'workflow' condition\n return `import '${importPath}';`;\n }\n\n // Local app file - use relative path\n // Normalize both paths to forward slashes before calling relative()\n // This is critical on Windows where relative() can produce unexpected results with mixed path formats\n const normalizedWorkingDir = this.config.workingDir.replace(/\\\\/g, '/');\n const normalizedFile = file.replace(/\\\\/g, '/');\n // Calculate relative path from working directory to the file\n let relativePath = relative(normalizedWorkingDir, normalizedFile).replace(\n /\\\\/g,\n '/'\n );\n // Ensure relative paths start with ./ so esbuild resolves them correctly.\n // Paths like \".output/...\" are not valid relative specifiers and must\n // become \"./.output/...\".\n if (!relativePath.startsWith('./') && !relativePath.startsWith('../')) {\n relativePath = `./${relativePath}`;\n }\n return `import '${relativePath}';`;\n };\n\n // Create a virtual entry that imports all workflow files\n // The SWC plugin in workflow mode emits `globalThis.__private_workflows.set(workflowId, fn)`\n // calls directly, so we just need to import the files (Map is initialized via banner)\n const workflowImports = workflowFiles.map(createImport).join('\\n');\n\n // Include serde-only files for class registration side effects\n const serdeImports = serdeOnlyFiles.map(createImport).join('\\n');\n\n const imports = serdeImports\n ? `${workflowImports}\\n// Serde files for cross-context class registration\\n${serdeImports}`\n : workflowImports;\n\n const bundleStartTime = Date.now();\n const workflowManifest: WorkflowManifest = {};\n const esbuildTsconfigOptions =\n await getEsbuildTsconfigOptions(tsconfigPath);\n const normalizedWorkflowSideEffectEntries = await withRealpaths([\n ...workflowFiles,\n ...serdeOnlyFiles,\n ]);\n\n // Bundle with esbuild and our custom SWC plugin in workflow mode.\n // this bundle will be run inside a vm isolate\n const interimBundleCtx = await esbuild.context({\n stdin: {\n contents: imports,\n resolveDir: this.config.workingDir,\n sourcefile: 'virtual-entry.js',\n loader: 'js',\n },\n bundle: true,\n absWorkingDir: this.config.workingDir,\n format: 'cjs', // Runs inside the VM which expects cjs\n platform: 'neutral', // The platform is neither node nor browser\n mainFields: ['module', 'main'], // To support npm style imports\n conditions: ['workflow'], // Allow packages to export 'workflow' compliant versions\n target: 'es2022',\n write: false,\n treeShaking: true,\n keepNames: true,\n minify: false,\n // Initialize the workflow registry at the very top of the bundle\n // This must be in banner (not the virtual entry) because esbuild's bundling\n // can reorder code, and the .set() calls need the Map to exist first\n banner: {\n js: 'globalThis.__private_workflows = new Map();',\n },\n // Inline source maps for better stack traces in workflow VM execution.\n // This intermediate bundle is executed via runInContext() in a VM, so we need\n // inline source maps to get meaningful stack traces instead of \"evalmachine.<anonymous>\".\n sourcemap: 'inline',\n // Use tsconfig for path alias resolution.\n // For symlinked configs this uses tsconfigRaw to preserve cwd-relative aliases.\n ...esbuildTsconfigOptions,\n resolveExtensions: [\n '.ts',\n '.tsx',\n '.mts',\n '.cts',\n '.js',\n '.jsx',\n '.mjs',\n '.cjs',\n ],\n plugins: [\n // Handle pseudo-packages like 'server-only' and 'client-only' by providing\n // empty modules. Must run first to intercept these before other resolution.\n createPseudoPackagePlugin(),\n createSwcPlugin({\n mode: 'workflow',\n projectRoot: this.transformProjectRoot,\n workflowManifest,\n sideEffectEntries: normalizedWorkflowSideEffectEntries,\n }),\n // This plugin must run after the swc plugin to ensure dead code elimination\n // happens first, preventing false positives on Node.js imports in unused code paths\n createNodeModuleErrorPlugin(),\n ],\n // NOTE: We intentionally do NOT use the external option here for workflow bundles.\n // When packages are marked external with format: 'cjs', esbuild generates require() calls.\n // However, the workflow VM (vm.runInContext) does not have require() defined - it only\n // provides module.exports and exports. External packages would fail at runtime with:\n // ReferenceError: require is not defined\n // Instead, we bundle everything and rely on:\n // - createPseudoPackagePlugin() to handle server-only/client-only with empty modules\n // - createNodeModuleErrorPlugin() to catch Node.js builtin imports at build time\n });\n let shouldDisposeInterimBundleCtx = !keepInterimBundleContext;\n try {\n const interimBundle = await interimBundleCtx.rebuild();\n\n this.logEsbuildMessages(\n interimBundle,\n 'intermediate workflow bundle',\n true,\n {\n suppressWarnings: this.config.suppressCreateWorkflowsBundleWarnings,\n }\n );\n this.logCreateWorkflowsBundleInfo(\n 'Created intermediate workflow bundle',\n `${Date.now() - bundleStartTime}ms`\n );\n\n if (this.config.workflowManifestPath) {\n const resolvedPath = resolve(\n process.cwd(),\n this.config.workflowManifestPath\n );\n let prefix = '';\n\n if (resolvedPath.endsWith('.cjs')) {\n prefix = 'module.exports = ';\n } else if (\n resolvedPath.endsWith('.js') ||\n resolvedPath.endsWith('.mjs')\n ) {\n prefix = 'export default ';\n }\n\n await mkdir(dirname(resolvedPath), { recursive: true });\n await writeFile(\n resolvedPath,\n prefix + JSON.stringify(workflowManifest, null, 2)\n );\n }\n\n // Create .gitignore in .swc directory\n await this.createSwcGitignore();\n\n if (\n !interimBundle.outputFiles ||\n interimBundle.outputFiles.length === 0\n ) {\n throw new Error('No output files generated from esbuild');\n }\n\n // Serde compliance warnings: check if workflow bundle has Node.js imports\n // alongside serde-registered classes (these will fail at runtime in the sandbox)\n if (\n workflowManifest.classes &&\n Object.keys(workflowManifest.classes).length > 0\n ) {\n const { analyzeSerdeCompliance } = await import('./serde-checker.js');\n const bundleText = interimBundle.outputFiles[0].text;\n const serdeResult = analyzeSerdeCompliance({\n sourceCode: '',\n workflowCode: bundleText,\n manifest: workflowManifest,\n });\n // De-dupe warnings: group identical issues across classes\n const issuesToClasses = new Map<string, Set<string>>();\n for (const cls of serdeResult.classes) {\n if (!cls.compliant) {\n for (const issue of cls.issues) {\n let affectedClasses = issuesToClasses.get(issue);\n if (!affectedClasses) {\n affectedClasses = new Set<string>();\n issuesToClasses.set(issue, affectedClasses);\n }\n affectedClasses.add(cls.className);\n }\n }\n }\n for (const [issue, affectedClasses] of issuesToClasses) {\n const classNames = [...affectedClasses];\n const classLabel =\n classNames.length === 1\n ? `class \"${classNames[0]}\"`\n : `classes ${classNames.map((name) => `\"${name}\"`).join(', ')}`;\n console.warn(\n chalk.yellow(`⚠ Serde warning for ${classLabel}: `) + issue\n );\n }\n }\n\n const bundleFinal = async (interimBundle: string) => {\n const workflowBundleCode = interimBundle;\n\n const workflowFunctionCode = `// biome-ignore-all lint: generated file\n/* eslint-disable */\nimport { workflowEntrypoint } from 'workflow/runtime';\n\nconst workflowCode = \\`${workflowBundleCode.replace(/[\\\\`$]/g, '\\\\$&')}\\`;\n\nexport const POST = workflowEntrypoint(workflowCode);`;\n\n // we skip the final bundling step for Next.js so it can bundle itself\n if (!bundleFinalOutput) {\n if (!outfile) {\n throw new Error(`Invariant: missing outfile for workflow bundle`);\n }\n // Ensure the output directory exists\n const outputDir = dirname(outfile);\n await mkdir(outputDir, { recursive: true });\n\n // Atomic write: write to temp file then rename to prevent\n // file watchers from reading partial file during write\n const tempPath = `${outfile}.${randomUUID()}.tmp`;\n await writeFile(tempPath, workflowFunctionCode);\n await rename(tempPath, outfile);\n return;\n }\n\n const bundleStartTime = Date.now();\n\n // Now bundle this so we can resolve the @workflow/core dependency\n // we could remove this if we do nft tracing or similar instead\n const finalEsmRequireBanner = this.getEsmRequireBanner(format);\n const finalWorkflowResult = await esbuild.build({\n banner: {\n js: `// biome-ignore-all lint: generated file\\n/* eslint-disable */\\n${finalEsmRequireBanner}`,\n },\n stdin: {\n contents: workflowFunctionCode,\n resolveDir: this.config.workingDir,\n sourcefile: 'virtual-entry.js',\n loader: 'js',\n },\n outfile,\n // Source maps for the final workflow bundle wrapper (not important since this code\n // doesn't run in the VM - only the intermediate bundle sourcemap is relevant)\n sourcemap: EMIT_SOURCEMAPS_FOR_DEBUGGING,\n absWorkingDir: this.config.workingDir,\n bundle: true,\n format,\n platform: 'node',\n target: 'es2022',\n write: true,\n keepNames: true,\n minify: false,\n external: ['@aws-sdk/credential-provider-web-identity'],\n });\n\n this.logEsbuildMessages(\n finalWorkflowResult,\n 'final workflow bundle',\n true,\n {\n suppressWarnings: this.config.suppressCreateWorkflowsBundleWarnings,\n }\n );\n this.logCreateWorkflowsBundleInfo(\n 'Created final workflow bundle',\n `${Date.now() - bundleStartTime}ms`\n );\n };\n await bundleFinal(interimBundle.outputFiles[0].text);\n\n if (keepInterimBundleContext) {\n shouldDisposeInterimBundleCtx = false;\n return {\n manifest: workflowManifest,\n interimBundleCtx,\n bundleFinal,\n };\n }\n return { manifest: workflowManifest };\n } catch (error) {\n shouldDisposeInterimBundleCtx = true;\n throw error;\n } finally {\n if (shouldDisposeInterimBundleCtx) {\n try {\n await interimBundleCtx.dispose();\n } catch (disposeError) {\n console.warn(\n 'Warning: Failed to dispose workflow bundle context',\n disposeError\n );\n }\n }\n }\n }\n\n /**\n * Creates a client library bundle for workflow execution.\n * The client library allows importing and calling workflows from application code.\n * Only generated if clientBundlePath is specified in config.\n */\n protected async createClientLibrary(): Promise<void> {\n if (!this.config.clientBundlePath) {\n // Silently exit since no client bundle was requested\n return;\n }\n\n this.logBaseBuilderInfo(\n 'Generating a client library at',\n this.config.clientBundlePath\n );\n this.logBaseBuilderInfo(\n 'NOTE: The recommended way to use workflow with a framework like NextJS is using the loader/plugin with webpack/turbobpack/rollup'\n );\n\n // Ensure we have the directory for the client bundle\n const outputDir = dirname(this.config.clientBundlePath);\n await mkdir(outputDir, { recursive: true });\n\n const inputFiles = await this.getInputFiles();\n\n // Discover serde files from the input files' dependency tree for cross-context class registration.\n // Classes need to be registered in the client bundle so they can be serialized\n // when passing data to workflows via start() and deserialized when receiving workflow results.\n const { discoveredSerdeFiles } = await this.discoverEntries(\n inputFiles,\n outputDir\n );\n\n // Identify serde files that aren't in the inputFiles (deduplicated)\n const inputFilesNormalized = new Set(\n inputFiles.map((f) => f.replace(/\\\\/g, '/'))\n );\n const serdeOnlyFiles = [...discoveredSerdeFiles].filter(\n (f) => !inputFilesNormalized.has(f)\n );\n\n // Re-exports for input files (user's workflow/step definitions).\n // These must use valid relative specifiers because some frameworks pass\n // generated files like \".output/server/index.mjs\" as input files.\n const reexports = inputFiles\n .map((file) => {\n const normalizedWorkingDir = this.config.workingDir.replace(/\\\\/g, '/');\n let relativePath = relative(normalizedWorkingDir, file).replace(\n /\\\\/g,\n '/'\n );\n if (!relativePath.startsWith('./') && !relativePath.startsWith('../')) {\n relativePath = `./${relativePath}`;\n }\n return `export * from '${relativePath}';`;\n })\n .join('\\n');\n\n // Side-effect imports for serde files not in inputFiles (for class registration)\n const serdeImports = serdeOnlyFiles\n .map((file) => {\n const normalizedWorkingDir = this.config.workingDir.replace(/\\\\/g, '/');\n let relativePath = relative(normalizedWorkingDir, file).replace(\n /\\\\/g,\n '/'\n );\n if (!relativePath.startsWith('./') && !relativePath.startsWith('../')) {\n relativePath = `./${relativePath}`;\n }\n return `import '${relativePath}';`;\n })\n .join('\\n');\n\n // Combine: serde imports (for registration side effects) + re-exports\n const entryContent = serdeImports\n ? `// Serde files for cross-context class registration\\n${serdeImports}\\n${reexports}`\n : reexports;\n\n // Bundle with esbuild and our custom SWC plugin\n const normalizedClientSideEffectEntries = await withRealpaths([\n ...inputFiles,\n ...serdeOnlyFiles,\n ]);\n const clientResult = await esbuild.build({\n banner: {\n js: '// biome-ignore-all lint: generated file\\n/* eslint-disable */\\n',\n },\n stdin: {\n contents: entryContent,\n resolveDir: this.config.workingDir,\n sourcefile: 'virtual-entry.js',\n loader: 'js',\n },\n outfile: this.config.clientBundlePath,\n bundle: true,\n format: 'esm',\n platform: 'node',\n jsx: 'preserve',\n target: 'es2022',\n write: true,\n treeShaking: true,\n external: ['@workflow/core'],\n resolveExtensions: [\n '.ts',\n '.tsx',\n '.mts',\n '.cts',\n '.js',\n '.jsx',\n '.mjs',\n '.cjs',\n ],\n plugins: [\n createSwcPlugin({\n mode: 'client',\n projectRoot: this.transformProjectRoot,\n sideEffectEntries: normalizedClientSideEffectEntries,\n }),\n ],\n });\n\n this.logEsbuildMessages(clientResult, 'client library bundle');\n\n // Create .gitignore in .swc directory\n await this.createSwcGitignore();\n }\n\n /**\n * Creates a webhook handler bundle for resuming workflows via HTTP callbacks.\n *\n * @param bundle - If true, bundles dependencies (needed for Build Output API)\n */\n protected async createWebhookBundle({\n outfile,\n bundle = false,\n }: {\n outfile: string;\n bundle?: boolean;\n }): Promise<void> {\n this.logCreateWebhookBundleInfo('Creating webhook route');\n await mkdir(dirname(outfile), { recursive: true });\n\n // Create a static route that calls resumeWebhook\n // This route works for both Next.js and Vercel Build Output API\n const routeContent = `import { resumeWebhook } from 'workflow/api';\n\nasync function handler(request) {\n const url = new URL(request.url);\n // Extract token from pathname: /.well-known/workflow/v1/webhook/{token}\n const pathParts = url.pathname.split('/');\n const token = decodeURIComponent(pathParts[pathParts.length - 1]);\n\n if (!token) {\n return new Response('Missing token', { status: 400 });\n }\n\n try {\n const response = await resumeWebhook(token, request);\n return response;\n } catch (error) {\n // TODO: differentiate between invalid token and other errors\n console.error('Error during resumeWebhook', error);\n return new Response(null, { status: 404 });\n }\n}\n\nexport const GET = handler;\nexport const POST = handler;\nexport const PUT = handler;\nexport const PATCH = handler;\nexport const DELETE = handler;\nexport const HEAD = handler;\nexport const OPTIONS = handler;`;\n\n if (!bundle) {\n // For Next.js, just write the unbundled file\n await writeFile(outfile, routeContent);\n return;\n }\n\n // For Build Output API, bundle with esbuild to resolve imports\n\n const webhookEsmRequireBanner = this.getEsmRequireBanner('esm');\n const webhookBundleStart = Date.now();\n const result = await esbuild.build({\n banner: {\n js: `// biome-ignore-all lint: generated file\\n/* eslint-disable */\\n${webhookEsmRequireBanner}`,\n },\n stdin: {\n contents: routeContent,\n resolveDir: this.config.workingDir,\n sourcefile: 'webhook-route.js',\n loader: 'js',\n },\n outfile,\n absWorkingDir: this.config.workingDir,\n bundle: true,\n jsx: 'preserve',\n format: 'esm',\n platform: 'node',\n conditions: ['import', 'module', 'node', 'default'],\n target: 'es2022',\n write: true,\n treeShaking: true,\n keepNames: true,\n minify: false,\n resolveExtensions: [\n '.ts',\n '.tsx',\n '.mts',\n '.cts',\n '.js',\n '.jsx',\n '.mjs',\n '.cjs',\n ],\n sourcemap: EMIT_SOURCEMAPS_FOR_DEBUGGING,\n mainFields: ['module', 'main'],\n // Don't externalize anything - bundle everything including workflow packages\n external: [],\n });\n\n this.logEsbuildMessages(result, 'webhook bundle creation');\n this.logCreateWebhookBundleInfo(\n 'Created webhook bundle',\n `${Date.now() - webhookBundleStart}ms`\n );\n }\n\n /**\n * Creates a package.json file with the specified module type.\n */\n protected async createPackageJson(\n dir: string,\n type: 'commonjs' | 'module'\n ): Promise<void> {\n const packageJson = { type };\n await writeFile(\n join(dir, 'package.json'),\n JSON.stringify(packageJson, null, 2)\n );\n }\n\n /**\n * Creates a .vc-config.json file for Vercel Build Output API functions.\n */\n protected async createVcConfig(\n dir: string,\n config: {\n runtime?: string;\n handler?: string;\n launcherType?: string;\n architecture?: string;\n shouldAddHelpers?: boolean;\n shouldAddSourcemapSupport?: boolean;\n maxDuration?: number | 'max';\n experimentalTriggers?: Array<{\n type: 'queue/v2beta';\n topic: string;\n consumer: string;\n maxDeliveries?: number;\n retryAfterSeconds?: number;\n initialDelaySeconds?: number;\n }>;\n }\n ): Promise<void> {\n const vcConfig = {\n runtime: config.runtime ?? 'nodejs22.x',\n handler: config.handler ?? 'index.mjs',\n launcherType: config.launcherType ?? 'Nodejs',\n architecture: config.architecture ?? 'arm64',\n shouldAddHelpers: config.shouldAddHelpers ?? true,\n ...(config.maxDuration !== undefined && {\n maxDuration: config.maxDuration,\n }),\n ...(config.shouldAddSourcemapSupport !== undefined && {\n shouldAddSourcemapSupport: config.shouldAddSourcemapSupport,\n }),\n ...(config.experimentalTriggers && {\n experimentalTriggers: config.experimentalTriggers,\n }),\n };\n\n await writeFile(\n join(dir, '.vc-config.json'),\n JSON.stringify(vcConfig, null, 2)\n );\n }\n\n /**\n * Resolves a path relative to the working directory.\n */\n protected resolvePath(path: string): string {\n return resolve(this.config.workingDir, path);\n }\n\n /**\n * Ensures the directory for a file path exists, creating it if necessary.\n */\n protected async ensureDirectory(filePath: string): Promise<void> {\n await mkdir(dirname(filePath), { recursive: true });\n }\n\n private async createSwcGitignore(): Promise<void> {\n try {\n await writeFile(\n join(this.config.workingDir, '.swc', '.gitignore'),\n '*\\n'\n );\n } catch {\n // We're intentionally silently ignoring this error - creating .gitignore isn't critical\n }\n }\n\n /**\n * Whether the manifest should be exposed as a public HTTP route.\n * Controlled by the `WORKFLOW_PUBLIC_MANIFEST` environment variable.\n */\n protected get shouldExposePublicManifest(): boolean {\n return process.env.WORKFLOW_PUBLIC_MANIFEST === '1';\n }\n\n /**\n * Whether diagnostics artifacts should be emitted to Vercel output.\n * This is enabled when the resolved world target is Vercel.\n */\n protected get shouldEmitVercelDiagnostics(): boolean {\n return (\n usesVercelWorld() || this.config.buildTarget === 'vercel-build-output-api'\n );\n }\n\n /**\n * Creates a manifest JSON file containing step/workflow/class metadata\n * and graph data for visualization.\n *\n * @returns The manifest JSON string, or undefined if manifest creation failed.\n */\n protected async createManifest({\n workflowBundlePath,\n manifestDir,\n manifest,\n }: {\n workflowBundlePath: string;\n manifestDir: string;\n manifest: WorkflowManifest;\n }): Promise<string | undefined> {\n const buildStart = Date.now();\n this.logCreateManifestInfo('Creating manifest...');\n\n try {\n const workflowGraphs = await extractWorkflowGraphs(workflowBundlePath);\n\n const steps = this.convertStepsManifest(manifest.steps);\n const workflows = this.convertWorkflowsManifest(\n manifest.workflows,\n workflowGraphs\n );\n const classes = this.convertClassesManifest(manifest.classes);\n\n const output = { version: '1.0.0', steps, workflows, classes };\n const manifestJson = JSON.stringify(output, null, 2);\n\n await mkdir(manifestDir, { recursive: true });\n await writeFile(join(manifestDir, 'manifest.json'), manifestJson);\n if (this.shouldEmitVercelDiagnostics) {\n const diagnosticsManifestPath = this.resolvePath(\n '.vercel/output/diagnostics/workflows-manifest.json'\n );\n await this.ensureDirectory(diagnosticsManifestPath);\n await writeFile(diagnosticsManifestPath, manifestJson);\n }\n\n const stepCount = Object.values(steps).reduce(\n (acc, s) => acc + Object.keys(s).length,\n 0\n );\n const workflowCount = Object.values(workflows).reduce(\n (acc, w) => acc + Object.keys(w).length,\n 0\n );\n const classCount = Object.values(classes).reduce(\n (acc, c) => acc + Object.keys(c).length,\n 0\n );\n\n this.logCreateManifestInfo(\n `Created manifest with ${stepCount} ${pluralize('step', 'steps', stepCount)}, ${workflowCount} ${pluralize('workflow', 'workflows', workflowCount)}, and ${classCount} ${pluralize('class', 'classes', classCount)}`,\n `${Date.now() - buildStart}ms`\n );\n\n return manifestJson;\n } catch (error) {\n console.warn(\n 'Failed to create manifest:',\n error instanceof Error ? error.message : String(error)\n );\n return undefined;\n }\n }\n\n private convertStepsManifest(\n steps: WorkflowManifest['steps']\n ): Record<string, Record<string, { stepId: string }>> {\n const result: Record<string, Record<string, { stepId: string }>> = {};\n if (!steps) return result;\n\n for (const [filePath, entries] of Object.entries(steps)) {\n result[filePath] = {};\n for (const [name, data] of Object.entries(entries)) {\n result[filePath][name] = { stepId: data.stepId };\n }\n }\n return result;\n }\n\n private convertWorkflowsManifest(\n workflows: WorkflowManifest['workflows'],\n graphs: Record<\n string,\n Record<string, { graph: { nodes: any[]; edges: any[] } }>\n >\n ): Record<\n string,\n Record<\n string,\n { workflowId: string; graph: { nodes: any[]; edges: any[] } }\n >\n > {\n const result: Record<\n string,\n Record<\n string,\n { workflowId: string; graph: { nodes: any[]; edges: any[] } }\n >\n > = {};\n if (!workflows) return result;\n\n // Build a normalized lookup for graphs since the graph extractor uses\n // paths from workflowId (e.g. \"./workflows/hello-agent\") while the\n // manifest uses source file paths (e.g. \"workflows/hello-agent.ts\").\n // Normalize by stripping leading \"./\" and file extensions.\n const normalizedGraphs = new Map<\n string,\n Record<string, { graph: { nodes: any[]; edges: any[] } }>\n >();\n for (const [graphPath, graphEntries] of Object.entries(graphs)) {\n const normalized = graphPath\n .replace(/^\\.\\//, '')\n .replace(/\\.[^/.]+$/, '');\n normalizedGraphs.set(normalized, graphEntries);\n }\n\n for (const [filePath, entries] of Object.entries(workflows)) {\n result[filePath] = {};\n // Normalize the manifest file path for lookup\n const normalizedFilePath = filePath\n .replace(/^\\.\\//, '')\n .replace(/\\.[^/.]+$/, '');\n\n const graphEntries =\n graphs[filePath] || normalizedGraphs.get(normalizedFilePath);\n\n for (const [name, data] of Object.entries(entries)) {\n result[filePath][name] = {\n workflowId: data.workflowId,\n graph: graphEntries?.[name]?.graph || { nodes: [], edges: [] },\n };\n }\n }\n return result;\n }\n\n private convertClassesManifest(\n classes: WorkflowManifest['classes']\n ): Record<string, Record<string, { classId: string }>> {\n const result: Record<string, Record<string, { classId: string }>> = {};\n if (!classes) return result;\n\n for (const [filePath, entries] of Object.entries(classes)) {\n result[filePath] = {};\n for (const [name, data] of Object.entries(entries)) {\n result[filePath][name] = { classId: data.classId };\n }\n }\n return result;\n }\n}\n"]}
|
package/dist/build-queue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-queue.js","sourceRoot":"","sources":["../src/build-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAyB,EAAiB,EAAE;QAClD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"build-queue.js","sourceRoot":"","sources":["../src/build-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAE9B,OAAO,CAAC,IAAyB,EAAiB,EAAE;QAClD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Creates a build queue that serializes async tasks to prevent race conditions.\n *\n * When rapid file changes trigger multiple builds, this ensures they run\n * sequentially rather than concurrently, avoiding issues like:\n * - Partial file reads during writes\n * - Corrupted merge operations\n * - Duplicate/conflicting builds\n *\n * @example\n * const enqueue = createBuildQueue();\n *\n * // These will run sequentially, not concurrently\n * enqueue(() => builder.build());\n * enqueue(() => builder.build());\n */\nexport function createBuildQueue() {\n let queue = Promise.resolve();\n\n return (task: () => Promise<void>): Promise<void> => {\n queue = queue.then(task).catch((err) => {\n console.error(err);\n });\n return queue;\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-helpers.js","sourceRoot":"","sources":["../src/config-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,YAAgC;IAEhC,MAAM,cAAc,GAAqB;QACvC,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE,KAAK;KACzB,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,QAAQ,GACZ,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;QAEvD,qFAAqF;QACrF,MAAM,sBAAsB,GAC1B,eAAe,CAAC,sBAAsB,KAAK,IAAI,CAAC;QAClD,MAAM,qBAAqB,GACzB,eAAe,CAAC,qBAAqB,KAAK,IAAI,CAAC;QAEjD,OAAO;YACL,UAAU,EAAE,sBAAsB;YAClC,eAAe,EAAE,sBAAsB;YACvC,iBAAiB,EAAE,sBAAsB,IAAI,qBAAqB;SACnE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;QAC1D,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAAW;IAEX,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,6CAA6C,CAAC,GAAG,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6CAA6C,CACjE,GAAW;IAEX,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE;QAClE,GAAG;KACJ,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAOvC;IACC,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;QACnC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,EAAE,EAAE,mCAAmC;QACxD,mBAAmB,EAAE,EAAE,EAAE,mCAAmC;QAC5D,iBAAiB,EAAE,EAAE,EAAE,mCAAmC;QAC1D,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"config-helpers.js","sourceRoot":"","sources":["../src/config-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,YAAgC;IAEhC,MAAM,cAAc,GAAqB;QACvC,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE,KAAK;KACzB,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,QAAQ,GACZ,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;QAEvD,qFAAqF;QACrF,MAAM,sBAAsB,GAC1B,eAAe,CAAC,sBAAsB,KAAK,IAAI,CAAC;QAClD,MAAM,qBAAqB,GACzB,eAAe,CAAC,qBAAqB,KAAK,IAAI,CAAC;QAEjD,OAAO;YACL,UAAU,EAAE,sBAAsB;YAClC,eAAe,EAAE,sBAAsB;YACvC,iBAAiB,EAAE,sBAAsB,IAAI,qBAAqB;SACnE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,0DAA0D;QAC1D,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAAW;IAEX,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,6CAA6C,CAAC,GAAG,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,6CAA6C,CACjE,GAAW;IAEX,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE;QAClE,GAAG;KACJ,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,+BAA+B,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAOvC;IACC,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC;QACnC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,EAAE,EAAE,mCAAmC;QACxD,mBAAmB,EAAE,EAAE,EAAE,mCAAmC;QAC5D,iBAAiB,EAAE,EAAE,EAAE,mCAAmC;QAC1D,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC","sourcesContent":["import { readFile } from 'node:fs/promises';\nimport { findUp } from 'find-up';\nimport JSON5 from 'json5';\nimport type { WorkflowConfig } from './types.js';\n\nexport interface DecoratorOptions {\n decorators: boolean;\n legacyDecorator: boolean;\n decoratorMetadata: boolean;\n}\n\nexport interface DecoratorOptionsWithConfigPath {\n options: DecoratorOptions;\n configPath: string | undefined;\n}\n\n/**\n * Reads tsconfig.json and extracts decorator-related compiler options.\n * Returns decorator options based on experimentalDecorators and emitDecoratorMetadata settings.\n *\n * @param tsconfigPath - Path to tsconfig.json or jsconfig.json\n * @returns DecoratorOptions with settings based on tsconfig compilerOptions\n */\nexport async function getDecoratorOptionsFromTsConfig(\n tsconfigPath: string | undefined\n): Promise<DecoratorOptions> {\n const defaultOptions: DecoratorOptions = {\n decorators: false,\n legacyDecorator: false,\n decoratorMetadata: false,\n };\n\n if (!tsconfigPath) {\n return defaultOptions;\n }\n\n try {\n const content = await readFile(tsconfigPath, 'utf-8');\n const tsconfig: { compilerOptions?: Record<string, unknown> } =\n JSON5.parse(content);\n const compilerOptions = tsconfig.compilerOptions || {};\n\n // Match Next.js behavior: enable decorators only when experimentalDecorators is true\n const experimentalDecorators =\n compilerOptions.experimentalDecorators === true;\n const emitDecoratorMetadata =\n compilerOptions.emitDecoratorMetadata === true;\n\n return {\n decorators: experimentalDecorators,\n legacyDecorator: experimentalDecorators,\n decoratorMetadata: experimentalDecorators && emitDecoratorMetadata,\n };\n } catch {\n // If we can't read or parse the tsconfig, return defaults\n return defaultOptions;\n }\n}\n\n/**\n * Finds tsconfig.json in the given directory (or ancestors) and extracts decorator options.\n * Combines tsconfig discovery with decorator option extraction for convenience.\n *\n * @param cwd - Directory to start searching for tsconfig.json\n * @returns DecoratorOptions with settings based on tsconfig compilerOptions\n */\nexport async function getDecoratorOptionsForDirectory(\n cwd: string\n): Promise<DecoratorOptions> {\n const { options } = await getDecoratorOptionsForDirectoryWithConfigPath(cwd);\n return options;\n}\n\n/**\n * Finds tsconfig.json/jsconfig.json in the given directory tree and returns\n * both decorator options and the config path used to derive them.\n */\nexport async function getDecoratorOptionsForDirectoryWithConfigPath(\n cwd: string\n): Promise<DecoratorOptionsWithConfigPath> {\n const configPath = await findUp(['tsconfig.json', 'jsconfig.json'], {\n cwd,\n });\n const options = await getDecoratorOptionsFromTsConfig(configPath);\n return { options, configPath };\n}\n\n/**\n * Creates a partial configuration for builders that don't use bundle paths directly.\n * Used by framework integrations like Nitro where the builder computes paths internally.\n */\nexport function createBaseBuilderConfig(options: {\n workingDir: string;\n projectRoot?: string;\n dirs?: string[];\n watch?: boolean;\n externalPackages?: string[];\n runtime?: string;\n}): Omit<WorkflowConfig, 'buildTarget'> {\n return {\n dirs: options.dirs ?? ['workflows'],\n projectRoot: options.projectRoot,\n workingDir: options.workingDir,\n watch: options.watch,\n stepsBundlePath: '', // Not used by base builder methods\n workflowsBundlePath: '', // Not used by base builder methods\n webhookBundlePath: '', // Not used by base builder methods\n externalPackages: options.externalPackages,\n runtime: options.runtime,\n };\n}\n"]}
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,cAAuB;IAC7B,KAAK,EAAE,cAAc;IACrB,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,CAAC,EAAE,sCAAsC;IAC5D,mBAAmB,EAAE,CAAC,EAAE,mDAAmD;CAC5E,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,cAAuB;IAC7B,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,CAAC,EAAE,sCAAsC;IAC5D,mBAAmB,EAAE,CAAC,EAAE,mDAAmD;CAC5E,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,cAAuB;IAC7B,KAAK,EAAE,cAAc;IACrB,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,CAAC,EAAE,sCAAsC;IAC5D,mBAAmB,EAAE,CAAC,EAAE,mDAAmD;CAC5E,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,cAAuB;IAC7B,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,CAAC,EAAE,sCAAsC;IAC5D,mBAAmB,EAAE,CAAC,EAAE,mDAAmD;CAC5E,CAAC","sourcesContent":["/**\n * Queue trigger configuration for workflow step execution.\n * Steps are queued to the __wkf_step_* topic.\n */\nexport const STEP_QUEUE_TRIGGER = {\n type: 'queue/v2beta' as const,\n topic: '__wkf_step_*',\n consumer: 'default',\n retryAfterSeconds: 5, // Delay between retries (default: 60)\n initialDelaySeconds: 0, // Initial delay before first delivery (default: 0)\n};\n\n/**\n * Queue trigger configuration for workflow orchestration.\n * Workflows are queued to the __wkf_workflow_* topic.\n */\nexport const WORKFLOW_QUEUE_TRIGGER = {\n type: 'queue/v2beta' as const,\n topic: '__wkf_workflow_*',\n consumer: 'default',\n retryAfterSeconds: 5, // Delay between retries (default: 60)\n initialDelaySeconds: 0, // Initial delay before first delivery (default: 0)\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover-entries-esbuild-plugin.d.ts","sourceRoot":"","sources":["../src/discover-entries-esbuild-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"discover-entries-esbuild-plugin.d.ts","sourceRoot":"","sources":["../src/discover-entries-esbuild-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAUtC,eAAO,MAAM,SAAS,QAAuC,CAAC;AAwB9D,eAAO,MAAM,aAAa,0BAAiC,CAAC;AAK5D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CA0B3E;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE;IACL,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAiIR"}
|
|
@@ -2,7 +2,7 @@ import { readFile } from 'node:fs/promises';
|
|
|
2
2
|
import { promisify } from 'node:util';
|
|
3
3
|
import enhancedResolveOriginal from 'enhanced-resolve';
|
|
4
4
|
import { applySwcTransform } from './apply-swc-transform.js';
|
|
5
|
-
import { detectWorkflowPatterns, isGeneratedWorkflowFile,
|
|
5
|
+
import { detectWorkflowPatterns, isGeneratedWorkflowFile, } from './transform-utils.js';
|
|
6
6
|
const enhancedResolve = promisify(enhancedResolveOriginal);
|
|
7
7
|
export const jsTsRegex = /\.(ts|tsx|js|jsx|mjs|cjs|mts|cts)$/;
|
|
8
8
|
/** Returns true if a manifest section has at least one entry. */
|
|
@@ -50,7 +50,12 @@ export function createDiscoverEntriesPlugin(state, projectRoot) {
|
|
|
50
50
|
return {
|
|
51
51
|
name: 'discover-entries-esbuild-plugin',
|
|
52
52
|
setup(build) {
|
|
53
|
-
|
|
53
|
+
// Track parent→child import relationships for ALL imports (not just
|
|
54
|
+
// those with file extensions) so that `parentHasChild()` can correctly
|
|
55
|
+
// identify transitive parents of serde/step files even when the
|
|
56
|
+
// dependency chain passes through bare specifier imports like
|
|
57
|
+
// `@workflow/core/runtime` or `workflow/runtime`.
|
|
58
|
+
build.onResolve({ filter: /.*/ }, async (args) => {
|
|
54
59
|
try {
|
|
55
60
|
const resolved = await enhancedResolve(args.resolveDir, args.path);
|
|
56
61
|
if (resolved) {
|
|
@@ -124,11 +129,7 @@ export function createDiscoverEntriesPlugin(state, projectRoot) {
|
|
|
124
129
|
if (hasManifestEntries(workflowManifest.steps)) {
|
|
125
130
|
state.discoveredSteps.add(normalizedPath);
|
|
126
131
|
}
|
|
127
|
-
|
|
128
|
-
// directives, not files that just match serde patterns (internal
|
|
129
|
-
// SDK implementation files).
|
|
130
|
-
const isSdkFile = isWorkflowSdkFile(args.path);
|
|
131
|
-
if (hasManifestEntries(workflowManifest.classes) && !isSdkFile) {
|
|
132
|
+
if (hasManifestEntries(workflowManifest.classes)) {
|
|
132
133
|
state.discoveredSerdeFiles.add(normalizedPath);
|
|
133
134
|
}
|
|
134
135
|
}
|