@decohere/forge 0.0.1-dev.64 → 0.0.1-dev.66

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 (31) hide show
  1. package/commonjs/src/actions/index.js +2 -1
  2. package/commonjs/src/actions/typecheck.action.js +69 -0
  3. package/commonjs/src/commands/index.js +2 -1
  4. package/commonjs/src/commands/typecheck.command.js +26 -0
  5. package/commonjs/src/factories/swc-config.factory.js +13 -19
  6. package/commonjs/src/forge.module.js +4 -1
  7. package/commonjs/src/services/ts-program-host.js +3 -3
  8. package/commonjs/src/services/type-emission-program.js +24 -7
  9. package/commonjs/src/services/type-emitter.js +34 -4
  10. package/es6/src/actions/index.js +2 -1
  11. package/es6/src/actions/typecheck.action.js +56 -0
  12. package/es6/src/commands/index.js +2 -1
  13. package/es6/src/commands/typecheck.command.js +16 -0
  14. package/es6/src/factories/swc-config.factory.js +13 -19
  15. package/es6/src/forge.module.js +4 -1
  16. package/es6/src/services/ts-program-host.js +3 -3
  17. package/es6/src/services/type-emission-program.js +24 -7
  18. package/es6/src/services/type-emitter.js +31 -4
  19. package/package.json +5 -5
  20. package/types/src/actions/index.d.ts +1 -0
  21. package/types/src/actions/typecheck.action.d.ts +14 -0
  22. package/types/src/commands/index.d.ts +1 -0
  23. package/types/src/commands/typecheck.command.d.ts +6 -0
  24. package/types/src/factories/swc-config.factory.d.ts +1 -6
  25. package/types/src/forge.module.d.ts +2 -0
  26. package/types/src/services/ts-program-host.d.ts +1 -1
  27. package/types/src/services/type-emission-program.d.ts +6 -1
  28. package/types/src/services/type-emitter.d.ts +14 -0
  29. package/commonjs/src/workspace-package-aliases.js +0 -65
  30. package/es6/src/workspace-package-aliases.js +0 -43
  31. package/types/src/workspace-package-aliases.d.ts +0 -10
@@ -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+IFByb21pc2UucmVzb2x2ZShbZmlsZV0pKTtcblx0fVxuXG5cdEBpbnZhbGlkYXRlQ2FjaGUoVHNQcm9ncmFtSG9zdC5wcm90b3R5cGUucmVhZEZpbGVGcm9tRGlzaywge1xuXHRcdG5hbWU6IFwiRklMRV9DT05URU5UXCIsXG5cdFx0a2V5Rm46ICguLi5hcmdzKSA9PiBhcmdzWzBdIGFzIHN0cmluZyxcblx0fSlcblx0cHJpdmF0ZSBpbnZhbGlkYXRlUmVhZEZpbGVDYWNoZShfcGF0aDogc3RyaW5nKTogdm9pZCB7fVxufVxuIl0sIm5hbWVzIjpbImludmFsaWRhdGVDYWNoZSIsIlRyYWNlIiwibWl4d2l0aCIsImlvIiwiQ2FjaGVzT3V0cHV0cyIsIkluY3JlbWVudGFsVHJhbnNmb3JtIiwiVHNQcm9ncmFtSG9zdCIsIlR5cGVFbWlzc2lvblByb2dyYW0iLCJCdWlsZFRhcmdldHMiLCJERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TIiwibGliIiwidHlwZXMiLCJza2lwTGliQ2hlY2siLCJSRVFVSVJFRF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsImVtaXREZWNsYXJhdGlvbk9ubHkiLCJkZWNsYXJhdGlvbiIsIlR5cGVFbWl0dGVyIiwiYnVpbGRUYXJnZXRzIiwiaW5pdCIsInByb2plY3RBcnJheUxpa2UiLCJfZmlsdGVyIiwicHJlcGFyZVByb2dyYW1zIiwidHJhbnNmb3JtUHJvamVjdCIsImZpbHRlciIsIm9uT3V0cHV0IiwicHJvZ3JhbXMiLCJsZW5ndGgiLCJyZXNwb25zZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwicHJvZ3JhbSIsImVtaXQiLCJmbGF0IiwiY2FjaGVPdXRwdXRzIiwiYWxsUHJvamVjdHMiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9qZWN0cyIsInByb2oiLCJnZXRGb3JnZUNvbmZpZ3VyYXRpb24iLCJ0YXJnZXRzIiwiaW5jbHVkZXMiLCJwcm9qZWN0RGF0YSIsInByb2plY3QiLCJmaWxlcyIsImdldEFsbEZpbGVzIiwidHNjb25maWciLCJnZXRUc0NvbmZpZyIsImdyb3VwcyIsIk1hcCIsImdyb3VwQnkiLCJob3N0S2V5IiwiY29tcGlsZXJPcHRpb25zIiwidmFsdWVzIiwiZ3JvdXAiLCJvbkluY3JlbWVudGFsRmlsZUV2ZW50IiwiZXZ0IiwiZmlsZSIsImV2ZW50TmFtZSIsIldhdGNoRXZlbnRzIiwidW5saW5rIiwiZGVsZXRlQ2FjaGVkT3V0cHV0cyIsImZ1bGxQYXRoIiwiaXNTb3VyY2VGaWxlIiwiYWRkIiwiZm9yRWFjaCIsInAiLCJhZGRGaWxlIiwiaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUiLCJpbnZhbGlkYXRlU291cmNlRmlsZSIsInJlc29sdmUiLCJfcGF0aCIsInByb3RvdHlwZSIsInJlYWRGaWxlRnJvbURpc2siLCJuYW1lIiwia2V5Rm4iLCJhcmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxTQUFTQSxlQUFlLFFBQVEsMEJBQTBCO0FBQzFELFNBQVNDLEtBQUssUUFBUSw4QkFBOEI7QUFDcEQsU0FBU0MsT0FBTyxRQUFRLGdDQUFn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
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBQcm9qZWN0RmlsZUV2ZW50IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NhY2hpbmdcIjtcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9kaWFnbm9zdGljc1wiO1xuaW1wb3J0IHsgbWl4d2l0aCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZXh0ZW5zaWJpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBGaWxlRXggfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgeyBpbyB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgXCIuLi9leHRlbnNpb25zL3Byb2plY3QuZXh0ZW5zaW9ucy5qc1wiO1xuaW1wb3J0IHsgQ2FjaGVzT3V0cHV0cyB9IGZyb20gXCIuLi9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4uanNcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsVHJhbnNmb3JtIH0gZnJvbSBcIi4uL21peGlucy9pbmNyZW1lbnRhbC10cmFuc2Zvcm0ubWl4aW4uanNcIjtcbmltcG9ydCB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQge1xuXHRUeXBlRW1pc3Npb25Qcm9ncmFtLFxuXHR0eXBlIFR5cGVQcm9ncmFtUHJvamVjdCxcbn0gZnJvbSBcIi4uL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9uIGRlZmF1bHRzIGFwcGxpZWQgYmVmb3JlIHRoZSB1c2VyJ3MgdHNjb25maWcg4oCUIHRoZSB1c2VyJ3MgdmFsdWVzIG92ZXJyaWRlIHRoZXNlLlxuICpcbiAqIGxpYjogRVMyMDIyIOKAlCBhdm9pZHMgbG9hZGluZyBsaWIuZG9tLmQudHMgKDEuOCBNQikgd2hpY2ggVFMgaW5jbHVkZXMgYnkgZGVmYXVsdFxuICogd2hlbiBubyBgbGliYCBpcyBzZXQuIEJhY2tlbmQgcGFja2FnZXMgaGF2ZSBubyB1c2UgZm9yIGJyb3dzZXIgQVBJcy5cbiAqXG4gKiB0eXBlczogW10g4oCUIGRpc2FibGVzIGFtYmllbnQgQHR5cGVzIGF1dG8tZGlzY292ZXJ5LiBXaXRob3V0IHRoaXMsIFRTIHNjYW5zXG4gKiBldmVyeSBAdHlwZXMvKiBwYWNrYWdlIGluIHRoZSBub2RlX21vZHVsZXMgaGllcmFyY2h5OyBpbiBhIG1vbm9yZXBvIHRoYXQgY2FuXG4gKiBwdWxsIGluIGRvemVucyBvZiB1bnJlbGF0ZWQgcGFja2FnZXMuIEV4cGxpY2l0bHkgaW1wb3J0ZWQgdHlwZXMgc3RpbGwgcmVzb2x2ZVxuICogbm9ybWFsbHk7IG9ubHkgYW1iaWVudCBnbG9iYWxzIChlLmcuIEJ1ZmZlciwgcHJvY2VzcykgYXJlIHN1cHByZXNzZWQg4oCUIGFkZFxuICogYHR5cGVzOiBbXCJub2RlXCJdYCB0byBhIHByb2plY3QncyB0c2NvbmZpZyB0byByZXN0b3JlIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRsaWI6IFtcImxpYi5lczIwMjIuZC50c1wiXSxcblx0dHlwZXM6IFtdLFxuXHRza2lwTGliQ2hlY2s6IHRydWUsXG59O1xuXG4vKipcbiAqIENvbXBpbGVyIG9wdGlvbnMgdGhhdCBUeXBlRW1pdHRlciBhbHdheXMgZW5mb3JjZXMgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyJ3NcbiAqIHRzY29uZmlnIHNwZWNpZmllcy4gQXBwbGllZCBhZnRlciB0aGUgdXNlciBzcHJlYWQgc28gdGhleSBjYW5ub3QgYmUgb3ZlcnJpZGRlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRlbWl0RGVjbGFyYXRpb25Pbmx5OiB0cnVlLFxuXHRkZWNsYXJhdGlvbjogdHJ1ZSxcbn07XG5cbi8qKiBDb21waWxlciBvcHRpb25zIGVuZm9yY2VkIGZvciBgZm9yZ2UgdHlwZWNoZWNrYCDigJQgbmV2ZXIgZW1pdCBKUyBvciBkZWNsYXJhdGlvbnMuICovXG5leHBvcnQgY29uc3QgUkVRVUlSRURfVFlQRV9DSEVDS19PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRub0VtaXQ6IHRydWUsXG59O1xuXG5leHBvcnQgdHlwZSBQcmVwYXJlUHJvZ3JhbXNPcHRpb25zID0ge1xuXHRpbmNsdWRlQWxsUHJvamVjdHM/OiBib29sZWFuO1xuXHRyZXF1aXJlZENvbXBpbGVyT3B0aW9ucz86IHRzLkNvbXBpbGVyT3B0aW9ucztcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFR5cGVFbWl0dGVyXG5cdGV4dGVuZHMgbWl4d2l0aChDYWNoZXNPdXRwdXRzLCBJbmNyZW1lbnRhbFRyYW5zZm9ybSlcblx0aW1wbGVtZW50cyBUcmFuc2Zvcm1lclxue1xuXHRwdWJsaWMgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdID0gW0J1aWxkVGFyZ2V0cy50eXBlc107XG5cdC8qKiBQcmVwYXJlZCBwcm9ncmFtcyBmcm9tIGluaXQoKSwgY29uc3VtZWQgb25jZSBieSB0aGUgbmV4dCB0cmFuc2Zvcm1Qcm9qZWN0KCkgY2FsbC4gKi9cblx0I3Byb2dyYW1zOiBUeXBlRW1pc3Npb25Qcm9ncmFtW10gfCB1bmRlZmluZWQ7XG5cdCNob3N0ID0gbmV3IFRzUHJvZ3JhbUhvc3QoKTtcblxuXHQvKipcblx0ICogUGhhc2UgMTogZmV0Y2ggZmlsZXMsIGNyZWF0ZSBUeXBlU2NyaXB0IHByb2dyYW1zIHNlcXVlbnRpYWxseS5cblx0ICogQ2FsbGVkIGJlZm9yZSB0cmFuc2Zvcm1Qcm9qZWN0KCkgc28gdGhhdCB0aGUgaGVhdnkgY3JlYXRlUHJvZ3JhbSB3b3JrXG5cdCAqIGNvbXBsZXRlcyBiZWZvcmUgb3RoZXIgdHJhbnNmb3JtZXJzIChTV0MvUmF5b24pIHN0YXJ0IHJ1bm5pbmcgaW4gcGFyYWxsZWwuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgaW5pdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHRcdF9maWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLiNwcm9ncmFtcyA9PSBudWxsKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2Zvcm1Qcm9qZWN0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0ZmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Ly8gQ29uc3VtZSBwcmVwYXJlZCBzdGF0ZSBmcm9tIGluaXQoKSBpZiBhdmFpbGFibGU7IG90aGVyd2lzZSBkbyBmdWxsIHNldHVwXG5cdFx0Ly8gKGUuZy4gd2F0Y2gtbW9kZSBzaW5nbGUtZmlsZSByZWJ1aWxkcyB0aGF0IHNraXAgdGhlIGluaXQgcGhhc2UpLlxuXHRcdGNvbnN0IHByb2dyYW1zID0gdGhpcy4jcHJvZ3JhbXMgPz8gKGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpKTtcblx0XHR0aGlzLiNwcm9ncmFtcyA9IHByb2dyYW1zO1xuXG5cdFx0aWYgKHByb2dyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3BvbnNlcyA9IChcblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb2dyYW1zLm1hcCgocHJvZ3JhbSkgPT4gcHJvZ3JhbS5lbWl0KGZpbHRlciwgb25PdXRwdXQpKSlcblx0XHQpLmZsYXQoKTtcblx0XHR0aGlzLmNhY2hlT3V0cHV0cyhyZXNwb25zZXMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHQvKipcblx0ICogVHlwZS1jaGVjayBwcm9qZWN0cyB3aXRob3V0IGVtaXR0aW5nIGZpbGVzLiBJbmNsdWRlcyBldmVyeSBNZXNoIHByb2plY3QsIG5vdFxuXHQgKiBvbmx5IHRob3NlIHdpdGggYSBgdHlwZXNgIGJ1aWxkIHRhcmdldCAoZGVidWcgaXMgZXM2LW9ubHkpLlxuXHQgKi9cblx0cHVibGljIGFzeW5jIGNoZWNrUHJvamVjdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHQpOiBQcm9taXNlPHsgZGlhZ25vc3RpY3M6IHRzLkRpYWdub3N0aWNbXTsgZm9ybWF0dGVkOiBzdHJpbmcgfT4ge1xuXHRcdGNvbnN0IHByb2dyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlUHJvZ3JhbXMocHJvamVjdEFycmF5TGlrZSwge1xuXHRcdFx0aW5jbHVkZUFsbFByb2plY3RzOiB0cnVlLFxuXHRcdFx0cmVxdWlyZWRDb21waWxlck9wdGlvbnM6IFJFUVVJUkVEX1RZUEVfQ0hFQ0tfT1BUSU9OUyxcblx0XHR9KTtcblx0XHRjb25zdCBkaWFnbm9zdGljczogdHMuRGlhZ25vc3RpY1tdID0gW107XG5cdFx0Y29uc3QgZm9ybWF0dGVkUGFydHM6IHN0cmluZ1tdID0gW107XG5cdFx0Zm9yIChjb25zdCBwcm9ncmFtIG9mIHByb2dyYW1zKSB7XG5cdFx0XHRjb25zdCBwcm9ncmFtRGlhZ25vc3RpY3MgPSBwcm9ncmFtLmNoZWNrKCk7XG5cdFx0XHRpZiAocHJvZ3JhbURpYWdub3N0aWNzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGRpYWdub3N0aWNzLnB1c2goLi4ucHJvZ3JhbURpYWdub3N0aWNzKTtcblx0XHRcdGZvcm1hdHRlZFBhcnRzLnB1c2gocHJvZ3JhbS5mb3JtYXREaWFnbm9zdGljcyhwcm9ncmFtRGlhZ25vc3RpY3MpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgZGlhZ25vc3RpY3MsIGZvcm1hdHRlZDogZm9ybWF0dGVkUGFydHMuam9pbihcIlwiKSB9O1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBwcmVwYXJlUHJvZ3JhbXMoXG5cdFx0cHJvamVjdEFycmF5TGlrZTogUHJvamVjdFtdIHwgUHJvamVjdCxcblx0XHRvcHRpb25zOiBQcmVwYXJlUHJvZ3JhbXNPcHRpb25zID0ge30sXG5cdCk6IFByb21pc2U8VHlwZUVtaXNzaW9uUHJvZ3JhbVtdPiB7XG5cdFx0Y29uc3QgYWxsUHJvamVjdHMgPSBBcnJheS5pc0FycmF5KHByb2plY3RBcnJheUxpa2UpXG5cdFx0XHQ/IHByb2plY3RBcnJheUxpa2Vcblx0XHRcdDogW3Byb2plY3RBcnJheUxpa2VdO1xuXHRcdGNvbnN0IHByb2plY3RzID0gb3B0aW9ucy5pbmNsdWRlQWxsUHJvamVjdHNcblx0XHRcdD8gYWxsUHJvamVjdHNcblx0XHRcdDogYWxsUHJvamVjdHMuZmlsdGVyKChwcm9qKSA9PlxuXHRcdFx0XHRcdHByb2ouZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCkudGFyZ2V0cy5pbmNsdWRlcyhCdWlsZFRhcmdldHMudHlwZXMpLFxuXHRcdFx0XHQpO1xuXHRcdGlmIChwcm9qZWN0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cblx0XHQvLyBQcmUtZmV0Y2ggYWxsIGZpbGVzIGFuZCB0c2NvbmZpZ3MgaW4gcGFyYWxsZWwgYWNyb3NzIGFsbCBwcm9qZWN0c1xuXHRcdGNvbnN0IHByb2plY3REYXRhOiBUeXBlUHJvZ3JhbVByb2plY3RbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuXHRcdFx0cHJvamVjdHMubWFwKGFzeW5jIChwcm9qKSA9PiAoe1xuXHRcdFx0XHRwcm9qZWN0OiBwcm9qLFxuXHRcdFx0XHRmaWxlczogYXdhaXQgcHJvai5nZXRBbGxGaWxlcygpLFxuXHRcdFx0XHR0c2NvbmZpZzogYXdhaXQgcHJvai5nZXRUc0NvbmZpZygpLFxuXHRcdFx0fSkpLFxuXHRcdCk7XG5cblx0XHQvLyBHcm91cCBwcm9qZWN0cyBieSB0aGUgcmVzb2x2ZWQgY29tcGlsZXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY29tcGlsZXJcblx0XHQvLyBob3N0IChsaWIgbG9hZGluZywgbW9kdWxlIHJlc29sdXRpb24sIHBhdGggYWxpYXNlcykuIFByb2plY3RzIHNoYXJpbmcgdGhlXG5cdFx0Ly8gc2FtZSByZXNvbHZlZCB2YWx1ZXMgZ2V0IG9uZSBzaGFyZWQgaG9zdCBBTkQgb25lIHNoYXJlZCBwcm9ncmFtIOKAlCBhbGwgdGhlaXJcblx0XHQvLyBmaWxlcyBhcmUgY29tcGlsZWQgdG9nZXRoZXIsIG1hdGNoaW5nIHYxJ3Mgc2luZ2xlLXByb2dyYW0gYXBwcm9hY2ggd2hpY2hcblx0XHQvLyBhdm9pZHMgcmUtcGFyc2luZyBsaWIvbm9kZV9tb2R1bGVzIC5kLnRzIGZpbGVzIHBlciBwcm9qZWN0LlxuXHRcdGNvbnN0IGdyb3VwcyA9IE1hcC5ncm91cEJ5KHByb2plY3REYXRhLCAoeyB0c2NvbmZpZyB9KSA9PlxuXHRcdFx0dGhpcy4jaG9zdC5ob3N0S2V5KHRzY29uZmlnLmNvbXBpbGVyT3B0aW9ucyksXG5cdFx0KTtcblxuXHRcdGNvbnN0IHJlcXVpcmVkQ29tcGlsZXJPcHRpb25zID1cblx0XHRcdG9wdGlvbnMucmVxdWlyZWRDb21waWxlck9wdGlvbnMgPz8gUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlM7XG5cdFx0cmV0dXJuIFsuLi5ncm91cHMudmFsdWVzKCldLm1hcChcblx0XHRcdChncm91cCkgPT4gbmV3IFR5cGVFbWlzc2lvblByb2dyYW0oZ3JvdXAsIHRoaXMuI2hvc3QsIHJlcXVpcmVkQ29tcGlsZXJPcHRpb25zKSxcblx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIG9uSW5jcmVtZW50YWxGaWxlRXZlbnQoZXZ0OiBQcm9qZWN0RmlsZUV2ZW50KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3QgeyBmaWxlLCBwcm9qZWN0IH0gPSBldnQ7XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLnVubGluaykge1xuXHRcdFx0dGhpcy5kZWxldGVDYWNoZWRPdXRwdXRzKGZpbGUuZnVsbFBhdGgpO1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRpZiAoIXByb2plY3QuaXNTb3VyY2VGaWxlKGZpbGUpKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdGlmIChldnQuZXZlbnROYW1lID09PSBpby5XYXRjaEV2ZW50cy5hZGQpIHtcblx0XHRcdHRoaXMuI3Byb2dyYW1zPy5mb3JFYWNoKChwKSA9PiB7XG5cdFx0XHRcdHAuYWRkRmlsZShmaWxlLCBwcm9qZWN0KTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmludmFsaWRhdGVSZWFkRmlsZUNhY2hlKGZpbGUuZnVsbFBhdGgpO1xuXHRcdFx0dGhpcy4jaG9zdC5pbnZhbGlkYXRlU291cmNlRmlsZShmaWxlLmZ1bGxQYXRoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudHJhbnNmb3JtUHJvamVjdChwcm9qZWN0LCAoKSA9PiBQcm9taXNlLnJlc29sdmUoW2ZpbGVdKSk7XG5cdH1cblxuXHRAaW52YWxpZGF0ZUNhY2hlKFRzUHJvZ3JhbUhvc3QucHJvdG90eXBlLnJlYWRGaWxlRnJvbURpc2ssIHtcblx0XHRuYW1lOiBcIkZJTEVfQ09OVEVOVFwiLFxuXHRcdGtleUZuOiAoLi4uYXJncykgPT4gYXJnc1swXSBhcyBzdHJpbmcsXG5cdH0pXG5cdHByaXZhdGUgaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUoX3BhdGg6IHN0cmluZyk6IHZvaWQge31cbn1cbiJdLCJuYW1lcyI6WyJpbnZhbGlkYXRlQ2FjaGUiLCJUcmFjZSIsIm1peHdpdGgiLCJpbyIsIkNhY2hlc091dHB1dHMiLCJJbmNyZW1lbnRhbFRyYW5zZm9ybSIsIlRzUHJvZ3JhbUhvc3QiLCJUeXBlRW1pc3Npb25Qcm9ncmFtIiwiQnVpbGRUYXJnZXRzIiwiREVGQVVMVF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsImxpYiIsInR5cGVzIiwic2tpcExpYkNoZWNrIiwiUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlMiLCJlbWl0RGVjbGFyYXRpb25Pbmx5IiwiZGVjbGFyYXRpb24iLCJSRVFVSVJFRF9UWVBFX0NIRUNLX09QVElPTlMiLCJub0VtaXQiLCJUeXBlRW1pdHRlciIsImJ1aWxkVGFyZ2V0cyIsImluaXQiLCJwcm9qZWN0QXJyYXlMaWtlIiwiX2ZpbHRlciIsInByZXBhcmVQcm9ncmFtcyIsInRyYW5zZm9ybVByb2plY3QiLCJmaWx0ZXIiLCJvbk91dHB1dCIsInByb2dyYW1zIiwibGVuZ3RoIiwicmVzcG9uc2VzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInByb2dyYW0iLCJlbWl0IiwiZmxhdCIsImNhY2hlT3V0cHV0cyIsImNoZWNrUHJvamVjdCIsImluY2x1ZGVBbGxQcm9qZWN0cyIsInJlcXVpcmVkQ29tcGlsZXJPcHRpb25zIiwiZGlhZ25vc3RpY3MiLCJmb3JtYXR0ZWRQYXJ0cyIsInByb2dyYW1EaWFnbm9zdGljcyIsImNoZWNrIiwicHVzaCIsImZvcm1hdERpYWdub3N0aWNzIiwiZm9ybWF0dGVkIiwiam9pbiIsIm9wdGlvbnMiLCJhbGxQcm9qZWN0cyIsIkFycmF5IiwiaXNBcnJheSIsInByb2plY3RzIiwicHJvaiIsImdldEZvcmdlQ29uZmlndXJhdGlvbiIsInRhcmdldHMiLCJpbmNsdWRlcyIsInByb2plY3REYXRhIiwicHJvamVjdCIsImZpbGVzIiwiZ2V0QWxsRmlsZXMiLCJ0c2NvbmZpZyIsImdldFRzQ29uZmlnIiwiZ3JvdXBzIiwiTWFwIiwiZ3JvdXBCeSIsImhvc3RLZXkiLCJjb21waWxlck9wdGlvbnMiLCJ2YWx1ZXMiLCJncm91cCIsIm9uSW5jcmVtZW50YWxGaWxlRXZlbnQiLCJldnQiLCJmaWxlIiwiZXZlbnROYW1lIiwiV2F0Y2hFdmVudHMiLCJ1bmxpbmsiLCJkZWxldGVDYWNoZWRPdXRwdXRzIiwiZnVsbFBhdGgiLCJpc1NvdXJjZUZpbGUiLCJhZGQiLCJmb3JFYWNoIiwicCIsImFkZEZpbGUiLCJpbnZhbGlkYXRlUmVhZEZpbGVDYWNoZSIsImludmFsaWRhdGVTb3VyY2VGaWxlIiwicmVzb2x2ZSIsIl9wYXRoIiwicHJvdG90eXBlIiwicmVhZEZpbGVGcm9tRGlzayIsIm5hbWUiLCJrZXlGbiIsImFyZ3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLFNBQVNBLGVBQWUsUUFBUSwwQkFBMEI7QUFDMUQsU0FBU0MsS0FBSyxRQUFRLDhCQUE4QjtBQUNwRCxTQUFTQyxPQUFPLFFBQVEsZ0NBQWdDO0FBRXhELFNBQVNDLEVBQUUsUUFBUSxxQkFBcUI7QUFFeEMsT0FBTyxzQ0FBc0M7QUFDN0MsU0FBU0MsYUFBYSxRQUFRLG9D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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/forge",
3
- "version": "0.0.1-dev.64",
3
+ "version": "0.0.1-dev.66",
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.64",
33
- "@decohere/mesh": "0.0.1-dev.64",
34
- "@decohere/nexus": "0.0.1-dev.64",
35
- "@decohere/scribe": "0.0.1-dev.64",
32
+ "@decohere/crucible": "0.0.1-dev.66",
33
+ "@decohere/mesh": "0.0.1-dev.66",
34
+ "@decohere/nexus": "0.0.1-dev.66",
35
+ "@decohere/scribe": "0.0.1-dev.66",
36
36
  "@swc/core": "^1.11.11",
37
37
  "async": "^3.2.6",
38
38
  "parse-imports": "^2.2.1",
@@ -9,6 +9,7 @@ export * from "./link.action.js";
9
9
  export * from "./publish.action.js";
10
10
  export * from "./sync-lock-file.action.js";
11
11
  export * from "./tag.action.js";
12
+ export * from "./typecheck.action.js";
12
13
  export * from "./unlink.action.js";
13
14
  export * from "./version.action.js";
14
15
  export * from "./watch.action.js";
@@ -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
+ }
@@ -5,4 +5,5 @@ export * from "./forge.command.js";
5
5
  export * from "./link.command.js";
6
6
  export * from "./publish.command.js";
7
7
  export * from "./tag.command.js";
8
+ export * from "./typecheck.command.js";
8
9
  export * from "./version.command.js";
@@ -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
@@ -19,12 +20,6 @@ export declare class SwcConfigFactory {
19
20
  * - `jsc.baseUrl` set to a relative path (SWC requires an absolute path)
20
21
  */
21
22
  validate(options: Options): void;
22
- /**
23
- * Convention aliases from workspace packages, then `tsconfig` `paths` overrides.
24
- * Empty maps are omitted so SWC is not given a useless `jsc.paths`.
25
- */
26
- private buildAliasPaths;
27
- private resolveAliasBaseUrl;
28
23
  /** Resolves tsconfig baseUrl to an absolute path. Returns undefined if not set. */
29
24
  private static getBaseUrl;
30
25
  }
@@ -18,6 +18,7 @@ export declare class ForgeModule extends ModuleManifest {
18
18
  reportDependencies: typeof Actions.ReportDependencies;
19
19
  version: typeof Actions.Version;
20
20
  tag: typeof Actions.Tag;
21
+ typecheck: typeof Actions.TypeCheck;
21
22
  commitFiles: typeof Actions.CommitFiles;
22
23
  link: typeof Actions.Link;
23
24
  unlink: typeof Actions.Unlink;
@@ -29,6 +30,7 @@ export declare class ForgeModule extends ModuleManifest {
29
30
  docker: typeof Commands.DockerCommand;
30
31
  version: typeof Commands.VersionCommand;
31
32
  tag: typeof Commands.TagCommand;
33
+ typecheck: typeof Commands.TypeCheckCommand;
32
34
  link: typeof Commands.LinkCommand;
33
35
  unlink: typeof Commands.UnlinkCommand;
34
36
  };
@@ -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;
@@ -25,6 +25,12 @@ export declare const DEFAULT_TYPE_EMITTER_OPTIONS: Readonly<ts.CompilerOptions>;
25
25
  * tsconfig specifies. Applied after the user spread so they cannot be overridden.
26
26
  */
27
27
  export declare const REQUIRED_TYPE_EMITTER_OPTIONS: Readonly<ts.CompilerOptions>;
28
+ /** Compiler options enforced for `forge typecheck` — never emit JS or declarations. */
29
+ export declare const REQUIRED_TYPE_CHECK_OPTIONS: Readonly<ts.CompilerOptions>;
30
+ export type PrepareProgramsOptions = {
31
+ includeAllProjects?: boolean;
32
+ requiredCompilerOptions?: ts.CompilerOptions;
33
+ };
28
34
  declare const TypeEmitter_base: abstract new (...args: unknown[]) => CachesOutputs & IncrementalTransform;
29
35
  export declare class TypeEmitter extends TypeEmitter_base implements Transformer {
30
36
  #private;
@@ -36,6 +42,14 @@ export declare class TypeEmitter extends TypeEmitter_base implements Transformer
36
42
  */
37
43
  init(projectArrayLike: Project[] | Project, _filter?: (project: Project) => Promise<FileEx[]>): Promise<void>;
38
44
  transformProject(projectArrayLike: Project[] | Project, filter?: (project: Project) => Promise<FileEx[]>, onOutput?: (response: TransformResponse) => void): Promise<TransformResponse[]>;
45
+ /**
46
+ * Type-check projects without emitting files. Includes every Mesh project, not
47
+ * only those with a `types` build target (debug is es6-only).
48
+ */
49
+ checkProject(projectArrayLike: Project[] | Project): Promise<{
50
+ diagnostics: ts.Diagnostic[];
51
+ formatted: string;
52
+ }>;
39
53
  private preparePrograms;
40
54
  protected onIncrementalFileEvent(evt: ProjectFileEvent): Promise<TransformResponse[]>;
41
55
  private invalidateReadFileCache;
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get buildWorkspaceAliasPaths () {
13
- return buildWorkspaceAliasPaths;
14
- },
15
- get mergeAliasPaths () {
16
- return mergeAliasPaths;
17
- },
18
- get resolveAliasProjects () {
19
- return resolveAliasProjects;
20
- }
21
- });
22
- const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
23
- function _interop_require_default(obj) {
24
- return obj && obj.__esModule ? obj : {
25
- default: obj
26
- };
27
- }
28
- function buildWorkspaceAliasPaths(projects, baseUrl) {
29
- const aliases = {};
30
- const resolvedBase = _nodepath.default.resolve(baseUrl);
31
- for (const project of projects){
32
- const name = project.name;
33
- if (name.length === 0) continue;
34
- const entry = _nodepath.default.resolve(project.getSourceEntryPath());
35
- aliases[name] = [
36
- toPosixRelative(resolvedBase, entry)
37
- ];
38
- const sourceDir = _nodepath.default.dirname(entry);
39
- aliases[`${name}/*`] = [
40
- `${toPosixRelative(resolvedBase, sourceDir)}/*`
41
- ];
42
- }
43
- return aliases;
44
- }
45
- function mergeAliasPaths(convention, tsconfigPaths) {
46
- if (tsconfigPaths == null) return convention;
47
- return {
48
- ...convention,
49
- ...tsconfigPaths
50
- };
51
- }
52
- function resolveAliasProjects(workspace, projects) {
53
- if (workspace != null) {
54
- const configuration = projects?.[0]?.configuration.name ?? "debug";
55
- return workspace.getProjects(configuration);
56
- }
57
- return projects ?? [];
58
- }
59
- function toPosixRelative(from, to) {
60
- const relative = _nodepath.default.relative(from, to);
61
- if (relative === "") return ".";
62
- return relative.split(_nodepath.default.sep).join("/");
63
- }
64
-
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy93b3Jrc3BhY2UtcGFja2FnZS1hbGlhc2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCwgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbi8qKlxuICogQ29udmVudGlvbjogZWFjaCB3b3Jrc3BhY2UgcGFja2FnZSBuYW1lIG1hcHMgdG8gaXRzIHNvdXJjZSBlbnRyeSAoYHBhY2thZ2UuanNvbmAgbWFpbilcbiAqIGFuZCBhIGBuYW1lLypgIHN1YnBhdGggdG8gdGhhdCBlbnRyeSdzIGRpcmVjdG9yeS4gUGF0aHMgYXJlIHJlbGF0aXZlIHRvIGBiYXNlVXJsYFxuICogZm9yIFNXQyBganNjLnBhdGhzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkV29ya3NwYWNlQWxpYXNQYXRocyhcblx0cHJvamVjdHM6IHJlYWRvbmx5IFByb2plY3RbXSxcblx0YmFzZVVybDogc3RyaW5nLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHtcblx0Y29uc3QgYWxpYXNlczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdGNvbnN0IHJlc29sdmVkQmFzZSA9IHBhdGgucmVzb2x2ZShiYXNlVXJsKTtcblxuXHRmb3IgKGNvbnN0IHByb2plY3Qgb2YgcHJvamVjdHMpIHtcblx0XHRjb25zdCBuYW1lID0gcHJvamVjdC5uYW1lO1xuXHRcdGlmIChuYW1lLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cblx0XHRjb25zdCBlbnRyeSA9IHBhdGgucmVzb2x2ZShwcm9qZWN0LmdldFNvdXJjZUVudHJ5UGF0aCgpKTtcblx0XHRhbGlhc2VzW25hbWVdID0gW3RvUG9zaXhSZWxhdGl2ZShyZXNvbHZlZEJhc2UsIGVudHJ5KV07XG5cblx0XHRjb25zdCBzb3VyY2VEaXIgPSBwYXRoLmRpcm5hbWUoZW50cnkpO1xuXHRcdGFsaWFzZXNbYCR7bmFtZX0vKmBdID0gW2Ake3RvUG9zaXhSZWxhdGl2ZShyZXNvbHZlZEJhc2UsIHNvdXJjZURpcil9LypgXTtcblx0fVxuXG5cdHJldHVybiBhbGlhc2VzO1xufVxuXG4vKiogYHRzY29uZmlnYCBgcGF0aHNgIG92ZXJyaWRlIGNvbnZlbnRpb24gZW50cmllcyBmb3IgdGhlIHNhbWUga2V5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQWxpYXNQYXRocyhcblx0Y29udmVudGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+LFxuXHR0c2NvbmZpZ1BhdGhzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuXHRpZiAodHNjb25maWdQYXRocyA9PSBudWxsKSByZXR1cm4gY29udmVudGlvbjtcblx0cmV0dXJuIHsgLi4uY29udmVudGlvbiwgLi4udHNjb25maWdQYXRocyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFsaWFzUHJvamVjdHMoXG5cdHdvcmtzcGFjZTogV29ya3NwYWNlIHwgdW5kZWZpbmVkLFxuXHRwcm9qZWN0czogcmVhZG9ubHkgUHJvamVjdFtdIHwgdW5kZWZpbmVkLFxuKTogcmVhZG9ubHkgUHJvamVjdFtdIHtcblx0aWYgKHdvcmtzcGFjZSAhPSBudWxsKSB7XG5cdFx0Y29uc3QgY29uZmlndXJhdGlvbiA9IHByb2plY3RzPy5bMF0/LmNvbmZpZ3VyYXRpb24ubmFtZSA/PyBcImRlYnVnXCI7XG5cdFx0cmV0dXJuIHdvcmtzcGFjZS5nZXRQcm9qZWN0cyhjb25maWd1cmF0aW9uKTtcblx0fVxuXHRyZXR1cm4gcHJvamVjdHMgPz8gW107XG59XG5cbmZ1bmN0aW9uIHRvUG9zaXhSZWxhdGl2ZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCByZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoZnJvbSwgdG8pO1xuXHRpZiAocmVsYXRpdmUgPT09IFwiXCIpIHJldHVybiBcIi5cIjtcblx0cmV0dXJuIHJlbGF0aXZlLnNwbGl0KHBhdGguc2VwKS5qb2luKFwiL1wiKTtcbn1cbiJdLCJuYW1lcyI6WyJidWlsZFdvcmtzcGFjZUFsaWFzUGF0aHMiLCJtZXJnZUFsaWFzUGF0aHMiLCJyZXNvbHZlQWxpYXNQcm9qZWN0cyIsInByb2plY3RzIiwiYmFzZVVybCIsImFsaWFzZXMiLCJyZXNvbHZlZEJhc2UiLCJwYXRoIiwicmVzb2x2ZSIsInByb2plY3QiLCJuYW1lIiwibGVuZ3RoIiwiZW50cnkiLCJnZXRTb3VyY2VFbnRyeVBhdGgiLCJ0b1Bvc2l4UmVsYXRpdmUiLCJzb3VyY2VEaXIiLCJkaXJuYW1lIiwiY29udmVudGlvbiIsInRzY29uZmlnUGF0aHMiLCJ3b3Jrc3BhY2UiLCJjb25maWd1cmF0aW9uIiwiZ2V0UHJvamVjdHMiLCJmcm9tIiwidG8iLCJyZWxhdGl2ZSIsInNwbGl0Iiwic2VwIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFRZ0JBO2VBQUFBOztRQXNCQUM7ZUFBQUE7O1FBUUFDO2VBQUFBOzs7aUVBdENDOzs7Ozs7QUFRVixTQUFTRix5QkFDZkcsUUFBNEIsRUFDNUJDLE9BQWU7SUFFZixNQUFNQyxVQUFvQyxDQUFDO0lBQzNDLE1BQU1DLGVBQWVDLGlCQUFJLENBQUNDLE9BQU8sQ0FBQ0o7SUFFbEMsS0FBSyxNQUFNSyxXQUFXTixTQUFVO1FBQy9CLE1BQU1PLE9BQU9ELFFBQVFDLElBQUk7UUFDekIsSUFBSUEsS0FBS0MsTUFBTSxLQUFLLEdBQUc7UUFFdkIsTUFBTUMsUUFBUUwsaUJBQUksQ0FBQ0MsT0FBTyxDQUFDQyxRQUFRSSxrQkFBa0I7UUFDckRSLE9BQU8sQ0FBQ0ssS0FBSyxHQUFHO1lBQUNJLGdCQUFnQlIsY0FBY007U0FBTztRQUV0RCxNQUFNRyxZQUFZUixpQkFBSSxDQUFDUyxPQUFPLENBQUNKO1FBQy9CUCxPQUFPLENBQUMsR0FBR0ssS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHO1lBQUMsR0FBR0ksZ0JBQWdCUixjQUFjUyxXQUFXLEVBQUUsQ0FBQztTQUFDO0lBQ3pFO0lBRUEsT0FBT1Y7QUFDUjtBQUdPLFNBQVNKLGdCQUNmZ0IsVUFBb0MsRUFDcENDLGFBQW1EO0lBRW5ELElBQUlBLGlCQUFpQixNQUFNLE9BQU9EO0lBQ2xDLE9BQU87UUFBRSxHQUFHQSxVQUFVO1FBQUUsR0FBR0MsYUFBYTtJQUFDO0FBQzFDO0FBRU8sU0FBU2hCLHFCQUNmaUIsU0FBZ0MsRUFDaENoQixRQUF3QztJQUV4QyxJQUFJZ0IsYUFBYSxNQUFNO1FBQ3RCLE1BQU1DLGdCQUFnQmpCLFVBQVUsQ0FBQyxFQUFFLEVBQUVpQixjQUFjVixRQUFRO1FBQzNELE9BQU9TLFVBQVVFLFdBQVcsQ0FBQ0Q7SUFDOUI7SUFDQSxPQUFPakIsWUFBWSxFQUFFO0FBQ3RCO0FBRUEsU0FBU1csZ0JBQWdCUSxJQUFZLEVBQUVDLEVBQVU7SUFDaEQsTUFBTUMsV0FBV2pCLGlCQUFJLENBQUNpQixRQUFRLENBQUNGLE1BQU1DO0lBQ3JDLElBQUlDLGFBQWEsSUFBSSxPQUFPO0lBQzVCLE9BQU9BLFNBQVNDLEtBQUssQ0FBQ2xCLGlCQUFJLENBQUNtQixHQUFHLEVBQUVDLElBQUksQ0FBQztBQUN0QyJ9
@@ -1,43 +0,0 @@
1
- import path from "node:path";
2
- /**
3
- * Convention: each workspace package name maps to its source entry (`package.json` main)
4
- * and a `name/*` subpath to that entry's directory. Paths are relative to `baseUrl`
5
- * for SWC `jsc.paths`.
6
- */ export function buildWorkspaceAliasPaths(projects, baseUrl) {
7
- const aliases = {};
8
- const resolvedBase = path.resolve(baseUrl);
9
- for (const project of projects){
10
- const name = project.name;
11
- if (name.length === 0) continue;
12
- const entry = path.resolve(project.getSourceEntryPath());
13
- aliases[name] = [
14
- toPosixRelative(resolvedBase, entry)
15
- ];
16
- const sourceDir = path.dirname(entry);
17
- aliases[`${name}/*`] = [
18
- `${toPosixRelative(resolvedBase, sourceDir)}/*`
19
- ];
20
- }
21
- return aliases;
22
- }
23
- /** `tsconfig` `paths` override convention entries for the same key. */ export function mergeAliasPaths(convention, tsconfigPaths) {
24
- if (tsconfigPaths == null) return convention;
25
- return {
26
- ...convention,
27
- ...tsconfigPaths
28
- };
29
- }
30
- export function resolveAliasProjects(workspace, projects) {
31
- if (workspace != null) {
32
- const configuration = projects?.[0]?.configuration.name ?? "debug";
33
- return workspace.getProjects(configuration);
34
- }
35
- return projects ?? [];
36
- }
37
- function toPosixRelative(from, to) {
38
- const relative = path.relative(from, to);
39
- if (relative === "") return ".";
40
- return relative.split(path.sep).join("/");
41
- }
42
-
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy93b3Jrc3BhY2UtcGFja2FnZS1hbGlhc2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCwgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbi8qKlxuICogQ29udmVudGlvbjogZWFjaCB3b3Jrc3BhY2UgcGFja2FnZSBuYW1lIG1hcHMgdG8gaXRzIHNvdXJjZSBlbnRyeSAoYHBhY2thZ2UuanNvbmAgbWFpbilcbiAqIGFuZCBhIGBuYW1lLypgIHN1YnBhdGggdG8gdGhhdCBlbnRyeSdzIGRpcmVjdG9yeS4gUGF0aHMgYXJlIHJlbGF0aXZlIHRvIGBiYXNlVXJsYFxuICogZm9yIFNXQyBganNjLnBhdGhzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkV29ya3NwYWNlQWxpYXNQYXRocyhcblx0cHJvamVjdHM6IHJlYWRvbmx5IFByb2plY3RbXSxcblx0YmFzZVVybDogc3RyaW5nLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHtcblx0Y29uc3QgYWxpYXNlczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdGNvbnN0IHJlc29sdmVkQmFzZSA9IHBhdGgucmVzb2x2ZShiYXNlVXJsKTtcblxuXHRmb3IgKGNvbnN0IHByb2plY3Qgb2YgcHJvamVjdHMpIHtcblx0XHRjb25zdCBuYW1lID0gcHJvamVjdC5uYW1lO1xuXHRcdGlmIChuYW1lLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cblx0XHRjb25zdCBlbnRyeSA9IHBhdGgucmVzb2x2ZShwcm9qZWN0LmdldFNvdXJjZUVudHJ5UGF0aCgpKTtcblx0XHRhbGlhc2VzW25hbWVdID0gW3RvUG9zaXhSZWxhdGl2ZShyZXNvbHZlZEJhc2UsIGVudHJ5KV07XG5cblx0XHRjb25zdCBzb3VyY2VEaXIgPSBwYXRoLmRpcm5hbWUoZW50cnkpO1xuXHRcdGFsaWFzZXNbYCR7bmFtZX0vKmBdID0gW2Ake3RvUG9zaXhSZWxhdGl2ZShyZXNvbHZlZEJhc2UsIHNvdXJjZURpcil9LypgXTtcblx0fVxuXG5cdHJldHVybiBhbGlhc2VzO1xufVxuXG4vKiogYHRzY29uZmlnYCBgcGF0aHNgIG92ZXJyaWRlIGNvbnZlbnRpb24gZW50cmllcyBmb3IgdGhlIHNhbWUga2V5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQWxpYXNQYXRocyhcblx0Y29udmVudGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+LFxuXHR0c2NvbmZpZ1BhdGhzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuXHRpZiAodHNjb25maWdQYXRocyA9PSBudWxsKSByZXR1cm4gY29udmVudGlvbjtcblx0cmV0dXJuIHsgLi4uY29udmVudGlvbiwgLi4udHNjb25maWdQYXRocyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFsaWFzUHJvamVjdHMoXG5cdHdvcmtzcGFjZTogV29ya3NwYWNlIHwgdW5kZWZpbmVkLFxuXHRwcm9qZWN0czogcmVhZG9ubHkgUHJvamVjdFtdIHwgdW5kZWZpbmVkLFxuKTogcmVhZG9ubHkgUHJvamVjdFtdIHtcblx0aWYgKHdvcmtzcGFjZSAhPSBudWxsKSB7XG5cdFx0Y29uc3QgY29uZmlndXJhdGlvbiA9IHByb2plY3RzPy5bMF0/LmNvbmZpZ3VyYXRpb24ubmFtZSA/PyBcImRlYnVnXCI7XG5cdFx0cmV0dXJuIHdvcmtzcGFjZS5nZXRQcm9qZWN0cyhjb25maWd1cmF0aW9uKTtcblx0fVxuXHRyZXR1cm4gcHJvamVjdHMgPz8gW107XG59XG5cbmZ1bmN0aW9uIHRvUG9zaXhSZWxhdGl2ZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCByZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoZnJvbSwgdG8pO1xuXHRpZiAocmVsYXRpdmUgPT09IFwiXCIpIHJldHVybiBcIi5cIjtcblx0cmV0dXJuIHJlbGF0aXZlLnNwbGl0KHBhdGguc2VwKS5qb2luKFwiL1wiKTtcbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwiYnVpbGRXb3Jrc3BhY2VBbGlhc1BhdGhzIiwicHJvamVjdHMiLCJiYXNlVXJsIiwiYWxpYXNlcyIsInJlc29sdmVkQmFzZSIsInJlc29sdmUiLCJwcm9qZWN0IiwibmFtZSIsImxlbmd0aCIsImVudHJ5IiwiZ2V0U291cmNlRW50cnlQYXRoIiwidG9Qb3NpeFJlbGF0aXZlIiwic291cmNlRGlyIiwiZGlybmFtZSIsIm1lcmdlQWxpYXNQYXRocyIsImNvbnZlbnRpb24iLCJ0c2NvbmZpZ1BhdGhzIiwicmVzb2x2ZUFsaWFzUHJvamVjdHMiLCJ3b3Jrc3BhY2UiLCJjb25maWd1cmF0aW9uIiwiZ2V0UHJvamVjdHMiLCJmcm9tIiwidG8iLCJyZWxhdGl2ZSIsInNwbGl0Iiwic2VwIiwiam9pbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsVUFBVSxZQUFZO0FBRzdCOzs7O0NBSUMsR0FDRCxPQUFPLFNBQVNDLHlCQUNmQyxRQUE0QixFQUM1QkMsT0FBZTtJQUVmLE1BQU1DLFVBQW9DLENBQUM7SUFDM0MsTUFBTUMsZUFBZUwsS0FBS00sT0FBTyxDQUFDSDtJQUVsQyxLQUFLLE1BQU1JLFdBQVdMLFNBQVU7UUFDL0IsTUFBTU0sT0FBT0QsUUFBUUMsSUFBSTtRQUN6QixJQUFJQSxLQUFLQyxNQUFNLEtBQUssR0FBRztRQUV2QixNQUFNQyxRQUFRVixLQUFLTSxPQUFPLENBQUNDLFFBQVFJLGtCQUFrQjtRQUNyRFAsT0FBTyxDQUFDSSxLQUFLLEdBQUc7WUFBQ0ksZ0JBQWdCUCxjQUFjSztTQUFPO1FBRXRELE1BQU1HLFlBQVliLEtBQUtjLE9BQU8sQ0FBQ0o7UUFDL0JOLE9BQU8sQ0FBQyxHQUFHSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUc7WUFBQyxHQUFHSSxnQkFBZ0JQLGNBQWNRLFdBQVcsRUFBRSxDQUFDO1NBQUM7SUFDekU7SUFFQSxPQUFPVDtBQUNSO0FBRUEscUVBQXFFLEdBQ3JFLE9BQU8sU0FBU1csZ0JBQ2ZDLFVBQW9DLEVBQ3BDQyxhQUFtRDtJQUVuRCxJQUFJQSxpQkFBaUIsTUFBTSxPQUFPRDtJQUNsQyxPQUFPO1FBQUUsR0FBR0EsVUFBVTtRQUFFLEdBQUdDLGFBQWE7SUFBQztBQUMxQztBQUVBLE9BQU8sU0FBU0MscUJBQ2ZDLFNBQWdDLEVBQ2hDakIsUUFBd0M7SUFFeEMsSUFBSWlCLGFBQWEsTUFBTTtRQUN0QixNQUFNQyxnQkFBZ0JsQixVQUFVLENBQUMsRUFBRSxFQUFFa0IsY0FBY1osUUFBUTtRQUMzRCxPQUFPVyxVQUFVRSxXQUFXLENBQUNEO0lBQzlCO0lBQ0EsT0FBT2xCLFlBQVksRUFBRTtBQUN0QjtBQUVBLFNBQVNVLGdCQUFnQlUsSUFBWSxFQUFFQyxFQUFVO0lBQ2hELE1BQU1DLFdBQVd4QixLQUFLd0IsUUFBUSxDQUFDRixNQUFNQztJQUNyQyxJQUFJQyxhQUFhLElBQUksT0FBTztJQUM1QixPQUFPQSxTQUFTQyxLQUFLLENBQUN6QixLQUFLMEIsR0FBRyxFQUFFQyxJQUFJLENBQUM7QUFDdEMifQ==
@@ -1,10 +0,0 @@
1
- import type { Project, Workspace } from "@decohere/mesh";
2
- /**
3
- * Convention: each workspace package name maps to its source entry (`package.json` main)
4
- * and a `name/*` subpath to that entry's directory. Paths are relative to `baseUrl`
5
- * for SWC `jsc.paths`.
6
- */
7
- export declare function buildWorkspaceAliasPaths(projects: readonly Project[], baseUrl: string): Record<string, string[]>;
8
- /** `tsconfig` `paths` override convention entries for the same key. */
9
- export declare function mergeAliasPaths(convention: Record<string, string[]>, tsconfigPaths: Record<string, string[]> | undefined): Record<string, string[]>;
10
- export declare function resolveAliasProjects(workspace: Workspace | undefined, projects: readonly Project[] | undefined): readonly Project[];