@decohere/forge 0.0.1-dev.11 → 0.0.1-dev.110

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 (148) hide show
  1. package/README.md +139 -0
  2. package/commonjs/src/actions/build.action.js +8 -2
  3. package/commonjs/src/actions/clean.action.js +2 -4
  4. package/commonjs/src/actions/commit.action.js +0 -2
  5. package/commonjs/src/actions/copy.action.js +37 -7
  6. package/commonjs/src/actions/dependency-report.action.js +0 -2
  7. package/commonjs/src/actions/dependency-sync.action.js +0 -2
  8. package/commonjs/src/actions/docker.action.js +209 -0
  9. package/commonjs/src/actions/index.js +5 -2
  10. package/commonjs/src/actions/link.action.js +154 -0
  11. package/commonjs/src/actions/package.action.js +234 -0
  12. package/commonjs/src/actions/publish.action.js +0 -2
  13. package/commonjs/src/actions/sync-lock-file.action.js +0 -2
  14. package/commonjs/src/actions/tag.action.js +2 -5
  15. package/commonjs/src/actions/typecheck.action.js +67 -0
  16. package/commonjs/src/actions/unlink.action.js +74 -0
  17. package/commonjs/src/actions/version.action.js +1 -5
  18. package/commonjs/src/actions/watch.action.js +0 -2
  19. package/commonjs/src/commands/build.command.js +0 -2
  20. package/commonjs/src/commands/dependency.command.js +0 -2
  21. package/commonjs/src/commands/docker.command.js +26 -0
  22. package/commonjs/src/commands/forge.command.js +0 -2
  23. package/commonjs/src/commands/index.js +4 -2
  24. package/commonjs/src/commands/link.command.js +87 -0
  25. package/commonjs/src/commands/package.command.js +36 -0
  26. package/commonjs/src/commands/publish.command.js +0 -2
  27. package/commonjs/src/commands/tag.command.js +0 -2
  28. package/commonjs/src/commands/typecheck.command.js +24 -0
  29. package/commonjs/src/commands/version.command.js +0 -2
  30. package/commonjs/src/const.js +0 -2
  31. package/commonjs/src/create-workspace.js +42 -0
  32. package/commonjs/src/errors.js +0 -2
  33. package/commonjs/src/extensions/project.extensions.js +0 -2
  34. package/commonjs/src/factories/swc-config.factory.js +17 -6
  35. package/commonjs/src/forge.module.js +20 -21
  36. package/commonjs/src/index.js +7 -2
  37. package/commonjs/src/mixins/caches-outputs.mixin.js +7 -7
  38. package/commonjs/src/mixins/incremental-transform.mixin.js +0 -2
  39. package/commonjs/src/packaging/dependency-pinner.service.js +118 -0
  40. package/commonjs/src/packaging/deployable.js +44 -0
  41. package/commonjs/src/packaging/import-graph.service.js +137 -0
  42. package/commonjs/src/packaging/release-exports.js +88 -0
  43. package/commonjs/src/packaging/ui-assets.js +75 -0
  44. package/commonjs/src/services/dependency-resolver.service.js +0 -2
  45. package/commonjs/src/services/file-writer.service.js +0 -2
  46. package/commonjs/src/services/swc-transpiler.js +36 -10
  47. package/commonjs/src/services/ts-program-host.js +2 -4
  48. package/commonjs/src/services/type-emission-program.js +23 -8
  49. package/commonjs/src/services/type-emitter.js +33 -5
  50. package/commonjs/src/types/build-target.type.js +0 -2
  51. package/commonjs/src/types/configuration.type.js +0 -2
  52. package/commonjs/src/types/dependency.types.js +0 -2
  53. package/commonjs/src/types/swc-config.type.js +0 -2
  54. package/commonjs/src/types/transform-response.model.js +1 -2
  55. package/commonjs/src/types/transformer.type.js +0 -2
  56. package/commonjs/src/types/workspace-config.type.js +0 -2
  57. package/commonjs/src/vitest/forge-build.plugin.js +2 -3
  58. package/commonjs/src/vitest/index.js +0 -2
  59. package/commonjs/src/workspace.config.js +37 -4
  60. package/es6/src/actions/build.action.js +8 -4
  61. package/es6/src/actions/clean.action.js +2 -5
  62. package/es6/src/actions/commit.action.js +0 -3
  63. package/es6/src/actions/copy.action.js +37 -8
  64. package/es6/src/actions/dependency-report.action.js +0 -4
  65. package/es6/src/actions/dependency-sync.action.js +0 -4
  66. package/es6/src/actions/docker.action.js +194 -0
  67. package/es6/src/actions/index.js +5 -2
  68. package/es6/src/actions/link.action.js +128 -0
  69. package/es6/src/actions/package.action.js +219 -0
  70. package/es6/src/actions/publish.action.js +0 -3
  71. package/es6/src/actions/sync-lock-file.action.js +0 -2
  72. package/es6/src/actions/tag.action.js +2 -6
  73. package/es6/src/actions/typecheck.action.js +52 -0
  74. package/es6/src/actions/unlink.action.js +59 -0
  75. package/es6/src/actions/version.action.js +1 -6
  76. package/es6/src/actions/watch.action.js +0 -3
  77. package/es6/src/commands/build.command.js +0 -2
  78. package/es6/src/commands/dependency.command.js +0 -2
  79. package/es6/src/commands/docker.command.js +16 -0
  80. package/es6/src/commands/forge.command.js +0 -2
  81. package/es6/src/commands/index.js +4 -2
  82. package/es6/src/commands/link.command.js +64 -0
  83. package/es6/src/commands/package.command.js +26 -0
  84. package/es6/src/commands/publish.command.js +0 -2
  85. package/es6/src/commands/tag.command.js +0 -2
  86. package/es6/src/commands/typecheck.command.js +14 -0
  87. package/es6/src/commands/version.command.js +0 -2
  88. package/es6/src/const.js +0 -2
  89. package/es6/src/create-workspace.js +30 -0
  90. package/es6/src/errors.js +0 -2
  91. package/es6/src/extensions/project.extensions.js +0 -2
  92. package/es6/src/factories/swc-config.factory.js +17 -6
  93. package/es6/src/forge.module.js +20 -21
  94. package/es6/src/index.js +2 -3
  95. package/es6/src/mixins/caches-outputs.mixin.js +7 -7
  96. package/es6/src/mixins/incremental-transform.mixin.js +0 -2
  97. package/es6/src/packaging/dependency-pinner.service.js +103 -0
  98. package/es6/src/packaging/deployable.js +21 -0
  99. package/es6/src/packaging/import-graph.service.js +122 -0
  100. package/es6/src/packaging/release-exports.js +78 -0
  101. package/es6/src/packaging/ui-assets.js +49 -0
  102. package/es6/src/services/dependency-resolver.service.js +0 -2
  103. package/es6/src/services/file-writer.service.js +0 -2
  104. package/es6/src/services/swc-transpiler.js +36 -10
  105. package/es6/src/services/ts-program-host.js +2 -4
  106. package/es6/src/services/type-emission-program.js +23 -8
  107. package/es6/src/services/type-emitter.js +30 -5
  108. package/es6/src/types/build-target.type.js +0 -2
  109. package/es6/src/types/configuration.type.js +0 -2
  110. package/es6/src/types/dependency.types.js +0 -2
  111. package/es6/src/types/swc-config.type.js +0 -2
  112. package/es6/src/types/transform-response.model.js +1 -2
  113. package/es6/src/types/transformer.type.js +0 -2
  114. package/es6/src/types/workspace-config.type.js +0 -2
  115. package/es6/src/vitest/forge-build.plugin.js +2 -3
  116. package/es6/src/vitest/index.js +0 -2
  117. package/es6/src/workspace.config.js +38 -4
  118. package/package.json +5 -5
  119. package/types/src/actions/build.action.d.ts +1 -0
  120. package/types/src/actions/copy.action.d.ts +10 -0
  121. package/types/src/actions/docker.action.d.ts +38 -0
  122. package/types/src/actions/index.d.ts +5 -0
  123. package/types/src/actions/link.action.d.ts +25 -0
  124. package/types/src/actions/package.action.d.ts +38 -0
  125. package/types/src/actions/typecheck.action.d.ts +14 -0
  126. package/types/src/actions/unlink.action.d.ts +9 -0
  127. package/types/src/commands/docker.command.d.ts +6 -0
  128. package/types/src/commands/index.d.ts +4 -0
  129. package/types/src/commands/link.command.d.ts +28 -0
  130. package/types/src/commands/package.command.d.ts +11 -0
  131. package/types/src/commands/typecheck.command.d.ts +6 -0
  132. package/types/src/create-workspace.d.ts +7 -0
  133. package/types/src/factories/swc-config.factory.d.ts +1 -0
  134. package/types/src/forge.module.d.ts +10 -0
  135. package/types/src/index.d.ts +2 -1
  136. package/types/src/packaging/dependency-pinner.service.d.ts +20 -0
  137. package/types/src/packaging/deployable.d.ts +17 -0
  138. package/types/src/packaging/import-graph.service.d.ts +33 -0
  139. package/types/src/packaging/release-exports.d.ts +18 -0
  140. package/types/src/packaging/ui-assets.d.ts +21 -0
  141. package/types/src/services/swc-transpiler.d.ts +15 -3
  142. package/types/src/services/ts-program-host.d.ts +1 -1
  143. package/types/src/services/type-emission-program.d.ts +6 -1
  144. package/types/src/services/type-emitter.d.ts +14 -0
  145. package/types/src/types/configuration.type.d.ts +5 -0
  146. package/types/src/types/swc-config.type.d.ts +7 -1
  147. package/types/src/types/transform-response.model.d.ts +2 -0
  148. 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;
@@ -130,5 +157,3 @@ _ts_decorate([
130
157
  TypeEmitter = _ts_decorate([
131
158
  Trace
132
159
  ], TypeEmitter);
133
-
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBQcm9qZWN0RmlsZUV2ZW50IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NhY2hpbmdcIjtcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9kaWFnbm9zdGljc1wiO1xuaW1wb3J0IHsgbWl4d2l0aCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZXh0ZW5zaWJpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBGaWxlRXggfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgeyBpbyB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgXCIuLi9leHRlbnNpb25zL3Byb2plY3QuZXh0ZW5zaW9ucy5qc1wiO1xuaW1wb3J0IHsgQ2FjaGVzT3V0cHV0cyB9IGZyb20gXCIuLi9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4uanNcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsVHJhbnNmb3JtIH0gZnJvbSBcIi4uL21peGlucy9pbmNyZW1lbnRhbC10cmFuc2Zvcm0ubWl4aW4uanNcIjtcbmltcG9ydCB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQge1xuXHRUeXBlRW1pc3Npb25Qcm9ncmFtLFxuXHR0eXBlIFR5cGVQcm9ncmFtUHJvamVjdCxcbn0gZnJvbSBcIi4uL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9uIGRlZmF1bHRzIGFwcGxpZWQgYmVmb3JlIHRoZSB1c2VyJ3MgdHNjb25maWcg4oCUIHRoZSB1c2VyJ3MgdmFsdWVzIG92ZXJyaWRlIHRoZXNlLlxuICpcbiAqIGxpYjogRVMyMDIyIOKAlCBhdm9pZHMgbG9hZGluZyBsaWIuZG9tLmQudHMgKDEuOCBNQikgd2hpY2ggVFMgaW5jbHVkZXMgYnkgZGVmYXVsdFxuICogd2hlbiBubyBgbGliYCBpcyBzZXQuIEJhY2tlbmQgcGFja2FnZXMgaGF2ZSBubyB1c2UgZm9yIGJyb3dzZXIgQVBJcy5cbiAqXG4gKiB0eXBlczogW10g4oCUIGRpc2FibGVzIGFtYmllbnQgQHR5cGVzIGF1dG8tZGlzY292ZXJ5LiBXaXRob3V0IHRoaXMsIFRTIHNjYW5zXG4gKiBldmVyeSBAdHlwZXMvKiBwYWNrYWdlIGluIHRoZSBub2RlX21vZHVsZXMgaGllcmFyY2h5OyBpbiBhIG1vbm9yZXBvIHRoYXQgY2FuXG4gKiBwdWxsIGluIGRvemVucyBvZiB1bnJlbGF0ZWQgcGFja2FnZXMuIEV4cGxpY2l0bHkgaW1wb3J0ZWQgdHlwZXMgc3RpbGwgcmVzb2x2ZVxuICogbm9ybWFsbHk7IG9ubHkgYW1iaWVudCBnbG9iYWxzIChlLmcuIEJ1ZmZlciwgcHJvY2VzcykgYXJlIHN1cHByZXNzZWQg4oCUIGFkZFxuICogYHR5cGVzOiBbXCJub2RlXCJdYCB0byBhIHByb2plY3QncyB0c2NvbmZpZyB0byByZXN0b3JlIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRsaWI6IFtcImxpYi5lczIwMjIuZC50c1wiXSxcblx0dHlwZXM6IFtdLFxuXHRza2lwTGliQ2hlY2s6IHRydWUsXG59O1xuXG4vKipcbiAqIENvbXBpbGVyIG9wdGlvbnMgdGhhdCBUeXBlRW1pdHRlciBhbHdheXMgZW5mb3JjZXMgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyJ3NcbiAqIHRzY29uZmlnIHNwZWNpZmllcy4gQXBwbGllZCBhZnRlciB0aGUgdXNlciBzcHJlYWQgc28gdGhleSBjYW5ub3QgYmUgb3ZlcnJpZGRlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRlbWl0RGVjbGFyYXRpb25Pbmx5OiB0cnVlLFxuXHRkZWNsYXJhdGlvbjogdHJ1ZSxcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFR5cGVFbWl0dGVyXG5cdGV4dGVuZHMgbWl4d2l0aChDYWNoZXNPdXRwdXRzLCBJbmNyZW1lbnRhbFRyYW5zZm9ybSlcblx0aW1wbGVtZW50cyBUcmFuc2Zvcm1lclxue1xuXHRwdWJsaWMgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdID0gW0J1aWxkVGFyZ2V0cy50eXBlc107XG5cdC8qKiBQcmVwYXJlZCBwcm9ncmFtcyBmcm9tIGluaXQoKSwgY29uc3VtZWQgb25jZSBieSB0aGUgbmV4dCB0cmFuc2Zvcm1Qcm9qZWN0KCkgY2FsbC4gKi9cblx0I3Byb2dyYW1zOiBUeXBlRW1pc3Npb25Qcm9ncmFtW10gfCB1bmRlZmluZWQ7XG5cdCNob3N0ID0gbmV3IFRzUHJvZ3JhbUhvc3QoKTtcblxuXHQvKipcblx0ICogUGhhc2UgMTogZmV0Y2ggZmlsZXMsIGNyZWF0ZSBUeXBlU2NyaXB0IHByb2dyYW1zIHNlcXVlbnRpYWxseS5cblx0ICogQ2FsbGVkIGJlZm9yZSB0cmFuc2Zvcm1Qcm9qZWN0KCkgc28gdGhhdCB0aGUgaGVhdnkgY3JlYXRlUHJvZ3JhbSB3b3JrXG5cdCAqIGNvbXBsZXRlcyBiZWZvcmUgb3RoZXIgdHJhbnNmb3JtZXJzIChTV0MvUmF5b24pIHN0YXJ0IHJ1bm5pbmcgaW4gcGFyYWxsZWwuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgaW5pdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHRcdF9maWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLiNwcm9ncmFtcyA9PSBudWxsKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2Zvcm1Qcm9qZWN0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0ZmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Ly8gQ29uc3VtZSBwcmVwYXJlZCBzdGF0ZSBmcm9tIGluaXQoKSBpZiBhdmFpbGFibGU7IG90aGVyd2lzZSBkbyBmdWxsIHNldHVwXG5cdFx0Ly8gKGUuZy4gd2F0Y2gtbW9kZSBzaW5nbGUtZmlsZSByZWJ1aWxkcyB0aGF0IHNraXAgdGhlIGluaXQgcGhhc2UpLlxuXHRcdGNvbnN0IHByb2dyYW1zID0gdGhpcy4jcHJvZ3JhbXMgPz8gKGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpKTtcblx0XHR0aGlzLiNwcm9ncmFtcyA9IHByb2dyYW1zO1xuXG5cdFx0aWYgKHByb2dyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3BvbnNlcyA9IChcblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb2dyYW1zLm1hcCgocHJvZ3JhbSkgPT4gcHJvZ3JhbS5lbWl0KGZpbHRlciwgb25PdXRwdXQpKSlcblx0XHQpLmZsYXQoKTtcblx0XHR0aGlzLmNhY2hlT3V0cHV0cyhyZXNwb25zZXMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIHByZXBhcmVQcm9ncmFtcyhcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHQpOiBQcm9taXNlPFR5cGVFbWlzc2lvblByb2dyYW1bXT4ge1xuXHRcdGNvbnN0IGFsbFByb2plY3RzID0gQXJyYXkuaXNBcnJheShwcm9qZWN0QXJyYXlMaWtlKVxuXHRcdFx0PyBwcm9qZWN0QXJyYXlMaWtlXG5cdFx0XHQ6IFtwcm9qZWN0QXJyYXlMaWtlXTtcblx0XHRjb25zdCBwcm9qZWN0cyA9IGFsbFByb2plY3RzLmZpbHRlcigocHJvaikgPT5cblx0XHRcdHByb2ouZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCkudGFyZ2V0cy5pbmNsdWRlcyhCdWlsZFRhcmdldHMudHlwZXMpLFxuXHRcdCk7XG5cdFx0aWYgKHByb2plY3RzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdC8vIFByZS1mZXRjaCBhbGwgZmlsZXMgYW5kIHRzY29uZmlncyBpbiBwYXJhbGxlbCBhY3Jvc3MgYWxsIHByb2plY3RzXG5cdFx0Y29uc3QgcHJvamVjdERhdGE6IFR5cGVQcm9ncmFtUHJvamVjdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0XHRwcm9qZWN0cy5tYXAoYXN5bmMgKHByb2opID0+ICh7XG5cdFx0XHRcdHByb2plY3Q6IHByb2osXG5cdFx0XHRcdGZpbGVzOiBhd2FpdCBwcm9qLmdldEFsbEZpbGVzKCksXG5cdFx0XHRcdHRzY29uZmlnOiBhd2FpdCBwcm9qLmdldFRzQ29uZmlnKCksXG5cdFx0XHR9KSksXG5cdFx0KTtcblxuXHRcdC8vIEdyb3VwIHByb2plY3RzIGJ5IHRoZSByZXNvbHZlZCBjb21waWxlciBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjb21waWxlclxuXHRcdC8vIGhvc3QgKGxpYiBsb2FkaW5nLCBtb2R1bGUgcmVzb2x1dGlvbiwgcGF0aCBhbGlhc2VzKS4gUHJvamVjdHMgc2hhcmluZyB0aGVcblx0XHQvLyBzYW1lIHJlc29sdmVkIHZhbHVlcyBnZXQgb25lIHNoYXJlZCBob3N0IEFORCBvbmUgc2hhcmVkIHByb2dyYW0g4oCUIGFsbCB0aGVpclxuXHRcdC8vIGZpbGVzIGFyZSBjb21waWxlZCB0b2dldGhlciwgbWF0Y2hpbmcgdjEncyBzaW5nbGUtcHJvZ3JhbSBhcHByb2FjaCB3aGljaFxuXHRcdC8vIGF2b2lkcyByZS1wYXJzaW5nIGxpYi9ub2RlX21vZHVsZXMgLmQudHMgZmlsZXMgcGVyIHByb2plY3QuXG5cdFx0Y29uc3QgZ3JvdXBzID0gTWFwLmdyb3VwQnkocHJvamVjdERhdGEsICh7IHRzY29uZmlnIH0pID0+XG5cdFx0XHR0aGlzLiNob3N0Lmhvc3RLZXkodHNjb25maWcuY29tcGlsZXJPcHRpb25zKSxcblx0XHQpO1xuXG5cdFx0cmV0dXJuIFsuLi5ncm91cHMudmFsdWVzKCldLm1hcCgoZ3JvdXApID0+IG5ldyBUeXBlRW1pc3Npb25Qcm9ncmFtKGdyb3VwLCB0aGlzLiNob3N0KSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgb25JbmNyZW1lbnRhbEZpbGVFdmVudChldnQ6IFByb2plY3RGaWxlRXZlbnQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+IHtcblx0XHRjb25zdCB7IGZpbGUsIHByb2plY3QgfSA9IGV2dDtcblx0XHRpZiAoZXZ0LmV2ZW50TmFtZSA9PT0gaW8uV2F0Y2hFdmVudHMudW5saW5rKSB7XG5cdFx0XHR0aGlzLmRlbGV0ZUNhY2hlZE91dHB1dHMoZmlsZS5mdWxsUGF0aCk7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdGlmICghcHJvamVjdC5pc1NvdXJjZUZpbGUoZmlsZSkpIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLmFkZCkge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbXM/LmZvckVhY2goKHApID0+IHtcblx0XHRcdFx0cC5hZGRGaWxlKGZpbGUsIHByb2plY3QpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUoZmlsZS5mdWxsUGF0aCk7XG5cdFx0XHR0aGlzLiNob3N0LmludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGUuZnVsbFBhdGgpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1Qcm9qZWN0KHByb2plY3QsICgpID0+IFByb21pc2UucmVzb2x2ZShbZmlsZV0pKTtcblx0fVxuXG5cdEBpbnZhbGlkYXRlQ2FjaGUoVHNQcm9ncmFtSG9zdC5wcm90b3R5cGUucmVhZEZpbGVGcm9tRGlzaywge1xuXHRcdG5hbWU6IFwiRklMRV9DT05URU5UXCIsXG5cdFx0a2V5Rm46ICguLi5hcmdzKSA9PiBhcmdzWzBdIGFzIHN0cmluZyxcblx0fSlcblx0cHJpdmF0ZSBpbnZhbGlkYXRlUmVhZEZpbGVDYWNoZShfcGF0aDogc3RyaW5nKTogdm9pZCB7fVxufVxuIl0sIm5hbWVzIjpbImludmFsaWRhdGVDYWNoZSIsIlRyYWNlIiwibWl4d2l0aCIsImlvIiwiQ2FjaGVzT3V0cHV0cyIsIkluY3JlbWVudGFsVHJhbnNmb3JtIiwiVHNQcm9ncmFtSG9zdCIsIlR5cGVFbWlzc2lvblByb2dyYW0iLCJCdWlsZFRhcmdldHMiLCJERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TIiwibGliIiwidHlwZXMiLCJza2lwTGliQ2hlY2siLCJSRVFVSVJFRF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsImVtaXREZWNsYXJhdGlvbk9ubHkiLCJkZWNsYXJhdGlvbiIsIlR5cGVFbWl0dGVyIiwiYnVpbGRUYXJnZXRzIiwiaW5pdCIsInByb2plY3RBcnJheUxpa2UiLCJfZmlsdGVyIiwicHJlcGFyZVByb2dyYW1zIiwidHJhbnNmb3JtUHJvamVjdCIsImZpbHRlciIsIm9uT3V0cHV0IiwicHJvZ3JhbXMiLCJsZW5ndGgiLCJyZXNwb25zZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwicHJvZ3JhbSIsImVtaXQiLCJmbGF0IiwiY2FjaGVPdXRwdXRzIiwiYWxsUHJvamVjdHMiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9qZWN0cyIsInByb2oiLCJnZXRGb3JnZUNvbmZpZ3VyYXRpb24iLCJ0YXJnZXRzIiwiaW5jbHVkZXMiLCJwcm9qZWN0RGF0YSIsInByb2plY3QiLCJmaWxlcyIsImdldEFsbEZpbGVzIiwidHNjb25maWciLCJnZXRUc0NvbmZpZyIsImdyb3VwcyIsIk1hcCIsImdyb3VwQnkiLCJob3N0S2V5IiwiY29tcGlsZXJPcHRpb25zIiwidmFsdWVzIiwiZ3JvdXAiLCJvbkluY3JlbWVudGFsRmlsZUV2ZW50IiwiZXZ0IiwiZmlsZSIsImV2ZW50TmFtZSIsIldhdGNoRXZlbnRzIiwidW5saW5rIiwiZGVsZXRlQ2FjaGVkT3V0cHV0cyIsImZ1bGxQYXRoIiwiaXNTb3VyY2VGaWxlIiwiYWRkIiwiZm9yRWFjaCIsInAiLCJhZGRGaWxlIiwiaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUiLCJpbnZhbGlkYXRlU291cmNlRmlsZSIsInJlc29sdmUiLCJfcGF0aCIsInByb3RvdHlwZSIsInJlYWRGaWxlRnJvbURpc2siLCJuYW1lIiwia2V5Rm4iLCJhcmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxTQUFTQSxlQUFlLFFBQVEsMEJBQTBCO0FBQzFELFNBQVNDLEtBQUssUUFBUSw4QkFBOEI7QUFDcEQsU0FBU0MsT0FBTyxRQUFRLGdDQUFn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
@@ -3,5 +3,3 @@ export const BuildTargets = {
3
3
  es6: "es6",
4
4
  types: "types"
5
5
  };
6
-
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9idWlsZC10YXJnZXQudHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQnVpbGRUYXJnZXRzID0ge1xuXHRjb21tb25qczogXCJjb21tb25qc1wiLFxuXHRlczY6IFwiZXM2XCIsXG5cdHR5cGVzOiBcInR5cGVzXCIsXG59IHNhdGlzZmllcyBSZWNvcmQ8QnVpbGRUYXJnZXQsIEJ1aWxkVGFyZ2V0PjtcblxuZXhwb3J0IHR5cGUgQnVpbGRUYXJnZXQgPSBcImVzNlwiIHwgXCJjb21tb25qc1wiIHwgXCJ0eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBUcmFuc3BpbGVUYXJnZXQgPSBFeGNsdWRlPEJ1aWxkVGFyZ2V0LCBcInR5cGVzXCI+O1xuIl0sIm5hbWVzIjpbIkJ1aWxkVGFyZ2V0cyIsImNvbW1vbmpzIiwiZXM2IiwidHlwZXMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsZUFBZTtJQUMzQkMsVUFBVTtJQUNWQyxLQUFLO0lBQ0xDLE9BQU87QUFDUixFQUE2QyJ9
@@ -1,3 +1 @@
1
1
  export { };
2
-
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9jb25maWd1cmF0aW9uLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25maWd1cmF0aW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4vYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgRm9yZ2VDb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbiAmIHtcblx0dGFyZ2V0czogQnVpbGRUYXJnZXRbXTtcblx0YWxpYXNQYXRocz86IGJvb2xlYW47XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFdBR0UifQ==
@@ -1,3 +1 @@
1
1
  export { };
2
-
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9kZXBlbmRlbmN5LnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVzdWx0U3RhdHVzIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcblxuZXhwb3J0IHR5cGUgUGFja2FnZSA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHR2ZXJzaW9uPzogc3RyaW5nO1xuXHRpc0ludGVybmFsPzogYm9vbGVhbjtcblx0aXNEZXY/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWREZXBlbmRlbmN5ID1cblx0fCB7IG5hbWU6IHN0cmluZzsgdmVyc2lvbjogc3RyaW5nOyBpbnRlcm5hbDogYm9vbGVhbjsgbWlzc2luZzogZmFsc2U7IGlzRGV2OiBib29sZWFuIH1cblx0fCB7IG5hbWU6IHN0cmluZzsgdmVyc2lvbjogdW5kZWZpbmVkOyBpbnRlcm5hbDogdW5kZWZpbmVkOyBtaXNzaW5nOiB0cnVlOyBpc0RldjogZmFsc2UgfTtcblxuZXhwb3J0IHR5cGUgU3luY3Byb2plY3RSZXN1bHQgPSBSZXN1bHRTdGF0dXMgJiB7XG5cdHByb2plY3ROYW1lOiBzdHJpbmc7XG5cdGRyaWZ0PzogRHJpZnRFbnRyeSB8IG51bGw7XG59O1xuXG5leHBvcnQgdHlwZSBEcmlmdEVudHJ5ID0ge1xuXHRvcmlnaW5hbDogeyBkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IGRldkRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9O1xuXHR1cGRhdGVkOiB7IGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsgZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH07XG59O1xuXG5leHBvcnQgdHlwZSBEZXBlbmRlbmN5V2FybmluZyA9IHtcblx0ZmlsZTogc3RyaW5nO1xuXHRsaW5lOiBudW1iZXI7XG5cdG1lc3NhZ2U6IHN0cmluZztcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJBLFdBSUUifQ==
@@ -3,5 +3,3 @@ export class SwcConfig {
3
3
  Object.assign(this, data);
4
4
  }
5
5
  }
6
-
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9zd2MtY29uZmlnLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUc2NvbmZpZyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuXG5leHBvcnQgdHlwZSBTd2NDb25maWdPcHRpb25zID0ge1xuXHRhbGlhc1BhdGhzPzogYm9vbGVhbjtcblx0dHNDb25maWc/OiBUc2NvbmZpZztcblx0dXNlckNvbmZpZz86IFN3Y0NvbmZpZztcbn07XG5cbmV4cG9ydCBjbGFzcyBTd2NDb25maWcge1xuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogUGFydGlhbDxTd2NDb25maWc+ID0ge30pIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiU3djQ29uZmlnIiwiZGF0YSIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxNQUFNQTtJQUNaLFlBQW1CQyxPQUEyQixDQUFDLENBQUMsQ0FBRTtRQUNqREMsT0FBT0MsTUFBTSxDQUFDLElBQUksRUFBRUY7SUFDckI7QUFDRCJ9
@@ -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;
@@ -42,5 +43,3 @@ export class TransformResponse {
42
43
  outputDir;
43
44
  outputPath;
44
45
  }
45
-
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4vYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtT3V0Y29tZSA9IFwic3VjY2Vzc1wiIHwgXCJmYWlsdXJlXCIgfCBcInNraXBwZWRcIjtcbmV4cG9ydCBjb25zdCBUcmFuc2Zvcm1PdXRjb21lcyA9IHtcblx0c3VjY2VzczogXCJzdWNjZXNzXCIsXG5cdGZhaWx1cmU6IFwiZmFpbHVyZVwiLFxuXHRza2lwcGVkOiBcInNraXBwZWRcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFRyYW5zZm9ybU91dGNvbWU+O1xuXG50eXBlIFRyYW5zZm9ybVJlc3BvbnNlQmFzZSA9IHtcblx0ZmlsZTogRmlsZTtcblx0Y29uZmlnOiB1bmtub3duO1xuXHRwcm9qZWN0PzogUHJvamVjdDtcblx0LyoqIEFic29sdXRlIGRpcmVjdG9yeSB0aGF0IHdpbGwgY29udGFpbiB0aGUgb3V0cHV0IGZpbGUuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dERpcj86IHN0cmluZztcblx0LyoqIEFic29sdXRlIHBhdGggb2YgdGhlIG91dHB1dCBmaWxlIChvdXRwdXREaXIgKyBmaWxlTmFtZSkuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dFBhdGg/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVN1Y2Nlc3MgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic3VjY2Vzc1wiO1xuXHRjb2RlOiBzdHJpbmc7XG5cdG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHRhcmdldDogQnVpbGRUYXJnZXQ7XG5cdGZpbGVOYW1lOiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybUZhaWx1cmUgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwiZmFpbHVyZVwiO1xuXHRtZXNzYWdlcz86IHN0cmluZ1tdO1xuXHR0YXJnZXQ/OiBCdWlsZFRhcmdldDtcblx0ZmlsZU5hbWU/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVNraXBwZWQgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic2tpcHBlZFwiO1xuXHRtZXNzYWdlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufTtcblxudHlwZSBUcmFuc2Zvcm1SZXNwb25zZURhdGE8VCBleHRlbmRzIFRyYW5zZm9ybU91dGNvbWUgPSBUcmFuc2Zvcm1PdXRjb21lPiA9IFQgZXh0ZW5kcyBcInN1Y2Nlc3NcIlxuXHQ/IFRyYW5zZm9ybVN1Y2Nlc3Ncblx0OiBUIGV4dGVuZHMgXCJza2lwcGVkXCJcblx0XHQ/IFRyYW5zZm9ybVNraXBwZWRcblx0XHQ6IFRyYW5zZm9ybUZhaWx1cmU7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdHB1YmxpYyBzdGF0aWMgU3VjY2VzcyhkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcInN1Y2Nlc3NcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcInN1Y2Nlc3NcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgRXJyb3IoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJmYWlsdXJlXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJmYWlsdXJlXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIFNraXBwZWQoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJza2lwcGVkXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJza2lwcGVkXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGZyb20oZGF0YTogVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhIH0gYXMgVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxUcmFuc2Zvcm1SZXNwb25zZURhdGE+KSB7XG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcblx0fVxuXG5cdC8vIFByb3BlcnRpZXMgYXJlIHBvcHVsYXRlZCB2aWEgT2JqZWN0LmFzc2lnbiBpbiB0aGUgY29uc3RydWN0b3IuXG5cdHB1YmxpYyByZWFkb25seSBmaWxlITogRmlsZTtcblx0cHVibGljIHJlYWRvbmx5IG91dGNvbWUhOiBUcmFuc2Zvcm1PdXRjb21lO1xuXHRwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0PzogQnVpbGRUYXJnZXQ7XG5cdHB1YmxpYyByZWFkb25seSBjb2RlITogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgZmlsZU5hbWU/OiBzdHJpbmc7XG5cdHB1YmxpYyByZWFkb25seSBtZXNzYWdlcz86IHN0cmluZ1tdO1xuXHRwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiB1bmtub3duO1xuXHRwdWJsaWMgcmVhZG9ubHkgcHJvamVjdD86IFByb2plY3Q7XG5cdHB1YmxpYyByZWFkb25seSBvdXRwdXREaXI/OiBzdHJpbmc7XG5cdHB1YmxpYyByZWFkb25seSBvdXRwdXRQYXRoPzogc3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbIlRyYW5zZm9ybU91dGNvbWVzIiwic3VjY2VzcyIsImZhaWx1cmUiLCJza2lwcGVkIiwiVHJhbnNmb3JtUmVzcG9uc2UiLCJTdWNjZXNzIiwiZGF0YSIsIm91dGNvbWUiLCJFcnJvciIsIlNraXBwZWQiLCJmcm9tIiwiT2JqZWN0IiwiYXNzaWduIiwiZmlsZSIsInRhcmdldCIsImNvZGUiLCJmaWxlTmFtZSIsIm1lc3NhZ2VzIiwiY29uZmlnIiwicHJvamVjdCIsIm91dHB1dERpciIsIm91dHB1dFBhdGgiXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sTUFBTUEsb0JBQW9CO0lBQ2hDQyxTQUFTO0lBQ1RDLFNBQVM7SUFDVEMsU0FBUztBQUNWLEVBQTZDO0FBc0M3QyxPQUFPLE1BQU1DO0lBQ1osT0FBY0MsUUFBUUMsSUFBdUQsRUFBRTtRQUM5RSxPQUFPLElBQUlGLGtCQUFrQjtZQUFFLEdBQUdFLElBQUk7WUFBRUMsU0FBUztRQUFtQjtJQUNyRTtJQUVBLE9BQWNDLE1BQU1GLElBQXVELEVBQUU7UUFDNUUsT0FBTyxJQUFJRixrQkFBa0I7WUFBRSxHQUFHRSxJQUFJO1lBQUVDLFNBQVM7UUFBbUI7SUFDckU7SUFFQSxPQUFjRSxRQUFRSCxJQUF1RCxFQUFFO1FBQzlFLE9BQU8sSUFBSUYsa0JBQWtCO1lBQUUsR0FBR0UsSUFBSTtZQUFFQyxTQUFTO1FBQW1CO0lBQ3JFO0lBRUEsT0FBY0csS0FBS0osSUFBMkIsRUFBcUI7UUFDbEUsT0FBTyxJQUFJRixrQkFBa0I7WUFBRSxHQUFHRSxJQUFJO1FBQUM7SUFDeEM7SUFFQSxZQUFtQkEsSUFBcUMsQ0FBRTtRQUN6REssT0FBT0MsTUFBTSxDQUFDLElBQUksRUFBRU47SUFDckI7SUFFQSxpRUFBaUU7SUFDakRPLEtBQVk7SUFDWk4sUUFBMkI7SUFDM0JPLE9BQXFCO0lBQ3JCQyxLQUFjO0lBQ2RDLFNBQWtCO0lBQ2xCQyxTQUFvQjtJQUNwQkMsT0FBZ0I7SUFDaEJDLFFBQWtCO0lBQ2xCQyxVQUFtQjtJQUNuQkMsV0FBb0I7QUFDckMifQ==
@@ -1,3 +1 @@
1
1
  export const TransformerKey = Symbol("TransformerKey");
2
-
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy90cmFuc2Zvcm1lci50eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvamVjdCwgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4vdHJhbnNmb3JtLXJlc3BvbnNlLm1vZGVsLmpzXCI7XG5cbmV4cG9ydCB0eXBlIEZpbGVFdmVudCA9XG5cdHwgeyB0eXBlOiBcImNoYW5nZWRcIiB8IFwiYWRkZWRcIjsgZmlsZTogRmlsZUV4OyBwcm9qZWN0PzogUHJvamVjdCB9XG5cdHwgeyB0eXBlOiBcImRlbGV0ZWRcIjsgZmlsZTogRmlsZUV4OyBwcm9qZWN0OiBQcm9qZWN0IH07XG5cbmV4cG9ydCBjb25zdCBUcmFuc2Zvcm1lcktleSA9IFN5bWJvbChcIlRyYW5zZm9ybWVyS2V5XCIpO1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1lciB7XG5cdHJlYWRvbmx5IGJ1aWxkVGFyZ2V0czogQnVpbGRUYXJnZXRbXTtcblxuXHQvKipcblx0ICogT3B0aW9uYWwgcHJlLWJ1aWxkIHBoYXNlIHRoYXQgcnVucyBzZXF1ZW50aWFsbHkgYmVmb3JlIGFsbCB0cmFuc2Zvcm1lcnMnXG5cdCAqIHtAbGluayB0cmFuc2Zvcm1Qcm9qZWN0fSBjYWxscy4gVXNlIGZvciBleHBlbnNpdmUgQ1BVLWJvdW5kIHNldHVwIChlLmcuXG5cdCAqIFR5cGVTY3JpcHQgY3JlYXRlUHJvZ3JhbSkgdGhhdCBtdXN0IG5vdCBjb21wZXRlIHdpdGggb3RoZXIgdHJhbnNmb3JtZXJzJ1xuXHQgKiBwYXJhbGxlbCB3b3JrbG9hZHMuXG5cdCAqL1xuXHRpbml0Pyhcblx0XHRwcm9qZWN0czogUHJvamVjdCB8IFByb2plY3RbXSxcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHQpOiBQcm9taXNlPHZvaWQ+O1xuXG5cdHRyYW5zZm9ybVByb2plY3QoXG5cdFx0cHJvamVjdHM6IFByb2plY3QgfCBQcm9qZWN0W10sXG5cdFx0ZmlsZUZpbHRlcj86IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0XHRvbk91dHB1dD86IChyZXNwb25zZTogVHJhbnNmb3JtUmVzcG9uc2UpID0+IHZvaWQsXG5cdCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT47XG5cblx0LyoqXG5cdCAqIElmIGltcGxlbWVudGVkLCBzaWduYWxzIHRoaXMgdHJhbnNmb3JtZXIgc3VwcG9ydHMgaW5jcmVtZW50YWwgKHdhdGNoKSBtb2RlLlxuXHQgKiB7QGxpbmsgQnVpbGRBY3Rpb259IGNhbGxzIHRoaXMgYWZ0ZXIgdGhlIGluaXRpYWwgYnVpbGQsIHBhc3NpbmcgdGhlIHdvcmtzcGFjZVxuXHQgKiBzbyB0aGUgdHJhbnNmb3JtZXIgY2FuIHNlbGYtc3Vic2NyaWJlIHRvIGZpbGUgY2hhbmdlIGV2ZW50cy5cblx0ICovXG5cdHdhdGNoPyh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IHZvaWQ7XG5cblx0LyoqXG5cdCAqIEVtaXRzIGluY3JlbWVudGFsIHRyYW5zZm9ybSByZXN1bHRzIGFmdGVyIGVhY2ggZmlsZS1jaGFuZ2UgY3ljbGUuXG5cdCAqIFByZXNlbnQgd2hlbiB7QGxpbmsgd2F0Y2h9IGlzIGltcGxlbWVudGVkLlxuXHQgKi9cblx0aW5jcmVtZW50YWxUcmFuc2Zvcm0kPzogT2JzZXJ2YWJsZTxUcmFuc2Zvcm1SZXNwb25zZVtdPjtcbn1cbiJdLCJuYW1lcyI6WyJUcmFuc2Zvcm1lcktleSIsIlN5bWJvbCJdLCJtYXBwaW5ncyI6IkFBVUEsT0FBTyxNQUFNQSxpQkFBaUJDLE9BQU8sa0JBQWtCIn0=
@@ -1,3 +1 @@
1
1
  export { };
2
-
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy93b3Jrc3BhY2UtY29uZmlnLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuXHRQcm9qZWN0T3B0aW9ucyBhcyBCYXNlUHJvamVjdE9wdGlvbnMsXG5cdFdvcmtzcGFjZU9wdGlvbnMgYXMgQmFzZVdvcmtzcGFjZU9wdGlvbnMsXG59IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24sIENvbW1hbmRUeXBlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9jbGlcIjtcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0YWJsZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBGb3JnZUNvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uLnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgUHJvamVjdE9wdGlvbnMgPSBPbWl0PEJhc2VQcm9qZWN0T3B0aW9ucywgXCJjb25maWd1cmF0aW9uc1wiPiAmIHtcblx0Y29uZmlndXJhdGlvbnM6IEZvcmdlQ29uZmlndXJhdGlvbltdO1xufTtcblxuZXhwb3J0IHR5cGUgV29ya3NwYWNlT3B0aW9ucyA9IE9taXQ8QmFzZVdvcmtzcGFjZU9wdGlvbnMsIFwiY29uZmlndXJhdGlvbnNcIiB8IFwicHJvamVjdHNcIj4gJiB7XG5cdGNvbmZpZ3VyYXRpb25zOiBGb3JnZUNvbmZpZ3VyYXRpb25bXTtcblx0cHJvamVjdHM/OiBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPFByb2plY3RPcHRpb25zPj47XG5cdGFjdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBDb25zdHJ1Y3RhYmxlPEFjdGlvbj4+O1xuXHRjb21tYW5kcz86IFJlY29yZDxzdHJpbmcsIENvbW1hbmRUeXBlPjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsV0FLRSJ9
@@ -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 = {
@@ -110,5 +111,3 @@ export function forgeBuild(options) {
110
111
  }
111
112
  };
112
113
  }
113
-
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy92aXRlc3QvZm9yZ2UtYnVpbGQucGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IFdvcmtzcGFjZUZhY3RvcnkgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB7IENvbnNvbGVBZGFwdGVyLCBzY3JpYmUgfSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHsgU3djVHJhbnNwaWxlciB9IGZyb20gXCIuLi9zZXJ2aWNlcy9zd2MtdHJhbnNwaWxlci5qc1wiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgeyBXb3Jrc3BhY2VEZWZhdWx0cyB9IGZyb20gXCIuLi93b3Jrc3BhY2UuY29uZmlnLmpzXCI7XG5cbi8vIEFib3ZlIGZhdGFsICg2MCkgc28gYWxsIHN0YW5kYXJkIGxldmVscyBhcmUgbm9vcGVkIHdoZW4gbG9nTGV2ZWwgaXMgXCJzaWxlbnRcIlxuY29uc3QgU0lMRU5UX0xFVkVMID0gOTk5O1xuXG5jb25zdCBQTFVHSU5fTkFNRSA9IFwiZm9yZ2Utdml0ZXN0LXNvdXJjZVwiO1xuY29uc3QgVFNfRVhURU5TSU9OUyA9IFtcIi50c1wiLCBcIi50c3hcIiwgXCIubXRzXCJdO1xuXG5leHBvcnQgdHlwZSBGb3JnZUJ1aWxkT3B0aW9ucyA9IHtcblx0YnVpbGRDb25maWc/OiBzdHJpbmc7XG5cdGxvZ0xldmVsPzogc3RyaW5nO1xuXHR3b3Jrc3BhY2VSb290Pzogc3RyaW5nO1xuXHQvKiogU2tpcCB0aGUgYnVpbGQgcHJlLXdhcm0gZW50aXJlbHkgKGUuZy4gd2hlbiBhIHByZS1idWlsdCBhcnRpZmFjdCBpcyBhbHJlYWR5IG9uIGRpc2spLiAqL1xuXHRza2lwQnVpbGQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmdlQnVpbGQob3B0aW9ucz86IEZvcmdlQnVpbGRPcHRpb25zKSB7XG5cdGNvbnN0IGJ1aWxkQ29uZmlnID0gb3B0aW9ucz8uYnVpbGRDb25maWcgPz8gXCJkZWJ1Z1wiO1xuXHRjb25zdCB3b3Jrc3BhY2VSb290ID0gb3B0aW9ucz8ud29ya3NwYWNlUm9vdCA/PyBwcm9jZXNzLmN3ZCgpO1xuXHRjb25zdCBsb2dMZXZlbCA9IG9wdGlvbnM/LmxvZ0xldmVsID8/IFwiaW5mb1wiO1xuXHRjb25zdCBsb2dnZXJGYWN0b3J5ID0gc2NyaWJlLmNvbmZpZ3VyZSh7XG5cdFx0YWRhcHRlcjogbmV3IENvbnNvbGVBZGFwdGVyKCksXG5cdFx0b3B0aW9uczogeyBsb2dMZXZlbCwgY3VzdG9tTGV2ZWxzOiB7IHNpbGVudDogU0lMRU5UX0xFVkVMIH0gfSxcblx0fSk7XG5cdGNvbnN0IGxvZ2dlciA9IGxvZ2dlckZhY3RvcnkoUExVR0lOX05BTUUpO1xuXG5cdGNvbnN0IHNraXBCdWlsZCA9IG9wdGlvbnM/LnNraXBCdWlsZCA/PyBmYWxzZTtcblxuXHRjb25zdCB0cmFuc3BpbGVyID0gbmV3IFN3Y1RyYW5zcGlsZXIoKTtcblx0Y29uc3Qgd2FybWVkUHJvamVjdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblx0Y29uc3QgdHJhbnNmb3JtQ2FjaGUgPSBuZXcgTWFwPFxuXHRcdHN0cmluZyxcblx0XHR7IGNvbnRlbnQ6IHN0cmluZzsgcmVzdWx0OiB7IGNvZGU6IHN0cmluZzsgbWFwOiBudWxsIH0gfVxuXHQ+KCk7XG5cblx0bGV0IHdvcmtzcGFjZTogV29ya3NwYWNlIHwgbnVsbCA9IG51bGw7XG5cblx0Y29uc3QgaW5pdFdvcmtzcGFjZSA9IGFzeW5jICgpID0+IHtcblx0XHRpZiAod29ya3NwYWNlICE9PSBudWxsKSByZXR1cm47XG5cdFx0bG9nZ2VyLmRlYnVnKFxuXHRcdFx0YExvYWRpbmcgRm9yZ2Ugd29ya3NwYWNlIChidWlsZENvbmZpZzogJHtidWlsZENvbmZpZ30sIHdvcmtzcGFjZVJvb3Q6ICR7d29ya3NwYWNlUm9vdH0pYCxcblx0XHQpO1xuXHRcdHdvcmtzcGFjZSA9IGF3YWl0IFdvcmtzcGFjZUZhY3RvcnkuY3JlYXRlKHtcblx0XHRcdC4uLldvcmtzcGFjZURlZmF1bHRzLFxuXHRcdFx0cm9vdERpcjogd29ya3NwYWNlUm9vdCxcblx0XHR9KTtcblx0fTtcblxuXHRjb25zdCBwcmVXYXJtUHJvamVjdCA9IChwcm9qZWN0OiBQcm9qZWN0KSA9PiB7XG5cdFx0aWYgKHdhcm1lZFByb2plY3RzLmhhcyhwcm9qZWN0LnByb2plY3REaXJlY3RvcnkpKSByZXR1cm47XG5cdFx0d2FybWVkUHJvamVjdHMuYWRkKHByb2plY3QucHJvamVjdERpcmVjdG9yeSk7XG5cdFx0dm9pZCB0cmFuc3BpbGVyXG5cdFx0XHQudHJhbnNmb3JtUHJvamVjdChwcm9qZWN0KVxuXHRcdFx0LnRoZW4oKCkgPT4gbG9nZ2VyLmRlYnVnKGBQcmUtd2FybSBjb21wbGV0ZSBmb3IgJHtwcm9qZWN0Lm5hbWV9YCkpXG5cdFx0XHQuY2F0Y2goKGVycjogRXJyb3IpID0+XG5cdFx0XHRcdGxvZ2dlci5lcnJvcihgUHJlLXdhcm0gZXJyb3IgZm9yICR7cHJvamVjdC5uYW1lfTogJHtlcnIubWVzc2FnZX1gKSxcblx0XHRcdCk7XG5cdH07XG5cblx0cmV0dXJuIHtcblx0XHRuYW1lOiBQTFVHSU5fTkFNRSxcblx0XHRlbmZvcmNlOiBcInByZVwiIGFzIGNvbnN0LFxuXHRcdGNvbmZpZ1Jlc29sdmVkKCk6IHZvaWQge1xuXHRcdFx0bG9nZ2VyLmRlYnVnKFwiUGx1Z2luIGxvYWRlZFwiKTtcblx0XHR9LFxuXHRcdHJlc29sdmVJZChzb3VyY2U6IHN0cmluZywgaW1wb3J0ZXI6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuXHRcdFx0aWYgKGltcG9ydGVyICE9IG51bGwgJiYgc291cmNlLmVuZHNXaXRoKFwiLmpzXCIpICYmIHNvdXJjZS5zdGFydHNXaXRoKFwiLlwiKSkge1xuXHRcdFx0XHRjb25zdCBpbXBvcnRlckRpcmVjdG9yeSA9IHBhdGguZGlybmFtZShpbXBvcnRlcik7XG5cdFx0XHRcdGNvbnN0IHdpdGhvdXRFeHRlbnNpb24gPSBzb3VyY2Uuc2xpY2UoMCwgLTMpO1xuXHRcdFx0XHRjb25zdCBjYW5kaWRhdGVzID0gVFNfRVhURU5TSU9OUy5tYXAoKGV4dCkgPT5cblx0XHRcdFx0XHRwYXRoLnJlc29sdmUoaW1wb3J0ZXJEaXJlY3RvcnksIGAke3dpdGhvdXRFeHRlbnNpb259JHtleHR9YCksXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0cmV0dXJuIGNhbmRpZGF0ZXMuZmluZCgoYykgPT4gZXhpc3RzU3luYyhjKSkgPz8gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fSxcblx0XHR3YXRjaENoYW5nZShpZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0XHRjb25zdCBmaWxlID0gbmV3IEZpbGVFeCh7IGZ1bGxQYXRoOiBpZCB9KTtcblx0XHRcdHRyYW5zZm9ybUNhY2hlLmRlbGV0ZShpZCk7XG5cdFx0XHR0cmFuc3BpbGVyLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0fSxcblx0XHRhc3luYyB0cmFuc2Zvcm0oXG5cdFx0XHRjb2RlOiBzdHJpbmcsXG5cdFx0XHRpZDogc3RyaW5nLFxuXHRcdCk6IFByb21pc2U8eyBjb2RlOiBzdHJpbmc7IG1hcDogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbD4ge1xuXHRcdFx0aWYgKGlkLmluY2x1ZGVzKFwibm9kZV9tb2R1bGVzXCIpIHx8ICEvWy5dKHRzfHRzeHxtdHN8Y3RzKSQvLnRlc3QoaWQpKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHRhd2FpdCBpbml0V29ya3NwYWNlKCk7XG5cdFx0XHRjb25zdCBwcm9qZWN0ID0gYXdhaXQgd29ya3NwYWNlPy5maW5kUHJvamVjdChpZCwgYnVpbGRDb25maWcpO1xuXG5cdFx0XHRpZiAocHJvamVjdCAhPSBudWxsICYmICFza2lwQnVpbGQpIHtcblx0XHRcdFx0cHJlV2FybVByb2plY3QocHJvamVjdCk7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGNhY2hlZCA9IHRyYW5zZm9ybUNhY2hlLmdldChpZCk7XG5cdFx0XHRpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQgJiYgY2FjaGVkLmNvbnRlbnQgPT09IGNvZGUpIHtcblx0XHRcdFx0cmV0dXJuIGNhY2hlZC5yZXN1bHQ7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGZpbGUgPSBuZXcgRmlsZUV4KHsgZnVsbFBhdGg6IGlkLCBjb250ZW50OiBjb2RlIH0pO1xuXHRcdFx0aWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdC8vIENvbnRlbnQgY2hhbmdlZCBmb3IgYSBwcmV2aW91c2x5LXNlZW4gZmlsZSDigJQgaW52YWxpZGF0ZSB0aGUgdHJhbnNwaWxlcidzXG5cdFx0XHRcdC8vIEZJTEVfQ09OVEVOVCBjYWNoZSBzbyB0aGUgZnJlc2ggY29udGVudCBmcm9tIFZpdGUgaXMgdXNlZC5cblx0XHRcdFx0Ly8gVGhlIFZTIENvZGUgVml0ZXN0IGV4dGVuc2lvbiBkaXNhYmxlcyBWaXRlJ3MgY2hva2lkYXIgd2F0Y2hlclxuXHRcdFx0XHQvLyAoc2VydmVyLndhdGNoOiBudWxsKSBhbmQgZHJpdmVzIHJlLXJ1bnMgdmlhIHZpdGVzdC53YXRjaGVyLm9uRmlsZUNoYW5nZSgpLFxuXHRcdFx0XHQvLyBieXBhc3Npbmcgd2F0Y2hDaGFuZ2UgZW50aXJlbHkg4oCUIHNvIHdlIGNhbm5vdCByZWx5IG9uIHdhdGNoQ2hhbmdlIGFsb25lLlxuXHRcdFx0XHR0cmFuc3BpbGVyLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBbcmVzcG9uc2VdID0gYXdhaXQgdHJhbnNwaWxlci50cmFuc2Zvcm1GaWxlKGZpbGUsIEJ1aWxkVGFyZ2V0cy5lczYsIHtcblx0XHRcdFx0YWxpYXNQYXRoczogdHJ1ZSxcblx0XHRcdFx0dHNDb25maWc6IHByb2plY3QgPyBhd2FpdCBwcm9qZWN0LmdldFRzQ29uZmlnKCkgOiB1bmRlZmluZWQsXG5cdFx0XHR9KTtcblx0XHRcdGlmICghcmVzcG9uc2UgfHwgcmVzcG9uc2Uub3V0Y29tZSAhPT0gXCJzdWNjZXNzXCIpIHJldHVybiBudWxsO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSB7IGNvZGU6IHJlc3BvbnNlLmNvZGUsIG1hcDogbnVsbCB9O1xuXHRcdFx0dHJhbnNmb3JtQ2FjaGUuc2V0KGlkLCB7IGNvbnRlbnQ6IGNvZGUsIHJlc3VsdCB9KTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSxcblx0fTtcbn1cbiJdLCJuYW1lcyI6WyJleGlzdHNTeW5jIiwicGF0aCIsIldvcmtzcGFjZUZhY3RvcnkiLCJGaWxlRXgiLCJDb25zb2xlQWRhcHRlciIsInNjcmliZSIsIlN3Y1RyYW5zcGlsZXIiLCJCdWlsZFRhcmdldHMiLCJXb3Jrc3BhY2VEZWZhdWx0cyIsIlNJTEVOVF9MRVZFTCIsIlBMVUdJTl9OQU1FIiwiVFNfRVhURU5TSU9OUyIsImZvcmdlQnVpbGQiLCJvcHRpb25zIiwiYnVpbGRDb25maWciLCJ3b3Jrc3BhY2VSb290IiwicHJvY2VzcyIsImN3ZCIsImxvZ0xldmVsIiwibG9nZ2VyRmFjdG9yeSIsImNvbmZpZ3VyZSIsImFkYXB0ZXIiLCJjdXN0b21MZXZlbHMiLCJzaWxlbnQiLCJsb2dnZXIiLCJza2lwQnVpbGQiLCJ0cmFuc3BpbGVyIiwid2FybWVkUHJvamVjdHMiLCJTZXQiLCJ0cmFuc2Zvcm1DYWNoZSIsIk1hcCIsIndvcmtzcGFjZSIsImluaXRXb3Jrc3BhY2UiLCJkZWJ1ZyIsImNyZWF0ZSIsInJvb3REaXIiLCJwcmVXYXJtUHJvamVjdCIsInByb2plY3QiLCJoYXMiLCJwcm9qZWN0RGlyZWN0b3J5IiwiYWRkIiwidHJhbnNmb3JtUHJvamVjdCIsInRoZW4iLCJuYW1lIiwiY2F0Y2giLCJlcnIiLCJlcnJvciIsIm1lc3NhZ2UiLCJlbmZvcmNlIiwiY29uZmlnUmVzb2x2ZWQiLCJyZXNvbHZlSWQiLCJzb3VyY2UiLCJpbXBvcnRlciIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsImltcG9ydGVyRGlyZWN0b3J5IiwiZGlybmFtZSIsIndpdGhvdXRFeHRlbnNpb24iLCJzbGljZSIsImNhbmRpZGF0ZXMiLCJtYXAiLCJleHQiLCJyZXNvbHZlIiwiZmluZCIsImMiLCJ3YXRjaENoYW5nZSIsImlkIiwiZmlsZSIsImZ1bGxQYXRoIiwiZGVsZXRlIiwiaW52YWxpZGF0ZUNvbnRlbnRDYWNoZSIsInRyYW5zZm9ybSIsImNvZGUiLCJpbmNsdWRlcyIsInRlc3QiLCJmaW5kUHJvamVjdCIsImNhY2hlZCIsImdldCIsInVuZGVmaW5lZCIsImNvbnRlbnQiLCJyZXN1bHQiLCJyZXNwb25zZSIsInRyYW5zZm9ybUZpbGUiLCJlczYiLCJhbGlhc1BhdGhzIiwidHNDb25maWciLCJnZXRUc0NvbmZpZyIsIm91dGNvbWUiLCJzZXQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsUUFBUSxVQUFVO0FBQ3JDLE9BQU9DLFVBQVUsWUFBWTtBQUU3QixTQUFTQyxnQkFBZ0IsUUFBUSxpQkFBaUI7QUFDbEQsU0FBU0MsTUFBTSxRQUFRLHFCQUFxQjtBQUM1QyxTQUFTQyxjQUFjLEVBQUVDLE1BQU0sUUFBUSxtQkFBbUI7QUFDMUQsU0FBU0MsYUFBYSxRQUFRLGdDQUFnQztBQUM5RCxTQUFTQyxZQUFZLFFBQVEsZ0NBQWdDO0FBQzdELFNBQVNDLGlCQUFpQixRQUFRLHlCQUF5QjtBQUUzRCwrRUFBK0U7QUFDL0UsTUFBTUMsZUFBZTtBQUVyQixNQUFNQyxjQUFjO0FBQ3BCLE1BQU1D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
@@ -1,3 +1 @@
1
1
  export { forgeBuild } from "./forge-build.plugin.js";
2
-
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy92aXRlc3QvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBGb3JnZUJ1aWxkT3B0aW9ucyB9IGZyb20gXCIuL2ZvcmdlLWJ1aWxkLnBsdWdpbi5qc1wiO1xuZXhwb3J0IHsgZm9yZ2VCdWlsZCB9IGZyb20gXCIuL2ZvcmdlLWJ1aWxkLnBsdWdpbi5qc1wiO1xuIl0sIm5hbWVzIjpbImZvcmdlQnVpbGQiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLFVBQVUsUUFBUSwwQkFBMEIifQ==
@@ -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",
@@ -15,25 +24,50 @@ export const Release = {
15
24
  BuildTargets.es6,
16
25
  BuildTargets.types
17
26
  ],
27
+ // Published output: no inline maps (they carry full source and build-machine paths).
28
+ sourceMaps: false,
29
+ // Tests and benchmarks are not shipped: they import dev-only packages (vitest, @swc/core).
18
30
  ignore: [
19
31
  "**/*.spec.ts",
20
32
  "**/*.test.ts",
33
+ "**/*.bench.ts",
21
34
  "tests/**",
22
- "e2e/**"
35
+ "e2e/**",
36
+ "bench/**"
37
+ ],
38
+ // Sit next to emitted JS under es6/commonjs/types (import.meta.url).
39
+ // Do not put package.json here — that stays on workspace copyFiles (root only).
40
+ copyFiles: [
41
+ "**/webapi/devcontainer/templates/**",
42
+ "**/webapi/devcontainer/codebase-rag-mcp.ts"
43
+ ]
44
+ };
45
+ /**
46
+ * Link configuration: unpacked JS + co-located type declarations.
47
+ * Intended for `forge link` — symlinked into a consumer's node_modules so that
48
+ * both runtime resolution and TypeScript find the same output directory.
49
+ */ export const Link = {
50
+ name: "link",
51
+ pack: true,
52
+ targets: [
53
+ BuildTargets.es6,
54
+ BuildTargets.types
23
55
  ]
24
56
  };
25
57
  export const DefaultConfigurations = [
26
58
  Debug,
59
+ Link,
27
60
  Release
28
61
  ];
29
62
  export const WorkspaceDefaults = {
30
63
  ...BaseDefaults,
64
+ // Root-only files npm ships with the package. Globs that match nothing are fine.
31
65
  copyFiles: [
32
66
  "package.json",
67
+ "README.md",
68
+ "LICENSE*",
33
69
  "**/*.mjs"
34
70
  ],
35
71
  configurations: DefaultConfigurations,
36
72
  projects: undefined
37
73
  };
38
-
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy93b3Jrc3BhY2UuY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdvcmtzcGFjZURlZmF1bHRzIGFzIEJhc2VEZWZhdWx0cyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgRm9yZ2VDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vdHlwZXMvY29uZmlndXJhdGlvbi50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy93b3Jrc3BhY2UtY29uZmlnLnR5cGUuanNcIjtcblxuZXhwb3J0IGNvbnN0IERlYnVnOiBGb3JnZUNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hbWU6IFwiZGVidWdcIixcblx0dGFyZ2V0czogW0J1aWxkVGFyZ2V0cy5lczZdLFxuXHRhbGlhc1BhdGhzOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFJlbGVhc2U6IEZvcmdlQ29uZmlndXJhdGlvbiA9IHtcblx0bmFtZTogXCJyZWxlYXNlXCIsXG5cdHBhY2s6IHRydWUsXG5cdHRhcmdldHM6IFtCdWlsZFRhcmdldHMuY29tbW9uanMsIEJ1aWxkVGFyZ2V0cy5lczYsIEJ1aWxkVGFyZ2V0cy50eXBlc10sXG5cdGlnbm9yZTogW1wiKiovKi5zcGVjLnRzXCIsIFwiKiovKi50ZXN0LnRzXCIsIFwidGVzdHMvKipcIiwgXCJlMmUvKipcIl0sXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdENvbmZpZ3VyYXRpb25zID0gW0RlYnVnLCBSZWxlYXNlXTtcblxuZXhwb3J0IGNvbnN0IFdvcmtzcGFjZURlZmF1bHRzOiBXb3Jrc3BhY2VPcHRpb25zID0ge1xuXHQuLi5CYXNlRGVmYXVsdHMsXG5cdGNvcHlGaWxlczogW1wicGFja2FnZS5qc29uXCIsIFwiKiovKi5tanNcIl0sXG5cdGNvbmZpZ3VyYXRpb25zOiBEZWZhdWx0Q29uZmlndXJhdGlvbnMsXG5cdHByb2plY3RzOiB1bmRlZmluZWQsXG59O1xuIl0sIm5hbWVzIjpbIldvcmtzcGFjZURlZmF1bHRzIiwiQmFzZURlZmF1bHRzIiwiQnVpbGRUYXJnZXRzIiwiRGVidWciLCJuYW1lIiwidGFyZ2V0cyIsImVzNiIsImFsaWFzUGF0aHMiLCJSZWxlYXNlIiwicGFjayIsImNvbW1vbmpzIiwidHlwZXMiLCJpZ25vcmUiLCJEZWZhdWx0Q29uZmlndXJhdGlvbnMiLCJjb3B5RmlsZXMiLCJjb25maWd1cmF0aW9ucyIsInByb2plY3RzIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxxQkFBcUJDLFlBQVksUUFBUSxpQkFBaUI7QUFDbkUsU0FBU0MsWUFBWSxRQUFRLCtCQUErQjtBQUk1RCxPQUFPLE1BQU1DLFFBQTRCO0lBQ3hDQyxNQUFNO0lBQ05DLFNBQVM7UUFBQ0gsYUFBYUksR0FBRztLQUFDO0lBQzNCQyxZQUFZO0FBQ2IsRUFBRTtBQUVGLE9BQU8sTUFBTUMsVUFBOEI7SUFDMUNKLE1BQU07SUFDTkssTUFBTTtJQUNOSixTQUFTO1FBQUNILGFBQWFRLFFBQVE7UUFBRVIsYUFBYUksR0FBRztRQUFFSixhQUFhUyxLQUFLO0tBQUM7SUFDdEVDLFFBQVE7UUFBQztRQUFnQjtRQUFnQjtRQUFZO0tBQVM7QUFDL0QsRUFBRTtBQUVGLE9BQU8sTUFBTUMsd0JBQXdCO0lBQUNWO0lBQU9LO0NBQVEsQ0FBQztBQUV0RCxPQUFPLE1BQU1SLG9CQUFzQztJQUNsRCxHQUFHQyxZQUFZO0lBQ2ZhLFdBQVc7UUFBQztRQUFnQjtLQUFXO0lBQ3ZDQyxnQkFBZ0JGO0lBQ2hCRyxVQUFVQztBQUNYLEVBQUUifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/forge",
3
- "version": "0.0.1-dev.11",
3
+ "version": "0.0.1-dev.110",
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.11",
33
- "@decohere/mesh": "0.0.1-dev.11",
34
- "@decohere/nexus": "0.0.1-dev.11",
35
- "@decohere/scribe": "0.0.1-dev.11",
32
+ "@decohere/crucible": "0.0.1-dev.110",
33
+ "@decohere/mesh": "0.0.1-dev.110",
34
+ "@decohere/nexus": "0.0.1-dev.110",
35
+ "@decohere/scribe": "0.0.1-dev.110",
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,38 @@
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
+ /**
23
+ * A Dockerfile that copies `.package/` needs `forge package` to have run. Fail before the
24
+ * build with that instruction rather than with Docker's "not found" from deep in a layer.
25
+ */
26
+ private assertPackaged;
27
+ private buildProject;
28
+ private interpolateBuildArgs;
29
+ /**
30
+ * Keep FORGE_DOCKER_EXTRA_TAGS_JSON scoped to this image so multi-image
31
+ * publishes do not stamp create:latest onto the app Dev Container (and vice versa).
32
+ */
33
+ private extraTagsForImage;
34
+ private defaultImageName;
35
+ private normalizeDockerRepository;
36
+ private normalizeProjectSlug;
37
+ private parseJsonEnv;
38
+ }
@@ -4,8 +4,13 @@ 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";
9
+ export * from "./package.action.js";
7
10
  export * from "./publish.action.js";
8
11
  export * from "./sync-lock-file.action.js";
9
12
  export * from "./tag.action.js";
13
+ export * from "./typecheck.action.js";
14
+ export * from "./unlink.action.js";
10
15
  export * from "./version.action.js";
11
16
  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,38 @@
1
+ import { Workspace } from "@decohere/mesh";
2
+ import type { Action, ResultStatus } from "@decohere/nexus/cli";
3
+ import { ActionResponse } from "@decohere/nexus/cli";
4
+ import { DependencyPinner } from "../packaging/dependency-pinner.service.js";
5
+ import { ImportGraph } from "../packaging/import-graph.service.js";
6
+ export type PackageOptions = {
7
+ /** Package name of one deployable. Omit to package every project that has a Dockerfile. */
8
+ project?: string;
9
+ };
10
+ export type PackageResponse = ResultStatus & {
11
+ projectName: string;
12
+ outDir: string;
13
+ workspacePackages: string[];
14
+ dependencies: Record<string, string>;
15
+ message: string;
16
+ };
17
+ /**
18
+ * Turns a deployable's release build into one self-contained folder that plain `node` runs:
19
+ * no symlinks, no workspace tooling. See ADR 0006.
20
+ */
21
+ export declare class PackageDeployable implements Action<PackageOptions> {
22
+ #private;
23
+ private readonly workspace;
24
+ private readonly importGraph;
25
+ private readonly pinner;
26
+ private readonly npm;
27
+ constructor(workspace: Workspace, importGraph: ImportGraph, pinner: DependencyPinner);
28
+ run(options: PackageOptions): Promise<ActionResponse<PackageResponse>>;
29
+ /** The deployables to package, or the reason a named project cannot be one. */
30
+ private select;
31
+ private releaseProjects;
32
+ private packageProject;
33
+ private write;
34
+ /** Copies file contents, never links: a symlink in the output would break outside the image. */
35
+ private copyTree;
36
+ private writeJson;
37
+ private assertNoSymlinks;
38
+ }
@@ -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,10 @@
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";
6
+ export * from "./package.command.js";
4
7
  export * from "./publish.command.js";
5
8
  export * from "./tag.command.js";
9
+ export * from "./typecheck.command.js";
6
10
  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,11 @@
1
+ import { DecohereCommand } from "@decohere/nexus/cli";
2
+ import { PackageDeployable } from "../actions/package.action.js";
3
+ export declare class PackageCommand extends DecohereCommand {
4
+ get actions(): (typeof PackageDeployable)[];
5
+ constructor(name: string);
6
+ /**
7
+ * Commander passes the positional before the options; the CLI host reads only options,
8
+ * so the project name is stashed on them.
9
+ */
10
+ action(fn: (...args: any[]) => void | Promise<void>): this;
11
+ }
@@ -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
+ }
@@ -0,0 +1,7 @@
1
+ import { type Workspace } from "@decohere/mesh";
2
+ import type { WorkspaceFactoryOptions } from "@decohere/nexus/cli";
3
+ /**
4
+ * The workspace every Decohere tool sees (forge, the flux CLI and `flux.run`): forge's
5
+ * defaults, the user's `.decohere.js`, and a root found by searching upward from cwd.
6
+ */
7
+ export declare function createWorkspace(options?: WorkspaceFactoryOptions): Promise<Workspace>;
@@ -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,8 @@ 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;
13
+ package: typeof Actions.PackageDeployable;
12
14
  build: typeof Actions.Build;
13
15
  watch: typeof Actions.Watch;
14
16
  publish: typeof Actions.Publish;
@@ -17,14 +19,22 @@ export declare class ForgeModule extends ModuleManifest {
17
19
  reportDependencies: typeof Actions.ReportDependencies;
18
20
  version: typeof Actions.Version;
19
21
  tag: typeof Actions.Tag;
22
+ typecheck: typeof Actions.TypeCheck;
20
23
  commitFiles: typeof Actions.CommitFiles;
24
+ link: typeof Actions.Link;
25
+ unlink: typeof Actions.Unlink;
21
26
  };
22
27
  readonly commands: {
23
28
  build: typeof Commands.BuildCommand;
24
29
  publish: typeof Commands.PublishCommand;
25
30
  dependencies: typeof Commands.DependencyCommand;
31
+ docker: typeof Commands.DockerCommand;
32
+ package: typeof Commands.PackageCommand;
26
33
  version: typeof Commands.VersionCommand;
27
34
  tag: typeof Commands.TagCommand;
35
+ typecheck: typeof Commands.TypeCheckCommand;
36
+ link: typeof Commands.LinkCommand;
37
+ unlink: typeof Commands.UnlinkCommand;
28
38
  };
29
39
  registerServices(builder: ContainerBuilder): void;
30
40
  createWorkspace(options: WorkspaceFactoryOptions): Promise<import("@decohere/mesh").Workspace>;
@@ -1,3 +1,4 @@
1
+ export { createWorkspace } from "./create-workspace.js";
1
2
  export { ForgeError } from "./errors.js";
2
3
  export { ForgeModule } from "./forge.module.js";
3
4
  export type { TranspileOptions } from "./services/swc-transpiler.js";
@@ -6,4 +7,4 @@ export type { BuildTarget, TranspileTarget } from "./types/build-target.type.js"
6
7
  export { BuildTargets } from "./types/build-target.type.js";
7
8
  export type { ForgeConfiguration } from "./types/configuration.type.js";
8
9
  export type { WorkspaceOptions } from "./types/workspace-config.type.js";
9
- export { Debug as DebugConfiguration, DefaultConfigurations, Release as ReleaseConfiguration, WorkspaceDefaults, } from "./workspace.config.js";
10
+ export { Debug as DebugConfiguration, DefaultConfigurations, Link as LinkConfiguration, Release as ReleaseConfiguration, WorkspaceDefaults, } from "./workspace.config.js";
@@ -0,0 +1,20 @@
1
+ import type { PackageJson } from "@decohere/mesh";
2
+ import type { ReachedPackages, ReleaseProject } from "./import-graph.service.js";
3
+ /**
4
+ * Chooses the third-party `dependencies` for the packaged `package.json`: the union of
5
+ * `dependencies` (never devDependencies) of the deployable, every library copied in, and the
6
+ * workspace root. Declared is shipped, whether or not code imports it (a runtime-loaded pino
7
+ * transport, say), so removing an unused dependency is the author's job. Each is pinned to the
8
+ * exact version installed in the workspace, so the image runs what the tests ran.
9
+ *
10
+ * Code that imports a third-party package nothing ships is a crash waiting to happen, so that
11
+ * is an error: the package is only a devDependency, or declared nowhere.
12
+ */
13
+ export declare class DependencyPinner {
14
+ pin(imported: ReachedPackages["thirdParty"], shipped: readonly ReleaseProject[], projects: ReadonlyMap<string, ReleaseProject>, workspaceRoot: {
15
+ dir: string;
16
+ pkg: PackageJson;
17
+ }): Promise<Record<string, string>>;
18
+ private assertImportsAreShipped;
19
+ private installedVersion;
20
+ }