@workflow/builders 5.0.0-beta.3 → 5.0.0-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/apply-swc-transform.d.ts +7 -2
  2. package/dist/apply-swc-transform.d.ts.map +1 -1
  3. package/dist/apply-swc-transform.js +10 -4
  4. package/dist/base-builder-logging.test.d.ts +2 -0
  5. package/dist/base-builder-logging.test.d.ts.map +1 -0
  6. package/dist/base-builder-logging.test.js +99 -0
  7. package/dist/base-builder.d.ts +127 -13
  8. package/dist/base-builder.d.ts.map +1 -1
  9. package/dist/base-builder.js +812 -102
  10. package/dist/build-queue.js +1 -1
  11. package/dist/config-helpers.d.ts +4 -1
  12. package/dist/config-helpers.d.ts.map +1 -1
  13. package/dist/config-helpers.js +63 -1
  14. package/dist/config-helpers.test.d.ts +2 -0
  15. package/dist/config-helpers.test.d.ts.map +1 -0
  16. package/dist/config-helpers.test.js +17 -0
  17. package/dist/constants.d.ts +31 -5
  18. package/dist/constants.d.ts.map +1 -1
  19. package/dist/constants.js +71 -19
  20. package/dist/constants.test.d.ts +2 -0
  21. package/dist/constants.test.d.ts.map +1 -0
  22. package/dist/constants.test.js +40 -0
  23. package/dist/discover-entries-esbuild-plugin.d.ts +3 -1
  24. package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
  25. package/dist/discover-entries-esbuild-plugin.js +24 -4
  26. package/dist/discover-entries-esbuild-plugin.test.js +1 -1
  27. package/dist/esbuild-tsconfig.js +1 -1
  28. package/dist/esbuild-tsconfig.test.js +1 -1
  29. package/dist/external-package-warning.test.d.ts +2 -0
  30. package/dist/external-package-warning.test.d.ts.map +1 -0
  31. package/dist/external-package-warning.test.js +219 -0
  32. package/dist/fast-discovery.d.ts +20 -0
  33. package/dist/fast-discovery.d.ts.map +1 -0
  34. package/dist/fast-discovery.js +774 -0
  35. package/dist/fast-discovery.test.d.ts +2 -0
  36. package/dist/fast-discovery.test.d.ts.map +1 -0
  37. package/dist/fast-discovery.test.js +336 -0
  38. package/dist/get-input-files.test.js +34 -2
  39. package/dist/index.d.ts +8 -3
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +9 -4
  42. package/dist/module-specifier.d.ts +20 -2
  43. package/dist/module-specifier.d.ts.map +1 -1
  44. package/dist/module-specifier.js +92 -17
  45. package/dist/module-specifier.test.js +45 -3
  46. package/dist/node-compat-banner.d.ts +15 -0
  47. package/dist/node-compat-banner.d.ts.map +1 -0
  48. package/dist/node-compat-banner.js +15 -0
  49. package/dist/node-module-esbuild-plugin.d.ts.map +1 -1
  50. package/dist/node-module-esbuild-plugin.js +73 -23
  51. package/dist/node-module-esbuild-plugin.test.js +97 -1
  52. package/dist/optional-otel-api.d.ts +14 -0
  53. package/dist/optional-otel-api.d.ts.map +1 -0
  54. package/dist/optional-otel-api.js +14 -0
  55. package/dist/optional-pg-native-alias.d.ts +2 -0
  56. package/dist/optional-pg-native-alias.d.ts.map +1 -0
  57. package/dist/optional-pg-native-alias.js +3 -0
  58. package/dist/optional-pg-native.d.ts +3 -0
  59. package/dist/optional-pg-native.d.ts.map +1 -0
  60. package/dist/optional-pg-native.js +3 -0
  61. package/dist/optional-typescript-alias.d.ts +2 -0
  62. package/dist/optional-typescript-alias.d.ts.map +1 -0
  63. package/dist/optional-typescript-alias.js +3 -0
  64. package/dist/optional-typescript.d.ts +3 -0
  65. package/dist/optional-typescript.d.ts.map +1 -0
  66. package/dist/optional-typescript.js +9 -0
  67. package/dist/pseudo-package-esbuild-plugin.js +1 -1
  68. package/dist/pseudo-package-esbuild-plugin.test.js +1 -1
  69. package/dist/request-converter.js +1 -1
  70. package/dist/resolve-sourcemap.test.d.ts +2 -0
  71. package/dist/resolve-sourcemap.test.d.ts.map +1 -0
  72. package/dist/resolve-sourcemap.test.js +194 -0
  73. package/dist/serde-checker.js +1 -1
  74. package/dist/standalone.d.ts +0 -3
  75. package/dist/standalone.d.ts.map +1 -1
  76. package/dist/standalone.js +12 -41
  77. package/dist/step-source-registration.test.d.ts +2 -0
  78. package/dist/step-source-registration.test.d.ts.map +1 -0
  79. package/dist/step-source-registration.test.js +82 -0
  80. package/dist/swc-esbuild-plugin.d.ts +10 -0
  81. package/dist/swc-esbuild-plugin.d.ts.map +1 -1
  82. package/dist/swc-esbuild-plugin.js +116 -14
  83. package/dist/swc-esbuild-plugin.test.js +370 -6
  84. package/dist/transform-utils.d.ts.map +1 -1
  85. package/dist/transform-utils.js +45 -6
  86. package/dist/transform-utils.test.js +78 -6
  87. package/dist/types.d.ts +38 -2
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js +1 -1
  90. package/dist/vercel-build-output-api.d.ts +0 -2
  91. package/dist/vercel-build-output-api.d.ts.map +1 -1
  92. package/dist/vercel-build-output-api.js +31 -59
  93. package/dist/workflow-alias.js +1 -1
  94. package/dist/workflow-alias.test.js +1 -1
  95. package/dist/workflows-extractor.js +8 -3
  96. package/dist/workflows-extractor.test.d.ts +2 -0
  97. package/dist/workflows-extractor.test.d.ts.map +1 -0
  98. package/dist/workflows-extractor.test.js +70 -0
  99. package/dist/world-target.d.ts +20 -0
  100. package/dist/world-target.d.ts.map +1 -0
  101. package/dist/world-target.js +74 -0
  102. package/dist/world-target.test.d.ts +2 -0
  103. package/dist/world-target.test.d.ts.map +1 -0
  104. package/dist/world-target.test.js +106 -0
  105. package/package.json +9 -7
  106. package/dist/apply-swc-transform.js.map +0 -1
  107. package/dist/base-builder.js.map +0 -1
  108. package/dist/build-queue.js.map +0 -1
  109. package/dist/config-helpers.js.map +0 -1
  110. package/dist/constants.js.map +0 -1
  111. package/dist/discover-entries-esbuild-plugin.js.map +0 -1
  112. package/dist/discover-entries-esbuild-plugin.test.js.map +0 -1
  113. package/dist/esbuild-tsconfig.js.map +0 -1
  114. package/dist/esbuild-tsconfig.test.js.map +0 -1
  115. package/dist/get-input-files.test.js.map +0 -1
  116. package/dist/index.js.map +0 -1
  117. package/dist/module-specifier.js.map +0 -1
  118. package/dist/module-specifier.test.js.map +0 -1
  119. package/dist/node-module-esbuild-plugin.js.map +0 -1
  120. package/dist/node-module-esbuild-plugin.test.js.map +0 -1
  121. package/dist/pseudo-package-esbuild-plugin.js.map +0 -1
  122. package/dist/pseudo-package-esbuild-plugin.test.js.map +0 -1
  123. package/dist/request-converter.js.map +0 -1
  124. package/dist/serde-checker.js.map +0 -1
  125. package/dist/standalone.js.map +0 -1
  126. package/dist/swc-esbuild-plugin.js.map +0 -1
  127. package/dist/swc-esbuild-plugin.test.js.map +0 -1
  128. package/dist/transform-utils.js.map +0 -1
  129. package/dist/transform-utils.test.js.map +0 -1
  130. package/dist/types.js.map +0 -1
  131. package/dist/vercel-build-output-api.js.map +0 -1
  132. package/dist/workflow-alias.js.map +0 -1
  133. package/dist/workflow-alias.test.js.map +0 -1
  134. package/dist/workflows-extractor.js.map +0 -1
@@ -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 module specifier resolution.
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): Promise<{
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,GACnB,OAAO,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC,CA6ED"}
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 module specifier resolution.
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, resolvedProjectRoot);
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=apply-swc-transform.js.map
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktc3djLXRyYW5zZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBseS1zd2MtdHJhbnNmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUUvQyxpRkFBaUY7QUFDakYsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFHbEMsQ0FBQztBQUVKLFNBQVMsbUJBQW1CLENBQUMsV0FBb0I7SUFDL0MsTUFBTSxHQUFHLEdBQUcsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6QyxJQUFJLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUEwQkQsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsUUFBZ0IsRUFDaEIsTUFBYyxFQUNkLElBQTRD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QUk7UUFDakIsZ0JBQWdCLEVBQUUsZUFBZSxJQUFJLEVBQUU7S0FDeEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbm9kZTptb2R1bGUnO1xuaW1wb3J0IHsgZGlybmFtZSwgaXNBYnNvbHV0ZSwgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnQHN3Yy9jb3JlJztcbmltcG9ydCB7IGdldERlY29yYXRvck9wdGlvbnNGb3JEaXJlY3RvcnkgfSBmcm9tICcuL2NvbmZpZy1oZWxwZXJzLmpzJztcbmltcG9ydCB7IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIgfSBmcm9tICcuL21vZHVsZS1zcGVjaWZpZXIuanMnO1xuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuXG4vLyBDYWNoZSBkZWNvcmF0b3Igb3B0aW9ucyBwZXIgZGlyZWN0b3J5IC0gdHNjb25maWcgZG9lc24ndCBjaGFuZ2UgZHVyaW5nIGEgYnVpbGRcbmNvbnN0IGRlY29yYXRvck9wdGlvbnNDYWNoZSA9IG5ldyBNYXA8XG4gIHN0cmluZyxcbiAgUmV0dXJuVHlwZTx0eXBlb2YgZ2V0RGVjb3JhdG9yT3B0aW9uc0ZvckRpcmVjdG9yeT5cbj4oKTtcblxuZnVuY3Rpb24gZ2V0RGVjb3JhdG9yT3B0aW9ucyhwcm9qZWN0Um9vdD86IHN0cmluZykge1xuICBjb25zdCBjd2QgPSBwcm9qZWN0Um9vdCA/PyBwcm9jZXNzLmN3ZCgpO1xuICBsZXQgY2FjaGVkID0gZGVjb3JhdG9yT3B0aW9uc0NhY2hlLmdldChjd2QpO1xuICBpZiAoIWNhY2hlZCkge1xuICAgIGNhY2hlZCA9IGdldERlY29yYXRvck9wdGlvbnNGb3JEaXJlY3RvcnkoY3dkKTtcbiAgICBkZWNvcmF0b3JPcHRpb25zQ2FjaGUuc2V0KGN3ZCwgY2FjaGVkKTtcbiAgfVxuICByZXR1cm4gY2FjaGVkO1xufVxuXG5leHBvcnQgdHlwZSBXb3JrZmxvd01hbmlmZXN0ID0ge1xuICBzdGVwcz86IHtcbiAgICBbcmVsYXRpdmVGaWxlTmFtZTogc3RyaW5nXToge1xuICAgICAgW2Z1bmN0aW9uTmFtZTogc3RyaW5nXToge1xuICAgICAgICBzdGVwSWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgd29ya2Zsb3dzPzoge1xuICAgIFtyZWxhdGl2ZUZpbGVOYW1lOiBzdHJpbmddOiB7XG4gICAgICBbZnVuY3Rpb25OYW1lOiBzdHJpbmddOiB7XG4gICAgICAgIHdvcmtmbG93SWQ6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgY2xhc3Nlcz86IHtcbiAgICBbcmVsYXRpdmVGaWxlTmFtZTogc3RyaW5nXToge1xuICAgICAgW2NsYXNzTmFtZTogc3RyaW5nXToge1xuICAgICAgICBjbGFzc0lkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBwbHlTd2NUcmFuc2Zvcm0oXG4gIGZpbGVuYW1lOiBzdHJpbmcsXG4gIHNvdXJjZTogc3RyaW5nLFxuICBtb2RlOiAnd29ya2Zsb3cnIHwgJ3N0ZXAnIHwgJ2RldGVjdCcgfCBmYWxzZSxcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFic29sdXRlIHBhdGggdG8gdGhlIGZpbGUgYmVpbmcgdHJhbnNmb3JtZWQuXG4gICAqIFVzZWQgZm9yIG1vZHVsZSBzcGVjaWZpZXIgcmVzb2x1dGlvbiB3aGVuIGZpbGVuYW1lIGlzIHJlbGF0aXZlLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGZpbGVuYW1lIGlzIGpvaW5lZCB3aXRoIHByb2Nlc3MuY3dkKCkuXG4gICAqL1xuICBhYnNvbHV0ZVBhdGg/OiBzdHJpbmcsXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcm9qZWN0IHJvb3QgdXNlZCBmb3IgdHJhbnNmb3JtIGNvbnRleHQgc3VjaCBhcyB0c2NvbmZpZyBsb29rdXAuXG4gICAqIERlZmF1bHRzIHRvIHByb2Nlc3MuY3dkKCkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAgKi9cbiAgcHJvamVjdFJvb3Q/OiBzdHJpbmcsXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcm9qZWN0IHJvb3QgdXNlZCBmb3IgcGFja2FnZS93b3Jrc3BhY2UgbW9kdWxlLXNwZWNpZmllclxuICAgKiByZXNvbHV0aW9uLiBEZWZhdWx0cyB0byBwcm9qZWN0Um9vdCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gICAqL1xuICBtb2R1bGVTcGVjaWZpZXJSb290Pzogc3RyaW5nXG4pOiBQcm9taXNlPHtcbiAgY29kZTogc3RyaW5nO1xuICB3b3JrZmxvd01hbmlmZXN0OiBXb3JrZmxvd01hbmlmZXN0O1xufT4ge1xuICBjb25zdCByZXNvbHZlZFByb2plY3RSb290ID0gcHJvamVjdFJvb3QgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgcmVzb2x2ZWRNb2R1bGVTcGVjaWZpZXJSb290ID1cbiAgICBtb2R1bGVTcGVjaWZpZXJSb290ID8/IHJlc29sdmVkUHJvamVjdFJvb3Q7XG4gIGNvbnN0IGRlY29yYXRvck9wdGlvbnMgPSBhd2FpdCBnZXREZWNvcmF0b3JPcHRpb25zKHJlc29sdmVkUHJvamVjdFJvb3QpO1xuXG4gIGNvbnN0IHN3Y1BsdWdpblBhdGggPSByZXF1aXJlLnJlc29sdmUoJ0B3b3JrZmxvdy9zd2MtcGx1Z2luJywge1xuICAgIHBhdGhzOiBbZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpXSxcbiAgfSk7XG5cbiAgLy8gRGV0ZXJtaW5lIGlmIHRoaXMgaXMgYSBUeXBlU2NyaXB0IGZpbGVcbiAgY29uc3QgaXNUeXBlU2NyaXB0ID1cbiAgICBmaWxlbmFtZS5lbmRzV2l0aCgnLnRzJykgfHxcbiAgICBmaWxlbmFtZS5lbmRzV2l0aCgnLnRzeCcpIHx8XG4gICAgZmlsZW5hbWUuZW5kc1dpdGgoJy5tdHMnKSB8fFxuICAgIGZpbGVuYW1lLmVuZHNXaXRoKCcuY3RzJyk7XG5cbiAgLy8gUmVzb2x2ZSBtb2R1bGUgc3BlY2lmaWVyIGZvciBwYWNrYWdlcyAobm9kZV9tb2R1bGVzIG9yIHdvcmtzcGFjZSBwYWNrYWdlcylcbiAgY29uc3QgYWJzb2x1dGVGaWxlbmFtZSA9IGFic29sdXRlUGF0aFxuICAgID8gYWJzb2x1dGVQYXRoXG4gICAgOiBpc0Fic29sdXRlKGZpbGVuYW1lKVxuICAgICAgPyBmaWxlbmFtZVxuICAgICAgOiBqb2luKHJlc29sdmVkUHJvamVjdFJvb3QsIGZpbGVuYW1lKTtcbiAgY29uc3QgeyBtb2R1bGVTcGVjaWZpZXIgfSA9IHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoXG4gICAgYWJzb2x1dGVGaWxlbmFtZSxcbiAgICByZXNvbHZlZE1vZHVsZVNwZWNpZmllclJvb3RcbiAgKTtcblxuICAvLyBUcmFuc2Zvcm0gd2l0aCBTV0MgdG8gc3VwcG9ydCBzeW50YXggZXNidWlsZCBkb2Vzbid0XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYW5zZm9ybShzb3VyY2UsIHtcbiAgICBmaWxlbmFtZSxcbiAgICBzd2NyYzogZmFsc2UsXG4gICAganNjOiB7XG4gICAgICBwYXJzZXI6IHtcbiAgICAgICAgLi4uKGlzVHlwZVNjcmlwdFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBzeW50YXg6ICd0eXBlc2NyaXB0JyxcbiAgICAgICAgICAgICAgdHN4OiBmaWxlbmFtZS5lbmRzV2l0aCgnLnRzeCcpLFxuICAgICAgICAgICAgICBkZWNvcmF0b3JzOiBkZWNvcmF0b3JPcHRpb25zLmRlY29yYXRvcnMsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIHN5bnRheDogJ2VjbWFzY3JpcHQnLFxuICAgICAgICAgICAgICBqc3g6IGZpbGVuYW1lLmVuZHNXaXRoKCcuanN4JyksXG4gICAgICAgICAgICAgIGRlY29yYXRvcnM6IGRlY29yYXRvck9wdGlvbnMuZGVjb3JhdG9ycyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgfSxcbiAgICAgIHRhcmdldDogJ2VzMjAyMicsXG4gICAgICBleHBlcmltZW50YWw6IG1vZGVcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBwbHVnaW5zOiBbW3N3Y1BsdWdpblBhdGgsIHsgbW9kZSwgbW9kdWxlU3BlY2lmaWVyIH1dXSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgIHJlYWN0OiB7XG4gICAgICAgICAgcnVudGltZTogJ3ByZXNlcnZlJyxcbiAgICAgICAgfSxcbiAgICAgICAgbGVnYWN5RGVjb3JhdG9yOiBkZWNvcmF0b3JPcHRpb25zLmxlZ2FjeURlY29yYXRvcixcbiAgICAgICAgZGVjb3JhdG9yTWV0YWRhdGE6IGRlY29yYXRvck9wdGlvbnMuZGVjb3JhdG9yTWV0YWRhdGEsXG4gICAgICB9LFxuICAgIH0sXG4gICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgcHJvcGVyIHNvdXJjZSBtYXAgc3VwcG9ydCBhcyB0aGV5XG4gICAgLy8gd29uJ3QgZXZlbiBiZSB1c2VkIGluIE5vZGUuanMgYnkgZGVmYXVsdCB1bmxlc3Mgd2VcbiAgICAvLyBpbnRlcmNlcHQgZXJyb3JzIGFuZCBhcHBseSB0aGVtIG91cnNlbHZlc1xuICAgIHNvdXJjZU1hcHM6IGZhbHNlLFxuICAgIG1pbmlmeTogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IHdvcmtmbG93Q29tbWVudE1hdGNoID0gcmVzdWx0LmNvZGUubWF0Y2goXG4gICAgL1xcL1xcKlxcKl9faW50ZXJuYWxfd29ya2Zsb3dzKHsuKj99KVxcKlxcLy9zXG4gICk7XG5cbiAgY29uc3QgcGFyc2VkV29ya2Zsb3dzID0gSlNPTi5wYXJzZShcbiAgICB3b3JrZmxvd0NvbW1lbnRNYXRjaD8uWzFdIHx8ICd7fSdcbiAgKSBhcyBXb3JrZmxvd01hbmlmZXN0O1xuXG4gIHJldHVybiB7XG4gICAgY29kZTogcmVzdWx0LmNvZGUsXG4gICAgd29ya2Zsb3dNYW5pZmVzdDogcGFyc2VkV29ya2Zsb3dzIHx8IHt9LFxuICB9O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base-builder-logging.test.d.ts.map
@@ -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
@@ -1,11 +1,8 @@
1
1
  import * as esbuild from 'esbuild';
2
2
  import { type WorkflowManifest } from './apply-swc-transform.js';
3
- import type { WorkflowConfig } from './types.js';
4
- export interface DiscoveredEntries {
5
- discoveredSteps: Set<string>;
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,17 +11,26 @@ 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
- * Whether informational BaseBuilder logs should be printed.
21
- * Subclasses can override this to silence progress logs while keeping warnings/errors.
15
+ * Tracks which external packages have already been warned about
16
+ * to avoid duplicate warnings across multiple discoverEntries() calls.
22
17
  */
23
- protected get shouldLogBaseBuilderInfo(): boolean;
18
+ private warnedExternalPackages;
19
+ private workflowBuildStartTime;
20
+ private manifestTransformCache;
21
+ constructor(config: WorkflowConfig);
22
+ protected get transformProjectRoot(): string;
23
+ protected get moduleSpecifierRoot(): string;
24
+ private createWorkflowWorldTargetPlugin;
24
25
  protected logBaseBuilderInfo(...args: unknown[]): void;
26
+ private startWorkflowBuildTimer;
27
+ private getWorkflowBuildDuration;
28
+ private resetWorkflowBuildTimer;
29
+ private getWorkflowBuildSummary;
25
30
  private logCreateWorkflowsBundleInfo;
26
31
  private logCreateWebhookBundleInfo;
27
32
  private logCreateManifestInfo;
33
+ private filterExistingFilesForWatch;
28
34
  /**
29
35
  * When outputting CJS, esbuild replaces `import.meta` with an empty object,
30
36
  * making `import.meta.url` (and `import.meta.resolve`) undefined. This method
@@ -63,7 +69,27 @@ export declare abstract class BaseBuilder {
63
69
  * (e.g., when files are added/removed during watch mode).
64
70
  */
65
71
  private discoveredEntries;
72
+ clearDiscoveredEntriesCache(): void;
73
+ clearManifestTransformCache(): void;
74
+ /**
75
+ * Pseudo-packages that should not be checked for workflow patterns.
76
+ */
77
+ private static readonly PSEUDO_PACKAGES;
78
+ /**
79
+ * Checks each package in externalPackages for workflow patterns and emits
80
+ * warnings if any contain "use step", "use workflow" directives, or
81
+ * serialization classes. These patterns will not be transformed by the
82
+ * workflow compiler when the package is externalized.
83
+ */
84
+ private warnAboutExternalWorkflowPackages;
66
85
  protected discoverEntries(inputs: string[], outdir: string, tsconfigPath?: string): Promise<DiscoveredEntries>;
86
+ /**
87
+ * Writes generated files atomically where possible. On Windows, Next.js can
88
+ * briefly hold generated route files open while compiling them, which makes
89
+ * rename-over-existing fail with EPERM/EACCES. In that case, fall back to a
90
+ * direct overwrite so watch rebuilds can still make progress.
91
+ */
92
+ private writeGeneratedFile;
67
93
  /**
68
94
  * Writes debug information to a JSON file for troubleshooting build issues.
69
95
  * Uses atomic write (temp file + rename) to prevent race conditions when
@@ -79,21 +105,40 @@ export declare abstract class BaseBuilder {
79
105
  * Converts an absolute file path to a normalized relative path for the manifest.
80
106
  */
81
107
  private getRelativeFilepath;
108
+ private getCachedManifestTransform;
109
+ protected createRouteImportSpecifier(file: string, routeDir: string): string;
110
+ protected createStepSourceRegistrationFile({ inputFiles, outfile, tsconfigPath, discoveredEntries, }: {
111
+ inputFiles: string[];
112
+ outfile: string;
113
+ tsconfigPath?: string;
114
+ discoveredEntries?: DiscoveredEntries;
115
+ }): Promise<WorkflowManifest>;
82
116
  /**
83
117
  * Creates a bundle for workflow step functions.
84
118
  * Steps have full Node.js runtime access and handle side effects, API calls, etc.
85
119
  *
86
120
  * @param externalizeNonSteps - If true, only bundles step entry points and externalizes other code
121
+ * @param sourceStepRegistrationImports - If true, emits a source import registration file instead of bundling step registrations
122
+ * @param bundleTransitiveLocalStepDependencies - If true, also bundles project-local files imported by step entries for direct runtime loading
87
123
  * @returns Build context (for watch mode) and the collected workflow manifest
88
124
  */
89
- protected createStepsBundle({ inputFiles, format, outfile, externalizeNonSteps, rewriteTsExtensions, tsconfigPath, discoveredEntries, }: {
125
+ protected createStepsBundle({ inputFiles, format, outfile, externalizeNonSteps, bundleTransitiveLocalStepDependencies, sourceStepRegistrationImports, rewriteTsExtensions, tsconfigPath, discoveredEntries, skipEsmRequireBanner, }: {
90
126
  tsconfigPath?: string;
91
127
  inputFiles: string[];
92
128
  outfile: string;
93
129
  format?: 'cjs' | 'esm';
94
130
  externalizeNonSteps?: boolean;
131
+ bundleTransitiveLocalStepDependencies?: boolean;
132
+ sourceStepRegistrationImports?: boolean;
95
133
  rewriteTsExtensions?: boolean;
96
134
  discoveredEntries?: DiscoveredEntries;
135
+ /**
136
+ * When true, skip the `createRequire` banner on the steps bundle.
137
+ * Used by `createCombinedBundle` with `bundleFinalOutput: true` where
138
+ * the outer esbuild pass provides its own banner, preventing the
139
+ * `__createRequire` identifier from being declared twice after inlining.
140
+ */
141
+ skipEsmRequireBanner?: boolean;
97
142
  }): Promise<{
98
143
  context: esbuild.BuildContext | undefined;
99
144
  manifest: WorkflowManifest;
@@ -116,6 +161,40 @@ export declare abstract class BaseBuilder {
116
161
  manifest: WorkflowManifest;
117
162
  interimBundleCtx?: esbuild.BuildContext;
118
163
  bundleFinal?: (interimBundleResult: string) => Promise<void>;
164
+ /** The raw workflow VM code (before wrapping with entrypoint) */
165
+ interimBundleText?: string;
166
+ }>;
167
+ /**
168
+ * V2: Creates a combined bundle that includes both step registrations and
169
+ * workflow orchestration in a single route. The combined entrypoint executes
170
+ * steps inline when possible, reducing function invocations and queue overhead.
171
+ *
172
+ * This method reuses createStepsBundle (for step registrations) and
173
+ * createWorkflowsBundle (for workflow VM code), then combines them into
174
+ * a single route file using workflowEntrypoint().
175
+ */
176
+ protected createCombinedBundle({ inputFiles, stepsOutfile, flowOutfile, format, bundleFinalOutput, tsconfigPath, externalizeNonSteps, bundleTransitiveLocalStepDependencies, sourceStepRegistrationImports, discoveredEntries, }: {
177
+ inputFiles: string[];
178
+ /** Output path for the step registrations bundle (side effects only) */
179
+ stepsOutfile: string;
180
+ /** Output path for the combined route file */
181
+ flowOutfile: string;
182
+ format?: 'cjs' | 'esm';
183
+ bundleFinalOutput?: boolean;
184
+ tsconfigPath?: string;
185
+ externalizeNonSteps?: boolean;
186
+ bundleTransitiveLocalStepDependencies?: boolean;
187
+ sourceStepRegistrationImports?: boolean;
188
+ discoveredEntries?: DiscoveredEntries;
189
+ }): Promise<{
190
+ manifest: WorkflowManifest;
191
+ stepsContext?: esbuild.BuildContext;
192
+ interimBundleCtx?: esbuild.BuildContext;
193
+ workflowInterimBundleText?: string;
194
+ bundleFinal?: (interimBundleResult: string) => Promise<void>;
195
+ discoveredEntries: DiscoveredEntries;
196
+ stepsManifest: WorkflowManifest;
197
+ workflowsManifest: WorkflowManifest;
119
198
  }>;
120
199
  /**
121
200
  * Creates a client library bundle for workflow execution.
@@ -164,7 +243,9 @@ export declare abstract class BaseBuilder {
164
243
  * Ensures the directory for a file path exists, creating it if necessary.
165
244
  */
166
245
  protected ensureDirectory(filePath: string): Promise<void>;
167
- private createSwcGitignore;
246
+ protected ensureSwcIgnored(): Promise<void>;
247
+ private ensureProjectSwcGitignoreEntry;
248
+ private createSwcDirectoryGitignore;
168
249
  /**
169
250
  * Whether the manifest should be exposed as a public HTTP route.
170
251
  * Controlled by the `WORKFLOW_PUBLIC_MANIFEST` environment variable.
@@ -175,6 +256,39 @@ export declare abstract class BaseBuilder {
175
256
  * emit one.
176
257
  */
177
258
  protected getDiagnosticsManifestPath(): string | undefined;
259
+ /**
260
+ * Whether this is a development/watch build (e.g. `next dev`, `nitro dev`,
261
+ * or a Vite-based dev server for astro/sveltekit/vite). `config.watch` is
262
+ * plumbed by the builders that own a dev server (next, nitro, nest); the
263
+ * Vite-based integrations don't set it but run with
264
+ * `NODE_ENV === 'development'`. When neither signal is present we treat the
265
+ * build as production, so CLI/Vercel production builds default to off.
266
+ */
267
+ protected get isDevelopmentBuild(): boolean;
268
+ /**
269
+ * Default source map mode for the stack-relevant bundles (steps + the
270
+ * intermediate workflow VM bundle): inline source maps in development so
271
+ * stack traces point at source files, and off in production so function
272
+ * bundles stay small (helps stay under the Vercel 250MB function limit) and
273
+ * skip the source-map-support runtime shim. The `sourcemap` config option
274
+ * and `WORKFLOW_SOURCEMAP` env var override this in either environment.
275
+ */
276
+ protected get defaultSourcemapMode(): SourcemapMode;
277
+ /**
278
+ * Resolve the effective source map mode for a given call site. Precedence:
279
+ * explicit `sourcemap` config > `WORKFLOW_SOURCEMAP` env var > the call
280
+ * site's default. Returned value is passed directly to esbuild's
281
+ * `sourcemap` option.
282
+ */
283
+ protected resolveSourcemap(defaultMode: SourcemapMode): SourcemapMode;
284
+ /**
285
+ * Whether the resolved source map mode emits any source maps at all.
286
+ * Used by consumers like the Vercel builder to decide whether to include
287
+ * the source-map-support runtime shim in generated functions. Uses the same
288
+ * environment-aware default (`defaultSourcemapMode`) as the step/workflow
289
+ * bundles, so a production build with no override omits the shim.
290
+ */
291
+ protected get sourcemapsEnabled(): boolean;
178
292
  /**
179
293
  * Creates a manifest JSON file containing step/workflow/class metadata
180
294
  * and graph data for visualization.
@@ -1 +1 @@
1
- {"version":3,"file":"base-builder.d.ts","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-builder.d.ts","sourceRoot":"","sources":["../src/base-builder.ts"],"names":[],"mappings":"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"}