@workflow/builders 4.0.10 → 4.1.1

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 (59) hide show
  1. package/dist/apply-swc-transform.d.ts +7 -2
  2. package/dist/apply-swc-transform.d.ts.map +1 -1
  3. package/dist/apply-swc-transform.js +10 -4
  4. package/dist/base-builder-logging.test.d.ts +2 -0
  5. package/dist/base-builder-logging.test.d.ts.map +1 -0
  6. package/dist/base-builder-logging.test.js +99 -0
  7. package/dist/base-builder.d.ts +37 -14
  8. package/dist/base-builder.d.ts.map +1 -1
  9. package/dist/base-builder.js +299 -55
  10. package/dist/config-helpers.d.ts +2 -0
  11. package/dist/config-helpers.d.ts.map +1 -1
  12. package/dist/config-helpers.js +62 -1
  13. package/dist/config-helpers.test.d.ts +2 -0
  14. package/dist/config-helpers.test.d.ts.map +1 -0
  15. package/dist/config-helpers.test.js +17 -0
  16. package/dist/constants.d.ts +60 -4
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/constants.js +84 -19
  19. package/dist/constants.test.d.ts +2 -0
  20. package/dist/constants.test.d.ts.map +1 -0
  21. package/dist/constants.test.js +33 -0
  22. package/dist/fast-discovery.d.ts +14 -0
  23. package/dist/fast-discovery.d.ts.map +1 -0
  24. package/dist/fast-discovery.js +663 -0
  25. package/dist/fast-discovery.test.d.ts +2 -0
  26. package/dist/fast-discovery.test.d.ts.map +1 -0
  27. package/dist/fast-discovery.test.js +338 -0
  28. package/dist/get-input-files.test.js +34 -2
  29. package/dist/index.d.ts +3 -3
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +3 -3
  32. package/dist/module-specifier.d.ts +13 -0
  33. package/dist/module-specifier.d.ts.map +1 -1
  34. package/dist/module-specifier.js +20 -1
  35. package/dist/request-converter.d.ts +1 -1
  36. package/dist/request-converter.d.ts.map +1 -1
  37. package/dist/request-converter.js +1 -1
  38. package/dist/standalone.d.ts.map +1 -1
  39. package/dist/standalone.js +4 -4
  40. package/dist/step-source-registration.test.d.ts +2 -0
  41. package/dist/step-source-registration.test.d.ts.map +1 -0
  42. package/dist/step-source-registration.test.js +82 -0
  43. package/dist/swc-esbuild-plugin.d.ts +1 -0
  44. package/dist/swc-esbuild-plugin.d.ts.map +1 -1
  45. package/dist/swc-esbuild-plugin.js +5 -3
  46. package/dist/swc-esbuild-plugin.test.js +25 -3
  47. package/dist/transform-utils.d.ts.map +1 -1
  48. package/dist/transform-utils.js +45 -6
  49. package/dist/transform-utils.test.js +92 -1
  50. package/dist/types.d.ts +8 -2
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js +1 -1
  53. package/dist/vercel-build-output-api.d.ts.map +1 -1
  54. package/dist/vercel-build-output-api.js +8 -8
  55. package/dist/workflows-extractor.js +8 -3
  56. package/dist/workflows-extractor.test.d.ts +2 -0
  57. package/dist/workflows-extractor.test.d.ts.map +1 -0
  58. package/dist/workflows-extractor.test.js +70 -0
  59. package/package.json +4 -4
@@ -38,6 +38,19 @@ export interface ModuleSpecifierResult {
38
38
  * // => { moduleSpecifier: undefined }
39
39
  */
40
40
  export declare function resolveModuleSpecifier(filePath: string, projectRoot: string): ModuleSpecifierResult;
41
+ /**
42
+ * Strip the trailing "@<version>" suffix from a module specifier produced by
43
+ * `resolveModuleSpecifier`, leaving the bare `name` or `name/subpath` form.
44
+ *
45
+ * Use this when you want to compare or dedupe specifiers across versions
46
+ * (e.g. treating `@workflow/ai/agent@5.0.0-beta.4` and
47
+ * `@workflow/ai/agent@5.0.0-beta.5` as the same logical module).
48
+ *
49
+ * Colocated with `resolveModuleSpecifier` so the construction and parsing
50
+ * stay in sync — see the `${pkg.name}${subpath}@${pkg.version}` and
51
+ * `${pkg.name}@${pkg.version}` paths above.
52
+ */
53
+ export declare function stripPackageVersion(specifier: string): string;
41
54
  /**
42
55
  * Clear the package.json cache. Useful for testing or when package.json files may have changed.
43
56
  */
@@ -1 +1 @@
1
- {"version":3,"file":"module-specifier.d.ts","sourceRoot":"","sources":["../src/module-specifier.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAgQD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,qBAAqB,CA6BvB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AA0HD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,gBAAgB,CA6DlB"}
1
+ {"version":3,"file":"module-specifier.d.ts","sourceRoot":"","sources":["../src/module-specifier.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAgQD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,qBAAqB,CA6BvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAM7D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AA0HD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,gBAAgB,CA6DlB"}
@@ -264,6 +264,25 @@ export function resolveModuleSpecifier(filePath, projectRoot) {
264
264
  moduleSpecifier: specifier,
265
265
  };
266
266
  }
267
+ /**
268
+ * Strip the trailing "@<version>" suffix from a module specifier produced by
269
+ * `resolveModuleSpecifier`, leaving the bare `name` or `name/subpath` form.
270
+ *
271
+ * Use this when you want to compare or dedupe specifiers across versions
272
+ * (e.g. treating `@workflow/ai/agent@5.0.0-beta.4` and
273
+ * `@workflow/ai/agent@5.0.0-beta.5` as the same logical module).
274
+ *
275
+ * Colocated with `resolveModuleSpecifier` so the construction and parsing
276
+ * stay in sync — see the `${pkg.name}${subpath}@${pkg.version}` and
277
+ * `${pkg.name}@${pkg.version}` paths above.
278
+ */
279
+ export function stripPackageVersion(specifier) {
280
+ // The version is always the final segment after the last "@". Constrain
281
+ // matching to characters that can't appear in a package name or subpath
282
+ // (no "/", no nested "@") so scoped packages like `@workflow/ai@1.0.0`
283
+ // keep their leading "@workflow/ai".
284
+ return specifier.replace(/@[^/@]+$/, '');
285
+ }
267
286
  /**
268
287
  * Clear the package.json cache. Useful for testing or when package.json files may have changed.
269
288
  */
@@ -445,4 +464,4 @@ export function getImportPath(filePath, projectRoot) {
445
464
  isPackage: false,
446
465
  };
447
466
  }
448
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXNwZWNpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2R1bGUtc3BlY2lmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBMkJsRTs7O0dBR0c7QUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0FBRS9EOzs7R0FHRztBQUNILFNBQVMsZUFBZSxDQUFDLFFBQWdCO0lBQ3ZDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU1QixnRUFBZ0U7SUFDaEUsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO0lBRWpDLG1EQUFtRDtJQUNuRCxPQUFPLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixvQkFBb0I7UUFDcEIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLG1FQUFtRTtZQUNuRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNyQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDO2dCQUNILE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ25DLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ2xDLE1BQU0sTUFBTSxHQUFnQjt3QkFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO3dCQUNqQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87d0JBQ3ZCLEdBQUc7d0JBQ0gsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO3dCQUN2QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7d0JBQ2pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtxQkFDdEIsQ0FBQztvQkFDRixrRUFBa0U7b0JBQ2xFLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ2xDLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7d0JBQ3JDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzNDLENBQUM7b0JBQ0QsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUM7WUFDSCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLHFEQUFxRDtZQUN2RCxDQUFDO1FBQ0gsQ0FBQztRQUVELEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLG9CQUFvQixDQUFDLFFBQWdCLEVBQUUsR0FBZ0I7SUFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxHQUFHLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3BELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELHNEQUFzRDtJQUN0RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFDeEUsQ0FBQyxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRVQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1RCxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUNFLGNBQWM7WUFDZCxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsS0FBSyxZQUFZLEVBQ3BELENBQUM7WUFDRCw2REFBNkQ7WUFDN0Qsc0RBQXNEO1lBQ3RELE9BQU8sT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLG1CQUFtQixDQUFDLE1BQWU7SUFDMUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMvQixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQseUNBQXlDO0lBQ3pDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7WUFDMUIsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0MsSUFBSSxRQUFRO2dCQUFFLE9BQU8sUUFBUSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxvRUFBb0U7UUFDcEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEUsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBSSxNQUFrQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELHVDQUF1QztZQUN2QyxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLElBQUksTUFBTTtvQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsbUJBQW1CLENBQUMsSUFBWTtJQUN2QywyQkFBMkI7SUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxlQUFlLENBQUMsUUFBZ0I7SUFDdkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7QUFFeEQ7O0dBRUc7QUFDSCxTQUFTLHNCQUFzQixDQUFDLFdBQW1CO0lBQ2pELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUVsRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVuQywrQkFBK0I7WUFDL0IsS0FBSyxNQUFNLE9BQU8sSUFBSTtnQkFDcEIsY0FBYztnQkFDZCxpQkFBaUI7Z0JBQ2pCLGtCQUFrQjtnQkFDbEIsc0JBQXNCO2FBQ3ZCLEVBQUUsQ0FBQztnQkFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzt3QkFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDakIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxvQ0FBb0M7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO0lBQy9ELElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNULE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHlEQUF5RDtJQUN6RCxpRUFBaUU7SUFDakUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFaEMsNkVBQTZFO0lBQzdFLElBQUksTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxxRUFBcUU7SUFDckUsbUVBQW1FO0lBQ25FLHlEQUF5RDtJQUN6RCxNQUFNLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4RCxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLFFBQWdCLEVBQ2hCLFdBQW1CO0lBRW5CLDBEQUEwRDtJQUMxRCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEQsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxhQUFhLElBQUksa0JBQWtCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRTlELElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxvREFBb0Q7UUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDVCxvREFBb0Q7UUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsMkZBQTJGO0lBQzNGLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVwRCwwRUFBMEU7SUFDMUUsTUFBTSxTQUFTLEdBQUcsT0FBTztRQUN2QixDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO1FBQ3hDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWpDLE9BQU87UUFDTCxlQUFlLEVBQUUsU0FBUztLQUMzQixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUMzQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLG9CQUFvQixDQUFDLFFBQWdCLEVBQUUsV0FBbUI7SUFDakUsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXhELElBQUksWUFBb0IsQ0FBQztJQUN6QixJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9ELFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQ3pDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ2pDLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLGlGQUFpRjtRQUNqRixZQUFZLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxZQUFZLEdBQUcsS0FBSyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsYUFBYSxDQUFDLFlBQXFCO0lBQzFDLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsWUFBWSxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBdUMsQ0FBQyxDQUFDO0lBQ2xFLDBFQUEwRTtJQUMxRSw4QkFBOEI7SUFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE9BQU8sR0FBRyxJQUFLLFlBQXdDLENBQUM7QUFDMUQsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsMEJBQTBCLENBQUMsSUFBWTtJQUM5QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsb0JBQW9CLENBQUMsUUFBZ0IsRUFBRSxHQUFnQjtJQUM5RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXJELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FDbkQsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDNUIsQ0FBQztJQUVGLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksVUFBbUIsQ0FBQztRQUV4QixJQUNFLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxRQUFRO1lBQy9CLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQzNCLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUNsQixDQUFDO1lBQ0QsVUFBVSxHQUFJLEdBQUcsQ0FBQyxPQUFtQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUMzQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sZ0JBQWdCLEtBQUssZ0JBQWdCLENBQUM7SUFDL0MsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHO1FBQ3JCLEdBQUcsQ0FBQyxNQUFNO1FBQ1YsR0FBRyxDQUFDLElBQUk7UUFDUixVQUFVO1FBQ1YsV0FBVztRQUNYLFdBQVc7UUFDWCxVQUFVO1FBQ1YsV0FBVztRQUNYLFdBQVc7S0FDWjtTQUNFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBdUIsRUFBRSxDQUFDLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQztTQUN6RSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pELE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBdUIsRUFBRSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUVsRSxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBcUJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUMzQixRQUFnQixFQUNoQixXQUFtQjtJQUVuQiwwREFBMEQ7SUFDMUQsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sV0FBVyxHQUNmLENBQUMsYUFBYSxJQUFJLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU5RCxJQUFJLGFBQWEsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixNQUFNLHlCQUF5QixHQUFHLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FDdkUsR0FBRyxDQUFDLElBQUksQ0FDVCxDQUFDO1lBQ0YsTUFBTSxzQkFBc0IsR0FBRyxXQUFXLElBQUkseUJBQXlCLENBQUM7WUFFeEUseUVBQXlFO1lBQ3pFLHdFQUF3RTtZQUN4RSxtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzVCLE9BQU87b0JBQ0wsVUFBVSxFQUFFLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7b0JBQ3ZELFNBQVMsRUFBRSxLQUFLO2lCQUNqQixDQUFDO1lBQ0osQ0FBQztZQUVELG9FQUFvRTtZQUNwRSx1RUFBdUU7WUFDdkUsNkJBQTZCO1lBQzdCLHNFQUFzRTtZQUN0RSxpRUFBaUU7WUFDakUsMEJBQTBCO1lBQzFCLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU87b0JBQ0wsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUU7b0JBQ25DLFNBQVMsRUFBRSxJQUFJO2lCQUNoQixDQUFDO1lBQ0osQ0FBQztZQUVELGtFQUFrRTtZQUNsRSxzRUFBc0U7WUFDdEUsZ0VBQWdFO1lBQ2hFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsT0FBTztvQkFDTCxVQUFVLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztvQkFDdkQsU0FBUyxFQUFFLEtBQUs7aUJBQ2pCLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTztnQkFDTCxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ3BCLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxPQUFPO1FBQ0wsVUFBVSxFQUFFLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7UUFDdkQsU0FBUyxFQUFFLEtBQUs7S0FDakIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4sIHJlbGF0aXZlLCByZXNvbHZlLCBzZXAgfSBmcm9tICdub2RlOnBhdGgnO1xuXG4vKipcbiAqIFJlc3VsdCBvZiByZXNvbHZpbmcgYSBtb2R1bGUgc3BlY2lmaWVyIGZvciBhIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlU3BlY2lmaWVyUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgc3BlY2lmaWVyIHRvIHVzZSBmb3IgSUQgZ2VuZXJhdGlvbi5cbiAgICogLSBGb3IgcGFja2FnZXM6IFwie25hbWV9QHt2ZXJzaW9ufVwiIG9yIFwie25hbWV9L3tzdWJwYXRofUB7dmVyc2lvbn1cIlxuICAgKiAgIChlLmcuLCBcInBvaW50QDEuMC4wXCIsIFwiQG15b3JnL3NoYXJlZEAyLjAuMFwiLCBcIndvcmtmbG93L2ludGVybmFsL2J1aWx0aW5zQDQuMC4wXCIpXG4gICAqIC0gRm9yIGxvY2FsIGZpbGVzOiB1bmRlZmluZWQgKHBsdWdpbiB3aWxsIHVzZSBkZWZhdWx0IFwiLi9yZWxhdGl2ZS9wYXRoXCIgZm9ybWF0KVxuICAgKi9cbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGFyc2VkIHBhY2thZ2UuanNvbiBkYXRhIHdpdGggZGlyZWN0b3J5IGluZm9ybWF0aW9uLlxuICovXG5pbnRlcmZhY2UgUGFja2FnZUluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgZGlyOiBzdHJpbmc7XG4gIGV4cG9ydHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWFpbj86IHN0cmluZztcbiAgbW9kdWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENhY2hlIGZvciBwYWNrYWdlLmpzb24gbG9va3VwcyB0byBhdm9pZCByZXBlYXRlZCBmaWxlc3lzdGVtIHJlYWRzLlxuICogTWFwcyBkaXJlY3RvcnkgcGF0aCB0byBwYXJzZWQgcGFja2FnZS5qc29uIGluZm8gb3IgbnVsbCBpZiBub3QgZm91bmQuXG4gKi9cbmNvbnN0IHBhY2thZ2VKc29uQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgUGFja2FnZUluZm8gfCBudWxsPigpO1xuXG4vKipcbiAqIEZpbmQgYW5kIHJlYWQgdGhlIG5lYXJlc3QgcGFja2FnZS5qc29uIGZvciBhIGdpdmVuIGZpbGUgcGF0aC5cbiAqIFJlc3VsdHMgYXJlIGNhY2hlZCBmb3IgcGVyZm9ybWFuY2UuXG4gKi9cbmZ1bmN0aW9uIGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aDogc3RyaW5nKTogUGFja2FnZUluZm8gfCBudWxsIHtcbiAgbGV0IGRpciA9IGRpcm5hbWUoZmlsZVBhdGgpO1xuXG4gIC8vIFRyYWNrIGRpcmVjdG9yaWVzIHdlJ3ZlIHZpc2l0ZWQgc28gd2UgY2FuIGJhY2stZmlsbCB0aGUgY2FjaGVcbiAgY29uc3QgdmlzaXRlZERpcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gV2FsayB1cCB0aGUgZGlyZWN0b3J5IHRyZWUgdW50aWwgd2UgaGl0IHRoZSByb290XG4gIHdoaWxlIChkaXIgIT09IGRpcm5hbWUoZGlyKSkge1xuICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkID0gcGFja2FnZUpzb25DYWNoZS5nZXQoZGlyKTtcbiAgICBpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEJhY2stZmlsbCBjYWNoZSBmb3IgYWxsIHZpc2l0ZWQgZGlyZWN0b3JpZXMgd2l0aCB0aGUgc2FtZSByZXN1bHRcbiAgICAgIGZvciAoY29uc3QgdmlzaXRlZERpciBvZiB2aXNpdGVkRGlycykge1xuICAgICAgICBwYWNrYWdlSnNvbkNhY2hlLnNldCh2aXNpdGVkRGlyLCBjYWNoZWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9XG5cbiAgICB2aXNpdGVkRGlycy5wdXNoKGRpcik7XG5cbiAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKGRpciwgJ3BhY2thZ2UuanNvbicpO1xuICAgIGlmIChleGlzdHNTeW5jKHBhY2thZ2VKc29uUGF0aCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZVN5bmMocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKTtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShjb250ZW50KTtcbiAgICAgICAgaWYgKHBhcnNlZC5uYW1lICYmIHBhcnNlZC52ZXJzaW9uKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBQYWNrYWdlSW5mbyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHBhcnNlZC5uYW1lLFxuICAgICAgICAgICAgdmVyc2lvbjogcGFyc2VkLnZlcnNpb24sXG4gICAgICAgICAgICBkaXIsXG4gICAgICAgICAgICBleHBvcnRzOiBwYXJzZWQuZXhwb3J0cyxcbiAgICAgICAgICAgIG1haW46IHBhcnNlZC5tYWluLFxuICAgICAgICAgICAgbW9kdWxlOiBwYXJzZWQubW9kdWxlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgLy8gQ2FjaGUgdGhlIHJlc3VsdCBmb3IgdGhpcyBkaXJlY3RvcnkgYW5kIGFsbCB2aXNpdGVkIGRpcmVjdG9yaWVzXG4gICAgICAgICAgcGFja2FnZUpzb25DYWNoZS5zZXQoZGlyLCByZXN1bHQpO1xuICAgICAgICAgIGZvciAoY29uc3QgdmlzaXRlZERpciBvZiB2aXNpdGVkRGlycykge1xuICAgICAgICAgICAgcGFja2FnZUpzb25DYWNoZS5zZXQodmlzaXRlZERpciwgcmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIEludmFsaWQgSlNPTiBvciBtaXNzaW5nIGZpZWxkcywgY29udGludWUgc2VhcmNoaW5nXG4gICAgICB9XG4gICAgfVxuXG4gICAgZGlyID0gZGlybmFtZShkaXIpO1xuICB9XG5cbiAgLy8gTm8gcGFja2FnZS5qc29uIGZvdW5kIC0gY2FjaGUgbnVsbCBmb3IgYWxsIHZpc2l0ZWQgZGlyZWN0b3JpZXNcbiAgZm9yIChjb25zdCB2aXNpdGVkRGlyIG9mIHZpc2l0ZWREaXJzKSB7XG4gICAgcGFja2FnZUpzb25DYWNoZS5zZXQodmlzaXRlZERpciwgbnVsbCk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBleHBvcnQgc3VicGF0aCBmb3IgYSBmaWxlIHdpdGhpbiBhIHBhY2thZ2UuXG4gKiBMb29rcyB1cCB0aGUgcGFja2FnZS5qc29uIGV4cG9ydHMgZmllbGQgdG8gZmluZCB3aGljaCBzdWJwYXRoIG1hcHMgdG8gdGhlIGZpbGUuXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoIC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgZmlsZVxuICogQHBhcmFtIHBrZyAtIFBhY2thZ2UgaW5mbyBmcm9tIGZpbmRQYWNrYWdlSnNvblxuICogQHJldHVybnMgVGhlIHN1YnBhdGggKGUuZy4sIFwiL2ludGVybmFsL2J1aWx0aW5zXCIpIG9yIGVtcHR5IHN0cmluZyBmb3Igcm9vdCBleHBvcnRcbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUV4cG9ydFN1YnBhdGgoZmlsZVBhdGg6IHN0cmluZywgcGtnOiBQYWNrYWdlSW5mbyk6IHN0cmluZyB7XG4gIGlmICghcGtnLmV4cG9ydHMgfHwgdHlwZW9mIHBrZy5leHBvcnRzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIEdldCB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIHBhY2thZ2Ugcm9vdCB0byB0aGUgZmlsZVxuICBjb25zdCBub3JtYWxpemVkRmlsZVBhdGggPSBmaWxlUGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQa2dEaXIgPSBwa2cuZGlyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZEZpbGVQYXRoLnN0YXJ0c1dpdGgobm9ybWFsaXplZFBrZ0RpciArICcvJylcbiAgICA/ICcuLycgKyBub3JtYWxpemVkRmlsZVBhdGguc3Vic3RyaW5nKG5vcm1hbGl6ZWRQa2dEaXIubGVuZ3RoICsgMSlcbiAgICA6IG51bGw7XG5cbiAgaWYgKCFyZWxhdGl2ZVBhdGgpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBTZWFyY2ggdGhyb3VnaCBleHBvcnRzIHRvIGZpbmQgYSBtYXRjaGluZyBzdWJwYXRoXG4gIGZvciAoY29uc3QgW3N1YnBhdGgsIHRhcmdldF0gb2YgT2JqZWN0LmVudHJpZXMocGtnLmV4cG9ydHMpKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRUYXJnZXQgPSByZXNvbHZlRXhwb3J0VGFyZ2V0KHRhcmdldCk7XG4gICAgaWYgKFxuICAgICAgcmVzb2x2ZWRUYXJnZXQgJiZcbiAgICAgIG5vcm1hbGl6ZUV4cG9ydFBhdGgocmVzb2x2ZWRUYXJnZXQpID09PSByZWxhdGl2ZVBhdGhcbiAgICApIHtcbiAgICAgIC8vIEZvdW5kIGEgbWF0Y2ggLSByZXR1cm4gdGhlIHN1YnBhdGggd2l0aG91dCB0aGUgbGVhZGluZyBcIi5cIlxuICAgICAgLy8gZS5nLiwgXCIuL2ludGVybmFsL2J1aWx0aW5zXCIgLT4gXCIvaW50ZXJuYWwvYnVpbHRpbnNcIlxuICAgICAgcmV0dXJuIHN1YnBhdGggPT09ICcuJyA/ICcnIDogc3VicGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG4vKipcbiAqIFJlc29sdmUgYW4gZXhwb3J0IHRhcmdldCB0byBhIGZpbGUgcGF0aCwgaGFuZGxpbmcgY29uZGl0aW9uYWwgZXhwb3J0cyBhbmQgYXJyYXlzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlRXhwb3J0VGFyZ2V0KHRhcmdldDogdW5rbm93bik6IHN0cmluZyB8IG51bGwge1xuICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgLy8gSGFuZGxlIGFycmF5IGV4cG9ydHMgKGZhbGxiYWNrIGNoYWlucylcbiAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0YXJnZXQpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZUV4cG9ydFRhcmdldChpdGVtKTtcbiAgICAgIGlmIChyZXNvbHZlZCkgcmV0dXJuIHJlc29sdmVkO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldCA9PT0gJ29iamVjdCcpIHtcbiAgICAvLyBDb25kaXRpb25hbCBleHBvcnQgLSB0cnkgY29tbW9uIGNvbmRpdGlvbnMgaW4gb3JkZXIgb2YgcHJlZmVyZW5jZVxuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBbJ3dvcmtmbG93JywgJ2RlZmF1bHQnLCAncmVxdWlyZScsICdpbXBvcnQnLCAnbm9kZSddO1xuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbnMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gKHRhcmdldCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbY29uZGl0aW9uXTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIC8vIEhhbmRsZSBuZXN0ZWQgY29uZGl0aW9uYWxzIG9yIGFycmF5c1xuICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgbmVzdGVkID0gcmVzb2x2ZUV4cG9ydFRhcmdldCh2YWx1ZSk7XG4gICAgICAgIGlmIChuZXN0ZWQpIHJldHVybiBuZXN0ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGFuIGV4cG9ydCBwYXRoIGZvciBjb21wYXJpc29uLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVFeHBvcnRQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIEVuc3VyZSBpdCBzdGFydHMgd2l0aCAuL1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLi8nKSkge1xuICAgIHJldHVybiAnLi8nICsgcGF0aDtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGZpbGUgcGF0aCBpcyBpbnNpZGUgbm9kZV9tb2R1bGVzLlxuICovXG5mdW5jdGlvbiBpc0luTm9kZU1vZHVsZXMoZmlsZVBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGZpbGVQYXRoLnNwbGl0KHNlcCkuam9pbignLycpO1xuICByZXR1cm4gbm9ybWFsaXplZFBhdGguaW5jbHVkZXMoJy9ub2RlX21vZHVsZXMvJyk7XG59XG5cbi8qKlxuICogQ2FjaGUgZm9yIHByb2plY3QgZGVwZW5kZW5jaWVzIHRvIGF2b2lkIHJlcGVhdGVkIGZpbGVzeXN0ZW0gcmVhZHMuXG4gKiBNYXBzIHByb2plY3Qgcm9vdCB0byBzZXQgb2YgZGVwZW5kZW5jeSBwYWNrYWdlIG5hbWVzLlxuICovXG5jb25zdCBwcm9qZWN0RGVwc0NhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpO1xuXG4vKipcbiAqIEdldCBhbGwgZGVwZW5kZW5jaWVzIChpbmNsdWRpbmcgZGV2RGVwZW5kZW5jaWVzKSBmb3IgYSBwcm9qZWN0LlxuICovXG5mdW5jdGlvbiBnZXRQcm9qZWN0RGVwZW5kZW5jaWVzKHByb2plY3RSb290OiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG4gIGNvbnN0IGNhY2hlZCA9IHByb2plY3REZXBzQ2FjaGUuZ2V0KHByb2plY3RSb290KTtcbiAgaWYgKGNhY2hlZCkge1xuICAgIHJldHVybiBjYWNoZWQ7XG4gIH1cblxuICBjb25zdCBkZXBzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHBrZ1BhdGggPSBqb2luKHByb2plY3RSb290LCAncGFja2FnZS5qc29uJyk7XG5cbiAgaWYgKGV4aXN0c1N5bmMocGtnUGF0aCkpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udGVudCA9IHJlYWRGaWxlU3luYyhwa2dQYXRoLCAndXRmLTgnKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoY29udGVudCk7XG5cbiAgICAgIC8vIENvbGxlY3QgYWxsIGRlcGVuZGVuY3kgdHlwZXNcbiAgICAgIGZvciAoY29uc3QgZGVwVHlwZSBvZiBbXG4gICAgICAgICdkZXBlbmRlbmNpZXMnLFxuICAgICAgICAnZGV2RGVwZW5kZW5jaWVzJyxcbiAgICAgICAgJ3BlZXJEZXBlbmRlbmNpZXMnLFxuICAgICAgICAnb3B0aW9uYWxEZXBlbmRlbmNpZXMnLFxuICAgICAgXSkge1xuICAgICAgICBjb25zdCBkZXBPYmogPSBwYXJzZWRbZGVwVHlwZV07XG4gICAgICAgIGlmIChkZXBPYmogJiYgdHlwZW9mIGRlcE9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMoZGVwT2JqKSkge1xuICAgICAgICAgICAgZGVwcy5hZGQobmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBJbnZhbGlkIEpTT04gb3IgZmlsZSBub3QgcmVhZGFibGVcbiAgICB9XG4gIH1cblxuICBwcm9qZWN0RGVwc0NhY2hlLnNldChwcm9qZWN0Um9vdCwgZGVwcyk7XG4gIHJldHVybiBkZXBzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZmlsZSBwYXRoIGlzIGluc2lkZSBhIHdvcmtzcGFjZSBwYWNrYWdlIHRoYXQgaXMgYSBkZXBlbmRlbmN5IG9mIHRoZSBwcm9qZWN0LlxuICogVGhpcyBpcyBhIGhldXJpc3RpYyAtIHdlIGNoZWNrIGlmIHRoZSBmaWxlIGlzIGluIGEgZGlyZWN0b3J5IHdpdGggYSBwYWNrYWdlLmpzb25cbiAqIHRoYXQgaGFzIGEgXCJuYW1lXCIgZmllbGQsIGlzIE5PVCBpbiBub2RlX21vZHVsZXMsIGFuZCBpcyBsaXN0ZWQgYXMgYSBkZXBlbmRlbmN5XG4gKiBvZiB0aGUgcHJvamVjdC5cbiAqL1xuZnVuY3Rpb24gaXNXb3Jrc3BhY2VQYWNrYWdlKGZpbGVQYXRoOiBzdHJpbmcsIHByb2plY3RSb290OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzSW5Ob2RlTW9kdWxlcyhmaWxlUGF0aCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwa2cgPSBmaW5kUGFja2FnZUpzb24oZmlsZVBhdGgpO1xuICBpZiAoIXBrZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwYWNrYWdlLmpzb24gaXMgbm90IHRoZSByb290IHBhY2thZ2UuanNvblxuICAvLyBVc2UgcmVzb2x2ZSgpIHRvIG5vcm1hbGl6ZSBwYXRocyBmb3IgY3Jvc3MtcGxhdGZvcm0gY29tcGFyaXNvblxuICBjb25zdCByb290UGtnRGlyID0gcmVzb2x2ZShwcm9qZWN0Um9vdCk7XG4gIGNvbnN0IHBrZ0RpciA9IHJlc29sdmUocGtnLmRpcik7XG5cbiAgLy8gSWYgdGhlIHBhY2thZ2UgZGlyZWN0b3J5IGlzIHRoZSBwcm9qZWN0IHJvb3QsIGl0J3Mgbm90IGEgd29ya3NwYWNlIHBhY2thZ2VcbiAgaWYgKHBrZ0RpciA9PT0gcm9vdFBrZ0Rpcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEZvdW5kIGEgcGFja2FnZS5qc29uIHRoYXQncyBub3QgdGhlIHJvb3QuXG4gIC8vIE9ubHkgdHJlYXQgaXQgYXMgYSB3b3Jrc3BhY2UgcGFja2FnZSBpZiBpdCdzIGFjdHVhbGx5IGEgZGVwZW5kZW5jeVxuICAvLyBvZiB0aGUgY3VycmVudCBwcm9qZWN0LiBUaGlzIHByZXZlbnRzIHNpYmxpbmcgYXBwcyBpbiBhIG1vbm9yZXBvXG4gIC8vIGZyb20gYmVpbmcgaW5jb3JyZWN0bHkgdHJlYXRlZCBhcyBpbXBvcnRhYmxlIHBhY2thZ2VzLlxuICBjb25zdCBwcm9qZWN0RGVwcyA9IGdldFByb2plY3REZXBlbmRlbmNpZXMocHJvamVjdFJvb3QpO1xuICByZXR1cm4gcHJvamVjdERlcHMuaGFzKHBrZy5uYW1lKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBtb2R1bGUgc3BlY2lmaWVyIGZvciBhIGZpbGUuXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoIC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgZmlsZSBiZWluZyB0cmFuc2Zvcm1lZFxuICogQHBhcmFtIHByb2plY3RSb290IC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgcHJvamVjdCByb290ICh1c3VhbGx5IHByb2Nlc3MuY3dkKCkpXG4gKiBAcmV0dXJucyBUaGUgbW9kdWxlIHNwZWNpZmllciByZXN1bHRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRmlsZSBpbiBub2RlX21vZHVsZXMgKHJvb3QgZXhwb3J0KVxuICogcmVzb2x2ZU1vZHVsZVNwZWNpZmllcignL3Byb2plY3Qvbm9kZV9tb2R1bGVzL3BvaW50L2Rpc3QvaW5kZXguanMnLCAnL3Byb2plY3QnKVxuICogLy8gPT4geyBtb2R1bGVTcGVjaWZpZXI6ICdwb2ludEAxLjAuMCcgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGaWxlIGluIG5vZGVfbW9kdWxlcyAoc3VicGF0aCBleHBvcnQpXG4gKiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKCcvcHJvamVjdC9ub2RlX21vZHVsZXMvd29ya2Zsb3cvZGlzdC9pbnRlcm5hbC9idWlsdGlucy5qcycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IG1vZHVsZVNwZWNpZmllcjogJ3dvcmtmbG93L2ludGVybmFsL2J1aWx0aW5zQDQuMC4wJyB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZpbGUgaW4gd29ya3NwYWNlIHBhY2thZ2VcbiAqIHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoJy9wcm9qZWN0L3BhY2thZ2VzL3NoYXJlZC9zcmMvdXRpbHMudHMnLCAnL3Byb2plY3QnKVxuICogLy8gPT4geyBtb2R1bGVTcGVjaWZpZXI6ICdAbXlvcmcvc2hhcmVkQDAuMC4wJyB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExvY2FsIGFwcCBmaWxlXG4gKiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKCcvcHJvamVjdC9zcmMvd29ya2Zsb3dzL29yZGVyLnRzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgbW9kdWxlU3BlY2lmaWVyOiB1bmRlZmluZWQgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgcHJvamVjdFJvb3Q6IHN0cmluZ1xuKTogTW9kdWxlU3BlY2lmaWVyUmVzdWx0IHtcbiAgLy8gQ2hlY2sgaWYgZmlsZSBpcyBpbiBub2RlX21vZHVsZXMgb3IgYSB3b3Jrc3BhY2UgcGFja2FnZVxuICBjb25zdCBpbk5vZGVNb2R1bGVzID0gaXNJbk5vZGVNb2R1bGVzKGZpbGVQYXRoKTtcbiAgY29uc3QgaW5Xb3Jrc3BhY2UgPVxuICAgICFpbk5vZGVNb2R1bGVzICYmIGlzV29ya3NwYWNlUGFja2FnZShmaWxlUGF0aCwgcHJvamVjdFJvb3QpO1xuXG4gIGlmICghaW5Ob2RlTW9kdWxlcyAmJiAhaW5Xb3Jrc3BhY2UpIHtcbiAgICAvLyBMb2NhbCBhcHAgZmlsZSAtIHVzZSBkZWZhdWx0IHJlbGF0aXZlIHBhdGggZm9ybWF0XG4gICAgcmV0dXJuIHsgbW9kdWxlU3BlY2lmaWVyOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIC8vIEZpbmQgdGhlIHBhY2thZ2UuanNvbiBmb3IgdGhpcyBmaWxlXG4gIGNvbnN0IHBrZyA9IGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aCk7XG4gIGlmICghcGtnKSB7XG4gICAgLy8gQ291bGRuJ3QgZmluZCBwYWNrYWdlLmpzb24gLSBmYWxsIGJhY2sgdG8gZGVmYXVsdFxuICAgIHJldHVybiB7IG1vZHVsZVNwZWNpZmllcjogdW5kZWZpbmVkIH07XG4gIH1cblxuICAvLyBSZXNvbHZlIHRoZSBleHBvcnQgc3VicGF0aCAoZS5nLiwgXCIvaW50ZXJuYWwvYnVpbHRpbnNcIiBmb3IgXCJ3b3JrZmxvdy9pbnRlcm5hbC9idWlsdGluc1wiKVxuICBjb25zdCBzdWJwYXRoID0gcmVzb2x2ZUV4cG9ydFN1YnBhdGgoZmlsZVBhdGgsIHBrZyk7XG5cbiAgLy8gUmV0dXJuIHRoZSBtb2R1bGUgc3BlY2lmaWVyIGFzIFwibmFtZS9zdWJwYXRoQHZlcnNpb25cIiBvciBcIm5hbWVAdmVyc2lvblwiXG4gIGNvbnN0IHNwZWNpZmllciA9IHN1YnBhdGhcbiAgICA/IGAke3BrZy5uYW1lfSR7c3VicGF0aH1AJHtwa2cudmVyc2lvbn1gXG4gICAgOiBgJHtwa2cubmFtZX1AJHtwa2cudmVyc2lvbn1gO1xuXG4gIHJldHVybiB7XG4gICAgbW9kdWxlU3BlY2lmaWVyOiBzcGVjaWZpZXIsXG4gIH07XG59XG5cbi8qKlxuICogQ2xlYXIgdGhlIHBhY2thZ2UuanNvbiBjYWNoZS4gVXNlZnVsIGZvciB0ZXN0aW5nIG9yIHdoZW4gcGFja2FnZS5qc29uIGZpbGVzIG1heSBoYXZlIGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhck1vZHVsZVNwZWNpZmllckNhY2hlKCk6IHZvaWQge1xuICBwYWNrYWdlSnNvbkNhY2hlLmNsZWFyKCk7XG4gIHByb2plY3REZXBzQ2FjaGUuY2xlYXIoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgZmlsZSBwYXRoIHRvIGEgcmVsYXRpdmUgaW1wb3J0IHBhdGggZnJvbSBwcm9qZWN0IHJvb3QuXG4gKi9cbmZ1bmN0aW9uIHRvUmVsYXRpdmVJbXBvcnRQYXRoKGZpbGVQYXRoOiBzdHJpbmcsIHByb2plY3RSb290OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkUHJvamVjdFJvb3QgPSBwcm9qZWN0Um9vdC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRGaWxlUGF0aCA9IGZpbGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICBsZXQgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG4gIGlmIChub3JtYWxpemVkRmlsZVBhdGguc3RhcnRzV2l0aChub3JtYWxpemVkUHJvamVjdFJvb3QgKyAnLycpKSB7XG4gICAgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZEZpbGVQYXRoLnN1YnN0cmluZyhcbiAgICAgIG5vcm1hbGl6ZWRQcm9qZWN0Um9vdC5sZW5ndGggKyAxXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGaWxlIGlzIG91dHNpZGUgcHJvamVjdCByb290LCB1c2UgdGhlIGZ1bGwgcGF0aCBzZWdtZW50cyBhZnRlciBjb21tb24gYW5jZXN0b3JcbiAgICByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZShwcm9qZWN0Um9vdCwgZmlsZVBhdGgpLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgfVxuXG4gIC8vIEVuc3VyZSByZWxhdGl2ZSBwYXRocyBzdGFydCB3aXRoIC4vXG4gIGlmICghcmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgIHJlbGF0aXZlUGF0aCA9IGAuLyR7cmVsYXRpdmVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gcmVsYXRpdmVQYXRoO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSB3aGVuIHBhY2thZ2UgZXhwb3J0cyBpbmNsdWRlIGEgcm9vdCBlbnRyeSAoXCIuXCIpLlxuICogU3RyaW5nL2FycmF5L2NvbmRpdGlvbmFsIG9iamVjdCBleHBvcnRzIGFyZSBhbGwgY29uc2lkZXJlZCByb290IGV4cG9ydHMuXG4gKi9cbmZ1bmN0aW9uIGhhc1Jvb3RFeHBvcnQoZXhwb3J0c0ZpZWxkOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgZXhwb3J0c0ZpZWxkID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KGV4cG9ydHNGaWVsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZXhwb3J0c0ZpZWxkIHx8IHR5cGVvZiBleHBvcnRzRmllbGQgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGV4cG9ydHNGaWVsZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gIC8vIENvbmRpdGlvbmFsIGV4cG9ydHMgb2JqZWN0IChlLmcuIHsgXCJpbXBvcnRcIjogXCIuLi5cIiwgXCJkZWZhdWx0XCI6IFwiLi4uXCIgfSlcbiAgLy8gcmVwcmVzZW50cyB0aGUgcm9vdCBleHBvcnQuXG4gIGlmIChrZXlzLmxlbmd0aCA+IDAgJiYga2V5cy5ldmVyeSgoa2V5KSA9PiAha2V5LnN0YXJ0c1dpdGgoJy4nKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAnLicgaW4gKGV4cG9ydHNGaWVsZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgcGFja2FnZSB0YXJnZXQgcGF0aCB0byBhIGNvbXBhcmFibGUgcGFja2FnZS1yZWxhdGl2ZSBwYXRoLlxuICogUmV0dXJucyBudWxsIGZvciBpbnZhbGlkL3Vuc3VwcG9ydGVkIHBhdGhzLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBpZiAobm9ybWFsaXplZC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQuc3Vic3RyaW5nKDIpO1xuICB9XG4gIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiBub3JtYWxpemVkLnN1YnN0cmluZygxKTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgZmlsZVBhdGggaXMgdGhlIHBhY2thZ2Ugcm9vdCBlbnRyeXBvaW50LlxuICogVGhpcyBjaGVja3Mgcm9vdCBleHBvcnRzIGZpcnN0LCB0aGVuIG1haW4vbW9kdWxlL2luZGV4IGZhbGxiYWNrcyB3aGVuIGV4cG9ydHMgYXJlIGFic2VudC5cbiAqL1xuZnVuY3Rpb24gaXNSb290RW50cnlwb2ludEZpbGUoZmlsZVBhdGg6IHN0cmluZywgcGtnOiBQYWNrYWdlSW5mbyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkRmlsZVBhdGggPSBmaWxlUGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQa2dEaXIgPSBwa2cuZGlyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICBpZiAoIW5vcm1hbGl6ZWRGaWxlUGF0aC5zdGFydHNXaXRoKG5vcm1hbGl6ZWRQa2dEaXIgKyAnLycpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVsYXRpdmVGaWxlUGF0aCA9IG5vcm1hbGl6ZWRGaWxlUGF0aC5zdWJzdHJpbmcoXG4gICAgbm9ybWFsaXplZFBrZ0Rpci5sZW5ndGggKyAxXG4gICk7XG5cbiAgaWYgKHBrZy5leHBvcnRzKSB7XG4gICAgbGV0IHJvb3RUYXJnZXQ6IHVua25vd247XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgcGtnLmV4cG9ydHMgPT09ICdvYmplY3QnICYmXG4gICAgICAhQXJyYXkuaXNBcnJheShwa2cuZXhwb3J0cykgJiZcbiAgICAgICcuJyBpbiBwa2cuZXhwb3J0c1xuICAgICkge1xuICAgICAgcm9vdFRhcmdldCA9IChwa2cuZXhwb3J0cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbJy4nXTtcbiAgICB9IGVsc2UgaWYgKGhhc1Jvb3RFeHBvcnQocGtnLmV4cG9ydHMpKSB7XG4gICAgICByb290VGFyZ2V0ID0gcGtnLmV4cG9ydHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHZlZFRhcmdldCA9IHJlc29sdmVFeHBvcnRUYXJnZXQocm9vdFRhcmdldCk7XG4gICAgaWYgKCFyZXNvbHZlZFRhcmdldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWRUYXJnZXQgPSBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChyZXNvbHZlZFRhcmdldCk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRUYXJnZXQgPT09IHJlbGF0aXZlRmlsZVBhdGg7XG4gIH1cblxuICBjb25zdCByb290Q2FuZGlkYXRlcyA9IFtcbiAgICBwa2cubW9kdWxlLFxuICAgIHBrZy5tYWluLFxuICAgICdpbmRleC5qcycsXG4gICAgJ2luZGV4Lm1qcycsXG4gICAgJ2luZGV4LmNqcycsXG4gICAgJ2luZGV4LnRzJyxcbiAgICAnaW5kZXgubXRzJyxcbiAgICAnaW5kZXguY3RzJyxcbiAgXVxuICAgIC5maWx0ZXIoKGNhbmRpZGF0ZSk6IGNhbmRpZGF0ZSBpcyBzdHJpbmcgPT4gdHlwZW9mIGNhbmRpZGF0ZSA9PT0gJ3N0cmluZycpXG4gICAgLm1hcCgoY2FuZGlkYXRlKSA9PiBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChjYW5kaWRhdGUpKVxuICAgIC5maWx0ZXIoKGNhbmRpZGF0ZSk6IGNhbmRpZGF0ZSBpcyBzdHJpbmcgPT4gY2FuZGlkYXRlICE9PSBudWxsKTtcblxuICByZXR1cm4gcm9vdENhbmRpZGF0ZXMuaW5jbHVkZXMocmVsYXRpdmVGaWxlUGF0aCk7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHJlc29sdmluZyBhbiBpbXBvcnQgcGF0aCBmb3IgYSBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFBhdGhSZXN1bHQge1xuICAvKipcbiAgICogVGhlIGltcG9ydCBwYXRoIHRvIHVzZS5cbiAgICogLSBGb3Igd29ya3NwYWNlIHBhY2thZ2VzOiB0aGUgcGFja2FnZSBuYW1lIChlLmcuLCBcIkBteW9yZy9zaGFyZWRcIilcbiAgICogLSBGb3Igbm9kZV9tb2R1bGVzIHBhY2thZ2VzOiB0aGUgcGFja2FnZSBuYW1lXG4gICAqIC0gRm9yIGxvY2FsIGZpbGVzOiBhIHJlbGF0aXZlIHBhdGggKGUuZy4sIFwiLi9zcmMvd29ya2Zsb3dzL29yZGVyLnRzXCIpXG4gICAqL1xuICBpbXBvcnRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBmaWxlIGlzIGZyb20gYSBwYWNrYWdlICh3b3Jrc3BhY2Ugb3Igbm9kZV9tb2R1bGVzKS5cbiAgICogV2hlbiB0cnVlLCB0aGUgaW1wb3J0IHNob3VsZCBnbyB0aHJvdWdoIHBhY2thZ2UgcmVzb2x1dGlvbiB3aGljaCByZXNwZWN0cyBleHBvcnQgY29uZGl0aW9ucy5cbiAgICovXG4gIGlzUGFja2FnZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGltcG9ydCBwYXRoIHRvIHVzZSBmb3IgYSBmaWxlIGluIGEgYnVuZGxlJ3MgdmlydHVhbCBlbnRyeS5cbiAqXG4gKiBGb3Igd29ya3NwYWNlIHBhY2thZ2VzIGFuZCBub2RlX21vZHVsZXMgcGFja2FnZXMsIHJldHVybnMgdGhlIHBhY2thZ2UgbmFtZVxuICogc28gdGhhdCBidW5kbGVyIHJlc29sdXRpb24gd2lsbCByZXNwZWN0IHBhY2thZ2UuanNvbiBleHBvcnRzIGFuZCBjb25kaXRpb25zLlxuICpcbiAqIEZvciBsb2NhbCBhcHAgZmlsZXMsIHJldHVybnMgYSByZWxhdGl2ZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aCAtIEFic29sdXRlIHBhdGggdG8gdGhlIGZpbGVcbiAqIEBwYXJhbSBwcm9qZWN0Um9vdCAtIEFic29sdXRlIHBhdGggdG8gdGhlIHByb2plY3Qgcm9vdFxuICogQHJldHVybnMgVGhlIGltcG9ydCBwYXRoIGFuZCB3aGV0aGVyIGl0J3MgYSBwYWNrYWdlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdvcmtzcGFjZSBwYWNrYWdlXG4gKiBnZXRJbXBvcnRQYXRoKCcvcHJvamVjdC9wYWNrYWdlcy9zaGFyZWQvc3JjL2luZGV4LnRzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgaW1wb3J0UGF0aDogJ0BteW9yZy9zaGFyZWQnLCBpc1BhY2thZ2U6IHRydWUgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBMb2NhbCBhcHAgZmlsZVxuICogZ2V0SW1wb3J0UGF0aCgnL3Byb2plY3Qvc3JjL3dvcmtmbG93cy9vcmRlci50cycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IGltcG9ydFBhdGg6ICcuL3NyYy93b3JrZmxvd3Mvb3JkZXIudHMnLCBpc1BhY2thZ2U6IGZhbHNlIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEltcG9ydFBhdGgoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIHByb2plY3RSb290OiBzdHJpbmdcbik6IEltcG9ydFBhdGhSZXN1bHQge1xuICAvLyBDaGVjayBpZiBmaWxlIGlzIGluIG5vZGVfbW9kdWxlcyBvciBhIHdvcmtzcGFjZSBwYWNrYWdlXG4gIGNvbnN0IGluTm9kZU1vZHVsZXMgPSBpc0luTm9kZU1vZHVsZXMoZmlsZVBhdGgpO1xuICBjb25zdCBpbldvcmtzcGFjZSA9XG4gICAgIWluTm9kZU1vZHVsZXMgJiYgaXNXb3Jrc3BhY2VQYWNrYWdlKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCk7XG5cbiAgaWYgKGluTm9kZU1vZHVsZXMgfHwgaW5Xb3Jrc3BhY2UpIHtcbiAgICAvLyBGaW5kIHRoZSBwYWNrYWdlLmpzb24gZm9yIHRoaXMgZmlsZVxuICAgIGNvbnN0IHBrZyA9IGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aCk7XG4gICAgaWYgKHBrZykge1xuICAgICAgY29uc3QgaXNEaXJlY3RQcm9qZWN0RGVwZW5kZW5jeSA9IGdldFByb2plY3REZXBlbmRlbmNpZXMocHJvamVjdFJvb3QpLmhhcyhcbiAgICAgICAgcGtnLm5hbWVcbiAgICAgICk7XG4gICAgICBjb25zdCBjYW5Vc2VQYWNrYWdlU3BlY2lmaWVyID0gaW5Xb3Jrc3BhY2UgfHwgaXNEaXJlY3RQcm9qZWN0RGVwZW5kZW5jeTtcblxuICAgICAgLy8gRm9yIHRyYW5zaXRpdmUgbm9kZV9tb2R1bGVzIGRlcGVuZGVuY2llcyB1bmRlciBzdHJpY3QgcGFja2FnZSBtYW5hZ2Vyc1xuICAgICAgLy8gKGZvciBleGFtcGxlLCBwbnBtKSwgaW1wb3J0aW5nIGJ5IHBhY2thZ2UgbmFtZSBjYW4gZmFpbC4gVXNlIGEgZGlyZWN0XG4gICAgICAvLyBmaWxlIHBhdGggaW1wb3J0IGluIHRob3NlIGNhc2VzLlxuICAgICAgaWYgKCFjYW5Vc2VQYWNrYWdlU3BlY2lmaWVyKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICAgICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBQcmVmZXIgYSBwYWNrYWdlIHN1YnBhdGggaW1wb3J0IHdoZW4gdGhpcyBmaWxlIG1hcHMgdG8gYW4gZXhwb3J0LlxuICAgICAgLy8gVGhpcyBwcmVzZXJ2ZXMgdGhlIGV4YWN0IG1vZHVsZSBiZWluZyBidW5kbGVkIHdoaWxlIHN0aWxsIHJlc3BlY3RpbmdcbiAgICAgIC8vIHBhY2thZ2UgZXhwb3J0IGNvbmRpdGlvbnMuXG4gICAgICAvLyBOb3RlOiByZXNvbHZlRXhwb3J0U3VicGF0aCByZXR1cm5zIFwiXCIgZm9yIGJvdGggcm9vdCBcIi5cIiBtYXRjaGVzIGFuZFxuICAgICAgLy8gbm8gbWF0Y2g7IHJvb3QgZW50cnlwb2ludHMgYXJlIGludGVudGlvbmFsbHkgaGFuZGxlZCBiZWxvdyB2aWFcbiAgICAgIC8vIGlzUm9vdEVudHJ5cG9pbnRGaWxlKCkuXG4gICAgICBjb25zdCBzdWJwYXRoID0gcmVzb2x2ZUV4cG9ydFN1YnBhdGgoZmlsZVBhdGgsIHBrZyk7XG4gICAgICBpZiAoc3VicGF0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGltcG9ydFBhdGg6IGAke3BrZy5uYW1lfSR7c3VicGF0aH1gLFxuICAgICAgICAgIGlzUGFja2FnZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gT25seSBpbXBvcnQgcGFja2FnZSByb290IHdoZW4gdGhpcyBmaWxlIGlzIHRoZSByb290IGVudHJ5cG9pbnQuXG4gICAgICAvLyBGb3IgZGVlcC9pbnRlcm5hbCBmaWxlcywgZmFsbCBiYWNrIHRvIGRpcmVjdCByZWxhdGl2ZSBpbXBvcnRzIHNvIHdlXG4gICAgICAvLyBkb24ndCBhY2NpZGVudGFsbHkgaW1wb3J0IGEgbm9uLWV4aXN0ZW50IG9yIGRpZmZlcmVudCBtb2R1bGUuXG4gICAgICBpZiAoIWlzUm9vdEVudHJ5cG9pbnRGaWxlKGZpbGVQYXRoLCBwa2cpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICAgICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbXBvcnRQYXRoOiBwa2cubmFtZSxcbiAgICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBMb2NhbCBhcHAgZmlsZSAtIHVzZSByZWxhdGl2ZSBwYXRoXG4gIHJldHVybiB7XG4gICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICB9O1xufVxuIl19
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXNwZWNpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2R1bGUtc3BlY2lmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBMkJsRTs7O0dBR0c7QUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0FBRS9EOzs7R0FHRztBQUNILFNBQVMsZUFBZSxDQUFDLFFBQWdCO0lBQ3ZDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU1QixnRUFBZ0U7SUFDaEUsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO0lBRWpDLG1EQUFtRDtJQUNuRCxPQUFPLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixvQkFBb0I7UUFDcEIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLG1FQUFtRTtZQUNuRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNyQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFD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QUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUM1QixPQUFPO29CQUNMLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO29CQUN2RCxTQUFTLEVBQUUsS0FBSztpQkFDakIsQ0FBQztZQUNKLENBQUM7WUFFRCxvRUFBb0U7WUFDcEUsdUVBQXVFO1lBQ3ZFLDZCQUE2QjtZQUM3QixzRUFBc0U7WUFDdEUsaUVBQWlFO1lBQ2pFLDBCQUEwQjtZQUMxQixNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDcEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPO29CQUNMLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFO29CQUNuQyxTQUFTLEVBQUUsSUFBSTtpQkFDaEIsQ0FBQztZQUNKLENBQUM7WUFFRCxrRUFBa0U7WUFDbEUsc0VBQXNFO1lBQ3RFLGdFQUFnRTtZQUNoRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU87b0JBQ0wsVUFBVSxFQUFFLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7b0JBQ3ZELFNBQVMsRUFBRSxLQUFLO2lCQUNqQixDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU87Z0JBQ0wsVUFBVSxFQUFFLEdBQUcsQ0FBQyxJQUFJO2dCQUNwQixTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsT0FBTztRQUNMLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO1FBQ3ZELFNBQVMsRUFBRSxLQUFLO0tBQ2pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYywgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luLCByZWxhdGl2ZSwgcmVzb2x2ZSwgc2VwIH0gZnJvbSAnbm9kZTpwYXRoJztcblxuLyoqXG4gKiBSZXN1bHQgb2YgcmVzb2x2aW5nIGEgbW9kdWxlIHNwZWNpZmllciBmb3IgYSBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZVNwZWNpZmllclJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgbW9kdWxlIHNwZWNpZmllciB0byB1c2UgZm9yIElEIGdlbmVyYXRpb24uXG4gICAqIC0gRm9yIHBhY2thZ2VzOiBcIntuYW1lfUB7dmVyc2lvbn1cIiBvciBcIntuYW1lfS97c3VicGF0aH1Ae3ZlcnNpb259XCJcbiAgICogICAoZS5nLiwgXCJwb2ludEAxLjAuMFwiLCBcIkBteW9yZy9zaGFyZWRAMi4wLjBcIiwgXCJ3b3JrZmxvdy9pbnRlcm5hbC9idWlsdGluc0A0LjAuMFwiKVxuICAgKiAtIEZvciBsb2NhbCBmaWxlczogdW5kZWZpbmVkIChwbHVnaW4gd2lsbCB1c2UgZGVmYXVsdCBcIi4vcmVsYXRpdmUvcGF0aFwiIGZvcm1hdClcbiAgICovXG4gIG1vZHVsZVNwZWNpZmllcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcnNlZCBwYWNrYWdlLmpzb24gZGF0YSB3aXRoIGRpcmVjdG9yeSBpbmZvcm1hdGlvbi5cbiAqL1xuaW50ZXJmYWNlIFBhY2thZ2VJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGRpcjogc3RyaW5nO1xuICBleHBvcnRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIG1haW4/OiBzdHJpbmc7XG4gIG1vZHVsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDYWNoZSBmb3IgcGFja2FnZS5qc29uIGxvb2t1cHMgdG8gYXZvaWQgcmVwZWF0ZWQgZmlsZXN5c3RlbSByZWFkcy5cbiAqIE1hcHMgZGlyZWN0b3J5IHBhdGggdG8gcGFyc2VkIHBhY2thZ2UuanNvbiBpbmZvIG9yIG51bGwgaWYgbm90IGZvdW5kLlxuICovXG5jb25zdCBwYWNrYWdlSnNvbkNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFBhY2thZ2VJbmZvIHwgbnVsbD4oKTtcblxuLyoqXG4gKiBGaW5kIGFuZCByZWFkIHRoZSBuZWFyZXN0IHBhY2thZ2UuanNvbiBmb3IgYSBnaXZlbiBmaWxlIHBhdGguXG4gKiBSZXN1bHRzIGFyZSBjYWNoZWQgZm9yIHBlcmZvcm1hbmNlLlxuICovXG5mdW5jdGlvbiBmaW5kUGFja2FnZUpzb24oZmlsZVBhdGg6IHN0cmluZyk6IFBhY2thZ2VJbmZvIHwgbnVsbCB7XG4gIGxldCBkaXIgPSBkaXJuYW1lKGZpbGVQYXRoKTtcblxuICAvLyBUcmFjayBkaXJlY3RvcmllcyB3ZSd2ZSB2aXNpdGVkIHNvIHdlIGNhbiBiYWNrLWZpbGwgdGhlIGNhY2hlXG4gIGNvbnN0IHZpc2l0ZWREaXJzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIFdhbGsgdXAgdGhlIGRpcmVjdG9yeSB0cmVlIHVudGlsIHdlIGhpdCB0aGUgcm9vdFxuICB3aGlsZSAoZGlyICE9PSBkaXJuYW1lKGRpcikpIHtcbiAgICAvLyBDaGVjayBjYWNoZSBmaXJzdFxuICAgIGNvbnN0IGNhY2hlZCA9IHBhY2thZ2VKc29uQ2FjaGUuZ2V0KGRpcik7XG4gICAgaWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBCYWNrLWZpbGwgY2FjaGUgZm9yIGFsbCB2aXNpdGVkIGRpcmVjdG9yaWVzIHdpdGggdGhlIHNhbWUgcmVzdWx0XG4gICAgICBmb3IgKGNvbnN0IHZpc2l0ZWREaXIgb2YgdmlzaXRlZERpcnMpIHtcbiAgICAgICAgcGFja2FnZUpzb25DYWNoZS5zZXQodmlzaXRlZERpciwgY2FjaGVkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjYWNoZWQ7XG4gICAgfVxuXG4gICAgdmlzaXRlZERpcnMucHVzaChkaXIpO1xuXG4gICAgY29uc3QgcGFja2FnZUpzb25QYXRoID0gam9pbihkaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgICBpZiAoZXhpc3RzU3luYyhwYWNrYWdlSnNvblBhdGgpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gcmVhZEZpbGVTeW5jKHBhY2thZ2VKc29uUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoY29udGVudCk7XG4gICAgICAgIGlmIChwYXJzZWQubmFtZSAmJiBwYXJzZWQudmVyc2lvbikge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogUGFja2FnZUluZm8gPSB7XG4gICAgICAgICAgICBuYW1lOiBwYXJzZWQubmFtZSxcbiAgICAgICAgICAgIHZlcnNpb246IHBhcnNlZC52ZXJzaW9uLFxuICAgICAgICAgICAgZGlyLFxuICAgICAgICAgICAgZXhwb3J0czogcGFyc2VkLmV4cG9ydHMsXG4gICAgICAgICAgICBtYWluOiBwYXJzZWQubWFpbixcbiAgICAgICAgICAgIG1vZHVsZTogcGFyc2VkLm1vZHVsZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIENhY2hlIHRoZSByZXN1bHQgZm9yIHRoaXMgZGlyZWN0b3J5IGFuZCBhbGwgdmlzaXRlZCBkaXJlY3Rvcmllc1xuICAgICAgICAgIHBhY2thZ2VKc29uQ2FjaGUuc2V0KGRpciwgcmVzdWx0KTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHZpc2l0ZWREaXIgb2YgdmlzaXRlZERpcnMpIHtcbiAgICAgICAgICAgIHBhY2thZ2VKc29uQ2FjaGUuc2V0KHZpc2l0ZWREaXIsIHJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBJbnZhbGlkIEpTT04gb3IgbWlzc2luZyBmaWVsZHMsIGNvbnRpbnVlIHNlYXJjaGluZ1xuICAgICAgfVxuICAgIH1cblxuICAgIGRpciA9IGRpcm5hbWUoZGlyKTtcbiAgfVxuXG4gIC8vIE5vIHBhY2thZ2UuanNvbiBmb3VuZCAtIGNhY2hlIG51bGwgZm9yIGFsbCB2aXNpdGVkIGRpcmVjdG9yaWVzXG4gIGZvciAoY29uc3QgdmlzaXRlZERpciBvZiB2aXNpdGVkRGlycykge1xuICAgIHBhY2thZ2VKc29uQ2FjaGUuc2V0KHZpc2l0ZWREaXIsIG51bGwpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgZXhwb3J0IHN1YnBhdGggZm9yIGEgZmlsZSB3aXRoaW4gYSBwYWNrYWdlLlxuICogTG9va3MgdXAgdGhlIHBhY2thZ2UuanNvbiBleHBvcnRzIGZpZWxkIHRvIGZpbmQgd2hpY2ggc3VicGF0aCBtYXBzIHRvIHRoZSBmaWxlLlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aCAtIEFic29sdXRlIHBhdGggdG8gdGhlIGZpbGVcbiAqIEBwYXJhbSBwa2cgLSBQYWNrYWdlIGluZm8gZnJvbSBmaW5kUGFja2FnZUpzb25cbiAqIEByZXR1cm5zIFRoZSBzdWJwYXRoIChlLmcuLCBcIi9pbnRlcm5hbC9idWlsdGluc1wiKSBvciBlbXB0eSBzdHJpbmcgZm9yIHJvb3QgZXhwb3J0XG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVFeHBvcnRTdWJwYXRoKGZpbGVQYXRoOiBzdHJpbmcsIHBrZzogUGFja2FnZUluZm8pOiBzdHJpbmcge1xuICBpZiAoIXBrZy5leHBvcnRzIHx8IHR5cGVvZiBwa2cuZXhwb3J0cyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBHZXQgdGhlIHJlbGF0aXZlIHBhdGggZnJvbSBwYWNrYWdlIHJvb3QgdG8gdGhlIGZpbGVcbiAgY29uc3Qgbm9ybWFsaXplZEZpbGVQYXRoID0gZmlsZVBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBjb25zdCBub3JtYWxpemVkUGtnRGlyID0gcGtnLmRpci5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IHJlbGF0aXZlUGF0aCA9IG5vcm1hbGl6ZWRGaWxlUGF0aC5zdGFydHNXaXRoKG5vcm1hbGl6ZWRQa2dEaXIgKyAnLycpXG4gICAgPyAnLi8nICsgbm9ybWFsaXplZEZpbGVQYXRoLnN1YnN0cmluZyhub3JtYWxpemVkUGtnRGlyLmxlbmd0aCArIDEpXG4gICAgOiBudWxsO1xuXG4gIGlmICghcmVsYXRpdmVQYXRoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLy8gU2VhcmNoIHRocm91Z2ggZXhwb3J0cyB0byBmaW5kIGEgbWF0Y2hpbmcgc3VicGF0aFxuICBmb3IgKGNvbnN0IFtzdWJwYXRoLCB0YXJnZXRdIG9mIE9iamVjdC5lbnRyaWVzKHBrZy5leHBvcnRzKSkge1xuICAgIGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gcmVzb2x2ZUV4cG9ydFRhcmdldCh0YXJnZXQpO1xuICAgIGlmIChcbiAgICAgIHJlc29sdmVkVGFyZ2V0ICYmXG4gICAgICBub3JtYWxpemVFeHBvcnRQYXRoKHJlc29sdmVkVGFyZ2V0KSA9PT0gcmVsYXRpdmVQYXRoXG4gICAgKSB7XG4gICAgICAvLyBGb3VuZCBhIG1hdGNoIC0gcmV0dXJuIHRoZSBzdWJwYXRoIHdpdGhvdXQgdGhlIGxlYWRpbmcgXCIuXCJcbiAgICAgIC8vIGUuZy4sIFwiLi9pbnRlcm5hbC9idWlsdGluc1wiIC0+IFwiL2ludGVybmFsL2J1aWx0aW5zXCJcbiAgICAgIHJldHVybiBzdWJwYXRoID09PSAnLicgPyAnJyA6IHN1YnBhdGguc3Vic3RyaW5nKDEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGFuIGV4cG9ydCB0YXJnZXQgdG8gYSBmaWxlIHBhdGgsIGhhbmRsaW5nIGNvbmRpdGlvbmFsIGV4cG9ydHMgYW5kIGFycmF5cy5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUV4cG9ydFRhcmdldCh0YXJnZXQ6IHVua25vd24pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKHR5cGVvZiB0YXJnZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIC8vIEhhbmRsZSBhcnJheSBleHBvcnRzIChmYWxsYmFjayBjaGFpbnMpXG4gIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGFyZ2V0KSB7XG4gICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVFeHBvcnRUYXJnZXQoaXRlbSk7XG4gICAgICBpZiAocmVzb2x2ZWQpIHJldHVybiByZXNvbHZlZDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodGFyZ2V0ICYmIHR5cGVvZiB0YXJnZXQgPT09ICdvYmplY3QnKSB7XG4gICAgLy8gQ29uZGl0aW9uYWwgZXhwb3J0IC0gdHJ5IGNvbW1vbiBjb25kaXRpb25zIGluIG9yZGVyIG9mIHByZWZlcmVuY2VcbiAgICBjb25zdCBjb25kaXRpb25zID0gWyd3b3JrZmxvdycsICdkZWZhdWx0JywgJ3JlcXVpcmUnLCAnaW1wb3J0JywgJ25vZGUnXTtcbiAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25zKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9ICh0YXJnZXQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2NvbmRpdGlvbl07XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgICAvLyBIYW5kbGUgbmVzdGVkIGNvbmRpdGlvbmFscyBvciBhcnJheXNcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IG5lc3RlZCA9IHJlc29sdmVFeHBvcnRUYXJnZXQodmFsdWUpO1xuICAgICAgICBpZiAobmVzdGVkKSByZXR1cm4gbmVzdGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBhbiBleHBvcnQgcGF0aCBmb3IgY29tcGFyaXNvbi5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplRXhwb3J0UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBFbnN1cmUgaXQgc3RhcnRzIHdpdGggLi9cbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy4vJykpIHtcbiAgICByZXR1cm4gJy4vJyArIHBhdGg7XG4gIH1cbiAgcmV0dXJuIHBhdGg7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBmaWxlIHBhdGggaXMgaW5zaWRlIG5vZGVfbW9kdWxlcy5cbiAqL1xuZnVuY3Rpb24gaXNJbk5vZGVNb2R1bGVzKGZpbGVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBmaWxlUGF0aC5zcGxpdChzZXApLmpvaW4oJy8nKTtcbiAgcmV0dXJuIG5vcm1hbGl6ZWRQYXRoLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpO1xufVxuXG4vKipcbiAqIENhY2hlIGZvciBwcm9qZWN0IGRlcGVuZGVuY2llcyB0byBhdm9pZCByZXBlYXRlZCBmaWxlc3lzdGVtIHJlYWRzLlxuICogTWFwcyBwcm9qZWN0IHJvb3QgdG8gc2V0IG9mIGRlcGVuZGVuY3kgcGFja2FnZSBuYW1lcy5cbiAqL1xuY29uc3QgcHJvamVjdERlcHNDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4oKTtcblxuLyoqXG4gKiBHZXQgYWxsIGRlcGVuZGVuY2llcyAoaW5jbHVkaW5nIGRldkRlcGVuZGVuY2llcykgZm9yIGEgcHJvamVjdC5cbiAqL1xuZnVuY3Rpb24gZ2V0UHJvamVjdERlcGVuZGVuY2llcyhwcm9qZWN0Um9vdDogc3RyaW5nKTogU2V0PHN0cmluZz4ge1xuICBjb25zdCBjYWNoZWQgPSBwcm9qZWN0RGVwc0NhY2hlLmdldChwcm9qZWN0Um9vdCk7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkO1xuICB9XG5cbiAgY29uc3QgZGVwcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBwa2dQYXRoID0gam9pbihwcm9qZWN0Um9vdCwgJ3BhY2thZ2UuanNvbicpO1xuXG4gIGlmIChleGlzdHNTeW5jKHBrZ1BhdGgpKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZVN5bmMocGtnUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGNvbnRlbnQpO1xuXG4gICAgICAvLyBDb2xsZWN0IGFsbCBkZXBlbmRlbmN5IHR5cGVzXG4gICAgICBmb3IgKGNvbnN0IGRlcFR5cGUgb2YgW1xuICAgICAgICAnZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgJ2RldkRlcGVuZGVuY2llcycsXG4gICAgICAgICdwZWVyRGVwZW5kZW5jaWVzJyxcbiAgICAgICAgJ29wdGlvbmFsRGVwZW5kZW5jaWVzJyxcbiAgICAgIF0pIHtcbiAgICAgICAgY29uc3QgZGVwT2JqID0gcGFyc2VkW2RlcFR5cGVdO1xuICAgICAgICBpZiAoZGVwT2JqICYmIHR5cGVvZiBkZXBPYmogPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGRlcE9iaikpIHtcbiAgICAgICAgICAgIGRlcHMuYWRkKG5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gSW52YWxpZCBKU09OIG9yIGZpbGUgbm90IHJlYWRhYmxlXG4gICAgfVxuICB9XG5cbiAgcHJvamVjdERlcHNDYWNoZS5zZXQocHJvamVjdFJvb3QsIGRlcHMpO1xuICByZXR1cm4gZGVwcztcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGZpbGUgcGF0aCBpcyBpbnNpZGUgYSB3b3Jrc3BhY2UgcGFja2FnZSB0aGF0IGlzIGEgZGVwZW5kZW5jeSBvZiB0aGUgcHJvamVjdC5cbiAqIFRoaXMgaXMgYSBoZXVyaXN0aWMgLSB3ZSBjaGVjayBpZiB0aGUgZmlsZSBpcyBpbiBhIGRpcmVjdG9yeSB3aXRoIGEgcGFja2FnZS5qc29uXG4gKiB0aGF0IGhhcyBhIFwibmFtZVwiIGZpZWxkLCBpcyBOT1QgaW4gbm9kZV9tb2R1bGVzLCBhbmQgaXMgbGlzdGVkIGFzIGEgZGVwZW5kZW5jeVxuICogb2YgdGhlIHByb2plY3QuXG4gKi9cbmZ1bmN0aW9uIGlzV29ya3NwYWNlUGFja2FnZShmaWxlUGF0aDogc3RyaW5nLCBwcm9qZWN0Um9vdDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChpc0luTm9kZU1vZHVsZXMoZmlsZVBhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcGtnID0gZmluZFBhY2thZ2VKc29uKGZpbGVQYXRoKTtcbiAgaWYgKCFwa2cpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcGFja2FnZS5qc29uIGlzIG5vdCB0aGUgcm9vdCBwYWNrYWdlLmpzb25cbiAgLy8gVXNlIHJlc29sdmUoKSB0byBub3JtYWxpemUgcGF0aHMgZm9yIGNyb3NzLXBsYXRmb3JtIGNvbXBhcmlzb25cbiAgY29uc3Qgcm9vdFBrZ0RpciA9IHJlc29sdmUocHJvamVjdFJvb3QpO1xuICBjb25zdCBwa2dEaXIgPSByZXNvbHZlKHBrZy5kaXIpO1xuXG4gIC8vIElmIHRoZSBwYWNrYWdlIGRpcmVjdG9yeSBpcyB0aGUgcHJvamVjdCByb290LCBpdCdzIG5vdCBhIHdvcmtzcGFjZSBwYWNrYWdlXG4gIGlmIChwa2dEaXIgPT09IHJvb3RQa2dEaXIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBGb3VuZCBhIHBhY2thZ2UuanNvbiB0aGF0J3Mgbm90IHRoZSByb290LlxuICAvLyBPbmx5IHRyZWF0IGl0IGFzIGEgd29ya3NwYWNlIHBhY2thZ2UgaWYgaXQncyBhY3R1YWxseSBhIGRlcGVuZGVuY3lcbiAgLy8gb2YgdGhlIGN1cnJlbnQgcHJvamVjdC4gVGhpcyBwcmV2ZW50cyBzaWJsaW5nIGFwcHMgaW4gYSBtb25vcmVwb1xuICAvLyBmcm9tIGJlaW5nIGluY29ycmVjdGx5IHRyZWF0ZWQgYXMgaW1wb3J0YWJsZSBwYWNrYWdlcy5cbiAgY29uc3QgcHJvamVjdERlcHMgPSBnZXRQcm9qZWN0RGVwZW5kZW5jaWVzKHByb2plY3RSb290KTtcbiAgcmV0dXJuIHByb2plY3REZXBzLmhhcyhwa2cubmFtZSk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgbW9kdWxlIHNwZWNpZmllciBmb3IgYSBmaWxlLlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aCAtIEFic29sdXRlIHBhdGggdG8gdGhlIGZpbGUgYmVpbmcgdHJhbnNmb3JtZWRcbiAqIEBwYXJhbSBwcm9qZWN0Um9vdCAtIEFic29sdXRlIHBhdGggdG8gdGhlIHByb2plY3Qgcm9vdCAodXN1YWxseSBwcm9jZXNzLmN3ZCgpKVxuICogQHJldHVybnMgVGhlIG1vZHVsZSBzcGVjaWZpZXIgcmVzdWx0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZpbGUgaW4gbm9kZV9tb2R1bGVzIChyb290IGV4cG9ydClcbiAqIHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoJy9wcm9qZWN0L25vZGVfbW9kdWxlcy9wb2ludC9kaXN0L2luZGV4LmpzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgbW9kdWxlU3BlY2lmaWVyOiAncG9pbnRAMS4wLjAnIH1cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRmlsZSBpbiBub2RlX21vZHVsZXMgKHN1YnBhdGggZXhwb3J0KVxuICogcmVzb2x2ZU1vZHVsZVNwZWNpZmllcignL3Byb2plY3Qvbm9kZV9tb2R1bGVzL3dvcmtmbG93L2Rpc3QvaW50ZXJuYWwvYnVpbHRpbnMuanMnLCAnL3Byb2plY3QnKVxuICogLy8gPT4geyBtb2R1bGVTcGVjaWZpZXI6ICd3b3JrZmxvdy9pbnRlcm5hbC9idWlsdGluc0A0LjAuMCcgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGaWxlIGluIHdvcmtzcGFjZSBwYWNrYWdlXG4gKiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKCcvcHJvamVjdC9wYWNrYWdlcy9zaGFyZWQvc3JjL3V0aWxzLnRzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgbW9kdWxlU3BlY2lmaWVyOiAnQG15b3JnL3NoYXJlZEAwLjAuMCcgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBMb2NhbCBhcHAgZmlsZVxuICogcmVzb2x2ZU1vZHVsZVNwZWNpZmllcignL3Byb2plY3Qvc3JjL3dvcmtmbG93cy9vcmRlci50cycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IG1vZHVsZVNwZWNpZmllcjogdW5kZWZpbmVkIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIHByb2plY3RSb290OiBzdHJpbmdcbik6IE1vZHVsZVNwZWNpZmllclJlc3VsdCB7XG4gIC8vIENoZWNrIGlmIGZpbGUgaXMgaW4gbm9kZV9tb2R1bGVzIG9yIGEgd29ya3NwYWNlIHBhY2thZ2VcbiAgY29uc3QgaW5Ob2RlTW9kdWxlcyA9IGlzSW5Ob2RlTW9kdWxlcyhmaWxlUGF0aCk7XG4gIGNvbnN0IGluV29ya3NwYWNlID1cbiAgICAhaW5Ob2RlTW9kdWxlcyAmJiBpc1dvcmtzcGFjZVBhY2thZ2UoZmlsZVBhdGgsIHByb2plY3RSb290KTtcblxuICBpZiAoIWluTm9kZU1vZHVsZXMgJiYgIWluV29ya3NwYWNlKSB7XG4gICAgLy8gTG9jYWwgYXBwIGZpbGUgLSB1c2UgZGVmYXVsdCByZWxhdGl2ZSBwYXRoIGZvcm1hdFxuICAgIHJldHVybiB7IG1vZHVsZVNwZWNpZmllcjogdW5kZWZpbmVkIH07XG4gIH1cblxuICAvLyBGaW5kIHRoZSBwYWNrYWdlLmpzb24gZm9yIHRoaXMgZmlsZVxuICBjb25zdCBwa2cgPSBmaW5kUGFja2FnZUpzb24oZmlsZVBhdGgpO1xuICBpZiAoIXBrZykge1xuICAgIC8vIENvdWxkbid0IGZpbmQgcGFja2FnZS5qc29uIC0gZmFsbCBiYWNrIHRvIGRlZmF1bHRcbiAgICByZXR1cm4geyBtb2R1bGVTcGVjaWZpZXI6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgLy8gUmVzb2x2ZSB0aGUgZXhwb3J0IHN1YnBhdGggKGUuZy4sIFwiL2ludGVybmFsL2J1aWx0aW5zXCIgZm9yIFwid29ya2Zsb3cvaW50ZXJuYWwvYnVpbHRpbnNcIilcbiAgY29uc3Qgc3VicGF0aCA9IHJlc29sdmVFeHBvcnRTdWJwYXRoKGZpbGVQYXRoLCBwa2cpO1xuXG4gIC8vIFJldHVybiB0aGUgbW9kdWxlIHNwZWNpZmllciBhcyBcIm5hbWUvc3VicGF0aEB2ZXJzaW9uXCIgb3IgXCJuYW1lQHZlcnNpb25cIlxuICBjb25zdCBzcGVjaWZpZXIgPSBzdWJwYXRoXG4gICAgPyBgJHtwa2cubmFtZX0ke3N1YnBhdGh9QCR7cGtnLnZlcnNpb259YFxuICAgIDogYCR7cGtnLm5hbWV9QCR7cGtnLnZlcnNpb259YDtcblxuICByZXR1cm4ge1xuICAgIG1vZHVsZVNwZWNpZmllcjogc3BlY2lmaWVyLFxuICB9O1xufVxuXG4vKipcbiAqIFN0cmlwIHRoZSB0cmFpbGluZyBcIkA8dmVyc2lvbj5cIiBzdWZmaXggZnJvbSBhIG1vZHVsZSBzcGVjaWZpZXIgcHJvZHVjZWQgYnlcbiAqIGByZXNvbHZlTW9kdWxlU3BlY2lmaWVyYCwgbGVhdmluZyB0aGUgYmFyZSBgbmFtZWAgb3IgYG5hbWUvc3VicGF0aGAgZm9ybS5cbiAqXG4gKiBVc2UgdGhpcyB3aGVuIHlvdSB3YW50IHRvIGNvbXBhcmUgb3IgZGVkdXBlIHNwZWNpZmllcnMgYWNyb3NzIHZlcnNpb25zXG4gKiAoZS5nLiB0cmVhdGluZyBgQHdvcmtmbG93L2FpL2FnZW50QDUuMC4wLWJldGEuNGAgYW5kXG4gKiBgQHdvcmtmbG93L2FpL2FnZW50QDUuMC4wLWJldGEuNWAgYXMgdGhlIHNhbWUgbG9naWNhbCBtb2R1bGUpLlxuICpcbiAqIENvbG9jYXRlZCB3aXRoIGByZXNvbHZlTW9kdWxlU3BlY2lmaWVyYCBzbyB0aGUgY29uc3RydWN0aW9uIGFuZCBwYXJzaW5nXG4gKiBzdGF5IGluIHN5bmMg4oCUIHNlZSB0aGUgYCR7cGtnLm5hbWV9JHtzdWJwYXRofUAke3BrZy52ZXJzaW9ufWAgYW5kXG4gKiBgJHtwa2cubmFtZX1AJHtwa2cudmVyc2lvbn1gIHBhdGhzIGFib3ZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBQYWNrYWdlVmVyc2lvbihzcGVjaWZpZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIFRoZSB2ZXJzaW9uIGlzIGFsd2F5cyB0aGUgZmluYWwgc2VnbWVudCBhZnRlciB0aGUgbGFzdCBcIkBcIi4gQ29uc3RyYWluXG4gIC8vIG1hdGNoaW5nIHRvIGNoYXJhY3RlcnMgdGhhdCBjYW4ndCBhcHBlYXIgaW4gYSBwYWNrYWdlIG5hbWUgb3Igc3VicGF0aFxuICAvLyAobm8gXCIvXCIsIG5vIG5lc3RlZCBcIkBcIikgc28gc2NvcGVkIHBhY2thZ2VzIGxpa2UgYEB3b3JrZmxvdy9haUAxLjAuMGBcbiAgLy8ga2VlcCB0aGVpciBsZWFkaW5nIFwiQHdvcmtmbG93L2FpXCIuXG4gIHJldHVybiBzcGVjaWZpZXIucmVwbGFjZSgvQFteL0BdKyQvLCAnJyk7XG59XG5cbi8qKlxuICogQ2xlYXIgdGhlIHBhY2thZ2UuanNvbiBjYWNoZS4gVXNlZnVsIGZvciB0ZXN0aW5nIG9yIHdoZW4gcGFja2FnZS5qc29uIGZpbGVzIG1heSBoYXZlIGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhck1vZHVsZVNwZWNpZmllckNhY2hlKCk6IHZvaWQge1xuICBwYWNrYWdlSnNvbkNhY2hlLmNsZWFyKCk7XG4gIHByb2plY3REZXBzQ2FjaGUuY2xlYXIoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgZmlsZSBwYXRoIHRvIGEgcmVsYXRpdmUgaW1wb3J0IHBhdGggZnJvbSBwcm9qZWN0IHJvb3QuXG4gKi9cbmZ1bmN0aW9uIHRvUmVsYXRpdmVJbXBvcnRQYXRoKGZpbGVQYXRoOiBzdHJpbmcsIHByb2plY3RSb290OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkUHJvamVjdFJvb3QgPSBwcm9qZWN0Um9vdC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRGaWxlUGF0aCA9IGZpbGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICBsZXQgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG4gIGlmIChub3JtYWxpemVkRmlsZVBhdGguc3RhcnRzV2l0aChub3JtYWxpemVkUHJvamVjdFJvb3QgKyAnLycpKSB7XG4gICAgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZEZpbGVQYXRoLnN1YnN0cmluZyhcbiAgICAgIG5vcm1hbGl6ZWRQcm9qZWN0Um9vdC5sZW5ndGggKyAxXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGaWxlIGlzIG91dHNpZGUgcHJvamVjdCByb290LCB1c2UgdGhlIGZ1bGwgcGF0aCBzZWdtZW50cyBhZnRlciBjb21tb24gYW5jZXN0b3JcbiAgICByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZShwcm9qZWN0Um9vdCwgZmlsZVBhdGgpLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgfVxuXG4gIC8vIEVuc3VyZSByZWxhdGl2ZSBwYXRocyBzdGFydCB3aXRoIC4vXG4gIGlmICghcmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgIHJlbGF0aXZlUGF0aCA9IGAuLyR7cmVsYXRpdmVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gcmVsYXRpdmVQYXRoO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSB3aGVuIHBhY2thZ2UgZXhwb3J0cyBpbmNsdWRlIGEgcm9vdCBlbnRyeSAoXCIuXCIpLlxuICogU3RyaW5nL2FycmF5L2NvbmRpdGlvbmFsIG9iamVjdCBleHBvcnRzIGFyZSBhbGwgY29uc2lkZXJlZCByb290IGV4cG9ydHMuXG4gKi9cbmZ1bmN0aW9uIGhhc1Jvb3RFeHBvcnQoZXhwb3J0c0ZpZWxkOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgZXhwb3J0c0ZpZWxkID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KGV4cG9ydHNGaWVsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZXhwb3J0c0ZpZWxkIHx8IHR5cGVvZiBleHBvcnRzRmllbGQgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGV4cG9ydHNGaWVsZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gIC8vIENvbmRpdGlvbmFsIGV4cG9ydHMgb2JqZWN0IChlLmcuIHsgXCJpbXBvcnRcIjogXCIuLi5cIiwgXCJkZWZhdWx0XCI6IFwiLi4uXCIgfSlcbiAgLy8gcmVwcmVzZW50cyB0aGUgcm9vdCBleHBvcnQuXG4gIGlmIChrZXlzLmxlbmd0aCA+IDAgJiYga2V5cy5ldmVyeSgoa2V5KSA9PiAha2V5LnN0YXJ0c1dpdGgoJy4nKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAnLicgaW4gKGV4cG9ydHNGaWVsZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgcGFja2FnZSB0YXJnZXQgcGF0aCB0byBhIGNvbXBhcmFibGUgcGFja2FnZS1yZWxhdGl2ZSBwYXRoLlxuICogUmV0dXJucyBudWxsIGZvciBpbnZhbGlkL3Vuc3VwcG9ydGVkIHBhdGhzLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBpZiAobm9ybWFsaXplZC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQuc3Vic3RyaW5nKDIpO1xuICB9XG4gIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiBub3JtYWxpemVkLnN1YnN0cmluZygxKTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgZmlsZVBhdGggaXMgdGhlIHBhY2thZ2Ugcm9vdCBlbnRyeXBvaW50LlxuICogVGhpcyBjaGVja3Mgcm9vdCBleHBvcnRzIGZpcnN0LCB0aGVuIG1haW4vbW9kdWxlL2luZGV4IGZhbGxiYWNrcyB3aGVuIGV4cG9ydHMgYXJlIGFic2VudC5cbiAqL1xuZnVuY3Rpb24gaXNSb290RW50cnlwb2ludEZpbGUoZmlsZVBhdGg6IHN0cmluZywgcGtnOiBQYWNrYWdlSW5mbyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkRmlsZVBhdGggPSBmaWxlUGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQa2dEaXIgPSBwa2cuZGlyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICBpZiAoIW5vcm1hbGl6ZWRGaWxlUGF0aC5zdGFydHNXaXRoKG5vcm1hbGl6ZWRQa2dEaXIgKyAnLycpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVsYXRpdmVGaWxlUGF0aCA9IG5vcm1hbGl6ZWRGaWxlUGF0aC5zdWJzdHJpbmcoXG4gICAgbm9ybWFsaXplZFBrZ0Rpci5sZW5ndGggKyAxXG4gICk7XG5cbiAgaWYgKHBrZy5leHBvcnRzKSB7XG4gICAgbGV0IHJvb3RUYXJnZXQ6IHVua25vd247XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgcGtnLmV4cG9ydHMgPT09ICdvYmplY3QnICYmXG4gICAgICAhQXJyYXkuaXNBcnJheShwa2cuZXhwb3J0cykgJiZcbiAgICAgICcuJyBpbiBwa2cuZXhwb3J0c1xuICAgICkge1xuICAgICAgcm9vdFRhcmdldCA9IChwa2cuZXhwb3J0cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbJy4nXTtcbiAgICB9IGVsc2UgaWYgKGhhc1Jvb3RFeHBvcnQocGtnLmV4cG9ydHMpKSB7XG4gICAgICByb290VGFyZ2V0ID0gcGtnLmV4cG9ydHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHZlZFRhcmdldCA9IHJlc29sdmVFeHBvcnRUYXJnZXQocm9vdFRhcmdldCk7XG4gICAgaWYgKCFyZXNvbHZlZFRhcmdldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWRUYXJnZXQgPSBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChyZXNvbHZlZFRhcmdldCk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRUYXJnZXQgPT09IHJlbGF0aXZlRmlsZVBhdGg7XG4gIH1cblxuICBjb25zdCByb290Q2FuZGlkYXRlcyA9IFtcbiAgICBwa2cubW9kdWxlLFxuICAgIHBrZy5tYWluLFxuICAgICdpbmRleC5qcycsXG4gICAgJ2luZGV4Lm1qcycsXG4gICAgJ2luZGV4LmNqcycsXG4gICAgJ2luZGV4LnRzJyxcbiAgICAnaW5kZXgubXRzJyxcbiAgICAnaW5kZXguY3RzJyxcbiAgXVxuICAgIC5maWx0ZXIoKGNhbmRpZGF0ZSk6IGNhbmRpZGF0ZSBpcyBzdHJpbmcgPT4gdHlwZW9mIGNhbmRpZGF0ZSA9PT0gJ3N0cmluZycpXG4gICAgLm1hcCgoY2FuZGlkYXRlKSA9PiBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChjYW5kaWRhdGUpKVxuICAgIC5maWx0ZXIoKGNhbmRpZGF0ZSk6IGNhbmRpZGF0ZSBpcyBzdHJpbmcgPT4gY2FuZGlkYXRlICE9PSBudWxsKTtcblxuICByZXR1cm4gcm9vdENhbmRpZGF0ZXMuaW5jbHVkZXMocmVsYXRpdmVGaWxlUGF0aCk7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHJlc29sdmluZyBhbiBpbXBvcnQgcGF0aCBmb3IgYSBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFBhdGhSZXN1bHQge1xuICAvKipcbiAgICogVGhlIGltcG9ydCBwYXRoIHRvIHVzZS5cbiAgICogLSBGb3Igd29ya3NwYWNlIHBhY2thZ2VzOiB0aGUgcGFja2FnZSBuYW1lIChlLmcuLCBcIkBteW9yZy9zaGFyZWRcIilcbiAgICogLSBGb3Igbm9kZV9tb2R1bGVzIHBhY2thZ2VzOiB0aGUgcGFja2FnZSBuYW1lXG4gICAqIC0gRm9yIGxvY2FsIGZpbGVzOiBhIHJlbGF0aXZlIHBhdGggKGUuZy4sIFwiLi9zcmMvd29ya2Zsb3dzL29yZGVyLnRzXCIpXG4gICAqL1xuICBpbXBvcnRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBmaWxlIGlzIGZyb20gYSBwYWNrYWdlICh3b3Jrc3BhY2Ugb3Igbm9kZV9tb2R1bGVzKS5cbiAgICogV2hlbiB0cnVlLCB0aGUgaW1wb3J0IHNob3VsZCBnbyB0aHJvdWdoIHBhY2thZ2UgcmVzb2x1dGlvbiB3aGljaCByZXNwZWN0cyBleHBvcnQgY29uZGl0aW9ucy5cbiAgICovXG4gIGlzUGFja2FnZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGltcG9ydCBwYXRoIHRvIHVzZSBmb3IgYSBmaWxlIGluIGEgYnVuZGxlJ3MgdmlydHVhbCBlbnRyeS5cbiAqXG4gKiBGb3Igd29ya3NwYWNlIHBhY2thZ2VzIGFuZCBub2RlX21vZHVsZXMgcGFja2FnZXMsIHJldHVybnMgdGhlIHBhY2thZ2UgbmFtZVxuICogc28gdGhhdCBidW5kbGVyIHJlc29sdXRpb24gd2lsbCByZXNwZWN0IHBhY2thZ2UuanNvbiBleHBvcnRzIGFuZCBjb25kaXRpb25zLlxuICpcbiAqIEZvciBsb2NhbCBhcHAgZmlsZXMsIHJldHVybnMgYSByZWxhdGl2ZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aCAtIEFic29sdXRlIHBhdGggdG8gdGhlIGZpbGVcbiAqIEBwYXJhbSBwcm9qZWN0Um9vdCAtIEFic29sdXRlIHBhdGggdG8gdGhlIHByb2plY3Qgcm9vdFxuICogQHJldHVybnMgVGhlIGltcG9ydCBwYXRoIGFuZCB3aGV0aGVyIGl0J3MgYSBwYWNrYWdlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdvcmtzcGFjZSBwYWNrYWdlXG4gKiBnZXRJbXBvcnRQYXRoKCcvcHJvamVjdC9wYWNrYWdlcy9zaGFyZWQvc3JjL2luZGV4LnRzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgaW1wb3J0UGF0aDogJ0BteW9yZy9zaGFyZWQnLCBpc1BhY2thZ2U6IHRydWUgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBMb2NhbCBhcHAgZmlsZVxuICogZ2V0SW1wb3J0UGF0aCgnL3Byb2plY3Qvc3JjL3dvcmtmbG93cy9vcmRlci50cycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IGltcG9ydFBhdGg6ICcuL3NyYy93b3JrZmxvd3Mvb3JkZXIudHMnLCBpc1BhY2thZ2U6IGZhbHNlIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEltcG9ydFBhdGgoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIHByb2plY3RSb290OiBzdHJpbmdcbik6IEltcG9ydFBhdGhSZXN1bHQge1xuICAvLyBDaGVjayBpZiBmaWxlIGlzIGluIG5vZGVfbW9kdWxlcyBvciBhIHdvcmtzcGFjZSBwYWNrYWdlXG4gIGNvbnN0IGluTm9kZU1vZHVsZXMgPSBpc0luTm9kZU1vZHVsZXMoZmlsZVBhdGgpO1xuICBjb25zdCBpbldvcmtzcGFjZSA9XG4gICAgIWluTm9kZU1vZHVsZXMgJiYgaXNXb3Jrc3BhY2VQYWNrYWdlKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCk7XG5cbiAgaWYgKGluTm9kZU1vZHVsZXMgfHwgaW5Xb3Jrc3BhY2UpIHtcbiAgICAvLyBGaW5kIHRoZSBwYWNrYWdlLmpzb24gZm9yIHRoaXMgZmlsZVxuICAgIGNvbnN0IHBrZyA9IGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aCk7XG4gICAgaWYgKHBrZykge1xuICAgICAgY29uc3QgaXNEaXJlY3RQcm9qZWN0RGVwZW5kZW5jeSA9IGdldFByb2plY3REZXBlbmRlbmNpZXMocHJvamVjdFJvb3QpLmhhcyhcbiAgICAgICAgcGtnLm5hbWVcbiAgICAgICk7XG4gICAgICBjb25zdCBjYW5Vc2VQYWNrYWdlU3BlY2lmaWVyID0gaW5Xb3Jrc3BhY2UgfHwgaXNEaXJlY3RQcm9qZWN0RGVwZW5kZW5jeTtcblxuICAgICAgLy8gRm9yIHRyYW5zaXRpdmUgbm9kZV9tb2R1bGVzIGRlcGVuZGVuY2llcyB1bmRlciBzdHJpY3QgcGFja2FnZSBtYW5hZ2Vyc1xuICAgICAgLy8gKGZvciBleGFtcGxlLCBwbnBtKSwgaW1wb3J0aW5nIGJ5IHBhY2thZ2UgbmFtZSBjYW4gZmFpbC4gVXNlIGEgZGlyZWN0XG4gICAgICAvLyBmaWxlIHBhdGggaW1wb3J0IGluIHRob3NlIGNhc2VzLlxuICAgICAgaWYgKCFjYW5Vc2VQYWNrYWdlU3BlY2lmaWVyKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICAgICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBQcmVmZXIgYSBwYWNrYWdlIHN1YnBhdGggaW1wb3J0IHdoZW4gdGhpcyBmaWxlIG1hcHMgdG8gYW4gZXhwb3J0LlxuICAgICAgLy8gVGhpcyBwcmVzZXJ2ZXMgdGhlIGV4YWN0IG1vZHVsZSBiZWluZyBidW5kbGVkIHdoaWxlIHN0aWxsIHJlc3BlY3RpbmdcbiAgICAgIC8vIHBhY2thZ2UgZXhwb3J0IGNvbmRpdGlvbnMuXG4gICAgICAvLyBOb3RlOiByZXNvbHZlRXhwb3J0U3VicGF0aCByZXR1cm5zIFwiXCIgZm9yIGJvdGggcm9vdCBcIi5cIiBtYXRjaGVzIGFuZFxuICAgICAgLy8gbm8gbWF0Y2g7IHJvb3QgZW50cnlwb2ludHMgYXJlIGludGVudGlvbmFsbHkgaGFuZGxlZCBiZWxvdyB2aWFcbiAgICAgIC8vIGlzUm9vdEVudHJ5cG9pbnRGaWxlKCkuXG4gICAgICBjb25zdCBzdWJwYXRoID0gcmVzb2x2ZUV4cG9ydFN1YnBhdGgoZmlsZVBhdGgsIHBrZyk7XG4gICAgICBpZiAoc3VicGF0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGltcG9ydFBhdGg6IGAke3BrZy5uYW1lfSR7c3VicGF0aH1gLFxuICAgICAgICAgIGlzUGFja2FnZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gT25seSBpbXBvcnQgcGFja2FnZSByb290IHdoZW4gdGhpcyBmaWxlIGlzIHRoZSByb290IGVudHJ5cG9pbnQuXG4gICAgICAvLyBGb3IgZGVlcC9pbnRlcm5hbCBmaWxlcywgZmFsbCBiYWNrIHRvIGRpcmVjdCByZWxhdGl2ZSBpbXBvcnRzIHNvIHdlXG4gICAgICAvLyBkb24ndCBhY2NpZGVudGFsbHkgaW1wb3J0IGEgbm9uLWV4aXN0ZW50IG9yIGRpZmZlcmVudCBtb2R1bGUuXG4gICAgICBpZiAoIWlzUm9vdEVudHJ5cG9pbnRGaWxlKGZpbGVQYXRoLCBwa2cpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICAgICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbXBvcnRQYXRoOiBwa2cubmFtZSxcbiAgICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBMb2NhbCBhcHAgZmlsZSAtIHVzZSByZWxhdGl2ZSBwYXRoXG4gIHJldHVybiB7XG4gICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICB9O1xufVxuIl19
@@ -1,4 +1,4 @@
1
1
  declare const NORMALIZE_REQUEST_CODE = "\nasync function normalizeRequest(request) {\n const options = {\n method: request.method,\n headers: new Headers(request.headers)\n };\n if (!['GET', 'HEAD', 'OPTIONS', 'TRACE', 'CONNECT'].includes(request.method)) {\n options.body = await request.arrayBuffer();\n }\n return new Request(request.url, options);\n}\n";
2
- declare function replaceGeneratedRouteExport(content: string, pattern: RegExp, replacement: string, errorMessage: string): string;
2
+ declare function replaceGeneratedRouteExport(content: string, pattern: RegExp, replacement: string | ((substring: string, ...args: any[]) => string), errorMessage: string): string;
3
3
  export { NORMALIZE_REQUEST_CODE, replaceGeneratedRouteExport };
4
4
  //# sourceMappingURL=request-converter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-converter.d.ts","sourceRoot":"","sources":["../src/request-converter.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,sBAAsB,+UAW3B,CAAC;AAEF,iBAAS,2BAA2B,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,UAoBrB;AAED,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"request-converter.d.ts","sourceRoot":"","sources":["../src/request-converter.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,sBAAsB,+UAW3B,CAAC;AAEF,iBAAS,2BAA2B,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,EACrE,YAAY,EAAE,MAAM,UAoBrB;AAED,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,CAAC"}
@@ -29,4 +29,4 @@ function replaceGeneratedRouteExport(content, pattern, replacement, errorMessage
29
29
  return wrappedRouteCode + sourceMap;
30
30
  }
31
31
  export { NORMALIZE_REQUEST_CODE, replaceGeneratedRouteExport };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVxdWVzdC1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxzQkFBc0IsR0FBRzs7Ozs7Ozs7Ozs7Q0FXOUIsQ0FBQztBQUVGLFNBQVMsMkJBQTJCLENBQ2xDLE9BQWUsRUFDZixPQUFlLEVBQ2YsV0FBbUIsRUFDbkIsWUFBb0I7SUFFcEIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUQsSUFBSSxlQUFlLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDaEMsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLHlCQUF5QixDQUFDO0lBQ2xELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUQsSUFBSSxjQUFjLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNuRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakUsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBOT1JNQUxJWkVfUkVRVUVTVF9DT0RFID0gYFxuYXN5bmMgZnVuY3Rpb24gbm9ybWFsaXplUmVxdWVzdChyZXF1ZXN0KSB7XG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICBoZWFkZXJzOiBuZXcgSGVhZGVycyhyZXF1ZXN0LmhlYWRlcnMpXG4gIH07XG4gIGlmICghWydHRVQnLCAnSEVBRCcsICdPUFRJT05TJywgJ1RSQUNFJywgJ0NPTk5FQ1QnXS5pbmNsdWRlcyhyZXF1ZXN0Lm1ldGhvZCkpIHtcbiAgICBvcHRpb25zLmJvZHkgPSBhd2FpdCByZXF1ZXN0LmFycmF5QnVmZmVyKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBSZXF1ZXN0KHJlcXVlc3QudXJsLCBvcHRpb25zKTtcbn1cbmA7XG5cbmZ1bmN0aW9uIHJlcGxhY2VHZW5lcmF0ZWRSb3V0ZUV4cG9ydChcbiAgY29udGVudDogc3RyaW5nLFxuICBwYXR0ZXJuOiBSZWdFeHAsXG4gIHJlcGxhY2VtZW50OiBzdHJpbmcsXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4pIHtcbiAgY29uc3QgcmVwbGFjZWRDb250ZW50ID0gY29udGVudC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VtZW50KTtcbiAgaWYgKHJlcGxhY2VkQ29udGVudCAhPT0gY29udGVudCkge1xuICAgIHJldHVybiByZXBsYWNlZENvbnRlbnQ7XG4gIH1cblxuICBjb25zdCBzb3VyY2VNYXBNYXJrZXIgPSAnXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9JztcbiAgY29uc3Qgc291cmNlTWFwSW5kZXggPSBjb250ZW50Lmxhc3RJbmRleE9mKHNvdXJjZU1hcE1hcmtlcik7XG4gIGlmIChzb3VyY2VNYXBJbmRleCA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIGNvbnN0IHJvdXRlQ29kZSA9IGNvbnRlbnQuc2xpY2UoMCwgc291cmNlTWFwSW5kZXgpO1xuICBjb25zdCBzb3VyY2VNYXAgPSBjb250ZW50LnNsaWNlKHNvdXJjZU1hcEluZGV4KTtcbiAgY29uc3Qgd3JhcHBlZFJvdXRlQ29kZSA9IHJvdXRlQ29kZS5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VtZW50KTtcbiAgaWYgKHdyYXBwZWRSb3V0ZUNvZGUgPT09IHJvdXRlQ29kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG4gIHJldHVybiB3cmFwcGVkUm91dGVDb2RlICsgc291cmNlTWFwO1xufVxuXG5leHBvcnQgeyBOT1JNQUxJWkVfUkVRVUVTVF9DT0RFLCByZXBsYWNlR2VuZXJhdGVkUm91dGVFeHBvcnQgfTtcbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVxdWVzdC1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxzQkFBc0IsR0FBRzs7Ozs7Ozs7Ozs7Q0FXOUIsQ0FBQztBQUVGLFNBQVMsMkJBQTJCLENBQ2xDLE9BQWUsRUFDZixPQUFlLEVBQ2YsV0FBcUUsRUFDckUsWUFBb0I7SUFFcEIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsV0FBa0IsQ0FBQyxDQUFDO0lBQ3JFLElBQUksZUFBZSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyx5QkFBeUIsQ0FBQztJQUNsRCxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVELElBQUksY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFdBQWtCLENBQUMsQ0FBQztJQUN4RSxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE5PUk1BTElaRV9SRVFVRVNUX0NPREUgPSBgXG5hc3luYyBmdW5jdGlvbiBub3JtYWxpemVSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHJlcXVlc3QuaGVhZGVycylcbiAgfTtcbiAgaWYgKCFbJ0dFVCcsICdIRUFEJywgJ09QVElPTlMnLCAnVFJBQ0UnLCAnQ09OTkVDVCddLmluY2x1ZGVzKHJlcXVlc3QubWV0aG9kKSkge1xuICAgIG9wdGlvbnMuYm9keSA9IGF3YWl0IHJlcXVlc3QuYXJyYXlCdWZmZXIoKTtcbiAgfVxuICByZXR1cm4gbmV3IFJlcXVlc3QocmVxdWVzdC51cmwsIG9wdGlvbnMpO1xufVxuYDtcblxuZnVuY3Rpb24gcmVwbGFjZUdlbmVyYXRlZFJvdXRlRXhwb3J0KFxuICBjb250ZW50OiBzdHJpbmcsXG4gIHBhdHRlcm46IFJlZ0V4cCxcbiAgcmVwbGFjZW1lbnQ6IHN0cmluZyB8ICgoc3Vic3RyaW5nOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiBzdHJpbmcpLFxuICBlcnJvck1lc3NhZ2U6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IHJlcGxhY2VkQ29udGVudCA9IGNvbnRlbnQucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlbWVudCBhcyBhbnkpO1xuICBpZiAocmVwbGFjZWRDb250ZW50ICE9PSBjb250ZW50KSB7XG4gICAgcmV0dXJuIHJlcGxhY2VkQ29udGVudDtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZU1hcE1hcmtlciA9ICdcXG4vLyMgc291cmNlTWFwcGluZ1VSTD0nO1xuICBjb25zdCBzb3VyY2VNYXBJbmRleCA9IGNvbnRlbnQubGFzdEluZGV4T2Yoc291cmNlTWFwTWFya2VyKTtcbiAgaWYgKHNvdXJjZU1hcEluZGV4ID09PSAtMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgY29uc3Qgcm91dGVDb2RlID0gY29udGVudC5zbGljZSgwLCBzb3VyY2VNYXBJbmRleCk7XG4gIGNvbnN0IHNvdXJjZU1hcCA9IGNvbnRlbnQuc2xpY2Uoc291cmNlTWFwSW5kZXgpO1xuICBjb25zdCB3cmFwcGVkUm91dGVDb2RlID0gcm91dGVDb2RlLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZW1lbnQgYXMgYW55KTtcbiAgaWYgKHdyYXBwZWRSb3V0ZUNvZGUgPT09IHJvdXRlQ29kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG4gIHJldHVybiB3cmFwcGVkUm91dGVDb2RlICsgc291cmNlTWFwO1xufVxuXG5leHBvcnQgeyBOT1JNQUxJWkVfUkVRVUVTVF9DT0RFLCByZXBsYWNlR2VuZXJhdGVkUm91dGVFeHBvcnQgfTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"standalone.d.ts","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,MAAM,EAAE,cAAc;IAO5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B,OAAO,CAAC,cAAc;YAuBR,gBAAgB;YAqBhB,oBAAoB;YA0BpB,oBAAoB;CAUnC"}
1
+ {"version":3,"file":"standalone.d.ts","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,iBAAkB,SAAQ,WAAW;gBACpC,MAAM,EAAE,cAAc;IAO5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B,OAAO,CAAC,cAAc;YAuBR,gBAAgB;YAwBhB,oBAAoB;YA0BpB,oBAAoB;CAanC"}
@@ -38,7 +38,7 @@ export class StandaloneBuilder extends BaseBuilder {
38
38
  };
39
39
  }
40
40
  async buildStepsBundle({ inputFiles, tsconfigPath, }) {
41
- console.log('Creating steps bundle at', this.config.stepsBundlePath);
41
+ this.logBaseBuilderInfo('Creating steps bundle at', this.config.stepsBundlePath);
42
42
  const stepsBundlePath = this.resolvePath(this.config.stepsBundlePath);
43
43
  await this.ensureDirectory(stepsBundlePath);
44
44
  const { manifest } = await this.createStepsBundle({
@@ -49,7 +49,7 @@ export class StandaloneBuilder extends BaseBuilder {
49
49
  return manifest;
50
50
  }
51
51
  async buildWorkflowsBundle({ inputFiles, tsconfigPath, }) {
52
- console.log('Creating workflows bundle at', this.config.workflowsBundlePath);
52
+ this.logBaseBuilderInfo('Creating workflows bundle at', this.config.workflowsBundlePath);
53
53
  const workflowBundlePath = this.resolvePath(this.config.workflowsBundlePath);
54
54
  await this.ensureDirectory(workflowBundlePath);
55
55
  const { manifest } = await this.createWorkflowsBundle({
@@ -60,7 +60,7 @@ export class StandaloneBuilder extends BaseBuilder {
60
60
  return manifest;
61
61
  }
62
62
  async buildWebhookFunction() {
63
- console.log('Creating webhook bundle at', this.config.webhookBundlePath);
63
+ this.logBaseBuilderInfo('Creating webhook bundle at', this.config.webhookBundlePath);
64
64
  const webhookBundlePath = this.resolvePath(this.config.webhookBundlePath);
65
65
  await this.ensureDirectory(webhookBundlePath);
66
66
  await this.createWebhookBundle({
@@ -68,4 +68,4 @@ export class StandaloneBuilder extends BaseBuilder {
68
68
  });
69
69
  }
70
70
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhbG9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFuZGFsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUNoRCxZQUFZLE1BQXNCO1FBQ2hDLEtBQUssQ0FBQztZQUNKLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlDLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFbkQsTUFBTSxPQUFPLEdBQUc7WUFDZCxVQUFVO1lBQ1YsWUFBWTtTQUNiLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFbEMsb0NBQW9DO1FBQ3BDLGdFQUFnRTtRQUNoRSxzRUFBc0U7UUFDdEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV2RSw4Q0FBOEM7UUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUNoQyxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN4QixrQkFBa0I7WUFDbEIsV0FBVztZQUNYLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTyxjQUFjLENBQ3BCLGFBSUMsRUFDRCxpQkFJQztRQU1ELE9BQU87WUFDTCxLQUFLLEVBQUUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7WUFDN0QsU0FBUyxFQUFFLEVBQUUsR0FBRyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxFQUFFO1lBQ3pFLE9BQU8sRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtTQUNwRSxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUM3QixVQUFVLEVBQ1YsWUFBWSxHQUliO1FBQ0MsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0RSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFNUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVU7WUFDVixZQUFZO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUNqQyxVQUFVLEVBQ1YsWUFBWSxHQUliO1FBQ0MsT0FBTyxDQUFDLEdBQUcsQ0FDVCw4QkFBOEIsRUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDaEMsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDaEMsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRS9DLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztZQUNwRCxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFVBQVU7WUFDVixZQUFZO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxvQkFBb0I7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFekUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxRSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU5QyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QixPQUFPLEVBQUUsaUJBQWlCO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VCdWlsZGVyIH0gZnJvbSAnLi9iYXNlLWJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd0NvbmZpZyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgU3RhbmRhbG9uZUJ1aWxkZXIgZXh0ZW5kcyBCYXNlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogV29ya2Zsb3dDb25maWcpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBkaXJzOiBbJy4nXSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlucHV0RmlsZXMgPSBhd2FpdCB0aGlzLmdldElucHV0RmlsZXMoKTtcbiAgICBjb25zdCB0c2NvbmZpZ1BhdGggPSBhd2FpdCB0aGlzLmZpbmRUc0NvbmZpZ1BhdGgoKTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBpbnB1dEZpbGVzLFxuICAgICAgdHNjb25maWdQYXRoLFxuICAgIH07XG4gICAgY29uc3Qgc3RlcHNNYW5pZmVzdCA9IGF3YWl0IHRoaXMuYnVpbGRTdGVwc0J1bmRsZShvcHRpb25zKTtcbiAgICBjb25zdCB3b3JrZmxvd3NNYW5pZmVzdCA9IGF3YWl0IHRoaXMuYnVpbGRXb3JrZmxvd3NCdW5kbGUob3B0aW9ucyk7XG4gICAgYXdhaXQgdGhpcy5idWlsZFdlYmhvb2tGdW5jdGlvbigpO1xuXG4gICAgLy8gTWVyZ2UgbWFuaWZlc3RzIGZyb20gYm90aCBidW5kbGVzXG4gICAgLy8gU3RlcHMgYnVuZGxlIGRpc2NvdmVycyBjbGFzc2VzIGZyb20gZGVmYXVsdCBleHBvcnQgY29uZGl0aW9uc1xuICAgIC8vIFdvcmtmbG93IGJ1bmRsZSBkaXNjb3ZlcnMgY2xhc3NlcyBmcm9tICd3b3JrZmxvdycgZXhwb3J0IGNvbmRpdGlvbnNcbiAgICBjb25zdCBtYW5pZmVzdCA9IHRoaXMubWVyZ2VNYW5pZmVzdHMoc3RlcHNNYW5pZmVzdCwgd29ya2Zsb3dzTWFuaWZlc3QpO1xuXG4gICAgLy8gQnVpbGQgdW5pZmllZCBtYW5pZmVzdCBmcm9tIHdvcmtmbG93IGJ1bmRsZVxuICAgIGNvbnN0IHdvcmtmbG93QnVuZGxlUGF0aCA9IHRoaXMucmVzb2x2ZVBhdGgoXG4gICAgICB0aGlzLmNvbmZpZy53b3JrZmxvd3NCdW5kbGVQYXRoXG4gICAgKTtcbiAgICBjb25zdCBtYW5pZmVzdERpciA9IHRoaXMucmVzb2x2ZVBhdGgoJy53ZWxsLWtub3duL3dvcmtmbG93L3YxJyk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVNYW5pZmVzdCh7XG4gICAgICB3b3JrZmxvd0J1bmRsZVBhdGgsXG4gICAgICBtYW5pZmVzdERpcixcbiAgICAgIG1hbmlmZXN0LFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVDbGllbnRMaWJyYXJ5KCk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlTWFuaWZlc3RzKFxuICAgIHN0ZXBzTWFuaWZlc3Q6IHtcbiAgICAgIHN0ZXBzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgIHdvcmtmbG93cz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICBjbGFzc2VzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICB9LFxuICAgIHdvcmtmbG93c01hbmlmZXN0OiB7XG4gICAgICBzdGVwcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICB3b3JrZmxvd3M/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgY2xhc3Nlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgfVxuICApOiB7XG4gICAgc3RlcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHdvcmtmbG93cz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY2xhc3Nlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBzdGVwczogeyAuLi5zdGVwc01hbmlmZXN0LnN0ZXBzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC5zdGVwcyB9LFxuICAgICAgd29ya2Zsb3dzOiB7IC4uLnN0ZXBzTWFuaWZlc3Qud29ya2Zsb3dzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC53b3JrZmxvd3MgfSxcbiAgICAgIGNsYXNzZXM6IHsgLi4uc3RlcHNNYW5pZmVzdC5jbGFzc2VzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC5jbGFzc2VzIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRTdGVwc0J1bmRsZSh7XG4gICAgaW5wdXRGaWxlcyxcbiAgICB0c2NvbmZpZ1BhdGgsXG4gIH06IHtcbiAgICBpbnB1dEZpbGVzOiBzdHJpbmdbXTtcbiAgICB0c2NvbmZpZ1BhdGg/OiBzdHJpbmc7XG4gIH0pIHtcbiAgICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgc3RlcHMgYnVuZGxlIGF0JywgdGhpcy5jb25maWcuc3RlcHNCdW5kbGVQYXRoKTtcblxuICAgIGNvbnN0IHN0ZXBzQnVuZGxlUGF0aCA9IHRoaXMucmVzb2x2ZVBhdGgodGhpcy5jb25maWcuc3RlcHNCdW5kbGVQYXRoKTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZURpcmVjdG9yeShzdGVwc0J1bmRsZVBhdGgpO1xuXG4gICAgY29uc3QgeyBtYW5pZmVzdCB9ID0gYXdhaXQgdGhpcy5jcmVhdGVTdGVwc0J1bmRsZSh7XG4gICAgICBvdXRmaWxlOiBzdGVwc0J1bmRsZVBhdGgsXG4gICAgICBpbnB1dEZpbGVzLFxuICAgICAgdHNjb25maWdQYXRoLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hbmlmZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZFdvcmtmbG93c0J1bmRsZSh7XG4gICAgaW5wdXRGaWxlcyxcbiAgICB0c2NvbmZpZ1BhdGgsXG4gIH06IHtcbiAgICBpbnB1dEZpbGVzOiBzdHJpbmdbXTtcbiAgICB0c2NvbmZpZ1BhdGg/OiBzdHJpbmc7XG4gIH0pIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgICdDcmVhdGluZyB3b3JrZmxvd3MgYnVuZGxlIGF0JyxcbiAgICAgIHRoaXMuY29uZmlnLndvcmtmbG93c0J1bmRsZVBhdGhcbiAgICApO1xuXG4gICAgY29uc3Qgd29ya2Zsb3dCdW5kbGVQYXRoID0gdGhpcy5yZXNvbHZlUGF0aChcbiAgICAgIHRoaXMuY29uZmlnLndvcmtmbG93c0J1bmRsZVBhdGhcbiAgICApO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlRGlyZWN0b3J5KHdvcmtmbG93QnVuZGxlUGF0aCk7XG5cbiAgICBjb25zdCB7IG1hbmlmZXN0IH0gPSBhd2FpdCB0aGlzLmNyZWF0ZVdvcmtmbG93c0J1bmRsZSh7XG4gICAgICBvdXRmaWxlOiB3b3JrZmxvd0J1bmRsZVBhdGgsXG4gICAgICBpbnB1dEZpbGVzLFxuICAgICAgdHNjb25maWdQYXRoLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hbmlmZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZFdlYmhvb2tGdW5jdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgd2ViaG9vayBidW5kbGUgYXQnLCB0aGlzLmNvbmZpZy53ZWJob29rQnVuZGxlUGF0aCk7XG5cbiAgICBjb25zdCB3ZWJob29rQnVuZGxlUGF0aCA9IHRoaXMucmVzb2x2ZVBhdGgodGhpcy5jb25maWcud2ViaG9va0J1bmRsZVBhdGgpO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlRGlyZWN0b3J5KHdlYmhvb2tCdW5kbGVQYXRoKTtcblxuICAgIGF3YWl0IHRoaXMuY3JlYXRlV2ViaG9va0J1bmRsZSh7XG4gICAgICBvdXRmaWxlOiB3ZWJob29rQnVuZGxlUGF0aCxcbiAgICB9KTtcbiAgfVxufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhbG9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFuZGFsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUNoRCxZQUFZLE1BQXNCO1FBQ2hDLEtBQUssQ0FBQztZQUNKLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlDLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFbkQsTUFBTSxPQUFPLEdBQUc7WUFDZCxVQUFVO1lBQ1YsWUFBWTtTQUNiLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFbEMsb0NBQW9DO1FBQ3BDLGdFQUFnRTtRQUNoRSxzRUFBc0U7UUFDdEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV2RSw4Q0FBOEM7UUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUNoQyxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN4QixrQkFBa0I7WUFDbEIsV0FBVztZQUNYLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTyxjQUFjLENBQ3BCLGFBSUMsRUFDRCxpQkFJQztRQU1ELE9BQU87WUFDTCxLQUFLLEVBQUUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7WUFDN0QsU0FBUyxFQUFFLEVBQUUsR0FBRyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxFQUFFO1lBQ3pFLE9BQU8sRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtTQUNwRSxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUM3QixVQUFVLEVBQ1YsWUFBWSxHQUliO1FBQ0MsSUFBSSxDQUFDLGtCQUFrQixDQUNyQiwwQkFBMEIsRUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQzVCLENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEUsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNoRCxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVO1lBQ1YsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxLQUFLLENBQUMsb0JBQW9CLENBQUMsRUFDakMsVUFBVSxFQUNWLFlBQVksR0FJYjtRQUNDLElBQUksQ0FBQyxrQkFBa0IsQ0FDckIsOEJBQThCLEVBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQ2hDLENBQUM7UUFFRixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQ2hDLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUvQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDcEQsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixVQUFVO1lBQ1YsWUFBWTtTQUNiLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxLQUFLLENBQUMsb0JBQW9CO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FDckIsNEJBQTRCLEVBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQzlCLENBQUM7UUFFRixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQzdCLE9BQU8sRUFBRSxpQkFBaUI7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUJ1aWxkZXIgfSBmcm9tICcuL2Jhc2UtYnVpbGRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFdvcmtmbG93Q29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFuZGFsb25lQnVpbGRlciBleHRlbmRzIEJhc2VCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBXb3JrZmxvd0NvbmZpZykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGRpcnM6IFsnLiddLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgYnVpbGQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaW5wdXRGaWxlcyA9IGF3YWl0IHRoaXMuZ2V0SW5wdXRGaWxlcygpO1xuICAgIGNvbnN0IHRzY29uZmlnUGF0aCA9IGF3YWl0IHRoaXMuZmluZFRzQ29uZmlnUGF0aCgpO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGlucHV0RmlsZXMsXG4gICAgICB0c2NvbmZpZ1BhdGgsXG4gICAgfTtcbiAgICBjb25zdCBzdGVwc01hbmlmZXN0ID0gYXdhaXQgdGhpcy5idWlsZFN0ZXBzQnVuZGxlKG9wdGlvbnMpO1xuICAgIGNvbnN0IHdvcmtmbG93c01hbmlmZXN0ID0gYXdhaXQgdGhpcy5idWlsZFdvcmtmbG93c0J1bmRsZShvcHRpb25zKTtcbiAgICBhd2FpdCB0aGlzLmJ1aWxkV2ViaG9va0Z1bmN0aW9uKCk7XG5cbiAgICAvLyBNZXJnZSBtYW5pZmVzdHMgZnJvbSBib3RoIGJ1bmRsZXNcbiAgICAvLyBTdGVwcyBidW5kbGUgZGlzY292ZXJzIGNsYXNzZXMgZnJvbSBkZWZhdWx0IGV4cG9ydCBjb25kaXRpb25zXG4gICAgLy8gV29ya2Zsb3cgYnVuZGxlIGRpc2NvdmVycyBjbGFzc2VzIGZyb20gJ3dvcmtmbG93JyBleHBvcnQgY29uZGl0aW9uc1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gdGhpcy5tZXJnZU1hbmlmZXN0cyhzdGVwc01hbmlmZXN0LCB3b3JrZmxvd3NNYW5pZmVzdCk7XG5cbiAgICAvLyBCdWlsZCB1bmlmaWVkIG1hbmlmZXN0IGZyb20gd29ya2Zsb3cgYnVuZGxlXG4gICAgY29uc3Qgd29ya2Zsb3dCdW5kbGVQYXRoID0gdGhpcy5yZXNvbHZlUGF0aChcbiAgICAgIHRoaXMuY29uZmlnLndvcmtmbG93c0J1bmRsZVBhdGhcbiAgICApO1xuICAgIGNvbnN0IG1hbmlmZXN0RGlyID0gdGhpcy5yZXNvbHZlUGF0aCgnLndlbGwta25vd24vd29ya2Zsb3cvdjEnKTtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZU1hbmlmZXN0KHtcbiAgICAgIHdvcmtmbG93QnVuZGxlUGF0aCxcbiAgICAgIG1hbmlmZXN0RGlyLFxuICAgICAgbWFuaWZlc3QsXG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLmNyZWF0ZUNsaWVudExpYnJhcnkoKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VNYW5pZmVzdHMoXG4gICAgc3RlcHNNYW5pZmVzdDoge1xuICAgICAgc3RlcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgd29ya2Zsb3dzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgIGNsYXNzZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIH0sXG4gICAgd29ya2Zsb3dzTWFuaWZlc3Q6IHtcbiAgICAgIHN0ZXBzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgIHdvcmtmbG93cz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICBjbGFzc2VzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICB9XG4gICk6IHtcbiAgICBzdGVwcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgd29ya2Zsb3dzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBjbGFzc2VzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0ZXBzOiB7IC4uLnN0ZXBzTWFuaWZlc3Quc3RlcHMsIC4uLndvcmtmbG93c01hbmlmZXN0LnN0ZXBzIH0sXG4gICAgICB3b3JrZmxvd3M6IHsgLi4uc3RlcHNNYW5pZmVzdC53b3JrZmxvd3MsIC4uLndvcmtmbG93c01hbmlmZXN0LndvcmtmbG93cyB9LFxuICAgICAgY2xhc3NlczogeyAuLi5zdGVwc01hbmlmZXN0LmNsYXNzZXMsIC4uLndvcmtmbG93c01hbmlmZXN0LmNsYXNzZXMgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZFN0ZXBzQnVuZGxlKHtcbiAgICBpbnB1dEZpbGVzLFxuICAgIHRzY29uZmlnUGF0aCxcbiAgfToge1xuICAgIGlucHV0RmlsZXM6IHN0cmluZ1tdO1xuICAgIHRzY29uZmlnUGF0aD86IHN0cmluZztcbiAgfSkge1xuICAgIHRoaXMubG9nQmFzZUJ1aWxkZXJJbmZvKFxuICAgICAgJ0NyZWF0aW5nIHN0ZXBzIGJ1bmRsZSBhdCcsXG4gICAgICB0aGlzLmNvbmZpZy5zdGVwc0J1bmRsZVBhdGhcbiAgICApO1xuXG4gICAgY29uc3Qgc3RlcHNCdW5kbGVQYXRoID0gdGhpcy5yZXNvbHZlUGF0aCh0aGlzLmNvbmZpZy5zdGVwc0J1bmRsZVBhdGgpO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlRGlyZWN0b3J5KHN0ZXBzQnVuZGxlUGF0aCk7XG5cbiAgICBjb25zdCB7IG1hbmlmZXN0IH0gPSBhd2FpdCB0aGlzLmNyZWF0ZVN0ZXBzQnVuZGxlKHtcbiAgICAgIG91dGZpbGU6IHN0ZXBzQnVuZGxlUGF0aCxcbiAgICAgIGlucHV0RmlsZXMsXG4gICAgICB0c2NvbmZpZ1BhdGgsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWFuaWZlc3Q7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGJ1aWxkV29ya2Zsb3dzQnVuZGxlKHtcbiAgICBpbnB1dEZpbGVzLFxuICAgIHRzY29uZmlnUGF0aCxcbiAgfToge1xuICAgIGlucHV0RmlsZXM6IHN0cmluZ1tdO1xuICAgIHRzY29uZmlnUGF0aD86IHN0cmluZztcbiAgfSkge1xuICAgIHRoaXMubG9nQmFzZUJ1aWxkZXJJbmZvKFxuICAgICAgJ0NyZWF0aW5nIHdvcmtmbG93cyBidW5kbGUgYXQnLFxuICAgICAgdGhpcy5jb25maWcud29ya2Zsb3dzQnVuZGxlUGF0aFxuICAgICk7XG5cbiAgICBjb25zdCB3b3JrZmxvd0J1bmRsZVBhdGggPSB0aGlzLnJlc29sdmVQYXRoKFxuICAgICAgdGhpcy5jb25maWcud29ya2Zsb3dzQnVuZGxlUGF0aFxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVEaXJlY3Rvcnkod29ya2Zsb3dCdW5kbGVQYXRoKTtcblxuICAgIGNvbnN0IHsgbWFuaWZlc3QgfSA9IGF3YWl0IHRoaXMuY3JlYXRlV29ya2Zsb3dzQnVuZGxlKHtcbiAgICAgIG91dGZpbGU6IHdvcmtmbG93QnVuZGxlUGF0aCxcbiAgICAgIGlucHV0RmlsZXMsXG4gICAgICB0c2NvbmZpZ1BhdGgsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWFuaWZlc3Q7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGJ1aWxkV2ViaG9va0Z1bmN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nQmFzZUJ1aWxkZXJJbmZvKFxuICAgICAgJ0NyZWF0aW5nIHdlYmhvb2sgYnVuZGxlIGF0JyxcbiAgICAgIHRoaXMuY29uZmlnLndlYmhvb2tCdW5kbGVQYXRoXG4gICAgKTtcblxuICAgIGNvbnN0IHdlYmhvb2tCdW5kbGVQYXRoID0gdGhpcy5yZXNvbHZlUGF0aCh0aGlzLmNvbmZpZy53ZWJob29rQnVuZGxlUGF0aCk7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVEaXJlY3Rvcnkod2ViaG9va0J1bmRsZVBhdGgpO1xuXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVXZWJob29rQnVuZGxlKHtcbiAgICAgIG91dGZpbGU6IHdlYmhvb2tCdW5kbGVQYXRoLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=step-source-registration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-source-registration.test.d.ts","sourceRoot":"","sources":["../src/step-source-registration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import { mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
+ import { BaseBuilder } from './base-builder.js';
6
+ class TestBuilder extends BaseBuilder {
7
+ async build() {
8
+ // no-op
9
+ }
10
+ createSourceStepRegistrations(inputFiles, outfile, discoveredEntries) {
11
+ return this.createStepsBundle({
12
+ inputFiles,
13
+ outfile,
14
+ externalizeNonSteps: true,
15
+ bundleTransitiveLocalStepDependencies: false,
16
+ sourceStepRegistrationImports: true,
17
+ discoveredEntries,
18
+ });
19
+ }
20
+ }
21
+ const realTmpdir = realpathSync(tmpdir());
22
+ function writeFile(path, contents) {
23
+ mkdirSync(dirname(path), { recursive: true });
24
+ writeFileSync(path, contents, 'utf-8');
25
+ }
26
+ function createBuilder(workingDir) {
27
+ const config = {
28
+ buildTarget: 'standalone',
29
+ workingDir,
30
+ dirs: ['.'],
31
+ stepsBundlePath: join(workingDir, '.workflow', 'steps.js'),
32
+ workflowsBundlePath: join(workingDir, '.workflow', 'workflows.js'),
33
+ webhookBundlePath: join(workingDir, '.workflow', 'webhook.js'),
34
+ };
35
+ return new TestBuilder(config);
36
+ }
37
+ describe('step source registration', () => {
38
+ let testRoot;
39
+ beforeEach(() => {
40
+ testRoot = mkdtempSync(join(realTmpdir, 'workflow-step-registration-'));
41
+ writeFile(join(testRoot, 'node_modules', 'workflow', 'package.json'), JSON.stringify({ name: 'workflow', version: '1.0.0' }));
42
+ writeFile(join(testRoot, 'node_modules', 'workflow', 'internal', 'builtins.js'), 'export const __builtins = true;\n');
43
+ });
44
+ afterEach(() => {
45
+ rmSync(testRoot, { recursive: true, force: true });
46
+ });
47
+ it('imports serde-only files for step context class registration', async () => {
48
+ const entryFile = join(testRoot, 'src', 'entry.ts');
49
+ const stepFile = join(testRoot, 'src', 'step.ts');
50
+ const serdeFile = join(testRoot, 'src', 'serde.ts');
51
+ const outfile = join(testRoot, '.workflow', 'steps.js');
52
+ mkdirSync(dirname(outfile), { recursive: true });
53
+ writeFile(entryFile, `export { runStep } from './step';\n`);
54
+ writeFile(stepFile, `export async function runStep() {
55
+ 'use step';
56
+ return 1;
57
+ }
58
+ `);
59
+ writeFile(serdeFile, `export class Value {
60
+ static classId = 'Value';
61
+ static [Symbol.for('workflow-serialize')](value: Value) {
62
+ return value;
63
+ }
64
+ static [Symbol.for('workflow-deserialize')](value: Value) {
65
+ return value;
66
+ }
67
+ }
68
+ `);
69
+ const discoveredEntries = {
70
+ discoveredSteps: new Set([stepFile]),
71
+ discoveredWorkflows: new Set(),
72
+ discoveredSerdeFiles: new Set([serdeFile]),
73
+ };
74
+ const { manifest } = await createBuilder(testRoot).createSourceStepRegistrations([entryFile], outfile, discoveredEntries);
75
+ const generated = readFileSync(outfile, 'utf-8');
76
+ expect(generated).toContain('import "workflow/internal/builtins";');
77
+ expect(generated).toContain('import "../src/step.ts";');
78
+ expect(generated).toContain('import "../src/serde.ts";');
79
+ expect(Object.keys(manifest.classes ?? {})).toContain('src/serde.ts');
80
+ });
81
+ });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1zb3VyY2UtcmVnaXN0cmF0aW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RlcC1zb3VyY2UtcmVnaXN0cmF0aW9uLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBMEIsTUFBTSxtQkFBbUIsQ0FBQztBQUd4RSxNQUFNLFdBQVksU0FBUSxXQUFXO0lBQ25DLEtBQUssQ0FBQyxLQUFLO1FBQ1QsUUFBUTtJQUNWLENBQUM7SUFFTSw2QkFBNkIsQ0FDbEMsVUFBb0IsRUFDcEIsT0FBZSxFQUNmLGlCQUFvQztRQUVwQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUM1QixVQUFVO1lBQ1YsT0FBTztZQUNQLG1CQUFtQixFQUFFLElBQUk7WUFDekIscUNBQXFDLEVBQUUsS0FBSztZQUM1Qyw2QkFBNkIsRUFBRSxJQUFJO1lBQ25DLGlCQUFpQjtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUUxQyxTQUFTLFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7SUFDL0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxVQUFrQjtJQUN2QyxNQUFNLE1BQU0sR0FBcUI7UUFDL0IsV0FBVyxFQUFFLFlBQVk7UUFDekIsVUFBVTtRQUNWLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNYLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUM7UUFDMUQsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDO1FBQ2xFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQztLQUMvRCxDQUFDO0lBQ0YsT0FBTyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtJQUN4QyxJQUFJLFFBQWdCLENBQUM7SUFFckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7UUFDeEUsU0FBUyxDQUNQLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsRUFDMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQ3ZELENBQUM7UUFDRixTQUFTLENBQ1AsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsRUFDckUsbUNBQW1DLENBQ3BDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4REFBOEQsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM1RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNsRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV4RCxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakQsU0FBUyxDQUFDLFNBQVMsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO1FBQzVELFNBQVMsQ0FDUCxRQUFRLEVBQ1I7Ozs7Q0FJTCxDQUNJLENBQUM7UUFDRixTQUFTLENBQ1AsU0FBUyxFQUNUOzs7Ozs7Ozs7Q0FTTCxDQUNJLENBQUM7UUFFRixNQUFNLGlCQUFpQixHQUFzQjtZQUMzQyxlQUFlLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQyxtQkFBbUIsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUM5QixvQkFBb0IsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNDLENBQUM7UUFFRixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxhQUFhLENBQ3RDLFFBQVEsQ0FDVCxDQUFDLDZCQUE2QixDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqRCxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkRmlsZVN5bmMsXG4gIHJlYWxwYXRoU3luYyxcbiAgcm1TeW5jLFxuICB3cml0ZUZpbGVTeW5jLFxufSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IHRtcGRpciB9IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgZGlybmFtZSwgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2gsIGRlc2NyaWJlLCBleHBlY3QsIGl0IH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IEJhc2VCdWlsZGVyLCB0eXBlIERpc2NvdmVyZWRFbnRyaWVzIH0gZnJvbSAnLi9iYXNlLWJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFuZGFsb25lQ29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNsYXNzIFRlc3RCdWlsZGVyIGV4dGVuZHMgQmFzZUJ1aWxkZXIge1xuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBuby1vcFxuICB9XG5cbiAgcHVibGljIGNyZWF0ZVNvdXJjZVN0ZXBSZWdpc3RyYXRpb25zKFxuICAgIGlucHV0RmlsZXM6IHN0cmluZ1tdLFxuICAgIG91dGZpbGU6IHN0cmluZyxcbiAgICBkaXNjb3ZlcmVkRW50cmllczogRGlzY292ZXJlZEVudHJpZXNcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlU3RlcHNCdW5kbGUoe1xuICAgICAgaW5wdXRGaWxlcyxcbiAgICAgIG91dGZpbGUsXG4gICAgICBleHRlcm5hbGl6ZU5vblN0ZXBzOiB0cnVlLFxuICAgICAgYnVuZGxlVHJhbnNpdGl2ZUxvY2FsU3RlcERlcGVuZGVuY2llczogZmFsc2UsXG4gICAgICBzb3VyY2VTdGVwUmVnaXN0cmF0aW9uSW1wb3J0czogdHJ1ZSxcbiAgICAgIGRpc2NvdmVyZWRFbnRyaWVzLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IHJlYWxUbXBkaXIgPSByZWFscGF0aFN5bmModG1wZGlyKCkpO1xuXG5mdW5jdGlvbiB3cml0ZUZpbGUocGF0aDogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKTogdm9pZCB7XG4gIG1rZGlyU3luYyhkaXJuYW1lKHBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgd3JpdGVGaWxlU3luYyhwYXRoLCBjb250ZW50cywgJ3V0Zi04Jyk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1aWxkZXIod29ya2luZ0Rpcjogc3RyaW5nKTogVGVzdEJ1aWxkZXIge1xuICBjb25zdCBjb25maWc6IFN0YW5kYWxvbmVDb25maWcgPSB7XG4gICAgYnVpbGRUYXJnZXQ6ICdzdGFuZGFsb25lJyxcbiAgICB3b3JraW5nRGlyLFxuICAgIGRpcnM6IFsnLiddLFxuICAgIHN0ZXBzQnVuZGxlUGF0aDogam9pbih3b3JraW5nRGlyLCAnLndvcmtmbG93JywgJ3N0ZXBzLmpzJyksXG4gICAgd29ya2Zsb3dzQnVuZGxlUGF0aDogam9pbih3b3JraW5nRGlyLCAnLndvcmtmbG93JywgJ3dvcmtmbG93cy5qcycpLFxuICAgIHdlYmhvb2tCdW5kbGVQYXRoOiBqb2luKHdvcmtpbmdEaXIsICcud29ya2Zsb3cnLCAnd2ViaG9vay5qcycpLFxuICB9O1xuICByZXR1cm4gbmV3IFRlc3RCdWlsZGVyKGNvbmZpZyk7XG59XG5cbmRlc2NyaWJlKCdzdGVwIHNvdXJjZSByZWdpc3RyYXRpb24nLCAoKSA9PiB7XG4gIGxldCB0ZXN0Um9vdDogc3RyaW5nO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHRlc3RSb290ID0gbWtkdGVtcFN5bmMoam9pbihyZWFsVG1wZGlyLCAnd29ya2Zsb3ctc3RlcC1yZWdpc3RyYXRpb24tJykpO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4odGVzdFJvb3QsICdub2RlX21vZHVsZXMnLCAnd29ya2Zsb3cnLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6ICd3b3JrZmxvdycsIHZlcnNpb246ICcxLjAuMCcgfSlcbiAgICApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIGpvaW4odGVzdFJvb3QsICdub2RlX21vZHVsZXMnLCAnd29ya2Zsb3cnLCAnaW50ZXJuYWwnLCAnYnVpbHRpbnMuanMnKSxcbiAgICAgICdleHBvcnQgY29uc3QgX19idWlsdGlucyA9IHRydWU7XFxuJ1xuICAgICk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgcm1TeW5jKHRlc3RSb290LCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH0pO1xuXG4gIGl0KCdpbXBvcnRzIHNlcmRlLW9ubHkgZmlsZXMgZm9yIHN0ZXAgY29udGV4dCBjbGFzcyByZWdpc3RyYXRpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZW50cnlGaWxlID0gam9pbih0ZXN0Um9vdCwgJ3NyYycsICdlbnRyeS50cycpO1xuICAgIGNvbnN0IHN0ZXBGaWxlID0gam9pbih0ZXN0Um9vdCwgJ3NyYycsICdzdGVwLnRzJyk7XG4gICAgY29uc3Qgc2VyZGVGaWxlID0gam9pbih0ZXN0Um9vdCwgJ3NyYycsICdzZXJkZS50cycpO1xuICAgIGNvbnN0IG91dGZpbGUgPSBqb2luKHRlc3RSb290LCAnLndvcmtmbG93JywgJ3N0ZXBzLmpzJyk7XG5cbiAgICBta2RpclN5bmMoZGlybmFtZShvdXRmaWxlKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgd3JpdGVGaWxlKGVudHJ5RmlsZSwgYGV4cG9ydCB7IHJ1blN0ZXAgfSBmcm9tICcuL3N0ZXAnO1xcbmApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIHN0ZXBGaWxlLFxuICAgICAgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5TdGVwKCkge1xuICAndXNlIHN0ZXAnO1xuICByZXR1cm4gMTtcbn1cbmBcbiAgICApO1xuICAgIHdyaXRlRmlsZShcbiAgICAgIHNlcmRlRmlsZSxcbiAgICAgIGBleHBvcnQgY2xhc3MgVmFsdWUge1xuICBzdGF0aWMgY2xhc3NJZCA9ICdWYWx1ZSc7XG4gIHN0YXRpYyBbU3ltYm9sLmZvcignd29ya2Zsb3ctc2VyaWFsaXplJyldKHZhbHVlOiBWYWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBzdGF0aWMgW1N5bWJvbC5mb3IoJ3dvcmtmbG93LWRlc2VyaWFsaXplJyldKHZhbHVlOiBWYWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuYFxuICAgICk7XG5cbiAgICBjb25zdCBkaXNjb3ZlcmVkRW50cmllczogRGlzY292ZXJlZEVudHJpZXMgPSB7XG4gICAgICBkaXNjb3ZlcmVkU3RlcHM6IG5ldyBTZXQoW3N0ZXBGaWxlXSksXG4gICAgICBkaXNjb3ZlcmVkV29ya2Zsb3dzOiBuZXcgU2V0KCksXG4gICAgICBkaXNjb3ZlcmVkU2VyZGVGaWxlczogbmV3IFNldChbc2VyZGVGaWxlXSksXG4gICAgfTtcblxuICAgIGNvbnN0IHsgbWFuaWZlc3QgfSA9IGF3YWl0IGNyZWF0ZUJ1aWxkZXIoXG4gICAgICB0ZXN0Um9vdFxuICAgICkuY3JlYXRlU291cmNlU3RlcFJlZ2lzdHJhdGlvbnMoW2VudHJ5RmlsZV0sIG91dGZpbGUsIGRpc2NvdmVyZWRFbnRyaWVzKTtcbiAgICBjb25zdCBnZW5lcmF0ZWQgPSByZWFkRmlsZVN5bmMob3V0ZmlsZSwgJ3V0Zi04Jyk7XG5cbiAgICBleHBlY3QoZ2VuZXJhdGVkKS50b0NvbnRhaW4oJ2ltcG9ydCBcIndvcmtmbG93L2ludGVybmFsL2J1aWx0aW5zXCI7Jyk7XG4gICAgZXhwZWN0KGdlbmVyYXRlZCkudG9Db250YWluKCdpbXBvcnQgXCIuLi9zcmMvc3RlcC50c1wiOycpO1xuICAgIGV4cGVjdChnZW5lcmF0ZWQpLnRvQ29udGFpbignaW1wb3J0IFwiLi4vc3JjL3NlcmRlLnRzXCI7Jyk7XG4gICAgZXhwZWN0KE9iamVjdC5rZXlzKG1hbmlmZXN0LmNsYXNzZXMgPz8ge30pKS50b0NvbnRhaW4oJ3NyYy9zZXJkZS50cycpO1xuICB9KTtcbn0pO1xuIl19
@@ -5,6 +5,7 @@ export interface SwcPluginOptions {
5
5
  entriesToBundle?: string[];
6
6
  outdir?: string;
7
7
  projectRoot?: string;
8
+ moduleSpecifierRoot?: string;
8
9
  workflowManifest?: WorkflowManifest;
9
10
  /**
10
11
  * Rewrite TypeScript extensions (.ts, .tsx, .mts, .cts) to their JS
@@ -1 +1 @@
1
- {"version":3,"file":"swc-esbuild-plugin.d.ts","sourceRoot":"","sources":["../src/swc-esbuild-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAQlC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;OAOG;IACH,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AA0CD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAuTjE"}
1
+ {"version":3,"file":"swc-esbuild-plugin.d.ts","sourceRoot":"","sources":["../src/swc-esbuild-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAQlC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;OAOG;IACH,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AA0CD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CA+TjE"}