@workflow/builders 5.0.0-beta.4 → 5.0.0-beta.41
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/README.md +26 -0
- package/dist/apply-swc-transform.d.ts +7 -2
- package/dist/apply-swc-transform.d.ts.map +1 -1
- package/dist/apply-swc-transform.js +10 -4
- package/dist/base-builder-logging.test.d.ts +2 -0
- package/dist/base-builder-logging.test.d.ts.map +1 -0
- package/dist/base-builder-logging.test.js +99 -0
- package/dist/base-builder.d.ts +132 -13
- package/dist/base-builder.d.ts.map +1 -1
- package/dist/base-builder.js +788 -92
- package/dist/build-queue.js +1 -1
- package/dist/config-helpers.d.ts +4 -1
- package/dist/config-helpers.d.ts.map +1 -1
- package/dist/config-helpers.js +63 -1
- package/dist/config-helpers.test.d.ts +2 -0
- package/dist/config-helpers.test.d.ts.map +1 -0
- package/dist/config-helpers.test.js +17 -0
- package/dist/constants.d.ts +66 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +106 -19
- package/dist/constants.test.d.ts +2 -0
- package/dist/constants.test.d.ts.map +1 -0
- package/dist/constants.test.js +90 -0
- package/dist/discover-entries-esbuild-plugin.d.ts +3 -1
- package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
- package/dist/discover-entries-esbuild-plugin.js +24 -4
- package/dist/discover-entries-esbuild-plugin.test.js +1 -1
- package/dist/esbuild-tsconfig.js +1 -1
- package/dist/esbuild-tsconfig.test.js +1 -1
- package/dist/external-package-warning.test.d.ts +2 -0
- package/dist/external-package-warning.test.d.ts.map +1 -0
- package/dist/external-package-warning.test.js +219 -0
- package/dist/fast-discovery.d.ts +29 -0
- package/dist/fast-discovery.d.ts.map +1 -0
- package/dist/fast-discovery.js +771 -0
- package/dist/fast-discovery.test.d.ts +2 -0
- package/dist/fast-discovery.test.d.ts.map +1 -0
- package/dist/fast-discovery.test.js +453 -0
- package/dist/get-input-files.test.js +34 -2
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/module-specifier.d.ts +20 -2
- package/dist/module-specifier.d.ts.map +1 -1
- package/dist/module-specifier.js +92 -17
- package/dist/module-specifier.test.js +45 -3
- package/dist/node-module-esbuild-plugin.d.ts.map +1 -1
- package/dist/node-module-esbuild-plugin.js +73 -23
- package/dist/node-module-esbuild-plugin.test.js +97 -1
- package/dist/optional-otel-api.d.ts +14 -0
- package/dist/optional-otel-api.d.ts.map +1 -0
- package/dist/optional-otel-api.js +14 -0
- package/dist/optional-typescript-alias.d.ts +2 -0
- package/dist/optional-typescript-alias.d.ts.map +1 -0
- package/dist/optional-typescript-alias.js +3 -0
- package/dist/optional-typescript.d.ts +3 -0
- package/dist/optional-typescript.d.ts.map +1 -0
- package/dist/optional-typescript.js +9 -0
- package/dist/optional-ws-native.d.ts +30 -0
- package/dist/optional-ws-native.d.ts.map +1 -0
- package/dist/optional-ws-native.js +33 -0
- package/dist/pseudo-package-esbuild-plugin.js +1 -1
- package/dist/pseudo-package-esbuild-plugin.test.js +1 -1
- package/dist/request-converter.js +1 -1
- package/dist/resolve-sourcemap.test.d.ts +2 -0
- package/dist/resolve-sourcemap.test.d.ts.map +1 -0
- package/dist/resolve-sourcemap.test.js +194 -0
- package/dist/serde-checker.js +1 -1
- package/dist/standalone.d.ts +0 -3
- package/dist/standalone.d.ts.map +1 -1
- package/dist/standalone.js +17 -41
- package/dist/step-source-registration.test.d.ts +2 -0
- package/dist/step-source-registration.test.d.ts.map +1 -0
- package/dist/step-source-registration.test.js +82 -0
- package/dist/swc-esbuild-plugin.d.ts +26 -0
- package/dist/swc-esbuild-plugin.d.ts.map +1 -1
- package/dist/swc-esbuild-plugin.js +124 -14
- package/dist/swc-esbuild-plugin.test.js +475 -6
- package/dist/transform-utils.d.ts.map +1 -1
- package/dist/transform-utils.js +45 -6
- package/dist/transform-utils.test.js +78 -6
- package/dist/types.d.ts +73 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/vercel-build-output-api.d.ts +0 -2
- package/dist/vercel-build-output-api.d.ts.map +1 -1
- package/dist/vercel-build-output-api.js +37 -60
- package/dist/workflow-alias.js +1 -1
- package/dist/workflow-alias.test.js +2 -2
- package/dist/workflows-extractor.js +8 -3
- package/dist/workflows-extractor.test.d.ts +2 -0
- package/dist/workflows-extractor.test.d.ts.map +1 -0
- package/dist/workflows-extractor.test.js +70 -0
- package/package.json +8 -7
- package/dist/apply-swc-transform.js.map +0 -1
- package/dist/base-builder.js.map +0 -1
- package/dist/build-queue.js.map +0 -1
- package/dist/config-helpers.js.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/discover-entries-esbuild-plugin.js.map +0 -1
- package/dist/discover-entries-esbuild-plugin.test.js.map +0 -1
- package/dist/esbuild-tsconfig.js.map +0 -1
- package/dist/esbuild-tsconfig.test.js.map +0 -1
- package/dist/get-input-files.test.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/module-specifier.js.map +0 -1
- package/dist/module-specifier.test.js.map +0 -1
- package/dist/node-module-esbuild-plugin.js.map +0 -1
- package/dist/node-module-esbuild-plugin.test.js.map +0 -1
- package/dist/pseudo-package-esbuild-plugin.js.map +0 -1
- package/dist/pseudo-package-esbuild-plugin.test.js.map +0 -1
- package/dist/request-converter.js.map +0 -1
- package/dist/serde-checker.js.map +0 -1
- package/dist/standalone.js.map +0 -1
- package/dist/swc-esbuild-plugin.js.map +0 -1
- package/dist/swc-esbuild-plugin.test.js.map +0 -1
- package/dist/transform-utils.js.map +0 -1
- package/dist/transform-utils.test.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/vercel-build-output-api.js.map +0 -1
- package/dist/workflow-alias.js.map +0 -1
- package/dist/workflow-alias.test.js.map +0 -1
- package/dist/workflows-extractor.js.map +0 -1
package/README.md
CHANGED
|
@@ -30,6 +30,32 @@ class MyBuilder extends BaseBuilder {
|
|
|
30
30
|
}
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
+
### Observing transforms
|
|
34
|
+
|
|
35
|
+
Builder configurations can provide an optional `onAfterTransform` observer for
|
|
36
|
+
tooling that derives metadata from the exact SWC output used by a build:
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
import type { WorkflowAfterTransformHook } from '@workflow/builders';
|
|
40
|
+
|
|
41
|
+
// Pass as `onAfterTransform` in the builder configuration.
|
|
42
|
+
const onAfterTransform: WorkflowAfterTransformHook = async ({
|
|
43
|
+
mode,
|
|
44
|
+
filename,
|
|
45
|
+
absolutePath,
|
|
46
|
+
source,
|
|
47
|
+
code,
|
|
48
|
+
workflowManifest,
|
|
49
|
+
}) => {
|
|
50
|
+
// Observe the accepted transform result.
|
|
51
|
+
};
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The observer is awaited after the transform's manifest entries have been
|
|
55
|
+
accepted. It cannot replace the generated code, and throwing aborts the build.
|
|
56
|
+
A source file may be observed multiple times across transform modes, bundles,
|
|
57
|
+
and watch rebuilds, so consumers should deduplicate results when necessary.
|
|
58
|
+
|
|
33
59
|
## Architecture
|
|
34
60
|
|
|
35
61
|
The builder system uses:
|
|
@@ -29,10 +29,15 @@ export declare function applySwcTransform(filename: string, source: string, mode
|
|
|
29
29
|
*/
|
|
30
30
|
absolutePath?: string,
|
|
31
31
|
/**
|
|
32
|
-
* Optional project root used for
|
|
32
|
+
* Optional project root used for transform context such as tsconfig lookup.
|
|
33
33
|
* Defaults to process.cwd() for backwards compatibility.
|
|
34
34
|
*/
|
|
35
|
-
projectRoot?: string
|
|
35
|
+
projectRoot?: string,
|
|
36
|
+
/**
|
|
37
|
+
* Optional project root used for package/workspace module-specifier
|
|
38
|
+
* resolution. Defaults to projectRoot for backwards compatibility.
|
|
39
|
+
*/
|
|
40
|
+
moduleSpecifierRoot?: string): Promise<{
|
|
36
41
|
code: string;
|
|
37
42
|
workflowManifest: WorkflowManifest;
|
|
38
43
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-swc-transform.d.ts","sourceRoot":"","sources":["../src/apply-swc-transform.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE;QACN,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE;QACV,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,UAAU,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,SAAS,EAAE,MAAM,GAAG;gBACnB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK;AAC5C;;;;GAIG;AACH,YAAY,CAAC,EAAE,MAAM;AACrB;;;GAGG;AACH,WAAW,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"apply-swc-transform.d.ts","sourceRoot":"","sources":["../src/apply-swc-transform.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE;QACN,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,MAAM,EAAE,MAAM,CAAC;aAChB,CAAC;SACH,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE;QACV,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,YAAY,EAAE,MAAM,GAAG;gBACtB,UAAU,EAAE,MAAM,CAAC;aACpB,CAAC;SACH,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,CAAC,gBAAgB,EAAE,MAAM,GAAG;YAC1B,CAAC,SAAS,EAAE,MAAM,GAAG;gBACnB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK;AAC5C;;;;GAIG;AACH,YAAY,CAAC,EAAE,MAAM;AACrB;;;GAGG;AACH,WAAW,CAAC,EAAE,MAAM;AACpB;;;GAGG;AACH,mBAAmB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC,CA+ED"}
|
|
@@ -24,11 +24,17 @@ export async function applySwcTransform(filename, source, mode,
|
|
|
24
24
|
*/
|
|
25
25
|
absolutePath,
|
|
26
26
|
/**
|
|
27
|
-
* Optional project root used for
|
|
27
|
+
* Optional project root used for transform context such as tsconfig lookup.
|
|
28
28
|
* Defaults to process.cwd() for backwards compatibility.
|
|
29
29
|
*/
|
|
30
|
-
projectRoot
|
|
30
|
+
projectRoot,
|
|
31
|
+
/**
|
|
32
|
+
* Optional project root used for package/workspace module-specifier
|
|
33
|
+
* resolution. Defaults to projectRoot for backwards compatibility.
|
|
34
|
+
*/
|
|
35
|
+
moduleSpecifierRoot) {
|
|
31
36
|
const resolvedProjectRoot = projectRoot ?? process.cwd();
|
|
37
|
+
const resolvedModuleSpecifierRoot = moduleSpecifierRoot ?? resolvedProjectRoot;
|
|
32
38
|
const decoratorOptions = await getDecoratorOptions(resolvedProjectRoot);
|
|
33
39
|
const swcPluginPath = require.resolve('@workflow/swc-plugin', {
|
|
34
40
|
paths: [dirname(fileURLToPath(import.meta.url))],
|
|
@@ -44,7 +50,7 @@ projectRoot) {
|
|
|
44
50
|
: isAbsolute(filename)
|
|
45
51
|
? filename
|
|
46
52
|
: join(resolvedProjectRoot, filename);
|
|
47
|
-
const { moduleSpecifier } = resolveModuleSpecifier(absoluteFilename,
|
|
53
|
+
const { moduleSpecifier } = resolveModuleSpecifier(absoluteFilename, resolvedModuleSpecifierRoot);
|
|
48
54
|
// Transform with SWC to support syntax esbuild doesn't
|
|
49
55
|
const result = await transform(source, {
|
|
50
56
|
filename,
|
|
@@ -90,4 +96,4 @@ projectRoot) {
|
|
|
90
96
|
workflowManifest: parsedWorkflows || {},
|
|
91
97
|
};
|
|
92
98
|
}
|
|
93
|
-
//# sourceMappingURL=
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktc3djLXRyYW5zZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBseS1zd2MtdHJhbnNmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUUvQyxpRkFBaUY7QUFDakYsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFHbEMsQ0FBQztBQUVKLFNBQVMsbUJBQW1CLENBQUMsV0FBb0I7SUFDL0MsTUFBTSxHQUFHLEdBQUcsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6QyxJQUFJLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUEwQkQsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsUUFBZ0IsRUFDaEIsTUFBYyxFQUNkLElBQTRDO0FBQzVDOzs7O0dBSUc7QUFDSCxZQUFxQjtBQUNyQjs7O0dBR0c7QUFDSCxXQUFvQjtBQUNwQjs7O0dBR0c7QUFDSCxtQkFBNEI7SUFLNUIsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3pELE1BQU0sMkJBQTJCLEdBQy9CLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDO0lBQzdDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRXhFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7UUFDNUQsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDakQsQ0FBQyxDQUFDO0lBRUgseUNBQXlDO0lBQ3pDLE1BQU0sWUFBWSxHQUNoQixRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN4QixRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUN6QixRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUN6QixRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTVCLDZFQUE2RTtJQUM3RSxNQUFNLGdCQUFnQixHQUFHLFlBQVk7UUFDbkMsQ0FBQyxDQUFDLFlBQVk7UUFDZCxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNwQixDQUFDLENBQUMsUUFBUTtZQUNWLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLHNCQUFzQixDQUNoRCxnQkFBZ0IsRUFDaEIsMkJBQTJCLENBQzVCLENBQUM7SUFFRix1REFBdUQ7SUFDdkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsTUFBTSxFQUFFO1FBQ3JDLFFBQVE7UUFDUixLQUFLLEVBQUUsS0FBSztRQUNaLEdBQUcsRUFBRTtZQUNILE1BQU0sRUFBRTtnQkFDTixHQUFHLENBQUMsWUFBWTtvQkFDZCxDQUFDLENBQUM7d0JBQ0UsTUFBTSxFQUFFLFlBQVk7d0JBQ3BCLEdBQUcsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3QkFDOUIsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7cUJBQ3hDO29CQUNILENBQUMsQ0FBQzt3QkFDRSxNQUFNLEVBQUUsWUFBWTt3QkFDcEIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO3dCQUM5QixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsVUFBVTtxQkFDeEMsQ0FBQzthQUNQO1lBQ0QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsWUFBWSxFQUFFLElBQUk7Z0JBQ2hCLENBQUMsQ0FBQztvQkFDRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2lCQUN0RDtnQkFDSCxDQUFDLENBQUMsU0FBUztZQUNiLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLFVBQVU7aUJBQ3BCO2dCQUNELGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO2dCQUNqRCxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxpQkFBaUI7YUFDdEQ7U0FDRjtRQUNELHNEQUFzRDtRQUN0RCxxREFBcUQ7UUFDckQsNENBQTRDO1FBQzVDLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLE1BQU0sRUFBRSxLQUFLO0tBQ2QsQ0FBQyxDQUFDO0lBRUgsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FDNUMsd0NBQXdDLENBQ3pDLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNoQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FDZCxDQUFDO0lBRXRCLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsZ0JBQWdCLEVBQUUsZUFBZSxJQUFJLEVBQUU7S0FDeEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbm9kZTptb2R1bGUnO1xuaW1wb3J0IHsgZGlybmFtZSwgaXNBYnNvbHV0ZSwgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnQHN3Yy9jb3JlJztcbmltcG9ydCB7IGdldERlY29yYXRvck9wdGlvbnNGb3JEaXJlY3RvcnkgfSBmcm9tICcuL2NvbmZpZy1oZWxwZXJzLmpzJztcbmltcG9ydCB7IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIgfSBmcm9tICcuL21vZHVsZS1zcGVjaWZpZXIuanMnO1xuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuXG4vLyBDYWNoZSBkZWNvcmF0b3Igb3B0aW9ucyBwZXIgZGlyZWN0b3J5IC0gdHNjb25maWcgZG9lc24ndCBjaGFuZ2UgZHVyaW5nIGEgYnVpbGRcbmNvbnN0IGRlY29yYXRvck9wdGlvbnNDYWNoZSA9IG5ldyBNYXA8XG4gIHN0cmluZyxcbiAgUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RGVjb3JhdG9yT3B0aW9uc0ZvckRpcmVjdG9yeT5cbj4oKTtcblxuZnVuY3Rpb24gZ2V0RGVjb3JhdG9yT3B0aW9ucyhwcm9qZWN0Um9vdD86IHN0cmluZykge1xuICBjb25zdCBjd2QgPSBwcm9qZWN0Um9vdCA/PyBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgY2FjaGVkID0gZGVjb3JhdG9yT3B0aW9uc0NhY2hlLmdldChjd2QpO1xuICBpZiAoIWNhY2hlZCkge1xuICAgIGNhY2hlZCA9IGdldERlY29yYXRvck9wdGlvbnNGb3JEaXJlY3RvcnkoY3dkKTtcbiAgICBkZWNvcmF0b3JPcHRpb25zQ2FjaGUuc2V0KGN3ZCwgY2FjaGVkKTtcbiAgfVxuICByZXR1cm4gY2FjaGVkO1xufVxuXG5leHBvcnQgdHlwZSBXb3JrZmxvd01hbmlmZXN0ID0ge1xuICBzdGVwcz86IHtcbiAgICBbcmVsYXRpdmVGaWxlTmFtZTogc3RyaW5nXToge1xuICAgICAgW2Z1bmN0aW9uTmFtZTogc3RyaW5nXToge1xuICAgICAgICBzdGVwSWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgd29ya2Zsb3dzPzoge1xuICAgIFtyZWxhdGl2ZUZpbGVOYW1lOiBzdHJpbmddOiB7XG4gICAgICBbZnVuY3Rpb25OYW1lOiBzdHJpbmddOiB7XG4gICAgICAgIHdvcmtmbG93SWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgY2xhc3Nlcz86IHtcbiAgICBbcmVsYXRpdmVGaWxlTmFtZTogc3RyaW5nXToge1xuICAgICAgW2NsYXNzTmFtZTogc3RyaW5nXToge1xuICAgICAgICBjbGFzc0lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlTd2NUcmFuc2Zvcm0oXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIHNvdXJjZTogc3RyaW5nLFxuICBtb2RlOiAnd29ya2Zsb3cnIHwgJ3N0ZXAnIHwgJ2RldGVjdCcgfCBmYWxzZSxcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFic29sdXRlIHBhdGggdG8gdGhlIGZpbGUgYmVpbmcgdHJhbnNmb3JtZWQuXG4gICAqIFVzZWQgZm9yIG1vZHVsZSBzcGVjaWZpZXIgcmVzb2x1dGlvbiB3aGVuIGZpbGVuYW1lIGlzIHJlbGF0aXZlLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGZpbGVuYW1lIGlzIGpvaW5lZCB3aXRoIHByb2Nlc3MuY3dkKCkuXG4gICAqL1xuICBhYnNvbHV0ZVBhdGg/OiBzdHJpbmcsXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcm9qZWN0IHJvb3QgdXNlZCBmb3IgdHJhbnNmb3JtIGNvbnRleHQgc3VjaCBhcyB0c2NvbmZpZyBsb29rdXAuXG4gICAqIERlZmF1bHRzIHRvIHByb2Nlc3MuY3dkKCkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAgKi9cbiAgcHJvamVjdFJvb3Q/OiBzdHJpbmcsXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcm9qZWN0IHJvb3QgdXNlZCBmb3IgcGFja2FnZS93b3Jrc3BhY2UgbW9kdWxlLXNwZWNpZmllclxuICAgKiByZXNvbHV0aW9uLiBEZWZhdWx0cyB0byBwcm9qZWN0Um9vdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gICAqL1xuICBtb2R1bGVTcGVjaWZpZXJSb290Pzogc3RyaW5nXG4pOiBQcm9taXNlPHtcbiAgY29kZTogc3RyaW5nO1xuICB3b3JrZmxvd01hbmlmZXN0OiBXb3JrZmxvd01hbmlmZXN0O1xufT4ge1xuICBjb25zdCByZXNvbHZlZFByb2plY3RSb290ID0gcHJvamVjdFJvb3QgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgcmVzb2x2ZWRNb2R1bGVTcGVjaWZpZXJSb290ID1cbiAgICBtb2R1bGVTcGVjaWZpZXJSb290ID8/IHJlc29sdmVkUHJvamVjdFJvb3Q7XG4gIGNvbnN0IGRlY29yYXRvck9wdGlvbnMgPSBhd2FpdCBnZXREZWNvcmF0b3JPcHRpb25zKHJlc29sdmVkUHJvamVjdFJvb3QpO1xuXG4gIGNvbnN0IHN3Y1BsdWdpblBhdGggPSByZXF1aXJlLnJlc29sdmUoJ0B3b3JrZmxvdy9zd2MtcGx1Z2luJywge1xuICAgIHBhdGhzOiBbZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpXSxcbiAgfSk7XG5cbiAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBUeXBlU2NyaXB0IGZpbGVcbiAgY29uc3QgaXNUeXBlU2NyaXB0ID1cbiAgICBmaWxlbmFtZS5lbmRzV2l0aCgnLnRzJykgfHxcbiAgICBmaWxlbmFtZS5lbmRzV2l0aCgnLnRzeCcpIHx8XG4gICAgZmlsZW5hbWUuZW5kc1dpdGgoJy5tdHMnKSB8fFxuICAgIGZpbGVuYW1lLmVuZHNXaXRoKCcuY3RzJyk7XG5cbiAgLy8gUmVzb2x2ZSBtb2R1bGUgc3BlY2lmaWVyIGZvciBwYWNrYWdlcyAobm9kZV9tb2R1bGVzIG9yIHdvcmtzcGFjZSBwYWNrYWdlcylcbiAgY29uc3QgYWJzb2x1dGVGaWxlbmFtZSA9IGFic29sdXRlUGF0aFxuICAgID8gYWJzb2x1dGVQYXRoXG4gICAgOiBpc0Fic29sdXRlKGZpbGVuYW1lKVxuICAgICAgPyBmaWxlbmFtZVxuICAgICAgOiBqb2luKHJlc29sdmVkUHJvamVjdFJvb3QsIGZpbGVuYW1lKTtcbiAgY29uc3QgeyBtb2R1bGVTcGVjaWZpZXIgfSA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoXG4gICAgYWJzb2x1dGVGaWxlbmFtZSxcbiAgICByZXNvbHZlZE1vZHVsZVNwZWNpZmllclJvb3RcbiAgKTtcblxuICAvLyBUcmFuc2Zvcm0gd2l0aCBTV0MgdG8gc3VwcG9ydCBzeW50YXggZXNidWlsZCBkb2Vzbid0XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYW5zZm9ybShzb3VyY2UsIHtcbiAgICBmaWxlbmFtZSxcbiAgICBzd2NyYzogZmFsc2UsXG4gICAganNjOiB7XG4gICAgICBwYXJzZXI6IHtcbiAgICAgICAgLi4uKGlzVHlwZVNjcmlwdFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBzeW50YXg6ICd0eXBlc2NyaXB0JyxcbiAgICAgICAgICAgICAgdHN4OiBmaWxlbmFtZS5lbmRzV2l0aCgnLnRzeCcpLFxuICAgICAgICAgICAgICBkZWNvcmF0b3JzOiBkZWNvcmF0b3JPcHRpb25zLmRlY29yYXRvcnMsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIHN5bnRheDogJ2VjbWFzY3JpcHQnLFxuICAgICAgICAgICAgICBqc3g6IGZpbGVuYW1lLmVuZHNXaXRoKCcuanN4JyksXG4gICAgICAgICAgICAgIGRlY29yYXRvcnM6IGRlY29yYXRvck9wdGlvbnMuZGVjb3JhdG9ycyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIHRhcmdldDogJ2VzMjAyMicsXG4gICAgICBleHBlcmltZW50YWw6IG1vZGVcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBwbHVnaW5zOiBbW3N3Y1BsdWdpblBhdGgsIHsgbW9kZSwgbW9kdWxlU3BlY2lmaWVyIH1dXSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgIHJlYWN0OiB7XG4gICAgICAgICAgcnVudGltZTogJ3ByZXNlcnZlJyxcbiAgICAgICAgfSxcbiAgICAgICAgbGVnYWN5RGVjb3JhdG9yOiBkZWNvcmF0b3JPcHRpb25zLmxlZ2FjeURlY29yYXRvcixcbiAgICAgICAgZGVjb3JhdG9yTWV0YWRhdGE6IGRlY29yYXRvck9wdGlvbnMuZGVjb3JhdG9yTWV0YWRhdGEsXG4gICAgICB9LFxuICAgIH0sXG4gICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgcHJvcGVyIHNvdXJjZSBtYXAgc3VwcG9ydCBhcyB0aGV5XG4gICAgLy8gd29uJ3QgZXZlbiBiZSB1c2VkIGluIE5vZGUuanMgYnkgZGVmYXVsdCB1bmxlc3Mgd2VcbiAgICAvLyBpbnRlcmNlcHQgZXJyb3JzIGFuZCBhcHBseSB0aGVtIG91cnNlbHZlc1xuICAgIHNvdXJjZU1hcHM6IGZhbHNlLFxuICAgIG1pbmlmeTogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IHdvcmtmbG93Q29tbWVudE1hdGNoID0gcmVzdWx0LmNvZGUubWF0Y2goXG4gICAgL1xcL1xcKlxcKl9faW50ZXJuYWxfd29ya2Zsb3dzKHsuKj99KVxcKlxcLy9zXG4gICk7XG5cbiAgY29uc3QgcGFyc2VkV29ya2Zsb3dzID0gSlNPTi5wYXJzZShcbiAgICB3b3JrZmxvd0NvbW1lbnRNYXRjaD8uWzFdIHx8ICd7fSdcbiAgKSBhcyBXb3JrZmxvd01hbmlmZXN0O1xuXG4gIHJldHVybiB7XG4gICAgY29kZTogcmVzdWx0LmNvZGUsXG4gICAgd29ya2Zsb3dNYW5pZmVzdDogcGFyc2VkV29ya2Zsb3dzIHx8IHt9LFxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-builder-logging.test.d.ts","sourceRoot":"","sources":["../src/base-builder-logging.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
5
|
+
import { BaseBuilder } from './base-builder.js';
|
|
6
|
+
class TestBuilder extends BaseBuilder {
|
|
7
|
+
async build() {
|
|
8
|
+
// no-op
|
|
9
|
+
}
|
|
10
|
+
logProgress(...args) {
|
|
11
|
+
this.logBaseBuilderInfo(...args);
|
|
12
|
+
}
|
|
13
|
+
createTestManifest(args) {
|
|
14
|
+
return this.createManifest(args);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function createBuilder(workingDir) {
|
|
18
|
+
const config = {
|
|
19
|
+
buildTarget: 'standalone',
|
|
20
|
+
workingDir,
|
|
21
|
+
dirs: ['.'],
|
|
22
|
+
stepsBundlePath: join(workingDir, '.workflow', 'steps.js'),
|
|
23
|
+
workflowsBundlePath: join(workingDir, '.workflow', 'workflows.js'),
|
|
24
|
+
webhookBundlePath: join(workingDir, '.workflow', 'webhook.js'),
|
|
25
|
+
};
|
|
26
|
+
return new TestBuilder(config);
|
|
27
|
+
}
|
|
28
|
+
describe('base builder logging', () => {
|
|
29
|
+
let testRoot;
|
|
30
|
+
let debugSpy;
|
|
31
|
+
let logSpy;
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
testRoot = mkdtempSync(join(tmpdir(), 'workflow-builder-logging-'));
|
|
34
|
+
debugSpy = vi.spyOn(console, 'debug').mockImplementation(() => { });
|
|
35
|
+
logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
36
|
+
});
|
|
37
|
+
afterEach(() => {
|
|
38
|
+
vi.unstubAllEnvs();
|
|
39
|
+
debugSpy.mockRestore();
|
|
40
|
+
logSpy.mockRestore();
|
|
41
|
+
rmSync(testRoot, { recursive: true, force: true });
|
|
42
|
+
});
|
|
43
|
+
it('hides progress logs by default', () => {
|
|
44
|
+
createBuilder(testRoot).logProgress('Created step registrations', '10ms');
|
|
45
|
+
expect(debugSpy).not.toHaveBeenCalled();
|
|
46
|
+
});
|
|
47
|
+
it('shows progress logs when DEBUG matches workflow:build', () => {
|
|
48
|
+
vi.stubEnv('DEBUG', 'workflow:build');
|
|
49
|
+
createBuilder(testRoot).logProgress('Created step registrations', '10ms');
|
|
50
|
+
expect(debugSpy).toHaveBeenCalledWith('[workflow:build] Created step registrations 10ms', '');
|
|
51
|
+
});
|
|
52
|
+
it.each([
|
|
53
|
+
'workflow:*',
|
|
54
|
+
'*',
|
|
55
|
+
])('shows progress logs when DEBUG wildcard %s matches workflow:build', (debugPattern) => {
|
|
56
|
+
vi.stubEnv('DEBUG', debugPattern);
|
|
57
|
+
createBuilder(testRoot).logProgress('Created step registrations', '10ms');
|
|
58
|
+
expect(debugSpy).toHaveBeenCalledWith('[workflow:build] Created step registrations 10ms', '');
|
|
59
|
+
});
|
|
60
|
+
it('hides progress logs when DEBUG negates workflow:build', () => {
|
|
61
|
+
vi.stubEnv('DEBUG', 'workflow:*,-workflow:build');
|
|
62
|
+
createBuilder(testRoot).logProgress('Created step registrations', '10ms');
|
|
63
|
+
expect(debugSpy).not.toHaveBeenCalled();
|
|
64
|
+
});
|
|
65
|
+
it('emits Next-like workflow compile summaries when manifests are created', async () => {
|
|
66
|
+
const workflowBundlePath = join(testRoot, 'workflow.js');
|
|
67
|
+
const manifestDir = join(testRoot, '.well-known/workflow/v1');
|
|
68
|
+
mkdirSync(manifestDir, { recursive: true });
|
|
69
|
+
writeFileSync(workflowBundlePath, '', 'utf-8');
|
|
70
|
+
const builder = createBuilder(testRoot);
|
|
71
|
+
const manifest = {
|
|
72
|
+
steps: {
|
|
73
|
+
'src/workflow.ts': {
|
|
74
|
+
stepOne: { stepId: 'step//src/workflow.ts//stepOne' },
|
|
75
|
+
stepTwo: { stepId: 'step//src/workflow.ts//stepTwo' },
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
workflows: {
|
|
79
|
+
'src/workflow.ts': {
|
|
80
|
+
run: { workflowId: 'workflow//src/workflow.ts//run' },
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
await builder.createTestManifest({
|
|
85
|
+
workflowBundlePath,
|
|
86
|
+
manifestDir,
|
|
87
|
+
manifest,
|
|
88
|
+
});
|
|
89
|
+
await builder.createTestManifest({
|
|
90
|
+
workflowBundlePath,
|
|
91
|
+
manifestDir,
|
|
92
|
+
manifest,
|
|
93
|
+
});
|
|
94
|
+
expect(logSpy).toHaveBeenCalledTimes(2);
|
|
95
|
+
expect(logSpy.mock.calls[0]?.[0]).toMatch(/^✓ Compiled workflows in \d+(?:ms|\.\d+s) \(2 steps, 1 workflow\)$/);
|
|
96
|
+
expect(logSpy.mock.calls[1]?.[0]).toMatch(/^✓ Compiled workflows in \d+(?:ms|\.\d+s) \(2 steps, 1 workflow\)$/);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1idWlsZGVyLWxvZ2dpbmcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlLWJ1aWxkZXItbG9nZ2luZy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEQsTUFBTSxXQUFZLFNBQVEsV0FBVztJQUNuQyxLQUFLLENBQUMsS0FBSztRQUNULFFBQVE7SUFDVixDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQUcsSUFBZTtRQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsSUFJekI7UUFDQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBRUQsU0FBUyxhQUFhLENBQUMsVUFBa0I7SUFDdkMsTUFBTSxNQUFNLEdBQXFCO1FBQy9CLFdBQVcsRUFBRSxZQUFZO1FBQ3pCLFVBQVU7UUFDVixJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDWCxlQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDO1FBQzFELG1CQUFtQixFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQztRQUNsRSxpQkFBaUIsRUFB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QyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3ZDLG9FQUFvRSxDQUNyRSxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1rZGlyU3luYywgbWtkdGVtcFN5bmMsIHJtU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB0eXBlIHsgV29ya2Zsb3dNYW5pZmVzdCB9IGZyb20gJy4vYXBwbHktc3djLXRyYW5zZm9ybS5qcyc7XG5pbXBvcnQgeyBCYXNlQnVpbGRlciB9IGZyb20gJy4vYmFzZS1idWlsZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhbmRhbG9uZUNvbmZpZyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5jbGFzcyBUZXN0QnVpbGRlciBleHRlbmRzIEJhc2VCdWlsZGVyIHtcbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gbm8tb3BcbiAgfVxuXG4gIHB1YmxpYyBsb2dQcm9ncmVzcyguLi5hcmdzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICB0aGlzLmxvZ0Jhc2VCdWlsZGVySW5mbyguLi5hcmdzKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVUZXN0TWFuaWZlc3QoYXJnczoge1xuICAgIHdvcmtmbG93QnVuZGxlUGF0aDogc3RyaW5nO1xuICAgIG1hbmlmZXN0RGlyOiBzdHJpbmc7XG4gICAgbWFuaWZlc3Q6IFdvcmtmbG93TWFuaWZlc3Q7XG4gIH0pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU1hbmlmZXN0KGFyZ3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1aWxkZXIod29ya2luZ0Rpcjogc3RyaW5nKTogVGVzdEJ1aWxkZXIge1xuICBjb25zdCBjb25maWc6IFN0YW5kYWxvbmVDb25maWcgPSB7XG4gICAgYnVpbGRUYXJnZXQ6ICdzdGFuZGFsb25lJyxcbiAgICB3b3JraW5nRGlyLFxuICAgIGRpcnM6IFsnLiddLFxuICAgIHN0ZXBzQnVuZGxlUGF0aDogam9pbih3b3JraW5nRGlyLCAnLndvcmtmbG93JywgJ3N0ZXBzLmpzJyksXG4gICAgd29ya2Zsb3dzQnVuZGxlUGF0aDogam9pbih3b3JraW5nRGlyLCAnLndvcmtmbG93JywgJ3dvcmtmbG93cy5qcycpLFxuICAgIHdlYmhvb2tCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICcud29ya2Zsb3cnLCAnd2ViaG9vay5qcycpLFxuICB9O1xuICByZXR1cm4gbmV3IFRlc3RCdWlsZGVyKGNvbmZpZyk7XG59XG5cbmRlc2NyaWJlKCdiYXNlIGJ1aWxkZXIgbG9nZ2luZycsICgpID0+IHtcbiAgbGV0IHRlc3RSb290OiBzdHJpbmc7XG4gIGxldCBkZWJ1Z1NweTogUmV0dXJuVHlwZTx0eXBlb2Ygdmkuc3B5T24+O1xuICBsZXQgbG9nU3B5OiBSZXR1cm5UeXBlPHR5cGVvZiB2aS5zcHlPbj47XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdGVzdFJvb3QgPSBta2R0ZW1wU3luYyhqb2luKHRtcGRpcigpLCAnd29ya2Zsb3ctYnVpbGRlci1sb2dnaW5nLScpKTtcbiAgICBkZWJ1Z1NweSA9IHZpLnNweU9uKGNvbnNvbGUsICdkZWJ1ZycpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7fSk7XG4gICAgbG9nU3B5ID0gdmkuc3B5T24oY29uc29sZSwgJ2xvZycpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7fSk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgdmkudW5zdHViQWxsRW52cygpO1xuICAgIGRlYnVnU3B5Lm1vY2tSZXN0b3JlKCk7XG4gICAgbG9nU3B5Lm1vY2tSZXN0b3JlKCk7XG4gICAgcm1TeW5jKHRlc3RSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGl0KCdoaWRlcyBwcm9ncmVzcyBsb2dzIGJ5IGRlZmF1bHQnLCAoKSA9PiB7XG4gICAgY3JlYXRlQnVpbGRlcih0ZXN0Um9vdCkubG9nUHJvZ3Jlc3MoJ0NyZWF0ZWQgc3RlcCByZWdpc3RyYXRpb25zJywgJzEwbXMnKTtcblxuICAgIGV4cGVjdChkZWJ1Z1NweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3dzIHByb2dyZXNzIGxvZ3Mgd2hlbiBERUJVRyBtYXRjaGVzIHdvcmtmbG93OmJ1aWxkJywgKCkgPT4ge1xuICAgIHZpLnN0dWJFbnYoJ0RFQlVHJywgJ3dvcmtmbG93OmJ1aWxkJyk7XG5cbiAgICBjcmVhdGVCdWlsZGVyKHRlc3RSb290KS5sb2dQcm9ncmVzcygnQ3JlYXRlZCBzdGVwIHJlZ2lzdHJhdGlvbnMnLCAnMTBtcycpO1xuXG4gICAgZXhwZWN0KGRlYnVnU3B5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgICdbd29ya2Zsb3c6YnVpbGRdIENyZWF0ZWQgc3RlcCByZWdpc3RyYXRpb25zIDEwbXMnLFxuICAgICAgJydcbiAgICApO1xuICB9KTtcblxuICBpdC5lYWNoKFtcbiAgICAnd29ya2Zsb3c6KicsXG4gICAgJyonLFxuICBdKSgnc2hvd3MgcHJvZ3Jlc3MgbG9ncyB3aGVuIERFQlVHIHdpbGRjYXJkICVzIG1hdGNoZXMgd29ya2Zsb3c6YnVpbGQnLCAoZGVidWdQYXR0ZXJuKSA9PiB7XG4gICAgdmkuc3R1YkVudignREVCVUcnLCBkZWJ1Z1BhdHRlcm4pO1xuXG4gICAgY3JlYXRlQnVpbGRlcih0ZXN0Um9vdCkubG9nUHJvZ3Jlc3MoJ0NyZWF0ZWQgc3RlcCByZWdpc3RyYXRpb25zJywgJzEwbXMnKTtcblxuICAgIGV4cGVjdChkZWJ1Z1NweSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAnW3dvcmtmbG93OmJ1aWxkXSBDcmVhdGVkIHN0ZXAgcmVnaXN0cmF0aW9ucyAxMG1zJyxcbiAgICAgICcnXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ2hpZGVzIHByb2dyZXNzIGxvZ3Mgd2hlbiBERUJVRyBuZWdhdGVzIHdvcmtmbG93OmJ1aWxkJywgKCkgPT4ge1xuICAgIHZpLnN0dWJFbnYoJ0RFQlVHJywgJ3dvcmtmbG93OiosLXdvcmtmbG93OmJ1aWxkJyk7XG5cbiAgICBjcmVhdGVCdWlsZGVyKHRlc3RSb290KS5sb2dQcm9ncmVzcygnQ3JlYXRlZCBzdGVwIHJlZ2lzdHJhdGlvbnMnLCAnMTBtcycpO1xuXG4gICAgZXhwZWN0KGRlYnVnU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnZW1pdHMgTmV4dC1saWtlIHdvcmtmbG93IGNvbXBpbGUgc3VtbWFyaWVzIHdoZW4gbWFuaWZlc3RzIGFyZSBjcmVhdGVkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHdvcmtmbG93QnVuZGxlUGF0aCA9IGpvaW4odGVzdFJvb3QsICd3b3JrZmxvdy5qcycpO1xuICAgIGNvbnN0IG1hbmlmZXN0RGlyID0gam9pbih0ZXN0Um9vdCwgJy53ZWxsLWtub3duL3dvcmtmbG93L3YxJyk7XG4gICAgbWtkaXJTeW5jKG1hbmlmZXN0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB3cml0ZUZpbGVTeW5jKHdvcmtmbG93QnVuZGxlUGF0aCwgJycsICd1dGYtOCcpO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIodGVzdFJvb3QpO1xuICAgIGNvbnN0IG1hbmlmZXN0OiBXb3JrZmxvd01hbmlmZXN0ID0ge1xuICAgICAgc3RlcHM6IHtcbiAgICAgICAgJ3NyYy93b3JrZmxvdy50cyc6IHtcbiAgICAgICAgICBzdGVwT25lOiB7IHN0ZXBJZDogJ3N0ZXAvL3NyYy93b3JrZmxvdy50cy8vc3RlcE9uZScgfSxcbiAgICAgICAgICBzdGVwVHdvOiB7IHN0ZXBJZDogJ3N0ZXAvL3NyYy93b3JrZmxvdy50cy8vc3RlcFR3bycgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgJ3NyYy93b3JrZmxvdy50cyc6IHtcbiAgICAgICAgICBydW46IHsgd29ya2Zsb3dJZDogJ3dvcmtmbG93Ly9zcmMvd29ya2Zsb3cudHMvL3J1bicgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGF3YWl0IGJ1aWxkZXIuY3JlYXRlVGVzdE1hbmlmZXN0KHtcbiAgICAgIHdvcmtmbG93QnVuZGxlUGF0aCxcbiAgICAgIG1hbmlmZXN0RGlyLFxuICAgICAgbWFuaWZlc3QsXG4gICAgfSk7XG4gICAgYXdhaXQgYnVpbGRlci5jcmVhdGVUZXN0TWFuaWZlc3Qoe1xuICAgICAgd29ya2Zsb3dCdW5kbGVQYXRoLFxuICAgICAgbWFuaWZlc3REaXIsXG4gICAgICBtYW5pZmVzdCxcbiAgICB9KTtcblxuICAgIGV4cGVjdChsb2dTcHkpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygyKTtcbiAgICBleHBlY3QobG9nU3B5Lm1vY2suY2FsbHNbMF0/LlswXSkudG9NYXRjaChcbiAgICAgIC9e4pyTIENvbXBpbGVkIHdvcmtmbG93cyBpbiBcXGQrKD86bXN8XFwuXFxkK3MpIFxcKDIgc3RlcHMsIDEgd29ya2Zsb3dcXCkkL1xuICAgICk7XG4gICAgZXhwZWN0KGxvZ1NweS5tb2NrLmNhbGxzWzFdPy5bMF0pLnRvTWF0Y2goXG4gICAgICAvXuKckyBDb21waWxlZCB3b3JrZmxvd3MgaW4gXFxkKyg/Om1zfFxcLlxcZCtzKSBcXCgyIHN0ZXBzLCAxIHdvcmtmbG93XFwpJC9cbiAgICApO1xuICB9KTtcbn0pO1xuIl19
|
package/dist/base-builder.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import * as esbuild from 'esbuild';
|
|
2
2
|
import { type WorkflowManifest } from './apply-swc-transform.js';
|
|
3
|
-
import type
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
discoveredWorkflows: Set<string>;
|
|
7
|
-
discoveredSerdeFiles: Set<string>;
|
|
8
|
-
}
|
|
3
|
+
import { type DiscoveredEntries } from './fast-discovery.js';
|
|
4
|
+
import type { SourcemapMode, WorkflowConfig } from './types.js';
|
|
5
|
+
export type { DiscoveredEntries } from './fast-discovery.js';
|
|
9
6
|
/**
|
|
10
7
|
* Base class for workflow builders. Provides common build logic for transforming
|
|
11
8
|
* workflow source files into deployable bundles using esbuild and SWC.
|
|
@@ -14,14 +11,21 @@ export interface DiscoveredEntries {
|
|
|
14
11
|
*/
|
|
15
12
|
export declare abstract class BaseBuilder {
|
|
16
13
|
protected config: WorkflowConfig;
|
|
17
|
-
constructor(config: WorkflowConfig);
|
|
18
|
-
protected get transformProjectRoot(): string;
|
|
19
14
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
15
|
+
* Tracks which external packages have already been warned about
|
|
16
|
+
* to avoid duplicate warnings across multiple discoverEntries() calls.
|
|
22
17
|
*/
|
|
23
|
-
|
|
18
|
+
private warnedExternalPackages;
|
|
19
|
+
private workflowBuildStartTime;
|
|
20
|
+
private manifestTransformCache;
|
|
21
|
+
constructor(config: WorkflowConfig);
|
|
22
|
+
protected get transformProjectRoot(): string;
|
|
23
|
+
protected get moduleSpecifierRoot(): string;
|
|
24
24
|
protected logBaseBuilderInfo(...args: unknown[]): void;
|
|
25
|
+
private startWorkflowBuildTimer;
|
|
26
|
+
private getWorkflowBuildDuration;
|
|
27
|
+
private resetWorkflowBuildTimer;
|
|
28
|
+
private getWorkflowBuildSummary;
|
|
25
29
|
private logCreateWorkflowsBundleInfo;
|
|
26
30
|
private logCreateWebhookBundleInfo;
|
|
27
31
|
private logCreateManifestInfo;
|
|
@@ -63,7 +67,27 @@ export declare abstract class BaseBuilder {
|
|
|
63
67
|
* (e.g., when files are added/removed during watch mode).
|
|
64
68
|
*/
|
|
65
69
|
private discoveredEntries;
|
|
70
|
+
clearDiscoveredEntriesCache(): void;
|
|
71
|
+
clearManifestTransformCache(): void;
|
|
72
|
+
/**
|
|
73
|
+
* Pseudo-packages that should not be checked for workflow patterns.
|
|
74
|
+
*/
|
|
75
|
+
private static readonly PSEUDO_PACKAGES;
|
|
76
|
+
/**
|
|
77
|
+
* Checks each package in externalPackages for workflow patterns and emits
|
|
78
|
+
* warnings if any contain "use step", "use workflow" directives, or
|
|
79
|
+
* serialization classes. These patterns will not be transformed by the
|
|
80
|
+
* workflow compiler when the package is externalized.
|
|
81
|
+
*/
|
|
82
|
+
private warnAboutExternalWorkflowPackages;
|
|
66
83
|
protected discoverEntries(inputs: string[], outdir: string, tsconfigPath?: string): Promise<DiscoveredEntries>;
|
|
84
|
+
/**
|
|
85
|
+
* Writes generated files atomically where possible. On Windows, Next.js can
|
|
86
|
+
* briefly hold generated route files open while compiling them, which makes
|
|
87
|
+
* rename-over-existing fail with EPERM/EACCES. In that case, fall back to a
|
|
88
|
+
* direct overwrite so watch rebuilds can still make progress.
|
|
89
|
+
*/
|
|
90
|
+
private writeGeneratedFile;
|
|
67
91
|
/**
|
|
68
92
|
* Writes debug information to a JSON file for troubleshooting build issues.
|
|
69
93
|
* Uses atomic write (temp file + rename) to prevent race conditions when
|
|
@@ -79,21 +103,40 @@ export declare abstract class BaseBuilder {
|
|
|
79
103
|
* Converts an absolute file path to a normalized relative path for the manifest.
|
|
80
104
|
*/
|
|
81
105
|
private getRelativeFilepath;
|
|
106
|
+
private getCachedManifestTransform;
|
|
107
|
+
protected createRouteImportSpecifier(file: string, routeDir: string): string;
|
|
108
|
+
protected createStepSourceRegistrationFile({ inputFiles, outfile, tsconfigPath, discoveredEntries, }: {
|
|
109
|
+
inputFiles: string[];
|
|
110
|
+
outfile: string;
|
|
111
|
+
tsconfigPath?: string;
|
|
112
|
+
discoveredEntries?: DiscoveredEntries;
|
|
113
|
+
}): Promise<WorkflowManifest>;
|
|
82
114
|
/**
|
|
83
115
|
* Creates a bundle for workflow step functions.
|
|
84
116
|
* Steps have full Node.js runtime access and handle side effects, API calls, etc.
|
|
85
117
|
*
|
|
86
118
|
* @param externalizeNonSteps - If true, only bundles step entry points and externalizes other code
|
|
119
|
+
* @param sourceStepRegistrationImports - If true, emits a source import registration file instead of bundling step registrations
|
|
120
|
+
* @param bundleTransitiveLocalStepDependencies - If true, also bundles project-local files imported by step entries for direct runtime loading
|
|
87
121
|
* @returns Build context (for watch mode) and the collected workflow manifest
|
|
88
122
|
*/
|
|
89
|
-
protected createStepsBundle({ inputFiles, format, outfile, externalizeNonSteps, rewriteTsExtensions, tsconfigPath, discoveredEntries, }: {
|
|
123
|
+
protected createStepsBundle({ inputFiles, format, outfile, externalizeNonSteps, bundleTransitiveLocalStepDependencies, sourceStepRegistrationImports, rewriteTsExtensions, tsconfigPath, discoveredEntries, skipEsmRequireBanner, }: {
|
|
90
124
|
tsconfigPath?: string;
|
|
91
125
|
inputFiles: string[];
|
|
92
126
|
outfile: string;
|
|
93
127
|
format?: 'cjs' | 'esm';
|
|
94
128
|
externalizeNonSteps?: boolean;
|
|
129
|
+
bundleTransitiveLocalStepDependencies?: boolean;
|
|
130
|
+
sourceStepRegistrationImports?: boolean;
|
|
95
131
|
rewriteTsExtensions?: boolean;
|
|
96
132
|
discoveredEntries?: DiscoveredEntries;
|
|
133
|
+
/**
|
|
134
|
+
* When true, skip the `createRequire` banner on the steps bundle.
|
|
135
|
+
* Used by `createCombinedBundle` with `bundleFinalOutput: true` where
|
|
136
|
+
* the outer esbuild pass provides its own banner, preventing the
|
|
137
|
+
* `__createRequire` identifier from being declared twice after inlining.
|
|
138
|
+
*/
|
|
139
|
+
skipEsmRequireBanner?: boolean;
|
|
97
140
|
}): Promise<{
|
|
98
141
|
context: esbuild.BuildContext | undefined;
|
|
99
142
|
manifest: WorkflowManifest;
|
|
@@ -116,6 +159,39 @@ export declare abstract class BaseBuilder {
|
|
|
116
159
|
manifest: WorkflowManifest;
|
|
117
160
|
interimBundleCtx?: esbuild.BuildContext;
|
|
118
161
|
bundleFinal?: (interimBundleResult: string) => Promise<void>;
|
|
162
|
+
/** The raw workflow VM code (before wrapping with entrypoint) */
|
|
163
|
+
interimBundleText?: string;
|
|
164
|
+
}>;
|
|
165
|
+
/**
|
|
166
|
+
* V2: Creates a combined bundle that includes both step registrations and
|
|
167
|
+
* workflow orchestration in a single route. The combined entrypoint executes
|
|
168
|
+
* steps inline when possible, reducing function invocations and queue overhead.
|
|
169
|
+
*
|
|
170
|
+
* This method reuses createStepsBundle (for step registrations) and
|
|
171
|
+
* createWorkflowsBundle (for workflow VM code), then combines them into
|
|
172
|
+
* a single route file using workflowEntrypoint().
|
|
173
|
+
*/
|
|
174
|
+
protected createCombinedBundle({ inputFiles, stepsOutfile, flowOutfile, format, bundleFinalOutput, tsconfigPath, externalizeNonSteps, bundleTransitiveLocalStepDependencies, sourceStepRegistrationImports, discoveredEntries, }: {
|
|
175
|
+
inputFiles: string[];
|
|
176
|
+
/** Output path for the step registrations bundle (side effects only) */
|
|
177
|
+
stepsOutfile: string;
|
|
178
|
+
/** Output path for the combined route file */
|
|
179
|
+
flowOutfile: string;
|
|
180
|
+
format?: 'cjs' | 'esm';
|
|
181
|
+
bundleFinalOutput?: boolean;
|
|
182
|
+
tsconfigPath?: string;
|
|
183
|
+
externalizeNonSteps?: boolean;
|
|
184
|
+
bundleTransitiveLocalStepDependencies?: boolean;
|
|
185
|
+
sourceStepRegistrationImports?: boolean;
|
|
186
|
+
discoveredEntries?: DiscoveredEntries;
|
|
187
|
+
}): Promise<{
|
|
188
|
+
manifest: WorkflowManifest;
|
|
189
|
+
stepsContext?: esbuild.BuildContext;
|
|
190
|
+
interimBundleCtx?: esbuild.BuildContext;
|
|
191
|
+
bundleFinal?: (interimBundleResult: string) => Promise<void>;
|
|
192
|
+
discoveredEntries: DiscoveredEntries;
|
|
193
|
+
stepsManifest: WorkflowManifest;
|
|
194
|
+
workflowsManifest: WorkflowManifest;
|
|
119
195
|
}>;
|
|
120
196
|
/**
|
|
121
197
|
* Creates a client library bundle for workflow execution.
|
|
@@ -152,6 +228,7 @@ export declare abstract class BaseBuilder {
|
|
|
152
228
|
topic: string;
|
|
153
229
|
consumer: string;
|
|
154
230
|
maxDeliveries?: number;
|
|
231
|
+
maxConcurrency?: number;
|
|
155
232
|
retryAfterSeconds?: number;
|
|
156
233
|
initialDelaySeconds?: number;
|
|
157
234
|
}>;
|
|
@@ -164,7 +241,9 @@ export declare abstract class BaseBuilder {
|
|
|
164
241
|
* Ensures the directory for a file path exists, creating it if necessary.
|
|
165
242
|
*/
|
|
166
243
|
protected ensureDirectory(filePath: string): Promise<void>;
|
|
167
|
-
|
|
244
|
+
protected ensureSwcIgnored(): Promise<void>;
|
|
245
|
+
private ensureProjectSwcGitignoreEntry;
|
|
246
|
+
private createSwcDirectoryGitignore;
|
|
168
247
|
/**
|
|
169
248
|
* Whether the manifest should be exposed as a public HTTP route.
|
|
170
249
|
* Controlled by the `WORKFLOW_PUBLIC_MANIFEST` environment variable.
|
|
@@ -175,6 +254,46 @@ export declare abstract class BaseBuilder {
|
|
|
175
254
|
* emit one.
|
|
176
255
|
*/
|
|
177
256
|
protected getDiagnosticsManifestPath(): string | undefined;
|
|
257
|
+
/**
|
|
258
|
+
* Whether this is a development/watch build (e.g. `next dev`, `nitro dev`,
|
|
259
|
+
* or a Vite-based dev server for astro/sveltekit/vite). `config.watch` is
|
|
260
|
+
* plumbed by the builders that own a dev server (next, nitro, nest); the
|
|
261
|
+
* Vite-based integrations don't set it but run with
|
|
262
|
+
* `NODE_ENV === 'development'`. When neither signal is present we treat the
|
|
263
|
+
* build as production, so CLI/Vercel production builds default to off.
|
|
264
|
+
*/
|
|
265
|
+
protected get isDevelopmentBuild(): boolean;
|
|
266
|
+
/**
|
|
267
|
+
* Default source map mode for the stack-relevant bundles (steps + the
|
|
268
|
+
* intermediate workflow VM bundle): inline source maps in development so
|
|
269
|
+
* stack traces point at source files, and off in production so function
|
|
270
|
+
* bundles stay small (helps stay under the Vercel 250MB function limit) and
|
|
271
|
+
* skip the source-map-support runtime shim. The `sourcemap` config option
|
|
272
|
+
* and `WORKFLOW_SOURCEMAP` env var override this in either environment.
|
|
273
|
+
*/
|
|
274
|
+
protected get defaultSourcemapMode(): SourcemapMode;
|
|
275
|
+
/**
|
|
276
|
+
* Resolve the effective source map mode for a given call site. Precedence:
|
|
277
|
+
* explicit `sourcemap` config > `WORKFLOW_SOURCEMAP` env var > the call
|
|
278
|
+
* site's default. Returned value is passed directly to esbuild's
|
|
279
|
+
* `sourcemap` option.
|
|
280
|
+
*/
|
|
281
|
+
protected resolveSourcemap(defaultMode: SourcemapMode): SourcemapMode;
|
|
282
|
+
/**
|
|
283
|
+
* Resolve whether workflow/step files under `node_modules` are discovered.
|
|
284
|
+
* Precedence: explicit `discoverWorkflowsInNodeModules` config > the
|
|
285
|
+
* `WORKFLOW_DISCOVER_NODE_MODULES` env var (`0`/`false` disables) > the
|
|
286
|
+
* default (`true`, discover them).
|
|
287
|
+
*/
|
|
288
|
+
protected resolveDiscoverWorkflowsInNodeModules(): boolean;
|
|
289
|
+
/**
|
|
290
|
+
* Whether the resolved source map mode emits any source maps at all.
|
|
291
|
+
* Used by consumers like the Vercel builder to decide whether to include
|
|
292
|
+
* the source-map-support runtime shim in generated functions. Uses the same
|
|
293
|
+
* environment-aware default (`defaultSourcemapMode`) as the step/workflow
|
|
294
|
+
* bundles, so a production build with no override omits the shim.
|
|
295
|
+
*/
|
|
296
|
+
protected get sourcemapsEnabled(): boolean;
|
|
178
297
|
/**
|
|
179
298
|
* Creates a manifest JSON file containing step/workflow/class metadata
|
|
180
299
|
* and graph data for visualization.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-builder.d.ts","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-builder.d.ts","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"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"}
|