@workflow/builders 5.0.0-beta.4 → 5.0.0-beta.40

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 (119) 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 +132 -13
  8. package/dist/base-builder.d.ts.map +1 -1
  9. package/dist/base-builder.js +785 -92
  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 +66 -5
  18. package/dist/constants.d.ts.map +1 -1
  19. package/dist/constants.js +106 -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 +90 -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 +29 -0
  33. package/dist/fast-discovery.d.ts.map +1 -0
  34. package/dist/fast-discovery.js +771 -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 +453 -0
  38. package/dist/get-input-files.test.js +34 -2
  39. package/dist/index.d.ts +5 -3
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +6 -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-module-esbuild-plugin.d.ts.map +1 -1
  47. package/dist/node-module-esbuild-plugin.js +73 -23
  48. package/dist/node-module-esbuild-plugin.test.js +97 -1
  49. package/dist/optional-otel-api.d.ts +14 -0
  50. package/dist/optional-otel-api.d.ts.map +1 -0
  51. package/dist/optional-otel-api.js +14 -0
  52. package/dist/optional-typescript-alias.d.ts +2 -0
  53. package/dist/optional-typescript-alias.d.ts.map +1 -0
  54. package/dist/optional-typescript-alias.js +3 -0
  55. package/dist/optional-typescript.d.ts +3 -0
  56. package/dist/optional-typescript.d.ts.map +1 -0
  57. package/dist/optional-typescript.js +9 -0
  58. package/dist/pseudo-package-esbuild-plugin.js +1 -1
  59. package/dist/pseudo-package-esbuild-plugin.test.js +1 -1
  60. package/dist/request-converter.js +1 -1
  61. package/dist/resolve-sourcemap.test.d.ts +2 -0
  62. package/dist/resolve-sourcemap.test.d.ts.map +1 -0
  63. package/dist/resolve-sourcemap.test.js +194 -0
  64. package/dist/serde-checker.js +1 -1
  65. package/dist/standalone.d.ts +0 -3
  66. package/dist/standalone.d.ts.map +1 -1
  67. package/dist/standalone.js +17 -41
  68. package/dist/step-source-registration.test.d.ts +2 -0
  69. package/dist/step-source-registration.test.d.ts.map +1 -0
  70. package/dist/step-source-registration.test.js +82 -0
  71. package/dist/swc-esbuild-plugin.d.ts +10 -0
  72. package/dist/swc-esbuild-plugin.d.ts.map +1 -1
  73. package/dist/swc-esbuild-plugin.js +116 -14
  74. package/dist/swc-esbuild-plugin.test.js +370 -6
  75. package/dist/transform-utils.d.ts.map +1 -1
  76. package/dist/transform-utils.js +45 -6
  77. package/dist/transform-utils.test.js +78 -6
  78. package/dist/types.d.ts +61 -2
  79. package/dist/types.d.ts.map +1 -1
  80. package/dist/types.js +1 -1
  81. package/dist/vercel-build-output-api.d.ts +0 -2
  82. package/dist/vercel-build-output-api.d.ts.map +1 -1
  83. package/dist/vercel-build-output-api.js +37 -60
  84. package/dist/workflow-alias.js +1 -1
  85. package/dist/workflow-alias.test.js +2 -2
  86. package/dist/workflows-extractor.js +8 -3
  87. package/dist/workflows-extractor.test.d.ts +2 -0
  88. package/dist/workflows-extractor.test.d.ts.map +1 -0
  89. package/dist/workflows-extractor.test.js +70 -0
  90. package/package.json +8 -7
  91. package/dist/apply-swc-transform.js.map +0 -1
  92. package/dist/base-builder.js.map +0 -1
  93. package/dist/build-queue.js.map +0 -1
  94. package/dist/config-helpers.js.map +0 -1
  95. package/dist/constants.js.map +0 -1
  96. package/dist/discover-entries-esbuild-plugin.js.map +0 -1
  97. package/dist/discover-entries-esbuild-plugin.test.js.map +0 -1
  98. package/dist/esbuild-tsconfig.js.map +0 -1
  99. package/dist/esbuild-tsconfig.test.js.map +0 -1
  100. package/dist/get-input-files.test.js.map +0 -1
  101. package/dist/index.js.map +0 -1
  102. package/dist/module-specifier.js.map +0 -1
  103. package/dist/module-specifier.test.js.map +0 -1
  104. package/dist/node-module-esbuild-plugin.js.map +0 -1
  105. package/dist/node-module-esbuild-plugin.test.js.map +0 -1
  106. package/dist/pseudo-package-esbuild-plugin.js.map +0 -1
  107. package/dist/pseudo-package-esbuild-plugin.test.js.map +0 -1
  108. package/dist/request-converter.js.map +0 -1
  109. package/dist/serde-checker.js.map +0 -1
  110. package/dist/standalone.js.map +0 -1
  111. package/dist/swc-esbuild-plugin.js.map +0 -1
  112. package/dist/swc-esbuild-plugin.test.js.map +0 -1
  113. package/dist/transform-utils.js.map +0 -1
  114. package/dist/transform-utils.test.js.map +0 -1
  115. package/dist/types.js.map +0 -1
  116. package/dist/vercel-build-output-api.js.map +0 -1
  117. package/dist/workflow-alias.js.map +0 -1
  118. package/dist/workflow-alias.test.js.map +0 -1
  119. package/dist/workflows-extractor.js.map +0 -1
@@ -312,4 +312,4 @@ describe('workflow bundle dynamic imports', () => {
312
312
  }
313
313
  });
314
314
  });
315
- //# sourceMappingURL=pseudo-package-esbuild-plugin.test.js.map
315
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNldWRvLXBhY2thZ2UtZXNidWlsZC1wbHVnaW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wc2V1ZG8tcGFja2FnZS1lc2J1aWxkLXBsdWdpbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsd0VBQXdFO0FBQ3hFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRTFDLEtBQUssVUFBVSxlQUFlLENBQzVCLE1BQWMsRUFDZCxVQUE0QixDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFFekQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0MsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLEtBQUs7UUFDWixRQUFR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QUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFscGF0aFN5bmMsXG4gIHJtU3luYyxcbiAgd3JpdGVGaWxlU3luYyxcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQgKiBhcyBlc2J1aWxkIGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHNldWRvUGFja2FnZVBsdWdpbixcbiAgUFNFVURPX1BBQ0tBR0VTLFxufSBmcm9tICcuL3BzZXVkby1wYWNrYWdlLWVzYnVpbGQtcGx1Z2luLmpzJztcblxuLy8gUmVzb2x2ZSBzeW1saW5rcyBpbiB0bXBkaXIgdG8gYXZvaWQgbWFjT1MgL3ZhciAtPiAvcHJpdmF0ZS92YXIgaXNzdWVzXG5jb25zdCByZWFsVG1wZGlyID0gcmVhbHBhdGhTeW5jKHRtcGRpcigpKTtcblxuYXN5bmMgZnVuY3Rpb24gYnVpbGRXaXRoUGx1Z2luKFxuICBzb3VyY2U6IHN0cmluZyxcbiAgcGx1Z2luczogZXNidWlsZC5QbHVnaW5bXSA9IFtjcmVhdGVQc2V1ZG9QYWNrYWdlUGx1Z2luKCldXG4pOiBQcm9taXNlPHsgcmVzdWx0OiBlc2J1aWxkLkJ1aWxkUmVzdWx0OyB0ZW1wRGlyOiBzdHJpbmcgfT4ge1xuICBjb25zdCB0ZW1wRGlyID0gbWtkdGVtcFN5bmMoam9pbihyZWFsVG1wZGlyLCAncHNldWRvLXBhY2thZ2UtcGx1Z2luLXRlc3QtJykpO1xuICBjb25zdCBlbnRyeUZpbGUgPSBqb2luKHRlbXBEaXIsICd3b3JrZmxvdy50cycpO1xuICB3cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgc291cmNlKTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICBlbnRyeVBvaW50czogW2VudHJ5RmlsZV0sXG4gICAgYnVuZGxlOiB0cnVlLFxuICAgIHdyaXRlOiBmYWxzZSxcbiAgICBwbGF0Zm9ybTogJ25ldXRyYWwnLFxuICAgIGZvcm1hdDogJ2NqcycsXG4gICAgbG9nTGV2ZWw6ICdzaWxlbnQnLFxuICAgIHBsdWdpbnMsXG4gIH0pO1xuXG4gIHJldHVybiB7IHJlc3VsdCwgdGVtcERpciB9O1xufVxuXG5kZXNjcmliZSgnY3JlYXRlUHNldWRvUGFja2FnZVBsdWdpbicsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3NlcnZlci1vbmx5IHBhY2thZ2UnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXBsYWNlIHNlcnZlci1vbmx5IGltcG9ydCB3aXRoIGVtcHR5IG1vZHVsZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ3NlcnZlci1vbmx5JztcbiAgICAgICAgZXhwb3J0IGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICAgIHJldHVybiBcImhlbGxvXCI7XG4gICAgICAgIH1cbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCB0ZW1wRGlyIH0gPSBhd2FpdCBidWlsZFdpdGhQbHVnaW4odGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByZXN1bHQub3V0cHV0RmlsZXM/LlswXS50ZXh0O1xuICAgICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICAvLyBTaG91bGQgbm90IGNvbnRhaW4gcmVxdWlyZSgnc2VydmVyLW9ubHknKSBzaW5jZSBpdCdzIHJlcGxhY2VkIHdpdGggZW1wdHkgbW9kdWxlXG4gICAgICAgIC8vIChlc2J1aWxkIHRyZWUtc2hha2VzIHVudXNlZCBpbXBvcnRzLCBzbyB0aGUgbW9kdWxlIGNvbnRlbnQgbWF5IG5vdCBhcHBlYXIsXG4gICAgICAgIC8vIGJ1dCBpbXBvcnRhbnRseSBubyByZXF1aXJlKCkgY2FsbCBpcyBnZW5lcmF0ZWQpXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJyZXF1aXJlKCdzZXJ2ZXItb25seScpXCIpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKCdyZXF1aXJlKFwic2VydmVyLW9ubHlcIiknKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBzZXJ2ZXItb25seSBhbG9uZ3NpZGUgb3RoZXIgaW1wb3J0cycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ3NlcnZlci1vbmx5JztcbiAgICAgICAgY29uc3QgeCA9IDQyO1xuICAgICAgICBleHBvcnQgZnVuY3Rpb24gd29ya2Zsb3coKSB7XG4gICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH1cbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCB0ZW1wRGlyIH0gPSBhd2FpdCBidWlsZFdpdGhQbHVnaW4odGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByZXN1bHQub3V0cHV0RmlsZXM/LlswXS50ZXh0O1xuICAgICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICAvLyBObyByZXF1aXJlKCkgY2FsbCBzaG91bGQgYmUgZ2VuZXJhdGVkXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJyZXF1aXJlKCdzZXJ2ZXItb25seScpXCIpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKCdyZXF1aXJlKFwic2VydmVyLW9ubHlcIiknKTtcbiAgICAgICAgLy8gVGhlIGFjdHVhbCBjb2RlIHNob3VsZCBzdGlsbCB3b3JrXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLnRvQ29udGFpbignNDInKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjbGllbnQtb25seSBwYWNrYWdlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVwbGFjZSBjbGllbnQtb25seSBpbXBvcnQgd2l0aCBlbXB0eSBtb2R1bGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgICAgaW1wb3J0ICdjbGllbnQtb25seSc7XG4gICAgICAgIGV4cG9ydCBjb25zdCB4ID0gMTtcbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCB0ZW1wRGlyIH0gPSBhd2FpdCBidWlsZFdpdGhQbHVnaW4odGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByZXN1bHQub3V0cHV0RmlsZXM/LlswXS50ZXh0O1xuICAgICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICAvLyBObyByZXF1aXJlKCkgY2FsbCBzaG91bGQgYmUgZ2VuZXJhdGVkXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJyZXF1aXJlKCdjbGllbnQtb25seScpXCIpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKCdyZXF1aXJlKFwiY2xpZW50LW9ubHlcIiknKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb21waWxlZCBwc2V1ZG8tcGFja2FnZXMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXBsYWNlIG5leHQvZGlzdC9jb21waWxlZC9zZXJ2ZXItb25seSBpbXBvcnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgICAgaW1wb3J0ICduZXh0L2Rpc3QvY29tcGlsZWQvc2VydmVyLW9ubHknO1xuICAgICAgICBleHBvcnQgY29uc3QgeCA9IDE7XG4gICAgICBgO1xuXG4gICAgICBjb25zdCB7IHJlc3VsdCwgdGVtcERpciB9ID0gYXdhaXQgYnVpbGRXaXRoUGx1Z2luKHRlc3RDb2RlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gcmVzdWx0Lm91dHB1dEZpbGVzPy5bMF0udGV4dDtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkudG9CZURlZmluZWQoKTtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbihcbiAgICAgICAgICBcInJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9zZXJ2ZXItb25seScpXCJcbiAgICAgICAgKTtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbihcbiAgICAgICAgICAncmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9zZXJ2ZXItb25seVwiKSdcbiAgICAgICAgKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlcGxhY2UgbmV4dC9kaXN0L2NvbXBpbGVkL2NsaWVudC1vbmx5IGltcG9ydCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ25leHQvZGlzdC9jb21waWxlZC9jbGllbnQtb25seSc7XG4gICAgICAgIGV4cG9ydCBjb25zdCB4ID0gMTtcbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCB0ZW1wRGlyIH0gPSBhd2FpdCBidWlsZFdpdGhQbHVnaW4odGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByZXN1bHQub3V0cHV0RmlsZXM/LlswXS50ZXh0O1xuICAgICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKFxuICAgICAgICAgIFwicmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL2NsaWVudC1vbmx5JylcIlxuICAgICAgICApO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKFxuICAgICAgICAgICdyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2NsaWVudC1vbmx5XCIpJ1xuICAgICAgICApO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2JvdGggcHNldWRvLXBhY2thZ2VzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgaGFuZGxlIGJvdGggc2VydmVyLW9ubHkgYW5kIGNsaWVudC1vbmx5IGluIHNhbWUgZmlsZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ3NlcnZlci1vbmx5JztcbiAgICAgICAgaW1wb3J0ICdjbGllbnQtb25seSc7XG4gICAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgICByZXR1cm4gXCJtaXhlZFwiO1xuICAgICAgICB9XG4gICAgICBgO1xuXG4gICAgICBjb25zdCB7IHJlc3VsdCwgdGVtcERpciB9ID0gYXdhaXQgYnVpbGRXaXRoUGx1Z2luKHRlc3RDb2RlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gcmVzdWx0Lm91dHB1dEZpbGVzPy5bMF0udGV4dDtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkudG9CZURlZmluZWQoKTtcbiAgICAgICAgLy8gTm8gcmVxdWlyZSgpIGNhbGxzIHNob3VsZCBiZSBnZW5lcmF0ZWQgZm9yIGVpdGhlciBwYWNrYWdlXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJyZXF1aXJlKCdzZXJ2ZXItb25seScpXCIpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKCdyZXF1aXJlKFwic2VydmVyLW9ubHlcIiknKTtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbihcInJlcXVpcmUoJ2NsaWVudC1vbmx5JylcIik7XG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oJ3JlcXVpcmUoXCJjbGllbnQtb25seVwiKScpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dpdGhvdXQgcGx1Z2luJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZmFpbCB0byByZXNvbHZlIHNlcnZlci1vbmx5IHdpdGhvdXQgdGhlIHBsdWdpbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ3NlcnZlci1vbmx5JztcbiAgICAgICAgZXhwb3J0IGNvbnN0IHggPSAxO1xuICAgICAgYDtcblxuICAgICAgY29uc3QgdGVtcERpciA9IG1rZHRlbXBTeW5jKFxuICAgICAgICBqb2luKHJlYWxUbXBkaXIsICdwc2V1ZG8tcGFja2FnZS1wbHVnaW4tdGVzdC0nKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9IGpvaW4odGVtcERpciwgJ3dvcmtmbG93LnRzJyk7XG4gICAgICB3cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgdGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICAgICAgICBlbnRyeVBvaW50czogW2VudHJ5RmlsZV0sXG4gICAgICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgICAgIHdyaXRlOiBmYWxzZSxcbiAgICAgICAgICBwbGF0Zm9ybTogJ25ldXRyYWwnLFxuICAgICAgICAgIGZvcm1hdDogJ2NqcycsXG4gICAgICAgICAgbG9nTGV2ZWw6ICdzaWxlbnQnLFxuICAgICAgICAgIC8vIE5vIHBsdWdpbnMgLSBzaG91bGQgZmFpbCB0byByZXNvbHZlXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgdGhlIGJ1aWxkIHN1Y2NlZWRlZCAoc2VydmVyLW9ubHkgbWlnaHQgYmUgaW5zdGFsbGVkKVxuICAgICAgICAvLyBUaGlzIGlzIG9rYXkgLSB3ZSBqdXN0IHdhbnQgdG8gdmVyaWZ5IHRoZSBwbHVnaW4gd29ya3Mgd2hlbiB0aGUgcGFja2FnZSBpc24ndCB0aGVyZVxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAvLyBFeHBlY3RlZDogZXNidWlsZCBjYW4ndCByZXNvbHZlIHNlcnZlci1vbmx5XG4gICAgICAgIGV4cGVjdChlcnJvci5lcnJvcnM/LlswXT8udGV4dCkudG9NYXRjaChcbiAgICAgICAgICAvQ291bGQgbm90IHJlc29sdmUgXCJzZXJ2ZXItb25seVwiL1xuICAgICAgICApO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1BTRVVET19QQUNLQUdFUyBjb25zdGFudCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNvbnRhaW4gbmV4dCBtYXJrZXIgcGFja2FnZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoUFNFVURPX1BBQ0tBR0VTLmhhcygnc2VydmVyLW9ubHknKSkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChQU0VVRE9fUEFDS0FHRVMuaGFzKCdjbGllbnQtb25seScpKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KFBTRVVET19QQUNLQUdFUy5oYXMoJ25leHQvZGlzdC9jb21waWxlZC9zZXJ2ZXItb25seScpKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KFBTRVVET19QQUNLQUdFUy5oYXMoJ25leHQvZGlzdC9jb21waWxlZC9jbGllbnQtb25seScpKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KFBTRVVET19QQUNLQUdFUy5zaXplKS50b0JlKDQpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnd29ya2Zsb3cgYnVuZGxlIGR5bmFtaWMgaW1wb3J0cycsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCBpbmxpbmUgZHluYW1pYyBpbXBvcnRzIHdoZW4gYnVuZGxpbmcgd2l0aG91dCBleHRlcm5hbCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0ZW1wRGlyID0gbWtkdGVtcFN5bmMoam9pbihyZWFsVG1wZGlyLCAnZHluYW1pYy1pbXBvcnQtdGVzdC0nKSk7XG4gICAgY29uc3Qgbm9kZU1vZHVsZXNEaXIgPSBqb2luKHRlbXBEaXIsICdub2RlX21vZHVsZXMnLCAnbXktdGVzdC1wYWNrYWdlJyk7XG4gICAgbWtkaXJTeW5jKG5vZGVNb2R1bGVzRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHNpbXBsZSBwYWNrYWdlIHRvIGR5bmFtaWNhbGx5IGltcG9ydFxuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKG5vZGVNb2R1bGVzRGlyLCAnaW5kZXguanMnKSxcbiAgICAgICdleHBvcnQgY29uc3QgdGVzdFZhbHVlID0gNDI7J1xuICAgICk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4obm9kZU1vZHVsZXNEaXIsICdwYWNrYWdlLmpzb24nKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgbmFtZTogJ215LXRlc3QtcGFja2FnZScsIG1haW46ICdpbmRleC5qcycgfSlcbiAgICApO1xuXG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gd29ya2Zsb3coKSB7XG4gICAgICAgIGNvbnN0IHBrZyA9IGF3YWl0IGltcG9ydCgnbXktdGVzdC1wYWNrYWdlJyk7XG4gICAgICAgIHJldHVybiBwa2cudGVzdFZhbHVlO1xuICAgICAgfVxuICAgIGA7XG4gICAgY29uc3QgZW50cnlGaWxlID0gam9pbih0ZW1wRGlyLCAnd29ya2Zsb3cudHMnKTtcbiAgICB3cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgdGVzdENvZGUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGVzYnVpbGQuYnVpbGQoe1xuICAgICAgICBlbnRyeVBvaW50czogW2VudHJ5RmlsZV0sXG4gICAgICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGU6IGZhbHNlLFxuICAgICAgICBwbGF0Zm9ybTogJ25ldXRyYWwnLFxuICAgICAgICBmb3JtYXQ6ICdjanMnLFxuICAgICAgICBsb2dMZXZlbDogJ3NpbGVudCcsXG4gICAgICAgIC8vIE5vIGV4dGVybmFsIG9wdGlvbiAtIHNob3VsZCBpbmxpbmUgdGhlIGR5bmFtaWMgaW1wb3J0XG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHJlc3VsdC5vdXRwdXRGaWxlcz8uWzBdLnRleHQ7XG4gICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBUaGUgZHluYW1pYyBpbXBvcnQgc2hvdWxkIGJlIHJlc29sdmVkIGFuZCB0aGUgdmFsdWUgaW5saW5lZFxuICAgICAgLy8gZXNidWlsZCBjb252ZXJ0cyBkeW5hbWljIGltcG9ydHMgdG8gZWl0aGVyIFByb21pc2UucmVzb2x2ZShyZXF1aXJlKC4uLikpXG4gICAgICAvLyBvciBpbmxpbmVzIHRoZSBjb2RlIGRpcmVjdGx5XG4gICAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJzQyJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIGxlYXZlIGR5bmFtaWMgaW1wb3J0IGFzIGltcG9ydCgpIHdoZW4gbWFya2VkIGV4dGVybmFsJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBEaXIgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICdkeW5hbWljLWltcG9ydC10ZXN0LScpKTtcbiAgICBjb25zdCBub2RlTW9kdWxlc0RpciA9IGpvaW4odGVtcERpciwgJ25vZGVfbW9kdWxlcycsICdleHRlcm5hbC1wYWNrYWdlJyk7XG4gICAgbWtkaXJTeW5jKG5vZGVNb2R1bGVzRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKG5vZGVNb2R1bGVzRGlyLCAnaW5kZXguanMnKSxcbiAgICAgICdleHBvcnQgY29uc3QgdmFsdWUgPSAxMDA7J1xuICAgICk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4obm9kZU1vZHVsZXNEaXIsICdwYWNrYWdlLmpzb24nKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgbmFtZTogJ2V4dGVybmFsLXBhY2thZ2UnLCBtYWluOiAnaW5kZXguanMnIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICBjb25zdCBwa2cgPSBhd2FpdCBpbXBvcnQoJ2V4dGVybmFsLXBhY2thZ2UnKTtcbiAgICAgICAgcmV0dXJuIHBrZy52YWx1ZTtcbiAgICAgIH1cbiAgICBgO1xuICAgIGNvbnN0IGVudHJ5RmlsZSA9IGpvaW4odGVtcERpciwgJ3dvcmtmbG93LnRzJyk7XG4gICAgd3JpdGVGaWxlU3luYyhlbnRyeUZpbGUsIHRlc3RDb2RlKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICAgICAgZW50cnlQb2ludHM6IFtlbnRyeUZpbGVdLFxuICAgICAgICBidW5kbGU6IHRydWUsXG4gICAgICAgIHdyaXRlOiBmYWxzZSxcbiAgICAgICAgcGxhdGZvcm06ICduZXV0cmFsJyxcbiAgICAgICAgZm9ybWF0OiAnY2pzJyxcbiAgICAgICAgbG9nTGV2ZWw6ICdzaWxlbnQnLFxuICAgICAgICBleHRlcm5hbDogWydleHRlcm5hbC1wYWNrYWdlJ10sIC8vIE1hcmsgYXMgZXh0ZXJuYWxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgY29uc3Qgb3V0cHV0ID0gcmVzdWx0Lm91dHB1dEZpbGVzPy5bMF0udGV4dDtcbiAgICAgIGV4cGVjdChvdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIFdoZW4gZXh0ZXJuYWwsIGVzYnVpbGQgbGVhdmVzIGEgZHluYW1pYyBpbXBvcnQoKSBjYWxsIHRoYXQgd291bGQgZmFpbCBpbiB0aGUgVk1cbiAgICAgIC8vICh0aGUgVk0gZG9lc24ndCBoYXZlIGltcG9ydCgpIGF2YWlsYWJsZSlcbiAgICAgIC8vIFRoaXMgZGVtb25zdHJhdGVzIHdoeSB3ZSBET04nVCB1c2UgZXh0ZXJuYWwgZm9yIHdvcmtmbG93IGJ1bmRsZXNcbiAgICAgIGV4cGVjdChvdXRwdXQpLnRvTWF0Y2goL2ltcG9ydFxcKFtcIiddZXh0ZXJuYWwtcGFja2FnZVtcIiddXFwpLyk7XG4gICAgICAvLyBUaGUgYWN0dWFsIHZhbHVlIHNob3VsZCBOT1QgYmUgaW5saW5lZFxuICAgICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbignMTAwJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIGlubGluZSBuZXN0ZWQgZHluYW1pYyBpbXBvcnRzIGZyb20gZGVwZW5kZW5jaWVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBEaXIgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICdkeW5hbWljLWltcG9ydC10ZXN0LScpKTtcblxuICAgIC8vIENyZWF0ZSBhIHBhY2thZ2UgdGhhdCBpdHNlbGYgdXNlcyBkeW5hbWljIGltcG9ydFxuICAgIGNvbnN0IG91dGVyUGFja2FnZURpciA9IGpvaW4odGVtcERpciwgJ25vZGVfbW9kdWxlcycsICdvdXRlci1wYWNrYWdlJyk7XG4gICAgY29uc3QgaW5uZXJQYWNrYWdlRGlyID0gam9pbih0ZW1wRGlyLCAnbm9kZV9tb2R1bGVzJywgJ2lubmVyLXBhY2thZ2UnKTtcbiAgICBta2RpclN5bmMob3V0ZXJQYWNrYWdlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBta2RpclN5bmMoaW5uZXJQYWNrYWdlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKGlubmVyUGFja2FnZURpciwgJ2luZGV4LmpzJyksXG4gICAgICAnZXhwb3J0IGNvbnN0IGlubmVyVmFsdWUgPSA5OTk7J1xuICAgICk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4oaW5uZXJQYWNrYWdlRGlyLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6ICdpbm5lci1wYWNrYWdlJywgbWFpbjogJ2luZGV4LmpzJyB9KVxuICAgICk7XG5cbiAgICB3cml0ZUZpbGVTeW5jKFxuICAgICAgam9pbihvdXRlclBhY2thZ2VEaXIsICdpbmRleC5qcycpLFxuICAgICAgYFxuICAgICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRJbm5lcigpIHtcbiAgICAgICAgY29uc3QgaW5uZXIgPSBhd2FpdCBpbXBvcnQoJ2lubmVyLXBhY2thZ2UnKTtcbiAgICAgICAgcmV0dXJuIGlubmVyLmlubmVyVmFsdWU7XG4gICAgICB9XG4gICAgYFxuICAgICk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4ob3V0ZXJQYWNrYWdlRGlyLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6ICdvdXRlci1wYWNrYWdlJywgbWFpbjogJ2luZGV4LmpzJyB9KVxuICAgICk7XG5cbiAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgIGltcG9ydCB7IGxvYWRJbm5lciB9IGZyb20gJ291dGVyLXBhY2thZ2UnO1xuICAgICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICByZXR1cm4gbG9hZElubmVyKCk7XG4gICAgICB9XG4gICAgYDtcbiAgICBjb25zdCBlbnRyeUZpbGUgPSBqb2luKHRlbXBEaXIsICd3b3JrZmxvdy50cycpO1xuICAgIHdyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCB0ZXN0Q29kZSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXNidWlsZC5idWlsZCh7XG4gICAgICAgIGVudHJ5UG9pbnRzOiBbZW50cnlGaWxlXSxcbiAgICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgICB3cml0ZTogZmFsc2UsXG4gICAgICAgIHBsYXRmb3JtOiAnbmV1dHJhbCcsXG4gICAgICAgIGZvcm1hdDogJ2NqcycsXG4gICAgICAgIGxvZ0xldmVsOiAnc2lsZW50JyxcbiAgICAgICAgLy8gTm8gZXh0ZXJuYWwgLSBldmVyeXRoaW5nIHNob3VsZCBiZSBpbmxpbmVkXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHJlc3VsdC5vdXRwdXRGaWxlcz8uWzBdLnRleHQ7XG4gICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBCb3RoIHRoZSBvdXRlciBhbmQgaW5uZXIgcGFja2FnZSBjb2RlIHNob3VsZCBiZSBpbmxpbmVkXG4gICAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJzk5OScpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBybVN5bmModGVtcERpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
@@ -11,4 +11,4 @@ async function normalizeRequest(request) {
11
11
  }
12
12
  `;
13
13
  export { NORMALIZE_REQUEST_CODE };
14
- //# sourceMappingURL=request-converter.js.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVxdWVzdC1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxzQkFBc0IsR0FBRzs7Ozs7Ozs7Ozs7Q0FXOUIsQ0FBQztBQUVGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTk9STUFMSVpFX1JFUVVFU1RfQ09ERSA9IGBcbmFzeW5jIGZ1bmN0aW9uIG5vcm1hbGl6ZVJlcXVlc3QocmVxdWVzdCkge1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgaGVhZGVyczogbmV3IEhlYWRlcnMocmVxdWVzdC5oZWFkZXJzKVxuICB9O1xuICBpZiAoIVsnR0VUJywgJ0hFQUQnLCAnT1BUSU9OUycsICdUUkFDRScsICdDT05ORUNUJ10uaW5jbHVkZXMocmVxdWVzdC5tZXRob2QpKSB7XG4gICAgb3B0aW9ucy5ib2R5ID0gYXdhaXQgcmVxdWVzdC5hcnJheUJ1ZmZlcigpO1xuICB9XG4gIHJldHVybiBuZXcgUmVxdWVzdChyZXF1ZXN0LnVybCwgb3B0aW9ucyk7XG59XG5gO1xuXG5leHBvcnQgeyBOT1JNQUxJWkVfUkVRVUVTVF9DT0RFIH07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resolve-sourcemap.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-sourcemap.test.d.ts","sourceRoot":"","sources":["../src/resolve-sourcemap.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,194 @@
1
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
2
+ import { BaseBuilder } from './base-builder.js';
3
+ /**
4
+ * Minimal subclass that exposes the protected `resolveSourcemap()` and
5
+ * `sourcemapsEnabled` members for testing.
6
+ */
7
+ class TestBuilder extends BaseBuilder {
8
+ async build() {
9
+ // no-op
10
+ }
11
+ callResolveSourcemap(defaultMode) {
12
+ return this.resolveSourcemap(defaultMode);
13
+ }
14
+ get publicSourcemapsEnabled() {
15
+ return this.sourcemapsEnabled;
16
+ }
17
+ get publicDefaultSourcemapMode() {
18
+ return this.defaultSourcemapMode;
19
+ }
20
+ get publicIsDevelopmentBuild() {
21
+ return this.isDevelopmentBuild;
22
+ }
23
+ }
24
+ function createBuilder(sourcemap, watch) {
25
+ const config = {
26
+ buildTarget: 'standalone',
27
+ workingDir: '/tmp/workflow-test',
28
+ dirs: ['.'],
29
+ stepsBundlePath: '',
30
+ workflowsBundlePath: '',
31
+ webhookBundlePath: '',
32
+ sourcemap,
33
+ watch,
34
+ };
35
+ return new TestBuilder(config);
36
+ }
37
+ describe('resolveSourcemap', () => {
38
+ const originalEnv = process.env.WORKFLOW_SOURCEMAP;
39
+ beforeEach(() => {
40
+ delete process.env.WORKFLOW_SOURCEMAP;
41
+ });
42
+ afterEach(() => {
43
+ if (originalEnv === undefined) {
44
+ delete process.env.WORKFLOW_SOURCEMAP;
45
+ }
46
+ else {
47
+ process.env.WORKFLOW_SOURCEMAP = originalEnv;
48
+ }
49
+ });
50
+ it('returns the default when no config or env var is set', () => {
51
+ const builder = createBuilder();
52
+ expect(builder.callResolveSourcemap('inline')).toBe('inline');
53
+ expect(builder.callResolveSourcemap(false)).toBe(false);
54
+ expect(builder.callResolveSourcemap(true)).toBe(true);
55
+ });
56
+ it('prefers explicit config over the default', () => {
57
+ expect(createBuilder(false).callResolveSourcemap('inline')).toBe(false);
58
+ expect(createBuilder('external').callResolveSourcemap('inline')).toBe('external');
59
+ expect(createBuilder('linked').callResolveSourcemap(false)).toBe('linked');
60
+ expect(createBuilder(true).callResolveSourcemap('inline')).toBe(true);
61
+ });
62
+ it('prefers explicit config over environment variable', () => {
63
+ process.env.WORKFLOW_SOURCEMAP = 'inline';
64
+ expect(createBuilder(false).callResolveSourcemap('inline')).toBe(false);
65
+ expect(createBuilder('external').callResolveSourcemap('inline')).toBe('external');
66
+ });
67
+ it('uses environment variable when config is not set', () => {
68
+ process.env.WORKFLOW_SOURCEMAP = 'false';
69
+ expect(createBuilder().callResolveSourcemap('inline')).toBe(false);
70
+ process.env.WORKFLOW_SOURCEMAP = 'true';
71
+ expect(createBuilder().callResolveSourcemap(false)).toBe(true);
72
+ for (const mode of ['inline', 'linked', 'external', 'both']) {
73
+ process.env.WORKFLOW_SOURCEMAP = mode;
74
+ expect(createBuilder().callResolveSourcemap('inline')).toBe(mode);
75
+ }
76
+ });
77
+ it('accepts "0" / "1" as environment variable aliases for false / true', () => {
78
+ process.env.WORKFLOW_SOURCEMAP = '0';
79
+ expect(createBuilder().callResolveSourcemap('inline')).toBe(false);
80
+ process.env.WORKFLOW_SOURCEMAP = '1';
81
+ expect(createBuilder().callResolveSourcemap(false)).toBe(true);
82
+ });
83
+ it('falls back to default when env var is empty or unrecognized', () => {
84
+ process.env.WORKFLOW_SOURCEMAP = '';
85
+ expect(createBuilder().callResolveSourcemap('inline')).toBe('inline');
86
+ // Suppress the expected warning
87
+ const originalWarn = console.warn;
88
+ console.warn = () => { };
89
+ try {
90
+ process.env.WORKFLOW_SOURCEMAP = 'nonsense';
91
+ expect(createBuilder().callResolveSourcemap('inline')).toBe('inline');
92
+ }
93
+ finally {
94
+ console.warn = originalWarn;
95
+ }
96
+ });
97
+ });
98
+ describe('defaultSourcemapMode / isDevelopmentBuild', () => {
99
+ const originalNodeEnv = process.env.NODE_ENV;
100
+ const originalSourcemapEnv = process.env.WORKFLOW_SOURCEMAP;
101
+ beforeEach(() => {
102
+ delete process.env.WORKFLOW_SOURCEMAP;
103
+ });
104
+ afterEach(() => {
105
+ if (originalNodeEnv === undefined) {
106
+ delete process.env.NODE_ENV;
107
+ }
108
+ else {
109
+ process.env.NODE_ENV = originalNodeEnv;
110
+ }
111
+ if (originalSourcemapEnv === undefined) {
112
+ delete process.env.WORKFLOW_SOURCEMAP;
113
+ }
114
+ else {
115
+ process.env.WORKFLOW_SOURCEMAP = originalSourcemapEnv;
116
+ }
117
+ });
118
+ it('defaults to off in production (no watch, NODE_ENV not development)', () => {
119
+ process.env.NODE_ENV = 'production';
120
+ const builder = createBuilder();
121
+ expect(builder.publicIsDevelopmentBuild).toBe(false);
122
+ expect(builder.publicDefaultSourcemapMode).toBe(false);
123
+ });
124
+ it('defaults to inline when config.watch is true', () => {
125
+ // Even with a production NODE_ENV, an active watch/dev server opts in.
126
+ process.env.NODE_ENV = 'production';
127
+ const builder = createBuilder(undefined, true);
128
+ expect(builder.publicIsDevelopmentBuild).toBe(true);
129
+ expect(builder.publicDefaultSourcemapMode).toBe('inline');
130
+ });
131
+ it('defaults to inline when NODE_ENV is development', () => {
132
+ process.env.NODE_ENV = 'development';
133
+ const builder = createBuilder();
134
+ expect(builder.publicIsDevelopmentBuild).toBe(true);
135
+ expect(builder.publicDefaultSourcemapMode).toBe('inline');
136
+ });
137
+ });
138
+ describe('sourcemapsEnabled', () => {
139
+ const originalNodeEnv = process.env.NODE_ENV;
140
+ const originalEnv = process.env.WORKFLOW_SOURCEMAP;
141
+ beforeEach(() => {
142
+ delete process.env.WORKFLOW_SOURCEMAP;
143
+ // Pin to production so the environment-aware default is deterministic;
144
+ // individual tests opt into dev via watch/NODE_ENV as needed.
145
+ process.env.NODE_ENV = 'production';
146
+ });
147
+ afterEach(() => {
148
+ if (originalNodeEnv === undefined) {
149
+ delete process.env.NODE_ENV;
150
+ }
151
+ else {
152
+ process.env.NODE_ENV = originalNodeEnv;
153
+ }
154
+ if (originalEnv === undefined) {
155
+ delete process.env.WORKFLOW_SOURCEMAP;
156
+ }
157
+ else {
158
+ process.env.WORKFLOW_SOURCEMAP = originalEnv;
159
+ }
160
+ });
161
+ it('is false by default in production', () => {
162
+ expect(createBuilder().publicSourcemapsEnabled).toBe(false);
163
+ });
164
+ it('is true by default in development (watch)', () => {
165
+ expect(createBuilder(undefined, true).publicSourcemapsEnabled).toBe(true);
166
+ });
167
+ it('is true by default in development (NODE_ENV)', () => {
168
+ process.env.NODE_ENV = 'development';
169
+ expect(createBuilder().publicSourcemapsEnabled).toBe(true);
170
+ });
171
+ it('is false when config sourcemap is false', () => {
172
+ expect(createBuilder(false).publicSourcemapsEnabled).toBe(false);
173
+ });
174
+ it('is true for any non-false config value', () => {
175
+ for (const mode of [
176
+ true,
177
+ 'inline',
178
+ 'linked',
179
+ 'external',
180
+ 'both',
181
+ ]) {
182
+ expect(createBuilder(mode).publicSourcemapsEnabled).toBe(true);
183
+ }
184
+ });
185
+ it('is true in production when WORKFLOW_SOURCEMAP env opts in', () => {
186
+ process.env.WORKFLOW_SOURCEMAP = 'inline';
187
+ expect(createBuilder().publicSourcemapsEnabled).toBe(true);
188
+ });
189
+ it('is false when WORKFLOW_SOURCEMAP env is false', () => {
190
+ process.env.WORKFLOW_SOURCEMAP = 'false';
191
+ expect(createBuilder().publicSourcemapsEnabled).toBe(false);
192
+ });
193
+ });
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1zb3VyY2VtYXAudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXNvbHZlLXNvdXJjZW1hcC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRDs7O0dBR0c7QUFDSCxNQUFNLFdBQVksU0FBUSxXQUFXO0lBQ25DLEtBQUssQ0FBQyxLQUFLO1FBQ1QsUUFBUTtJQUNWLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxXQUEwQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyx1QkFBdUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsMEJBQTBCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLHdCQUF3QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRCxTQUFTLGFBQWEsQ0FDcEIsU0FBeUIsRUFDekIsS0FBZTtJQUVmLE1BQU0sTUFBTSxHQUFxQjtRQUMvQixXQUFXLEVBQUUsWUFBWTtRQUN6QixVQUFVLEVBQUUsb0JBQW9CO1FBQ2hDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNYLGVBQWUsRUFBRSxFQUFFO1FBQ25CLG1CQUFtQixFQUFFLEVBQUU7UUFDdkIsaUJBQWlCLEVBQUUsRUFBRTtRQUNyQixTQUFTO1FBQ1QsS0FBSztLQUNOLENBQUM7SUFDRixPQUFPLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxRQUFRLENB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eHBlY3QsIGl0IH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IEJhc2VCdWlsZGVyIH0gZnJvbSAnLi9iYXNlLWJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBTb3VyY2VtYXBNb2RlLCBTdGFuZGFsb25lQ29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogTWluaW1hbCBzdWJjbGFzcyB0aGF0IGV4cG9zZXMgdGhlIHByb3RlY3RlZCBgcmVzb2x2ZVNvdXJjZW1hcCgpYCBhbmRcbiAqIGBzb3VyY2VtYXBzRW5hYmxlZGAgbWVtYmVycyBmb3IgdGVzdGluZy5cbiAqL1xuY2xhc3MgVGVzdEJ1aWxkZXIgZXh0ZW5kcyBCYXNlQnVpbGRlciB7XG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIG5vLW9wXG4gIH1cblxuICBwdWJsaWMgY2FsbFJlc29sdmVTb3VyY2VtYXAoZGVmYXVsdE1vZGU6IFNvdXJjZW1hcE1vZGUpOiBTb3VyY2VtYXBNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU291cmNlbWFwKGRlZmF1bHRNb2RlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHVibGljU291cmNlbWFwc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlbWFwc0VuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHB1YmxpY0RlZmF1bHRTb3VyY2VtYXBNb2RlKCk6IFNvdXJjZW1hcE1vZGUge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRTb3VyY2VtYXBNb2RlO1xuICB9XG5cbiAgcHVibGljIGdldCBwdWJsaWNJc0RldmVsb3BtZW50QnVpbGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZXZlbG9wbWVudEJ1aWxkO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1aWxkZXIoXG4gIHNvdXJjZW1hcD86IFNvdXJjZW1hcE1vZGUsXG4gIHdhdGNoPzogYm9vbGVhblxuKTogVGVzdEJ1aWxkZXIge1xuICBjb25zdCBjb25maWc6IFN0YW5kYWxvbmVDb25maWcgPSB7XG4gICAgYnVpbGRUYXJnZXQ6ICdzdGFuZGFsb25lJyxcbiAgICB3b3JraW5nRGlyOiAnL3RtcC93b3JrZmxvdy10ZXN0JyxcbiAgICBkaXJzOiBbJy4nXSxcbiAgICBzdGVwc0J1bmRsZVBhdGg6ICcnLFxuICAgIHdvcmtmbG93c0J1bmRsZVBhdGg6ICcnLFxuICAgIHdlYmhvb2tCdW5kbGVQYXRoOiAnJyxcbiAgICBzb3VyY2VtYXAsXG4gICAgd2F0Y2gsXG4gIH07XG4gIHJldHVybiBuZXcgVGVzdEJ1aWxkZXIoY29uZmlnKTtcbn1cblxuZGVzY3JpYmUoJ3Jlc29sdmVTb3VyY2VtYXAnLCAoKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsRW52ID0gcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGRlbGV0ZSBwcm9jZXNzLmVudi5XT1JLRkxPV19TT1VSQ0VNQVA7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgaWYgKG9yaWdpbmFsRW52ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBwcm9jZXNzLmVudi5XT1JLRkxPV19TT1VSQ0VNQVA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1NPVVJDRU1BUCA9IG9yaWdpbmFsRW52O1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgdGhlIGRlZmF1bHQgd2hlbiBubyBjb25maWcgb3IgZW52IHZhciBpcyBzZXQnLCAoKSA9PiB7XG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIoKTtcbiAgICBleHBlY3QoYnVpbGRlci5jYWxsUmVzb2x2ZVNvdXJjZW1hcCgnaW5saW5lJykpLnRvQmUoJ2lubGluZScpO1xuICAgIGV4cGVjdChidWlsZGVyLmNhbGxSZXNvbHZlU291cmNlbWFwKGZhbHNlKSkudG9CZShmYWxzZSk7XG4gICAgZXhwZWN0KGJ1aWxkZXIuY2FsbFJlc29sdmVTb3VyY2VtYXAodHJ1ZSkpLnRvQmUodHJ1ZSk7XG4gIH0pO1xuXG4gIGl0KCdwcmVmZXJzIGV4cGxpY2l0IGNvbmZpZyBvdmVyIHRoZSBkZWZhdWx0JywgKCkgPT4ge1xuICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKGZhbHNlKS5jYWxsUmVzb2x2ZVNvdXJjZW1hcCgnaW5saW5lJykpLnRvQmUoZmFsc2UpO1xuICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKCdleHRlcm5hbCcpLmNhbGxSZXNvbHZlU291cmNlbWFwKCdpbmxpbmUnKSkudG9CZShcbiAgICAgICdleHRlcm5hbCdcbiAgICApO1xuICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKCdsaW5rZWQnKS5jYWxsUmVzb2x2ZVNvdXJjZW1hcChmYWxzZSkpLnRvQmUoJ2xpbmtlZCcpO1xuICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKHRydWUpLmNhbGxSZXNvbHZlU291cmNlbWFwKCdpbmxpbmUnKSkudG9CZSh0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ3ByZWZlcnMgZXhwbGljaXQgY29uZmlnIG92ZXIgZW52aXJvbm1lbnQgdmFyaWFibGUnLCAoKSA9PiB7XG4gICAgcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQID0gJ2lubGluZSc7XG4gICAgZXhwZWN0KGNyZWF0ZUJ1aWxkZXIoZmFsc2UpLmNhbGxSZXNvbHZlU291cmNlbWFwKCdpbmxpbmUnKSkudG9CZShmYWxzZSk7XG4gICAgZXhwZWN0KGNyZWF0ZUJ1aWxkZXIoJ2V4dGVybmFsJykuY2FsbFJlc29sdmVTb3VyY2VtYXAoJ2lubGluZScpKS50b0JlKFxuICAgICAgJ2V4dGVybmFsJ1xuICAgICk7XG4gIH0pO1xuXG4gIGl0KCd1c2VzIGVudmlyb25tZW50IHZhcmlhYmxlIHdoZW4gY29uZmlnIGlzIG5vdCBzZXQnLCAoKSA9PiB7XG4gICAgcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQID0gJ2ZhbHNlJztcbiAgICBleHBlY3QoY3JlYXRlQnVpbGRlcigpLmNhbGxSZXNvbHZlU291cmNlbWFwKCdpbmxpbmUnKSkudG9CZShmYWxzZSk7XG5cbiAgICBwcm9jZXNzLmVudi5XT1JLRkxPV19TT1VSQ0VNQVAgPSAndHJ1ZSc7XG4gICAgZXhwZWN0KGNyZWF0ZUJ1aWxkZXIoKS5jYWxsUmVzb2x2ZVNvdXJjZW1hcChmYWxzZSkpLnRvQmUodHJ1ZSk7XG5cbiAgICBmb3IgKGNvbnN0IG1vZGUgb2YgWydpbmxpbmUnLCAnbGlua2VkJywgJ2V4dGVybmFsJywgJ2JvdGgnXSBhcyBjb25zdCkge1xuICAgICAgcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQID0gbW9kZTtcbiAgICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKCkuY2FsbFJlc29sdmVTb3VyY2VtYXAoJ2lubGluZScpKS50b0JlKG1vZGUpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ2FjY2VwdHMgXCIwXCIgLyBcIjFcIiBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBhbGlhc2VzIGZvciBmYWxzZSAvIHRydWUnLCAoKSA9PiB7XG4gICAgcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQID0gJzAnO1xuICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKCkuY2FsbFJlc29sdmVTb3VyY2VtYXAoJ2lubGluZScpKS50b0JlKGZhbHNlKTtcblxuICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1NPVVJDRU1BUCA9ICcxJztcbiAgICBleHBlY3QoY3JlYXRlQnVpbGRlcigpLmNhbGxSZXNvbHZlU291cmNlbWFwKGZhbHNlKSkudG9CZSh0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ2ZhbGxzIGJhY2sgdG8gZGVmYXVsdCB3aGVuIGVudiB2YXIgaXMgZW1wdHkgb3IgdW5yZWNvZ25pemVkJywgKCkgPT4ge1xuICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1NPVVJDRU1BUCA9ICcnO1xuICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKCkuY2FsbFJlc29sdmVTb3VyY2VtYXAoJ2lubGluZScpKS50b0JlKCdpbmxpbmUnKTtcblxuICAgIC8vIFN1cHByZXNzIHRoZSBleHBlY3RlZCB3YXJuaW5nXG4gICAgY29uc3Qgb3JpZ2luYWxXYXJuID0gY29uc29sZS53YXJuO1xuICAgIGNvbnNvbGUud2FybiA9ICgpID0+IHt9O1xuICAgIHRyeSB7XG4gICAgICBwcm9jZXNzLmVudi5XT1JLRkxPV19TT1VSQ0VNQVAgPSAnbm9uc2Vuc2UnO1xuICAgICAgZXhwZWN0KGNyZWF0ZUJ1aWxkZXIoKS5jYWxsUmVzb2x2ZVNvdXJjZW1hcCgnaW5saW5lJykpLnRvQmUoJ2lubGluZScpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjb25zb2xlLndhcm4gPSBvcmlnaW5hbFdhcm47XG4gICAgfVxuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnZGVmYXVsdFNvdXJjZW1hcE1vZGUgLyBpc0RldmVsb3BtZW50QnVpbGQnLCAoKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsTm9kZUVudiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuICBjb25zdCBvcmlnaW5hbFNvdXJjZW1hcEVudiA9IHByb2Nlc3MuZW52LldPUktGTE9XX1NPVVJDRU1BUDtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBkZWxldGUgcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGlmIChvcmlnaW5hbE5vZGVFbnYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVsZXRlIHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9IG9yaWdpbmFsTm9kZUVudjtcbiAgICB9XG4gICAgaWYgKG9yaWdpbmFsU291cmNlbWFwRW52ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBwcm9jZXNzLmVudi5XT1JLRkxPV19TT1VSQ0VNQVA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1NPVVJDRU1BUCA9IG9yaWdpbmFsU291cmNlbWFwRW52O1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ2RlZmF1bHRzIHRvIG9mZiBpbiBwcm9kdWN0aW9uIChubyB3YXRjaCwgTk9ERV9FTlYgbm90IGRldmVsb3BtZW50KScsICgpID0+IHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9ICdwcm9kdWN0aW9uJztcbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcigpO1xuICAgIGV4cGVjdChidWlsZGVyLnB1YmxpY0lzRGV2ZWxvcG1lbnRCdWlsZCkudG9CZShmYWxzZSk7XG4gICAgZXhwZWN0KGJ1aWxkZXIucHVibGljRGVmYXVsdFNvdXJjZW1hcE1vZGUpLnRvQmUoZmFsc2UpO1xuICB9KTtcblxuICBpdCgnZGVmYXVsdHMgdG8gaW5saW5lIHdoZW4gY29uZmlnLndhdGNoIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgLy8gRXZlbiB3aXRoIGEgcHJvZHVjdGlvbiBOT0RFX0VOViwgYW4gYWN0aXZlIHdhdGNoL2RldiBzZXJ2ZXIgb3B0cyBpbi5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9ICdwcm9kdWN0aW9uJztcbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcih1bmRlZmluZWQsIHRydWUpO1xuICAgIGV4cGVjdChidWlsZGVyLnB1YmxpY0lzRGV2ZWxvcG1lbnRCdWlsZCkudG9CZSh0cnVlKTtcbiAgICBleHBlY3QoYnVpbGRlci5wdWJsaWNEZWZhdWx0U291cmNlbWFwTW9kZSkudG9CZSgnaW5saW5lJyk7XG4gIH0pO1xuXG4gIGl0KCdkZWZhdWx0cyB0byBpbmxpbmUgd2hlbiBOT0RFX0VOViBpcyBkZXZlbG9wbWVudCcsICgpID0+IHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9ICdkZXZlbG9wbWVudCc7XG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIoKTtcbiAgICBleHBlY3QoYnVpbGRlci5wdWJsaWNJc0RldmVsb3BtZW50QnVpbGQpLnRvQmUodHJ1ZSk7XG4gICAgZXhwZWN0KGJ1aWxkZXIucHVibGljRGVmYXVsdFNvdXJjZW1hcE1vZGUpLnRvQmUoJ2lubGluZScpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnc291cmNlbWFwc0VuYWJsZWQnLCAoKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsTm9kZUVudiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuICBjb25zdCBvcmlnaW5hbEVudiA9IHByb2Nlc3MuZW52LldPUktGTE9XX1NPVVJDRU1BUDtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBkZWxldGUgcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQO1xuICAgIC8vIFBpbiB0byBwcm9kdWN0aW9uIHNvIHRoZSBlbnZpcm9ubWVudC1hd2FyZSBkZWZhdWx0IGlzIGRldGVybWluaXN0aWM7XG4gICAgLy8gaW5kaXZpZHVhbCB0ZXN0cyBvcHQgaW50byBkZXYgdmlhIHdhdGNoL05PREVfRU5WIGFzIG5lZWRlZC5cbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9ICdwcm9kdWN0aW9uJztcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBpZiAob3JpZ2luYWxOb2RlRW52ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBwcm9jZXNzLmVudi5OT0RFX0VOVjtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPSBvcmlnaW5hbE5vZGVFbnY7XG4gICAgfVxuICAgIGlmIChvcmlnaW5hbEVudiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWxldGUgcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmVudi5XT1JLRkxPV19TT1VSQ0VNQVAgPSBvcmlnaW5hbEVudjtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdpcyBmYWxzZSBieSBkZWZhdWx0IGluIHByb2R1Y3Rpb24nLCAoKSA9PiB7XG4gICAgZXhwZWN0KGNyZWF0ZUJ1aWxkZXIoKS5wdWJsaWNTb3VyY2VtYXBzRW5hYmxlZCkudG9CZShmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdpcyB0cnVlIGJ5IGRlZmF1bHQgaW4gZGV2ZWxvcG1lbnQgKHdhdGNoKScsICgpID0+IHtcbiAgICBleHBlY3QoY3JlYXRlQnVpbGRlcih1bmRlZmluZWQsIHRydWUpLnB1YmxpY1NvdXJjZW1hcHNFbmFibGVkKS50b0JlKHRydWUpO1xuICB9KTtcblxuICBpdCgnaXMgdHJ1ZSBieSBkZWZhdWx0IGluIGRldmVsb3BtZW50IChOT0RFX0VOViknLCAoKSA9PiB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPSAnZGV2ZWxvcG1lbnQnO1xuICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKCkucHVibGljU291cmNlbWFwc0VuYWJsZWQpLnRvQmUodHJ1ZSk7XG4gIH0pO1xuXG4gIGl0KCdpcyBmYWxzZSB3aGVuIGNvbmZpZyBzb3VyY2VtYXAgaXMgZmFsc2UnLCAoKSA9PiB7XG4gICAgZXhwZWN0KGNyZWF0ZUJ1aWxkZXIoZmFsc2UpLnB1YmxpY1NvdXJjZW1hcHNFbmFibGVkKS50b0JlKGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ2lzIHRydWUgZm9yIGFueSBub24tZmFsc2UgY29uZmlnIHZhbHVlJywgKCkgPT4ge1xuICAgIGZvciAoY29uc3QgbW9kZSBvZiBbXG4gICAgICB0cnVlLFxuICAgICAgJ2lubGluZScsXG4gICAgICAnbGlua2VkJyxcbiAgICAgICdleHRlcm5hbCcsXG4gICAgICAnYm90aCcsXG4gICAgXSBhcyBjb25zdCkge1xuICAgICAgZXhwZWN0KGNyZWF0ZUJ1aWxkZXIobW9kZSkucHVibGljU291cmNlbWFwc0VuYWJsZWQpLnRvQmUodHJ1ZSk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnaXMgdHJ1ZSBpbiBwcm9kdWN0aW9uIHdoZW4gV09SS0ZMT1dfU09VUkNFTUFQIGVudiBvcHRzIGluJywgKCkgPT4ge1xuICAgIHByb2Nlc3MuZW52LldPUktGTE9XX1NPVVJDRU1BUCA9ICdpbmxpbmUnO1xuICAgIGV4cGVjdChjcmVhdGVCdWlsZGVyKCkucHVibGljU291cmNlbWFwc0VuYWJsZWQpLnRvQmUodHJ1ZSk7XG4gIH0pO1xuXG4gIGl0KCdpcyBmYWxzZSB3aGVuIFdPUktGTE9XX1NPVVJDRU1BUCBlbnYgaXMgZmFsc2UnLCAoKSA9PiB7XG4gICAgcHJvY2Vzcy5lbnYuV09SS0ZMT1dfU09VUkNFTUFQID0gJ2ZhbHNlJztcbiAgICBleHBlY3QoY3JlYXRlQnVpbGRlcigpLnB1YmxpY1NvdXJjZW1hcHNFbmFibGVkKS50b0JlKGZhbHNlKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -115,4 +115,4 @@ export function extractClassEntries(manifest) {
115
115
  }
116
116
  return entries;
117
117
  }
118
- //# sourceMappingURL=serde-checker.js.map
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyZGUtY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJkZS1jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsT0FBTyxjQUFjLE1BQU0saUJBQWlCLENBQUM7QUFHN0Msa0ZBQWtGO0FBQ2xGLDZFQUE2RTtBQUM3RSxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRTlDLHdFQUF3RTtBQUN4RSxNQUFNLHNCQUFzQixHQUFHLElBQUksTUFBTSxDQUN2QyxnQ0FBZ0MsWUFBWSxvQkFBb0I7SUFDOUQsd0NBQXdDLFlBQVksNEJBQTRCLEVBQ2xGLEdBQUcsQ0FDSixDQUFDO0FBRUYsdUVBQXVFO0FBQ3ZFLE1BQU0scUJBQXFCLEdBQ3pCLHlEQUF5RCxDQUFDO0FBdUM1RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE9BT3RDO0lBQ0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXZELG1FQUFtRTtJQUNuRSxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTNELGlFQUFpRTtJQUNqRSxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVoRCw4REFBOEQ7SUFDOUQsTUFBTSxlQUFlLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWpFLHdCQUF3QjtJQUN4QixNQUFNLE9BQU8sR0FBNEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2xFLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUU1QixzRUFBc0U7UUFDdEUsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLElBQUksQ0FDVCxzREFBc0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUNwRixzREFBc0Q7Z0JBQ3RELHNHQUFzRyxDQUN6RyxDQUFDO1FBQ0osQ0FBQztRQUVELHlCQUF5QjtRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLElBQUksQ0FDVCw0Q0FBNEM7Z0JBQzFDLG1GQUFtRjtnQkFDbkYsZ0dBQWdHLENBQ25HLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTztZQUNMLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsUUFBUSxFQUFFLElBQUk7WUFDZCxVQUFVLEVBQUUsZUFBZTtZQUMzQixXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGVBQWU7WUFDNUQsTUFBTTtTQUNQLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILHNGQUFzRjtJQUN0RixNQUFNLHNCQUFzQixHQUMxQiw4Q0FBOEMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQy9ELG9FQUFvRSxDQUFDLElBQUksQ0FDdkUsVUFBVSxDQUNYLENBQUM7SUFFSixJQUFJLHNCQUFzQixJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEQsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNYLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLEtBQUs7WUFDZixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUsaUJBQWlCO1lBQzlCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLE1BQU0sRUFBRTtnQkFDTiw0RUFBNEU7b0JBQzFFLDJEQUEyRDtvQkFDM0QsMEVBQTBFO29CQUMxRSw2RUFBNkU7YUFDaEY7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU87UUFDUCxpQkFBaUI7UUFDakIsZUFBZTtRQUNmLFFBQVE7S0FDVCxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxJQUFZO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDbEMsb0JBQW9CO0lBQ3BCLHNCQUFzQixDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDckMsS0FDRSxJQUFJLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQzdDLEtBQUssS0FBSyxJQUFJLEVBQ2QsS0FBSyxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDekMsQ0FBQztRQUNELHFFQUFxRTtRQUNyRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZiw4REFBOEQ7WUFDOUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM3QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFFBQTBCO0lBRTFCLE1BQU0sT0FBTyxHQUlSLEVBQUUsQ0FBQztJQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTztRQUFFLE9BQU8sT0FBTyxDQUFDO0lBRXRDLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25FLEtBQUssTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJkZSBjb21wbGlhbmNlIGNoZWNrZXIgZm9yIHdvcmtmbG93IGN1c3RvbSBjbGFzcyBzZXJpYWxpemF0aW9uLlxuICpcbiAqIEFuYWx5emVzIHNvdXJjZSBjb2RlIHRvIGRldGVybWluZSBpZiBjbGFzc2VzIHdpdGggV09SS0ZMT1dfU0VSSUFMSVpFIC9cbiAqIFdPUktGTE9XX0RFU0VSSUFMSVpFIGFyZSBjb3JyZWN0bHkgc2V0IHVwIGZvciB0aGUgd29ya2Zsb3cgc2FuZGJveC5cbiAqXG4gKiBVc2VkIGJ5OlxuICogLSBDTEkgYHZhbGlkYXRlYCBjb21tYW5kXG4gKiAtIENMSSBgdHJhbnNmb3JtYCBjb21tYW5kICgtLWNoZWNrLXNlcmRlKVxuICogLSBTV0MgcGxheWdyb3VuZCBzZXJkZSBhbmFseXNpcyBwYW5lbFxuICogLSBCdWlsZC10aW1lIHdhcm5pbmdzIGluIEJhc2VCdWlsZGVyXG4gKi9cblxuaW1wb3J0IGJ1aWx0aW5Nb2R1bGVzIGZyb20gJ2J1aWx0aW4tbW9kdWxlcyc7XG5pbXBvcnQgdHlwZSB7IFdvcmtmbG93TWFuaWZlc3QgfSBmcm9tICcuL2FwcGx5LXN3Yy10cmFuc2Zvcm0uanMnO1xuXG4vLyBCdWlsZCBhIHJlZ2V4IHRoYXQgbWF0Y2hlcyBOb2RlLmpzIGJ1aWx0LWluIG1vZHVsZSBpbXBvcnRzIGluIHRyYW5zZm9ybWVkIGNvZGUuXG4vLyBIYW5kbGVzIGJvdGggRVNNIChgZnJvbSAnZnMnYCwgYGZyb20gJ25vZGU6ZnMnYCkgYW5kIENKUyAoYHJlcXVpcmUoJ2ZzJylgKVxuY29uc3Qgbm9kZUJ1aWx0aW5zID0gYnVpbHRpbk1vZHVsZXMuam9pbignfCcpO1xuXG4vLyBSZWdleCB0byBleHRyYWN0IHNwZWNpZmljIG1vZHVsZSBuYW1lcyBmcm9tIGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHNcbmNvbnN0IG5vZGVJbXBvcnRFeHRyYWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICBgKD86ZnJvbVxcXFxzK1snXCJdKD86bm9kZTopPygoPzoke25vZGVCdWlsdGluc30pKD86L1teJ1wiXSopPylbJ1wiXWAgK1xuICAgIGB8cmVxdWlyZVxcXFxzKlxcXFwoXFxcXHMqWydcIl0oPzpub2RlOik/KCg/OiR7bm9kZUJ1aWx0aW5zfSkoPzovW14nXCJdKik/KVsnXCJdXFxcXHMqXFxcXCkpYCxcbiAgJ2cnXG4pO1xuXG4vLyBSZWdleCB0byBkZXRlY3QgY2xhc3MgcmVnaXN0cmF0aW9uIElJRkVzIGdlbmVyYXRlZCBieSB0aGUgU1dDIHBsdWdpblxuY29uc3QgcmVnaXN0cmF0aW9uSWlmZVJlZ2V4ID1cbiAgL1N5bWJvbFxcLmZvclxccypcXChcXHMqW1wiJ113b3JrZmxvdy1jbGFzcy1yZWdpc3RyeVtcIiddXFxzKlxcKS87XG5cbi8qKlxuICogUmVzdWx0IG9mIGNoZWNraW5nIGEgc2luZ2xlIGNsYXNzIGZvciBzZXJkZSBjb21wbGlhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcmRlQ2xhc3NDaGVja1Jlc3VsdCB7XG4gIC8qKiBUaGUgY2xhc3MgbmFtZSBhcyBkZXRlY3RlZCBpbiB0aGUgc291cmNlICovXG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICAvKiogVGhlIGNsYXNzSWQgYXNzaWduZWQgYnkgdGhlIFNXQyBwbHVnaW4gKGZyb20gdGhlIG1hbmlmZXN0KSAqL1xuICBjbGFzc0lkOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBTV0MgcGx1Z2luIGRldGVjdGVkIHNlcmRlIHN5bWJvbHMgb24gdGhpcyBjbGFzcyAqL1xuICBkZXRlY3RlZDogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgYSByZWdpc3RyYXRpb24gSUlGRSB3YXMgZ2VuZXJhdGVkIGluIHRoZSBvdXRwdXQgKi9cbiAgcmVnaXN0ZXJlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE5vZGUuanMgYnVpbHQtaW4gbW9kdWxlIGltcG9ydHMgcmVtYWluaW5nIGluIHRoZSB3b3JrZmxvdy1tb2RlIG91dHB1dC5cbiAgICogSWYgbm9uLWVtcHR5LCB0aGUgY2xhc3MgaXMgTk9UIHdvcmtmbG93LXNhbmRib3ggY29tcGxpYW50LlxuICAgKi9cbiAgbm9kZUltcG9ydHM6IHN0cmluZ1tdO1xuICAvKiogV2hldGhlciB0aGUgY2xhc3MgcGFzc2VzIGFsbCBjb21wbGlhbmNlIGNoZWNrcyAqL1xuICBjb21wbGlhbnQ6IGJvb2xlYW47XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbnMgb2YgYW55IGlzc3VlcyBmb3VuZCAqL1xuICBpc3N1ZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEZ1bGwgcmVzdWx0IG9mIHNlcmRlIGNvbXBsaWFuY2UgYW5hbHlzaXMgZm9yIGEgc291cmNlIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VyZGVDaGVja1Jlc3VsdCB7XG4gIC8qKiBQZXItY2xhc3MgYW5hbHlzaXMgcmVzdWx0cyAqL1xuICBjbGFzc2VzOiBTZXJkZUNsYXNzQ2hlY2tSZXN1bHRbXTtcbiAgLyoqIEFsbCBOb2RlLmpzIGJ1aWx0LWluIGltcG9ydHMgZm91bmQgaW4gdGhlIHdvcmtmbG93LW1vZGUgb3V0cHV0ICovXG4gIGdsb2JhbE5vZGVJbXBvcnRzOiBzdHJpbmdbXTtcbiAgLyoqIFdoZXRoZXIgdGhlIHdvcmtmbG93LW1vZGUgb3V0cHV0IGNvbnRhaW5zIGFueSBzZXJkZS1yZWxhdGVkIGNsYXNzZXMgKi9cbiAgaGFzU2VyZGVDbGFzc2VzOiBib29sZWFuO1xuICAvKiogVGhlIHJhdyB3b3JrZmxvdyBtYW5pZmVzdCBleHRyYWN0ZWQgZnJvbSB0aGUgU1dDIHRyYW5zZm9ybSAqL1xuICBtYW5pZmVzdDogV29ya2Zsb3dNYW5pZmVzdDtcbn1cblxuLyoqXG4gKiBMaWdodHdlaWdodCBzZXJkZSBjb21wbGlhbmNlIGNoZWNrZXIgdGhhdCB3b3JrcyB3aXRoIHByZS1jb21wdXRlZFxuICogU1dDIHRyYW5zZm9ybSByZXN1bHRzLiBUaGlzIGF2b2lkcyByZS1ydW5uaW5nIHRoZSBTV0MgdHJhbnNmb3JtXG4gKiB3aGVuIHRoZSBjYWxsZXIgYWxyZWFkeSBoYXMgdGhlIG91dHB1dHMgKGUuZy4sIHRoZSBwbGF5Z3JvdW5kIG9yIGJ1aWxkZXIpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYW5hbHl6ZVNlcmRlQ29tcGxpYW5jZShvcHRpb25zOiB7XG4gIC8qKiBTb3VyY2UgY29kZSAodXNlZCBmb3IgcGF0dGVybiBkZXRlY3Rpb24pICovXG4gIHNvdXJjZUNvZGU6IHN0cmluZztcbiAgLyoqIFdvcmtmbG93LW1vZGUgdHJhbnNmb3JtZWQgb3V0cHV0ICovXG4gIHdvcmtmbG93Q29kZTogc3RyaW5nO1xuICAvKiogTWFuaWZlc3QgZXh0cmFjdGVkIGZyb20gdGhlIFNXQyB0cmFuc2Zvcm0gKi9cbiAgbWFuaWZlc3Q6IFdvcmtmbG93TWFuaWZlc3Q7XG59KTogU2VyZGVDaGVja1Jlc3VsdCB7XG4gIGNvbnN0IHsgc291cmNlQ29kZSwgd29ya2Zsb3dDb2RlLCBtYW5pZmVzdCB9ID0gb3B0aW9ucztcblxuICAvLyAxLiBFeHRyYWN0IGFsbCBOb2RlLmpzIGJ1aWx0LWluIGltcG9ydHMgZnJvbSB0aGUgd29ya2Zsb3cgb3V0cHV0XG4gIGNvbnN0IGdsb2JhbE5vZGVJbXBvcnRzID0gZXh0cmFjdE5vZGVJbXBvcnRzKHdvcmtmbG93Q29kZSk7XG5cbiAgLy8gMi4gQ2hlY2sgaWYgdGhlIG1hbmlmZXN0IGNvbnRhaW5zIGFueSBzZXJkZS1yZWdpc3RlcmVkIGNsYXNzZXNcbiAgY29uc3QgY2xhc3NFbnRyaWVzID0gZXh0cmFjdENsYXNzRW50cmllcyhtYW5pZmVzdCk7XG4gIGNvbnN0IGhhc1NlcmRlQ2xhc3NlcyA9IGNsYXNzRW50cmllcy5sZW5ndGggPiAwO1xuXG4gIC8vIDMuIENoZWNrIGlmIHRoZSB3b3JrZmxvdyBvdXRwdXQgY29udGFpbnMgcmVnaXN0cmF0aW9uIElJRkVzXG4gIGNvbnN0IGhhc1JlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbklpZmVSZWdleC50ZXN0KHdvcmtmbG93Q29kZSk7XG5cbiAgLy8gNC4gQW5hbHl6ZSBlYWNoIGNsYXNzXG4gIGNvbnN0IGNsYXNzZXM6IFNlcmRlQ2xhc3NDaGVja1Jlc3VsdFtdID0gY2xhc3NFbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbiAgICBjb25zdCBpc3N1ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBDaGVjayBmb3IgTm9kZS5qcyBpbXBvcnRzICh0aGVzZSB3aWxsIGZhaWwgaW4gdGhlIHdvcmtmbG93IHNhbmRib3gpXG4gICAgaWYgKGdsb2JhbE5vZGVJbXBvcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlzc3Vlcy5wdXNoKFxuICAgICAgICBgV29ya2Zsb3cgYnVuZGxlIGNvbnRhaW5zIE5vZGUuanMgYnVpbHQtaW4gaW1wb3J0czogJHtnbG9iYWxOb2RlSW1wb3J0cy5qb2luKCcsICcpfS4gYCArXG4gICAgICAgICAgYFRoZXNlIHdpbGwgZmFpbCBhdCBydW50aW1lIGluIHRoZSB3b3JrZmxvdyBzYW5kYm94LiBgICtcbiAgICAgICAgICBgQWRkIFwidXNlIHN0ZXBcIiB0byBtZXRob2RzIHRoYXQgZGVwZW5kIG9uIE5vZGUuanMgQVBJcyBzbyB0aGV5IGFyZSBzdHJpcHBlZCBmcm9tIHRoZSB3b3JrZmxvdyBidW5kbGUuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgcmVnaXN0cmF0aW9uXG4gICAgaWYgKCFoYXNSZWdpc3RyYXRpb24pIHtcbiAgICAgIGlzc3Vlcy5wdXNoKFxuICAgICAgICBgTm8gY2xhc3MgcmVnaXN0cmF0aW9uIElJRkUgd2FzIGdlbmVyYXRlZC4gYCArXG4gICAgICAgICAgYEVuc3VyZSBXT1JLRkxPV19TRVJJQUxJWkUgYW5kIFdPUktGTE9XX0RFU0VSSUFMSVpFIGFyZSBkZWZpbmVkIGFzIHN0YXRpYyBtZXRob2RzIGAgK1xuICAgICAgICAgIGBpbnNpZGUgdGhlIGNsYXNzIGJvZHkgdXNpbmcgY29tcHV0ZWQgcHJvcGVydHkgc3ludGF4OiBzdGF0aWMgW1dPUktGTE9XX1NFUklBTElaRV0oLi4uKSB7IC4uLiB9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2xhc3NOYW1lOiBlbnRyeS5jbGFzc05hbWUsXG4gICAgICBjbGFzc0lkOiBlbnRyeS5jbGFzc0lkLFxuICAgICAgZGV0ZWN0ZWQ6IHRydWUsXG4gICAgICByZWdpc3RlcmVkOiBoYXNSZWdpc3RyYXRpb24sXG4gICAgICBub2RlSW1wb3J0czogZ2xvYmFsTm9kZUltcG9ydHMsXG4gICAgICBjb21wbGlhbnQ6IGdsb2JhbE5vZGVJbXBvcnRzLmxlbmd0aCA9PT0gMCAmJiBoYXNSZWdpc3RyYXRpb24sXG4gICAgICBpc3N1ZXMsXG4gICAgfTtcbiAgfSk7XG5cbiAgLy8gNS4gQ2hlY2sgZm9yIGNsYXNzZXMgdGhhdCBoYXZlIHNlcmRlIHBhdHRlcm5zIGluIHNvdXJjZSBidXQgd2VyZW4ndCBkZXRlY3RlZCBieSBTV0NcbiAgY29uc3Qgc291cmNlSGFzU2VyZGVQYXR0ZXJucyA9XG4gICAgL1xcW1xccypXT1JLRkxPV18oPzpTRVJJQUxJWkV8REVTRVJJQUxJWkUpXFxzKlxcXS8udGVzdChzb3VyY2VDb2RlKSB8fFxuICAgIC9TeW1ib2xcXC5mb3JcXHMqXFwoXFxzKlsnXCJdd29ya2Zsb3ctKD86c2VyaWFsaXplfGRlc2VyaWFsaXplKVsnXCJdXFxzKlxcKS8udGVzdChcbiAgICAgIHNvdXJjZUNvZGVcbiAgICApO1xuXG4gIGlmIChzb3VyY2VIYXNTZXJkZVBhdHRlcm5zICYmIGNsYXNzRW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICBjbGFzc2VzLnB1c2goe1xuICAgICAgY2xhc3NOYW1lOiAnPHVua25vd24+JyxcbiAgICAgIGNsYXNzSWQ6ICcnLFxuICAgICAgZGV0ZWN0ZWQ6IGZhbHNlLFxuICAgICAgcmVnaXN0ZXJlZDogZmFsc2UsXG4gICAgICBub2RlSW1wb3J0czogZ2xvYmFsTm9kZUltcG9ydHMsXG4gICAgICBjb21wbGlhbnQ6IGZhbHNlLFxuICAgICAgaXNzdWVzOiBbXG4gICAgICAgIGBTb3VyY2UgY29kZSBjb250YWlucyBXT1JLRkxPV19TRVJJQUxJWkUvV09SS0ZMT1dfREVTRVJJQUxJWkUgcGF0dGVybnMgYnV0IGAgK1xuICAgICAgICAgIGB0aGUgU1dDIHBsdWdpbiBkaWQgbm90IGRldGVjdCBhbnkgc2VyZGUtZW5hYmxlZCBjbGFzc2VzLiBgICtcbiAgICAgICAgICBgRW5zdXJlIHRoZSBzeW1ib2xzIGFyZSBkZWZpbmVkIGFzIHN0YXRpYyBtZXRob2RzIElOU0lERSB0aGUgY2xhc3MgYm9keSwgYCArXG4gICAgICAgICAgYG5vdCBhc3NpZ25lZCBleHRlcm5hbGx5IChlLmcuLCAoTXlDbGFzcyBhcyBhbnkpW1dPUktGTE9XX1NFUklBTElaRV0gPSAuLi4pLmAsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjbGFzc2VzLFxuICAgIGdsb2JhbE5vZGVJbXBvcnRzLFxuICAgIGhhc1NlcmRlQ2xhc3NlcyxcbiAgICBtYW5pZmVzdCxcbiAgfTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IE5vZGUuanMgYnVpbHQtaW4gbW9kdWxlIG5hbWVzIGZyb20gdHJhbnNmb3JtZWQgY29kZS5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdE5vZGVJbXBvcnRzKGNvZGU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgaW1wb3J0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAvLyBSZXNldCByZWdleCBzdGF0ZVxuICBub2RlSW1wb3J0RXh0cmFjdFJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gIGZvciAoXG4gICAgbGV0IG1hdGNoID0gbm9kZUltcG9ydEV4dHJhY3RSZWdleC5leGVjKGNvZGUpO1xuICAgIG1hdGNoICE9PSBudWxsO1xuICAgIG1hdGNoID0gbm9kZUltcG9ydEV4dHJhY3RSZWdleC5leGVjKGNvZGUpXG4gICkge1xuICAgIC8vIG1hdGNoWzFdIGlzIGZyb20gdGhlIEVTTSBwYXR0ZXJuLCBtYXRjaFsyXSBpcyBmcm9tIHRoZSBDSlMgcGF0dGVyblxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBtYXRjaFsxXSB8fCBtYXRjaFsyXTtcbiAgICBpZiAobW9kdWxlTmFtZSkge1xuICAgICAgLy8gTm9ybWFsaXplIHRvIGJhc2UgbW9kdWxlIG5hbWUgKGUuZy4sICdmcy9wcm9taXNlcycgLT4gJ2ZzJylcbiAgICAgIGltcG9ydHMuYWRkKG1vZHVsZU5hbWUuc3BsaXQoJy8nKVswXSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbLi4uaW1wb3J0c10uc29ydCgpO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgY2xhc3MgZW50cmllcyBmcm9tIGEgV29ya2Zsb3dNYW5pZmVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RDbGFzc0VudHJpZXMoXG4gIG1hbmlmZXN0OiBXb3JrZmxvd01hbmlmZXN0XG4pOiBBcnJheTx7IGNsYXNzTmFtZTogc3RyaW5nOyBjbGFzc0lkOiBzdHJpbmc7IGZpbGVOYW1lOiBzdHJpbmcgfT4ge1xuICBjb25zdCBlbnRyaWVzOiBBcnJheTx7XG4gICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgY2xhc3NJZDogc3RyaW5nO1xuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG4gIH0+ID0gW107XG4gIGlmICghbWFuaWZlc3QuY2xhc3NlcykgcmV0dXJuIGVudHJpZXM7XG5cbiAgZm9yIChjb25zdCBbZmlsZU5hbWUsIGNsYXNzZXNdIG9mIE9iamVjdC5lbnRyaWVzKG1hbmlmZXN0LmNsYXNzZXMpKSB7XG4gICAgZm9yIChjb25zdCBbY2xhc3NOYW1lLCB7IGNsYXNzSWQgfV0gb2YgT2JqZWN0LmVudHJpZXMoY2xhc3NlcykpIHtcbiAgICAgIGVudHJpZXMucHVzaCh7IGNsYXNzTmFtZSwgY2xhc3NJZCwgZmlsZU5hbWUgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBlbnRyaWVzO1xufVxuIl19
@@ -3,9 +3,6 @@ import type { WorkflowConfig } from './types.js';
3
3
  export declare class StandaloneBuilder extends BaseBuilder {
4
4
  constructor(config: WorkflowConfig);
5
5
  build(): Promise<void>;
6
- private mergeManifests;
7
- private buildStepsBundle;
8
- private buildWorkflowsBundle;
9
6
  private buildWebhookFunction;
10
7
  }
11
8
  //# sourceMappingURL=standalone.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standalone.d.ts","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,MAAM,EAAE,cAAc;IAO5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B,OAAO,CAAC,cAAc;YAuBR,gBAAgB;YAqBhB,oBAAoB;YA0BpB,oBAAoB;CAUnC"}
1
+ {"version":3,"file":"standalone.d.ts","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,MAAM,EAAE,cAAc;IAO5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAsCd,oBAAoB;CAanC"}
@@ -1,3 +1,4 @@
1
+ import { rm } from 'node:fs/promises';
1
2
  import { BaseBuilder } from './base-builder.js';
2
3
  export class StandaloneBuilder extends BaseBuilder {
3
4
  constructor(config) {
@@ -7,21 +8,25 @@ export class StandaloneBuilder extends BaseBuilder {
7
8
  });
8
9
  }
9
10
  async build() {
11
+ // Existing standalone output may still contain the retired step route.
12
+ await rm(this.resolvePath('.well-known/workflow/v1/step.mjs'), {
13
+ force: true,
14
+ });
10
15
  const inputFiles = await this.getInputFiles();
11
16
  const tsconfigPath = await this.findTsConfigPath();
12
- const options = {
17
+ const stepsBundlePath = this.resolvePath(this.config.stepsBundlePath);
18
+ const workflowBundlePath = this.resolvePath(this.config.workflowsBundlePath);
19
+ await this.ensureDirectory(stepsBundlePath);
20
+ await this.ensureDirectory(workflowBundlePath);
21
+ this.logBaseBuilderInfo('Creating combined bundle');
22
+ const { manifest } = await this.createCombinedBundle({
13
23
  inputFiles,
24
+ stepsOutfile: stepsBundlePath,
25
+ flowOutfile: workflowBundlePath,
14
26
  tsconfigPath,
15
- };
16
- const stepsManifest = await this.buildStepsBundle(options);
17
- const workflowsManifest = await this.buildWorkflowsBundle(options);
27
+ bundleFinalOutput: true,
28
+ });
18
29
  await this.buildWebhookFunction();
19
- // Merge manifests from both bundles
20
- // Steps bundle discovers classes from default export conditions
21
- // Workflow bundle discovers classes from 'workflow' export conditions
22
- const manifest = this.mergeManifests(stepsManifest, workflowsManifest);
23
- // Build unified manifest from workflow bundle
24
- const workflowBundlePath = this.resolvePath(this.config.workflowsBundlePath);
25
30
  const manifestDir = this.resolvePath('.well-known/workflow/v1');
26
31
  await this.createManifest({
27
32
  workflowBundlePath,
@@ -30,37 +35,8 @@ export class StandaloneBuilder extends BaseBuilder {
30
35
  });
31
36
  await this.createClientLibrary();
32
37
  }
33
- mergeManifests(stepsManifest, workflowsManifest) {
34
- return {
35
- steps: { ...stepsManifest.steps, ...workflowsManifest.steps },
36
- workflows: { ...stepsManifest.workflows, ...workflowsManifest.workflows },
37
- classes: { ...stepsManifest.classes, ...workflowsManifest.classes },
38
- };
39
- }
40
- async buildStepsBundle({ inputFiles, tsconfigPath, }) {
41
- console.log('Creating steps bundle at', this.config.stepsBundlePath);
42
- const stepsBundlePath = this.resolvePath(this.config.stepsBundlePath);
43
- await this.ensureDirectory(stepsBundlePath);
44
- const { manifest } = await this.createStepsBundle({
45
- outfile: stepsBundlePath,
46
- inputFiles,
47
- tsconfigPath,
48
- });
49
- return manifest;
50
- }
51
- async buildWorkflowsBundle({ inputFiles, tsconfigPath, }) {
52
- console.log('Creating workflows bundle at', this.config.workflowsBundlePath);
53
- const workflowBundlePath = this.resolvePath(this.config.workflowsBundlePath);
54
- await this.ensureDirectory(workflowBundlePath);
55
- const { manifest } = await this.createWorkflowsBundle({
56
- outfile: workflowBundlePath,
57
- inputFiles,
58
- tsconfigPath,
59
- });
60
- return manifest;
61
- }
62
38
  async buildWebhookFunction() {
63
- console.log('Creating webhook bundle at', this.config.webhookBundlePath);
39
+ this.logBaseBuilderInfo('Creating webhook bundle at', this.config.webhookBundlePath);
64
40
  const webhookBundlePath = this.resolvePath(this.config.webhookBundlePath);
65
41
  await this.ensureDirectory(webhookBundlePath);
66
42
  await this.createWebhookBundle({
@@ -68,4 +44,4 @@ export class StandaloneBuilder extends BaseBuilder {
68
44
  });
69
45
  }
70
46
  }
71
- //# sourceMappingURL=standalone.js.map
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhbG9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFuZGFsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFDaEQsWUFBWSxNQUFzQjtRQUNoQyxLQUFLLENBQUM7WUFDSixHQUFHLE1BQU07WUFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCx1RUFBdUU7UUFDdkUsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFO1lBQzdELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUVuRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUNoQyxDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXBELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRCxVQUFVO1lBQ1YsWUFBWSxFQUFFLGVBQWU7WUFDN0IsV0FBVyxFQUFFLGtCQUFrQjtZQUMvQixZQUFZO1lBQ1osaUJBQWlCLEVBQUUsSUFBSTtTQUN4QixDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRWxDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNoRSxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDeEIsa0JBQWtCO1lBQ2xCLFdBQVc7WUFDWCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sS0FBSyxDQUFDLG9CQUFvQjtRQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQ3JCLDRCQUE0QixFQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUM5QixDQUFDO1FBRUYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxRSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU5QyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QixPQUFPLEVBQUUsaUJBQWlCO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJtIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBCYXNlQnVpbGRlciB9IGZyb20gJy4vYmFzZS1idWlsZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgV29ya2Zsb3dDb25maWcgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFN0YW5kYWxvbmVCdWlsZGVyIGV4dGVuZHMgQmFzZUJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IFdvcmtmbG93Q29uZmlnKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZGlyczogWycuJ10sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBFeGlzdGluZyBzdGFuZGFsb25lIG91dHB1dCBtYXkgc3RpbGwgY29udGFpbiB0aGUgcmV0aXJlZCBzdGVwIHJvdXRlLlxuICAgIGF3YWl0IHJtKHRoaXMucmVzb2x2ZVBhdGgoJy53ZWxsLWtub3duL3dvcmtmbG93L3YxL3N0ZXAubWpzJyksIHtcbiAgICAgIGZvcmNlOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaW5wdXRGaWxlcyA9IGF3YWl0IHRoaXMuZ2V0SW5wdXRGaWxlcygpO1xuICAgIGNvbnN0IHRzY29uZmlnUGF0aCA9IGF3YWl0IHRoaXMuZmluZFRzQ29uZmlnUGF0aCgpO1xuXG4gICAgY29uc3Qgc3RlcHNCdW5kbGVQYXRoID0gdGhpcy5yZXNvbHZlUGF0aCh0aGlzLmNvbmZpZy5zdGVwc0J1bmRsZVBhdGgpO1xuICAgIGNvbnN0IHdvcmtmbG93QnVuZGxlUGF0aCA9IHRoaXMucmVzb2x2ZVBhdGgoXG4gICAgICB0aGlzLmNvbmZpZy53b3JrZmxvd3NCdW5kbGVQYXRoXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZURpcmVjdG9yeShzdGVwc0J1bmRsZVBhdGgpO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlRGlyZWN0b3J5KHdvcmtmbG93QnVuZGxlUGF0aCk7XG5cbiAgICB0aGlzLmxvZ0Jhc2VCdWlsZGVySW5mbygnQ3JlYXRpbmcgY29tYmluZWQgYnVuZGxlJyk7XG5cbiAgICBjb25zdCB7IG1hbmlmZXN0IH0gPSBhd2FpdCB0aGlzLmNyZWF0ZUNvbWJpbmVkQnVuZGxlKHtcbiAgICAgIGlucHV0RmlsZXMsXG4gICAgICBzdGVwc091dGZpbGU6IHN0ZXBzQnVuZGxlUGF0aCxcbiAgICAgIGZsb3dPdXRmaWxlOiB3b3JrZmxvd0J1bmRsZVBhdGgsXG4gICAgICB0c2NvbmZpZ1BhdGgsXG4gICAgICBidW5kbGVGaW5hbE91dHB1dDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGF3YWl0IHRoaXMuYnVpbGRXZWJob29rRnVuY3Rpb24oKTtcblxuICAgIGNvbnN0IG1hbmlmZXN0RGlyID0gdGhpcy5yZXNvbHZlUGF0aCgnLndlbGwta25vd24vd29ya2Zsb3cvdjEnKTtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZU1hbmlmZXN0KHtcbiAgICAgIHdvcmtmbG93QnVuZGxlUGF0aCxcbiAgICAgIG1hbmlmZXN0RGlyLFxuICAgICAgbWFuaWZlc3QsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZUNsaWVudExpYnJhcnkoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRXZWJob29rRnVuY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2dCYXNlQnVpbGRlckluZm8oXG4gICAgICAnQ3JlYXRpbmcgd2ViaG9vayBidW5kbGUgYXQnLFxuICAgICAgdGhpcy5jb25maWcud2ViaG9va0J1bmRsZVBhdGhcbiAgICApO1xuXG4gICAgY29uc3Qgd2ViaG9va0J1bmRsZVBhdGggPSB0aGlzLnJlc29sdmVQYXRoKHRoaXMuY29uZmlnLndlYmhvb2tCdW5kbGVQYXRoKTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZURpcmVjdG9yeSh3ZWJob29rQnVuZGxlUGF0aCk7XG5cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVdlYmhvb2tCdW5kbGUoe1xuICAgICAgb3V0ZmlsZTogd2ViaG9va0J1bmRsZVBhdGgsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=step-source-registration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-source-registration.test.d.ts","sourceRoot":"","sources":["../src/step-source-registration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import { mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
+ import { BaseBuilder } from './base-builder.js';
6
+ class TestBuilder extends BaseBuilder {
7
+ async build() {
8
+ // no-op
9
+ }
10
+ createSourceStepRegistrations(inputFiles, outfile, discoveredEntries) {
11
+ return this.createStepsBundle({
12
+ inputFiles,
13
+ outfile,
14
+ externalizeNonSteps: true,
15
+ bundleTransitiveLocalStepDependencies: false,
16
+ sourceStepRegistrationImports: true,
17
+ discoveredEntries,
18
+ });
19
+ }
20
+ }
21
+ const realTmpdir = realpathSync(tmpdir());
22
+ function writeFile(path, contents) {
23
+ mkdirSync(dirname(path), { recursive: true });
24
+ writeFileSync(path, contents, 'utf-8');
25
+ }
26
+ function createBuilder(workingDir) {
27
+ const config = {
28
+ buildTarget: 'standalone',
29
+ workingDir,
30
+ dirs: ['.'],
31
+ stepsBundlePath: join(workingDir, '.workflow', 'steps.js'),
32
+ workflowsBundlePath: join(workingDir, '.workflow', 'workflows.js'),
33
+ webhookBundlePath: join(workingDir, '.workflow', 'webhook.js'),
34
+ };
35
+ return new TestBuilder(config);
36
+ }
37
+ describe('step source registration', () => {
38
+ let testRoot;
39
+ beforeEach(() => {
40
+ testRoot = mkdtempSync(join(realTmpdir, 'workflow-step-registration-'));
41
+ writeFile(join(testRoot, 'node_modules', 'workflow', 'package.json'), JSON.stringify({ name: 'workflow', version: '1.0.0' }));
42
+ writeFile(join(testRoot, 'node_modules', 'workflow', 'internal', 'builtins.js'), 'export const __builtins = true;\n');
43
+ });
44
+ afterEach(() => {
45
+ rmSync(testRoot, { recursive: true, force: true });
46
+ });
47
+ it('imports serde-only files for step context class registration', async () => {
48
+ const entryFile = join(testRoot, 'src', 'entry.ts');
49
+ const stepFile = join(testRoot, 'src', 'step.ts');
50
+ const serdeFile = join(testRoot, 'src', 'serde.ts');
51
+ const outfile = join(testRoot, '.workflow', 'steps.js');
52
+ mkdirSync(dirname(outfile), { recursive: true });
53
+ writeFile(entryFile, `export { runStep } from './step';\n`);
54
+ writeFile(stepFile, `export async function runStep() {
55
+ 'use step';
56
+ return 1;
57
+ }
58
+ `);
59
+ writeFile(serdeFile, `export class Value {
60
+ static classId = 'Value';
61
+ static [Symbol.for('workflow-serialize')](value: Value) {
62
+ return value;
63
+ }
64
+ static [Symbol.for('workflow-deserialize')](value: Value) {
65
+ return value;
66
+ }
67
+ }
68
+ `);
69
+ const discoveredEntries = {
70
+ discoveredSteps: new Set([stepFile]),
71
+ discoveredWorkflows: new Set(),
72
+ discoveredSerdeFiles: new Set([serdeFile]),
73
+ };
74
+ const { manifest } = await createBuilder(testRoot).createSourceStepRegistrations([entryFile], outfile, discoveredEntries);
75
+ const generated = readFileSync(outfile, 'utf-8');
76
+ expect(generated).toContain('import "workflow/internal/builtins";');
77
+ expect(generated).toContain('import "../src/step.ts";');
78
+ expect(generated).toContain('import "../src/serde.ts";');
79
+ expect(Object.keys(manifest.classes ?? {})).toContain('src/serde.ts');
80
+ });
81
+ });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1zb3VyY2UtcmVnaXN0cmF0aW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RlcC1zb3VyY2UtcmVnaXN0cmF0aW9uLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUd4RSxNQUFNLFdBQVksU0FBUSxXQUFXO0lBQ25DLEtBQUssQ0FBQyxLQUFLO1FBQ1QsUUFBUTtJQUNWLENBQUM7SUFFTSw2QkFBNkIsQ0FDbEMsVUFBb0IsRUFDcEIsT0FBZSxFQUNmLGlCQUFvQztRQUVwQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUM1QixVQUFVO1lBQ1YsT0FBTztZQUNQLG1CQUFtQixFQUFFLElBQUk7WUFDekIscUNBQXFDLEVBQUUsS0FBSztZQUM1Qyw2QkFBNkIsRUFBRSxJQUFJO1lBQ25DLGlCQUFpQjtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUUxQyxTQUFTLFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7SUFDL0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lB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RSxPQUFPLENBQUMsQ0FBQztRQUVqRCxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkRmlsZVN5bmMsXG4gIHJlYWxwYXRoU3luYyxcbiAgcm1TeW5jLFxuICB3cml0ZUZpbGVTeW5jLFxufSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IEJhc2VCdWlsZGVyLCB0eXBlIERpc2NvdmVyZWRFbnRyaWVzIH0gZnJvbSAnLi9iYXNlLWJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFuZGFsb25lQ29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNsYXNzIFRlc3RCdWlsZGVyIGV4dGVuZHMgQmFzZUJ1aWxkZXIge1xuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBuby1vcFxuICB9XG5cbiAgcHVibGljIGNyZWF0ZVNvdXJjZVN0ZXBSZWdpc3RyYXRpb25zKFxuICAgIGlucHV0RmlsZXM6IHN0cmluZ1tdLFxuICAgIG91dGZpbGU6IHN0cmluZyxcbiAgICBkaXNjb3ZlcmVkRW50cmllczogRGlzY292ZXJlZEVudHJpZXNcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlU3RlcHNCdW5kbGUoe1xuICAgICAgaW5wdXRGaWxlcyxcbiAgICAgIG91dGZpbGUsXG4gICAgICBleHRlcm5hbGl6ZU5vblN0ZXBzOiB0cnVlLFxuICAgICAgYnVuZGxlVHJhbnNpdGl2ZUxvY2FsU3RlcERlcGVuZGVuY2llczogZmFsc2UsXG4gICAgICBzb3VyY2VTdGVwUmVnaXN0cmF0aW9uSW1wb3J0czogdHJ1ZSxcbiAgICAgIGRpc2NvdmVyZWRFbnRyaWVzLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHJlYWxUbXBkaXIgPSByZWFscGF0aFN5bmModG1wZGlyKCkpO1xuXG5mdW5jdGlvbiB3cml0ZUZpbGUocGF0aDogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKTogdm9pZCB7XG4gIG1rZGlyU3luYyhkaXJuYW1lKHBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgd3JpdGVGaWxlU3luYyhwYXRoLCBjb250ZW50cywgJ3V0Zi04Jyk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1aWxkZXIod29ya2luZ0Rpcjogc3RyaW5nKTogVGVzdEJ1aWxkZXIge1xuICBjb25zdCBjb25maWc6IFN0YW5kYWxvbmVDb25maWcgPSB7XG4gICAgYnVpbGRUYXJnZXQ6ICdzdGFuZGFsb25lJyxcbiAgICB3b3JraW5nRGlyLFxuICAgIGRpcnM6IFsnLiddLFxuICAgIHN0ZXBzQnVuZGxlUGF0aDogam9pbih3b3JraW5nRGlyLCAnLndvcmtmbG93JywgJ3N0ZXBzLmpzJyksXG4gICAgd29ya2Zsb3dzQnVuZGxlUGF0aDogam9pbih3b3JraW5nRGlyLCAnLndvcmtmbG93JywgJ3dvcmtmbG93cy5qcycpLFxuICAgIHdlYmhvb2tCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICcud29ya2Zsb3cnLCAnd2ViaG9vay5qcycpLFxuICB9O1xuICByZXR1cm4gbmV3IFRlc3RCdWlsZGVyKGNvbmZpZyk7XG59XG5cbmRlc2NyaWJlKCdzdGVwIHNvdXJjZSByZWdpc3RyYXRpb24nLCAoKSA9PiB7XG4gIGxldCB0ZXN0Um9vdDogc3RyaW5nO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHRlc3RSb290ID0gbWtkdGVtcFN5bmMoam9pbihyZWFsVG1wZGlyLCAnd29ya2Zsb3ctc3RlcC1yZWdpc3RyYXRpb24tJykpO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4odGVzdFJvb3QsICdub2RlX21vZHVsZXMnLCAnd29ya2Zsb3cnLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6ICd3b3JrZmxvdycsIHZlcnNpb246ICcxLjAuMCcgfSlcbiAgICApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4odGVzdFJvb3QsICdub2RlX21vZHVsZXMnLCAnd29ya2Zsb3cnLCAnaW50ZXJuYWwnLCAnYnVpbHRpbnMuanMnKSxcbiAgICAgICdleHBvcnQgY29uc3QgX19idWlsdGlucyA9IHRydWU7XFxuJ1xuICAgICk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgcm1TeW5jKHRlc3RSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGl0KCdpbXBvcnRzIHNlcmRlLW9ubHkgZmlsZXMgZm9yIHN0ZXAgY29udGV4dCBjbGFzcyByZWdpc3RyYXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZW50cnlGaWxlID0gam9pbih0ZXN0Um9vdCwgJ3NyYycsICdlbnRyeS50cycpO1xuICAgIGNvbnN0IHN0ZXBGaWxlID0gam9pbih0ZXN0Um9vdCwgJ3NyYycsICdzdGVwLnRzJyk7XG4gICAgY29uc3Qgc2VyZGVGaWxlID0gam9pbih0ZXN0Um9vdCwgJ3NyYycsICdzZXJkZS50cycpO1xuICAgIGNvbnN0IG91dGZpbGUgPSBqb2luKHRlc3RSb290LCAnLndvcmtmbG93JywgJ3N0ZXBzLmpzJyk7XG5cbiAgICBta2RpclN5bmMoZGlybmFtZShvdXRmaWxlKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgd3JpdGVGaWxlKGVudHJ5RmlsZSwgYGV4cG9ydCB7IHJ1blN0ZXAgfSBmcm9tICcuL3N0ZXAnO1xcbmApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIHN0ZXBGaWxlLFxuICAgICAgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TdGVwKCkge1xuICAndXNlIHN0ZXAnO1xuICByZXR1cm4gMTtcbn1cbmBcbiAgICApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIHNlcmRlRmlsZSxcbiAgICAgIGBleHBvcnQgY2xhc3MgVmFsdWUge1xuICBzdGF0aWMgY2xhc3NJZCA9ICdWYWx1ZSc7XG4gIHN0YXRpYyBbU3ltYm9sLmZvcignd29ya2Zsb3ctc2VyaWFsaXplJyldKHZhbHVlOiBWYWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBzdGF0aWMgW1N5bWJvbC5mb3IoJ3dvcmtmbG93LWRlc2VyaWFsaXplJyldKHZhbHVlOiBWYWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuYFxuICAgICk7XG5cbiAgICBjb25zdCBkaXNjb3ZlcmVkRW50cmllczogRGlzY292ZXJlZEVudHJpZXMgPSB7XG4gICAgICBkaXNjb3ZlcmVkU3RlcHM6IG5ldyBTZXQoW3N0ZXBGaWxlXSksXG4gICAgICBkaXNjb3ZlcmVkV29ya2Zsb3dzOiBuZXcgU2V0KCksXG4gICAgICBkaXNjb3ZlcmVkU2VyZGVGaWxlczogbmV3IFNldChbc2VyZGVGaWxlXSksXG4gICAgfTtcblxuICAgIGNvbnN0IHsgbWFuaWZlc3QgfSA9IGF3YWl0IGNyZWF0ZUJ1aWxkZXIoXG4gICAgICB0ZXN0Um9vdFxuICAgICkuY3JlYXRlU291cmNlU3RlcFJlZ2lzdHJhdGlvbnMoW2VudHJ5RmlsZV0sIG91dGZpbGUsIGRpc2NvdmVyZWRFbnRyaWVzKTtcbiAgICBjb25zdCBnZW5lcmF0ZWQgPSByZWFkRmlsZVN5bmMob3V0ZmlsZSwgJ3V0Zi04Jyk7XG5cbiAgICBleHBlY3QoZ2VuZXJhdGVkKS50b0NvbnRhaW4oJ2ltcG9ydCBcIndvcmtmbG93L2ludGVybmFsL2J1aWx0aW5zXCI7Jyk7XG4gICAgZXhwZWN0KGdlbmVyYXRlZCkudG9Db250YWluKCdpbXBvcnQgXCIuLi9zcmMvc3RlcC50c1wiOycpO1xuICAgIGV4cGVjdChnZW5lcmF0ZWQpLnRvQ29udGFpbignaW1wb3J0IFwiLi4vc3JjL3NlcmRlLnRzXCI7Jyk7XG4gICAgZXhwZWN0KE9iamVjdC5rZXlzKG1hbmlmZXN0LmNsYXNzZXMgPz8ge30pKS50b0NvbnRhaW4oJ3NyYy9zZXJkZS50cycpO1xuICB9KTtcbn0pO1xuIl19
@@ -5,6 +5,7 @@ export interface SwcPluginOptions {
5
5
  entriesToBundle?: string[];
6
6
  outdir?: string;
7
7
  projectRoot?: string;
8
+ moduleSpecifierRoot?: string;
8
9
  workflowManifest?: WorkflowManifest;
9
10
  /**
10
11
  * Rewrite TypeScript extensions (.ts, .tsx, .mts, .cts) to their JS
@@ -18,6 +19,15 @@ export interface SwcPluginOptions {
18
19
  * breaks them because the .js file doesn't exist on disk.
19
20
  */
20
21
  rewriteTsExtensions?: boolean;
22
+ /**
23
+ * Bundle project-local files that are transitively imported by step entries.
24
+ *
25
+ * Keep this disabled when a downstream bundler consumes the generated step
26
+ * bundle because that bundler can resolve the externalized local imports.
27
+ * Enable it for direct runtime loading, where Node imports the generated step
28
+ * bundle from disk without a later bundling pass.
29
+ */
30
+ bundleTransitiveLocalStepDependencies?: boolean;
21
31
  /**
22
32
  * Absolute file paths of discovered workflow/step/serde entries whose
23
33
  * imports must be treated as side-effectful.
@@ -1 +1 @@
1
- {"version":3,"file":"swc-esbuild-plugin.d.ts","sourceRoot":"","sources":["../src/swc-esbuild-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAOlC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAsCD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAgTjE"}
1
+ {"version":3,"file":"swc-esbuild-plugin.d.ts","sourceRoot":"","sources":["../src/swc-esbuild-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAQlC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;OAOG;IACH,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAkHD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAoXjE"}