@decohere/forge 0.0.1-dev.9 → 0.0.1-dev.91

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 (74) hide show
  1. package/commonjs/src/actions/build.action.js +9 -1
  2. package/commonjs/src/actions/clean.action.js +3 -3
  3. package/commonjs/src/actions/copy.action.js +38 -6
  4. package/commonjs/src/actions/docker.action.js +198 -0
  5. package/commonjs/src/actions/index.js +5 -1
  6. package/commonjs/src/actions/link.action.js +156 -0
  7. package/commonjs/src/actions/tag.action.js +3 -4
  8. package/commonjs/src/actions/typecheck.action.js +69 -0
  9. package/commonjs/src/actions/unlink.action.js +76 -0
  10. package/commonjs/src/actions/watch.action.js +2 -1
  11. package/commonjs/src/commands/docker.command.js +28 -0
  12. package/commonjs/src/commands/index.js +4 -1
  13. package/commonjs/src/commands/link.command.js +89 -0
  14. package/commonjs/src/commands/typecheck.command.js +26 -0
  15. package/commonjs/src/factories/swc-config.factory.js +14 -4
  16. package/commonjs/src/forge.module.js +12 -3
  17. package/commonjs/src/index.js +4 -1
  18. package/commonjs/src/mixins/caches-outputs.mixin.js +8 -6
  19. package/commonjs/src/services/swc-transpiler.js +27 -7
  20. package/commonjs/src/services/ts-program-host.js +3 -3
  21. package/commonjs/src/services/type-emission-program.js +24 -7
  22. package/commonjs/src/services/type-emitter.js +34 -4
  23. package/commonjs/src/types/swc-config.type.js +1 -1
  24. package/commonjs/src/types/transform-response.model.js +2 -1
  25. package/commonjs/src/vitest/forge-build.plugin.js +3 -2
  26. package/commonjs/src/workspace.config.js +29 -2
  27. package/es6/src/actions/build.action.js +9 -1
  28. package/es6/src/actions/clean.action.js +3 -3
  29. package/es6/src/actions/copy.action.js +38 -6
  30. package/es6/src/actions/docker.action.js +184 -0
  31. package/es6/src/actions/index.js +5 -1
  32. package/es6/src/actions/link.action.js +131 -0
  33. package/es6/src/actions/tag.action.js +3 -4
  34. package/es6/src/actions/typecheck.action.js +56 -0
  35. package/es6/src/actions/unlink.action.js +61 -0
  36. package/es6/src/actions/watch.action.js +2 -1
  37. package/es6/src/commands/docker.command.js +18 -0
  38. package/es6/src/commands/index.js +4 -1
  39. package/es6/src/commands/link.command.js +66 -0
  40. package/es6/src/commands/typecheck.command.js +16 -0
  41. package/es6/src/factories/swc-config.factory.js +14 -4
  42. package/es6/src/forge.module.js +12 -3
  43. package/es6/src/index.js +2 -2
  44. package/es6/src/mixins/caches-outputs.mixin.js +8 -6
  45. package/es6/src/services/swc-transpiler.js +27 -7
  46. package/es6/src/services/ts-program-host.js +3 -3
  47. package/es6/src/services/type-emission-program.js +24 -7
  48. package/es6/src/services/type-emitter.js +31 -4
  49. package/es6/src/types/swc-config.type.js +1 -1
  50. package/es6/src/types/transform-response.model.js +2 -1
  51. package/es6/src/vitest/forge-build.plugin.js +3 -2
  52. package/es6/src/workspace.config.js +30 -2
  53. package/package.json +5 -5
  54. package/types/src/actions/build.action.d.ts +1 -0
  55. package/types/src/actions/copy.action.d.ts +10 -0
  56. package/types/src/actions/docker.action.d.ts +33 -0
  57. package/types/src/actions/index.d.ts +4 -0
  58. package/types/src/actions/link.action.d.ts +25 -0
  59. package/types/src/actions/typecheck.action.d.ts +14 -0
  60. package/types/src/actions/unlink.action.d.ts +9 -0
  61. package/types/src/commands/docker.command.d.ts +6 -0
  62. package/types/src/commands/index.d.ts +3 -0
  63. package/types/src/commands/link.command.d.ts +28 -0
  64. package/types/src/commands/typecheck.command.d.ts +6 -0
  65. package/types/src/factories/swc-config.factory.d.ts +1 -0
  66. package/types/src/forge.module.d.ts +8 -0
  67. package/types/src/index.d.ts +1 -1
  68. package/types/src/services/swc-transpiler.d.ts +5 -2
  69. package/types/src/services/ts-program-host.d.ts +1 -1
  70. package/types/src/services/type-emission-program.d.ts +6 -1
  71. package/types/src/services/type-emitter.d.ts +14 -0
  72. package/types/src/types/swc-config.type.d.ts +5 -1
  73. package/types/src/types/transform-response.model.d.ts +2 -0
  74. package/types/src/workspace.config.d.ts +6 -0
@@ -42,6 +42,9 @@ import { BuildTargets } from "../types/build-target.type.js";
42
42
  emitDeclarationOnly: true,
43
43
  declaration: true
44
44
  };
45
+ /** Compiler options enforced for `forge typecheck` — never emit JS or declarations. */ export const REQUIRED_TYPE_CHECK_OPTIONS = {
46
+ noEmit: true
47
+ };
45
48
  export class TypeEmitter extends mixwith(CachesOutputs, IncrementalTransform) {
46
49
  buildTargets = [
47
50
  BuildTargets.types
@@ -69,11 +72,34 @@ export class TypeEmitter extends mixwith(CachesOutputs, IncrementalTransform) {
69
72
  this.cacheOutputs(responses);
70
73
  return responses;
71
74
  }
72
- async preparePrograms(projectArrayLike) {
75
+ /**
76
+ * Type-check projects without emitting files. Includes every Mesh project, not
77
+ * only those with a `types` build target (debug is es6-only).
78
+ */ async checkProject(projectArrayLike) {
79
+ const programs = await this.preparePrograms(projectArrayLike, {
80
+ includeAllProjects: true,
81
+ requiredCompilerOptions: REQUIRED_TYPE_CHECK_OPTIONS
82
+ });
83
+ const diagnostics = [];
84
+ const formattedParts = [];
85
+ for (const program of programs){
86
+ const programDiagnostics = program.check();
87
+ if (programDiagnostics.length === 0) {
88
+ continue;
89
+ }
90
+ diagnostics.push(...programDiagnostics);
91
+ formattedParts.push(program.formatDiagnostics(programDiagnostics));
92
+ }
93
+ return {
94
+ diagnostics,
95
+ formatted: formattedParts.join("")
96
+ };
97
+ }
98
+ async preparePrograms(projectArrayLike, options = {}) {
73
99
  const allProjects = Array.isArray(projectArrayLike) ? projectArrayLike : [
74
100
  projectArrayLike
75
101
  ];
76
- const projects = allProjects.filter((proj)=>proj.getForgeConfiguration().targets.includes(BuildTargets.types));
102
+ const projects = options.includeAllProjects ? allProjects : allProjects.filter((proj)=>proj.getForgeConfiguration().targets.includes(BuildTargets.types));
77
103
  if (projects.length === 0) {
78
104
  return [];
79
105
  }
@@ -89,9 +115,10 @@ export class TypeEmitter extends mixwith(CachesOutputs, IncrementalTransform) {
89
115
  // files are compiled together, matching v1's single-program approach which
90
116
  // avoids re-parsing lib/node_modules .d.ts files per project.
91
117
  const groups = Map.groupBy(projectData, ({ tsconfig })=>this.#host.hostKey(tsconfig.compilerOptions));
118
+ const requiredCompilerOptions = options.requiredCompilerOptions ?? REQUIRED_TYPE_EMITTER_OPTIONS;
92
119
  return [
93
120
  ...groups.values()
94
- ].map((group)=>new TypeEmissionProgram(group, this.#host));
121
+ ].map((group)=>new TypeEmissionProgram(group, this.#host, requiredCompilerOptions));
95
122
  }
96
123
  async onIncrementalFileEvent(evt) {
97
124
  const { file, project } = evt;
@@ -131,4 +158,4 @@ TypeEmitter = _ts_decorate([
131
158
  Trace
132
159
  ], TypeEmitter);
133
160
 
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBQcm9qZWN0RmlsZUV2ZW50IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NhY2hpbmdcIjtcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9kaWFnbm9zdGljc1wiO1xuaW1wb3J0IHsgbWl4d2l0aCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZXh0ZW5zaWJpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBGaWxlRXggfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgeyBpbyB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgXCIuLi9leHRlbnNpb25zL3Byb2plY3QuZXh0ZW5zaW9ucy5qc1wiO1xuaW1wb3J0IHsgQ2FjaGVzT3V0cHV0cyB9IGZyb20gXCIuLi9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4uanNcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsVHJhbnNmb3JtIH0gZnJvbSBcIi4uL21peGlucy9pbmNyZW1lbnRhbC10cmFuc2Zvcm0ubWl4aW4uanNcIjtcbmltcG9ydCB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQge1xuXHRUeXBlRW1pc3Npb25Qcm9ncmFtLFxuXHR0eXBlIFR5cGVQcm9ncmFtUHJvamVjdCxcbn0gZnJvbSBcIi4uL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9uIGRlZmF1bHRzIGFwcGxpZWQgYmVmb3JlIHRoZSB1c2VyJ3MgdHNjb25maWcg4oCUIHRoZSB1c2VyJ3MgdmFsdWVzIG92ZXJyaWRlIHRoZXNlLlxuICpcbiAqIGxpYjogRVMyMDIyIOKAlCBhdm9pZHMgbG9hZGluZyBsaWIuZG9tLmQudHMgKDEuOCBNQikgd2hpY2ggVFMgaW5jbHVkZXMgYnkgZGVmYXVsdFxuICogd2hlbiBubyBgbGliYCBpcyBzZXQuIEJhY2tlbmQgcGFja2FnZXMgaGF2ZSBubyB1c2UgZm9yIGJyb3dzZXIgQVBJcy5cbiAqXG4gKiB0eXBlczogW10g4oCUIGRpc2FibGVzIGFtYmllbnQgQHR5cGVzIGF1dG8tZGlzY292ZXJ5LiBXaXRob3V0IHRoaXMsIFRTIHNjYW5zXG4gKiBldmVyeSBAdHlwZXMvKiBwYWNrYWdlIGluIHRoZSBub2RlX21vZHVsZXMgaGllcmFyY2h5OyBpbiBhIG1vbm9yZXBvIHRoYXQgY2FuXG4gKiBwdWxsIGluIGRvemVucyBvZiB1bnJlbGF0ZWQgcGFja2FnZXMuIEV4cGxpY2l0bHkgaW1wb3J0ZWQgdHlwZXMgc3RpbGwgcmVzb2x2ZVxuICogbm9ybWFsbHk7IG9ubHkgYW1iaWVudCBnbG9iYWxzIChlLmcuIEJ1ZmZlciwgcHJvY2VzcykgYXJlIHN1cHByZXNzZWQg4oCUIGFkZFxuICogYHR5cGVzOiBbXCJub2RlXCJdYCB0byBhIHByb2plY3QncyB0c2NvbmZpZyB0byByZXN0b3JlIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRsaWI6IFtcImxpYi5lczIwMjIuZC50c1wiXSxcblx0dHlwZXM6IFtdLFxuXHRza2lwTGliQ2hlY2s6IHRydWUsXG59O1xuXG4vKipcbiAqIENvbXBpbGVyIG9wdGlvbnMgdGhhdCBUeXBlRW1pdHRlciBhbHdheXMgZW5mb3JjZXMgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyJ3NcbiAqIHRzY29uZmlnIHNwZWNpZmllcy4gQXBwbGllZCBhZnRlciB0aGUgdXNlciBzcHJlYWQgc28gdGhleSBjYW5ub3QgYmUgb3ZlcnJpZGRlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRlbWl0RGVjbGFyYXRpb25Pbmx5OiB0cnVlLFxuXHRkZWNsYXJhdGlvbjogdHJ1ZSxcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFR5cGVFbWl0dGVyXG5cdGV4dGVuZHMgbWl4d2l0aChDYWNoZXNPdXRwdXRzLCBJbmNyZW1lbnRhbFRyYW5zZm9ybSlcblx0aW1wbGVtZW50cyBUcmFuc2Zvcm1lclxue1xuXHRwdWJsaWMgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdID0gW0J1aWxkVGFyZ2V0cy50eXBlc107XG5cdC8qKiBQcmVwYXJlZCBwcm9ncmFtcyBmcm9tIGluaXQoKSwgY29uc3VtZWQgb25jZSBieSB0aGUgbmV4dCB0cmFuc2Zvcm1Qcm9qZWN0KCkgY2FsbC4gKi9cblx0I3Byb2dyYW1zOiBUeXBlRW1pc3Npb25Qcm9ncmFtW10gfCB1bmRlZmluZWQ7XG5cdCNob3N0ID0gbmV3IFRzUHJvZ3JhbUhvc3QoKTtcblxuXHQvKipcblx0ICogUGhhc2UgMTogZmV0Y2ggZmlsZXMsIGNyZWF0ZSBUeXBlU2NyaXB0IHByb2dyYW1zIHNlcXVlbnRpYWxseS5cblx0ICogQ2FsbGVkIGJlZm9yZSB0cmFuc2Zvcm1Qcm9qZWN0KCkgc28gdGhhdCB0aGUgaGVhdnkgY3JlYXRlUHJvZ3JhbSB3b3JrXG5cdCAqIGNvbXBsZXRlcyBiZWZvcmUgb3RoZXIgdHJhbnNmb3JtZXJzIChTV0MvUmF5b24pIHN0YXJ0IHJ1bm5pbmcgaW4gcGFyYWxsZWwuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgaW5pdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHRcdF9maWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLiNwcm9ncmFtcyA9PSBudWxsKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2Zvcm1Qcm9qZWN0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0ZmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Ly8gQ29uc3VtZSBwcmVwYXJlZCBzdGF0ZSBmcm9tIGluaXQoKSBpZiBhdmFpbGFibGU7IG90aGVyd2lzZSBkbyBmdWxsIHNldHVwXG5cdFx0Ly8gKGUuZy4gd2F0Y2gtbW9kZSBzaW5nbGUtZmlsZSByZWJ1aWxkcyB0aGF0IHNraXAgdGhlIGluaXQgcGhhc2UpLlxuXHRcdGNvbnN0IHByb2dyYW1zID0gdGhpcy4jcHJvZ3JhbXMgPz8gKGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpKTtcblx0XHR0aGlzLiNwcm9ncmFtcyA9IHByb2dyYW1zO1xuXG5cdFx0aWYgKHByb2dyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3BvbnNlcyA9IChcblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb2dyYW1zLm1hcCgocHJvZ3JhbSkgPT4gcHJvZ3JhbS5lbWl0KGZpbHRlciwgb25PdXRwdXQpKSlcblx0XHQpLmZsYXQoKTtcblx0XHR0aGlzLmNhY2hlT3V0cHV0cyhyZXNwb25zZXMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIHByZXBhcmVQcm9ncmFtcyhcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHQpOiBQcm9taXNlPFR5cGVFbWlzc2lvblByb2dyYW1bXT4ge1xuXHRcdGNvbnN0IGFsbFByb2plY3RzID0gQXJyYXkuaXNBcnJheShwcm9qZWN0QXJyYXlMaWtlKVxuXHRcdFx0PyBwcm9qZWN0QXJyYXlMaWtlXG5cdFx0XHQ6IFtwcm9qZWN0QXJyYXlMaWtlXTtcblx0XHRjb25zdCBwcm9qZWN0cyA9IGFsbFByb2plY3RzLmZpbHRlcigocHJvaikgPT5cblx0XHRcdHByb2ouZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCkudGFyZ2V0cy5pbmNsdWRlcyhCdWlsZFRhcmdldHMudHlwZXMpLFxuXHRcdCk7XG5cdFx0aWYgKHByb2plY3RzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdC8vIFByZS1mZXRjaCBhbGwgZmlsZXMgYW5kIHRzY29uZmlncyBpbiBwYXJhbGxlbCBhY3Jvc3MgYWxsIHByb2plY3RzXG5cdFx0Y29uc3QgcHJvamVjdERhdGE6IFR5cGVQcm9ncmFtUHJvamVjdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0XHRwcm9qZWN0cy5tYXAoYXN5bmMgKHByb2opID0+ICh7XG5cdFx0XHRcdHByb2plY3Q6IHByb2osXG5cdFx0XHRcdGZpbGVzOiBhd2FpdCBwcm9qLmdldEFsbEZpbGVzKCksXG5cdFx0XHRcdHRzY29uZmlnOiBhd2FpdCBwcm9qLmdldFRzQ29uZmlnKCksXG5cdFx0XHR9KSksXG5cdFx0KTtcblxuXHRcdC8vIEdyb3VwIHByb2plY3RzIGJ5IHRoZSByZXNvbHZlZCBjb21waWxlciBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjb21waWxlclxuXHRcdC8vIGhvc3QgKGxpYiBsb2FkaW5nLCBtb2R1bGUgcmVzb2x1dGlvbiwgcGF0aCBhbGlhc2VzKS4gUHJvamVjdHMgc2hhcmluZyB0aGVcblx0XHQvLyBzYW1lIHJlc29sdmVkIHZhbHVlcyBnZXQgb25lIHNoYXJlZCBob3N0IEFORCBvbmUgc2hhcmVkIHByb2dyYW0g4oCUIGFsbCB0aGVpclxuXHRcdC8vIGZpbGVzIGFyZSBjb21waWxlZCB0b2dldGhlciwgbWF0Y2hpbmcgdjEncyBzaW5nbGUtcHJvZ3JhbSBhcHByb2FjaCB3aGljaFxuXHRcdC8vIGF2b2lkcyByZS1wYXJzaW5nIGxpYi9ub2RlX21vZHVsZXMgLmQudHMgZmlsZXMgcGVyIHByb2plY3QuXG5cdFx0Y29uc3QgZ3JvdXBzID0gTWFwLmdyb3VwQnkocHJvamVjdERhdGEsICh7IHRzY29uZmlnIH0pID0+XG5cdFx0XHR0aGlzLiNob3N0Lmhvc3RLZXkodHNjb25maWcuY29tcGlsZXJPcHRpb25zKSxcblx0XHQpO1xuXG5cdFx0cmV0dXJuIFsuLi5ncm91cHMudmFsdWVzKCldLm1hcCgoZ3JvdXApID0+IG5ldyBUeXBlRW1pc3Npb25Qcm9ncmFtKGdyb3VwLCB0aGlzLiNob3N0KSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgb25JbmNyZW1lbnRhbEZpbGVFdmVudChldnQ6IFByb2plY3RGaWxlRXZlbnQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+IHtcblx0XHRjb25zdCB7IGZpbGUsIHByb2plY3QgfSA9IGV2dDtcblx0XHRpZiAoZXZ0LmV2ZW50TmFtZSA9PT0gaW8uV2F0Y2hFdmVudHMudW5saW5rKSB7XG5cdFx0XHR0aGlzLmRlbGV0ZUNhY2hlZE91dHB1dHMoZmlsZS5mdWxsUGF0aCk7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdGlmICghcHJvamVjdC5pc1NvdXJjZUZpbGUoZmlsZSkpIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLmFkZCkge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbXM/LmZvckVhY2goKHApID0+IHtcblx0XHRcdFx0cC5hZGRGaWxlKGZpbGUsIHByb2plY3QpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUoZmlsZS5mdWxsUGF0aCk7XG5cdFx0XHR0aGlzLiNob3N0LmludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGUuZnVsbFBhdGgpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1Qcm9qZWN0KHByb2plY3QsICgpID0+IFByb21pc2UucmVzb2x2ZShbZmlsZV0pKTtcblx0fVxuXG5cdEBpbnZhbGlkYXRlQ2FjaGUoVHNQcm9ncmFtSG9zdC5wcm90b3R5cGUucmVhZEZpbGVGcm9tRGlzaywge1xuXHRcdG5hbWU6IFwiRklMRV9DT05URU5UXCIsXG5cdFx0a2V5Rm46ICguLi5hcmdzKSA9PiBhcmdzWzBdIGFzIHN0cmluZyxcblx0fSlcblx0cHJpdmF0ZSBpbnZhbGlkYXRlUmVhZEZpbGVDYWNoZShfcGF0aDogc3RyaW5nKTogdm9pZCB7fVxufVxuIl0sIm5hbWVzIjpbImludmFsaWRhdGVDYWNoZSIsIlRyYWNlIiwibWl4d2l0aCIsImlvIiwiQ2FjaGVzT3V0cHV0cyIsIkluY3JlbWVudGFsVHJhbnNmb3JtIiwiVHNQcm9ncmFtSG9zdCIsIlR5cGVFbWlzc2lvblByb2dyYW0iLCJCdWlsZFRhcmdldHMiLCJERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TIiwibGliIiwidHlwZXMiLCJza2lwTGliQ2hlY2siLCJSRVFVSVJFRF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsImVtaXREZWNsYXJhdGlvbk9ubHkiLCJkZWNsYXJhdGlvbiIsIlR5cGVFbWl0dGVyIiwiYnVpbGRUYXJnZXRzIiwiaW5pdCIsInByb2plY3RBcnJheUxpa2UiLCJfZmlsdGVyIiwicHJlcGFyZVByb2dyYW1zIiwidHJhbnNmb3JtUHJvamVjdCIsImZpbHRlciIsIm9uT3V0cHV0IiwicHJvZ3JhbXMiLCJsZW5ndGgiLCJyZXNwb25zZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwicHJvZ3JhbSIsImVtaXQiLCJmbGF0IiwiY2FjaGVPdXRwdXRzIiwiYWxsUHJvamVjdHMiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9qZWN0cyIsInByb2oiLCJnZXRGb3JnZUNvbmZpZ3VyYXRpb24iLCJ0YXJnZXRzIiwiaW5jbHVkZXMiLCJwcm9qZWN0RGF0YSIsInByb2plY3QiLCJmaWxlcyIsImdldEFsbEZpbGVzIiwidHNjb25maWciLCJnZXRUc0NvbmZpZyIsImdyb3VwcyIsIk1hcCIsImdyb3VwQnkiLCJob3N0S2V5IiwiY29tcGlsZXJPcHRpb25zIiwidmFsdWVzIiwiZ3JvdXAiLCJvbkluY3JlbWVudGFsRmlsZUV2ZW50IiwiZXZ0IiwiZmlsZSIsImV2ZW50TmFtZSIsIldhdGNoRXZlbnRzIiwidW5saW5rIiwiZGVsZXRlQ2FjaGVkT3V0cHV0cyIsImZ1bGxQYXRoIiwiaXNTb3VyY2VGaWxlIiwiYWRkIiwiZm9yRWFjaCIsInAiLCJhZGRGaWxlIiwiaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUiLCJpbnZhbGlkYXRlU291cmNlRmlsZSIsInJlc29sdmUiLCJfcGF0aCIsInByb3RvdHlwZSIsInJlYWRGaWxlRnJvbURpc2siLCJuYW1lIiwia2V5Rm4iLCJhcmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxTQUFTQSxlQUFlLFFBQVEsMEJBQTBCO0FBQzFELFNBQVNDLEtBQUssUUFBUSw4QkFBOEI7QUFDcEQsU0FBU0MsT0FBTyxRQUFRLGdDQUFnQztBQUV4RCxTQUFTQyxFQUFFLFFBQVEscUJBQXFCO0FBRXhDLE9BQU8sc0NBQXNDO0FBQzdDLFNBQVNDLGFBQWEsUUFBUSxvQ0FBb0M7QUFDbEUsU0FBU0Msb0JBQW9CLFFBQVEsMkNBQTJDO0FBQ2hGLFNBQVNDLGFBQWEsUUFBUSx1QkFBaUM7QUFDL0QsU0FDQ0MsbUJBQW1CLFFBRWIsNkJBQXVDO0FBQzlDLFNBQTJCQyxZQUFZLFFBQVEsZ0NBQWdDO0FBSS9FOzs7Ozs7Ozs7OztDQVdDLEdBQ0QsT0FBTyxNQUFNQywrQkFBNkQ7SUFDekVDLEtBQUs7UUFBQztLQUFrQjtJQUN4QkMsT0FBTyxFQUFFO0lBQ1RDLGNBQWM7QUFDZixFQUFFO0FBRUY7OztDQUdDLEdBQ0QsT0FBTyxNQUFNQyxnQ0FBOEQ7SUFDMUVDLHFCQUFxQjtJQUNyQkMsYUFBYTtBQUNkLEVBQUU7QUFHRixPQUFPLE1BQU1DLG9CQUNKZCxRQUFRRSxlQUFlQztJQUd4QlksZUFBOEI7UUFBQ1QsYUFBYUcsS0FBSztLQUFDLENBQUM7SUFDMUQsc0ZBQXNGLEdBQ3RGLENBQUEsUUFBUyxDQUFvQztJQUM3QyxDQUFBLElBQUssR0FBRyxJQUFJTCxnQkFBZ0I7SUFFNUI7Ozs7RUFJQyxHQUNELE1BQWFZLEtBQ1pDLGdCQUFxQyxFQUNyQ0MsT0FBaUQsRUFDakM7UUFDaEIsSUFBSSxJQUFJLENBQUMsQ0FBQSxRQUFTLElBQUksTUFBTTtZQUMzQixJQUFJLENBQUMsQ0FBQSxRQUFTLEdBQUcsTUFBTSxJQUFJLENBQUNDLGVBQWUsQ0FBQ0Y7UUFDN0M7SUFDRDtJQUVBLE1BQWFHLGlCQUNaSCxnQkFBcUMsRUFDckNJLE1BQWdELEVBQ2hEQyxRQUFnRCxFQUNqQjtRQUMvQiwyRUFBMkU7UUFDM0UsbUVBQW1FO1FBQ25FLE1BQU1DLFdBQVcsSUFBSSxDQUFDLENBQUEsUUFBUyxJQUFLLE1BQU0sSUFBSSxDQUFDSixlQUFlLENBQUNGO1FBQy9ELElBQUksQ0FBQyxDQUFBLFFBQVMsR0FBR007UUFFakIsSUFBSUEsU0FBU0MsTUFBTSxLQUFLLEdBQUc7WUFDMUIsT0FBTyxFQUFFO1FBQ1Y7UUFFQSxNQUFNQyxZQUFZLEFBQ2pCLENBQUEsTUFBTUMsUUFBUUMsR0FBRyxDQUFDSixTQUFTSyxHQUFHLENBQUMsQ0FBQ0MsVUFBWUEsUUFBUUMsSUFBSSxDQUFDVCxRQUFRQyxXQUFVLEVBQzFFUyxJQUFJO1FBQ04sSUFBSSxDQUFDQyxZQUFZLENBQUNQO1FBQ2xCLE9BQU9BO0lBQ1I7SUFFQSxNQUFjTixnQkFDYkYsZ0JBQXFDLEVBQ0o7UUFDakMsTUFBTWdCLGNBQWNDLE1BQU1DLE9BQU8sQ0FBQ2xCLG9CQUMvQkEsbUJBQ0E7WUFBQ0E7U0FBaUI7UUFDckIsTUFBTW1CLFdBQVdILFlBQVlaLE1BQU0sQ0FBQyxDQUFDZ0IsT0FDcENBLEtBQUtDLHFCQUFxQixHQUFHQyxPQUFPLENBQUNDLFFBQVEsQ0FBQ2xDLGFBQWFHLEtBQUs7UUFFakUsSUFBSTJCLFNBQVNaLE1BQU0sS0FBSyxHQUFHO1lBQzFCLE9BQU8sRUFBRTtRQUNWO1FBRUEsb0VBQW9FO1FBQ3BFLE1BQU1pQixjQUFvQyxNQUFNZixRQUFRQyxHQUFHLENBQzFEUyxTQUFTUixHQUFHLENBQUMsT0FBT1MsT0FBVSxDQUFBO2dCQUM3QkssU0FBU0w7Z0JBQ1RNLE9BQU8sTUFBTU4sS0FBS08sV0FBVztnQkFDN0JDLFVBQVUsTUFBTVIsS0FBS1MsV0FBVztZQUNqQyxDQUFBO1FBR0QsMkVBQTJFO1FBQzNFLDRFQUE0RTtRQUM1RSw4RUFBOEU7UUFDOUUsMkVBQTJFO1FBQzNFLDhEQUE4RDtRQUM5RCxNQUFNQyxTQUFTQyxJQUFJQyxPQUFPLENBQUNSLGFBQWEsQ0FBQyxFQUFFSSxRQUFRLEVBQUUsR0FDcEQsSUFBSSxDQUFDLENBQUEsSUFBSyxDQUFDSyxPQUFPLENBQUNMLFNBQVNNLGVBQWU7UUFHNUMsT0FBTztlQUFJSixPQUFPSyxNQUFNO1NBQUcsQ0FBQ3hCLEdBQUcsQ0FBQyxDQUFDeUIsUUFBVSxJQUFJaEQsb0JBQW9CZ0QsT0FBTyxJQUFJLENBQUMsQ0FBQSxJQUFLO0lBQ3JGO0lBRUEsTUFBZ0JDLHVCQUF1QkMsR0FBcUIsRUFBZ0M7UUFDM0YsTUFBTSxFQUFFQyxJQUFJLEVBQUVkLE9BQU8sRUFBRSxHQUFHYTtRQUMxQixJQUFJQSxJQUFJRSxTQUFTLEtBQUt4RCxHQUFHeUQsV0FBVyxDQUFDQyxNQUFNLEVBQUU7WUFDNUMsSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQ0osS0FBS0ssUUFBUTtZQUN0QyxPQUFPLEVBQUU7UUFDVjtRQUNBLElBQUksQ0FBQ25CLFFBQVFvQixZQUFZLENBQUNOLE9BQU87WUFDaEMsT0FBTyxFQUFFO1FBQ1Y7UUFDQSxJQUFJRCxJQUFJRSxTQUFTLEtBQUt4RCxHQUFHeUQsV0FBVyxDQUFDSyxHQUFHLEVBQUU7WUFDekMsSUFBSSxDQUFDLENBQUEsUUFBUyxFQUFFQyxRQUFRLENBQUNDO2dCQUN4QkEsRUFBRUMsT0FBTyxDQUFDVixNQUFNZDtZQUNqQjtRQUNELE9BQU87WUFDTixJQUFJLENBQUN5Qix1QkFBdUIsQ0FBQ1gsS0FBS0ssUUFBUTtZQUMxQyxJQUFJLENBQUMsQ0FBQSxJQUFLLENBQUNPLG9CQUFvQixDQUFDWixLQUFLSyxRQUFRO1FBQzlDO1FBQ0EsT0FBTyxJQUFJLENBQUN6QyxnQkFBZ0IsQ0FBQ3NCLFNBQVMsSUFBTWhCLFFBQVEyQyxPQUFPLENBQUM7Z0JBQUNiO2FBQUs7SUFDbkU7SUFNUVcsd0JBQXdCRyxLQUFhLEVBQVEsQ0FBQztBQUN2RDs7a0NBTGdDQyxVQUFVQztRQUN4Q0MsTUFBTTtRQUNOQyxPQUFPLENBQUMsR0FBR0MsT0FBU0EsSUFBSSxDQUFDLEVBQUU7Ozs7OzsyQ0FFb0IifQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBQcm9qZWN0RmlsZUV2ZW50IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NhY2hpbmdcIjtcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9kaWFnbm9zdGljc1wiO1xuaW1wb3J0IHsgbWl4d2l0aCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZXh0ZW5zaWJpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBGaWxlRXggfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgeyBpbyB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgXCIuLi9leHRlbnNpb25zL3Byb2plY3QuZXh0ZW5zaW9ucy5qc1wiO1xuaW1wb3J0IHsgQ2FjaGVzT3V0cHV0cyB9IGZyb20gXCIuLi9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4uanNcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsVHJhbnNmb3JtIH0gZnJvbSBcIi4uL21peGlucy9pbmNyZW1lbnRhbC10cmFuc2Zvcm0ubWl4aW4uanNcIjtcbmltcG9ydCB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQge1xuXHRUeXBlRW1pc3Npb25Qcm9ncmFtLFxuXHR0eXBlIFR5cGVQcm9ncmFtUHJvamVjdCxcbn0gZnJvbSBcIi4uL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9uIGRlZmF1bHRzIGFwcGxpZWQgYmVmb3JlIHRoZSB1c2VyJ3MgdHNjb25maWcg4oCUIHRoZSB1c2VyJ3MgdmFsdWVzIG92ZXJyaWRlIHRoZXNlLlxuICpcbiAqIGxpYjogRVMyMDIyIOKAlCBhdm9pZHMgbG9hZGluZyBsaWIuZG9tLmQudHMgKDEuOCBNQikgd2hpY2ggVFMgaW5jbHVkZXMgYnkgZGVmYXVsdFxuICogd2hlbiBubyBgbGliYCBpcyBzZXQuIEJhY2tlbmQgcGFja2FnZXMgaGF2ZSBubyB1c2UgZm9yIGJyb3dzZXIgQVBJcy5cbiAqXG4gKiB0eXBlczogW10g4oCUIGRpc2FibGVzIGFtYmllbnQgQHR5cGVzIGF1dG8tZGlzY292ZXJ5LiBXaXRob3V0IHRoaXMsIFRTIHNjYW5zXG4gKiBldmVyeSBAdHlwZXMvKiBwYWNrYWdlIGluIHRoZSBub2RlX21vZHVsZXMgaGllcmFyY2h5OyBpbiBhIG1vbm9yZXBvIHRoYXQgY2FuXG4gKiBwdWxsIGluIGRvemVucyBvZiB1bnJlbGF0ZWQgcGFja2FnZXMuIEV4cGxpY2l0bHkgaW1wb3J0ZWQgdHlwZXMgc3RpbGwgcmVzb2x2ZVxuICogbm9ybWFsbHk7IG9ubHkgYW1iaWVudCBnbG9iYWxzIChlLmcuIEJ1ZmZlciwgcHJvY2VzcykgYXJlIHN1cHByZXNzZWQg4oCUIGFkZFxuICogYHR5cGVzOiBbXCJub2RlXCJdYCB0byBhIHByb2plY3QncyB0c2NvbmZpZyB0byByZXN0b3JlIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRsaWI6IFtcImxpYi5lczIwMjIuZC50c1wiXSxcblx0dHlwZXM6IFtdLFxuXHRza2lwTGliQ2hlY2s6IHRydWUsXG59O1xuXG4vKipcbiAqIENvbXBpbGVyIG9wdGlvbnMgdGhhdCBUeXBlRW1pdHRlciBhbHdheXMgZW5mb3JjZXMgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyJ3NcbiAqIHRzY29uZmlnIHNwZWNpZmllcy4gQXBwbGllZCBhZnRlciB0aGUgdXNlciBzcHJlYWQgc28gdGhleSBjYW5ub3QgYmUgb3ZlcnJpZGRlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRlbWl0RGVjbGFyYXRpb25Pbmx5OiB0cnVlLFxuXHRkZWNsYXJhdGlvbjogdHJ1ZSxcbn07XG5cbi8qKiBDb21waWxlciBvcHRpb25zIGVuZm9yY2VkIGZvciBgZm9yZ2UgdHlwZWNoZWNrYCDigJQgbmV2ZXIgZW1pdCBKUyBvciBkZWNsYXJhdGlvbnMuICovXG5leHBvcnQgY29uc3QgUkVRVUlSRURfVFlQRV9DSEVDS19PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRub0VtaXQ6IHRydWUsXG59O1xuXG5leHBvcnQgdHlwZSBQcmVwYXJlUHJvZ3JhbXNPcHRpb25zID0ge1xuXHRpbmNsdWRlQWxsUHJvamVjdHM/OiBib29sZWFuO1xuXHRyZXF1aXJlZENvbXBpbGVyT3B0aW9ucz86IHRzLkNvbXBpbGVyT3B0aW9ucztcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFR5cGVFbWl0dGVyXG5cdGV4dGVuZHMgbWl4d2l0aChDYWNoZXNPdXRwdXRzLCBJbmNyZW1lbnRhbFRyYW5zZm9ybSlcblx0aW1wbGVtZW50cyBUcmFuc2Zvcm1lclxue1xuXHRwdWJsaWMgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdID0gW0J1aWxkVGFyZ2V0cy50eXBlc107XG5cdC8qKiBQcmVwYXJlZCBwcm9ncmFtcyBmcm9tIGluaXQoKSwgY29uc3VtZWQgb25jZSBieSB0aGUgbmV4dCB0cmFuc2Zvcm1Qcm9qZWN0KCkgY2FsbC4gKi9cblx0I3Byb2dyYW1zOiBUeXBlRW1pc3Npb25Qcm9ncmFtW10gfCB1bmRlZmluZWQ7XG5cdCNob3N0ID0gbmV3IFRzUHJvZ3JhbUhvc3QoKTtcblxuXHQvKipcblx0ICogUGhhc2UgMTogZmV0Y2ggZmlsZXMsIGNyZWF0ZSBUeXBlU2NyaXB0IHByb2dyYW1zIHNlcXVlbnRpYWxseS5cblx0ICogQ2FsbGVkIGJlZm9yZSB0cmFuc2Zvcm1Qcm9qZWN0KCkgc28gdGhhdCB0aGUgaGVhdnkgY3JlYXRlUHJvZ3JhbSB3b3JrXG5cdCAqIGNvbXBsZXRlcyBiZWZvcmUgb3RoZXIgdHJhbnNmb3JtZXJzIChTV0MvUmF5b24pIHN0YXJ0IHJ1bm5pbmcgaW4gcGFyYWxsZWwuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgaW5pdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHRcdF9maWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLiNwcm9ncmFtcyA9PSBudWxsKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2Zvcm1Qcm9qZWN0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0ZmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Ly8gQ29uc3VtZSBwcmVwYXJlZCBzdGF0ZSBmcm9tIGluaXQoKSBpZiBhdmFpbGFibGU7IG90aGVyd2lzZSBkbyBmdWxsIHNldHVwXG5cdFx0Ly8gKGUuZy4gd2F0Y2gtbW9kZSBzaW5nbGUtZmlsZSByZWJ1aWxkcyB0aGF0IHNraXAgdGhlIGluaXQgcGhhc2UpLlxuXHRcdGNvbnN0IHByb2dyYW1zID0gdGhpcy4jcHJvZ3JhbXMgPz8gKGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpKTtcblx0XHR0aGlzLiNwcm9ncmFtcyA9IHByb2dyYW1zO1xuXG5cdFx0aWYgKHByb2dyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3BvbnNlcyA9IChcblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb2dyYW1zLm1hcCgocHJvZ3JhbSkgPT4gcHJvZ3JhbS5lbWl0KGZpbHRlciwgb25PdXRwdXQpKSlcblx0XHQpLmZsYXQoKTtcblx0XHR0aGlzLmNhY2hlT3V0cHV0cyhyZXNwb25zZXMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHQvKipcblx0ICogVHlwZS1jaGVjayBwcm9qZWN0cyB3aXRob3V0IGVtaXR0aW5nIGZpbGVzLiBJbmNsdWRlcyBldmVyeSBNZXNoIHByb2plY3QsIG5vdFxuXHQgKiBvbmx5IHRob3NlIHdpdGggYSBgdHlwZXNgIGJ1aWxkIHRhcmdldCAoZGVidWcgaXMgZXM2LW9ubHkpLlxuXHQgKi9cblx0cHVibGljIGFzeW5jIGNoZWNrUHJvamVjdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHQpOiBQcm9taXNlPHsgZGlhZ25vc3RpY3M6IHRzLkRpYWdub3N0aWNbXTsgZm9ybWF0dGVkOiBzdHJpbmcgfT4ge1xuXHRcdGNvbnN0IHByb2dyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlUHJvZ3JhbXMocHJvamVjdEFycmF5TGlrZSwge1xuXHRcdFx0aW5jbHVkZUFsbFByb2plY3RzOiB0cnVlLFxuXHRcdFx0cmVxdWlyZWRDb21waWxlck9wdGlvbnM6IFJFUVVJUkVEX1RZUEVfQ0hFQ0tfT1BUSU9OUyxcblx0XHR9KTtcblx0XHRjb25zdCBkaWFnbm9zdGljczogdHMuRGlhZ25vc3RpY1tdID0gW107XG5cdFx0Y29uc3QgZm9ybWF0dGVkUGFydHM6IHN0cmluZ1tdID0gW107XG5cdFx0Zm9yIChjb25zdCBwcm9ncmFtIG9mIHByb2dyYW1zKSB7XG5cdFx0XHRjb25zdCBwcm9ncmFtRGlhZ25vc3RpY3MgPSBwcm9ncmFtLmNoZWNrKCk7XG5cdFx0XHRpZiAocHJvZ3JhbURpYWdub3N0aWNzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGRpYWdub3N0aWNzLnB1c2goLi4ucHJvZ3JhbURpYWdub3N0aWNzKTtcblx0XHRcdGZvcm1hdHRlZFBhcnRzLnB1c2gocHJvZ3JhbS5mb3JtYXREaWFnbm9zdGljcyhwcm9ncmFtRGlhZ25vc3RpY3MpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgZGlhZ25vc3RpY3MsIGZvcm1hdHRlZDogZm9ybWF0dGVkUGFydHMuam9pbihcIlwiKSB9O1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBwcmVwYXJlUHJvZ3JhbXMoXG5cdFx0cHJvamVjdEFycmF5TGlrZTogUHJvamVjdFtdIHwgUHJvamVjdCxcblx0XHRvcHRpb25zOiBQcmVwYXJlUHJvZ3JhbXNPcHRpb25zID0ge30sXG5cdCk6IFByb21pc2U8VHlwZUVtaXNzaW9uUHJvZ3JhbVtdPiB7XG5cdFx0Y29uc3QgYWxsUHJvamVjdHMgPSBBcnJheS5pc0FycmF5KHByb2plY3RBcnJheUxpa2UpXG5cdFx0XHQ/IHByb2plY3RBcnJheUxpa2Vcblx0XHRcdDogW3Byb2plY3RBcnJheUxpa2VdO1xuXHRcdGNvbnN0IHByb2plY3RzID0gb3B0aW9ucy5pbmNsdWRlQWxsUHJvamVjdHNcblx0XHRcdD8gYWxsUHJvamVjdHNcblx0XHRcdDogYWxsUHJvamVjdHMuZmlsdGVyKChwcm9qKSA9PlxuXHRcdFx0XHRcdHByb2ouZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCkudGFyZ2V0cy5pbmNsdWRlcyhCdWlsZFRhcmdldHMudHlwZXMpLFxuXHRcdFx0XHQpO1xuXHRcdGlmIChwcm9qZWN0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cblx0XHQvLyBQcmUtZmV0Y2ggYWxsIGZpbGVzIGFuZCB0c2NvbmZpZ3MgaW4gcGFyYWxsZWwgYWNyb3NzIGFsbCBwcm9qZWN0c1xuXHRcdGNvbnN0IHByb2plY3REYXRhOiBUeXBlUHJvZ3JhbVByb2plY3RbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuXHRcdFx0cHJvamVjdHMubWFwKGFzeW5jIChwcm9qKSA9PiAoe1xuXHRcdFx0XHRwcm9qZWN0OiBwcm9qLFxuXHRcdFx0XHRmaWxlczogYXdhaXQgcHJvai5nZXRBbGxGaWxlcygpLFxuXHRcdFx0XHR0c2NvbmZpZzogYXdhaXQgcHJvai5nZXRUc0NvbmZpZygpLFxuXHRcdFx0fSkpLFxuXHRcdCk7XG5cblx0XHQvLyBHcm91cCBwcm9qZWN0cyBieSB0aGUgcmVzb2x2ZWQgY29tcGlsZXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY29tcGlsZXJcblx0XHQvLyBob3N0IChsaWIgbG9hZGluZywgbW9kdWxlIHJlc29sdXRpb24sIHBhdGggYWxpYXNlcykuIFByb2plY3RzIHNoYXJpbmcgdGhlXG5cdFx0Ly8gc2FtZSByZXNvbHZlZCB2YWx1ZXMgZ2V0IG9uZSBzaGFyZWQgaG9zdCBBTkQgb25lIHNoYXJlZCBwcm9ncmFtIOKAlCBhbGwgdGhlaXJcblx0XHQvLyBmaWxlcyBhcmUgY29tcGlsZWQgdG9nZXRoZXIsIG1hdGNoaW5nIHYxJ3Mgc2luZ2xlLXByb2dyYW0gYXBwcm9hY2ggd2hpY2hcblx0XHQvLyBhdm9pZHMgcmUtcGFyc2luZyBsaWIvbm9kZV9tb2R1bGVzIC5kLnRzIGZpbGVzIHBlciBwcm9qZWN0LlxuXHRcdGNvbnN0IGdyb3VwcyA9IE1hcC5ncm91cEJ5KHByb2plY3REYXRhLCAoeyB0c2NvbmZpZyB9KSA9PlxuXHRcdFx0dGhpcy4jaG9zdC5ob3N0S2V5KHRzY29uZmlnLmNvbXBpbGVyT3B0aW9ucyksXG5cdFx0KTtcblxuXHRcdGNvbnN0IHJlcXVpcmVkQ29tcGlsZXJPcHRpb25zID1cblx0XHRcdG9wdGlvbnMucmVxdWlyZWRDb21waWxlck9wdGlvbnMgPz8gUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlM7XG5cdFx0cmV0dXJuIFsuLi5ncm91cHMudmFsdWVzKCldLm1hcChcblx0XHRcdChncm91cCkgPT4gbmV3IFR5cGVFbWlzc2lvblByb2dyYW0oZ3JvdXAsIHRoaXMuI2hvc3QsIHJlcXVpcmVkQ29tcGlsZXJPcHRpb25zKSxcblx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIG9uSW5jcmVtZW50YWxGaWxlRXZlbnQoZXZ0OiBQcm9qZWN0RmlsZUV2ZW50KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3QgeyBmaWxlLCBwcm9qZWN0IH0gPSBldnQ7XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLnVubGluaykge1xuXHRcdFx0dGhpcy5kZWxldGVDYWNoZWRPdXRwdXRzKGZpbGUuZnVsbFBhdGgpO1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRpZiAoIXByb2plY3QuaXNTb3VyY2VGaWxlKGZpbGUpKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdGlmIChldnQuZXZlbnROYW1lID09PSBpby5XYXRjaEV2ZW50cy5hZGQpIHtcblx0XHRcdHRoaXMuI3Byb2dyYW1zPy5mb3JFYWNoKChwKSA9PiB7XG5cdFx0XHRcdHAuYWRkRmlsZShmaWxlLCBwcm9qZWN0KTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmludmFsaWRhdGVSZWFkRmlsZUNhY2hlKGZpbGUuZnVsbFBhdGgpO1xuXHRcdFx0dGhpcy4jaG9zdC5pbnZhbGlkYXRlU291cmNlRmlsZShmaWxlLmZ1bGxQYXRoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudHJhbnNmb3JtUHJvamVjdChwcm9qZWN0LCAoKSA9PiBQcm9taXNlLnJlc29sdmUoW2ZpbGVdKSk7XG5cdH1cblxuXHRAaW52YWxpZGF0ZUNhY2hlKFRzUHJvZ3JhbUhvc3QucHJvdG90eXBlLnJlYWRGaWxlRnJvbURpc2ssIHtcblx0XHRuYW1lOiBcIkZJTEVfQ09OVEVOVFwiLFxuXHRcdGtleUZuOiAoLi4uYXJncykgPT4gYXJnc1swXSBhcyBzdHJpbmcsXG5cdH0pXG5cdHByaXZhdGUgaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUoX3BhdGg6IHN0cmluZyk6IHZvaWQge31cbn1cbiJdLCJuYW1lcyI6WyJpbnZhbGlkYXRlQ2FjaGUiLCJUcmFjZSIsIm1peHdpdGgiLCJpbyIsIkNhY2hlc091dHB1dHMiLCJJbmNyZW1lbnRhbFRyYW5zZm9ybSIsIlRzUHJvZ3JhbUhvc3QiLCJUeXBlRW1pc3Npb25Qcm9ncmFtIiwiQnVpbGRUYXJnZXRzIiwiREVGQVVMVF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsImxpYiIsInR5cGVzIiwic2tpcExpYkNoZWNrIiwiUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlMiLCJlbWl0RGVjbGFyYXRpb25Pbmx5IiwiZGVjbGFyYXRpb24iLCJSRVFVSVJFRF9UWVBFX0NIRUNLX09QVElPTlMiLCJub0VtaXQiLCJUeXBlRW1pdHRlciIsImJ1aWxkVGFyZ2V0cyIsImluaXQiLCJwcm9qZWN0QXJyYXlMaWtlIiwiX2ZpbHRlciIsInByZXBhcmVQcm9ncmFtcyIsInRyYW5zZm9ybVByb2plY3QiLCJmaWx0ZXIiLCJvbk91dHB1dCIsInByb2dyYW1zIiwibGVuZ3RoIiwicmVzcG9uc2VzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInByb2dyYW0iLCJlbWl0IiwiZmxhdCIsImNhY2hlT3V0cHV0cyIsImNoZWNrUHJvamVjdCIsImluY2x1ZGVBbGxQcm9qZWN0cyIsInJlcXVpcmVkQ29tcGlsZXJPcHRpb25zIiwiZGlhZ25vc3RpY3MiLCJmb3JtYXR0ZWRQYXJ0cyIsInByb2dyYW1EaWFnbm9zdGljcyIsImNoZWNrIiwicHVzaCIsImZvcm1hdERpYWdub3N0aWNzIiwiZm9ybWF0dGVkIiwiam9pbiIsIm9wdGlvbnMiLCJhbGxQcm9qZWN0cyIsIkFycmF5IiwiaXNBcnJheSIsInByb2plY3RzIiwicHJvaiIsImdldEZvcmdlQ29uZmlndXJhdGlvbiIsInRhcmdldHMiLCJpbmNsdWRlcyIsInByb2plY3REYXRhIiwicHJvamVjdCIsImZpbGVzIiwiZ2V0QWxsRmlsZXMiLCJ0c2NvbmZpZyIsImdldFRzQ29uZmlnIiwiZ3JvdXBzIiwiTWFwIiwiZ3JvdXBCeSIsImhvc3RLZXkiLCJjb21waWxlck9wdGlvbnMiLCJ2YWx1ZXMiLCJncm91cCIsIm9uSW5jcmVtZW50YWxGaWxlRXZlbnQiLCJldnQiLCJmaWxlIiwiZXZlbnROYW1lIiwiV2F0Y2hFdmVudHMiLCJ1bmxpbmsiLCJkZWxldGVDYWNoZWRPdXRwdXRzIiwiZnVsbFBhdGgiLCJpc1NvdXJjZUZpbGUiLCJhZGQiLCJmb3JFYWNoIiwicCIsImFkZEZpbGUiLCJpbnZhbGlkYXRlUmVhZEZpbGVDYWNoZSIsImludmFsaWRhdGVTb3VyY2VGaWxlIiwicmVzb2x2ZSIsIl9wYXRoIiwicHJvdG90eXBlIiwicmVhZEZpbGVGcm9tRGlzayIsIm5hbWUiLCJrZXlGbiIsImFyZ3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLFNBQVNBLGVBQWUsUUFBUSwwQkFBMEI7QUFDMUQsU0FBU0MsS0FBSyxRQUFRLDhCQUE4QjtBQUNwRCxTQUFTQyxPQUFPLFFBQVEsZ0NBQWdDO0FBRXhELFNBQVNDLEVBQUUsUUFBUSxxQkFBcUI7QUFFeEMsT0FBTyxzQ0FBc0M7QUFDN0MsU0FBU0MsYUFBYSxRQUFRLG9D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
@@ -4,4 +4,4 @@ export class SwcConfig {
4
4
  }
5
5
  }
6
6
 
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9zd2MtY29uZmlnLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUc2NvbmZpZyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuXG5leHBvcnQgdHlwZSBTd2NDb25maWdPcHRpb25zID0ge1xuXHRhbGlhc1BhdGhzPzogYm9vbGVhbjtcblx0dHNDb25maWc/OiBUc2NvbmZpZztcblx0dXNlckNvbmZpZz86IFN3Y0NvbmZpZztcbn07XG5cbmV4cG9ydCBjbGFzcyBTd2NDb25maWcge1xuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogUGFydGlhbDxTd2NDb25maWc+ID0ge30pIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiU3djQ29uZmlnIiwiZGF0YSIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxNQUFNQTtJQUNaLFlBQW1CQyxPQUEyQixDQUFDLENBQUMsQ0FBRTtRQUNqREMsT0FBT0MsTUFBTSxDQUFDLElBQUksRUFBRUY7SUFDckI7QUFDRCJ9
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9zd2MtY29uZmlnLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBUc2NvbmZpZywgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbmV4cG9ydCB0eXBlIFN3Y0NvbmZpZ09wdGlvbnMgPSB7XG5cdGFsaWFzUGF0aHM/OiBib29sZWFuO1xuXHR0c0NvbmZpZz86IFRzY29uZmlnO1xuXHR1c2VyQ29uZmlnPzogU3djQ29uZmlnO1xuXHQvKiogV2hlbiBzZXQsIGNvbnZlbnRpb24gYWxpYXNlcyBjb21lIGZyb20gdGhlIGZ1bGwgd29ya3NwYWNlIHBhY2thZ2UgbGlzdC4gKi9cblx0d29ya3NwYWNlPzogV29ya3NwYWNlO1xuXHQvKiogRmFsbGJhY2sgcGFja2FnZSBsaXN0IHdoZW4gYHdvcmtzcGFjZWAgaXMgbm90IHNldCAoZS5nLiBhIHRyYW5zZm9ybSBiYXRjaCkuICovXG5cdHByb2plY3RzPzogcmVhZG9ubHkgUHJvamVjdFtdO1xufTtcblxuZXhwb3J0IGNsYXNzIFN3Y0NvbmZpZyB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPFN3Y0NvbmZpZz4gPSB7fSkge1xuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJTd2NDb25maWciLCJkYXRhIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFZQSxPQUFPLE1BQU1BO0lBQ1osWUFBbUJDLE9BQTJCLENBQUMsQ0FBQyxDQUFFO1FBQ2pEQyxPQUFPQyxNQUFNLENBQUMsSUFBSSxFQUFFRjtJQUNyQjtBQUNEIn0=
@@ -35,6 +35,7 @@ export class TransformResponse {
35
35
  outcome;
36
36
  target;
37
37
  code;
38
+ sourceContent;
38
39
  fileName;
39
40
  messages;
40
41
  config;
@@ -43,4 +44,4 @@ export class TransformResponse {
43
44
  outputPath;
44
45
  }
45
46
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4vYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtT3V0Y29tZSA9IFwic3VjY2Vzc1wiIHwgXCJmYWlsdXJlXCIgfCBcInNraXBwZWRcIjtcbmV4cG9ydCBjb25zdCBUcmFuc2Zvcm1PdXRjb21lcyA9IHtcblx0c3VjY2VzczogXCJzdWNjZXNzXCIsXG5cdGZhaWx1cmU6IFwiZmFpbHVyZVwiLFxuXHRza2lwcGVkOiBcInNraXBwZWRcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFRyYW5zZm9ybU91dGNvbWU+O1xuXG50eXBlIFRyYW5zZm9ybVJlc3BvbnNlQmFzZSA9IHtcblx0ZmlsZTogRmlsZTtcblx0Y29uZmlnOiB1bmtub3duO1xuXHRwcm9qZWN0PzogUHJvamVjdDtcblx0LyoqIEFic29sdXRlIGRpcmVjdG9yeSB0aGF0IHdpbGwgY29udGFpbiB0aGUgb3V0cHV0IGZpbGUuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dERpcj86IHN0cmluZztcblx0LyoqIEFic29sdXRlIHBhdGggb2YgdGhlIG91dHB1dCBmaWxlIChvdXRwdXREaXIgKyBmaWxlTmFtZSkuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dFBhdGg/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVN1Y2Nlc3MgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic3VjY2Vzc1wiO1xuXHRjb2RlOiBzdHJpbmc7XG5cdG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHRhcmdldDogQnVpbGRUYXJnZXQ7XG5cdGZpbGVOYW1lOiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybUZhaWx1cmUgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwiZmFpbHVyZVwiO1xuXHRtZXNzYWdlcz86IHN0cmluZ1tdO1xuXHR0YXJnZXQ/OiBCdWlsZFRhcmdldDtcblx0ZmlsZU5hbWU/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVNraXBwZWQgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic2tpcHBlZFwiO1xuXHRtZXNzYWdlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufTtcblxudHlwZSBUcmFuc2Zvcm1SZXNwb25zZURhdGE8VCBleHRlbmRzIFRyYW5zZm9ybU91dGNvbWUgPSBUcmFuc2Zvcm1PdXRjb21lPiA9IFQgZXh0ZW5kcyBcInN1Y2Nlc3NcIlxuXHQ/IFRyYW5zZm9ybVN1Y2Nlc3Ncblx0OiBUIGV4dGVuZHMgXCJza2lwcGVkXCJcblx0XHQ/IFRyYW5zZm9ybVNraXBwZWRcblx0XHQ6IFRyYW5zZm9ybUZhaWx1cmU7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdHB1YmxpYyBzdGF0aWMgU3VjY2VzcyhkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcInN1Y2Nlc3NcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcInN1Y2Nlc3NcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgRXJyb3IoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJmYWlsdXJlXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJmYWlsdXJlXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIFNraXBwZWQoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJza2lwcGVkXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJza2lwcGVkXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGZyb20oZGF0YTogVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhIH0gYXMgVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxUcmFuc2Zvcm1SZXNwb25zZURhdGE+KSB7XG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcblx0fVxuXG5cdC8vIFByb3BlcnRpZXMgYXJlIHBvcHVsYXRlZCB2aWEgT2JqZWN0LmFzc2lnbiBpbiB0aGUgY29uc3RydWN0b3IuXG5cdHB1YmxpYyByZWFkb25seSBmaWxlITogRmlsZTtcblx0cHVibGljIHJlYWRvbmx5IG91dGNvbWUhOiBUcmFuc2Zvcm1PdXRjb21lO1xuXHRwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0PzogQnVpbGRUYXJnZXQ7XG5cdHB1YmxpYyByZWFkb25seSBjb2RlITogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgZmlsZU5hbWU/OiBzdHJpbmc7XG5cdHB1YmxpYyByZWFkb25seSBtZXNzYWdlcz86IHN0cmluZ1tdO1xuXHRwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiB1bmtub3duO1xuXHRwdWJsaWMgcmVhZG9ubHkgcHJvamVjdD86IFByb2plY3Q7XG5cdHB1YmxpYyByZWFkb25seSBvdXRwdXREaXI/OiBzdHJpbmc7XG5cdHB1YmxpYyByZWFkb25seSBvdXRwdXRQYXRoPzogc3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbIlRyYW5zZm9ybU91dGNvbWVzIiwic3VjY2VzcyIsImZhaWx1cmUiLCJza2lwcGVkIiwiVHJhbnNmb3JtUmVzcG9uc2UiLCJTdWNjZXNzIiwiZGF0YSIsIm91dGNvbWUiLCJFcnJvciIsIlNraXBwZWQiLCJmcm9tIiwiT2JqZWN0IiwiYXNzaWduIiwiZmlsZSIsInRhcmdldCIsImNvZGUiLCJmaWxlTmFtZSIsIm1lc3NhZ2VzIiwiY29uZmlnIiwicHJvamVjdCIsIm91dHB1dERpciIsIm91dHB1dFBhdGgiXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sTUFBTUEsb0JBQW9CO0lBQ2hDQyxTQUFTO0lBQ1RDLFNBQVM7SUFDVEMsU0FBUztBQUNWLEVBQTZDO0FBc0M3QyxPQUFPLE1BQU1DO0lBQ1osT0FBY0MsUUFBUUMsSUFBdUQsRUFBRTtRQUM5RSxPQUFPLElBQUlGLGtCQUFrQjtZQUFFLEdBQUdFLElBQUk7WUFBRUMsU0FBUztRQUFtQjtJQUNyRTtJQUVBLE9BQWNDLE1BQU1GLElBQXVELEVBQUU7UUFDNUUsT0FBTyxJQUFJRixrQkFBa0I7WUFBRSxHQUFHRSxJQUFJO1lBQUVDLFNBQVM7UUFBbUI7SUFDckU7SUFFQSxPQUFjRSxRQUFRSCxJQUF1RCxFQUFFO1FBQzlFLE9BQU8sSUFBSUYsa0JBQWtCO1lBQUUsR0FBR0UsSUFBSTtZQUFFQyxTQUFTO1FBQW1CO0lBQ3JFO0lBRUEsT0FBY0csS0FBS0osSUFBMkIsRUFBcUI7UUFDbEUsT0FBTyxJQUFJRixrQkFBa0I7WUFBRSxHQUFHRSxJQUFJO1FBQUM7SUFDeEM7SUFFQSxZQUFtQkEsSUFBcUMsQ0FBRTtRQUN6REssT0FBT0MsTUFBTSxDQUFDLElBQUksRUFBRU47SUFDckI7SUFFQSxpRUFBaUU7SUFDakRPLEtBQVk7SUFDWk4sUUFBMkI7SUFDM0JPLE9BQXFCO0lBQ3JCQyxLQUFjO0lBQ2RDLFNBQWtCO0lBQ2xCQyxTQUFvQjtJQUNwQkMsT0FBZ0I7SUFDaEJDLFFBQWtCO0lBQ2xCQyxVQUFtQjtJQUNuQkMsV0FBb0I7QUFDckMifQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4vYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtT3V0Y29tZSA9IFwic3VjY2Vzc1wiIHwgXCJmYWlsdXJlXCIgfCBcInNraXBwZWRcIjtcbmV4cG9ydCBjb25zdCBUcmFuc2Zvcm1PdXRjb21lcyA9IHtcblx0c3VjY2VzczogXCJzdWNjZXNzXCIsXG5cdGZhaWx1cmU6IFwiZmFpbHVyZVwiLFxuXHRza2lwcGVkOiBcInNraXBwZWRcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFRyYW5zZm9ybU91dGNvbWU+O1xuXG50eXBlIFRyYW5zZm9ybVJlc3BvbnNlQmFzZSA9IHtcblx0ZmlsZTogRmlsZTtcblx0Y29uZmlnOiB1bmtub3duO1xuXHRwcm9qZWN0PzogUHJvamVjdDtcblx0LyoqIEFic29sdXRlIGRpcmVjdG9yeSB0aGF0IHdpbGwgY29udGFpbiB0aGUgb3V0cHV0IGZpbGUuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dERpcj86IHN0cmluZztcblx0LyoqIEFic29sdXRlIHBhdGggb2YgdGhlIG91dHB1dCBmaWxlIChvdXRwdXREaXIgKyBmaWxlTmFtZSkuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dFBhdGg/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVN1Y2Nlc3MgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic3VjY2Vzc1wiO1xuXHRjb2RlOiBzdHJpbmc7XG5cdHNvdXJjZUNvbnRlbnQ/OiBzdHJpbmc7XG5cdG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHRhcmdldDogQnVpbGRUYXJnZXQ7XG5cdGZpbGVOYW1lOiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybUZhaWx1cmUgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwiZmFpbHVyZVwiO1xuXHRtZXNzYWdlcz86IHN0cmluZ1tdO1xuXHR0YXJnZXQ/OiBCdWlsZFRhcmdldDtcblx0ZmlsZU5hbWU/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVNraXBwZWQgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic2tpcHBlZFwiO1xuXHRtZXNzYWdlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufTtcblxudHlwZSBUcmFuc2Zvcm1SZXNwb25zZURhdGE8VCBleHRlbmRzIFRyYW5zZm9ybU91dGNvbWUgPSBUcmFuc2Zvcm1PdXRjb21lPiA9IFQgZXh0ZW5kcyBcInN1Y2Nlc3NcIlxuXHQ/IFRyYW5zZm9ybVN1Y2Nlc3Ncblx0OiBUIGV4dGVuZHMgXCJza2lwcGVkXCJcblx0XHQ/IFRyYW5zZm9ybVNraXBwZWRcblx0XHQ6IFRyYW5zZm9ybUZhaWx1cmU7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdHB1YmxpYyBzdGF0aWMgU3VjY2VzcyhkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcInN1Y2Nlc3NcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcInN1Y2Nlc3NcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgRXJyb3IoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJmYWlsdXJlXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJmYWlsdXJlXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIFNraXBwZWQoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJza2lwcGVkXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJza2lwcGVkXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGZyb20oZGF0YTogVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhIH0gYXMgVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxUcmFuc2Zvcm1SZXNwb25zZURhdGE+KSB7XG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcblx0fVxuXG5cdC8vIFByb3BlcnRpZXMgYXJlIHBvcHVsYXRlZCB2aWEgT2JqZWN0LmFzc2lnbiBpbiB0aGUgY29uc3RydWN0b3IuXG5cdHB1YmxpYyByZWFkb25seSBmaWxlITogRmlsZTtcblx0cHVibGljIHJlYWRvbmx5IG91dGNvbWUhOiBUcmFuc2Zvcm1PdXRjb21lO1xuXHRwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0PzogQnVpbGRUYXJnZXQ7XG5cdHB1YmxpYyByZWFkb25seSBjb2RlITogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgc291cmNlQ29udGVudD86IHN0cmluZztcblx0cHVibGljIHJlYWRvbmx5IGZpbGVOYW1lPzogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZXM/OiBzdHJpbmdbXTtcblx0cHVibGljIHJlYWRvbmx5IGNvbmZpZzogdW5rbm93bjtcblx0cHVibGljIHJlYWRvbmx5IHByb2plY3Q/OiBQcm9qZWN0O1xuXHRwdWJsaWMgcmVhZG9ubHkgb3V0cHV0RGlyPzogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgb3V0cHV0UGF0aD86IHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJUcmFuc2Zvcm1PdXRjb21lcyIsInN1Y2Nlc3MiLCJmYWlsdXJlIiwic2tpcHBlZCIsIlRyYW5zZm9ybVJlc3BvbnNlIiwiU3VjY2VzcyIsImRhdGEiLCJvdXRjb21lIiwiRXJyb3IiLCJTa2lwcGVkIiwiZnJvbSIsIk9iamVjdCIsImFzc2lnbiIsImZpbGUiLCJ0YXJnZXQiLCJjb2RlIiwic291cmNlQ29udGVudCIsImZpbGVOYW1lIiwibWVzc2FnZXMiLCJjb25maWciLCJwcm9qZWN0Iiwib3V0cHV0RGlyIiwib3V0cHV0UGF0aCJdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxNQUFNQSxvQkFBb0I7SUFDaENDLFNBQVM7SUFDVEMsU0FBUztJQUNUQyxTQUFTO0FBQ1YsRUFBNkM7QUF1QzdDLE9BQU8sTUFBTUM7SUFDWixPQUFjQyxRQUFRQyxJQUF1RCxFQUFFO1FBQzlFLE9BQU8sSUFBSUYsa0JBQWtCO1lBQUUsR0FBR0UsSUFBSTtZQUFFQyxTQUFTO1FBQW1CO0lBQ3JFO0lBRUEsT0FBY0MsTUFBTUYsSUFBdUQsRUFBRTtRQUM1RSxPQUFPLElBQUlGLGtCQUFrQjtZQUFFLEdBQUdFLElBQUk7WUFBRUMsU0FBUztRQUFtQjtJQUNyRTtJQUVBLE9BQWNFLFFBQVFILElBQXVELEVBQUU7UUFDOUUsT0FBTyxJQUFJRixrQkFBa0I7WUFBRSxHQUFHRSxJQUFJO1lBQUVDLFNBQVM7UUFBbUI7SUFDckU7SUFFQSxPQUFjRyxLQUFLSixJQUEyQixFQUFxQjtRQUNsRSxPQUFPLElBQUlGLGtCQUFrQjtZQUFFLEdBQUdFLElBQUk7UUFBQztJQUN4QztJQUVBLFlBQW1CQSxJQUFxQyxDQUFFO1FBQ3pESyxPQUFPQyxNQUFNLENBQUMsSUFBSSxFQUFFTjtJQUNyQjtJQUVBLGlFQUFpRTtJQUNqRE8sS0FBWTtJQUNaTixRQUEyQjtJQUMzQk8sT0FBcUI7SUFDckJDLEtBQWM7SUFDZEMsY0FBdUI7SUFDdkJDLFNBQWtCO0lBQ2xCQyxTQUFvQjtJQUNwQkMsT0FBZ0I7SUFDaEJDLFFBQWtCO0lBQ2xCQyxVQUFtQjtJQUNuQkMsV0FBb0I7QUFDckMifQ==
@@ -95,7 +95,8 @@ export function forgeBuild(options) {
95
95
  }
96
96
  const [response] = await transpiler.transformFile(file, BuildTargets.es6, {
97
97
  aliasPaths: true,
98
- tsConfig: project ? await project.getTsConfig() : undefined
98
+ tsConfig: project ? await project.getTsConfig() : undefined,
99
+ workspace: workspace ?? undefined
99
100
  });
100
101
  if (!response || response.outcome !== "success") return null;
101
102
  const result = {
@@ -111,4 +112,4 @@ export function forgeBuild(options) {
111
112
  };
112
113
  }
113
114
 
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy92aXRlc3QvZm9yZ2UtYnVpbGQucGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB7IENvbnNvbGVBZGFwdGVyLCBzY3JpYmUgfSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHsgU3djVHJhbnNwaWxlciB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zd2MtdHJhbnNwaWxlci5qc1wiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgeyBXb3Jrc3BhY2VEZWZhdWx0cyB9IGZyb20gXCIuLi93b3Jrc3BhY2UuY29uZmlnLmpzXCI7XG5cbi8vIEFib3ZlIGZhdGFsICg2MCkgc28gYWxsIHN0YW5kYXJkIGxldmVscyBhcmUgbm9vcGVkIHdoZW4gbG9nTGV2ZWwgaXMgXCJzaWxlbnRcIlxuY29uc3QgU0lMRU5UX0xFVkVMID0gOTk5O1xuXG5jb25zdCBQTFVHSU5fTkFNRSA9IFwiZm9yZ2Utdml0ZXN0LXNvdXJjZVwiO1xuY29uc3QgVFNfRVhURU5TSU9OUyA9IFtcIi50c1wiLCBcIi50c3hcIiwgXCIubXRzXCJdO1xuXG5leHBvcnQgdHlwZSBGb3JnZUJ1aWxkT3B0aW9ucyA9IHtcblx0YnVpbGRDb25maWc/OiBzdHJpbmc7XG5cdGxvZ0xldmVsPzogc3RyaW5nO1xuXHR3b3Jrc3BhY2VSb290Pzogc3RyaW5nO1xuXHQvKiogU2tpcCB0aGUgYnVpbGQgcHJlLXdhcm0gZW50aXJlbHkgKGUuZy4gd2hlbiBhIHByZS1idWlsdCBhcnRpZmFjdCBpcyBhbHJlYWR5IG9uIGRpc2spLiAqL1xuXHRza2lwQnVpbGQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmdlQnVpbGQob3B0aW9ucz86IEZvcmdlQnVpbGRPcHRpb25zKSB7XG5cdGNvbnN0IGJ1aWxkQ29uZmlnID0gb3B0aW9ucz8uYnVpbGRDb25maWcgPz8gXCJkZWJ1Z1wiO1xuXHRjb25zdCB3b3Jrc3BhY2VSb290ID0gb3B0aW9ucz8ud29ya3NwYWNlUm9vdCA/PyBwcm9jZXNzLmN3ZCgpO1xuXHRjb25zdCBsb2dMZXZlbCA9IG9wdGlvbnM/LmxvZ0xldmVsID8/IFwiaW5mb1wiO1xuXHRjb25zdCBsb2dnZXJGYWN0b3J5ID0gc2NyaWJlLmNvbmZpZ3VyZSh7XG5cdFx0YWRhcHRlcjogbmV3IENvbnNvbGVBZGFwdGVyKCksXG5cdFx0b3B0aW9uczogeyBsb2dMZXZlbCwgY3VzdG9tTGV2ZWxzOiB7IHNpbGVudDogU0lMRU5UX0xFVkVMIH0gfSxcblx0fSk7XG5cdGNvbnN0IGxvZ2dlciA9IGxvZ2dlckZhY3RvcnkoUExVR0lOX05BTUUpO1xuXG5cdGNvbnN0IHNraXBCdWlsZCA9IG9wdGlvbnM/LnNraXBCdWlsZCA/PyBmYWxzZTtcblxuXHRjb25zdCB0cmFuc3BpbGVyID0gbmV3IFN3Y1RyYW5zcGlsZXIoKTtcblx0Y29uc3Qgd2FybWVkUHJvamVjdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblx0Y29uc3QgdHJhbnNmb3JtQ2FjaGUgPSBuZXcgTWFwPFxuXHRcdHN0cmluZyxcblx0XHR7IGNvbnRlbnQ6IHN0cmluZzsgcmVzdWx0OiB7IGNvZGU6IHN0cmluZzsgbWFwOiBudWxsIH0gfVxuXHQ+KCk7XG5cblx0bGV0IHdvcmtzcGFjZTogV29ya3NwYWNlIHwgbnVsbCA9IG51bGw7XG5cblx0Y29uc3QgaW5pdFdvcmtzcGFjZSA9IGFzeW5jICgpID0+IHtcblx0XHRpZiAod29ya3NwYWNlICE9PSBudWxsKSByZXR1cm47XG5cdFx0bG9nZ2VyLmRlYnVnKFxuXHRcdFx0YExvYWRpbmcgRm9yZ2Ugd29ya3NwYWNlIChidWlsZENvbmZpZzogJHtidWlsZENvbmZpZ30sIHdvcmtzcGFjZVJvb3Q6ICR7d29ya3NwYWNlUm9vdH0pYCxcblx0XHQpO1xuXHRcdHdvcmtzcGFjZSA9IGF3YWl0IFdvcmtzcGFjZUZhY3RvcnkuY3JlYXRlKHtcblx0XHRcdC4uLldvcmtzcGFjZURlZmF1bHRzLFxuXHRcdFx0cm9vdERpcjogd29ya3NwYWNlUm9vdCxcblx0XHR9KTtcblx0fTtcblxuXHRjb25zdCBwcmVXYXJtUHJvamVjdCA9IChwcm9qZWN0OiBQcm9qZWN0KSA9PiB7XG5cdFx0aWYgKHdhcm1lZFByb2plY3RzLmhhcyhwcm9qZWN0LnByb2plY3REaXJlY3RvcnkpKSByZXR1cm47XG5cdFx0d2FybWVkUHJvamVjdHMuYWRkKHByb2plY3QucHJvamVjdERpcmVjdG9yeSk7XG5cdFx0dm9pZCB0cmFuc3BpbGVyXG5cdFx0XHQudHJhbnNmb3JtUHJvamVjdChwcm9qZWN0KVxuXHRcdFx0LnRoZW4oKCkgPT4gbG9nZ2VyLmRlYnVnKGBQcmUtd2FybSBjb21wbGV0ZSBmb3IgJHtwcm9qZWN0Lm5hbWV9YCkpXG5cdFx0XHQuY2F0Y2goKGVycjogRXJyb3IpID0+XG5cdFx0XHRcdGxvZ2dlci5lcnJvcihgUHJlLXdhcm0gZXJyb3IgZm9yICR7cHJvamVjdC5uYW1lfTogJHtlcnIubWVzc2FnZX1gKSxcblx0XHRcdCk7XG5cdH07XG5cblx0cmV0dXJuIHtcblx0XHRuYW1lOiBQTFVHSU5fTkFNRSxcblx0XHRlbmZvcmNlOiBcInByZVwiIGFzIGNvbnN0LFxuXHRcdGNvbmZpZ1Jlc29sdmVkKCk6IHZvaWQge1xuXHRcdFx0bG9nZ2VyLmRlYnVnKFwiUGx1Z2luIGxvYWRlZFwiKTtcblx0XHR9LFxuXHRcdHJlc29sdmVJZChzb3VyY2U6IHN0cmluZywgaW1wb3J0ZXI6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuXHRcdFx0aWYgKGltcG9ydGVyICE9IG51bGwgJiYgc291cmNlLmVuZHNXaXRoKFwiLmpzXCIpICYmIHNvdXJjZS5zdGFydHNXaXRoKFwiLlwiKSkge1xuXHRcdFx0XHRjb25zdCBpbXBvcnRlckRpcmVjdG9yeSA9IHBhdGguZGlybmFtZShpbXBvcnRlcik7XG5cdFx0XHRcdGNvbnN0IHdpdGhvdXRFeHRlbnNpb24gPSBzb3VyY2Uuc2xpY2UoMCwgLTMpO1xuXHRcdFx0XHRjb25zdCBjYW5kaWRhdGVzID0gVFNfRVhURU5TSU9OUy5tYXAoKGV4dCkgPT5cblx0XHRcdFx0XHRwYXRoLnJlc29sdmUoaW1wb3J0ZXJEaXJlY3RvcnksIGAke3dpdGhvdXRFeHRlbnNpb259JHtleHR9YCksXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0cmV0dXJuIGNhbmRpZGF0ZXMuZmluZCgoYykgPT4gZXhpc3RzU3luYyhjKSkgPz8gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fSxcblx0XHR3YXRjaENoYW5nZShpZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHRjb25zdCBmaWxlID0gbmV3IEZpbGVFeCh7IGZ1bGxQYXRoOiBpZCB9KTtcblx0XHRcdHRyYW5zZm9ybUNhY2hlLmRlbGV0ZShpZCk7XG5cdFx0XHR0cmFuc3BpbGVyLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0fSxcblx0XHRhc3luYyB0cmFuc2Zvcm0oXG5cdFx0XHRjb2RlOiBzdHJpbmcsXG5cdFx0XHRpZDogc3RyaW5nLFxuXHRcdCk6IFByb21pc2U8eyBjb2RlOiBzdHJpbmc7IG1hcDogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbD4ge1xuXHRcdFx0aWYgKGlkLmluY2x1ZGVzKFwibm9kZV9tb2R1bGVzXCIpIHx8ICEvWy5dKHRzfHRzeHxtdHN8Y3RzKSQvLnRlc3QoaWQpKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHRhd2FpdCBpbml0V29ya3NwYWNlKCk7XG5cdFx0XHRjb25zdCBwcm9qZWN0ID0gYXdhaXQgd29ya3NwYWNlPy5maW5kUHJvamVjdChpZCwgYnVpbGRDb25maWcpO1xuXG5cdFx0XHRpZiAocHJvamVjdCAhPSBudWxsICYmICFza2lwQnVpbGQpIHtcblx0XHRcdFx0cHJlV2FybVByb2plY3QocHJvamVjdCk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGNhY2hlZCA9IHRyYW5zZm9ybUNhY2hlLmdldChpZCk7XG5cdFx0XHRpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQgJiYgY2FjaGVkLmNvbnRlbnQgPT09IGNvZGUpIHtcblx0XHRcdFx0cmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGZpbGUgPSBuZXcgRmlsZUV4KHsgZnVsbFBhdGg6IGlkLCBjb250ZW50OiBjb2RlIH0pO1xuXHRcdFx0aWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdC8vIENvbnRlbnQgY2hhbmdlZCBmb3IgYSBwcmV2aW91c2x5LXNlZW4gZmlsZSDigJQgaW52YWxpZGF0ZSB0aGUgdHJhbnNwaWxlcidzXG5cdFx0XHRcdC8vIEZJTEVfQ09OVEVOVCBjYWNoZSBzbyB0aGUgZnJlc2ggY29udGVudCBmcm9tIFZpdGUgaXMgdXNlZC5cblx0XHRcdFx0Ly8gVGhlIFZTIENvZGUgVml0ZXN0IGV4dGVuc2lvbiBkaXNhYmxlcyBWaXRlJ3MgY2hva2lkYXIgd2F0Y2hlclxuXHRcdFx0XHQvLyAoc2VydmVyLndhdGNoOiBudWxsKSBhbmQgZHJpdmVzIHJlLXJ1bnMgdmlhIHZpdGVzdC53YXRjaGVyLm9uRmlsZUNoYW5nZSgpLFxuXHRcdFx0XHQvLyBieXBhc3Npbmcgd2F0Y2hDaGFuZ2UgZW50aXJlbHkg4oCUIHNvIHdlIGNhbm5vdCByZWx5IG9uIHdhdGNoQ2hhbmdlIGFsb25lLlxuXHRcdFx0XHR0cmFuc3BpbGVyLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBbcmVzcG9uc2VdID0gYXdhaXQgdHJhbnNwaWxlci50cmFuc2Zvcm1GaWxlKGZpbGUsIEJ1aWxkVGFyZ2V0cy5lczYsIHtcblx0XHRcdFx0YWxpYXNQYXRoczogdHJ1ZSxcblx0XHRcdFx0dHNDb25maWc6IHByb2plY3QgPyBhd2FpdCBwcm9qZWN0LmdldFRzQ29uZmlnKCkgOiB1bmRlZmluZWQsXG5cdFx0XHR9KTtcblx0XHRcdGlmICghcmVzcG9uc2UgfHwgcmVzcG9uc2Uub3V0Y29tZSAhPT0gXCJzdWNjZXNzXCIpIHJldHVybiBudWxsO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSB7IGNvZGU6IHJlc3BvbnNlLmNvZGUsIG1hcDogbnVsbCB9O1xuXHRcdFx0dHJhbnNmb3JtQ2FjaGUuc2V0KGlkLCB7IGNvbnRlbnQ6IGNvZGUsIHJlc3VsdCB9KTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSxcblx0fTtcbn1cbiJdLCJuYW1lcyI6WyJleGlzdHNTeW5jIiwicGF0aCIsIldvcmtzcGFjZUZhY3RvcnkiLCJGaWxlRXgiLCJDb25zb2xlQWRhcHRlciIsInNjcmliZSIsIlN3Y1RyYW5zcGlsZXIiLCJCdWlsZFRhcmdldHMiLCJXb3Jrc3BhY2VEZWZhdWx0cyIsIlNJTEVOVF9MRVZFTCIsIlBMVUdJTl9OQU1FIiwiVFNfRVhURU5TSU9OUyIsImZvcmdlQnVpbGQiLCJvcHRpb25zIiwiYnVpbGRDb25maWciLCJ3b3Jrc3BhY2VSb290IiwicHJvY2VzcyIsImN3ZCIsImxvZ0xldmVsIiwibG9nZ2VyRmFjdG9yeSIsImNvbmZpZ3VyZSIsImFkYXB0ZXIiLCJjdXN0b21MZXZlbHMiLCJzaWxlbnQiLCJsb2dnZXIiLCJza2lwQnVpbGQiLCJ0cmFuc3BpbGVyIiwid2FybWVkUHJvamVjdHMiLCJTZXQiLCJ0cmFuc2Zvcm1DYWNoZSIsIk1hcCIsIndvcmtzcGFjZSIsImluaXRXb3Jrc3BhY2UiLCJkZWJ1ZyIsImNyZWF0ZSIsInJvb3REaXIiLCJwcmVXYXJtUHJvamVjdCIsInByb2plY3QiLCJoYXMiLCJwcm9qZWN0RGlyZWN0b3J5IiwiYWRkIiwidHJhbnNmb3JtUHJvamVjdCIsInRoZW4iLCJuYW1lIiwiY2F0Y2giLCJlcnIiLCJlcnJvciIsIm1lc3NhZ2UiLCJlbmZvcmNlIiwiY29uZmlnUmVzb2x2ZWQiLCJyZXNvbHZlSWQiLCJzb3VyY2UiLCJpbXBvcnRlciIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsImltcG9ydGVyRGlyZWN0b3J5IiwiZGlybmFtZSIsIndpdGhvdXRFeHRlbnNpb24iLCJzbGljZSIsImNhbmRpZGF0ZXMiLCJtYXAiLCJleHQiLCJyZXNvbHZlIiwiZmluZCIsImMiLCJ3YXRjaENoYW5nZSIsImlkIiwiZmlsZSIsImZ1bGxQYXRoIiwiZGVsZXRlIiwiaW52YWxpZGF0ZUNvbnRlbnRDYWNoZSIsInRyYW5zZm9ybSIsImNvZGUiLCJpbmNsdWRlcyIsInRlc3QiLCJmaW5kUHJvamVjdCIsImNhY2hlZCIsImdldCIsInVuZGVmaW5lZCIsImNvbnRlbnQiLCJyZXN1bHQiLCJyZXNwb25zZSIsInRyYW5zZm9ybUZpbGUiLCJlczYiLCJhbGlhc1BhdGhzIiwidHNDb25maWciLCJnZXRUc0NvbmZpZyIsIm91dGNvbWUiLCJzZXQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsUUFBUSxVQUFVO0FBQ3JDLE9BQU9DLFVBQVUsWUFBWTtBQUU3QixTQUFTQyxnQkFBZ0IsUUFBUSxpQkFBaUI7QUFDbEQsU0FBU0MsTUFBTSxRQUFRLHFCQUFxQjtBQUM1QyxTQUFTQyxjQUFjLEVBQUVDLE1BQU0sUUFBUSxtQkFBbUI7QUFDMUQsU0FBU0MsYUFBYSxRQUFRLGdDQUFnQztBQUM5RCxTQUFTQyxZQUFZLFFBQVEsZ0NBQWdDO0FBQzdELFNBQVNDLGlCQUFpQixRQUFRLHlCQUF5QjtBQUUzRCwrRUFBK0U7QUFDL0UsTUFBTUMsZUFBZTtBQUVyQixNQUFNQyxjQUFjO0FBQ3BCLE1BQU1D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
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy92aXRlc3QvZm9yZ2UtYnVpbGQucGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB7IENvbnNvbGVBZGFwdGVyLCBzY3JpYmUgfSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHsgU3djVHJhbnNwaWxlciB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zd2MtdHJhbnNwaWxlci5qc1wiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgeyBXb3Jrc3BhY2VEZWZhdWx0cyB9IGZyb20gXCIuLi93b3Jrc3BhY2UuY29uZmlnLmpzXCI7XG5cbi8vIEFib3ZlIGZhdGFsICg2MCkgc28gYWxsIHN0YW5kYXJkIGxldmVscyBhcmUgbm9vcGVkIHdoZW4gbG9nTGV2ZWwgaXMgXCJzaWxlbnRcIlxuY29uc3QgU0lMRU5UX0xFVkVMID0gOTk5O1xuXG5jb25zdCBQTFVHSU5fTkFNRSA9IFwiZm9yZ2Utdml0ZXN0LXNvdXJjZVwiO1xuY29uc3QgVFNfRVhURU5TSU9OUyA9IFtcIi50c1wiLCBcIi50c3hcIiwgXCIubXRzXCJdO1xuXG5leHBvcnQgdHlwZSBGb3JnZUJ1aWxkT3B0aW9ucyA9IHtcblx0YnVpbGRDb25maWc/OiBzdHJpbmc7XG5cdGxvZ0xldmVsPzogc3RyaW5nO1xuXHR3b3Jrc3BhY2VSb290Pzogc3RyaW5nO1xuXHQvKiogU2tpcCB0aGUgYnVpbGQgcHJlLXdhcm0gZW50aXJlbHkgKGUuZy4gd2hlbiBhIHByZS1idWlsdCBhcnRpZmFjdCBpcyBhbHJlYWR5IG9uIGRpc2spLiAqL1xuXHRza2lwQnVpbGQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmdlQnVpbGQob3B0aW9ucz86IEZvcmdlQnVpbGRPcHRpb25zKSB7XG5cdGNvbnN0IGJ1aWxkQ29uZmlnID0gb3B0aW9ucz8uYnVpbGRDb25maWcgPz8gXCJkZWJ1Z1wiO1xuXHRjb25zdCB3b3Jrc3BhY2VSb290ID0gb3B0aW9ucz8ud29ya3NwYWNlUm9vdCA/PyBwcm9jZXNzLmN3ZCgpO1xuXHRjb25zdCBsb2dMZXZlbCA9IG9wdGlvbnM/LmxvZ0xldmVsID8/IFwiaW5mb1wiO1xuXHRjb25zdCBsb2dnZXJGYWN0b3J5ID0gc2NyaWJlLmNvbmZpZ3VyZSh7XG5cdFx0YWRhcHRlcjogbmV3IENvbnNvbGVBZGFwdGVyKCksXG5cdFx0b3B0aW9uczogeyBsb2dMZXZlbCwgY3VzdG9tTGV2ZWxzOiB7IHNpbGVudDogU0lMRU5UX0xFVkVMIH0gfSxcblx0fSk7XG5cdGNvbnN0IGxvZ2dlciA9IGxvZ2dlckZhY3RvcnkoUExVR0lOX05BTUUpO1xuXG5cdGNvbnN0IHNraXBCdWlsZCA9IG9wdGlvbnM/LnNraXBCdWlsZCA/PyBmYWxzZTtcblxuXHRjb25zdCB0cmFuc3BpbGVyID0gbmV3IFN3Y1RyYW5zcGlsZXIoKTtcblx0Y29uc3Qgd2FybWVkUHJvamVjdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblx0Y29uc3QgdHJhbnNmb3JtQ2FjaGUgPSBuZXcgTWFwPFxuXHRcdHN0cmluZyxcblx0XHR7IGNvbnRlbnQ6IHN0cmluZzsgcmVzdWx0OiB7IGNvZGU6IHN0cmluZzsgbWFwOiBudWxsIH0gfVxuXHQ+KCk7XG5cblx0bGV0IHdvcmtzcGFjZTogV29ya3NwYWNlIHwgbnVsbCA9IG51bGw7XG5cblx0Y29uc3QgaW5pdFdvcmtzcGFjZSA9IGFzeW5jICgpID0+IHtcblx0XHRpZiAod29ya3NwYWNlICE9PSBudWxsKSByZXR1cm47XG5cdFx0bG9nZ2VyLmRlYnVnKFxuXHRcdFx0YExvYWRpbmcgRm9yZ2Ugd29ya3NwYWNlIChidWlsZENvbmZpZzogJHtidWlsZENvbmZpZ30sIHdvcmtzcGFjZVJvb3Q6ICR7d29ya3NwYWNlUm9vdH0pYCxcblx0XHQpO1xuXHRcdHdvcmtzcGFjZSA9IGF3YWl0IFdvcmtzcGFjZUZhY3RvcnkuY3JlYXRlKHtcblx0XHRcdC4uLldvcmtzcGFjZURlZmF1bHRzLFxuXHRcdFx0cm9vdERpcjogd29ya3NwYWNlUm9vdCxcblx0XHR9KTtcblx0fTtcblxuXHRjb25zdCBwcmVXYXJtUHJvamVjdCA9IChwcm9qZWN0OiBQcm9qZWN0KSA9PiB7XG5cdFx0aWYgKHdhcm1lZFByb2plY3RzLmhhcyhwcm9qZWN0LnByb2plY3REaXJlY3RvcnkpKSByZXR1cm47XG5cdFx0d2FybWVkUHJvamVjdHMuYWRkKHByb2plY3QucHJvamVjdERpcmVjdG9yeSk7XG5cdFx0dm9pZCB0cmFuc3BpbGVyXG5cdFx0XHQudHJhbnNmb3JtUHJvamVjdChwcm9qZWN0KVxuXHRcdFx0LnRoZW4oKCkgPT4gbG9nZ2VyLmRlYnVnKGBQcmUtd2FybSBjb21wbGV0ZSBmb3IgJHtwcm9qZWN0Lm5hbWV9YCkpXG5cdFx0XHQuY2F0Y2goKGVycjogRXJyb3IpID0+XG5cdFx0XHRcdGxvZ2dlci5lcnJvcihgUHJlLXdhcm0gZXJyb3IgZm9yICR7cHJvamVjdC5uYW1lfTogJHtlcnIubWVzc2FnZX1gKSxcblx0XHRcdCk7XG5cdH07XG5cblx0cmV0dXJuIHtcblx0XHRuYW1lOiBQTFVHSU5fTkFNRSxcblx0XHRlbmZvcmNlOiBcInByZVwiIGFzIGNvbnN0LFxuXHRcdGNvbmZpZ1Jlc29sdmVkKCk6IHZvaWQge1xuXHRcdFx0bG9nZ2VyLmRlYnVnKFwiUGx1Z2luIGxvYWRlZFwiKTtcblx0XHR9LFxuXHRcdHJlc29sdmVJZChzb3VyY2U6IHN0cmluZywgaW1wb3J0ZXI6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuXHRcdFx0aWYgKGltcG9ydGVyICE9IG51bGwgJiYgc291cmNlLmVuZHNXaXRoKFwiLmpzXCIpICYmIHNvdXJjZS5zdGFydHNXaXRoKFwiLlwiKSkge1xuXHRcdFx0XHRjb25zdCBpbXBvcnRlckRpcmVjdG9yeSA9IHBhdGguZGlybmFtZShpbXBvcnRlcik7XG5cdFx0XHRcdGNvbnN0IHdpdGhvdXRFeHRlbnNpb24gPSBzb3VyY2Uuc2xpY2UoMCwgLTMpO1xuXHRcdFx0XHRjb25zdCBjYW5kaWRhdGVzID0gVFNfRVhURU5TSU9OUy5tYXAoKGV4dCkgPT5cblx0XHRcdFx0XHRwYXRoLnJlc29sdmUoaW1wb3J0ZXJEaXJlY3RvcnksIGAke3dpdGhvdXRFeHRlbnNpb259JHtleHR9YCksXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0cmV0dXJuIGNhbmRpZGF0ZXMuZmluZCgoYykgPT4gZXhpc3RzU3luYyhjKSkgPz8gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fSxcblx0XHR3YXRjaENoYW5nZShpZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHRjb25zdCBmaWxlID0gbmV3IEZpbGVFeCh7IGZ1bGxQYXRoOiBpZCB9KTtcblx0XHRcdHRyYW5zZm9ybUNhY2hlLmRlbGV0ZShpZCk7XG5cdFx0XHR0cmFuc3BpbGVyLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0fSxcblx0XHRhc3luYyB0cmFuc2Zvcm0oXG5cdFx0XHRjb2RlOiBzdHJpbmcsXG5cdFx0XHRpZDogc3RyaW5nLFxuXHRcdCk6IFByb21pc2U8eyBjb2RlOiBzdHJpbmc7IG1hcDogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbD4ge1xuXHRcdFx0aWYgKGlkLmluY2x1ZGVzKFwibm9kZV9tb2R1bGVzXCIpIHx8ICEvWy5dKHRzfHRzeHxtdHN8Y3RzKSQvLnRlc3QoaWQpKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHRhd2FpdCBpbml0V29ya3NwYWNlKCk7XG5cdFx0XHRjb25zdCBwcm9qZWN0ID0gYXdhaXQgd29ya3NwYWNlPy5maW5kUHJvamVjdChpZCwgYnVpbGRDb25maWcpO1xuXG5cdFx0XHRpZiAocHJvamVjdCAhPSBudWxsICYmICFza2lwQnVpbGQpIHtcblx0XHRcdFx0cHJlV2FybVByb2plY3QocHJvamVjdCk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGNhY2hlZCA9IHRyYW5zZm9ybUNhY2hlLmdldChpZCk7XG5cdFx0XHRpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQgJiYgY2FjaGVkLmNvbnRlbnQgPT09IGNvZGUpIHtcblx0XHRcdFx0cmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGZpbGUgPSBuZXcgRmlsZUV4KHsgZnVsbFBhdGg6IGlkLCBjb250ZW50OiBjb2RlIH0pO1xuXHRcdFx0aWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdC8vIENvbnRlbnQgY2hhbmdlZCBmb3IgYSBwcmV2aW91c2x5LXNlZW4gZmlsZSDigJQgaW52YWxpZGF0ZSB0aGUgdHJhbnNwaWxlcidzXG5cdFx0XHRcdC8vIEZJTEVfQ09OVEVOVCBjYWNoZSBzbyB0aGUgZnJlc2ggY29udGVudCBmcm9tIFZpdGUgaXMgdXNlZC5cblx0XHRcdFx0Ly8gVGhlIFZTIENvZGUgVml0ZXN0IGV4dGVuc2lvbiBkaXNhYmxlcyBWaXRlJ3MgY2hva2lkYXIgd2F0Y2hlclxuXHRcdFx0XHQvLyAoc2VydmVyLndhdGNoOiBudWxsKSBhbmQgZHJpdmVzIHJlLXJ1bnMgdmlhIHZpdGVzdC53YXRjaGVyLm9uRmlsZUNoYW5nZSgpLFxuXHRcdFx0XHQvLyBieXBhc3Npbmcgd2F0Y2hDaGFuZ2UgZW50aXJlbHkg4oCUIHNvIHdlIGNhbm5vdCByZWx5IG9uIHdhdGNoQ2hhbmdlIGFsb25lLlxuXHRcdFx0XHR0cmFuc3BpbGVyLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBbcmVzcG9uc2VdID0gYXdhaXQgdHJhbnNwaWxlci50cmFuc2Zvcm1GaWxlKGZpbGUsIEJ1aWxkVGFyZ2V0cy5lczYsIHtcblx0XHRcdFx0YWxpYXNQYXRoczogdHJ1ZSxcblx0XHRcdFx0dHNDb25maWc6IHByb2plY3QgPyBhd2FpdCBwcm9qZWN0LmdldFRzQ29uZmlnKCkgOiB1bmRlZmluZWQsXG5cdFx0XHRcdHdvcmtzcGFjZTogd29ya3NwYWNlID8/IHVuZGVmaW5lZCxcblx0XHRcdH0pO1xuXHRcdFx0aWYgKCFyZXNwb25zZSB8fCByZXNwb25zZS5vdXRjb21lICE9PSBcInN1Y2Nlc3NcIikgcmV0dXJuIG51bGw7XG5cblx0XHRcdGNvbnN0IHJlc3VsdCA9IHsgY29kZTogcmVzcG9uc2UuY29kZSwgbWFwOiBudWxsIH07XG5cdFx0XHR0cmFuc2Zvcm1DYWNoZS5zZXQoaWQsIHsgY29udGVudDogY29kZSwgcmVzdWx0IH0pO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LFxuXHR9O1xufVxuIl0sIm5hbWVzIjpbImV4aXN0c1N5bmMiLCJwYXRoIiwiV29ya3NwYWNlRmFjdG9yeSIsIkZpbGVFeCIsIkNvbnNvbGVBZGFwdGVyIiwic2NyaWJlIiwiU3djVHJhbnNwaWxlciIsIkJ1aWxkVGFyZ2V0cyIsIldvcmtzcGFjZURlZmF1bHRzIiwiU0lMRU5UX0xFVkVMIiwiUExVR0lOX05BTUUiLCJUU19FWFRFTlNJT05TIiwiZm9yZ2VCdWlsZCIsIm9wdGlvbnMiLCJidWlsZENvbmZpZyIsIndvcmtzcGFjZVJvb3QiLCJwcm9jZXNzIiwiY3dkIiwibG9nTGV2ZWwiLCJsb2dnZXJGYWN0b3J5IiwiY29uZmlndXJlIiwiYWRhcHRlciIsImN1c3RvbUxldmVscyIsInNpbGVudCIsImxvZ2dlciIsInNraXBCdWlsZCIsInRyYW5zcGlsZXIiLCJ3YXJtZWRQcm9qZWN0cyIsIlNldCIsInRyYW5zZm9ybUNhY2hlIiwiTWFwIiwid29ya3NwYWNlIiwiaW5pdFdvcmtzcGFjZSIsImRlYnVnIiwiY3JlYXRlIiwicm9vdERpciIsInByZVdhcm1Qcm9qZWN0IiwicHJvamVjdCIsImhhcyIsInByb2plY3REaXJlY3RvcnkiLCJhZGQiLCJ0cmFuc2Zvcm1Qcm9qZWN0IiwidGhlbiIsIm5hbWUiLCJjYXRjaCIsImVyciIsImVycm9yIiwibWVzc2FnZSIsImVuZm9yY2UiLCJjb25maWdSZXNvbHZlZCIsInJlc29sdmVJZCIsInNvdXJjZSIsImltcG9ydGVyIiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwiaW1wb3J0ZXJEaXJlY3RvcnkiLCJkaXJuYW1lIiwid2l0aG91dEV4dGVuc2lvbiIsInNsaWNlIiwiY2FuZGlkYXRlcyIsIm1hcCIsImV4dCIsInJlc29sdmUiLCJmaW5kIiwiYyIsIndhdGNoQ2hhbmdlIiwiaWQiLCJmaWxlIiwiZnVsbFBhdGgiLCJkZWxldGUiLCJpbnZhbGlkYXRlQ29udGVudENhY2hlIiwidHJhbnNmb3JtIiwiY29kZSIsImluY2x1ZGVzIiwidGVzdCIsImZpbmRQcm9qZWN0IiwiY2FjaGVkIiwiZ2V0IiwidW5kZWZpbmVkIiwiY29udGVudCIsInJlc3VsdCIsInJlc3BvbnNlIiwidHJhbnNmb3JtRmlsZSIsImVzNiIsImFsaWFzUGF0aHMiLCJ0c0NvbmZpZyIsImdldFRzQ29uZmlnIiwib3V0Y29tZSIsInNldCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLFVBQVU7QUFDckMsT0FBT0MsVUFBVSxZQUFZO0FBRTdCLFNBQVNDLGdCQUFnQixRQUFRLGlCQUFpQjtBQUNsRCxTQUFTQyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVNDLGNBQWMsRUFBRUMsTUFBTSxRQUFRLG1CQUFtQjtBQUMxRCxTQUFTQyxhQUFhLFFBQVEsZ0NBQWdDO0FBQzlELFNBQVNDLFlBQVksUUFBUSxnQ0FBZ0M7QUFDN0QsU0FBU0MsaUJBQWlCLFFBQVEseUJBQXlCO0FBRTNELCtFQUErRTtB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
@@ -5,7 +5,16 @@ export const Debug = {
5
5
  targets: [
6
6
  BuildTargets.es6
7
7
  ],
8
- aliasPaths: true
8
+ aliasPaths: true,
9
+ // Fixtures are runtime inputs (often raw .ts / configs), not library sources.
10
+ ignore: [
11
+ "**/__fixtures__/**"
12
+ ],
13
+ copyFiles: [
14
+ "**/__fixtures__/**",
15
+ "**/.decohere.js",
16
+ "**/.decohere.*.js"
17
+ ]
9
18
  };
10
19
  export const Release = {
11
20
  name: "release",
@@ -20,10 +29,29 @@ export const Release = {
20
29
  "**/*.test.ts",
21
30
  "tests/**",
22
31
  "e2e/**"
32
+ ],
33
+ // Sit next to emitted JS under es6/commonjs/types (import.meta.url).
34
+ // Do not put package.json here — that stays on workspace copyFiles (root only).
35
+ copyFiles: [
36
+ "**/webapi/devcontainer/templates/**",
37
+ "**/webapi/devcontainer/codebase-rag-mcp.ts"
38
+ ]
39
+ };
40
+ /**
41
+ * Link configuration: unpacked JS + co-located type declarations.
42
+ * Intended for `forge link` — symlinked into a consumer's node_modules so that
43
+ * both runtime resolution and TypeScript find the same output directory.
44
+ */ export const Link = {
45
+ name: "link",
46
+ pack: true,
47
+ targets: [
48
+ BuildTargets.es6,
49
+ BuildTargets.types
23
50
  ]
24
51
  };
25
52
  export const DefaultConfigurations = [
26
53
  Debug,
54
+ Link,
27
55
  Release
28
56
  ];
29
57
  export const WorkspaceDefaults = {
@@ -36,4 +64,4 @@ export const WorkspaceDefaults = {
36
64
  projects: undefined
37
65
  };
38
66
 
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy93b3Jrc3BhY2UuY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZURlZmF1bHRzIGFzIEJhc2VEZWZhdWx0cyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgRm9yZ2VDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vdHlwZXMvY29uZmlndXJhdGlvbi50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy93b3Jrc3BhY2UtY29uZmlnLnR5cGUuanNcIjtcblxuZXhwb3J0IGNvbnN0IERlYnVnOiBGb3JnZUNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hbWU6IFwiZGVidWdcIixcblx0dGFyZ2V0czogW0J1aWxkVGFyZ2V0cy5lczZdLFxuXHRhbGlhc1BhdGhzOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFJlbGVhc2U6IEZvcmdlQ29uZmlndXJhdGlvbiA9IHtcblx0bmFtZTogXCJyZWxlYXNlXCIsXG5cdHBhY2s6IHRydWUsXG5cdHRhcmdldHM6IFtCdWlsZFRhcmdldHMuY29tbW9uanMsIEJ1aWxkVGFyZ2V0cy5lczYsIEJ1aWxkVGFyZ2V0cy50eXBlc10sXG5cdGlnbm9yZTogW1wiKiovKi5zcGVjLnRzXCIsIFwiKiovKi50ZXN0LnRzXCIsIFwidGVzdHMvKipcIiwgXCJlMmUvKipcIl0sXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdENvbmZpZ3VyYXRpb25zID0gW0RlYnVnLCBSZWxlYXNlXTtcblxuZXhwb3J0IGNvbnN0IFdvcmtzcGFjZURlZmF1bHRzOiBXb3Jrc3BhY2VPcHRpb25zID0ge1xuXHQuLi5CYXNlRGVmYXVsdHMsXG5cdGNvcHlGaWxlczogW1wicGFja2FnZS5qc29uXCIsIFwiKiovKi5tanNcIl0sXG5cdGNvbmZpZ3VyYXRpb25zOiBEZWZhdWx0Q29uZmlndXJhdGlvbnMsXG5cdHByb2plY3RzOiB1bmRlZmluZWQsXG59O1xuIl0sIm5hbWVzIjpbIldvcmtzcGFjZURlZmF1bHRzIiwiQmFzZURlZmF1bHRzIiwiQnVpbGRUYXJnZXRzIiwiRGVidWciLCJuYW1lIiwidGFyZ2V0cyIsImVzNiIsImFsaWFzUGF0aHMiLCJSZWxlYXNlIiwicGFjayIsImNvbW1vbmpzIiwidHlwZXMiLCJpZ25vcmUiLCJEZWZhdWx0Q29uZmlndXJhdGlvbnMiLCJjb3B5RmlsZXMiLCJjb25maWd1cmF0aW9ucyIsInByb2plY3RzIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxxQkFBcUJDLFlBQVksUUFBUSxpQkFBaUI7QUFDbkUsU0FBU0MsWUFBWSxRQUFRLCtCQUErQjtBQUk1RCxPQUFPLE1BQU1DLFFBQTRCO0lBQ3hDQyxNQUFNO0lBQ05DLFNBQVM7UUFBQ0gsYUFBYUksR0FBRztLQUFDO0lBQzNCQyxZQUFZO0FBQ2IsRUFBRTtBQUVGLE9BQU8sTUFBTUMsVUFBOEI7SUFDMUNKLE1BQU07SUFDTkssTUFBTTtJQUNOSixTQUFTO1FBQUNILGFBQWFRLFFBQVE7UUFBRVIsYUFBYUksR0FBRztRQUFFSixhQUFhUyxLQUFLO0tBQUM7SUFDdEVDLFFBQVE7UUFBQztRQUFnQjtRQUFnQjtRQUFZO0tBQVM7QUFDL0QsRUFBRTtBQUVGLE9BQU8sTUFBTUMsd0JBQXdCO0lBQUNWO0lBQU9LO0NBQVEsQ0FBQztBQUV0RCxPQUFPLE1BQU1SLG9CQUFzQztJQUNsRCxHQUFHQyxZQUFZO0lBQ2ZhLFdBQVc7UUFBQztRQUFnQjtLQUFXO0lBQ3ZDQyxnQkFBZ0JGO0lBQ2hCRyxVQUFVQztBQUNYLEVBQUUifQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy93b3Jrc3BhY2UuY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZURlZmF1bHRzIGFzIEJhc2VEZWZhdWx0cyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgRm9yZ2VDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vdHlwZXMvY29uZmlndXJhdGlvbi50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy93b3Jrc3BhY2UtY29uZmlnLnR5cGUuanNcIjtcblxuZXhwb3J0IGNvbnN0IERlYnVnOiBGb3JnZUNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hbWU6IFwiZGVidWdcIixcblx0dGFyZ2V0czogW0J1aWxkVGFyZ2V0cy5lczZdLFxuXHRhbGlhc1BhdGhzOiB0cnVlLFxuXHQvLyBGaXh0dXJlcyBhcmUgcnVudGltZSBpbnB1dHMgKG9mdGVuIHJhdyAudHMgLyBjb25maWdzKSwgbm90IGxpYnJhcnkgc291cmNlcy5cblx0aWdub3JlOiBbXCIqKi9fX2ZpeHR1cmVzX18vKipcIl0sXG5cdGNvcHlGaWxlczogW1wiKiovX19maXh0dXJlc19fLyoqXCIsIFwiKiovLmRlY29oZXJlLmpzXCIsIFwiKiovLmRlY29oZXJlLiouanNcIl0sXG59O1xuXG5leHBvcnQgY29uc3QgUmVsZWFzZTogRm9yZ2VDb25maWd1cmF0aW9uID0ge1xuXHRuYW1lOiBcInJlbGVhc2VcIixcblx0cGFjazogdHJ1ZSxcblx0dGFyZ2V0czogW0J1aWxkVGFyZ2V0cy5jb21tb25qcywgQnVpbGRUYXJnZXRzLmVzNiwgQnVpbGRUYXJnZXRzLnR5cGVzXSxcblx0aWdub3JlOiBbXCIqKi8qLnNwZWMudHNcIiwgXCIqKi8qLnRlc3QudHNcIiwgXCJ0ZXN0cy8qKlwiLCBcImUyZS8qKlwiXSxcblx0Ly8gU2l0IG5leHQgdG8gZW1pdHRlZCBKUyB1bmRlciBlczYvY29tbW9uanMvdHlwZXMgKGltcG9ydC5tZXRhLnVybCkuXG5cdC8vIERvIG5vdCBwdXQgcGFja2FnZS5qc29uIGhlcmUg4oCUIHRoYXQgc3RheXMgb24gd29ya3NwYWNlIGNvcHlGaWxlcyAocm9vdCBvbmx5KS5cblx0Y29weUZpbGVzOiBbXG5cdFx0XCIqKi93ZWJhcGkvZGV2Y29udGFpbmVyL3RlbXBsYXRlcy8qKlwiLFxuXHRcdFwiKiovd2ViYXBpL2RldmNvbnRhaW5lci9jb2RlYmFzZS1yYWctbWNwLnRzXCIsXG5cdF0sXG59O1xuXG4vKipcbiAqIExpbmsgY29uZmlndXJhdGlvbjogdW5wYWNrZWQgSlMgKyBjby1sb2NhdGVkIHR5cGUgZGVjbGFyYXRpb25zLlxuICogSW50ZW5kZWQgZm9yIGBmb3JnZSBsaW5rYCDigJQgc3ltbGlua2VkIGludG8gYSBjb25zdW1lcidzIG5vZGVfbW9kdWxlcyBzbyB0aGF0XG4gKiBib3RoIHJ1bnRpbWUgcmVzb2x1dGlvbiBhbmQgVHlwZVNjcmlwdCBmaW5kIHRoZSBzYW1lIG91dHB1dCBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBMaW5rOiBGb3JnZUNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hbWU6IFwibGlua1wiLFxuXHRwYWNrOiB0cnVlLFxuXHR0YXJnZXRzOiBbQnVpbGRUYXJnZXRzLmVzNiwgQnVpbGRUYXJnZXRzLnR5cGVzXSxcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q29uZmlndXJhdGlvbnMgPSBbRGVidWcsIExpbmssIFJlbGVhc2VdO1xuXG5leHBvcnQgY29uc3QgV29ya3NwYWNlRGVmYXVsdHM6IFdvcmtzcGFjZU9wdGlvbnMgPSB7XG5cdC4uLkJhc2VEZWZhdWx0cyxcblx0Y29weUZpbGVzOiBbXCJwYWNrYWdlLmpzb25cIiwgXCIqKi8qLm1qc1wiXSxcblx0Y29uZmlndXJhdGlvbnM6IERlZmF1bHRDb25maWd1cmF0aW9ucyxcblx0cHJvamVjdHM6IHVuZGVmaW5lZCxcbn07XG4iXSwibmFtZXMiOlsiV29ya3NwYWNlRGVmYXVsdHMiLCJCYXNlRGVmYXVsdHMiLCJCdWlsZFRhcmdldHMiLCJEZWJ1ZyIsIm5hbWUiLCJ0YXJnZXRzIiwiZXM2IiwiYWxpYXNQYXRocyIsImlnbm9yZSIsImNvcHlGaWxlcyIsIlJlbGVhc2UiLCJwYWNrIiwiY29tbW9uanMiLCJ0eXBlcyIsIkxpbmsiLCJEZWZhdWx0Q29uZmlndXJhdGlvbnMiLCJjb25maWd1cmF0aW9ucyIsInByb2plY3RzIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxxQkFBcUJDLFlBQVksUUFBUSxpQkFBaUI7QUFDbkUsU0FBU0MsWUFBWSxRQUFRLCtCQUErQjtBQUk1RCxPQUFPLE1BQU1DLFFBQTRCO0lBQ3hDQyxNQUFNO0lBQ05DLFNBQVM7UUFBQ0gsYUFBYUksR0FBRztLQUFDO0lBQzNCQyxZQUFZO0lBQ1osOEVBQThFO0lBQzlFQyxRQUFRO1FBQUM7S0FBcUI7SUFDOUJDLFdBQVc7UUFBQztRQUFzQjtRQUFtQjtLQUFvQjtBQUMxRSxFQUFFO0FBRUYsT0FBTyxNQUFNQyxVQUE4QjtJQUMxQ04sTUFBTTtJQUNOTyxNQUFNO0lBQ05OLFNBQVM7UUFBQ0gsYUFBYVUsUUFBUTtRQUFFVixhQUFhSSxHQUFHO1FBQUVKLGFBQWFXLEtBQUs7S0FBQztJQUN0RUwsUUFBUTtRQUFDO1FBQWdCO1FBQWdCO1FBQVk7S0FBUztJQUM5RCxxRUFBcUU7SUFDckUsZ0ZBQWdGO0lBQ2hGQyxXQUFXO1FBQ1Y7UUFDQTtLQUNBO0FBQ0YsRUFBRTtBQUVGOzs7O0NBSUMsR0FDRCxPQUFPLE1BQU1LLE9BQTJCO0lBQ3ZDVixNQUFNO0lBQ05PLE1BQU07SUFDTk4sU0FBUztRQUFDSCxhQUFhSSxHQUFHO1FBQUVKLGFBQWFXLEtBQUs7S0FBQztBQUNoRCxFQUFFO0FBRUYsT0FBTyxNQUFNRSx3QkFBd0I7SUFBQ1o7SUFBT1c7SUFBTUo7Q0FBUSxDQUFDO0FBRTVELE9BQU8sTUFBTVYsb0JBQXNDO0lBQ2xELEdBQUdDLFlBQVk7SUFDZlEsV0FBVztRQUFDO1FBQWdCO0tBQVc7SUFDdkNPLGdCQUFnQkQ7SUFDaEJFLFVBQVVDO0FBQ1gsRUFBRSJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/forge",
3
- "version": "0.0.1-dev.9",
3
+ "version": "0.0.1-dev.91",
4
4
  "description": "TypeScript monorepo build system — zero config, fast compilation, streamlined developer workflow",
5
5
  "keywords": [
6
6
  "typescript",
@@ -29,10 +29,10 @@
29
29
  "test": "echo \"Error: no test specified\" && exit 1"
30
30
  },
31
31
  "dependencies": {
32
- "@decohere/crucible": "0.0.1-dev.9",
33
- "@decohere/mesh": "0.0.1-dev.9",
34
- "@decohere/nexus": "0.0.1-dev.9",
35
- "@decohere/scribe": "0.0.1-dev.9",
32
+ "@decohere/crucible": "0.0.1-dev.91",
33
+ "@decohere/mesh": "0.0.1-dev.91",
34
+ "@decohere/nexus": "0.0.1-dev.91",
35
+ "@decohere/scribe": "0.0.1-dev.91",
36
36
  "@swc/core": "^1.11.11",
37
37
  "async": "^3.2.6",
38
38
  "parse-imports": "^2.2.1",
@@ -6,6 +6,7 @@ import { FileWriterService } from "../services/file-writer.service.js";
6
6
  import type { TransformResponse } from "../types/transform-response.model.js";
7
7
  import { type Transformer } from "../types/transformer.type.js";
8
8
  export type BuildOptions = {
9
+ build?: boolean;
9
10
  configuration: string;
10
11
  file: string;
11
12
  };
@@ -10,5 +10,15 @@ export declare class Copy implements Action<CopyOptions> {
10
10
  private readonly workspace;
11
11
  constructor(workspace: Workspace);
12
12
  run: (options: CopyOptions) => Promise<ActionResponse>;
13
+ /**
14
+ * Packed builds emit JS under `<out>/<target>/` (e.g. `es6/`). Assets listed on
15
+ * the *configuration* `copyFiles` (not the workspace defaults) are also copied
16
+ * into each target so `import.meta.url` resolves them beside that JS.
17
+ *
18
+ * Workspace `copyFiles` (e.g. `package.json`) stay root-only — nesting a
19
+ * package manifest under `es6/` makes `npm install --install-links` drop the
20
+ * parent's `es6/` tree when packing `file:` deps.
21
+ */
22
+ private copyColocatedPackAssets;
13
23
  private copyFileToOut;
14
24
  }
@@ -0,0 +1,33 @@
1
+ import { Workspace } from "@decohere/mesh";
2
+ import type { Action, ResultStatus } from "@decohere/nexus/cli";
3
+ import { ActionResponse } from "@decohere/nexus/cli";
4
+ export type DockerOptions = {
5
+ configuration: string;
6
+ dryRun?: boolean;
7
+ push?: boolean;
8
+ };
9
+ export type DockerResponse = ResultStatus & {
10
+ projectName: string;
11
+ image: string;
12
+ tags: string[];
13
+ message: string;
14
+ };
15
+ export declare class Docker implements Action<DockerOptions> {
16
+ #private;
17
+ private readonly workspace;
18
+ private readonly docker;
19
+ constructor(workspace: Workspace);
20
+ run(options: DockerOptions): Promise<ActionResponse<DockerResponse>>;
21
+ private getDockerProjects;
22
+ private buildProject;
23
+ private interpolateBuildArgs;
24
+ /**
25
+ * Keep FORGE_DOCKER_EXTRA_TAGS_JSON scoped to this image so multi-image
26
+ * publishes do not stamp create:latest onto the app Dev Container (and vice versa).
27
+ */
28
+ private extraTagsForImage;
29
+ private defaultImageName;
30
+ private normalizeDockerRepository;
31
+ private normalizeProjectSlug;
32
+ private parseJsonEnv;
33
+ }
@@ -4,8 +4,12 @@ export * from "./commit.action.js";
4
4
  export * from "./copy.action.js";
5
5
  export * from "./dependency-report.action.js";
6
6
  export * from "./dependency-sync.action.js";
7
+ export * from "./docker.action.js";
8
+ export * from "./link.action.js";
7
9
  export * from "./publish.action.js";
8
10
  export * from "./sync-lock-file.action.js";
9
11
  export * from "./tag.action.js";
12
+ export * from "./typecheck.action.js";
13
+ export * from "./unlink.action.js";
10
14
  export * from "./version.action.js";
11
15
  export * from "./watch.action.js";
@@ -0,0 +1,25 @@
1
+ import { Workspace } from "@decohere/mesh";
2
+ import type { Action } from "@decohere/nexus/cli";
3
+ import { ActionResponse } from "@decohere/nexus/cli";
4
+ import "../extensions/project.extensions.js";
5
+ export declare const LINK_MANIFEST = ".forge-link.json";
6
+ export type LinkOptions = {
7
+ configuration: string;
8
+ targetDir: string;
9
+ };
10
+ export declare const DEFAULT_LINK_CONFIGURATION = "link";
11
+ export type LinkManifest = {
12
+ workspaceRoot: string;
13
+ peerNodeModulesDir?: string;
14
+ links: Array<{
15
+ packageName: string;
16
+ symlinkPath: string;
17
+ originalPath: string | null;
18
+ }>;
19
+ };
20
+ export declare class Link implements Action<LinkOptions> {
21
+ #private;
22
+ private readonly workspace;
23
+ constructor(workspace: Workspace);
24
+ run: (options: LinkOptions) => Promise<ActionResponse>;
25
+ }
@@ -0,0 +1,14 @@
1
+ import { Workspace } from "@decohere/mesh";
2
+ import type { Action } from "@decohere/nexus/cli";
3
+ import { ActionResponse } from "@decohere/nexus/cli";
4
+ import { TypeEmitter } from "../services/type-emitter.js";
5
+ export type TypeCheckOptions = {
6
+ configuration: string;
7
+ };
8
+ export declare class TypeCheck implements Action<TypeCheckOptions> {
9
+ #private;
10
+ private readonly workspace;
11
+ private readonly typeEmitter;
12
+ constructor(workspace: Workspace, typeEmitter: TypeEmitter);
13
+ run: (options: TypeCheckOptions) => Promise<ActionResponse>;
14
+ }
@@ -0,0 +1,9 @@
1
+ import type { Action } from "@decohere/nexus/cli";
2
+ import { ActionResponse } from "@decohere/nexus/cli";
3
+ export type UnlinkOptions = {
4
+ targetDir: string;
5
+ };
6
+ export declare class Unlink implements Action<UnlinkOptions> {
7
+ #private;
8
+ run: (options: UnlinkOptions) => Promise<ActionResponse>;
9
+ }
@@ -0,0 +1,6 @@
1
+ import { DecohereCommand } from "@decohere/nexus/cli";
2
+ import { Docker } from "../actions/docker.action.js";
3
+ export declare class DockerCommand extends DecohereCommand {
4
+ get actions(): (typeof Docker)[];
5
+ constructor(name: string);
6
+ }
@@ -1,6 +1,9 @@
1
1
  export * from "./build.command.js";
2
2
  export * from "./dependency.command.js";
3
+ export * from "./docker.command.js";
3
4
  export * from "./forge.command.js";
5
+ export * from "./link.command.js";
4
6
  export * from "./publish.command.js";
5
7
  export * from "./tag.command.js";
8
+ export * from "./typecheck.command.js";
6
9
  export * from "./version.command.js";
@@ -0,0 +1,28 @@
1
+ import type { CommandHandler, MergeOptions } from "@decohere/nexus/cli";
2
+ import { CommandResponse, DecohereCommand } from "@decohere/nexus/cli";
3
+ import { Build } from "../actions/build.action.js";
4
+ import { Clean } from "../actions/clean.action.js";
5
+ import { Copy } from "../actions/copy.action.js";
6
+ import { Link } from "../actions/link.action.js";
7
+ import { Unlink } from "../actions/unlink.action.js";
8
+ import { Watch } from "../actions/watch.action.js";
9
+ export type LinkActions = {
10
+ clean: Clean;
11
+ build: Build;
12
+ copy: Copy;
13
+ link: Link;
14
+ watch: Watch;
15
+ };
16
+ type UnlinkActions = {
17
+ unlink: Unlink;
18
+ };
19
+ export declare class LinkCommand extends DecohereCommand<LinkActions> {
20
+ get actions(): (typeof Build | typeof Clean | typeof Copy | typeof Link | typeof Watch)[];
21
+ constructor(name?: string);
22
+ run: (actions: LinkActions, options: MergeOptions<LinkActions>) => Promise<CommandResponse<LinkActions>>;
23
+ }
24
+ export declare class UnlinkCommand extends DecohereCommand<UnlinkActions> {
25
+ get actions(): (typeof Unlink)[];
26
+ constructor(name?: string, handler?: CommandHandler);
27
+ }
28
+ export {};
@@ -0,0 +1,6 @@
1
+ import { DecohereCommand } from "@decohere/nexus/cli";
2
+ import { TypeCheck } from "../actions/typecheck.action.js";
3
+ export declare class TypeCheckCommand extends DecohereCommand {
4
+ get actions(): (typeof TypeCheck)[];
5
+ constructor(name: string);
6
+ }
@@ -10,6 +10,7 @@ export declare class SwcConfigFactory {
10
10
  createBaseConfig(buildTarget: TranspileTarget, configOptions: SwcConfigOptions): Options;
11
11
  /** Stamps a per-file filename onto a pre-built base config. */
12
12
  createFileConfig(file: FileEx, baseConfig: Options): Options;
13
+ private static nonemptyPaths;
13
14
  /**
14
15
  * Validates SWC options against known causes of Rust/NAPI process crashes.
15
16
  * Throws a ForgeError with a descriptive message instead of letting the
@@ -9,6 +9,7 @@ export declare class ForgeModule extends ModuleManifest {
9
9
  readonly actions: {
10
10
  clean: typeof Actions.Clean;
11
11
  copy: typeof Actions.Copy;
12
+ docker: typeof Actions.Docker;
12
13
  build: typeof Actions.Build;
13
14
  watch: typeof Actions.Watch;
14
15
  publish: typeof Actions.Publish;
@@ -17,14 +18,21 @@ export declare class ForgeModule extends ModuleManifest {
17
18
  reportDependencies: typeof Actions.ReportDependencies;
18
19
  version: typeof Actions.Version;
19
20
  tag: typeof Actions.Tag;
21
+ typecheck: typeof Actions.TypeCheck;
20
22
  commitFiles: typeof Actions.CommitFiles;
23
+ link: typeof Actions.Link;
24
+ unlink: typeof Actions.Unlink;
21
25
  };
22
26
  readonly commands: {
23
27
  build: typeof Commands.BuildCommand;
24
28
  publish: typeof Commands.PublishCommand;
25
29
  dependencies: typeof Commands.DependencyCommand;
30
+ docker: typeof Commands.DockerCommand;
26
31
  version: typeof Commands.VersionCommand;
27
32
  tag: typeof Commands.TagCommand;
33
+ typecheck: typeof Commands.TypeCheckCommand;
34
+ link: typeof Commands.LinkCommand;
35
+ unlink: typeof Commands.UnlinkCommand;
28
36
  };
29
37
  registerServices(builder: ContainerBuilder): void;
30
38
  createWorkspace(options: WorkspaceFactoryOptions): Promise<import("@decohere/mesh").Workspace>;
@@ -6,4 +6,4 @@ export type { BuildTarget, TranspileTarget } from "./types/build-target.type.js"
6
6
  export { BuildTargets } from "./types/build-target.type.js";
7
7
  export type { ForgeConfiguration } from "./types/configuration.type.js";
8
8
  export type { WorkspaceOptions } from "./types/workspace-config.type.js";
9
- export { Debug as DebugConfiguration, DefaultConfigurations, Release as ReleaseConfiguration, WorkspaceDefaults, } from "./workspace.config.js";
9
+ export { Debug as DebugConfiguration, DefaultConfigurations, Link as LinkConfiguration, Release as ReleaseConfiguration, WorkspaceDefaults, } from "./workspace.config.js";
@@ -1,8 +1,7 @@
1
- import type { Project } from "@decohere/mesh";
1
+ import type { Project, ProjectFileEvent, Tsconfig, Workspace } from "@decohere/mesh";
2
2
  import type { FileEx } from "@decohere/nexus/io";
3
3
  import { type BuildTarget, type TranspileTarget } from "../types/build-target.type.js";
4
4
  import "../extensions/project.extensions.js";
5
- import type { ProjectFileEvent, Tsconfig } from "@decohere/mesh";
6
5
  import { CachesOutputs } from "../mixins/caches-outputs.mixin.js";
7
6
  import { IncrementalTransform } from "../mixins/incremental-transform.mixin.js";
8
7
  import type { SwcConfig } from "../types/swc-config.type.js";
@@ -12,11 +11,15 @@ export type TranspileOptions = {
12
11
  aliasPaths?: boolean;
13
12
  tsConfig?: Tsconfig;
14
13
  userConfig?: SwcConfig;
14
+ workspace?: Workspace;
15
+ projects?: readonly Project[];
15
16
  };
16
17
  declare const SwcTranspiler_base: abstract new (...args: unknown[]) => CachesOutputs & IncrementalTransform;
17
18
  export declare class SwcTranspiler extends SwcTranspiler_base implements Transformer {
18
19
  #private;
19
20
  buildTargets: BuildTarget[];
21
+ watch(workspace: Workspace): void;
22
+ private withAliasContext;
20
23
  transformProject(projectArrayLike: Project | Project[], fileFilter?: (project: Project) => Promise<FileEx[]>, onOutput?: (response: TransformResponse) => void): Promise<TransformResponse[]>;
21
24
  transformFile(fileArrayLike: FileEx[] | FileEx, buildTarget: TranspileTarget, options?: TranspileOptions): Promise<TransformResponse[]>;
22
25
  /**
@@ -14,7 +14,7 @@ export declare class TsProgramHost {
14
14
  /** Returns a stable string key for a set of compiler options that affect host behaviour. */
15
15
  hostKey(opts: ts.CompilerOptions): string;
16
16
  createHost(compilerOptions: ts.CompilerOptions): ts.CompilerHost;
17
- createProgram(files: FileEx[], compilerOptions: ts.CompilerOptions, host: ts.CompilerHost, oldProgram?: ts.Program): ts.Program;
17
+ createProgram(files: FileEx[], compilerOptions: ts.CompilerOptions, host: ts.CompilerHost, oldProgram?: ts.Program, requiredOptions?: ts.CompilerOptions): ts.Program;
18
18
  readFileFromDisk(fileName: string): string | undefined;
19
19
  fileExistsOnDisk(fileName: string): boolean;
20
20
  directoryExists(directoryName: string): boolean;
@@ -1,5 +1,6 @@
1
1
  import type { Project, Tsconfig } from "@decohere/mesh";
2
2
  import type { FileEx } from "@decohere/nexus/io";
3
+ import ts from "typescript";
3
4
  import type { TsProgramHost } from "../services/ts-program-host.js";
4
5
  import { TransformResponse } from "../types/transform-response.model.js";
5
6
  export type TypeProgramProject = {
@@ -9,12 +10,16 @@ export type TypeProgramProject = {
9
10
  };
10
11
  export declare class TypeEmissionProgram {
11
12
  #private;
12
- constructor(group: TypeProgramProject[], hostFactory: TsProgramHost);
13
+ constructor(group: TypeProgramProject[], hostFactory: TsProgramHost, requiredOptions: ts.CompilerOptions);
14
+ check(): readonly ts.Diagnostic[];
15
+ formatDiagnostics(diagnostics: readonly ts.Diagnostic[]): string;
13
16
  private toEmissionTarget;
14
17
  private emittedKey;
15
18
  private buildTargetMaps;
16
19
  addFile(file: FileEx, project: Project): void;
17
20
  emit(fileFilter?: (project: Project) => Promise<FileEx[]>, onOutput?: (response: TransformResponse) => void): Promise<TransformResponse[]>;
21
+ private createProgram;
22
+ private refreshProgramIfNeeded;
18
23
  private emitAll;
19
24
  private emitFiltered;
20
25
  private toTransformResponse;