@workflow/builders 5.0.0-beta.1 → 5.0.0-beta.11

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 (86) hide show
  1. package/dist/apply-swc-transform.d.ts +1 -1
  2. package/dist/apply-swc-transform.d.ts.map +1 -1
  3. package/dist/apply-swc-transform.js +1 -1
  4. package/dist/base-builder.d.ts +72 -5
  5. package/dist/base-builder.d.ts.map +1 -1
  6. package/dist/base-builder.js +401 -42
  7. package/dist/build-queue.js +1 -1
  8. package/dist/config-helpers.d.ts +2 -1
  9. package/dist/config-helpers.d.ts.map +1 -1
  10. package/dist/config-helpers.js +2 -1
  11. package/dist/constants.d.ts +3 -13
  12. package/dist/constants.d.ts.map +1 -1
  13. package/dist/constants.js +4 -14
  14. package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
  15. package/dist/discover-entries-esbuild-plugin.js +19 -3
  16. package/dist/discover-entries-esbuild-plugin.test.js +1 -1
  17. package/dist/esbuild-tsconfig.js +1 -1
  18. package/dist/esbuild-tsconfig.test.js +1 -1
  19. package/dist/external-package-warning.test.d.ts +2 -0
  20. package/dist/external-package-warning.test.d.ts.map +1 -0
  21. package/dist/external-package-warning.test.js +219 -0
  22. package/dist/get-input-files.test.js +49 -2
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +2 -2
  26. package/dist/module-specifier.d.ts.map +1 -1
  27. package/dist/module-specifier.js +48 -10
  28. package/dist/module-specifier.test.js +21 -1
  29. package/dist/node-module-esbuild-plugin.d.ts.map +1 -1
  30. package/dist/node-module-esbuild-plugin.js +73 -23
  31. package/dist/node-module-esbuild-plugin.test.js +97 -1
  32. package/dist/pseudo-package-esbuild-plugin.js +1 -1
  33. package/dist/pseudo-package-esbuild-plugin.test.js +1 -1
  34. package/dist/request-converter.js +1 -1
  35. package/dist/resolve-sourcemap.test.d.ts +2 -0
  36. package/dist/resolve-sourcemap.test.d.ts.map +1 -0
  37. package/dist/resolve-sourcemap.test.js +126 -0
  38. package/dist/serde-checker.js +1 -1
  39. package/dist/standalone.d.ts +0 -3
  40. package/dist/standalone.d.ts.map +1 -1
  41. package/dist/standalone.js +11 -40
  42. package/dist/swc-esbuild-plugin.d.ts +10 -1
  43. package/dist/swc-esbuild-plugin.d.ts.map +1 -1
  44. package/dist/swc-esbuild-plugin.js +64 -9
  45. package/dist/swc-esbuild-plugin.test.js +280 -4
  46. package/dist/transform-utils.js +1 -1
  47. package/dist/transform-utils.test.js +1 -1
  48. package/dist/types.d.ts +31 -0
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/types.js +1 -1
  51. package/dist/vercel-build-output-api.d.ts +0 -2
  52. package/dist/vercel-build-output-api.d.ts.map +1 -1
  53. package/dist/vercel-build-output-api.js +28 -56
  54. package/dist/workflow-alias.js +1 -1
  55. package/dist/workflow-alias.test.js +1 -1
  56. package/dist/workflows-extractor.js +1 -1
  57. package/package.json +5 -5
  58. package/dist/apply-swc-transform.js.map +0 -1
  59. package/dist/base-builder.js.map +0 -1
  60. package/dist/build-queue.js.map +0 -1
  61. package/dist/config-helpers.js.map +0 -1
  62. package/dist/constants.js.map +0 -1
  63. package/dist/discover-entries-esbuild-plugin.js.map +0 -1
  64. package/dist/discover-entries-esbuild-plugin.test.js.map +0 -1
  65. package/dist/esbuild-tsconfig.js.map +0 -1
  66. package/dist/esbuild-tsconfig.test.js.map +0 -1
  67. package/dist/get-input-files.test.js.map +0 -1
  68. package/dist/index.js.map +0 -1
  69. package/dist/module-specifier.js.map +0 -1
  70. package/dist/module-specifier.test.js.map +0 -1
  71. package/dist/node-module-esbuild-plugin.js.map +0 -1
  72. package/dist/node-module-esbuild-plugin.test.js.map +0 -1
  73. package/dist/pseudo-package-esbuild-plugin.js.map +0 -1
  74. package/dist/pseudo-package-esbuild-plugin.test.js.map +0 -1
  75. package/dist/request-converter.js.map +0 -1
  76. package/dist/serde-checker.js.map +0 -1
  77. package/dist/standalone.js.map +0 -1
  78. package/dist/swc-esbuild-plugin.js.map +0 -1
  79. package/dist/swc-esbuild-plugin.test.js.map +0 -1
  80. package/dist/transform-utils.js.map +0 -1
  81. package/dist/transform-utils.test.js.map +0 -1
  82. package/dist/types.js.map +0 -1
  83. package/dist/vercel-build-output-api.js.map +0 -1
  84. package/dist/workflow-alias.js.map +0 -1
  85. package/dist/workflow-alias.test.js.map +0 -1
  86. package/dist/workflows-extractor.js.map +0 -1
@@ -23,4 +23,4 @@ export function createBuildQueue() {
23
23
  return queue;
24
24
  };
25
25
  }
26
- //# sourceMappingURL=build-queue.js.map
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQtcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFOUIsT0FBTyxDQUFDLElBQXlCLEVBQWlCLEVBQUU7UUFDbEQsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIGJ1aWxkIHF1ZXVlIHRoYXQgc2VyaWFsaXplcyBhc3luYyB0YXNrcyB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucy5cbiAqXG4gKiBXaGVuIHJhcGlkIGZpbGUgY2hhbmdlcyB0cmlnZ2VyIG11bHRpcGxlIGJ1aWxkcywgdGhpcyBlbnN1cmVzIHRoZXkgcnVuXG4gKiBzZXF1ZW50aWFsbHkgcmF0aGVyIHRoYW4gY29uY3VycmVudGx5LCBhdm9pZGluZyBpc3N1ZXMgbGlrZTpcbiAqIC0gUGFydGlhbCBmaWxlIHJlYWRzIGR1cmluZyB3cml0ZXNcbiAqIC0gQ29ycnVwdGVkIG1lcmdlIG9wZXJhdGlvbnNcbiAqIC0gRHVwbGljYXRlL2NvbmZsaWN0aW5nIGJ1aWxkc1xuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBlbnF1ZXVlID0gY3JlYXRlQnVpbGRRdWV1ZSgpO1xuICpcbiAqIC8vIFRoZXNlIHdpbGwgcnVuIHNlcXVlbnRpYWxseSwgbm90IGNvbmN1cnJlbnRseVxuICogZW5xdWV1ZSgoKSA9PiBidWlsZGVyLmJ1aWxkKCkpO1xuICogZW5xdWV1ZSgoKSA9PiBidWlsZGVyLmJ1aWxkKCkpO1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQnVpbGRRdWV1ZSgpIHtcbiAgbGV0IHF1ZXVlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgcmV0dXJuICh0YXNrOiAoKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgcXVldWUgPSBxdWV1ZS50aGVuKHRhc2spLmNhdGNoKChlcnIpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcXVldWU7XG4gIH07XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import type { WorkflowConfig } from './types.js';
1
+ import type { SourcemapMode, WorkflowConfig } from './types.js';
2
2
  export interface DecoratorOptions {
3
3
  decorators: boolean;
4
4
  legacyDecorator: boolean;
@@ -40,5 +40,6 @@ export declare function createBaseBuilderConfig(options: {
40
40
  watch?: boolean;
41
41
  externalPackages?: string[];
42
42
  runtime?: string;
43
+ sourcemap?: SourcemapMode;
43
44
  }): Omit<WorkflowConfig, 'buildTarget'>;
44
45
  //# sourceMappingURL=config-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-helpers.d.ts","sourceRoot":"","sources":["../src/config-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAgC3B;AAED;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;GAGG;AACH,wBAAsB,6CAA6C,CACjE,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,8BAA8B,CAAC,CAMzC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAYtC"}
1
+ {"version":3,"file":"config-helpers.d.ts","sourceRoot":"","sources":["../src/config-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAgC3B;AAED;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,CAAC,CAG3B;AAED;;;GAGG;AACH,wBAAsB,6CAA6C,CACjE,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,8BAA8B,CAAC,CAMzC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAatC"}
@@ -72,6 +72,7 @@ export function createBaseBuilderConfig(options) {
72
72
  webhookBundlePath: '', // Not used by base builder methods
73
73
  externalPackages: options.externalPackages,
74
74
  runtime: options.runtime,
75
+ sourcemap: options.sourcemap,
75
76
  };
76
77
  }
77
- //# sourceMappingURL=config-helpers.js.map
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBYzFCOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsK0JBQStCLENBQ25ELFlBQWdDO0lBRWhDLE1BQU0sY0FBYyxHQUFxQjtRQUN2QyxVQUFVLEVBQUUsS0FBSztRQUNqQixlQUFlLEVBQUUsS0FBSztRQUN0QixpQkFBaUIsRUFBRSxLQUFLO0tBQ3pCLENBQUM7SUFFRixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0RCxNQUFNLFFBQVEsR0FDWixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO1FBRXZELHFGQUFxRjtRQUNyRixNQUFNLHNCQUFzQixHQUMxQixlQUFlLENBQUMsc0JBQXNCLEtBQUssSUFBSSxDQUFDO1FBQ2xELE1BQU0scUJBQXFCLEdBQ3pCLGVBQWUsQ0FBQyxxQkFBcUIsS0FBSyxJQUFJLENBQUM7UUFFakQsT0FBTztZQUNMLFVBQVUsRUFBRSxzQkFBc0I7WUFDbEMsZUFBZSxFQUFFLHNCQUFzQjtZQUN2QyxpQkFBaUIsRUFBRSxzQkFBc0IsSUFBSSxxQkFBcUI7U0FDbkUsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCwwREFBMEQ7UUFDMUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLCtCQUErQixDQUNuRCxHQUFXO0lBRVgsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sNkNBQTZDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0UsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsNkNBQTZDLENBQ2pFLEdBQVc7SUFFWCxNQUFNLFVBQVUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsRUFBRTtRQUNsRSxHQUFHO0tBQ0osQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSwrQkFBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FRdkM7SUFDQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbkMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1FBQ2hDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsZUFBZSxFQUFFLEVBQUUsRUFBRSxtQ0FBbUM7UUFDeEQsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLG1DQUFtQztRQUM1RCxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsbUNBQW1DO1FBQzFELGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7UUFDMUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztLQUM3QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBmaW5kVXAgfSBmcm9tICdmaW5kLXVwJztcbmltcG9ydCBKU09ONSBmcm9tICdqc29uNSc7XG5pbXBvcnQgdHlwZSB7IFNvdXJjZW1hcE1vZGUsIFdvcmtmbG93Q29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVjb3JhdG9yT3B0aW9ucyB7XG4gIGRlY29yYXRvcnM6IGJvb2xlYW47XG4gIGxlZ2FjeURlY29yYXRvcjogYm9vbGVhbjtcbiAgZGVjb3JhdG9yTWV0YWRhdGE6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVjb3JhdG9yT3B0aW9uc1dpdGhDb25maWdQYXRoIHtcbiAgb3B0aW9uczogRGVjb3JhdG9yT3B0aW9ucztcbiAgY29uZmlnUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlYWRzIHRzY29uZmlnLmpzb24gYW5kIGV4dHJhY3RzIGRlY29yYXRvci1yZWxhdGVkIGNvbXBpbGVyIG9wdGlvbnMuXG4gKiBSZXR1cm5zIGRlY29yYXRvciBvcHRpb25zIGJhc2VkIG9uIGV4cGVyaW1lbnRhbERlY29yYXRvcnMgYW5kIGVtaXREZWNvcmF0b3JNZXRhZGF0YSBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gdHNjb25maWdQYXRoIC0gUGF0aCB0byB0c2NvbmZpZy5qc29uIG9yIGpzY29uZmlnLmpzb25cbiAqIEByZXR1cm5zIERlY29yYXRvck9wdGlvbnMgd2l0aCBzZXR0aW5ncyBiYXNlZCBvbiB0c2NvbmZpZyBjb21waWxlck9wdGlvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlY29yYXRvck9wdGlvbnNGcm9tVHNDb25maWcoXG4gIHRzY29uZmlnUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkXG4pOiBQcm9taXNlPERlY29yYXRvck9wdGlvbnM+IHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IERlY29yYXRvck9wdGlvbnMgPSB7XG4gICAgZGVjb3JhdG9yczogZmFsc2UsXG4gICAgbGVnYWN5RGVjb3JhdG9yOiBmYWxzZSxcbiAgICBkZWNvcmF0b3JNZXRhZGF0YTogZmFsc2UsXG4gIH07XG5cbiAgaWYgKCF0c2NvbmZpZ1BhdGgpIHtcbiAgICByZXR1cm4gZGVmYXVsdE9wdGlvbnM7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZSh0c2NvbmZpZ1BhdGgsICd1dGYtOCcpO1xuICAgIGNvbnN0IHRzY29uZmlnOiB7IGNvbXBpbGVyT3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH0gPVxuICAgICAgSlNPTjUucGFyc2UoY29udGVudCk7XG4gICAgY29uc3QgY29tcGlsZXJPcHRpb25zID0gdHNjb25maWcuY29tcGlsZXJPcHRpb25zIHx8IHt9O1xuXG4gICAgLy8gTWF0Y2ggTmV4dC5qcyBiZWhhdmlvcjogZW5hYmxlIGRlY29yYXRvcnMgb25seSB3aGVuIGV4cGVyaW1lbnRhbERlY29yYXRvcnMgaXMgdHJ1ZVxuICAgIGNvbnN0IGV4cGVyaW1lbnRhbERlY29yYXRvcnMgPVxuICAgICAgY29tcGlsZXJPcHRpb25zLmV4cGVyaW1lbnRhbERlY29yYXRvcnMgPT09IHRydWU7XG4gICAgY29uc3QgZW1pdERlY29yYXRvck1ldGFkYXRhID1cbiAgICAgIGNvbXBpbGVyT3B0aW9ucy5lbWl0RGVjb3JhdG9yTWV0YWRhdGEgPT09IHRydWU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVjb3JhdG9yczogZXhwZXJpbWVudGFsRGVjb3JhdG9ycyxcbiAgICAgIGxlZ2FjeURlY29yYXRvcjogZXhwZXJpbWVudGFsRGVjb3JhdG9ycyxcbiAgICAgIGRlY29yYXRvck1ldGFkYXRhOiBleHBlcmltZW50YWxEZWNvcmF0b3JzICYmIGVtaXREZWNvcmF0b3JNZXRhZGF0YSxcbiAgICB9O1xuICB9IGNhdGNoIHtcbiAgICAvLyBJZiB3ZSBjYW4ndCByZWFkIG9yIHBhcnNlIHRoZSB0c2NvbmZpZywgcmV0dXJuIGRlZmF1bHRzXG4gICAgcmV0dXJuIGRlZmF1bHRPcHRpb25zO1xuICB9XG59XG5cbi8qKlxuICogRmluZHMgdHNjb25maWcuanNvbiBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IChvciBhbmNlc3RvcnMpIGFuZCBleHRyYWN0cyBkZWNvcmF0b3Igb3B0aW9ucy5cbiAqIENvbWJpbmVzIHRzY29uZmlnIGRpc2NvdmVyeSB3aXRoIGRlY29yYXRvciBvcHRpb24gZXh0cmFjdGlvbiBmb3IgY29udmVuaWVuY2UuXG4gKlxuICogQHBhcmFtIGN3ZCAtIERpcmVjdG9yeSB0byBzdGFydCBzZWFyY2hpbmcgZm9yIHRzY29uZmlnLmpzb25cbiAqIEByZXR1cm5zIERlY29yYXRvck9wdGlvbnMgd2l0aCBzZXR0aW5ncyBiYXNlZCBvbiB0c2NvbmZpZyBjb21waWxlck9wdGlvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERlY29yYXRvck9wdGlvbnNGb3JEaXJlY3RvcnkoXG4gIGN3ZDogc3RyaW5nXG4pOiBQcm9taXNlPERlY29yYXRvck9wdGlvbnM+IHtcbiAgY29uc3QgeyBvcHRpb25zIH0gPSBhd2FpdCBnZXREZWNvcmF0b3JPcHRpb25zRm9yRGlyZWN0b3J5V2l0aENvbmZpZ1BhdGgoY3dkKTtcbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbi8qKlxuICogRmluZHMgdHNjb25maWcuanNvbi9qc2NvbmZpZy5qc29uIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkgdHJlZSBhbmQgcmV0dXJuc1xuICogYm90aCBkZWNvcmF0b3Igb3B0aW9ucyBhbmQgdGhlIGNvbmZpZyBwYXRoIHVzZWQgdG8gZGVyaXZlIHRoZW0uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREZWNvcmF0b3JPcHRpb25zRm9yRGlyZWN0b3J5V2l0aENvbmZpZ1BhdGgoXG4gIGN3ZDogc3RyaW5nXG4pOiBQcm9taXNlPERlY29yYXRvck9wdGlvbnNXaXRoQ29uZmlnUGF0aD4ge1xuICBjb25zdCBjb25maWdQYXRoID0gYXdhaXQgZmluZFVwKFsndHNjb25maWcuanNvbicsICdqc2NvbmZpZy5qc29uJ10sIHtcbiAgICBjd2QsXG4gIH0pO1xuICBjb25zdCBvcHRpb25zID0gYXdhaXQgZ2V0RGVjb3JhdG9yT3B0aW9uc0Zyb21Uc0NvbmZpZyhjb25maWdQYXRoKTtcbiAgcmV0dXJuIHsgb3B0aW9ucywgY29uZmlnUGF0aCB9O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBwYXJ0aWFsIGNvbmZpZ3VyYXRpb24gZm9yIGJ1aWxkZXJzIHRoYXQgZG9uJ3QgdXNlIGJ1bmRsZSBwYXRocyBkaXJlY3RseS5cbiAqIFVzZWQgYnkgZnJhbWV3b3JrIGludGVncmF0aW9ucyBsaWtlIE5pdHJvIHdoZXJlIHRoZSBidWlsZGVyIGNvbXB1dGVzIHBhdGhzIGludGVybmFsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCYXNlQnVpbGRlckNvbmZpZyhvcHRpb25zOiB7XG4gIHdvcmtpbmdEaXI6IHN0cmluZztcbiAgcHJvamVjdFJvb3Q/OiBzdHJpbmc7XG4gIGRpcnM/OiBzdHJpbmdbXTtcbiAgd2F0Y2g/OiBib29sZWFuO1xuICBleHRlcm5hbFBhY2thZ2VzPzogc3RyaW5nW107XG4gIHJ1bnRpbWU/OiBzdHJpbmc7XG4gIHNvdXJjZW1hcD86IFNvdXJjZW1hcE1vZGU7XG59KTogT21pdDxXb3JrZmxvd0NvbmZpZywgJ2J1aWxkVGFyZ2V0Jz4ge1xuICByZXR1cm4ge1xuICAgIGRpcnM6IG9wdGlvbnMuZGlycyA/PyBbJ3dvcmtmbG93cyddLFxuICAgIHByb2plY3RSb290OiBvcHRpb25zLnByb2plY3RSb290LFxuICAgIHdvcmtpbmdEaXI6IG9wdGlvbnMud29ya2luZ0RpcixcbiAgICB3YXRjaDogb3B0aW9ucy53YXRjaCxcbiAgICBzdGVwc0J1bmRsZVBhdGg6ICcnLCAvLyBOb3QgdXNlZCBieSBiYXNlIGJ1aWxkZXIgbWV0aG9kc1xuICAgIHdvcmtmbG93c0J1bmRsZVBhdGg6ICcnLCAvLyBOb3QgdXNlZCBieSBiYXNlIGJ1aWxkZXIgbWV0aG9kc1xuICAgIHdlYmhvb2tCdW5kbGVQYXRoOiAnJywgLy8gTm90IHVzZWQgYnkgYmFzZSBidWlsZGVyIG1ldGhvZHNcbiAgICBleHRlcm5hbFBhY2thZ2VzOiBvcHRpb25zLmV4dGVybmFsUGFja2FnZXMsXG4gICAgcnVudGltZTogb3B0aW9ucy5ydW50aW1lLFxuICAgIHNvdXJjZW1hcDogb3B0aW9ucy5zb3VyY2VtYXAsXG4gIH07XG59XG4iXX0=
@@ -1,17 +1,7 @@
1
1
  /**
2
- * Queue trigger configuration for workflow step execution.
3
- * Steps are queued to the __wkf_step_* topic.
4
- */
5
- export declare const STEP_QUEUE_TRIGGER: {
6
- type: "queue/v2beta";
7
- topic: string;
8
- consumer: string;
9
- retryAfterSeconds: number;
10
- initialDelaySeconds: number;
11
- };
12
- /**
13
- * Queue trigger configuration for workflow orchestration.
14
- * Workflows are queued to the __wkf_workflow_* topic.
2
+ * Queue trigger configuration for the workflow handler.
3
+ * Handles both workflow orchestration and step execution on the same route.
4
+ * Background steps are queued back to __wkf_workflow_* with a stepId.
15
5
  */
16
6
  export declare const WORKFLOW_QUEUE_TRIGGER: {
17
7
  type: "queue/v2beta";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;CAM9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;CAMlC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;CAMlC,CAAC"}
package/dist/constants.js CHANGED
@@ -1,17 +1,7 @@
1
1
  /**
2
- * Queue trigger configuration for workflow step execution.
3
- * Steps are queued to the __wkf_step_* topic.
4
- */
5
- export const STEP_QUEUE_TRIGGER = {
6
- type: 'queue/v2beta',
7
- topic: '__wkf_step_*',
8
- consumer: 'default',
9
- retryAfterSeconds: 5, // Delay between retries (default: 60)
10
- initialDelaySeconds: 0, // Initial delay before first delivery (default: 0)
11
- };
12
- /**
13
- * Queue trigger configuration for workflow orchestration.
14
- * Workflows are queued to the __wkf_workflow_* topic.
2
+ * Queue trigger configuration for the workflow handler.
3
+ * Handles both workflow orchestration and step execution on the same route.
4
+ * Background steps are queued back to __wkf_workflow_* with a stepId.
15
5
  */
16
6
  export const WORKFLOW_QUEUE_TRIGGER = {
17
7
  type: 'queue/v2beta',
@@ -20,4 +10,4 @@ export const WORKFLOW_QUEUE_TRIGGER = {
20
10
  retryAfterSeconds: 5, // Delay between retries (default: 60)
21
11
  initialDelaySeconds: 0, // Initial delay before first delivery (default: 0)
22
12
  };
23
- //# sourceMappingURL=constants.js.map
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsSUFBSSxFQUFFLGNBQXVCO0lBQzdCLEtBQUssRUFBRSxrQkFBa0I7SUFDekIsUUFBUSxFQUFFLFNBQVM7SUFDbkIsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLHNDQUFzQztJQUM1RCxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsbURBQW1EO0NBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFF1ZXVlIHRyaWdnZXIgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdvcmtmbG93IGhhbmRsZXIuXG4gKiBIYW5kbGVzIGJvdGggd29ya2Zsb3cgb3JjaGVzdHJhdGlvbiBhbmQgc3RlcCBleGVjdXRpb24gb24gdGhlIHNhbWUgcm91dGUuXG4gKiBCYWNrZ3JvdW5kIHN0ZXBzIGFyZSBxdWV1ZWQgYmFjayB0byBfX3drZl93b3JrZmxvd18qIHdpdGggYSBzdGVwSWQuXG4gKi9cbmV4cG9ydCBjb25zdCBXT1JLRkxPV19RVUVVRV9UUklHR0VSID0ge1xuICB0eXBlOiAncXVldWUvdjJiZXRhJyBhcyBjb25zdCxcbiAgdG9waWM6ICdfX3drZl93b3JrZmxvd18qJyxcbiAgY29uc3VtZXI6ICdkZWZhdWx0JyxcbiAgcmV0cnlBZnRlclNlY29uZHM6IDUsIC8vIERlbGF5IGJldHdlZW4gcmV0cmllcyAoZGVmYXVsdDogNjApXG4gIGluaXRpYWxEZWxheVNlY29uZHM6IDAsIC8vIEluaXRpYWwgZGVsYXkgYmVmb3JlIGZpcnN0IGRlbGl2ZXJ5IChkZWZhdWx0OiAwKVxufTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"discover-entries-esbuild-plugin.d.ts","sourceRoot":"","sources":["../src/discover-entries-esbuild-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAUtC,eAAO,MAAM,SAAS,QAAuC,CAAC;AAwB9D,eAAO,MAAM,aAAa,0BAAiC,CAAC;AAK5D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CA0B3E;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE;IACL,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAiIR"}
1
+ {"version":3,"file":"discover-entries-esbuild-plugin.d.ts","sourceRoot":"","sources":["../src/discover-entries-esbuild-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AA2BtC,eAAO,MAAM,SAAS,QAAuC,CAAC;AAyB9D,eAAO,MAAM,aAAa,0BAAiC,CAAC;AAK5D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CA0B3E;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE;IACL,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC,EACD,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAiIR"}
@@ -3,7 +3,22 @@ import { promisify } from 'node:util';
3
3
  import enhancedResolveOriginal from 'enhanced-resolve';
4
4
  import { applySwcTransform } from './apply-swc-transform.js';
5
5
  import { detectWorkflowPatterns, isGeneratedWorkflowFile, } from './transform-utils.js';
6
- const enhancedResolve = promisify(enhancedResolveOriginal);
6
+ const enhancedResolve = promisify(enhancedResolveOriginal.create({
7
+ extensions: [
8
+ '.ts',
9
+ '.tsx',
10
+ '.mts',
11
+ '.cts',
12
+ '.js',
13
+ '.jsx',
14
+ '.mjs',
15
+ '.cjs',
16
+ '.json',
17
+ '.node',
18
+ ],
19
+ fullySpecified: false,
20
+ conditionNames: ['node', 'import', 'require'],
21
+ }));
7
22
  export const jsTsRegex = /\.(ts|tsx|js|jsx|mjs|cjs|mts|cts)$/;
8
23
  /** Returns true if a manifest section has at least one entry. */
9
24
  function hasManifestEntries(section) {
@@ -13,7 +28,8 @@ function hasManifestEntries(section) {
13
28
  }
14
29
  function isGeneratedBuildArtifactPath(filePath) {
15
30
  const normalizedPath = filePath.replace(/\\/g, '/');
16
- return (normalizedPath.includes('/.output/') ||
31
+ return (normalizedPath.includes('/.nitro/') ||
32
+ normalizedPath.includes('/.output/') ||
17
33
  normalizedPath.includes('/.next/') ||
18
34
  normalizedPath.includes('/.nuxt/') ||
19
35
  normalizedPath.includes('/.svelte-kit/') ||
@@ -153,4 +169,4 @@ export function createDiscoverEntriesPlugin(state, projectRoot) {
153
169
  },
154
170
  };
155
171
  }
156
- //# sourceMappingURL=discover-entries-esbuild-plugin.js.map
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXItZW50cmllcy1lc2J1aWxkLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kaXNjb3Zlci1lbnRyaWVzLWVzYnVpbGQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sdUJBQXVCLE1BQU0sa0JBQWtCLENBQUM7QUFHdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix1QkFBdUIsR0FDeEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLGVBQWUsR0FBRyxTQUFTLENBQy9CLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztJQUM3QixVQUFVLEVBQUU7UUFDVixLQUFLO1FBQ0wsTUFBTTtRQUNOLE1BQU07UUFDTixNQUFNO1FBQ04sS0FBSztRQUNMLE1BQU07UUFDTixNQUFNO1FBQ04sTUFBTTtRQUNOLE9BQU87UUFDUCxPQUFPO0tBQ1I7SUFDRCxjQUFjLEVBQUUsS0FBSztJQUNyQixjQUFjLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQztDQUM5QyxDQUFDLENBQ0gsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxvQ0FBb0MsQ0FBQztBQUU5RCxpRUFBaUU7QUFDakUsU0FBUyxrQkFBa0IsQ0FDekIsT0FBaUQ7SUFFakQsSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUMzQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNoQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxD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QkFFdkIsSUFBSSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDOzRCQUNuRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUNoRCxDQUFDO3dCQUNELElBQUksa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzs0QkFDL0MsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQzVDLENBQUM7d0JBRUQsSUFBSSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDOzRCQUNqRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUNqRCxDQUFDO29CQUNILENBQUM7eUJBQU0sQ0FBQzt3QkFDTixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxpQkFBaUIsQ0FDdEMsY0FBYyxFQUNkLE1BQU0sRUFDTixLQUFLLEVBQ0wsY0FBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDO3dCQUNGLGVBQWUsR0FBRyxJQUFJLENBQUM7b0JBQ3pCLENBQUM7b0JBRUQsT0FBTzt3QkFDTCxRQUFRLEVBQUUsZUFBZTt3QkFDekIsTUFBTTtxQkFDUCxDQUFDO2dCQUNKLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCw0Q0FBNEM7b0JBQzVDLE9BQU87d0JBQ0wsUUFBUSxFQUFFLEVBQUU7d0JBQ1osTUFBTSxFQUFFLElBQUk7cUJBQ2IsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCBlbmhhbmNlZFJlc29sdmVPcmlnaW5hbCBmcm9tICdlbmhhbmNlZC1yZXNvbHZlJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQgdHlwZSB7IFdvcmtmbG93TWFuaWZlc3QgfSBmcm9tICcuL2FwcGx5LXN3Yy10cmFuc2Zvcm0uanMnO1xuaW1wb3J0IHsgYXBwbHlTd2NUcmFuc2Zvcm0gfSBmcm9tICcuL2FwcGx5LXN3Yy10cmFuc2Zvcm0uanMnO1xuaW1wb3J0IHtcbiAgZGV0ZWN0V29ya2Zsb3dQYXR0ZXJucyxcbiAgaXNHZW5lcmF0ZWRXb3JrZmxvd0ZpbGUsXG59IGZyb20gJy4vdHJhbnNmb3JtLXV0aWxzLmpzJztcblxuY29uc3QgZW5oYW5jZWRSZXNvbHZlID0gcHJvbWlzaWZ5KFxuICBlbmhhbmNlZFJlc29sdmVPcmlnaW5hbC5jcmVhdGUoe1xuICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICcudHMnLFxuICAgICAgJy50c3gnLFxuICAgICAgJy5tdHMnLFxuICAgICAgJy5jdHMnLFxuICAgICAgJy5qcycsXG4gICAgICAnLmpzeCcsXG4gICAgICAnLm1qcycsXG4gICAgICAnLmNqcycsXG4gICAgICAnLmpzb24nLFxuICAgICAgJy5ub2RlJyxcbiAgICBdLFxuICAgIGZ1bGx5U3BlY2lmaWVkOiBmYWxzZSxcbiAgICBjb25kaXRpb25OYW1lczogWydub2RlJywgJ2ltcG9ydCcsICdyZXF1aXJlJ10sXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QganNUc1JlZ2V4ID0gL1xcLih0c3x0c3h8anN8anN4fG1qc3xjanN8bXRzfGN0cykkLztcblxuLyoqIFJldHVybnMgdHJ1ZSBpZiBhIG1hbmlmZXN0IHNlY3Rpb24gaGFzIGF0IGxlYXN0IG9uZSBlbnRyeS4gKi9cbmZ1bmN0aW9uIGhhc01hbmlmZXN0RW50cmllcyhcbiAgc2VjdGlvbjogV29ya2Zsb3dNYW5pZmVzdFtrZXlvZiBXb3JrZmxvd01hbmlmZXN0XVxuKTogYm9vbGVhbiB7XG4gIGlmICghc2VjdGlvbikgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhzZWN0aW9uKS5zb21lKFxuICAgIChlbnRyaWVzKSA9PiBPYmplY3Qua2V5cyhlbnRyaWVzKS5sZW5ndGggPiAwXG4gICk7XG59XG5cbmZ1bmN0aW9uIGlzR2VuZXJhdGVkQnVpbGRBcnRpZmFjdFBhdGgoZmlsZVBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGZpbGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgcmV0dXJuIChcbiAgICBub3JtYWxpemVkUGF0aC5pbmNsdWRlcygnLy5uaXRyby8nKSB8fFxuICAgIG5vcm1hbGl6ZWRQYXRoLmluY2x1ZGVzKCcvLm91dHB1dC8nKSB8fFxuICAgIG5vcm1hbGl6ZWRQYXRoLmluY2x1ZGVzKCcvLm5leHQvJykgfHxcbiAgICBub3JtYWxpemVkUGF0aC5pbmNsdWRlcygnLy5udXh0LycpIHx8XG4gICAgbm9ybWFsaXplZFBhdGguaW5jbHVkZXMoJy8uc3ZlbHRlLWtpdC8nKSB8fFxuICAgIG5vcm1hbGl6ZWRQYXRoLmluY2x1ZGVzKCcvLnZlcmNlbC8nKVxuICApO1xufVxuXG4vLyBwYXJlbnQgLT4gY2hpbGRyZW4gcmVsYXRpb25zaGlwIChhIGZpbGUgY2FuIGltcG9ydCBtdWx0aXBsZSBmaWxlcylcbmV4cG9ydCBjb25zdCBpbXBvcnRQYXJlbnRzID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpO1xuXG4vLyBjaGVjayBpZiBhIHBhcmVudCBoYXMgYSBjaGlsZCBpbiBpdHMgaW1wb3J0IGNoYWluXG4vLyBlLmcuIGlmIGEgZGVwZW5kZW5jeSBuZWVkcyB0byBiZSBidW5kbGVkIGJlY2F1c2UgaXQgaGFzXG4vLyBhICd1c2Ugd29ya2Zsb3cvJ3VzZSBzdGVwJyBkaXJlY3RpdmUgaW4gaXRcbmV4cG9ydCBmdW5jdGlvbiBwYXJlbnRIYXNDaGlsZChwYXJlbnQ6IHN0cmluZywgY2hpbGRUb0ZpbmQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHF1ZXVlOiBzdHJpbmdbXSA9IFtwYXJlbnRdO1xuXG4gIHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHF1ZXVlLnNoaWZ0KCkhO1xuXG4gICAgaWYgKHZpc2l0ZWQuaGFzKGN1cnJlbnQpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgdmlzaXRlZC5hZGQoY3VycmVudCk7XG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IGltcG9ydFBhcmVudHMuZ2V0KGN1cnJlbnQpO1xuICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgIGlmIChjaGlsZCA9PT0gY2hpbGRUb0ZpbmQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBxdWV1ZS5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEaXNjb3ZlckVudHJpZXNQbHVnaW4oXG4gIHN0YXRlOiB7XG4gICAgZGlzY292ZXJlZFN0ZXBzOiBTZXQ8c3RyaW5nPjtcbiAgICBkaXNjb3ZlcmVkV29ya2Zsb3dzOiBTZXQ8c3RyaW5nPjtcbiAgICBkaXNjb3ZlcmVkU2VyZGVGaWxlczogU2V0PHN0cmluZz47XG4gIH0sXG4gIHByb2plY3RSb290Pzogc3RyaW5nXG4pOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdkaXNjb3Zlci1lbnRyaWVzLWVzYnVpbGQtcGx1Z2luJyxcbiAgICBzZXR1cChidWlsZCkge1xuICAgICAgLy8gVHJhY2sgcGFyZW504oaSY2hpbGQgaW1wb3J0IHJlbGF0aW9uc2hpcHMgZm9yIEFMTCBpbXBvcnRzIChub3QganVzdFxuICAgICAgLy8gdGhvc2Ugd2l0aCBmaWxlIGV4dGVuc2lvbnMpIHNvIHRoYXQgYHBhcmVudEhhc0NoaWxkKClgIGNhbiBjb3JyZWN0bHlcbiAgICAgIC8vIGlkZW50aWZ5IHRyYW5zaXRpdmUgcGFyZW50cyBvZiBzZXJkZS9zdGVwIGZpbGVzIGV2ZW4gd2hlbiB0aGVcbiAgICAgIC8vIGRlcGVuZGVuY3kgY2hhaW4gcGFzc2VzIHRocm91Z2ggYmFyZSBzcGVjaWZpZXIgaW1wb3J0cyBsaWtlXG4gICAgICAvLyBgQHdvcmtmbG93L2NvcmUvcnVudGltZWAgb3IgYHdvcmtmbG93L3J1bnRpbWVgLlxuICAgICAgYnVpbGQub25SZXNvbHZlKHsgZmlsdGVyOiAvLiovIH0sIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBhd2FpdCBlbmhhbmNlZFJlc29sdmUoYXJncy5yZXNvbHZlRGlyLCBhcmdzLnBhdGgpO1xuXG4gICAgICAgICAgaWYgKHJlc29sdmVkKSB7XG4gICAgICAgICAgICAvLyBOb3JtYWxpemUgcGF0aCBzZXBhcmF0b3JzIGZvciBjcm9zcy1wbGF0Zm9ybSBjb21wYXRpYmlsaXR5XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkSW1wb3J0ZXIgPSBhcmdzLmltcG9ydGVyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSZXNvbHZlZCA9IHJlc29sdmVkLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgICAgICAgICAgIC8vIEEgZmlsZSBjYW4gaW1wb3J0IG11bHRpcGxlIGZpbGVzLCBzbyB3ZSBzdG9yZSBhIFNldCBvZiBjaGlsZHJlblxuICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gaW1wb3J0UGFyZW50cy5nZXQobm9ybWFsaXplZEltcG9ydGVyKTtcbiAgICAgICAgICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgY2hpbGRyZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgICAgICAgaW1wb3J0UGFyZW50cy5zZXQobm9ybWFsaXplZEltcG9ydGVyLCBjaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaGlsZHJlbi5hZGQobm9ybWFsaXplZFJlc29sdmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEhhbmRsZSBUeXBlU2NyaXB0IGFuZCBKYXZhU2NyaXB0IGZpbGVzXG4gICAgICBidWlsZC5vbkxvYWQoeyBmaWx0ZXI6IGpzVHNSZWdleCB9LCBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmIChpc0dlbmVyYXRlZEJ1aWxkQXJ0aWZhY3RQYXRoKGFyZ3MucGF0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGNvbnRlbnRzOiAnJyxcbiAgICAgICAgICAgICAgbG9hZGVyOiAnanMnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTa2lwIGdlbmVyYXRlZCB3b3JrZmxvdyByb3V0ZSBmaWxlcyB0byBhdm9pZCByZS1wcm9jZXNzaW5nIHRoZW1cbiAgICAgICAgICBpZiAoaXNHZW5lcmF0ZWRXb3JrZmxvd0ZpbGUoYXJncy5wYXRoKSkge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gYXdhaXQgcmVhZEZpbGUoYXJncy5wYXRoLCAndXRmOCcpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgY29udGVudHM6IHNvdXJjZSxcbiAgICAgICAgICAgICAgbG9hZGVyOiBhcmdzLnBhdGguZW5kc1dpdGgoJy5qc3gnKSA/ICdqc3gnIDogJ2pzJyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBsb2FkZXIgYmFzZWQgb24gdGhlIG91dHB1dFxuICAgICAgICAgIGxldCBsb2FkZXI6ICdqcycgfCAnanN4JyA9ICdqcyc7XG4gICAgICAgICAgY29uc3QgaXNUeXBlU2NyaXB0ID1cbiAgICAgICAgICAgIGFyZ3MucGF0aC5lbmRzV2l0aCgnLnRzJykgfHxcbiAgICAgICAgICAgIGFyZ3MucGF0aC5lbmRzV2l0aCgnLnRzeCcpIHx8XG4gICAgICAgICAgICBhcmdzLnBhdGguZW5kc1dpdGgoJy5tdHMnKSB8fFxuICAgICAgICAgICAgYXJncy5wYXRoLmVuZHNXaXRoKCcuY3RzJyk7XG4gICAgICAgICAgaWYgKCFpc1R5cGVTY3JpcHQgJiYgYXJncy5wYXRoLmVuZHNXaXRoKCcuanN4JykpIHtcbiAgICAgICAgICAgIGxvYWRlciA9ICdqc3gnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBzb3VyY2UgPSBhd2FpdCByZWFkRmlsZShhcmdzLnBhdGgsICd1dGY4Jyk7XG5cbiAgICAgICAgICAvLyBOb3JtYWxpemUgcGF0aCBzZXBhcmF0b3JzIHRvIGZvcndhcmQgc2xhc2hlcyBmb3IgY3Jvc3MtcGxhdGZvcm0gY29tcGF0aWJpbGl0eVxuICAgICAgICAgIC8vIFRoaXMgaXMgY3JpdGljYWwgZm9yIFdpbmRvd3Mgd2hlcmUgcGF0aHMgY29udGFpbiBiYWNrc2xhc2hlc1xuICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gYXJncy5wYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICAgICAgICAgIGNvbnN0IHJlc29sdmVkUHJvamVjdFJvb3QgPVxuICAgICAgICAgICAgcHJvamVjdFJvb3QgfHwgYnVpbGQuaW5pdGlhbE9wdGlvbnMuYWJzV29ya2luZ0RpciB8fCBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgICAgICAgLy8gVHdvLXBoYXNlIGRpc2NvdmVyeTpcbiAgICAgICAgICAvLyAgMS4gRmFzdCByZWdleHAgcHJlLXNjYW4gZmlsdGVycyBvdXQgdGhlIHZhc3QgbWFqb3JpdHkgb2YgZmlsZXMuXG4gICAgICAgICAgLy8gIDIuIEZvciB0aGUgc21hbGwgbnVtYmVyIHRoYXQgbWF0Y2gsIHJ1biB0aGUgU1dDIHBsdWdpbiBpbiAnZGV0ZWN0J1xuICAgICAgICAgIC8vICAgICBtb2RlIHRvIGdldCBhbiBBU1QtbGV2ZWwgbWFuaWZlc3QuIERldGVjdCBtb2RlIHdhbGtzIHRoZSBBU1QgdG9cbiAgICAgICAgICAvLyAgICAgZmluZCBkaXJlY3RpdmVzIGFuZCBzZXJkZSBwYXR0ZXJucyBidXQgZG9lcyBOT1QgdHJhbnNmb3JtIGFueVxuICAgICAgICAgIC8vICAgICBjb2RlLCBlbGltaW5hdGluZyBmYWxzZSBwb3NpdGl2ZXMgd2hlcmUgZGlyZWN0aXZlLWxpa2Ugc3RyaW5nc1xuICAgICAgICAgIC8vICAgICBhcHBlYXIgaW5zaWRlIHRlbXBsYXRlIGxpdGVyYWxzLCByZWd1bGFyIHN0cmluZ3MsIG9yIGNvbW1lbnRzLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gQWxsIGZpbGVzIGFyZSB0cmFuc2Zvcm1lZCBieSBTV0MgKFRT4oaSSlMsIGRlY29yYXRvcnMsIGV0Yy4pIHNpbmNlXG4gICAgICAgICAgLy8gZXNidWlsZCBkb2VzIG5vdCBzdXBwb3J0IGFsbCBUeXBlU2NyaXB0IHN5bnRheCAoZS5nLiBsZWdhY3lcbiAgICAgICAgICAvLyBkZWNvcmF0b3JzLCBlbWl0RGVjb3JhdG9yTWV0YWRhdGEpLiBGb3IgcmVnZXhwLW1hdGNoZWQgZmlsZXMgdGhlXG4gICAgICAgICAgLy8gJ2RldGVjdCcgY2FsbCBoYW5kbGVzIGJvdGggdGhlIHN5bnRheCB0cmFuc2Zvcm0gYW5kIHRoZSBtYW5pZmVzdFxuICAgICAgICAgIC8vIGluIGEgc2luZ2xlIHBhc3M7IGZvciBhbGwgb3RoZXIgZmlsZXMgYSBtb2RlOmZhbHNlIGNhbGwgaXMgdXNlZC5cbiAgICAgICAgICBjb25zdCBwYXR0ZXJucyA9IGRldGVjdFdvcmtmbG93UGF0dGVybnMoc291cmNlKTtcblxuICAgICAgICAgIGxldCB0cmFuc2Zvcm1lZENvZGU6IHN0cmluZztcblxuICAgICAgICAgIGlmIChwYXR0ZXJucy5oYXNEaXJlY3RpdmUgfHwgcGF0dGVybnMuaGFzU2VyZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSwgd29ya2Zsb3dNYW5pZmVzdCB9ID0gYXdhaXQgYXBwbHlTd2NUcmFuc2Zvcm0oXG4gICAgICAgICAgICAgIG5vcm1hbGl6ZWRQYXRoLFxuICAgICAgICAgICAgICBzb3VyY2UsXG4gICAgICAgICAgICAgICdkZXRlY3QnLFxuICAgICAgICAgICAgICBub3JtYWxpemVkUGF0aCxcbiAgICAgICAgICAgICAgcmVzb2x2ZWRQcm9qZWN0Um9vdFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkQ29kZSA9IGNvZGU7XG5cbiAgICAgICAgICAgIGlmIChoYXNNYW5pZmVzdEVudHJpZXMod29ya2Zsb3dNYW5pZmVzdC53b3JrZmxvd3MpKSB7XG4gICAgICAgICAgICAgIHN0YXRlLmRpc2NvdmVyZWRXb3JrZmxvd3MuYWRkKG5vcm1hbGl6ZWRQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNNYW5pZmVzdEVudHJpZXMod29ya2Zsb3dNYW5pZmVzdC5zdGVwcykpIHtcbiAgICAgICAgICAgICAgc3RhdGUuZGlzY292ZXJlZFN0ZXBzLmFkZChub3JtYWxpemVkUGF0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChoYXNNYW5pZmVzdEVudHJpZXMod29ya2Zsb3dNYW5pZmVzdC5jbGFzc2VzKSkge1xuICAgICAgICAgICAgICBzdGF0ZS5kaXNjb3ZlcmVkU2VyZGVGaWxlcy5hZGQobm9ybWFsaXplZFBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IGF3YWl0IGFwcGx5U3djVHJhbnNmb3JtKFxuICAgICAgICAgICAgICBub3JtYWxpemVkUGF0aCxcbiAgICAgICAgICAgICAgc291cmNlLFxuICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgbm9ybWFsaXplZFBhdGgsXG4gICAgICAgICAgICAgIHJlc29sdmVkUHJvamVjdFJvb3RcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0cmFuc2Zvcm1lZENvZGUgPSBjb2RlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250ZW50czogdHJhbnNmb3JtZWRDb2RlLFxuICAgICAgICAgICAgbG9hZGVyLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICAvLyBpZ25vcmUgdHJhY2UgZXJyb3JzIGR1cmluZyBkaXNjb3ZlciBwaGFzZVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250ZW50czogJycsXG4gICAgICAgICAgICBsb2FkZXI6ICdqcycsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -147,4 +147,4 @@ describe('createDiscoverEntriesPlugin projectRoot', () => {
147
147
  expect(parentHasChild(normalizedEntry, normalizedSerde)).toBe(true);
148
148
  });
149
149
  });
150
- //# sourceMappingURL=discover-entries-esbuild-plugin.test.js.map
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY292ZXItZW50cmllcy1lc2J1aWxkLXBsdWdpbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Rpc2NvdmVyLWVudHJpZXMtZXNidWlsZC1wbHVnaW4udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLGFBQWEsR0FDZCxNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV6RSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEQscUJBQXFCLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtDQUMvQixDQUFDLENBQUMsQ0FBQztBQUVKLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN6QyxpQkFBaUIsRUFBRSxxQkFBcUI7Q0FDekMsQ0FBQyxDQUFDLENBQUM7QUFFSixPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLGFBQWEsRUFDYixjQUFjLEdBQ2YsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5QyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUUxQyxTQUFTLGdCQUFnQixDQUFDLElBQVk7SUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNs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QUMsZUFBZSxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxhQUFjLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUQsMkRBQTJEO1FBQzNELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsTUFBTSxDQUFDLFdBQVksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckQsaUVBQWlFO1FBQ2pFLE1BQU0sQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFscGF0aFN5bmMsXG4gIHJtU3luYyxcbiAgd3JpdGVGaWxlU3luYyxcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0ICogYXMgZXNidWlsZCBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSAndml0ZXN0JztcblxuY29uc3QgeyBhcHBseVN3Y1RyYW5zZm9ybU1vY2sgfSA9IHZpLmhvaXN0ZWQoKCkgPT4gKHtcbiAgYXBwbHlTd2NUcmFuc2Zvcm1Nb2NrOiB2aS5mbigpLFxufSkpO1xuXG52aS5tb2NrKCcuL2FwcGx5LXN3Yy10cmFuc2Zvcm0uanMnLCAoKSA9PiAoe1xuICBhcHBseVN3Y1RyYW5zZm9ybTogYXBwbHlTd2NUcmFuc2Zvcm1Nb2NrLFxufSkpO1xuXG5pbXBvcnQge1xuICBjcmVhdGVEaXNjb3ZlckVudHJpZXNQbHVnaW4sXG4gIGltcG9ydFBhcmVudHMsXG4gIHBhcmVudEhhc0NoaWxkLFxufSBmcm9tICcuL2Rpc2NvdmVyLWVudHJpZXMtZXNidWlsZC1wbHVnaW4uanMnO1xuXG5jb25zdCByZWFsVG1wZGlyID0gcmVhbHBhdGhTeW5jKHRtcGRpcigpKTtcblxuZnVuY3Rpb24gbm9ybWFsaXplU2xhc2hlcyhwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5cbmZ1bmN0aW9uIHdyaXRlRmlsZShwYXRoOiBzdHJpbmcsIGNvbnRlbnRzID0gJycpOiB2b2lkIHtcbiAgbWtkaXJTeW5jKGRpcm5hbWUocGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKHBhdGgsIGNvbnRlbnRzLCAndXRmLTgnKTtcbn1cblxuZGVzY3JpYmUoJ2NyZWF0ZURpc2NvdmVyRW50cmllc1BsdWdpbiBwcm9qZWN0Um9vdCcsICgpID0+IHtcbiAgbGV0IHRlc3RSb290OiBzdHJpbmc7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdGVzdFJvb3QgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICd3b3JrZmxvdy1kaXNjb3Zlci1wbHVnaW4tJykpO1xuICAgIGltcG9ydFBhcmVudHMuY2xlYXIoKTtcbiAgICBhcHBseVN3Y1RyYW5zZm9ybU1vY2subW9ja1Jlc2V0KCk7XG4gICAgYXBwbHlTd2NUcmFuc2Zvcm1Nb2NrLm1vY2tJbXBsZW1lbnRhdGlvbihcbiAgICAgIGFzeW5jIChmaWxlbmFtZTogc3RyaW5nLCBzb3VyY2U6IHN0cmluZykgPT4ge1xuICAgICAgICAvLyBTaW11bGF0ZSB0aGUgU1dDIHBsdWdpbiBwcm9kdWNpbmcgYSBtYW5pZmVzdCBpbiAnZGV0ZWN0JyBtb2RlXG4gICAgICAgIGNvbnN0IGhhc1dvcmtmbG93ID0gL1snXCJddXNlIHdvcmtmbG93WydcIl0vLnRlc3Qoc291cmNlKTtcbiAgICAgICAgY29uc3QgaGFzU3RlcCA9IC9bJ1wiXXVzZSBzdGVwWydcIl0vLnRlc3Qoc291cmNlKTtcbiAgICAgICAgY29uc3Qgd29ya2Zsb3dNYW5pZmVzdDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICAgICAgaWYgKGhhc1dvcmtmbG93KSB7XG4gICAgICAgICAgd29ya2Zsb3dNYW5pZmVzdC53b3JrZmxvd3MgPSB7XG4gICAgICAgICAgICBbZmlsZW5hbWVdOiB7IGhhbmRsZU1lc3NhZ2VXb3JrZmxvdzogeyB3b3JrZmxvd0lkOiAndGVzdCcgfSB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc1N0ZXApIHtcbiAgICAgICAgICB3b3JrZmxvd01hbmlmZXN0LnN0ZXBzID0ge1xuICAgICAgICAgICAgW2ZpbGVuYW1lXTogeyBteVN0ZXA6IHsgc3RlcElkOiAndGVzdCcgfSB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgY29kZTogc291cmNlLCB3b3JrZmxvd01hbmlmZXN0IH07XG4gICAgICB9XG4gICAgKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBpbXBvcnRQYXJlbnRzLmNsZWFyKCk7XG4gICAgcm1TeW5jKHRlc3RSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHNldHVwRml4dHVyZSgpIHtcbiAgICBjb25zdCBhcHBSb290ID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMnLCAnY2hhdCcpO1xuICAgIGNvbnN0IHBhY2thZ2VSb290ID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzJywgJ3ZhZGUnKTtcbiAgICBjb25zdCB3b3JrZmxvd0ZpbGUgPSBqb2luKFxuICAgICAgcGFja2FnZVJvb3QsXG4gICAgICAnc3JjJyxcbiAgICAgICdpbnRlcm5hbCcsXG4gICAgICAnbWVzc2FnZScsXG4gICAgICAnd29ya2Zsb3cnLFxuICAgICAgJ2hhbmRsZS1tZXNzYWdlLnRzJ1xuICAgICk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICB3b3JrZmxvd0ZpbGUsXG4gICAgICBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2VXb3JrZmxvdyhtZXNzYWdlKSB7XG4gIFwidXNlIHdvcmtmbG93XCI7XG5cbiAgcmV0dXJuIG1lc3NhZ2U7XG59XG5gXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhcHBSb290LFxuICAgICAgcGFja2FnZVJvb3QsXG4gICAgICB3b3JrZmxvd0ZpbGUsXG4gICAgfTtcbiAgfVxuXG4gIGl0KCd1c2VzIHRoZSBleHBsaWNpdCBwcm9qZWN0Um9vdCBkdXJpbmcgZGlzY292ZXJ5IHRyYW5zZm9ybXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZml4dHVyZSA9IHNldHVwRml4dHVyZSgpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRXb3JrZmxvd0ZpbGUgPSBub3JtYWxpemVTbGFzaGVzKGZpeHR1cmUud29ya2Zsb3dGaWxlKTtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgIGRpc2NvdmVyZWRTdGVwczogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgICBkaXNjb3ZlcmVkV29ya2Zsb3dzOiBuZXcgU2V0PHN0cmluZz4oKSxcbiAgICAgIGRpc2NvdmVyZWRTZXJkZUZpbGVzOiBuZXcgU2V0PHN0cmluZz4oKSxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXNidWlsZC5idWlsZCh7XG4gICAgICBlbnRyeVBvaW50czogW2ZpeHR1cmUud29ya2Zsb3dGaWxlXSxcbiAgICAgIGFic1dvcmtpbmdEaXI6IGZpeHR1cmUucGFja2FnZVJvb3QsXG4gICAgICBidW5kbGU6IHRydWUsXG4gICAgICBmb3JtYXQ6ICdlc20nLFxuICAgICAgcGxhdGZvcm06ICdub2RlJyxcbiAgICAgIHdyaXRlOiBmYWxzZSxcbiAgICAgIHBsdWdpbnM6IFtjcmVhdGVEaXNjb3ZlckVudHJpZXNQbHVnaW4oc3RhdGUsIGZpeHR1cmUuYXBwUm9vdCldLFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICBleHBlY3Qoc3RhdGUuZGlzY292ZXJlZFdvcmtmbG93cykudG9FcXVhbChcbiAgICAgIG5ldyBTZXQoW25vcm1hbGl6ZWRXb3JrZmxvd0ZpbGVdKVxuICAgICk7XG4gICAgLy8gU2luZ2xlICdkZXRlY3QnIG1vZGUgY2FsbCBmb3IgQVNULWxldmVsIG1hbmlmZXN0IHZhbGlkYXRpb25cbiAgICBleHBlY3QoYXBwbHlTd2NUcmFuc2Zvcm1Nb2NrKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgIG5vcm1hbGl6ZWRXb3JrZmxvd0ZpbGUsXG4gICAgICBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnXCJ1c2Ugd29ya2Zsb3dcIicpLFxuICAgICAgJ2RldGVjdCcsXG4gICAgICBub3JtYWxpemVkV29ya2Zsb3dGaWxlLFxuICAgICAgZml4dHVyZS5hcHBSb290XG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ2RlZmF1bHRzIGRpc2NvdmVyeSB0cmFuc2Zvcm1zIHRvIGFic1dvcmtpbmdEaXIgd2hlbiBwcm9qZWN0Um9vdCBpcyBvbWl0dGVkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGZpeHR1cmUgPSBzZXR1cEZpeHR1cmUoKTtcbiAgICBjb25zdCBub3JtYWxpemVkV29ya2Zsb3dGaWxlID0gbm9ybWFsaXplU2xhc2hlcyhmaXh0dXJlLndvcmtmbG93RmlsZSk7XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICBkaXNjb3ZlcmVkU3RlcHM6IG5ldyBTZXQ8c3RyaW5nPigpLFxuICAgICAgZGlzY292ZXJlZFdvcmtmbG93czogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgICBkaXNjb3ZlcmVkU2VyZGVGaWxlczogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGVzYnVpbGQuYnVpbGQoe1xuICAgICAgZW50cnlQb2ludHM6IFtmaXh0dXJlLndvcmtmbG93RmlsZV0sXG4gICAgICBhYnNXb3JraW5nRGlyOiBmaXh0dXJlLnBhY2thZ2VSb290LFxuICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgZm9ybWF0OiAnZXNtJyxcbiAgICAgIHBsYXRmb3JtOiAnbm9kZScsXG4gICAgICB3cml0ZTogZmFsc2UsXG4gICAgICBwbHVnaW5zOiBbY3JlYXRlRGlzY292ZXJFbnRyaWVzUGx1Z2luKHN0YXRlKV0sXG4gICAgfSk7XG5cbiAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgIGV4cGVjdChzdGF0ZS5kaXNjb3ZlcmVkV29ya2Zsb3dzKS50b0VxdWFsKFxuICAgICAgbmV3IFNldChbbm9ybWFsaXplZFdvcmtmbG93RmlsZV0pXG4gICAgKTtcbiAgICAvLyBTaW5nbGUgJ2RldGVjdCcgbW9kZSBjYWxsIGZvciBBU1QtbGV2ZWwgbWFuaWZlc3QgdmFsaWRhdGlvblxuICAgIGV4cGVjdChhcHBseVN3Y1RyYW5zZm9ybU1vY2spLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgbm9ybWFsaXplZFdvcmtmbG93RmlsZSxcbiAgICAgIGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCdcInVzZSB3b3JrZmxvd1wiJyksXG4gICAgICAnZGV0ZWN0JyxcbiAgICAgIG5vcm1hbGl6ZWRXb3JrZmxvd0ZpbGUsXG4gICAgICBmaXh0dXJlLnBhY2thZ2VSb290XG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ3RyYWNrcyBpbXBvcnRQYXJlbnRzIHRocm91Z2ggYmFyZSBzcGVjaWZpZXIgaW1wb3J0cycsIGFzeW5jICgpID0+IHtcbiAgICAvLyBTaW11bGF0ZTogZW50cnkudHMgLT4gYmFyZS1wa2cgLT4gLi9zZXJkZS1maWxlLnRzXG4gICAgLy8gVGhlIGJhcmUgc3BlY2lmaWVyIFwiYmFyZS1wa2dcIiBzaG91bGQgbm90IGJyZWFrIHRoZSBwYXJlbnQtY2hpbGQgY2hhaW4uXG4gICAgY29uc3QgZW50cnlGaWxlID0gam9pbih0ZXN0Um9vdCwgJ2VudHJ5LnRzJyk7XG4gICAgY29uc3QgcGtnRGlyID0gam9pbih0ZXN0Um9vdCwgJ25vZGVfbW9kdWxlcycsICdiYXJlLXBrZycpO1xuICAgIGNvbnN0IHBrZ0luZGV4ID0gam9pbihwa2dEaXIsICdpbmRleC5qcycpO1xuICAgIGNvbnN0IHNlcmRlRmlsZSA9IGpvaW4ocGtnRGlyLCAnc2VyZGUuanMnKTtcblxuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocGtnRGlyLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6ICdiYXJlLXBrZycsIG1haW46ICdpbmRleC5qcycgfSlcbiAgICApO1xuICAgIHdyaXRlRmlsZShwa2dJbmRleCwgYGV4cG9ydCB7IEZvbyB9IGZyb20gJy4vc2VyZGUuanMnO2ApO1xuICAgIHdyaXRlRmlsZShzZXJkZUZpbGUsIGBleHBvcnQgY2xhc3MgRm9vIHt9XFxuYCk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgZW50cnlGaWxlLFxuICAgICAgYGltcG9ydCB7IEZvbyB9IGZyb20gJ2JhcmUtcGtnJztcXG5jb25zb2xlLmxvZyhGb28pO1xcbmBcbiAgICApO1xuXG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICBkaXNjb3ZlcmVkU3RlcHM6IG5ldyBTZXQ8c3RyaW5nPigpLFxuICAgICAgZGlzY292ZXJlZFdvcmtmbG93czogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgICBkaXNjb3ZlcmVkU2VyZGVGaWxlczogbmV3IFNldDxzdHJpbmc+KCksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGVzYnVpbGQuYnVpbGQoe1xuICAgICAgZW50cnlQb2ludHM6IFtlbnRyeUZpbGVdLFxuICAgICAgYWJzV29ya2luZ0RpcjogdGVzdFJvb3QsXG4gICAgICBidW5kbGU6IHRydWUsXG4gICAgICBmb3JtYXQ6ICdlc20nLFxuICAgICAgcGxhdGZvcm06ICdub2RlJyxcbiAgICAgIHdyaXRlOiBmYWxzZSxcbiAgICAgIHBsdWdpbnM6IFtjcmVhdGVEaXNjb3ZlckVudHJpZXNQbHVnaW4oc3RhdGUpXSxcbiAgICB9KTtcblxuICAgIGV4cGVjdChyZXN1bHQuZXJyb3JzKS50b0hhdmVMZW5ndGgoMCk7XG5cbiAgICBjb25zdCBub3JtYWxpemVkRW50cnkgPSBub3JtYWxpemVTbGFzaGVzKGVudHJ5RmlsZSk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFBrZ0luZGV4ID0gbm9ybWFsaXplU2xhc2hlcyhwa2dJbmRleCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNlcmRlID0gbm9ybWFsaXplU2xhc2hlcyhzZXJkZUZpbGUpO1xuXG4gICAgLy8gZW50cnkudHMgLT4gYmFyZS1wa2cvaW5kZXguanMgc2hvdWxkIGJlIHRyYWNrZWRcbiAgICBjb25zdCBlbnRyeUNoaWxkcmVuID0gaW1wb3J0UGFyZW50cy5nZXQobm9ybWFsaXplZEVudHJ5KTtcbiAgICBleHBlY3QoZW50cnlDaGlsZHJlbikudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoZW50cnlDaGlsZHJlbiEuaGFzKG5vcm1hbGl6ZWRQa2dJbmRleCkpLnRvQmUodHJ1ZSk7XG5cbiAgICAvLyBiYXJlLXBrZy9pbmRleC5qcyAtPiBiYXJlLXBrZy9zZXJkZS5qcyBzaG91bGQgYmUgdHJhY2tlZFxuICAgIGNvbnN0IHBrZ0NoaWxkcmVuID0gaW1wb3J0UGFyZW50cy5nZXQobm9ybWFsaXplZFBrZ0luZGV4KTtcbiAgICBleHBlY3QocGtnQ2hpbGRyZW4pLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KHBrZ0NoaWxkcmVuIS5oYXMobm9ybWFsaXplZFNlcmRlKSkudG9CZSh0cnVlKTtcblxuICAgIC8vIHBhcmVudEhhc0NoaWxkIHNob3VsZCB0cmFuc2l0aXZlbHkgZmluZCBzZXJkZS5qcyBmcm9tIGVudHJ5LnRzXG4gICAgZXhwZWN0KHBhcmVudEhhc0NoaWxkKG5vcm1hbGl6ZWRFbnRyeSwgbm9ybWFsaXplZFNlcmRlKSkudG9CZSh0cnVlKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -22,4 +22,4 @@ export async function getEsbuildTsconfigOptions(tsconfigPath) {
22
22
  return { tsconfig: tsconfigPath };
23
23
  }
24
24
  }
25
- //# sourceMappingURL=esbuild-tsconfig.js.map
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC10c2NvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lc2J1aWxkLXRzY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPbkQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsWUFBZ0M7SUFFaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUM1QixPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO1FBQ3BDLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbHN0YXQsIHJlYWRGaWxlIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbmV4cG9ydCB0eXBlIEVzYnVpbGRUc2NvbmZpZ09wdGlvbnMgPSB7XG4gIHRzY29uZmlnPzogc3RyaW5nO1xuICB0c2NvbmZpZ1Jhdz86IHN0cmluZztcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgdHNjb25maWcgb3B0aW9ucyBmb3IgZXNidWlsZC5cbiAqXG4gKiBGb3Igc3ltbGlua2VkIHRzY29uZmlnIGZpbGVzIHdlIHBhc3MgYHRzY29uZmlnUmF3YCBpbnN0ZWFkIG9mIGB0c2NvbmZpZ2Agc29cbiAqIHBhdGggYWxpYXNlcyAoZm9yIGV4YW1wbGUgYEAvKmApIGFyZSByZXNvbHZlZCByZWxhdGl2ZSB0byB0aGUgY3VycmVudFxuICogd29ya2luZyBkaXJlY3RvcnkgaW5zdGVhZCBvZiB0aGUgc3ltbGluayB0YXJnZXQgZGlyZWN0b3J5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RXNidWlsZFRzY29uZmlnT3B0aW9ucyhcbiAgdHNjb25maWdQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWRcbik6IFByb21pc2U8RXNidWlsZFRzY29uZmlnT3B0aW9ucz4ge1xuICBpZiAoIXRzY29uZmlnUGF0aCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBsc3RhdCh0c2NvbmZpZ1BhdGgpO1xuICAgIGlmICghc3RhdHMuaXNTeW1ib2xpY0xpbmsoKSkge1xuICAgICAgcmV0dXJuIHsgdHNjb25maWc6IHRzY29uZmlnUGF0aCB9O1xuICAgIH1cblxuICAgIGNvbnN0IHRzY29uZmlnUmF3ID0gYXdhaXQgcmVhZEZpbGUodHNjb25maWdQYXRoLCAndXRmOCcpO1xuICAgIHJldHVybiB7IHRzY29uZmlnUmF3IH07XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7IHRzY29uZmlnOiB0c2NvbmZpZ1BhdGggfTtcbiAgfVxufVxuIl19
@@ -91,4 +91,4 @@ describe('getEsbuildTsconfigOptions', () => {
91
91
  expect(normalizedInputs.some((input) => input.includes('turbopack-app/app/.well-known/agent/v1/steps.ts'))).toBe(false);
92
92
  });
93
93
  });
94
- //# sourceMappingURL=esbuild-tsconfig.test.js.map
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC10c2NvbmZpZy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VzYnVpbGQtdHNjb25maWcudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFdBQVcsRUFDWCxhQUFhLEdBQ2QsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRTFDLFNBQVMsU0FBUyxDQUFDLElBQVksRUFBRSxRQUFnQjtJQUMvQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsYUFBYSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLEtBQWU7SUFDaEMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVyxDQUFDLEVBQ3pCLFVBQVUsRUFDVixlQUFlLEdBSWhCO0lBQ0MsTUFBTSxNQUFN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LENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUV6QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sV0FBVyxDQUFDO1lBQ3pDLFVBQVU7WUFDVixlQUFlLEVBQUUsT0FBTztTQUN6QixDQUFDLENBQUM7UUFFSCxNQUFNLENBQ0osZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FDeEUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDYixNQUFNLENBQ0osZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDOUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUNwRCxDQUNGLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsTUFBTSxDQUNKLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUMsQ0FDcEQsQ0FDRixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNkLE1BQU0sQ0FDSixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QixLQUFLLENBQUMsUUFBUSxDQUFDLGlEQUFpRCxDQUFDLENBQ2xFLENBQ0YsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUNGLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIG1rZGlyU3luYyxcbiAgbWtkdGVtcFN5bmMsXG4gIHJlYWxwYXRoU3luYyxcbiAgcm1TeW5jLFxuICBzeW1saW5rU3luYyxcbiAgd3JpdGVGaWxlU3luYyxcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0ICogYXMgZXNidWlsZCBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHsgZ2V0RXNidWlsZFRzY29uZmlnT3B0aW9ucyB9IGZyb20gJy4vZXNidWlsZC10c2NvbmZpZy5qcyc7XG5cbmNvbnN0IHJlYWxUbXBkaXIgPSByZWFscGF0aFN5bmModG1wZGlyKCkpO1xuXG5mdW5jdGlvbiB3cml0ZUZpbGUocGF0aDogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKTogdm9pZCB7XG4gIG1rZGlyU3luYyhkaXJuYW1lKHBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgd3JpdGVGaWxlU3luYyhwYXRoLCBjb250ZW50cywgJ3V0ZjgnKTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplKHBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIHBhdGhzLm1hcCgocCkgPT4gcC5yZXBsYWNlKC9cXFxcL2csICcvJykpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBidWlsZElucHV0cyh7XG4gIHdvcmtpbmdEaXIsXG4gIHRzY29uZmlnT3B0aW9ucyxcbn06IHtcbiAgd29ya2luZ0Rpcjogc3RyaW5nO1xuICB0c2NvbmZpZ09wdGlvbnM6IHsgdHNjb25maWc/OiBzdHJpbmc7IHRzY29uZmlnUmF3Pzogc3RyaW5nIH07XG59KTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICBhYnNXb3JraW5nRGlyOiB3b3JraW5nRGlyLFxuICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICBmb3JtYXQ6ICdlc20nLFxuICAgIHBsYXRmb3JtOiAnbm9kZScsXG4gICAgd3JpdGU6IGZhbHNlLFxuICAgIGxvZ0xldmVsOiAnc2lsZW50JyxcbiAgICBtZXRhZmlsZTogdHJ1ZSxcbiAgICBzdGRpbjoge1xuICAgICAgY29udGVudHM6IGBpbXBvcnQgJ0Avd29ya2Zsb3dzL3RhcmdldCc7IGltcG9ydCAnQC9hcHAvLndlbGwta25vd24vYWdlbnQvdjEvc3RlcHMnO2AsXG4gICAgICByZXNvbHZlRGlyOiB3b3JraW5nRGlyLFxuICAgICAgc291cmNlZmlsZTogJ2VudHJ5LnRzJyxcbiAgICAgIGxvYWRlcjogJ3RzJyxcbiAgICB9LFxuICAgIC4uLnRzY29uZmlnT3B0aW9ucyxcbiAgfSk7XG5cbiAgcmV0dXJuIG5vcm1hbGl6ZShPYmplY3Qua2V5cyhyZXN1bHQubWV0YWZpbGUuaW5wdXRzKSk7XG59XG5cbmRlc2NyaWJlKCdnZXRFc2J1aWxkVHNjb25maWdPcHRpb25zJywgKCkgPT4ge1xuICBjb25zdCBjcmVhdGVkUm9vdHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHN5bWxpbmtUZXN0ID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IGl0LnNraXAgOiBpdDtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGZvciAoY29uc3Qgcm9vdCBvZiBjcmVhdGVkUm9vdHMuc3BsaWNlKDApKSB7XG4gICAgICBybVN5bmMocm9vdCwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgdHNjb25maWcgZm9yIHJlZ3VsYXIgZmlsZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgcm9vdCA9IG1rZHRlbXBTeW5jKGpvaW4ocmVhbFRtcGRpciwgJ3dvcmtmbG93LXRzY29uZmlnLXJlZ3VsYXItJykpO1xuICAgIGNyZWF0ZWRSb290cy5wdXNoKHJvb3QpO1xuICAgIGNvbnN0IHdvcmtpbmdEaXIgPSBqb2luKHJvb3QsICdhcHAnKTtcbiAgICBjb25zdCB0c2NvbmZpZ1BhdGggPSBqb2luKHdvcmtpbmdEaXIsICd0c2NvbmZpZy5qc29uJyk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICB0c2NvbmZpZ1BhdGgsXG4gICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgICAgcGF0aHM6IHtcbiAgICAgICAgICAgICAgJ0AvKic6IFsnLi8qJ10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG51bGwsXG4gICAgICAgIDJcbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IGdldEVzYnVpbGRUc2NvbmZpZ09wdGlvbnModHNjb25maWdQYXRoKTtcbiAgICBleHBlY3Qob3B0aW9ucykudG9FcXVhbCh7IHRzY29uZmlnOiB0c2NvbmZpZ1BhdGggfSk7XG4gIH0pO1xuXG4gIHN5bWxpbmtUZXN0KFxuICAgICd1c2VzIHRzY29uZmlnUmF3IGZvciBzeW1saW5rZWQgY29uZmlncyBzbyBhbGlhc2VzIHJlc29sdmUgZnJvbSB3b3JraW5nIGRpcicsXG4gICAgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdCA9IG1rZHRlbXBTeW5jKGpvaW4ocmVhbFRtcGRpciwgJ3dvcmtmbG93LXRzY29uZmlnLXN5bWxpbmstJykpO1xuICAgICAgY3JlYXRlZFJvb3RzLnB1c2gocm9vdCk7XG4gICAgICBjb25zdCB3b3JraW5nRGlyID0gam9pbihyb290LCAnd2VicGFjay1hcHAnKTtcbiAgICAgIGNvbnN0IHNvdXJjZURpciA9IGpvaW4ocm9vdCwgJ3R1cmJvcGFjay1hcHAnKTtcbiAgICAgIGNvbnN0IHN5bWxpbmtUc2NvbmZpZ1BhdGggPSBqb2luKHdvcmtpbmdEaXIsICd0c2NvbmZpZy5qc29uJyk7XG5cbiAgICAgIHdyaXRlRmlsZShcbiAgICAgICAgam9pbihzb3VyY2VEaXIsICd0c2NvbmZpZy5qc29uJyksXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgICAgICBwYXRoczoge1xuICAgICAgICAgICAgICAgICdALyonOiBbJy4vKiddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMlxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgICB3cml0ZUZpbGUoXG4gICAgICAgIGpvaW4od29ya2luZ0RpciwgJ3dvcmtmbG93cy90YXJnZXQudHMnKSxcbiAgICAgICAgJ2V4cG9ydCBjb25zdCBpZCA9IFwid2VicGFja1wiOydcbiAgICAgICk7XG4gICAgICB3cml0ZUZpbGUoXG4gICAgICAgIGpvaW4od29ya2luZ0RpciwgJ2FwcC8ud2VsbC1rbm93bi9hZ2VudC92MS9zdGVwcy50cycpLFxuICAgICAgICAnZXhwb3J0IGNvbnN0IGlkID0gXCJ3ZWJwYWNrLWFwcFwiOydcbiAgICAgICk7XG4gICAgICB3cml0ZUZpbGUoXG4gICAgICAgIGpvaW4oc291cmNlRGlyLCAnd29ya2Zsb3dzL3RhcmdldC50cycpLFxuICAgICAgICAnZXhwb3J0IGNvbnN0IGlkID0gXCJ0dXJib3BhY2tcIjsnXG4gICAgICApO1xuICAgICAgd3JpdGVGaWxlKFxuICAgICAgICBqb2luKHNvdXJjZURpciwgJ2FwcC8ud2VsbC1rbm93bi9hZ2VudC92MS9zdGVwcy50cycpLFxuICAgICAgICAnZXhwb3J0IGNvbnN0IGlkID0gXCJ0dXJib3BhY2stYXBwXCI7J1xuICAgICAgKTtcblxuICAgICAgc3ltbGlua1N5bmMoXG4gICAgICAgIGpvaW4oc291cmNlRGlyLCAndHNjb25maWcuanNvbicpLFxuICAgICAgICBzeW1saW5rVHNjb25maWdQYXRoLFxuICAgICAgICAnZmlsZSdcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGRpcmVjdElucHV0cyA9IGF3YWl0IGJ1aWxkSW5wdXRzKHtcbiAgICAgICAgd29ya2luZ0RpcixcbiAgICAgICAgdHNjb25maWdPcHRpb25zOiB7IHRzY29uZmlnOiBzeW1saW5rVHNjb25maWdQYXRoIH0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgZGlyZWN0SW5wdXRzLnNvbWUoKGlucHV0KSA9PlxuICAgICAgICAgIGlucHV0LmluY2x1ZGVzKCd0dXJib3BhY2stYXBwL3dvcmtmbG93cy90YXJnZXQudHMnKVxuICAgICAgICApXG4gICAgICApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QoXG4gICAgICAgIGRpcmVjdElucHV0cy5zb21lKChpbnB1dCkgPT5cbiAgICAgICAgICBpbnB1dC5pbmNsdWRlcygndHVyYm9wYWNrLWFwcC9hcHAvLndlbGwta25vd24vYWdlbnQvdjEvc3RlcHMudHMnKVxuICAgICAgICApXG4gICAgICApLnRvQmUodHJ1ZSk7XG5cbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBnZXRFc2J1aWxkVHNjb25maWdPcHRpb25zKHN5bWxpbmtUc2NvbmZpZ1BhdGgpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBvcHRpb25zLnRzY29uZmlnUmF3KS50b0JlKCdzdHJpbmcnKTtcbiAgICAgIGV4cGVjdChvcHRpb25zLnRzY29uZmlnKS50b0JlVW5kZWZpbmVkKCk7XG5cbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRJbnB1dHMgPSBhd2FpdCBidWlsZElucHV0cyh7XG4gICAgICAgIHdvcmtpbmdEaXIsXG4gICAgICAgIHRzY29uZmlnT3B0aW9uczogb3B0aW9ucyxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoXG4gICAgICAgIG5vcm1hbGl6ZWRJbnB1dHMuc29tZSgoaW5wdXQpID0+IGlucHV0LmVuZHNXaXRoKCd3b3JrZmxvd3MvdGFyZ2V0LnRzJykpXG4gICAgICApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QoXG4gICAgICAgIG5vcm1hbGl6ZWRJbnB1dHMuc29tZSgoaW5wdXQpID0+XG4gICAgICAgICAgaW5wdXQuZW5kc1dpdGgoJ2FwcC8ud2VsbC1rbm93bi9hZ2VudC92MS9zdGVwcy50cycpXG4gICAgICAgIClcbiAgICAgICkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgbm9ybWFsaXplZElucHV0cy5zb21lKChpbnB1dCkgPT5cbiAgICAgICAgICBpbnB1dC5pbmNsdWRlcygndHVyYm9wYWNrLWFwcC93b3JrZmxvd3MvdGFyZ2V0LnRzJylcbiAgICAgICAgKVxuICAgICAgKS50b0JlKGZhbHNlKTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgbm9ybWFsaXplZElucHV0cy5zb21lKChpbnB1dCkgPT5cbiAgICAgICAgICBpbnB1dC5pbmNsdWRlcygndHVyYm9wYWNrLWFwcC9hcHAvLndlbGwta25vd24vYWdlbnQvdjEvc3RlcHMudHMnKVxuICAgICAgICApXG4gICAgICApLnRvQmUoZmFsc2UpO1xuICAgIH1cbiAgKTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=external-package-warning.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-package-warning.test.d.ts","sourceRoot":"","sources":["../src/external-package-warning.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,219 @@
1
+ import { mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
+ import { BaseBuilder } from './base-builder.js';
6
+ /**
7
+ * Minimal subclass to expose the protected `discoverEntries()` for testing.
8
+ */
9
+ class TestBuilder extends BaseBuilder {
10
+ async build() {
11
+ // no-op
12
+ }
13
+ // Expose for tests
14
+ discoverEntriesPublic(inputs, outdir) {
15
+ return this.discoverEntries(inputs, outdir);
16
+ }
17
+ }
18
+ // Resolve symlinks in tmpdir to avoid macOS /var -> /private/var issues
19
+ const realTmpdir = realpathSync(tmpdir());
20
+ function writeFile(path, contents) {
21
+ mkdirSync(dirname(path), { recursive: true });
22
+ writeFileSync(path, contents, 'utf-8');
23
+ }
24
+ function createBuilder(workingDir, externalPackages) {
25
+ const config = {
26
+ buildTarget: 'standalone',
27
+ workingDir,
28
+ dirs: ['.'],
29
+ externalPackages,
30
+ stepsBundlePath: join(workingDir, 'steps.js'),
31
+ workflowsBundlePath: join(workingDir, 'workflows.js'),
32
+ webhookBundlePath: join(workingDir, 'webhook.js'),
33
+ };
34
+ return new TestBuilder(config);
35
+ }
36
+ describe('warnAboutExternalWorkflowPackages', () => {
37
+ let testRoot;
38
+ let warnSpy;
39
+ beforeEach(() => {
40
+ testRoot = mkdtempSync(join(realTmpdir, 'workflow-external-pkg-warning-'));
41
+ warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
42
+ });
43
+ afterEach(() => {
44
+ warnSpy.mockRestore();
45
+ rmSync(testRoot, { recursive: true, force: true });
46
+ });
47
+ it('warns when an external package depends on @workflow/serde', async () => {
48
+ // Create a mock project with a node_modules package
49
+ const projectDir = join(testRoot, 'project');
50
+ // Create a minimal entry file for the project
51
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
52
+ // Create the external package with @workflow/serde dependency
53
+ writeFile(join(projectDir, 'node_modules', 'my-serde-pkg', 'package.json'), JSON.stringify({
54
+ name: 'my-serde-pkg',
55
+ version: '1.0.0',
56
+ main: 'index.js',
57
+ dependencies: {
58
+ '@workflow/serde': '^1.0.0',
59
+ },
60
+ }));
61
+ writeFile(join(projectDir, 'node_modules', 'my-serde-pkg', 'index.js'), 'export class Foo {}');
62
+ const builder = createBuilder(projectDir, ['my-serde-pkg']);
63
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
64
+ expect(warnSpy).toHaveBeenCalled();
65
+ const warnMessage = warnSpy.mock.calls[0]?.[0];
66
+ expect(warnMessage).toContain('my-serde-pkg');
67
+ expect(warnMessage).toContain('serverExternalPackages');
68
+ expect(warnMessage).toContain('serialization classes');
69
+ });
70
+ it('warns when an external package source contains serde symbols', async () => {
71
+ const projectDir = join(testRoot, 'project');
72
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
73
+ // Package without @workflow/serde dep but with Symbol.for patterns in source
74
+ writeFile(join(projectDir, 'node_modules', 'my-symbol-pkg', 'package.json'), JSON.stringify({
75
+ name: 'my-symbol-pkg',
76
+ version: '1.0.0',
77
+ main: 'index.js',
78
+ }));
79
+ writeFile(join(projectDir, 'node_modules', 'my-symbol-pkg', 'index.js'), `export class Bar {
80
+ static [Symbol.for('workflow-serialize')](instance) { return {}; }
81
+ static [Symbol.for('workflow-deserialize')](data) { return new Bar(); }
82
+ }`);
83
+ const builder = createBuilder(projectDir, ['my-symbol-pkg']);
84
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
85
+ expect(warnSpy).toHaveBeenCalled();
86
+ const warnMessage = warnSpy.mock.calls[0]?.[0];
87
+ expect(warnMessage).toContain('my-symbol-pkg');
88
+ expect(warnMessage).toContain('serialization classes');
89
+ });
90
+ it('warns when an external package contains "use step" directives', async () => {
91
+ const projectDir = join(testRoot, 'project');
92
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
93
+ writeFile(join(projectDir, 'node_modules', 'my-step-pkg', 'package.json'), JSON.stringify({
94
+ name: 'my-step-pkg',
95
+ version: '1.0.0',
96
+ main: 'index.js',
97
+ }));
98
+ writeFile(join(projectDir, 'node_modules', 'my-step-pkg', 'index.js'), `export async function doWork() {
99
+ "use step";
100
+ return 42;
101
+ }`);
102
+ const builder = createBuilder(projectDir, ['my-step-pkg']);
103
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
104
+ expect(warnSpy).toHaveBeenCalled();
105
+ const warnMessage = warnSpy.mock.calls[0]?.[0];
106
+ expect(warnMessage).toContain('my-step-pkg');
107
+ expect(warnMessage).toContain('"use step" functions');
108
+ });
109
+ it('warns when an external package contains "use workflow" directives', async () => {
110
+ const projectDir = join(testRoot, 'project');
111
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
112
+ writeFile(join(projectDir, 'node_modules', 'my-workflow-pkg', 'package.json'), JSON.stringify({
113
+ name: 'my-workflow-pkg',
114
+ version: '1.0.0',
115
+ main: 'index.js',
116
+ }));
117
+ writeFile(join(projectDir, 'node_modules', 'my-workflow-pkg', 'index.js'), `export async function runJob() {
118
+ "use workflow";
119
+ return "done";
120
+ }`);
121
+ const builder = createBuilder(projectDir, ['my-workflow-pkg']);
122
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
123
+ expect(warnSpy).toHaveBeenCalled();
124
+ const warnMessage = warnSpy.mock.calls[0]?.[0];
125
+ expect(warnMessage).toContain('my-workflow-pkg');
126
+ expect(warnMessage).toContain('"use workflow" functions');
127
+ });
128
+ it('does not warn for packages without workflow patterns', async () => {
129
+ const projectDir = join(testRoot, 'project');
130
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
131
+ writeFile(join(projectDir, 'node_modules', 'plain-pkg', 'package.json'), JSON.stringify({
132
+ name: 'plain-pkg',
133
+ version: '1.0.0',
134
+ main: 'index.js',
135
+ }));
136
+ writeFile(join(projectDir, 'node_modules', 'plain-pkg', 'index.js'), 'export const hello = "world";');
137
+ const builder = createBuilder(projectDir, ['plain-pkg']);
138
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
139
+ expect(warnSpy).not.toHaveBeenCalled();
140
+ });
141
+ it('does not warn for pseudo-packages (server-only, client-only)', async () => {
142
+ const projectDir = join(testRoot, 'project');
143
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
144
+ const builder = createBuilder(projectDir, ['server-only', 'client-only']);
145
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
146
+ expect(warnSpy).not.toHaveBeenCalled();
147
+ });
148
+ it('does not warn when externalPackages is empty', async () => {
149
+ const projectDir = join(testRoot, 'project');
150
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
151
+ const builder = createBuilder(projectDir, []);
152
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
153
+ expect(warnSpy).not.toHaveBeenCalled();
154
+ });
155
+ it('warns only once per package across multiple discoverEntries calls', async () => {
156
+ const projectDir = join(testRoot, 'project');
157
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
158
+ writeFile(join(projectDir, 'other.ts'), 'export const y = 2;');
159
+ writeFile(join(projectDir, 'node_modules', 'my-serde-pkg', 'package.json'), JSON.stringify({
160
+ name: 'my-serde-pkg',
161
+ version: '1.0.0',
162
+ main: 'index.js',
163
+ dependencies: { '@workflow/serde': '^1.0.0' },
164
+ }));
165
+ writeFile(join(projectDir, 'node_modules', 'my-serde-pkg', 'index.js'), 'export class Foo {}');
166
+ const builder = createBuilder(projectDir, ['my-serde-pkg']);
167
+ // Call discoverEntries twice with different inputs
168
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
169
+ await builder.discoverEntriesPublic([join(projectDir, 'other.ts')], join(projectDir, 'out2'));
170
+ // Should only warn once
171
+ const warnCalls = warnSpy.mock.calls.filter((call) => call[0].includes('my-serde-pkg'));
172
+ expect(warnCalls).toHaveLength(1);
173
+ });
174
+ it('lists multiple detected issues in the warning message', async () => {
175
+ const projectDir = join(testRoot, 'project');
176
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
177
+ writeFile(join(projectDir, 'node_modules', 'multi-pkg', 'package.json'), JSON.stringify({
178
+ name: 'multi-pkg',
179
+ version: '1.0.0',
180
+ main: 'index.js',
181
+ dependencies: { '@workflow/serde': '^1.0.0' },
182
+ }));
183
+ writeFile(join(projectDir, 'node_modules', 'multi-pkg', 'index.js'), `export async function doWork() {
184
+ "use step";
185
+ return 42;
186
+ }
187
+ export class Foo {
188
+ static [Symbol.for('workflow-serialize')](instance) { return {}; }
189
+ static [Symbol.for('workflow-deserialize')](data) { return new Foo(); }
190
+ }`);
191
+ const builder = createBuilder(projectDir, ['multi-pkg']);
192
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
193
+ expect(warnSpy).toHaveBeenCalled();
194
+ const warnMessage = warnSpy.mock.calls[0]?.[0];
195
+ expect(warnMessage).toContain('"use step" functions');
196
+ expect(warnMessage).toContain('serialization classes');
197
+ });
198
+ it('warns via entry-file detection when package.json has no serde dep', async () => {
199
+ const projectDir = join(testRoot, 'project');
200
+ writeFile(join(projectDir, 'index.ts'), 'export const x = 1;');
201
+ // Package without @workflow/serde in deps, but entry has "use step"
202
+ writeFile(join(projectDir, 'node_modules', 'no-serde-dep-pkg', 'package.json'), JSON.stringify({
203
+ name: 'no-serde-dep-pkg',
204
+ version: '1.0.0',
205
+ main: 'index.js',
206
+ }));
207
+ writeFile(join(projectDir, 'node_modules', 'no-serde-dep-pkg', 'index.js'), `export async function doWork() {
208
+ "use step";
209
+ return 42;
210
+ }`);
211
+ const builder = createBuilder(projectDir, ['no-serde-dep-pkg']);
212
+ await builder.discoverEntriesPublic([join(projectDir, 'index.ts')], join(projectDir, 'out'));
213
+ expect(warnSpy).toHaveBeenCalled();
214
+ const warnMessage = warnSpy.mock.calls[0]?.[0];
215
+ expect(warnMessage).toContain('no-serde-dep-pkg');
216
+ expect(warnMessage).toContain('"use step" functions');
217
+ });
218
+ });
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtcGFja2FnZS13YXJuaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXh0ZXJuYWwtcGFja2FnZS13YXJuaW5nLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixhQUFhLEdBQ2QsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDekUsT0FBTyxFQUFFLFdBQVcsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUd4RTs7R0FFRztBQUNILE1BQU0sV0FBWSxTQUFRLFdBQVc7SUFDbkMsS0FBSyxDQUFDLEtBQUs7UUFDVCxRQUFRO0lBQ1YsQ0FBQztJQUVELG1CQUFtQjtJQUNaLHFCQUFxQixDQUMxQixNQUFnQixFQUNoQixNQUFjO1FBRWQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFFRCx3RUFBd0U7QUFDeEUsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFMUMsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLFFBQWdCO0lBQy9DLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQ3BCLFVBQWtCLEVBQ2xCLGdCQUEwQjtJQUUxQixNQUFNLE1BQU0sR0FBcUI7UUFDL0IsV0FBVyxFQUFFLFlBQVk7UUFDekIsVUFBVTtRQUNWLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNYLGdCQUFnQjtRQUNoQixlQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7UUFDN0MsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUM7UUFDckQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7S0FDbEQsQ0FBQztJQUNGLE9BQU8sSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELFFBQVEsQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7SUFDakQsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLElBQUksT0FBb0MsQ0FBQztJQUV6QyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGdDQUFnQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDJEQUEyRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3pFLG9EQUFvRDtRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLDhDQUE4QztRQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRS9ELDhEQUE4RDtRQUM5RCxTQUFTLENBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxFQUNoRSxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLGNBQWM7WUFDcEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsWUFBWSxFQUFFO2dCQUNaLGlCQUFpQixFQUFFLFFBQVE7YUFDNUI7U0FDRixDQUFDLENBQ0gsQ0FBQztRQUNGLFNBQVMsQ0FDUCxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsVUFBVSxDQUFDLEVBQzVELHFCQUFxQixDQUN0QixDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLENBQUMscUJBQXFCLENBQ2pDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUN4QixDQUFDO1FBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDbkMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQVcsQ0FBQztRQUN6RCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUN4RCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOERBQThELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDNUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRS9ELDZFQUE2RTtRQUM3RSxTQUFTLENBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxFQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLGVBQWU7WUFDckIsT0FBTyxFQUFFLE9BQU87WUFDaEIsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUNILENBQUM7UUFDRixTQUFTLENBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxFQUM3RDs7O0VBR0osQ0FDRyxDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxPQUFPLENBQUMscUJBQXFCLENBQ2pDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUN4QixDQUFDO1FBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDbkMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQVcsQ0FBQztRQUN6RCxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywrREFBK0QsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM3RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFL0QsU0FBUyxDQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsRUFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxhQUFhO1lBQ25CLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsU0FBUyxDQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsRUFDM0Q7OztFQUdKLENBQ0csQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUNqQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFXLENBQUM7UUFDekQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUVBQW1FLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRS9ELFNBQVMsQ0FDUCxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLENBQUMsRUFDbkUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsT0FBTyxFQUFFLE9BQU87WUFDaEIsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUNILENBQUM7UUFDRixTQUFTLENBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLEVBQy9EOzs7RUFHSixDQUNHLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUNqQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFXLENBQUM7UUFDekQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNwRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFL0QsU0FBUyxDQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsRUFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FDSCxDQUFDO1FBQ0YsU0FBUyxDQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsRUFDekQsK0JBQStCLENBQ2hDLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sQ0FBQyxxQkFBcUIsQ0FDakMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQ3hCLENBQUM7UUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOERBQThELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDNUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUMxRSxNQUFNLE9BQU8sQ0FBQyxxQkFBcUIsQ0FDakMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQ3hCLENBQUM7UUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOENBQThDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsTUFBTSxPQUFPLENBQUMscUJBQXFCLENBQ2pDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUN4QixDQUFDO1FBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLG1FQUFtRSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2pGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFN0MsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUMvRCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRS9ELFNBQVMsQ0FDUCxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLEVBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsY0FBYztZQUNwQixPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJLEVBQUUsVUFBVTtZQUNoQixZQUFZLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUU7U0FDOUMsQ0FBQyxDQUNILENBQUM7UUFDRixTQUFTLENBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFVBQVUsQ0FBQyxFQUM1RCxxQkFBcUIsQ0FDdEIsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTVELG1EQUFtRDtRQUNuRCxNQUFNLE9BQU8sQ0FBQyxxQkFBcUIsQ0FDakMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQ3hCLENBQUM7UUFDRixNQUFNLE9BQU8sQ0FBQyxxQkFBcUIsQ0FDakMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQ3pCLENBQUM7UUFFRix3QkFBd0I7UUFDeEIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FDN0QsSUFBSSxDQUFDLENBQUMsQ0FBWSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FDN0MsQ0FBQztRQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdURBQXVELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDckUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU3QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRS9ELFNBQVMsQ0FDUCxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLEVBQzdELElBQUksQ0FBQyxTQUFTLENBQUM7WUFDYixJQUFJLEVBQUUsV0FBVztZQUNqQixPQUFPLEVBQUUsT0FBTztZQUNoQixJQUFJLEVBQUUsVUFBVTtZQUNoQixZQUFZLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUU7U0FDOUMsQ0FBQyxDQUNILENBQUM7UUFDRixTQUFTLENBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxFQUN6RDs7Ozs7OztFQU9KLENBQ0csQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUNqQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFXLENBQUM7UUFDekQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtRUFBbUUsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFL0Qsb0VBQW9FO1FBQ3BFLFNBQVMsQ0FDUCxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLENBQUMsRUFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUNILENBQUM7UUFDRixTQUFTLENBQ1AsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLEVBQ2hFOzs7RUFHSixDQUNHLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUNqQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FDeEIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFXLENBQUM7UUFDekQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgbWtkaXJTeW5jLFxuICBta2R0ZW1wU3luYyxcbiAgcmVhbHBhdGhTeW5jLFxuICBybVN5bmMsXG4gIHdyaXRlRmlsZVN5bmMsXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IEJhc2VCdWlsZGVyLCB0eXBlIERpc2NvdmVyZWRFbnRyaWVzIH0gZnJvbSAnLi9iYXNlLWJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFuZGFsb25lQ29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8qKlxuICogTWluaW1hbCBzdWJjbGFzcyB0byBleHBvc2UgdGhlIHByb3RlY3RlZCBgZGlzY292ZXJFbnRyaWVzKClgIGZvciB0ZXN0aW5nLlxuICovXG5jbGFzcyBUZXN0QnVpbGRlciBleHRlbmRzIEJhc2VCdWlsZGVyIHtcbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gbm8tb3BcbiAgfVxuXG4gIC8vIEV4cG9zZSBmb3IgdGVzdHNcbiAgcHVibGljIGRpc2NvdmVyRW50cmllc1B1YmxpYyhcbiAgICBpbnB1dHM6IHN0cmluZ1tdLFxuICAgIG91dGRpcjogc3RyaW5nXG4gICk6IFByb21pc2U8RGlzY292ZXJlZEVudHJpZXM+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNjb3ZlckVudHJpZXMoaW5wdXRzLCBvdXRkaXIpO1xuICB9XG59XG5cbi8vIFJlc29sdmUgc3ltbGlua3MgaW4gdG1wZGlyIHRvIGF2b2lkIG1hY09TIC92YXIgLT4gL3ByaXZhdGUvdmFyIGlzc3Vlc1xuY29uc3QgcmVhbFRtcGRpciA9IHJlYWxwYXRoU3luYyh0bXBkaXIoKSk7XG5cbmZ1bmN0aW9uIHdyaXRlRmlsZShwYXRoOiBzdHJpbmcsIGNvbnRlbnRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgbWtkaXJTeW5jKGRpcm5hbWUocGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKHBhdGgsIGNvbnRlbnRzLCAndXRmLTgnKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQnVpbGRlcihcbiAgd29ya2luZ0Rpcjogc3RyaW5nLFxuICBleHRlcm5hbFBhY2thZ2VzOiBzdHJpbmdbXVxuKTogVGVzdEJ1aWxkZXIge1xuICBjb25zdCBjb25maWc6IFN0YW5kYWxvbmVDb25maWcgPSB7XG4gICAgYnVpbGRUYXJnZXQ6ICdzdGFuZGFsb25lJyxcbiAgICB3b3JraW5nRGlyLFxuICAgIGRpcnM6IFsnLiddLFxuICAgIGV4dGVybmFsUGFja2FnZXMsXG4gICAgc3RlcHNCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICdzdGVwcy5qcycpLFxuICAgIHdvcmtmbG93c0J1bmRsZVBhdGg6IGpvaW4od29ya2luZ0RpciwgJ3dvcmtmbG93cy5qcycpLFxuICAgIHdlYmhvb2tCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICd3ZWJob29rLmpzJyksXG4gIH07XG4gIHJldHVybiBuZXcgVGVzdEJ1aWxkZXIoY29uZmlnKTtcbn1cblxuZGVzY3JpYmUoJ3dhcm5BYm91dEV4dGVybmFsV29ya2Zsb3dQYWNrYWdlcycsICgpID0+IHtcbiAgbGV0IHRlc3RSb290OiBzdHJpbmc7XG4gIGxldCB3YXJuU3B5OiBSZXR1cm5UeXBlPHR5cGVvZiB2aS5zcHlPbj47XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgdGVzdFJvb3QgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICd3b3JrZmxvdy1leHRlcm5hbC1wa2ctd2FybmluZy0nKSk7XG4gICAgd2FyblNweSA9IHZpLnNweU9uKGNvbnNvbGUsICd3YXJuJykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHt9KTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICB3YXJuU3B5Lm1vY2tSZXN0b3JlKCk7XG4gICAgcm1TeW5jKHRlc3RSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGl0KCd3YXJucyB3aGVuIGFuIGV4dGVybmFsIHBhY2thZ2UgZGVwZW5kcyBvbiBAd29ya2Zsb3cvc2VyZGUnLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gQ3JlYXRlIGEgbW9jayBwcm9qZWN0IHdpdGggYSBub2RlX21vZHVsZXMgcGFja2FnZVxuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgLy8gQ3JlYXRlIGEgbWluaW1hbCBlbnRyeSBmaWxlIGZvciB0aGUgcHJvamVjdFxuICAgIHdyaXRlRmlsZShqb2luKHByb2plY3REaXIsICdpbmRleC50cycpLCAnZXhwb3J0IGNvbnN0IHggPSAxOycpO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBleHRlcm5hbCBwYWNrYWdlIHdpdGggQHdvcmtmbG93L3NlcmRlIGRlcGVuZGVuY3lcbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAnbXktc2VyZGUtcGtnJywgJ3BhY2thZ2UuanNvbicpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBuYW1lOiAnbXktc2VyZGUtcGtnJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgbWFpbjogJ2luZGV4LmpzJyxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgJ0B3b3JrZmxvdy9zZXJkZSc6ICdeMS4wLjAnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ25vZGVfbW9kdWxlcycsICdteS1zZXJkZS1wa2cnLCAnaW5kZXguanMnKSxcbiAgICAgICdleHBvcnQgY2xhc3MgRm9vIHt9J1xuICAgICk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcihwcm9qZWN0RGlyLCBbJ215LXNlcmRlLXBrZyddKTtcbiAgICBhd2FpdCBidWlsZGVyLmRpc2NvdmVyRW50cmllc1B1YmxpYyhcbiAgICAgIFtqb2luKHByb2plY3REaXIsICdpbmRleC50cycpXSxcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ291dCcpXG4gICAgKTtcblxuICAgIGV4cGVjdCh3YXJuU3B5KS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgY29uc3Qgd2Fybk1lc3NhZ2UgPSB3YXJuU3B5Lm1vY2suY2FsbHNbMF0/LlswXSBhcyBzdHJpbmc7XG4gICAgZXhwZWN0KHdhcm5NZXNzYWdlKS50b0NvbnRhaW4oJ215LXNlcmRlLXBrZycpO1xuICAgIGV4cGVjdCh3YXJuTWVzc2FnZSkudG9Db250YWluKCdzZXJ2ZXJFeHRlcm5hbFBhY2thZ2VzJyk7XG4gICAgZXhwZWN0KHdhcm5NZXNzYWdlKS50b0NvbnRhaW4oJ3NlcmlhbGl6YXRpb24gY2xhc3NlcycpO1xuICB9KTtcblxuICBpdCgnd2FybnMgd2hlbiBhbiBleHRlcm5hbCBwYWNrYWdlIHNvdXJjZSBjb250YWlucyBzZXJkZSBzeW1ib2xzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICAvLyBQYWNrYWdlIHdpdGhvdXQgQHdvcmtmbG93L3NlcmRlIGRlcCBidXQgd2l0aCBTeW1ib2wuZm9yIHBhdHRlcm5zIGluIHNvdXJjZVxuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ25vZGVfbW9kdWxlcycsICdteS1zeW1ib2wtcGtnJywgJ3BhY2thZ2UuanNvbicpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBuYW1lOiAnbXktc3ltYm9sLXBrZycsXG4gICAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICAgIG1haW46ICdpbmRleC5qcycsXG4gICAgICB9KVxuICAgICk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXN5bWJvbC1wa2cnLCAnaW5kZXguanMnKSxcbiAgICAgIGBleHBvcnQgY2xhc3MgQmFyIHtcbiAgc3RhdGljIFtTeW1ib2wuZm9yKCd3b3JrZmxvdy1zZXJpYWxpemUnKV0oaW5zdGFuY2UpIHsgcmV0dXJuIHt9OyB9XG4gIHN0YXRpYyBbU3ltYm9sLmZvcignd29ya2Zsb3ctZGVzZXJpYWxpemUnKV0oZGF0YSkgeyByZXR1cm4gbmV3IEJhcigpOyB9XG59YFxuICAgICk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcihwcm9qZWN0RGlyLCBbJ215LXN5bWJvbC1wa2cnXSk7XG4gICAgYXdhaXQgYnVpbGRlci5kaXNjb3ZlckVudHJpZXNQdWJsaWMoXG4gICAgICBbam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKV0sXG4gICAgICBqb2luKHByb2plY3REaXIsICdvdXQnKVxuICAgICk7XG5cbiAgICBleHBlY3Qod2FyblNweSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgIGNvbnN0IHdhcm5NZXNzYWdlID0gd2FyblNweS5tb2NrLmNhbGxzWzBdPy5bMF0gYXMgc3RyaW5nO1xuICAgIGV4cGVjdCh3YXJuTWVzc2FnZSkudG9Db250YWluKCdteS1zeW1ib2wtcGtnJyk7XG4gICAgZXhwZWN0KHdhcm5NZXNzYWdlKS50b0NvbnRhaW4oJ3NlcmlhbGl6YXRpb24gY2xhc3NlcycpO1xuICB9KTtcblxuICBpdCgnd2FybnMgd2hlbiBhbiBleHRlcm5hbCBwYWNrYWdlIGNvbnRhaW5zIFwidXNlIHN0ZXBcIiBkaXJlY3RpdmVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAnbXktc3RlcC1wa2cnLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIG5hbWU6ICdteS1zdGVwLXBrZycsXG4gICAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICAgIG1haW46ICdpbmRleC5qcycsXG4gICAgICB9KVxuICAgICk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXN0ZXAtcGtnJywgJ2luZGV4LmpzJyksXG4gICAgICBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvV29yaygpIHtcbiAgXCJ1c2Ugc3RlcFwiO1xuICByZXR1cm4gNDI7XG59YFxuICAgICk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gY3JlYXRlQnVpbGRlcihwcm9qZWN0RGlyLCBbJ215LXN0ZXAtcGtnJ10pO1xuICAgIGF3YWl0IGJ1aWxkZXIuZGlzY292ZXJFbnRyaWVzUHVibGljKFxuICAgICAgW2pvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyldLFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnb3V0JylcbiAgICApO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBjb25zdCB3YXJuTWVzc2FnZSA9IHdhcm5TcHkubW9jay5jYWxsc1swXT8uWzBdIGFzIHN0cmluZztcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignbXktc3RlcC1wa2cnKTtcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignXCJ1c2Ugc3RlcFwiIGZ1bmN0aW9ucycpO1xuICB9KTtcblxuICBpdCgnd2FybnMgd2hlbiBhbiBleHRlcm5hbCBwYWNrYWdlIGNvbnRhaW5zIFwidXNlIHdvcmtmbG93XCIgZGlyZWN0aXZlcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0RGlyID0gam9pbih0ZXN0Um9vdCwgJ3Byb2plY3QnKTtcblxuICAgIHdyaXRlRmlsZShqb2luKHByb2plY3REaXIsICdpbmRleC50cycpLCAnZXhwb3J0IGNvbnN0IHggPSAxOycpO1xuXG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXdvcmtmbG93LXBrZycsICdwYWNrYWdlLmpzb24nKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgbmFtZTogJ215LXdvcmtmbG93LXBrZycsXG4gICAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICAgIG1haW46ICdpbmRleC5qcycsXG4gICAgICB9KVxuICAgICk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXdvcmtmbG93LXBrZycsICdpbmRleC5qcycpLFxuICAgICAgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5Kb2IoKSB7XG4gIFwidXNlIHdvcmtmbG93XCI7XG4gIHJldHVybiBcImRvbmVcIjtcbn1gXG4gICAgKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHByb2plY3REaXIsIFsnbXktd29ya2Zsb3ctcGtnJ10pO1xuICAgIGF3YWl0IGJ1aWxkZXIuZGlzY292ZXJFbnRyaWVzUHVibGljKFxuICAgICAgW2pvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyldLFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnb3V0JylcbiAgICApO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBjb25zdCB3YXJuTWVzc2FnZSA9IHdhcm5TcHkubW9jay5jYWxsc1swXT8uWzBdIGFzIHN0cmluZztcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignbXktd29ya2Zsb3ctcGtnJyk7XG4gICAgZXhwZWN0KHdhcm5NZXNzYWdlKS50b0NvbnRhaW4oJ1widXNlIHdvcmtmbG93XCIgZnVuY3Rpb25zJyk7XG4gIH0pO1xuXG4gIGl0KCdkb2VzIG5vdCB3YXJuIGZvciBwYWNrYWdlcyB3aXRob3V0IHdvcmtmbG93IHBhdHRlcm5zJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAncGxhaW4tcGtnJywgJ3BhY2thZ2UuanNvbicpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBuYW1lOiAncGxhaW4tcGtnJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgbWFpbjogJ2luZGV4LmpzJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAncGxhaW4tcGtnJywgJ2luZGV4LmpzJyksXG4gICAgICAnZXhwb3J0IGNvbnN0IGhlbGxvID0gXCJ3b3JsZFwiOydcbiAgICApO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIocHJvamVjdERpciwgWydwbGFpbi1wa2cnXSk7XG4gICAgYXdhaXQgYnVpbGRlci5kaXNjb3ZlckVudHJpZXNQdWJsaWMoXG4gICAgICBbam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKV0sXG4gICAgICBqb2luKHByb2plY3REaXIsICdvdXQnKVxuICAgICk7XG5cbiAgICBleHBlY3Qod2FyblNweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IHdhcm4gZm9yIHBzZXVkby1wYWNrYWdlcyAoc2VydmVyLW9ubHksIGNsaWVudC1vbmx5KScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0RGlyID0gam9pbih0ZXN0Um9vdCwgJ3Byb2plY3QnKTtcblxuICAgIHdyaXRlRmlsZShqb2luKHByb2plY3REaXIsICdpbmRleC50cycpLCAnZXhwb3J0IGNvbnN0IHggPSAxOycpO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIocHJvamVjdERpciwgWydzZXJ2ZXItb25seScsICdjbGllbnQtb25seSddKTtcbiAgICBhd2FpdCBidWlsZGVyLmRpc2NvdmVyRW50cmllc1B1YmxpYyhcbiAgICAgIFtqb2luKHByb2plY3REaXIsICdpbmRleC50cycpXSxcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ291dCcpXG4gICAgKTtcblxuICAgIGV4cGVjdCh3YXJuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3Qgd2FybiB3aGVuIGV4dGVybmFsUGFja2FnZXMgaXMgZW1wdHknLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdERpciA9IGpvaW4odGVzdFJvb3QsICdwcm9qZWN0Jyk7XG5cbiAgICB3cml0ZUZpbGUoam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKSwgJ2V4cG9ydCBjb25zdCB4ID0gMTsnKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHByb2plY3REaXIsIFtdKTtcbiAgICBhd2FpdCBidWlsZGVyLmRpc2NvdmVyRW50cmllc1B1YmxpYyhcbiAgICAgIFtqb2luKHByb2plY3REaXIsICdpbmRleC50cycpXSxcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ291dCcpXG4gICAgKTtcblxuICAgIGV4cGVjdCh3YXJuU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnd2FybnMgb25seSBvbmNlIHBlciBwYWNrYWdlIGFjcm9zcyBtdWx0aXBsZSBkaXNjb3ZlckVudHJpZXMgY2FsbHMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdERpciA9IGpvaW4odGVzdFJvb3QsICdwcm9qZWN0Jyk7XG5cbiAgICB3cml0ZUZpbGUoam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKSwgJ2V4cG9ydCBjb25zdCB4ID0gMTsnKTtcbiAgICB3cml0ZUZpbGUoam9pbihwcm9qZWN0RGlyLCAnb3RoZXIudHMnKSwgJ2V4cG9ydCBjb25zdCB5ID0gMjsnKTtcblxuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ25vZGVfbW9kdWxlcycsICdteS1zZXJkZS1wa2cnLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIG5hbWU6ICdteS1zZXJkZS1wa2cnLFxuICAgICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgICBtYWluOiAnaW5kZXguanMnLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IHsgJ0B3b3JrZmxvdy9zZXJkZSc6ICdeMS4wLjAnIH0sXG4gICAgICB9KVxuICAgICk7XG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ215LXNlcmRlLXBrZycsICdpbmRleC5qcycpLFxuICAgICAgJ2V4cG9ydCBjbGFzcyBGb28ge30nXG4gICAgKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHByb2plY3REaXIsIFsnbXktc2VyZGUtcGtnJ10pO1xuXG4gICAgLy8gQ2FsbCBkaXNjb3ZlckVudHJpZXMgdHdpY2Ugd2l0aCBkaWZmZXJlbnQgaW5wdXRzXG4gICAgYXdhaXQgYnVpbGRlci5kaXNjb3ZlckVudHJpZXNQdWJsaWMoXG4gICAgICBbam9pbihwcm9qZWN0RGlyLCAnaW5kZXgudHMnKV0sXG4gICAgICBqb2luKHByb2plY3REaXIsICdvdXQnKVxuICAgICk7XG4gICAgYXdhaXQgYnVpbGRlci5kaXNjb3ZlckVudHJpZXNQdWJsaWMoXG4gICAgICBbam9pbihwcm9qZWN0RGlyLCAnb3RoZXIudHMnKV0sXG4gICAgICBqb2luKHByb2plY3REaXIsICdvdXQyJylcbiAgICApO1xuXG4gICAgLy8gU2hvdWxkIG9ubHkgd2FybiBvbmNlXG4gICAgY29uc3Qgd2FybkNhbGxzID0gd2FyblNweS5tb2NrLmNhbGxzLmZpbHRlcigoY2FsbDogdW5rbm93bltdKSA9PlxuICAgICAgKGNhbGxbMF0gYXMgc3RyaW5nKS5pbmNsdWRlcygnbXktc2VyZGUtcGtnJylcbiAgICApO1xuICAgIGV4cGVjdCh3YXJuQ2FsbHMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgfSk7XG5cbiAgaXQoJ2xpc3RzIG11bHRpcGxlIGRldGVjdGVkIGlzc3VlcyBpbiB0aGUgd2FybmluZyBtZXNzYWdlJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAnbXVsdGktcGtnJywgJ3BhY2thZ2UuanNvbicpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBuYW1lOiAnbXVsdGktcGtnJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgbWFpbjogJ2luZGV4LmpzJyxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAd29ya2Zsb3cvc2VyZGUnOiAnXjEuMC4wJyB9LFxuICAgICAgfSlcbiAgICApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4ocHJvamVjdERpciwgJ25vZGVfbW9kdWxlcycsICdtdWx0aS1wa2cnLCAnaW5kZXguanMnKSxcbiAgICAgIGBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZG9Xb3JrKCkge1xuICBcInVzZSBzdGVwXCI7XG4gIHJldHVybiA0Mjtcbn1cbmV4cG9ydCBjbGFzcyBGb28ge1xuICBzdGF0aWMgW1N5bWJvbC5mb3IoJ3dvcmtmbG93LXNlcmlhbGl6ZScpXShpbnN0YW5jZSkgeyByZXR1cm4ge307IH1cbiAgc3RhdGljIFtTeW1ib2wuZm9yKCd3b3JrZmxvdy1kZXNlcmlhbGl6ZScpXShkYXRhKSB7IHJldHVybiBuZXcgRm9vKCk7IH1cbn1gXG4gICAgKTtcblxuICAgIGNvbnN0IGJ1aWxkZXIgPSBjcmVhdGVCdWlsZGVyKHByb2plY3REaXIsIFsnbXVsdGktcGtnJ10pO1xuICAgIGF3YWl0IGJ1aWxkZXIuZGlzY292ZXJFbnRyaWVzUHVibGljKFxuICAgICAgW2pvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyldLFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnb3V0JylcbiAgICApO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBjb25zdCB3YXJuTWVzc2FnZSA9IHdhcm5TcHkubW9jay5jYWxsc1swXT8uWzBdIGFzIHN0cmluZztcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignXCJ1c2Ugc3RlcFwiIGZ1bmN0aW9ucycpO1xuICAgIGV4cGVjdCh3YXJuTWVzc2FnZSkudG9Db250YWluKCdzZXJpYWxpemF0aW9uIGNsYXNzZXMnKTtcbiAgfSk7XG5cbiAgaXQoJ3dhcm5zIHZpYSBlbnRyeS1maWxlIGRldGVjdGlvbiB3aGVuIHBhY2thZ2UuanNvbiBoYXMgbm8gc2VyZGUgZGVwJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3REaXIgPSBqb2luKHRlc3RSb290LCAncHJvamVjdCcpO1xuXG4gICAgd3JpdGVGaWxlKGpvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyksICdleHBvcnQgY29uc3QgeCA9IDE7Jyk7XG5cbiAgICAvLyBQYWNrYWdlIHdpdGhvdXQgQHdvcmtmbG93L3NlcmRlIGluIGRlcHMsIGJ1dCBlbnRyeSBoYXMgXCJ1c2Ugc3RlcFwiXG4gICAgd3JpdGVGaWxlKFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnbm9kZV9tb2R1bGVzJywgJ25vLXNlcmRlLWRlcC1wa2cnLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIG5hbWU6ICduby1zZXJkZS1kZXAtcGtnJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgbWFpbjogJ2luZGV4LmpzJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB3cml0ZUZpbGUoXG4gICAgICBqb2luKHByb2plY3REaXIsICdub2RlX21vZHVsZXMnLCAnbm8tc2VyZGUtZGVwLXBrZycsICdpbmRleC5qcycpLFxuICAgICAgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBkb1dvcmsoKSB7XG4gIFwidXNlIHN0ZXBcIjtcbiAgcmV0dXJuIDQyO1xufWBcbiAgICApO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IGNyZWF0ZUJ1aWxkZXIocHJvamVjdERpciwgWyduby1zZXJkZS1kZXAtcGtnJ10pO1xuICAgIGF3YWl0IGJ1aWxkZXIuZGlzY292ZXJFbnRyaWVzUHVibGljKFxuICAgICAgW2pvaW4ocHJvamVjdERpciwgJ2luZGV4LnRzJyldLFxuICAgICAgam9pbihwcm9qZWN0RGlyLCAnb3V0JylcbiAgICApO1xuXG4gICAgZXhwZWN0KHdhcm5TcHkpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBjb25zdCB3YXJuTWVzc2FnZSA9IHdhcm5TcHkubW9jay5jYWxsc1swXT8uWzBdIGFzIHN0cmluZztcbiAgICBleHBlY3Qod2Fybk1lc3NhZ2UpLnRvQ29udGFpbignbm8tc2VyZGUtZGVwLXBrZycpO1xuICAgIGV4cGVjdCh3YXJuTWVzc2FnZSkudG9Db250YWluKCdcInVzZSBzdGVwXCIgZnVuY3Rpb25zJyk7XG4gIH0pO1xufSk7XG4iXX0=