@decohere/forge 0.0.1-dev.5

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 (130) hide show
  1. package/commonjs/src/actions/build.action.js +108 -0
  2. package/commonjs/src/actions/clean.action.js +55 -0
  3. package/commonjs/src/actions/commit.action.js +80 -0
  4. package/commonjs/src/actions/copy.action.js +83 -0
  5. package/commonjs/src/actions/dependency-report.action.js +142 -0
  6. package/commonjs/src/actions/dependency-sync.action.js +100 -0
  7. package/commonjs/src/actions/index.js +30 -0
  8. package/commonjs/src/actions/publish.action.js +156 -0
  9. package/commonjs/src/actions/sync-lock-file.action.js +43 -0
  10. package/commonjs/src/actions/tag.action.js +76 -0
  11. package/commonjs/src/actions/version.action.js +209 -0
  12. package/commonjs/src/actions/watch.action.js +50 -0
  13. package/commonjs/src/commands/build.command.js +49 -0
  14. package/commonjs/src/commands/dependency.command.js +88 -0
  15. package/commonjs/src/commands/forge.command.js +24 -0
  16. package/commonjs/src/commands/index.js +25 -0
  17. package/commonjs/src/commands/publish.command.js +32 -0
  18. package/commonjs/src/commands/tag.command.js +28 -0
  19. package/commonjs/src/commands/version.command.js +36 -0
  20. package/commonjs/src/const.js +81 -0
  21. package/commonjs/src/errors.js +39 -0
  22. package/commonjs/src/extensions/project.extensions.js +66 -0
  23. package/commonjs/src/factories/swc-config.factory.js +98 -0
  24. package/commonjs/src/forge.module.js +109 -0
  25. package/commonjs/src/index.js +22 -0
  26. package/commonjs/src/mixins/caches-outputs.mixin.js +42 -0
  27. package/commonjs/src/mixins/incremental-transform.mixin.js +36 -0
  28. package/commonjs/src/services/dependency-resolver.service.js +172 -0
  29. package/commonjs/src/services/file-writer.service.js +232 -0
  30. package/commonjs/src/services/swc-transpiler.js +176 -0
  31. package/commonjs/src/services/ts-program-host.js +135 -0
  32. package/commonjs/src/services/type-emission-program.js +160 -0
  33. package/commonjs/src/services/type-emitter.js +141 -0
  34. package/commonjs/src/types/build-target.type.js +17 -0
  35. package/commonjs/src/types/configuration.type.js +6 -0
  36. package/commonjs/src/types/dependency.types.js +6 -0
  37. package/commonjs/src/types/swc-config.type.js +17 -0
  38. package/commonjs/src/types/transform-response.model.js +64 -0
  39. package/commonjs/src/types/transformer.type.js +13 -0
  40. package/commonjs/src/types/workspace-config.type.js +6 -0
  41. package/commonjs/src/vitest/forge-build.plugin.js +129 -0
  42. package/commonjs/src/vitest/index.js +13 -0
  43. package/commonjs/src/workspace.config.js +73 -0
  44. package/es6/src/actions/build.action.js +100 -0
  45. package/es6/src/actions/clean.action.js +46 -0
  46. package/es6/src/actions/commit.action.js +71 -0
  47. package/es6/src/actions/copy.action.js +69 -0
  48. package/es6/src/actions/dependency-report.action.js +134 -0
  49. package/es6/src/actions/dependency-sync.action.js +92 -0
  50. package/es6/src/actions/index.js +13 -0
  51. package/es6/src/actions/publish.action.js +147 -0
  52. package/es6/src/actions/sync-lock-file.action.js +33 -0
  53. package/es6/src/actions/tag.action.js +67 -0
  54. package/es6/src/actions/version.action.js +189 -0
  55. package/es6/src/actions/watch.action.js +41 -0
  56. package/es6/src/commands/build.command.js +34 -0
  57. package/es6/src/commands/dependency.command.js +78 -0
  58. package/es6/src/commands/forge.command.js +14 -0
  59. package/es6/src/commands/index.js +8 -0
  60. package/es6/src/commands/publish.command.js +22 -0
  61. package/es6/src/commands/tag.command.js +18 -0
  62. package/es6/src/commands/version.command.js +26 -0
  63. package/es6/src/const.js +60 -0
  64. package/es6/src/errors.js +18 -0
  65. package/es6/src/extensions/project.extensions.js +51 -0
  66. package/es6/src/factories/swc-config.factory.js +83 -0
  67. package/es6/src/forge.module.js +58 -0
  68. package/es6/src/index.js +4 -0
  69. package/es6/src/mixins/caches-outputs.mixin.js +32 -0
  70. package/es6/src/mixins/incremental-transform.mixin.js +26 -0
  71. package/es6/src/services/dependency-resolver.service.js +162 -0
  72. package/es6/src/services/file-writer.service.js +217 -0
  73. package/es6/src/services/swc-transpiler.js +161 -0
  74. package/es6/src/services/ts-program-host.js +120 -0
  75. package/es6/src/services/type-emission-program.js +145 -0
  76. package/es6/src/services/type-emitter.js +134 -0
  77. package/es6/src/types/build-target.type.js +7 -0
  78. package/es6/src/types/configuration.type.js +3 -0
  79. package/es6/src/types/dependency.types.js +3 -0
  80. package/es6/src/types/swc-config.type.js +7 -0
  81. package/es6/src/types/transform-response.model.js +46 -0
  82. package/es6/src/types/transformer.type.js +3 -0
  83. package/es6/src/types/workspace-config.type.js +3 -0
  84. package/es6/src/vitest/forge-build.plugin.js +114 -0
  85. package/es6/src/vitest/index.js +3 -0
  86. package/es6/src/workspace.config.js +49 -0
  87. package/package.json +43 -0
  88. package/types/src/actions/build.action.d.ts +22 -0
  89. package/types/src/actions/clean.action.d.ts +13 -0
  90. package/types/src/actions/commit.action.d.ts +17 -0
  91. package/types/src/actions/copy.action.d.ts +14 -0
  92. package/types/src/actions/dependency-report.action.d.ts +36 -0
  93. package/types/src/actions/dependency-sync.action.d.ts +17 -0
  94. package/types/src/actions/index.d.ts +11 -0
  95. package/types/src/actions/publish.action.d.ts +34 -0
  96. package/types/src/actions/sync-lock-file.action.d.ts +10 -0
  97. package/types/src/actions/tag.action.d.ts +19 -0
  98. package/types/src/actions/version.action.d.ts +35 -0
  99. package/types/src/actions/watch.action.d.ts +14 -0
  100. package/types/src/commands/build.command.d.ts +16 -0
  101. package/types/src/commands/dependency.command.d.ts +5 -0
  102. package/types/src/commands/forge.command.d.ts +6 -0
  103. package/types/src/commands/index.d.ts +6 -0
  104. package/types/src/commands/publish.command.d.ts +6 -0
  105. package/types/src/commands/tag.command.d.ts +6 -0
  106. package/types/src/commands/version.command.d.ts +12 -0
  107. package/types/src/const.d.ts +3 -0
  108. package/types/src/errors.d.ts +4 -0
  109. package/types/src/extensions/project.extensions.d.ts +13 -0
  110. package/types/src/factories/swc-config.factory.d.ts +24 -0
  111. package/types/src/forge.module.d.ts +31 -0
  112. package/types/src/index.d.ts +4 -0
  113. package/types/src/mixins/caches-outputs.mixin.d.ts +7 -0
  114. package/types/src/mixins/incremental-transform.mixin.d.ts +13 -0
  115. package/types/src/services/dependency-resolver.service.d.ts +15 -0
  116. package/types/src/services/file-writer.service.d.ts +20 -0
  117. package/types/src/services/swc-transpiler.d.ts +28 -0
  118. package/types/src/services/ts-program-host.d.ts +22 -0
  119. package/types/src/services/type-emission-program.d.ts +22 -0
  120. package/types/src/services/type-emitter.d.ts +43 -0
  121. package/types/src/types/build-target.type.d.ts +7 -0
  122. package/types/src/types/configuration.type.d.ts +6 -0
  123. package/types/src/types/dependency.types.d.ts +39 -0
  124. package/types/src/types/swc-config.type.d.ts +9 -0
  125. package/types/src/types/transform-response.model.d.ts +54 -0
  126. package/types/src/types/transformer.type.d.ts +37 -0
  127. package/types/src/types/workspace-config.type.d.ts +13 -0
  128. package/types/src/vitest/forge-build.plugin.d.ts +18 -0
  129. package/types/src/vitest/index.d.ts +2 -0
  130. package/types/src/workspace.config.d.ts +6 -0
@@ -0,0 +1,145 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ function _ts_metadata(k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ }
10
+ import path from "node:path";
11
+ import { Trace } from "@decohere/nexus/diagnostics";
12
+ import { TransformResponse } from "../types/transform-response.model.js";
13
+ export class TypeEmissionProgram {
14
+ #program;
15
+ #group;
16
+ #targetsByDtsPath;
17
+ #targetsByEmittedPath;
18
+ #host;
19
+ #compilerHost;
20
+ #allFiles;
21
+ #compilerOptions;
22
+ constructor(group, hostFactory){
23
+ this.#group = group;
24
+ const targets = this.buildTargetMaps(group);
25
+ this.#targetsByDtsPath = targets.byDtsPath;
26
+ this.#targetsByEmittedPath = targets.byEmittedPath;
27
+ this.#host = hostFactory;
28
+ this.#compilerOptions = group[0].tsconfig.compilerOptions;
29
+ this.#allFiles = group.flatMap(({ files })=>files);
30
+ this.#compilerHost = hostFactory.createHost(this.#compilerOptions);
31
+ this.#program = hostFactory.createProgram(this.#allFiles, this.#compilerOptions, this.#compilerHost);
32
+ }
33
+ toEmissionTarget(groupProject, file, outBaseDir) {
34
+ const extName = path.extname(file.relativePath);
35
+ const dtsRelative = file.relativePath.replace(new RegExp(`${extName}$`), ".d.ts");
36
+ const outputPath = path.join(outBaseDir, dtsRelative);
37
+ return {
38
+ file,
39
+ tsconfig: groupProject.tsconfig,
40
+ project: groupProject.project,
41
+ outputPath,
42
+ outputDir: path.dirname(outputPath),
43
+ dtsRelative
44
+ };
45
+ }
46
+ emittedKey(file) {
47
+ return file.fullPath.replace(/\.[^.]+$/, ".d.ts");
48
+ }
49
+ buildTargetMaps(group) {
50
+ const byDtsPath = new Map();
51
+ const byEmittedPath = new Map();
52
+ for (const groupProject of group){
53
+ const outBaseDir = groupProject.project.getOutDir("types");
54
+ for (const file of groupProject.files){
55
+ const target = this.toEmissionTarget(groupProject, file, outBaseDir);
56
+ byDtsPath.set(target.dtsRelative, target);
57
+ byEmittedPath.set(this.emittedKey(file), target);
58
+ }
59
+ }
60
+ return {
61
+ byDtsPath,
62
+ byEmittedPath
63
+ };
64
+ }
65
+ addFile(file, project) {
66
+ const groupProject = this.#group.find((g)=>g.project === project);
67
+ if (groupProject == null) return;
68
+ groupProject.files.push(file);
69
+ this.#allFiles.push(file);
70
+ const outBaseDir = groupProject.project.getOutDir("types");
71
+ const target = this.toEmissionTarget(groupProject, file, outBaseDir);
72
+ this.#targetsByDtsPath.set(target.dtsRelative, target);
73
+ this.#targetsByEmittedPath.set(this.emittedKey(file), target);
74
+ this.#host.invalidateSourceFile(file.fullPath);
75
+ }
76
+ async emit(fileFilter, onOutput) {
77
+ if (this.#host.hasInvalidated()) {
78
+ this.#program = this.#host.createProgram(this.#allFiles, this.#compilerOptions, this.#compilerHost, this.#program);
79
+ }
80
+ if (fileFilter == null) {
81
+ return this.emitAll(onOutput);
82
+ }
83
+ return this.emitFiltered(fileFilter, onOutput);
84
+ }
85
+ emitAll(onOutput) {
86
+ const responses = [];
87
+ this.#program.emit(undefined, (emittedPath, content)=>{
88
+ if (!emittedPath.endsWith(".d.ts")) {
89
+ return;
90
+ }
91
+ const response = this.toTransformResponse(emittedPath, content);
92
+ responses.push(response);
93
+ onOutput?.(response);
94
+ });
95
+ return responses;
96
+ }
97
+ async emitFiltered(fileFilter, onOutput) {
98
+ const files = await Promise.all(this.#group.map(({ project })=>fileFilter(project)));
99
+ const sourceFiles = files.flat().map((file)=>this.#program.getSourceFile(file.fullPath)).filter((sf)=>sf != null);
100
+ const responses = [];
101
+ for (const sourceFile of sourceFiles){
102
+ this.#program.emit(sourceFile, (emittedPath, content)=>{
103
+ if (!emittedPath.endsWith(".d.ts")) {
104
+ return;
105
+ }
106
+ const response = this.toTransformResponse(emittedPath, content);
107
+ responses.push(response);
108
+ onOutput?.(response);
109
+ });
110
+ }
111
+ return responses;
112
+ }
113
+ toTransformResponse(emittedPath, content) {
114
+ const target = this.#targetsByEmittedPath.get(emittedPath);
115
+ if (target == null) {
116
+ throw new Error(`No matching emission target for: ${emittedPath}`);
117
+ }
118
+ return this.toTransformResponseFromTarget(target, content);
119
+ }
120
+ toTransformResponseFromTarget(target, content) {
121
+ const { file, tsconfig, project, outputPath, outputDir, dtsRelative } = target;
122
+ return TransformResponse.from({
123
+ file,
124
+ config: tsconfig,
125
+ outcome: "success",
126
+ fileName: dtsRelative,
127
+ code: content,
128
+ target: "types",
129
+ messages: [],
130
+ project,
131
+ outputDir,
132
+ outputPath
133
+ });
134
+ }
135
+ }
136
+ TypeEmissionProgram = _ts_decorate([
137
+ Trace,
138
+ _ts_metadata("design:type", Function),
139
+ _ts_metadata("design:paramtypes", [
140
+ Array,
141
+ typeof TsProgramHost === "undefined" ? Object : TsProgramHost
142
+ ])
143
+ ], TypeEmissionProgram);
144
+
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QsIFRzY29uZmlnIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZGlhZ25vc3RpY3NcIjtcbmltcG9ydCB0eXBlIHsgRmlsZUV4IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHR5cGUgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcbmltcG9ydCB0eXBlIHsgVHNQcm9ncmFtSG9zdCB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cy1wcm9ncmFtLWhvc3QuanNcIjtcbmltcG9ydCB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuXG5leHBvcnQgdHlwZSBUeXBlUHJvZ3JhbVByb2plY3QgPSB7XG5cdHByb2plY3Q6IFByb2plY3Q7XG5cdGZpbGVzOiBGaWxlRXhbXTtcblx0dHNjb25maWc6IFRzY29uZmlnO1xufTtcblxudHlwZSBFbWlzc2lvblRhcmdldCA9IHtcblx0ZmlsZTogRmlsZUV4O1xuXHR0c2NvbmZpZzogVHNjb25maWc7XG5cdHByb2plY3Q6IFByb2plY3Q7XG5cdG91dHB1dFBhdGg6IHN0cmluZztcblx0b3V0cHV0RGlyOiBzdHJpbmc7XG5cdGR0c1JlbGF0aXZlOiBzdHJpbmc7XG59O1xuXG5AVHJhY2VcbmV4cG9ydCBjbGFzcyBUeXBlRW1pc3Npb25Qcm9ncmFtIHtcblx0I3Byb2dyYW06IHRzLlByb2dyYW07XG5cdCNncm91cDogVHlwZVByb2dyYW1Qcm9qZWN0W107XG5cdCN0YXJnZXRzQnlEdHNQYXRoOiBNYXA8c3RyaW5nLCBFbWlzc2lvblRhcmdldD47XG5cdCN0YXJnZXRzQnlFbWl0dGVkUGF0aDogTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+O1xuXHQjaG9zdDogVHNQcm9ncmFtSG9zdDtcblx0I2NvbXBpbGVySG9zdDogdHMuQ29tcGlsZXJIb3N0O1xuXHQjYWxsRmlsZXM6IEZpbGVFeFtdO1xuXHQjY29tcGlsZXJPcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnM7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKGdyb3VwOiBUeXBlUHJvZ3JhbVByb2plY3RbXSwgaG9zdEZhY3Rvcnk6IFRzUHJvZ3JhbUhvc3QpIHtcblx0XHR0aGlzLiNncm91cCA9IGdyb3VwO1xuXHRcdGNvbnN0IHRhcmdldHMgPSB0aGlzLmJ1aWxkVGFyZ2V0TWFwcyhncm91cCk7XG5cdFx0dGhpcy4jdGFyZ2V0c0J5RHRzUGF0aCA9IHRhcmdldHMuYnlEdHNQYXRoO1xuXHRcdHRoaXMuI3RhcmdldHNCeUVtaXR0ZWRQYXRoID0gdGFyZ2V0cy5ieUVtaXR0ZWRQYXRoO1xuXHRcdHRoaXMuI2hvc3QgPSBob3N0RmFjdG9yeTtcblx0XHR0aGlzLiNjb21waWxlck9wdGlvbnMgPSBncm91cFswXS50c2NvbmZpZy5jb21waWxlck9wdGlvbnM7XG5cdFx0dGhpcy4jYWxsRmlsZXMgPSBncm91cC5mbGF0TWFwKCh7IGZpbGVzIH0pID0+IGZpbGVzKTtcblx0XHR0aGlzLiNjb21waWxlckhvc3QgPSBob3N0RmFjdG9yeS5jcmVhdGVIb3N0KHRoaXMuI2NvbXBpbGVyT3B0aW9ucyk7XG5cdFx0dGhpcy4jcHJvZ3JhbSA9IGhvc3RGYWN0b3J5LmNyZWF0ZVByb2dyYW0oXG5cdFx0XHR0aGlzLiNhbGxGaWxlcyxcblx0XHRcdHRoaXMuI2NvbXBpbGVyT3B0aW9ucyxcblx0XHRcdHRoaXMuI2NvbXBpbGVySG9zdCxcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b0VtaXNzaW9uVGFyZ2V0KFxuXHRcdGdyb3VwUHJvamVjdDogVHlwZVByb2dyYW1Qcm9qZWN0LFxuXHRcdGZpbGU6IEZpbGVFeCxcblx0XHRvdXRCYXNlRGlyOiBzdHJpbmcsXG5cdCk6IEVtaXNzaW9uVGFyZ2V0IHtcblx0XHRjb25zdCBleHROYW1lID0gcGF0aC5leHRuYW1lKGZpbGUucmVsYXRpdmVQYXRoKTtcblx0XHRjb25zdCBkdHNSZWxhdGl2ZSA9IGZpbGUucmVsYXRpdmVQYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChgJHtleHROYW1lfSRgKSwgXCIuZC50c1wiKTtcblx0XHRjb25zdCBvdXRwdXRQYXRoID0gcGF0aC5qb2luKG91dEJhc2VEaXIsIGR0c1JlbGF0aXZlKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZmlsZSxcblx0XHRcdHRzY29uZmlnOiBncm91cFByb2plY3QudHNjb25maWcsXG5cdFx0XHRwcm9qZWN0OiBncm91cFByb2plY3QucHJvamVjdCxcblx0XHRcdG91dHB1dFBhdGgsXG5cdFx0XHRvdXRwdXREaXI6IHBhdGguZGlybmFtZShvdXRwdXRQYXRoKSxcblx0XHRcdGR0c1JlbGF0aXZlLFxuXHRcdH07XG5cdH1cblxuXHRwcml2YXRlIGVtaXR0ZWRLZXkoZmlsZTogRmlsZUV4KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gZmlsZS5mdWxsUGF0aC5yZXBsYWNlKC9cXC5bXi5dKyQvLCBcIi5kLnRzXCIpO1xuXHR9XG5cblx0cHJpdmF0ZSBidWlsZFRhcmdldE1hcHMoZ3JvdXA6IFR5cGVQcm9ncmFtUHJvamVjdFtdKToge1xuXHRcdGJ5RHRzUGF0aDogTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+O1xuXHRcdGJ5RW1pdHRlZFBhdGg6IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0Pjtcblx0fSB7XG5cdFx0Y29uc3QgYnlEdHNQYXRoID0gbmV3IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0PigpO1xuXHRcdGNvbnN0IGJ5RW1pdHRlZFBhdGggPSBuZXcgTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+KCk7XG5cblx0XHRmb3IgKGNvbnN0IGdyb3VwUHJvamVjdCBvZiBncm91cCkge1xuXHRcdFx0Y29uc3Qgb3V0QmFzZURpciA9IGdyb3VwUHJvamVjdC5wcm9qZWN0LmdldE91dERpcihcInR5cGVzXCIpO1xuXHRcdFx0Zm9yIChjb25zdCBmaWxlIG9mIGdyb3VwUHJvamVjdC5maWxlcykge1xuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLnRvRW1pc3Npb25UYXJnZXQoZ3JvdXBQcm9qZWN0LCBmaWxlLCBvdXRCYXNlRGlyKTtcblx0XHRcdFx0YnlEdHNQYXRoLnNldCh0YXJnZXQuZHRzUmVsYXRpdmUsIHRhcmdldCk7XG5cdFx0XHRcdGJ5RW1pdHRlZFBhdGguc2V0KHRoaXMuZW1pdHRlZEtleShmaWxlKSwgdGFyZ2V0KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBieUR0c1BhdGgsIGJ5RW1pdHRlZFBhdGggfTtcblx0fVxuXG5cdHB1YmxpYyBhZGRGaWxlKGZpbGU6IEZpbGVFeCwgcHJvamVjdDogUHJvamVjdCk6IHZvaWQge1xuXHRcdGNvbnN0IGdyb3VwUHJvamVjdCA9IHRoaXMuI2dyb3VwLmZpbmQoKGcpID0+IGcucHJvamVjdCA9PT0gcHJvamVjdCk7XG5cdFx0aWYgKGdyb3VwUHJvamVjdCA9PSBudWxsKSByZXR1cm47XG5cblx0XHRncm91cFByb2plY3QuZmlsZXMucHVzaChmaWxlKTtcblx0XHR0aGlzLiNhbGxGaWxlcy5wdXNoKGZpbGUpO1xuXG5cdFx0Y29uc3Qgb3V0QmFzZURpciA9IGdyb3VwUHJvamVjdC5wcm9qZWN0LmdldE91dERpcihcInR5cGVzXCIpO1xuXHRcdGNvbnN0IHRhcmdldCA9IHRoaXMudG9FbWlzc2lvblRhcmdldChncm91cFByb2plY3QsIGZpbGUsIG91dEJhc2VEaXIpO1xuXHRcdHRoaXMuI3RhcmdldHNCeUR0c1BhdGguc2V0KHRhcmdldC5kdHNSZWxhdGl2ZSwgdGFyZ2V0KTtcblx0XHR0aGlzLiN0YXJnZXRzQnlFbWl0dGVkUGF0aC5zZXQodGhpcy5lbWl0dGVkS2V5KGZpbGUpLCB0YXJnZXQpO1xuXHRcdHRoaXMuI2hvc3QuaW52YWxpZGF0ZVNvdXJjZUZpbGUoZmlsZS5mdWxsUGF0aCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZW1pdChcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0aWYgKHRoaXMuI2hvc3QuaGFzSW52YWxpZGF0ZWQoKSkge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbSA9IHRoaXMuI2hvc3QuY3JlYXRlUHJvZ3JhbShcblx0XHRcdFx0dGhpcy4jYWxsRmlsZXMsXG5cdFx0XHRcdHRoaXMuI2NvbXBpbGVyT3B0aW9ucyxcblx0XHRcdFx0dGhpcy4jY29tcGlsZXJIb3N0LFxuXHRcdFx0XHR0aGlzLiNwcm9ncmFtLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKGZpbGVGaWx0ZXIgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZW1pdEFsbChvbk91dHB1dCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVtaXRGaWx0ZXJlZChmaWxlRmlsdGVyLCBvbk91dHB1dCk7XG5cdH1cblxuXHRwcml2YXRlIGVtaXRBbGwob25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkKTogVHJhbnNmb3JtUmVzcG9uc2VbXSB7XG5cdFx0Y29uc3QgcmVzcG9uc2VzOiBUcmFuc2Zvcm1SZXNwb25zZVtdID0gW107XG5cdFx0dGhpcy4jcHJvZ3JhbS5lbWl0KHVuZGVmaW5lZCwgKGVtaXR0ZWRQYXRoLCBjb250ZW50KSA9PiB7XG5cdFx0XHRpZiAoIWVtaXR0ZWRQYXRoLmVuZHNXaXRoKFwiLmQudHNcIikpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSB0aGlzLnRvVHJhbnNmb3JtUmVzcG9uc2UoZW1pdHRlZFBhdGgsIGNvbnRlbnQpO1xuXHRcdFx0cmVzcG9uc2VzLnB1c2gocmVzcG9uc2UpO1xuXHRcdFx0b25PdXRwdXQ/LihyZXNwb25zZSk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHJlc3BvbnNlcztcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgZW1pdEZpbHRlcmVkKFxuXHRcdGZpbGVGaWx0ZXI6IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0XHRvbk91dHB1dD86IChyZXNwb25zZTogVHJhbnNmb3JtUmVzcG9uc2UpID0+IHZvaWQsXG5cdCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdGNvbnN0IGZpbGVzID0gYXdhaXQgUHJvbWlzZS5hbGwodGhpcy4jZ3JvdXAubWFwKCh7IHByb2plY3QgfSkgPT4gZmlsZUZpbHRlcihwcm9qZWN0KSkpO1xuXHRcdGNvbnN0IHNvdXJjZUZpbGVzID0gZmlsZXNcblx0XHRcdC5mbGF0KClcblx0XHRcdC5tYXAoKGZpbGUpID0+IHRoaXMuI3Byb2dyYW0uZ2V0U291cmNlRmlsZShmaWxlLmZ1bGxQYXRoKSlcblx0XHRcdC5maWx0ZXIoKHNmKTogc2YgaXMgdHMuU291cmNlRmlsZSA9PiBzZiAhPSBudWxsKTtcblxuXHRcdGNvbnN0IHJlc3BvbnNlczogVHJhbnNmb3JtUmVzcG9uc2VbXSA9IFtdO1xuXG5cdFx0Zm9yIChjb25zdCBzb3VyY2VGaWxlIG9mIHNvdXJjZUZpbGVzKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtLmVtaXQoc291cmNlRmlsZSwgKGVtaXR0ZWRQYXRoLCBjb250ZW50KSA9PiB7XG5cdFx0XHRcdGlmICghZW1pdHRlZFBhdGguZW5kc1dpdGgoXCIuZC50c1wiKSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCByZXNwb25zZSA9IHRoaXMudG9UcmFuc2Zvcm1SZXNwb25zZShlbWl0dGVkUGF0aCwgY29udGVudCk7XG5cdFx0XHRcdHJlc3BvbnNlcy5wdXNoKHJlc3BvbnNlKTtcblx0XHRcdFx0b25PdXRwdXQ/LihyZXNwb25zZSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzcG9uc2VzO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1RyYW5zZm9ybVJlc3BvbnNlKGVtaXR0ZWRQYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IFRyYW5zZm9ybVJlc3BvbnNlIHtcblx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLiN0YXJnZXRzQnlFbWl0dGVkUGF0aC5nZXQoZW1pdHRlZFBhdGgpO1xuXHRcdGlmICh0YXJnZXQgPT0gbnVsbCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBObyBtYXRjaGluZyBlbWlzc2lvbiB0YXJnZXQgZm9yOiAke2VtaXR0ZWRQYXRofWApO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50b1RyYW5zZm9ybVJlc3BvbnNlRnJvbVRhcmdldCh0YXJnZXQsIGNvbnRlbnQpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1RyYW5zZm9ybVJlc3BvbnNlRnJvbVRhcmdldChcblx0XHR0YXJnZXQ6IEVtaXNzaW9uVGFyZ2V0LFxuXHRcdGNvbnRlbnQ6IHN0cmluZyxcblx0KTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdGNvbnN0IHsgZmlsZSwgdHNjb25maWcsIHByb2plY3QsIG91dHB1dFBhdGgsIG91dHB1dERpciwgZHRzUmVsYXRpdmUgfSA9IHRhcmdldDtcblx0XHRyZXR1cm4gVHJhbnNmb3JtUmVzcG9uc2UuZnJvbSh7XG5cdFx0XHRmaWxlLFxuXHRcdFx0Y29uZmlnOiB0c2NvbmZpZyxcblx0XHRcdG91dGNvbWU6IFwic3VjY2Vzc1wiLFxuXHRcdFx0ZmlsZU5hbWU6IGR0c1JlbGF0aXZlLFxuXHRcdFx0Y29kZTogY29udGVudCxcblx0XHRcdHRhcmdldDogXCJ0eXBlc1wiLFxuXHRcdFx0bWVzc2FnZXM6IFtdLFxuXHRcdFx0cHJvamVjdCxcblx0XHRcdG91dHB1dERpcixcblx0XHRcdG91dHB1dFBhdGgsXG5cdFx0fSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwiVHJhY2UiLCJUcmFuc2Zvcm1SZXNwb25zZSIsIlR5cGVFbWlzc2lvblByb2dyYW0iLCJncm91cCIsImhvc3RGYWN0b3J5IiwidGFyZ2V0cyIsImJ1aWxkVGFyZ2V0TWFwcyIsImJ5RHRzUGF0aCIsImJ5RW1pdHRlZFBhdGgiLCJ0c2NvbmZpZyIsImNvbXBpbGVyT3B0aW9ucyIsImZsYXRNYXAiLCJmaWxlcyIsImNyZWF0ZUhvc3QiLCJjcmVhdGVQcm9ncmFtIiwidG9FbWlzc2lvblRhcmdldCIsImdyb3VwUHJvamVjdCIsImZpbGUiLCJvdXRCYXNlRGlyIiwiZXh0TmFtZSIsImV4dG5hbWUiLCJyZWxhdGl2ZVBhdGgiLCJkdHNSZWxhdGl2ZSIsInJlcGxhY2UiLCJSZWdFeHAiLCJvdXRwdXRQYXRoIiwiam9pbiIsInByb2plY3QiLCJvdXRwdXREaXIiLCJkaXJuYW1lIiwiZW1pdHRlZEtleSIsImZ1bGxQYXRoIiwiTWFwIiwiZ2V0T3V0RGlyIiwidGFyZ2V0Iiwic2V0IiwiYWRkRmlsZSIsImZpbmQiLCJnIiwicHVzaCIsImludmFsaWRhdGVTb3VyY2VGaWxlIiwiZW1pdCIsImZpbGVGaWx0ZXIiLCJvbk91dHB1dCIsImhhc0ludmFsaWRhdGVkIiwiZW1pdEFsbCIsImVtaXRGaWx0ZXJlZCIsInJlc3BvbnNlcyIsInVuZGVmaW5lZCIsImVtaXR0ZWRQYXRoIiwiY29udGVudCIsImVuZHNXaXRoIiwicmVzcG9uc2UiLCJ0b1RyYW5zZm9ybVJlc3BvbnNlIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInNvdXJjZUZpbGVzIiwiZmxhdCIsImdldFNvdXJjZUZpbGUiLCJmaWx0ZXIiLCJzZiIsInNvdXJjZUZpbGUiLCJnZXQiLCJFcnJvciIsInRvVHJhbnNmb3JtUmVzcG9uc2VGcm9tVGFyZ2V0IiwiZnJvbSIsImNvbmZpZyIsIm91dGNvbWUiLCJmaWxlTmFtZSIsImNvZGUiLCJtZXNzYWdlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEs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
@@ -0,0 +1,134 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ function _ts_metadata(k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ }
10
+ import { invalidateCache } from "@decohere/nexus/caching";
11
+ import { Trace } from "@decohere/nexus/diagnostics";
12
+ import { mixwith } from "@decohere/nexus/extensibility";
13
+ import { io } from "@decohere/nexus/io";
14
+ import "../extensions/project.extensions.js";
15
+ import { CachesOutputs } from "../mixins/caches-outputs.mixin.js";
16
+ import { IncrementalTransform } from "../mixins/incremental-transform.mixin.js";
17
+ import { TsProgramHost } from "./ts-program-host.js";
18
+ import { TypeEmissionProgram } from "./type-emission-program.js";
19
+ import { BuildTargets } from "../types/build-target.type.js";
20
+ /**
21
+ * Compiler option defaults applied before the user's tsconfig — the user's values override these.
22
+ *
23
+ * lib: ES2022 — avoids loading lib.dom.d.ts (1.8 MB) which TS includes by default
24
+ * when no `lib` is set. Backend packages have no use for browser APIs.
25
+ *
26
+ * types: [] — disables ambient @types auto-discovery. Without this, TS scans
27
+ * every @types/* package in the node_modules hierarchy; in a monorepo that can
28
+ * pull in dozens of unrelated packages. Explicitly imported types still resolve
29
+ * normally; only ambient globals (e.g. Buffer, process) are suppressed — add
30
+ * `types: ["node"]` to a project's tsconfig to restore them.
31
+ */ export const DEFAULT_TYPE_EMITTER_OPTIONS = {
32
+ lib: [
33
+ "lib.es2022.d.ts"
34
+ ],
35
+ types: [],
36
+ skipLibCheck: true
37
+ };
38
+ /**
39
+ * Compiler options that TypeEmitter always enforces regardless of what the user's
40
+ * tsconfig specifies. Applied after the user spread so they cannot be overridden.
41
+ */ export const REQUIRED_TYPE_EMITTER_OPTIONS = {
42
+ emitDeclarationOnly: true,
43
+ declaration: true
44
+ };
45
+ export class TypeEmitter extends mixwith(CachesOutputs, IncrementalTransform) {
46
+ buildTargets = [
47
+ BuildTargets.types
48
+ ];
49
+ /** Prepared programs from init(), consumed once by the next transformProject() call. */ #programs;
50
+ #host = new TsProgramHost();
51
+ /**
52
+ * Phase 1: fetch files, create TypeScript programs sequentially.
53
+ * Called before transformProject() so that the heavy createProgram work
54
+ * completes before other transformers (SWC/Rayon) start running in parallel.
55
+ */ async init(projectArrayLike, _filter) {
56
+ if (this.#programs == null) {
57
+ this.#programs = await this.preparePrograms(projectArrayLike);
58
+ }
59
+ }
60
+ async transformProject(projectArrayLike, filter, onOutput) {
61
+ // Consume prepared state from init() if available; otherwise do full setup
62
+ // (e.g. watch-mode single-file rebuilds that skip the init phase).
63
+ const programs = this.#programs ?? await this.preparePrograms(projectArrayLike);
64
+ this.#programs = programs;
65
+ if (programs.length === 0) {
66
+ return [];
67
+ }
68
+ const responses = (await Promise.all(programs.map((program)=>program.emit(filter, onOutput)))).flat();
69
+ this.cacheOutputs(responses);
70
+ return responses;
71
+ }
72
+ async preparePrograms(projectArrayLike) {
73
+ const allProjects = Array.isArray(projectArrayLike) ? projectArrayLike : [
74
+ projectArrayLike
75
+ ];
76
+ const projects = allProjects.filter((proj)=>proj.getForgeConfiguration().targets.includes(BuildTargets.types));
77
+ if (projects.length === 0) {
78
+ return [];
79
+ }
80
+ // Pre-fetch all files and tsconfigs in parallel across all projects
81
+ const projectData = await Promise.all(projects.map(async (proj)=>({
82
+ project: proj,
83
+ files: await proj.getAllFiles(),
84
+ tsconfig: await proj.getTsConfig()
85
+ })));
86
+ // Group projects by the resolved compiler options that affect the compiler
87
+ // host (lib loading, module resolution, path aliases). Projects sharing the
88
+ // same resolved values get one shared host AND one shared program — all their
89
+ // files are compiled together, matching v1's single-program approach which
90
+ // avoids re-parsing lib/node_modules .d.ts files per project.
91
+ const groups = Map.groupBy(projectData, ({ tsconfig })=>this.#host.hostKey(tsconfig.compilerOptions));
92
+ return [
93
+ ...groups.values()
94
+ ].map((group)=>new TypeEmissionProgram(group, this.#host));
95
+ }
96
+ async onIncrementalFileEvent(evt) {
97
+ const { file, project } = evt;
98
+ if (evt.eventName === io.WatchEvents.unlink) {
99
+ this.deleteCachedOutputs(file.fullPath);
100
+ return [];
101
+ }
102
+ if (!project.isSourceFile(file)) {
103
+ return [];
104
+ }
105
+ if (evt.eventName === io.WatchEvents.add) {
106
+ this.#programs?.forEach((p)=>{
107
+ p.addFile(file, project);
108
+ });
109
+ } else {
110
+ this.invalidateReadFileCache(file.fullPath);
111
+ this.#host.invalidateSourceFile(file.fullPath);
112
+ }
113
+ return this.transformProject(project, ()=>Promise.resolve([
114
+ file
115
+ ]));
116
+ }
117
+ invalidateReadFileCache(_path) {}
118
+ }
119
+ _ts_decorate([
120
+ invalidateCache(TsProgramHost.prototype.readFileFromDisk, {
121
+ name: "FILE_CONTENT",
122
+ keyFn: (...args)=>args[0]
123
+ }),
124
+ _ts_metadata("design:type", Function),
125
+ _ts_metadata("design:paramtypes", [
126
+ String
127
+ ]),
128
+ _ts_metadata("design:returntype", void 0)
129
+ ], TypeEmitter.prototype, "invalidateReadFileCache", null);
130
+ TypeEmitter = _ts_decorate([
131
+ Trace
132
+ ], TypeEmitter);
133
+
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3NlcnZpY2VzL3R5cGUtZW1pdHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFByb2plY3QsIFByb2plY3RGaWxlRXZlbnQgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IGludmFsaWRhdGVDYWNoZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2FjaGluZ1wiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgeyBtaXh3aXRoIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB7IGlvIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHR5cGUgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcbmltcG9ydCBcIi4uL2V4dGVuc2lvbnMvcHJvamVjdC5leHRlbnNpb25zLmpzXCI7XG5pbXBvcnQgeyBDYWNoZXNPdXRwdXRzIH0gZnJvbSBcIi4uL21peGlucy9jYWNoZXMtb3V0cHV0cy5taXhpbi5qc1wiO1xuaW1wb3J0IHsgSW5jcmVtZW50YWxUcmFuc2Zvcm0gfSBmcm9tIFwiLi4vbWl4aW5zL2luY3JlbWVudGFsLXRyYW5zZm9ybS5taXhpbi5qc1wiO1xuaW1wb3J0IHsgVHNQcm9ncmFtSG9zdCB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cy1wcm9ncmFtLWhvc3QuanNcIjtcbmltcG9ydCB7XG5cdFR5cGVFbWlzc2lvblByb2dyYW0sXG5cdHR5cGUgVHlwZVByb2dyYW1Qcm9qZWN0LFxufSBmcm9tIFwiLi4vc2VydmljZXMvdHlwZS1lbWlzc2lvbi1wcm9ncmFtLmpzXCI7XG5pbXBvcnQgeyB0eXBlIEJ1aWxkVGFyZ2V0LCBCdWlsZFRhcmdldHMgfSBmcm9tIFwiLi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNmb3JtUmVzcG9uc2UgfSBmcm9tIFwiLi4vdHlwZXMvdHJhbnNmb3JtLXJlc3BvbnNlLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybWVyIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybWVyLnR5cGUuanNcIjtcblxuLyoqXG4gKiBDb21waWxlciBvcHRpb24gZGVmYXVsdHMgYXBwbGllZCBiZWZvcmUgdGhlIHVzZXIncyB0c2NvbmZpZyDigJQgdGhlIHVzZXIncyB2YWx1ZXMgb3ZlcnJpZGUgdGhlc2UuXG4gKlxuICogbGliOiBFUzIwMjIg4oCUIGF2b2lkcyBsb2FkaW5nIGxpYi5kb20uZC50cyAoMS44IE1CKSB3aGljaCBUUyBpbmNsdWRlcyBieSBkZWZhdWx0XG4gKiB3aGVuIG5vIGBsaWJgIGlzIHNldC4gQmFja2VuZCBwYWNrYWdlcyBoYXZlIG5vIHVzZSBmb3IgYnJvd3NlciBBUElzLlxuICpcbiAqIHR5cGVzOiBbXSDigJQgZGlzYWJsZXMgYW1iaWVudCBAdHlwZXMgYXV0by1kaXNjb3ZlcnkuIFdpdGhvdXQgdGhpcywgVFMgc2NhbnNcbiAqIGV2ZXJ5IEB0eXBlcy8qIHBhY2thZ2UgaW4gdGhlIG5vZGVfbW9kdWxlcyBoaWVyYXJjaHk7IGluIGEgbW9ub3JlcG8gdGhhdCBjYW5cbiAqIHB1bGwgaW4gZG96ZW5zIG9mIHVucmVsYXRlZCBwYWNrYWdlcy4gRXhwbGljaXRseSBpbXBvcnRlZCB0eXBlcyBzdGlsbCByZXNvbHZlXG4gKiBub3JtYWxseTsgb25seSBhbWJpZW50IGdsb2JhbHMgKGUuZy4gQnVmZmVyLCBwcm9jZXNzKSBhcmUgc3VwcHJlc3NlZCDigJQgYWRkXG4gKiBgdHlwZXM6IFtcIm5vZGVcIl1gIHRvIGEgcHJvamVjdCdzIHRzY29uZmlnIHRvIHJlc3RvcmUgdGhlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFlQRV9FTUlUVEVSX09QVElPTlM6IFJlYWRvbmx5PHRzLkNvbXBpbGVyT3B0aW9ucz4gPSB7XG5cdGxpYjogW1wibGliLmVzMjAyMi5kLnRzXCJdLFxuXHR0eXBlczogW10sXG5cdHNraXBMaWJDaGVjazogdHJ1ZSxcbn07XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9ucyB0aGF0IFR5cGVFbWl0dGVyIGFsd2F5cyBlbmZvcmNlcyByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHVzZXInc1xuICogdHNjb25maWcgc3BlY2lmaWVzLiBBcHBsaWVkIGFmdGVyIHRoZSB1c2VyIHNwcmVhZCBzbyB0aGV5IGNhbm5vdCBiZSBvdmVycmlkZGVuLlxuICovXG5leHBvcnQgY29uc3QgUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlM6IFJlYWRvbmx5PHRzLkNvbXBpbGVyT3B0aW9ucz4gPSB7XG5cdGVtaXREZWNsYXJhdGlvbk9ubHk6IHRydWUsXG5cdGRlY2xhcmF0aW9uOiB0cnVlLFxufTtcblxuQFRyYWNlXG5leHBvcnQgY2xhc3MgVHlwZUVtaXR0ZXJcblx0ZXh0ZW5kcyBtaXh3aXRoKENhY2hlc091dHB1dHMsIEluY3JlbWVudGFsVHJhbnNmb3JtKVxuXHRpbXBsZW1lbnRzIFRyYW5zZm9ybWVyXG57XG5cdHB1YmxpYyBidWlsZFRhcmdldHM6IEJ1aWxkVGFyZ2V0W10gPSBbQnVpbGRUYXJnZXRzLnR5cGVzXTtcblx0LyoqIFByZXBhcmVkIHByb2dyYW1zIGZyb20gaW5pdCgpLCBjb25zdW1lZCBvbmNlIGJ5IHRoZSBuZXh0IHRyYW5zZm9ybVByb2plY3QoKSBjYWxsLiAqL1xuXHQjcHJvZ3JhbXM6IFR5cGVFbWlzc2lvblByb2dyYW1bXSB8IHVuZGVmaW5lZDtcblx0I2hvc3QgPSBuZXcgVHNQcm9ncmFtSG9zdCgpO1xuXG5cdC8qKlxuXHQgKiBQaGFzZSAxOiBmZXRjaCBmaWxlcywgY3JlYXRlIFR5cGVTY3JpcHQgcHJvZ3JhbXMgc2VxdWVudGlhbGx5LlxuXHQgKiBDYWxsZWQgYmVmb3JlIHRyYW5zZm9ybVByb2plY3QoKSBzbyB0aGF0IHRoZSBoZWF2eSBjcmVhdGVQcm9ncmFtIHdvcmtcblx0ICogY29tcGxldGVzIGJlZm9yZSBvdGhlciB0cmFuc2Zvcm1lcnMgKFNXQy9SYXlvbikgc3RhcnQgcnVubmluZyBpbiBwYXJhbGxlbC5cblx0ICovXG5cdHB1YmxpYyBhc3luYyBpbml0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0X2ZpbHRlcj86IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKHRoaXMuI3Byb2dyYW1zID09IG51bGwpIHtcblx0XHRcdHRoaXMuI3Byb2dyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlUHJvZ3JhbXMocHJvamVjdEFycmF5TGlrZSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGFzeW5jIHRyYW5zZm9ybVByb2plY3QoXG5cdFx0cHJvamVjdEFycmF5TGlrZTogUHJvamVjdFtdIHwgUHJvamVjdCxcblx0XHRmaWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdFx0b25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkLFxuXHQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+IHtcblx0XHQvLyBDb25zdW1lIHByZXBhcmVkIHN0YXRlIGZyb20gaW5pdCgpIGlmIGF2YWlsYWJsZTsgb3RoZXJ3aXNlIGRvIGZ1bGwgc2V0dXBcblx0XHQvLyAoZS5nLiB3YXRjaC1tb2RlIHNpbmdsZS1maWxlIHJlYnVpbGRzIHRoYXQgc2tpcCB0aGUgaW5pdCBwaGFzZSkuXG5cdFx0Y29uc3QgcHJvZ3JhbXMgPSB0aGlzLiNwcm9ncmFtcyA/PyAoYXdhaXQgdGhpcy5wcmVwYXJlUHJvZ3JhbXMocHJvamVjdEFycmF5TGlrZSkpO1xuXHRcdHRoaXMuI3Byb2dyYW1zID0gcHJvZ3JhbXM7XG5cblx0XHRpZiAocHJvZ3JhbXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmVzcG9uc2VzID0gKFxuXHRcdFx0YXdhaXQgUHJvbWlzZS5hbGwocHJvZ3JhbXMubWFwKChwcm9ncmFtKSA9PiBwcm9ncmFtLmVtaXQoZmlsdGVyLCBvbk91dHB1dCkpKVxuXHRcdCkuZmxhdCgpO1xuXHRcdHRoaXMuY2FjaGVPdXRwdXRzKHJlc3BvbnNlcyk7XG5cdFx0cmV0dXJuIHJlc3BvbnNlcztcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgcHJlcGFyZVByb2dyYW1zKFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdCk6IFByb21pc2U8VHlwZUVtaXNzaW9uUHJvZ3JhbVtdPiB7XG5cdFx0Y29uc3QgYWxsUHJvamVjdHMgPSBBcnJheS5pc0FycmF5KHByb2plY3RBcnJheUxpa2UpXG5cdFx0XHQ/IHByb2plY3RBcnJheUxpa2Vcblx0XHRcdDogW3Byb2plY3RBcnJheUxpa2VdO1xuXHRcdGNvbnN0IHByb2plY3RzID0gYWxsUHJvamVjdHMuZmlsdGVyKChwcm9qKSA9PlxuXHRcdFx0cHJvai5nZXRGb3JnZUNvbmZpZ3VyYXRpb24oKS50YXJnZXRzLmluY2x1ZGVzKEJ1aWxkVGFyZ2V0cy50eXBlcyksXG5cdFx0KTtcblx0XHRpZiAocHJvamVjdHMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXG5cdFx0Ly8gUHJlLWZldGNoIGFsbCBmaWxlcyBhbmQgdHNjb25maWdzIGluIHBhcmFsbGVsIGFjcm9zcyBhbGwgcHJvamVjdHNcblx0XHRjb25zdCBwcm9qZWN0RGF0YTogVHlwZVByb2dyYW1Qcm9qZWN0W10gPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdHByb2plY3RzLm1hcChhc3luYyAocHJvaikgPT4gKHtcblx0XHRcdFx0cHJvamVjdDogcHJvaixcblx0XHRcdFx0ZmlsZXM6IGF3YWl0IHByb2ouZ2V0QWxsRmlsZXMoKSxcblx0XHRcdFx0dHNjb25maWc6IGF3YWl0IHByb2ouZ2V0VHNDb25maWcoKSxcblx0XHRcdH0pKSxcblx0XHQpO1xuXG5cdFx0Ly8gR3JvdXAgcHJvamVjdHMgYnkgdGhlIHJlc29sdmVkIGNvbXBpbGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNvbXBpbGVyXG5cdFx0Ly8gaG9zdCAobGliIGxvYWRpbmcsIG1vZHVsZSByZXNvbHV0aW9uLCBwYXRoIGFsaWFzZXMpLiBQcm9qZWN0cyBzaGFyaW5nIHRoZVxuXHRcdC8vIHNhbWUgcmVzb2x2ZWQgdmFsdWVzIGdldCBvbmUgc2hhcmVkIGhvc3QgQU5EIG9uZSBzaGFyZWQgcHJvZ3JhbSDigJQgYWxsIHRoZWlyXG5cdFx0Ly8gZmlsZXMgYXJlIGNvbXBpbGVkIHRvZ2V0aGVyLCBtYXRjaGluZyB2MSdzIHNpbmdsZS1wcm9ncmFtIGFwcHJvYWNoIHdoaWNoXG5cdFx0Ly8gYXZvaWRzIHJlLXBhcnNpbmcgbGliL25vZGVfbW9kdWxlcyAuZC50cyBmaWxlcyBwZXIgcHJvamVjdC5cblx0XHRjb25zdCBncm91cHMgPSBNYXAuZ3JvdXBCeShwcm9qZWN0RGF0YSwgKHsgdHNjb25maWcgfSkgPT5cblx0XHRcdHRoaXMuI2hvc3QuaG9zdEtleSh0c2NvbmZpZy5jb21waWxlck9wdGlvbnMpLFxuXHRcdCk7XG5cblx0XHRyZXR1cm4gWy4uLmdyb3Vwcy52YWx1ZXMoKV0ubWFwKChncm91cCkgPT4gbmV3IFR5cGVFbWlzc2lvblByb2dyYW0oZ3JvdXAsIHRoaXMuI2hvc3QpKTtcblx0fVxuXG5cdHByb3RlY3RlZCBhc3luYyBvbkluY3JlbWVudGFsRmlsZUV2ZW50KGV2dDogUHJvamVjdEZpbGVFdmVudCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdGNvbnN0IHsgZmlsZSwgcHJvamVjdCB9ID0gZXZ0O1xuXHRcdGlmIChldnQuZXZlbnROYW1lID09PSBpby5XYXRjaEV2ZW50cy51bmxpbmspIHtcblx0XHRcdHRoaXMuZGVsZXRlQ2FjaGVkT3V0cHV0cyhmaWxlLmZ1bGxQYXRoKTtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdFx0aWYgKCFwcm9qZWN0LmlzU291cmNlRmlsZShmaWxlKSkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRpZiAoZXZ0LmV2ZW50TmFtZSA9PT0gaW8uV2F0Y2hFdmVudHMuYWRkKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcz8uZm9yRWFjaCgocCkgPT4ge1xuXHRcdFx0XHRwLmFkZEZpbGUoZmlsZSwgcHJvamVjdCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5pbnZhbGlkYXRlUmVhZEZpbGVDYWNoZShmaWxlLmZ1bGxQYXRoKTtcblx0XHRcdHRoaXMuI2hvc3QuaW52YWxpZGF0ZVNvdXJjZUZpbGUoZmlsZS5mdWxsUGF0aCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnRyYW5zZm9ybVByb2plY3QocHJvamVjdCwgKCkgPT4gUHJvbWlzZS5yZXNvbHZlKFtmaWxlXSkpO1xuXHR9XG5cblx0QGludmFsaWRhdGVDYWNoZShUc1Byb2dyYW1Ib3N0LnByb3RvdHlwZS5yZWFkRmlsZUZyb21EaXNrLCB7XG5cdFx0bmFtZTogXCJGSUxFX0NPTlRFTlRcIixcblx0XHRrZXlGbjogKC4uLmFyZ3MpID0+IGFyZ3NbMF0gYXMgc3RyaW5nLFxuXHR9KVxuXHRwcml2YXRlIGludmFsaWRhdGVSZWFkRmlsZUNhY2hlKF9wYXRoOiBzdHJpbmcpOiB2b2lkIHt9XG59XG4iXSwibmFtZXMiOlsiaW52YWxpZGF0ZUNhY2hlIiwiVHJhY2UiLCJtaXh3aXRoIiwiaW8iLCJDYWNoZXNPdXRwdXRzIiwiSW5jcmVtZW50YWxUcmFuc2Zvcm0iLCJUc1Byb2dyYW1Ib3N0IiwiVHlwZUVtaXNzaW9uUHJvZ3JhbSIsIkJ1aWxkVGFyZ2V0cyIsIkRFRkFVTFRfVFlQRV9FTUlUVEVSX09QVElPTlMiLCJsaWIiLCJ0eXBlcyIsInNraXBMaWJDaGVjayIsIlJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TIiwiZW1pdERlY2xhcmF0aW9uT25seSIsImRlY2xhcmF0aW9uIiwiVHlwZUVtaXR0ZXIiLCJidWlsZFRhcmdldHMiLCJpbml0IiwicHJvamVjdEFycmF5TGlrZSIsIl9maWx0ZXIiLCJwcmVwYXJlUHJvZ3JhbXMiLCJ0cmFuc2Zvcm1Qcm9qZWN0IiwiZmlsdGVyIiwib25PdXRwdXQiLCJwcm9ncmFtcyIsImxlbmd0aCIsInJlc3BvbnNlcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJwcm9ncmFtIiwiZW1pdCIsImZsYXQiLCJjYWNoZU91dHB1dHMiLCJhbGxQcm9qZWN0cyIsIkFycmF5IiwiaXNBcnJheSIsInByb2plY3RzIiwicHJvaiIsImdldEZvcmdlQ29uZmlndXJhdGlvbiIsInRhcmdldHMiLCJpbmNsdWRlcyIsInByb2plY3REYXRhIiwicHJvamVjdCIsImZpbGVzIiwiZ2V0QWxsRmlsZXMiLCJ0c2NvbmZpZyIsImdldFRzQ29uZmlnIiwiZ3JvdXBzIiwiTWFwIiwiZ3JvdXBCeSIsImhvc3RLZXkiLCJjb21waWxlck9wdGlvbnMiLCJ2YWx1ZXMiLCJncm91cCIsIm9uSW5jcmVtZW50YWxGaWxlRXZlbnQiLCJldnQiLCJmaWxlIiwiZXZlbnROYW1lIiwiV2F0Y2hFdmVudHMiLCJ1bmxpbmsiLCJkZWxldGVDYWNoZWRPdXRwdXRzIiwiZnVsbFBhdGgiLCJpc1NvdXJjZUZpbGUiLCJhZGQiLCJmb3JFYWNoIiwicCIsImFkZEZpbGUiLCJpbnZhbGlkYXRlUmVhZEZpbGVDYWNoZSIsImludmFsaWRhdGVTb3VyY2VGaWxlIiwicmVzb2x2ZSIsIl9wYXRoIiwicHJvdG90eXBlIiwicmVhZEZpbGVGcm9tRGlzayIsIm5hbWUiLCJrZXlGbiIsImFyZ3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLFNBQVNBLGVBQWUsUUFBUSwwQkFBMEI7QUFDMUQsU0FBU0MsS0FBSyxRQUFRLDhCQUE4QjtBQUNwRCxTQUFTQyxPQUFPLFFBQVEsZ0NBQWdDO0FBRXhELFNBQVNDLEVBQUUsUUFBUSxxQkFBcUI7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
@@ -0,0 +1,7 @@
1
+ export const BuildTargets = {
2
+ commonjs: "commonjs",
3
+ es6: "es6",
4
+ types: "types"
5
+ };
6
+
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCdWlsZFRhcmdldHMgPSB7XG5cdGNvbW1vbmpzOiBcImNvbW1vbmpzXCIsXG5cdGVzNjogXCJlczZcIixcblx0dHlwZXM6IFwidHlwZXNcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXQ+O1xuXG5leHBvcnQgdHlwZSBCdWlsZFRhcmdldCA9IFwiZXM2XCIgfCBcImNvbW1vbmpzXCIgfCBcInR5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIFRyYW5zcGlsZVRhcmdldCA9IEV4Y2x1ZGU8QnVpbGRUYXJnZXQsIFwidHlwZXNcIj47XG4iXSwibmFtZXMiOlsiQnVpbGRUYXJnZXRzIiwiY29tbW9uanMiLCJlczYiLCJ0eXBlcyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNQSxlQUFlO0lBQzNCQyxVQUFVO0lBQ1ZDLEtBQUs7SUFDTEMsT0FBTztBQUNSLEVBQTZDIn0=
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL2NvbmZpZ3VyYXRpb24udHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgQnVpbGRUYXJnZXQgfSBmcm9tIFwiLi9idWlsZC10YXJnZXQudHlwZS5qc1wiO1xuXG5leHBvcnQgdHlwZSBGb3JnZUNvbmZpZ3VyYXRpb24gPSBDb25maWd1cmF0aW9uICYge1xuXHR0YXJnZXRzOiBCdWlsZFRhcmdldFtdO1xuXHRhbGlhc1BhdGhzPzogYm9vbGVhbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsV0FHRSJ9
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL2RlcGVuZGVuY3kudHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXN1bHRTdGF0dXMgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuXG5leHBvcnQgdHlwZSBQYWNrYWdlID0ge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHZlcnNpb24/OiBzdHJpbmc7XG5cdGlzSW50ZXJuYWw/OiBib29sZWFuO1xuXHRpc0Rldj86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZERlcGVuZGVuY3kgPVxuXHR8IHsgbmFtZTogc3RyaW5nOyB2ZXJzaW9uOiBzdHJpbmc7IGludGVybmFsOiBib29sZWFuOyBtaXNzaW5nOiBmYWxzZTsgaXNEZXY6IGJvb2xlYW4gfVxuXHR8IHsgbmFtZTogc3RyaW5nOyB2ZXJzaW9uOiB1bmRlZmluZWQ7IGludGVybmFsOiB1bmRlZmluZWQ7IG1pc3Npbmc6IHRydWU7IGlzRGV2OiBmYWxzZSB9O1xuXG5leHBvcnQgdHlwZSBTeW5jcHJvamVjdFJlc3VsdCA9IFJlc3VsdFN0YXR1cyAmIHtcblx0cHJvamVjdE5hbWU6IHN0cmluZztcblx0ZHJpZnQ/OiBEcmlmdEVudHJ5IHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIERyaWZ0RW50cnkgPSB7XG5cdG9yaWdpbmFsOiB7IGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsgZGV2RGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH07XG5cdHVwZGF0ZWQ6IHsgZGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyBkZXZEZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfTtcbn07XG5cbmV4cG9ydCB0eXBlIERlcGVuZGVuY3lXYXJuaW5nID0ge1xuXHRmaWxlOiBzdHJpbmc7XG5cdGxpbmU6IG51bWJlcjtcblx0bWVzc2FnZTogc3RyaW5nO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1QkEsV0FJRSJ9
@@ -0,0 +1,7 @@
1
+ export class SwcConfig {
2
+ constructor(data = {}){
3
+ Object.assign(this, data);
4
+ }
5
+ }
6
+
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL3N3Yy1jb25maWcudHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRzY29uZmlnIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbmV4cG9ydCB0eXBlIFN3Y0NvbmZpZ09wdGlvbnMgPSB7XG5cdGFsaWFzUGF0aHM/OiBib29sZWFuO1xuXHR0c0NvbmZpZz86IFRzY29uZmlnO1xuXHR1c2VyQ29uZmlnPzogU3djQ29uZmlnO1xufTtcblxuZXhwb3J0IGNsYXNzIFN3Y0NvbmZpZyB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPFN3Y0NvbmZpZz4gPSB7fSkge1xuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJTd2NDb25maWciLCJkYXRhIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLE1BQU1BO0lBQ1osWUFBbUJDLE9BQTJCLENBQUMsQ0FBQyxDQUFFO1FBQ2pEQyxPQUFPQyxNQUFNLENBQUMsSUFBSSxFQUFFRjtJQUNyQjtBQUNEIn0=
@@ -0,0 +1,46 @@
1
+ export const TransformOutcomes = {
2
+ success: "success",
3
+ failure: "failure",
4
+ skipped: "skipped"
5
+ };
6
+ export class TransformResponse {
7
+ static Success(data) {
8
+ return new TransformResponse({
9
+ ...data,
10
+ outcome: "success"
11
+ });
12
+ }
13
+ static Error(data) {
14
+ return new TransformResponse({
15
+ ...data,
16
+ outcome: "failure"
17
+ });
18
+ }
19
+ static Skipped(data) {
20
+ return new TransformResponse({
21
+ ...data,
22
+ outcome: "skipped"
23
+ });
24
+ }
25
+ static from(data) {
26
+ return new TransformResponse({
27
+ ...data
28
+ });
29
+ }
30
+ constructor(data){
31
+ Object.assign(this, data);
32
+ }
33
+ // Properties are populated via Object.assign in the constructor.
34
+ file;
35
+ outcome;
36
+ target;
37
+ code;
38
+ fileName;
39
+ messages;
40
+ config;
41
+ project;
42
+ outputDir;
43
+ outputPath;
44
+ }
45
+
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgRmlsZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHsgQnVpbGRUYXJnZXQgfSBmcm9tIFwiLi9idWlsZC10YXJnZXQudHlwZS5qc1wiO1xuXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1PdXRjb21lID0gXCJzdWNjZXNzXCIgfCBcImZhaWx1cmVcIiB8IFwic2tpcHBlZFwiO1xuZXhwb3J0IGNvbnN0IFRyYW5zZm9ybU91dGNvbWVzID0ge1xuXHRzdWNjZXNzOiBcInN1Y2Nlc3NcIixcblx0ZmFpbHVyZTogXCJmYWlsdXJlXCIsXG5cdHNraXBwZWQ6IFwic2tpcHBlZFwiLFxufSBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgVHJhbnNmb3JtT3V0Y29tZT47XG5cbnR5cGUgVHJhbnNmb3JtUmVzcG9uc2VCYXNlID0ge1xuXHRmaWxlOiBGaWxlO1xuXHRjb25maWc6IHVua25vd247XG5cdHByb2plY3Q/OiBQcm9qZWN0O1xuXHQvKiogQWJzb2x1dGUgZGlyZWN0b3J5IHRoYXQgd2lsbCBjb250YWluIHRoZSBvdXRwdXQgZmlsZS4gUHJlLWNvbXB1dGVkIGJ5IHRoZSB0cmFuc2Zvcm1lci4gKi9cblx0b3V0cHV0RGlyPzogc3RyaW5nO1xuXHQvKiogQWJzb2x1dGUgcGF0aCBvZiB0aGUgb3V0cHV0IGZpbGUgKG91dHB1dERpciArIGZpbGVOYW1lKS4gUHJlLWNvbXB1dGVkIGJ5IHRoZSB0cmFuc2Zvcm1lci4gKi9cblx0b3V0cHV0UGF0aD86IHN0cmluZztcbn07XG5cbnR5cGUgVHJhbnNmb3JtU3VjY2VzcyA9IFRyYW5zZm9ybVJlc3BvbnNlQmFzZSAmIHtcblx0b3V0Y29tZTogXCJzdWNjZXNzXCI7XG5cdGNvZGU6IHN0cmluZztcblx0bWVzc2FnZXM/OiBzdHJpbmdbXTtcblx0dGFyZ2V0OiBCdWlsZFRhcmdldDtcblx0ZmlsZU5hbWU6IHN0cmluZztcbn07XG5cbnR5cGUgVHJhbnNmb3JtRmFpbHVyZSA9IFRyYW5zZm9ybVJlc3BvbnNlQmFzZSAmIHtcblx0b3V0Y29tZTogXCJmYWlsdXJlXCI7XG5cdG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHRhcmdldD86IEJ1aWxkVGFyZ2V0O1xuXHRmaWxlTmFtZT86IHN0cmluZztcbn07XG5cbnR5cGUgVHJhbnNmb3JtU2tpcHBlZCA9IFRyYW5zZm9ybVJlc3BvbnNlQmFzZSAmIHtcblx0b3V0Y29tZTogXCJza2lwcGVkXCI7XG5cdG1lc3NhZ2VzPzogc3RyaW5nIHwgc3RyaW5nW107XG59O1xuXG50eXBlIFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxUIGV4dGVuZHMgVHJhbnNmb3JtT3V0Y29tZSA9IFRyYW5zZm9ybU91dGNvbWU+ID0gVCBleHRlbmRzIFwic3VjY2Vzc1wiXG5cdD8gVHJhbnNmb3JtU3VjY2Vzc1xuXHQ6IFQgZXh0ZW5kcyBcInNraXBwZWRcIlxuXHRcdD8gVHJhbnNmb3JtU2tpcHBlZFxuXHRcdDogVHJhbnNmb3JtRmFpbHVyZTtcblxuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybVJlc3BvbnNlIHtcblx0cHVibGljIHN0YXRpYyBTdWNjZXNzKGRhdGE6IE9taXQ8VHJhbnNmb3JtUmVzcG9uc2VEYXRhPFwic3VjY2Vzc1wiPiwgXCJvdXRjb21lXCI+KSB7XG5cdFx0cmV0dXJuIG5ldyBUcmFuc2Zvcm1SZXNwb25zZSh7IC4uLmRhdGEsIG91dGNvbWU6IFwic3VjY2Vzc1wiIGFzIGNvbnN0IH0pO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBFcnJvcihkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcImZhaWx1cmVcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcImZhaWx1cmVcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgU2tpcHBlZChkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcInNraXBwZWRcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcInNraXBwZWRcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgZnJvbShkYXRhOiBUcmFuc2Zvcm1SZXNwb25zZURhdGEpOiBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdFx0cmV0dXJuIG5ldyBUcmFuc2Zvcm1SZXNwb25zZSh7IC4uLmRhdGEgfSBhcyBUcmFuc2Zvcm1SZXNwb25zZURhdGEpO1xuXHR9XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKGRhdGE/OiBQYXJ0aWFsPFRyYW5zZm9ybVJlc3BvbnNlRGF0YT4pIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuXHR9XG5cblx0Ly8gUHJvcGVydGllcyBhcmUgcG9wdWxhdGVkIHZpYSBPYmplY3QuYXNzaWduIGluIHRoZSBjb25zdHJ1Y3Rvci5cblx0cHVibGljIHJlYWRvbmx5IGZpbGUhOiBGaWxlO1xuXHRwdWJsaWMgcmVhZG9ubHkgb3V0Y29tZSE6IFRyYW5zZm9ybU91dGNvbWU7XG5cdHB1YmxpYyByZWFkb25seSB0YXJnZXQ/OiBCdWlsZFRhcmdldDtcblx0cHVibGljIHJlYWRvbmx5IGNvZGUhOiBzdHJpbmc7XG5cdHB1YmxpYyByZWFkb25seSBmaWxlTmFtZT86IHN0cmluZztcblx0cHVibGljIHJlYWRvbmx5IG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHB1YmxpYyByZWFkb25seSBjb25maWc6IHVua25vd247XG5cdHB1YmxpYyByZWFkb25seSBwcm9qZWN0PzogUHJvamVjdDtcblx0cHVibGljIHJlYWRvbmx5IG91dHB1dERpcj86IHN0cmluZztcblx0cHVibGljIHJlYWRvbmx5IG91dHB1dFBhdGg/OiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiVHJhbnNmb3JtT3V0Y29tZXMiLCJzdWNjZXNzIiwiZmFpbHVyZSIsInNraXBwZWQiLCJUcmFuc2Zvcm1SZXNwb25zZSIsIlN1Y2Nlc3MiLCJkYXRhIiwib3V0Y29tZSIsIkVycm9yIiwiU2tpcHBlZCIsImZyb20iLCJPYmplY3QiLCJhc3NpZ24iLCJmaWxlIiwidGFyZ2V0IiwiY29kZSIsImZpbGVOYW1lIiwibWVzc2FnZXMiLCJjb25maWciLCJwcm9qZWN0Iiwib3V0cHV0RGlyIiwib3V0cHV0UGF0aCJdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxNQUFNQSxvQkFBb0I7SUFDaENDLFNBQVM7SUFDVEMsU0FBUztJQUNUQyxTQUFTO0FBQ1YsRUFBNkM7QUFzQzdDLE9BQU8sTUFBTUM7SUFDWixPQUFjQyxRQUFRQyxJQUF1RCxFQUFFO1FBQzlFLE9BQU8sSUFBSUYsa0JBQWtCO1lBQUUsR0FBR0UsSUFBSTtZQUFFQyxTQUFTO1FBQW1CO0lBQ3JFO0lBRUEsT0FBY0MsTUFBTUYsSUFBdUQsRUFBRTtRQUM1RSxPQUFPLElBQUlGLGtCQUFrQjtZQUFFLEdBQUdFLElBQUk7WUFBRUMsU0FBUztRQUFtQjtJQUNyRTtJQUVBLE9BQWNFLFFBQVFILElBQXVELEVBQUU7UUFDOUUsT0FBTyxJQUFJRixrQkFBa0I7WUFBRSxHQUFHRSxJQUFJO1lBQUVDLFNBQVM7UUFBbUI7SUFDckU7SUFFQSxPQUFjRyxLQUFLSixJQUEyQixFQUFxQjtRQUNsRSxPQUFPLElBQUlGLGtCQUFrQjtZQUFFLEdBQUdFLElBQUk7UUFBQztJQUN4QztJQUVBLFlBQW1CQSxJQUFxQyxDQUFFO1FBQ3pESyxPQUFPQyxNQUFNLENBQUMsSUFBSSxFQUFFTjtJQUNyQjtJQUVBLGlFQUFpRTtJQUNqRE8sS0FBWTtJQUNaTixRQUEyQjtJQUMzQk8sT0FBcUI7SUFDckJDLEtBQWM7SUFDZEMsU0FBa0I7SUFDbEJDLFNBQW9CO0lBQ3BCQyxPQUFnQjtJQUNoQkMsUUFBa0I7SUFDbEJDLFVBQW1CO0lBQ25CQyxXQUFvQjtBQUNyQyJ9
@@ -0,0 +1,3 @@
1
+ export const TransformerKey = Symbol("TransformerKey");
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL3RyYW5zZm9ybWVyLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgRmlsZUV4IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB0eXBlIHsgQnVpbGRUYXJnZXQgfSBmcm9tIFwiLi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNmb3JtUmVzcG9uc2UgfSBmcm9tIFwiLi90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwuanNcIjtcblxuZXhwb3J0IHR5cGUgRmlsZUV2ZW50ID1cblx0fCB7IHR5cGU6IFwiY2hhbmdlZFwiIHwgXCJhZGRlZFwiOyBmaWxlOiBGaWxlRXg7IHByb2plY3Q/OiBQcm9qZWN0IH1cblx0fCB7IHR5cGU6IFwiZGVsZXRlZFwiOyBmaWxlOiBGaWxlRXg7IHByb2plY3Q6IFByb2plY3QgfTtcblxuZXhwb3J0IGNvbnN0IFRyYW5zZm9ybWVyS2V5ID0gU3ltYm9sKFwiVHJhbnNmb3JtZXJLZXlcIik7XG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZm9ybWVyIHtcblx0cmVhZG9ubHkgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdO1xuXG5cdC8qKlxuXHQgKiBPcHRpb25hbCBwcmUtYnVpbGQgcGhhc2UgdGhhdCBydW5zIHNlcXVlbnRpYWxseSBiZWZvcmUgYWxsIHRyYW5zZm9ybWVycydcblx0ICoge0BsaW5rIHRyYW5zZm9ybVByb2plY3R9IGNhbGxzLiBVc2UgZm9yIGV4cGVuc2l2ZSBDUFUtYm91bmQgc2V0dXAgKGUuZy5cblx0ICogVHlwZVNjcmlwdCBjcmVhdGVQcm9ncmFtKSB0aGF0IG11c3Qgbm90IGNvbXBldGUgd2l0aCBvdGhlciB0cmFuc2Zvcm1lcnMnXG5cdCAqIHBhcmFsbGVsIHdvcmtsb2Fkcy5cblx0ICovXG5cdGluaXQ/KFxuXHRcdHByb2plY3RzOiBQcm9qZWN0IHwgUHJvamVjdFtdLFxuXHRcdGZpbGVGaWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD47XG5cblx0dHJhbnNmb3JtUHJvamVjdChcblx0XHRwcm9qZWN0czogUHJvamVjdCB8IFByb2plY3RbXSxcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPjtcblxuXHQvKipcblx0ICogSWYgaW1wbGVtZW50ZWQsIHNpZ25hbHMgdGhpcyB0cmFuc2Zvcm1lciBzdXBwb3J0cyBpbmNyZW1lbnRhbCAod2F0Y2gpIG1vZGUuXG5cdCAqIHtAbGluayBCdWlsZEFjdGlvbn0gY2FsbHMgdGhpcyBhZnRlciB0aGUgaW5pdGlhbCBidWlsZCwgcGFzc2luZyB0aGUgd29ya3NwYWNlXG5cdCAqIHNvIHRoZSB0cmFuc2Zvcm1lciBjYW4gc2VsZi1zdWJzY3JpYmUgdG8gZmlsZSBjaGFuZ2UgZXZlbnRzLlxuXHQgKi9cblx0d2F0Y2g/KHdvcmtzcGFjZTogV29ya3NwYWNlKTogdm9pZDtcblxuXHQvKipcblx0ICogRW1pdHMgaW5jcmVtZW50YWwgdHJhbnNmb3JtIHJlc3VsdHMgYWZ0ZXIgZWFjaCBmaWxlLWNoYW5nZSBjeWNsZS5cblx0ICogUHJlc2VudCB3aGVuIHtAbGluayB3YXRjaH0gaXMgaW1wbGVtZW50ZWQuXG5cdCAqL1xuXHRpbmNyZW1lbnRhbFRyYW5zZm9ybSQ/OiBPYnNlcnZhYmxlPFRyYW5zZm9ybVJlc3BvbnNlW10+O1xufVxuIl0sIm5hbWVzIjpbIlRyYW5zZm9ybWVyS2V5IiwiU3ltYm9sIl0sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLE1BQU1BLGlCQUFpQkMsT0FBTyxrQkFBa0IifQ==
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL3dvcmtzcGFjZS1jb25maWcudHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG5cdFByb2plY3RPcHRpb25zIGFzIEJhc2VQcm9qZWN0T3B0aW9ucyxcblx0V29ya3NwYWNlT3B0aW9ucyBhcyBCYXNlV29ya3NwYWNlT3B0aW9ucyxcbn0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbiwgQ29tbWFuZFR5cGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NsaVwiO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RhYmxlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IEZvcmdlQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb24udHlwZS5qc1wiO1xuXG5leHBvcnQgdHlwZSBQcm9qZWN0T3B0aW9ucyA9IE9taXQ8QmFzZVByb2plY3RPcHRpb25zLCBcImNvbmZpZ3VyYXRpb25zXCI+ICYge1xuXHRjb25maWd1cmF0aW9uczogRm9yZ2VDb25maWd1cmF0aW9uW107XG59O1xuXG5leHBvcnQgdHlwZSBXb3Jrc3BhY2VPcHRpb25zID0gT21pdDxCYXNlV29ya3NwYWNlT3B0aW9ucywgXCJjb25maWd1cmF0aW9uc1wiIHwgXCJwcm9qZWN0c1wiPiAmIHtcblx0Y29uZmlndXJhdGlvbnM6IEZvcmdlQ29uZmlndXJhdGlvbltdO1xuXHRwcm9qZWN0cz86IFJlY29yZDxzdHJpbmcsIFBhcnRpYWw8UHJvamVjdE9wdGlvbnM+Pjtcblx0YWN0aW9ucz86IFJlY29yZDxzdHJpbmcsIENvbnN0cnVjdGFibGU8QWN0aW9uPj47XG5cdGNvbW1hbmRzPzogUmVjb3JkPHN0cmluZywgQ29tbWFuZFR5cGU+O1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxXQUtFIn0=
@@ -0,0 +1,114 @@
1
+ import { existsSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { WorkspaceFactory } from "@decohere/mesh";
4
+ import { FileEx } from "@decohere/nexus/io";
5
+ import { ConsoleAdapter, scribe } from "@decohere/scribe";
6
+ import { SwcTranspiler } from "../services/swc-transpiler.js";
7
+ import { BuildTargets } from "../types/build-target.type.js";
8
+ import { WorkspaceDefaults } from "../workspace.config.js";
9
+ // Above fatal (60) so all standard levels are nooped when logLevel is "silent"
10
+ const SILENT_LEVEL = 999;
11
+ const PLUGIN_NAME = "forge-vitest-source";
12
+ const TS_EXTENSIONS = [
13
+ ".ts",
14
+ ".tsx",
15
+ ".mts"
16
+ ];
17
+ export function forgeBuild(options) {
18
+ const buildConfig = options?.buildConfig ?? "debug";
19
+ const workspaceRoot = options?.workspaceRoot ?? process.cwd();
20
+ const logLevel = options?.logLevel ?? "info";
21
+ const loggerFactory = scribe.configure({
22
+ adapter: new ConsoleAdapter(),
23
+ options: {
24
+ logLevel,
25
+ customLevels: {
26
+ silent: SILENT_LEVEL
27
+ }
28
+ }
29
+ });
30
+ const logger = loggerFactory(PLUGIN_NAME);
31
+ const skipBuild = options?.skipBuild ?? false;
32
+ const transpiler = new SwcTranspiler();
33
+ const warmedProjects = new Set();
34
+ const transformCache = new Map();
35
+ let workspace = null;
36
+ const initWorkspace = async ()=>{
37
+ if (workspace !== null) return;
38
+ logger.debug(`Loading Forge workspace (buildConfig: ${buildConfig}, workspaceRoot: ${workspaceRoot})`);
39
+ workspace = await WorkspaceFactory.create({
40
+ ...WorkspaceDefaults,
41
+ rootDir: workspaceRoot
42
+ });
43
+ };
44
+ const preWarmProject = (project)=>{
45
+ if (warmedProjects.has(project.projectDirectory)) return;
46
+ warmedProjects.add(project.projectDirectory);
47
+ void transpiler.transformProject(project).then(()=>logger.debug(`Pre-warm complete for ${project.name}`)).catch((err)=>logger.error(`Pre-warm error for ${project.name}: ${err.message}`));
48
+ };
49
+ return {
50
+ name: PLUGIN_NAME,
51
+ enforce: "pre",
52
+ configResolved () {
53
+ logger.debug("Plugin loaded");
54
+ },
55
+ resolveId (source, importer) {
56
+ if (importer != null && source.endsWith(".js") && source.startsWith(".")) {
57
+ const importerDirectory = path.dirname(importer);
58
+ const withoutExtension = source.slice(0, -3);
59
+ const candidates = TS_EXTENSIONS.map((ext)=>path.resolve(importerDirectory, `${withoutExtension}${ext}`));
60
+ return candidates.find((c)=>existsSync(c)) ?? null;
61
+ }
62
+ return null;
63
+ },
64
+ watchChange (id) {
65
+ const file = new FileEx({
66
+ fullPath: id
67
+ });
68
+ transformCache.delete(id);
69
+ transpiler.invalidateContentCache(file);
70
+ },
71
+ async transform (code, id) {
72
+ if (id.includes("node_modules") || !/[.](ts|tsx|mts|cts)$/.test(id)) {
73
+ return null;
74
+ }
75
+ await initWorkspace();
76
+ const project = await workspace?.findProject(id, buildConfig);
77
+ if (project != null && !skipBuild) {
78
+ preWarmProject(project);
79
+ }
80
+ const cached = transformCache.get(id);
81
+ if (cached !== undefined && cached.content === code) {
82
+ return cached.result;
83
+ }
84
+ const file = new FileEx({
85
+ fullPath: id,
86
+ content: code
87
+ });
88
+ if (cached !== undefined) {
89
+ // Content changed for a previously-seen file — invalidate the transpiler's
90
+ // FILE_CONTENT cache so the fresh content from Vite is used.
91
+ // The VS Code Vitest extension disables Vite's chokidar watcher
92
+ // (server.watch: null) and drives re-runs via vitest.watcher.onFileChange(),
93
+ // bypassing watchChange entirely — so we cannot rely on watchChange alone.
94
+ transpiler.invalidateContentCache(file);
95
+ }
96
+ const [response] = await transpiler.transformFile(file, BuildTargets.es6, {
97
+ aliasPaths: true,
98
+ tsConfig: project ? await project.getTsConfig() : undefined
99
+ });
100
+ if (!response || response.outcome !== "success") return null;
101
+ const result = {
102
+ code: response.code,
103
+ map: null
104
+ };
105
+ transformCache.set(id, {
106
+ content: code,
107
+ result
108
+ });
109
+ return result;
110
+ }
111
+ };
112
+ }
113
+
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3ZpdGVzdC9mb3JnZS1idWlsZC5wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QsIFdvcmtzcGFjZSB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgV29ya3NwYWNlRmFjdG9yeSB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgRmlsZUV4IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFkYXB0ZXIsIHNjcmliZSB9IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgeyBTd2NUcmFuc3BpbGVyIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3N3Yy10cmFuc3BpbGVyLmpzXCI7XG5pbXBvcnQgeyBCdWlsZFRhcmdldHMgfSBmcm9tIFwiLi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB7IFdvcmtzcGFjZURlZmF1bHRzIH0gZnJvbSBcIi4uL3dvcmtzcGFjZS5jb25maWcuanNcIjtcblxuLy8gQWJvdmUgZmF0YWwgKDYwKSBzbyBhbGwgc3RhbmRhcmQgbGV2ZWxzIGFyZSBub29wZWQgd2hlbiBsb2dMZXZlbCBpcyBcInNpbGVudFwiXG5jb25zdCBTSUxFTlRfTEVWRUwgPSA5OTk7XG5cbmNvbnN0IFBMVUdJTl9OQU1FID0gXCJmb3JnZS12aXRlc3Qtc291cmNlXCI7XG5jb25zdCBUU19FWFRFTlNJT05TID0gW1wiLnRzXCIsIFwiLnRzeFwiLCBcIi5tdHNcIl07XG5cbmV4cG9ydCB0eXBlIEZvcmdlQnVpbGRPcHRpb25zID0ge1xuXHRidWlsZENvbmZpZz86IHN0cmluZztcblx0bG9nTGV2ZWw/OiBzdHJpbmc7XG5cdHdvcmtzcGFjZVJvb3Q/OiBzdHJpbmc7XG5cdC8qKiBTa2lwIHRoZSBidWlsZCBwcmUtd2FybSBlbnRpcmVseSAoZS5nLiB3aGVuIGEgcHJlLWJ1aWx0IGFydGlmYWN0IGlzIGFscmVhZHkgb24gZGlzaykuICovXG5cdHNraXBCdWlsZD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9yZ2VCdWlsZChvcHRpb25zPzogRm9yZ2VCdWlsZE9wdGlvbnMpIHtcblx0Y29uc3QgYnVpbGRDb25maWcgPSBvcHRpb25zPy5idWlsZENvbmZpZyA/PyBcImRlYnVnXCI7XG5cdGNvbnN0IHdvcmtzcGFjZVJvb3QgPSBvcHRpb25zPy53b3Jrc3BhY2VSb290ID8/IHByb2Nlc3MuY3dkKCk7XG5cdGNvbnN0IGxvZ0xldmVsID0gb3B0aW9ucz8ubG9nTGV2ZWwgPz8gXCJpbmZvXCI7XG5cdGNvbnN0IGxvZ2dlckZhY3RvcnkgPSBzY3JpYmUuY29uZmlndXJlKHtcblx0XHRhZGFwdGVyOiBuZXcgQ29uc29sZUFkYXB0ZXIoKSxcblx0XHRvcHRpb25zOiB7IGxvZ0xldmVsLCBjdXN0b21MZXZlbHM6IHsgc2lsZW50OiBTSUxFTlRfTEVWRUwgfSB9LFxuXHR9KTtcblx0Y29uc3QgbG9nZ2VyID0gbG9nZ2VyRmFjdG9yeShQTFVHSU5fTkFNRSk7XG5cblx0Y29uc3Qgc2tpcEJ1aWxkID0gb3B0aW9ucz8uc2tpcEJ1aWxkID8/IGZhbHNlO1xuXG5cdGNvbnN0IHRyYW5zcGlsZXIgPSBuZXcgU3djVHJhbnNwaWxlcigpO1xuXHRjb25zdCB3YXJtZWRQcm9qZWN0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXHRjb25zdCB0cmFuc2Zvcm1DYWNoZSA9IG5ldyBNYXA8XG5cdFx0c3RyaW5nLFxuXHRcdHsgY29udGVudDogc3RyaW5nOyByZXN1bHQ6IHsgY29kZTogc3RyaW5nOyBtYXA6IG51bGwgfSB9XG5cdD4oKTtcblxuXHRsZXQgd29ya3NwYWNlOiBXb3Jrc3BhY2UgfCBudWxsID0gbnVsbDtcblxuXHRjb25zdCBpbml0V29ya3NwYWNlID0gYXN5bmMgKCkgPT4ge1xuXHRcdGlmICh3b3Jrc3BhY2UgIT09IG51bGwpIHJldHVybjtcblx0XHRsb2dnZXIuZGVidWcoXG5cdFx0XHRgTG9hZGluZyBGb3JnZSB3b3Jrc3BhY2UgKGJ1aWxkQ29uZmlnOiAke2J1aWxkQ29uZmlnfSwgd29ya3NwYWNlUm9vdDogJHt3b3Jrc3BhY2VSb290fSlgLFxuXHRcdCk7XG5cdFx0d29ya3NwYWNlID0gYXdhaXQgV29ya3NwYWNlRmFjdG9yeS5jcmVhdGUoe1xuXHRcdFx0Li4uV29ya3NwYWNlRGVmYXVsdHMsXG5cdFx0XHRyb290RGlyOiB3b3Jrc3BhY2VSb290LFxuXHRcdH0pO1xuXHR9O1xuXG5cdGNvbnN0IHByZVdhcm1Qcm9qZWN0ID0gKHByb2plY3Q6IFByb2plY3QpID0+IHtcblx0XHRpZiAod2FybWVkUHJvamVjdHMuaGFzKHByb2plY3QucHJvamVjdERpcmVjdG9yeSkpIHJldHVybjtcblx0XHR3YXJtZWRQcm9qZWN0cy5hZGQocHJvamVjdC5wcm9qZWN0RGlyZWN0b3J5KTtcblx0XHR2b2lkIHRyYW5zcGlsZXJcblx0XHRcdC50cmFuc2Zvcm1Qcm9qZWN0KHByb2plY3QpXG5cdFx0XHQudGhlbigoKSA9PiBsb2dnZXIuZGVidWcoYFByZS13YXJtIGNvbXBsZXRlIGZvciAke3Byb2plY3QubmFtZX1gKSlcblx0XHRcdC5jYXRjaCgoZXJyOiBFcnJvcikgPT5cblx0XHRcdFx0bG9nZ2VyLmVycm9yKGBQcmUtd2FybSBlcnJvciBmb3IgJHtwcm9qZWN0Lm5hbWV9OiAke2Vyci5tZXNzYWdlfWApLFxuXHRcdFx0KTtcblx0fTtcblxuXHRyZXR1cm4ge1xuXHRcdG5hbWU6IFBMVUdJTl9OQU1FLFxuXHRcdGVuZm9yY2U6IFwicHJlXCIgYXMgY29uc3QsXG5cdFx0Y29uZmlnUmVzb2x2ZWQoKTogdm9pZCB7XG5cdFx0XHRsb2dnZXIuZGVidWcoXCJQbHVnaW4gbG9hZGVkXCIpO1xuXHRcdH0sXG5cdFx0cmVzb2x2ZUlkKHNvdXJjZTogc3RyaW5nLCBpbXBvcnRlcjogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgbnVsbCB7XG5cdFx0XHRpZiAoaW1wb3J0ZXIgIT0gbnVsbCAmJiBzb3VyY2UuZW5kc1dpdGgoXCIuanNcIikgJiYgc291cmNlLnN0YXJ0c1dpdGgoXCIuXCIpKSB7XG5cdFx0XHRcdGNvbnN0IGltcG9ydGVyRGlyZWN0b3J5ID0gcGF0aC5kaXJuYW1lKGltcG9ydGVyKTtcblx0XHRcdFx0Y29uc3Qgd2l0aG91dEV4dGVuc2lvbiA9IHNvdXJjZS5zbGljZSgwLCAtMyk7XG5cdFx0XHRcdGNvbnN0IGNhbmRpZGF0ZXMgPSBUU19FWFRFTlNJT05TLm1hcCgoZXh0KSA9PlxuXHRcdFx0XHRcdHBhdGgucmVzb2x2ZShpbXBvcnRlckRpcmVjdG9yeSwgYCR7d2l0aG91dEV4dGVuc2lvbn0ke2V4dH1gKSxcblx0XHRcdFx0KTtcblxuXHRcdFx0XHRyZXR1cm4gY2FuZGlkYXRlcy5maW5kKChjKSA9PiBleGlzdHNTeW5jKGMpKSA/PyBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9LFxuXHRcdHdhdGNoQ2hhbmdlKGlkOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRcdGNvbnN0IGZpbGUgPSBuZXcgRmlsZUV4KHsgZnVsbFBhdGg6IGlkIH0pO1xuXHRcdFx0dHJhbnNmb3JtQ2FjaGUuZGVsZXRlKGlkKTtcblx0XHRcdHRyYW5zcGlsZXIuaW52YWxpZGF0ZUNvbnRlbnRDYWNoZShmaWxlKTtcblx0XHR9LFxuXHRcdGFzeW5jIHRyYW5zZm9ybShcblx0XHRcdGNvZGU6IHN0cmluZyxcblx0XHRcdGlkOiBzdHJpbmcsXG5cdFx0KTogUHJvbWlzZTx7IGNvZGU6IHN0cmluZzsgbWFwOiBzdHJpbmcgfCBudWxsIH0gfCBudWxsPiB7XG5cdFx0XHRpZiAoaWQuaW5jbHVkZXMoXCJub2RlX21vZHVsZXNcIikgfHwgIS9bLl0odHN8dHN4fG10c3xjdHMpJC8udGVzdChpZCkpIHtcblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHR9XG5cblx0XHRcdGF3YWl0IGluaXRXb3Jrc3BhY2UoKTtcblx0XHRcdGNvbnN0IHByb2plY3QgPSBhd2FpdCB3b3Jrc3BhY2U/LmZpbmRQcm9qZWN0KGlkLCBidWlsZENvbmZpZyk7XG5cblx0XHRcdGlmIChwcm9qZWN0ICE9IG51bGwgJiYgIXNraXBCdWlsZCkge1xuXHRcdFx0XHRwcmVXYXJtUHJvamVjdChwcm9qZWN0KTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgY2FjaGVkID0gdHJhbnNmb3JtQ2FjaGUuZ2V0KGlkKTtcblx0XHRcdGlmIChjYWNoZWQgIT09IHVuZGVmaW5lZCAmJiBjYWNoZWQuY29udGVudCA9PT0gY29kZSkge1xuXHRcdFx0XHRyZXR1cm4gY2FjaGVkLnJlc3VsdDtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZmlsZSA9IG5ldyBGaWxlRXgoeyBmdWxsUGF0aDogaWQsIGNvbnRlbnQ6IGNvZGUgfSk7XG5cdFx0XHRpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Ly8gQ29udGVudCBjaGFuZ2VkIGZvciBhIHByZXZpb3VzbHktc2VlbiBmaWxlIOKAlCBpbnZhbGlkYXRlIHRoZSB0cmFuc3BpbGVyJ3Ncblx0XHRcdFx0Ly8gRklMRV9DT05URU5UIGNhY2hlIHNvIHRoZSBmcmVzaCBjb250ZW50IGZyb20gVml0ZSBpcyB1c2VkLlxuXHRcdFx0XHQvLyBUaGUgVlMgQ29kZSBWaXRlc3QgZXh0ZW5zaW9uIGRpc2FibGVzIFZpdGUncyBjaG9raWRhciB3YXRjaGVyXG5cdFx0XHRcdC8vIChzZXJ2ZXIud2F0Y2g6IG51bGwpIGFuZCBkcml2ZXMgcmUtcnVucyB2aWEgdml0ZXN0LndhdGNoZXIub25GaWxlQ2hhbmdlKCksXG5cdFx0XHRcdC8vIGJ5cGFzc2luZyB3YXRjaENoYW5nZSBlbnRpcmVseSDigJQgc28gd2UgY2Fubm90IHJlbHkgb24gd2F0Y2hDaGFuZ2UgYWxvbmUuXG5cdFx0XHRcdHRyYW5zcGlsZXIuaW52YWxpZGF0ZUNvbnRlbnRDYWNoZShmaWxlKTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IFtyZXNwb25zZV0gPSBhd2FpdCB0cmFuc3BpbGVyLnRyYW5zZm9ybUZpbGUoZmlsZSwgQnVpbGRUYXJnZXRzLmVzNiwge1xuXHRcdFx0XHRhbGlhc1BhdGhzOiB0cnVlLFxuXHRcdFx0XHR0c0NvbmZpZzogcHJvamVjdCA/IGF3YWl0IHByb2plY3QuZ2V0VHNDb25maWcoKSA6IHVuZGVmaW5lZCxcblx0XHRcdH0pO1xuXHRcdFx0aWYgKCFyZXNwb25zZSB8fCByZXNwb25zZS5vdXRjb21lICE9PSBcInN1Y2Nlc3NcIikgcmV0dXJuIG51bGw7XG5cblx0XHRcdGNvbnN0IHJlc3VsdCA9IHsgY29kZTogcmVzcG9uc2UuY29kZSwgbWFwOiBudWxsIH07XG5cdFx0XHR0cmFuc2Zvcm1DYWNoZS5zZXQoaWQsIHsgY29udGVudDogY29kZSwgcmVzdWx0IH0pO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LFxuXHR9O1xufVxuIl0sIm5hbWVzIjpbImV4aXN0c1N5bmMiLCJwYXRoIiwiV29ya3NwYWNlRmFjdG9yeSIsIkZpbGVFeCIsIkNvbnNvbGVBZGFwdGVyIiwic2NyaWJlIiwiU3djVHJhbnNwaWxlciIsIkJ1aWxkVGFyZ2V0cyIsIldvcmtzcGFjZURlZmF1bHRzIiwiU0lMRU5UX0xFVkVMIiwiUExVR0lOX05BTUUiLCJUU19FWFRFTlNJT05TIiwiZm9yZ2VCdWlsZCIsIm9wdGlvbnMiLCJidWlsZENvbmZpZyIsIndvcmtzcGFjZVJvb3QiLCJwcm9jZXNzIiwiY3dkIiwibG9nTGV2ZWwiLCJsb2dnZXJGYWN0b3J5IiwiY29uZmlndXJlIiwiYWRhcHRlciIsImN1c3RvbUxldmVscyIsInNpbGVudCIsImxvZ2dlciIsInNraXBCdWlsZCIsInRyYW5zcGlsZXIiLCJ3YXJtZWRQcm9qZWN0cyIsIlNldCIsInRyYW5zZm9ybUNhY2hlIiwiTWFwIiwid29ya3NwYWNlIiwiaW5pdFdvcmtzcGFjZSIsImRlYnVnIiwiY3JlYXRlIiwicm9vdERpciIsInByZVdhcm1Qcm9qZWN0IiwicHJvamVjdCIsImhhcyIsInByb2plY3REaXJlY3RvcnkiLCJhZGQiLCJ0cmFuc2Zvcm1Qcm9qZWN0IiwidGhlbiIsIm5hbWUiLCJjYXRjaCIsImVyciIsImVycm9yIiwibWVzc2FnZSIsImVuZm9yY2UiLCJjb25maWdSZXNvbHZlZCIsInJlc29sdmVJZCIsInNvdXJjZSIsImltcG9ydGVyIiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwiaW1wb3J0ZXJEaXJlY3RvcnkiLCJkaXJuYW1lIiwid2l0aG91dEV4dGVuc2lvbiIsInNsaWNlIiwiY2FuZGlkYXRlcyIsIm1hcCIsImV4dCIsInJlc29sdmUiLCJmaW5kIiwiYyIsIndhdGNoQ2hhbmdlIiwiaWQiLCJmaWxlIiwiZnVsbFBhdGgiLCJkZWxldGUiLCJpbnZhbGlkYXRlQ29udGVudENhY2hlIiwidHJhbnNmb3JtIiwiY29kZSIsImluY2x1ZGVzIiwidGVzdCIsImZpbmRQcm9qZWN0IiwiY2FjaGVkIiwiZ2V0IiwidW5kZWZpbmVkIiwiY29udGVudCIsInJlc3VsdCIsInJlc3BvbnNlIiwidHJhbnNmb3JtRmlsZSIsImVzNiIsImFsaWFzUGF0aHMiLCJ0c0NvbmZpZyIsImdldFRzQ29uZmlnIiwib3V0Y29tZSIsInNldCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLFVBQVU7QUFDckMsT0FBT0MsVUFBVSxZQUFZO0FBRTdCLFNBQVNDLGdCQUFnQixRQUFRLGlCQUFpQjtBQUNsRCxTQUFTQyxNQUFNLFFBQVEscUJBQXFCO0FBQzVDLFNBQVNDLGNBQWMsRUFBRUMsTUFBTSxRQUFRLG1CQUFtQjtBQUMxRCxTQUFTQyxhQUFhLFFBQVEsZ0NBQWdDO0FBQzlELFNBQVNDLFlBQVksUUFBUSxnQ0FBZ0M7QUFDN0QsU0FBU0MsaUJBQWlCLFFBQVEseUJBQXlCO0FBRTNELCtFQUErRTtBQUMvRSxNQUFNQyxlQUFlO0FBRXJCLE1BQU1DLGNBQWM7QUFDcEIsTUFBTUMsZ0JBQWdCO0lBQUM7SUFBTztJQUFRO0NBQU87QUFV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
@@ -0,0 +1,3 @@
1
+ export { forgeBuild } from "./forge-build.plugin.js";
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3ZpdGVzdC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7IEZvcmdlQnVpbGRPcHRpb25zIH0gZnJvbSBcIi4vZm9yZ2UtYnVpbGQucGx1Z2luLmpzXCI7XG5leHBvcnQgeyBmb3JnZUJ1aWxkIH0gZnJvbSBcIi4vZm9yZ2UtYnVpbGQucGx1Z2luLmpzXCI7XG4iXSwibmFtZXMiOlsiZm9yZ2VCdWlsZCJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsVUFBVSxRQUFRLDBCQUEwQiJ9
@@ -0,0 +1,49 @@
1
+ import { WorkspaceDefaults as BaseDefaults } from "@decohere/mesh";
2
+ import { NODE_MODULES } from "./const.js";
3
+ import { BuildTargets } from "./types/build-target.type.js";
4
+ export const Debug = {
5
+ name: "debug",
6
+ targets: [
7
+ BuildTargets.es6
8
+ ],
9
+ aliasPaths: true
10
+ };
11
+ export const Release = {
12
+ name: "release",
13
+ pack: true,
14
+ targets: [
15
+ BuildTargets.commonjs,
16
+ BuildTargets.es6,
17
+ BuildTargets.types
18
+ ],
19
+ ignore: [
20
+ "**/*.spec.ts",
21
+ "**/*.test.ts",
22
+ "tests/**",
23
+ "e2e/**"
24
+ ]
25
+ };
26
+ export const DefaultConfigurations = [
27
+ Debug,
28
+ Release
29
+ ];
30
+ export const WorkspaceDefaults = {
31
+ rootDir: BaseDefaults.rootDir,
32
+ outDir: BaseDefaults.outDir,
33
+ includeProjects: BaseDefaults.includeProjects,
34
+ ignoreProjects: BaseDefaults.ignoreProjects,
35
+ include: [
36
+ "**/*.ts"
37
+ ],
38
+ ignore: [
39
+ "**/*.d.ts",
40
+ `**/${NODE_MODULES}/**`
41
+ ],
42
+ copyFiles: [
43
+ "package.json",
44
+ "**/*.mjs"
45
+ ],
46
+ configurations: DefaultConfigurations
47
+ };
48
+
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3dvcmtzcGFjZS5jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV29ya3NwYWNlRGVmYXVsdHMgYXMgQmFzZURlZmF1bHRzIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBOT0RFX01PRFVMRVMgfSBmcm9tIFwiLi9jb25zdC5qc1wiO1xuaW1wb3J0IHsgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgRm9yZ2VDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vdHlwZXMvY29uZmlndXJhdGlvbi50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy93b3Jrc3BhY2UtY29uZmlnLnR5cGUuanNcIjtcblxuZXhwb3J0IGNvbnN0IERlYnVnOiBGb3JnZUNvbmZpZ3VyYXRpb24gPSB7XG5cdG5hbWU6IFwiZGVidWdcIixcblx0dGFyZ2V0czogW0J1aWxkVGFyZ2V0cy5lczZdLFxuXHRhbGlhc1BhdGhzOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFJlbGVhc2U6IEZvcmdlQ29uZmlndXJhdGlvbiA9IHtcblx0bmFtZTogXCJyZWxlYXNlXCIsXG5cdHBhY2s6IHRydWUsXG5cdHRhcmdldHM6IFtCdWlsZFRhcmdldHMuY29tbW9uanMsIEJ1aWxkVGFyZ2V0cy5lczYsIEJ1aWxkVGFyZ2V0cy50eXBlc10sXG5cdGlnbm9yZTogW1wiKiovKi5zcGVjLnRzXCIsIFwiKiovKi50ZXN0LnRzXCIsIFwidGVzdHMvKipcIiwgXCJlMmUvKipcIl0sXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdENvbmZpZ3VyYXRpb25zID0gW0RlYnVnLCBSZWxlYXNlXTtcblxuZXhwb3J0IGNvbnN0IFdvcmtzcGFjZURlZmF1bHRzOiBXb3Jrc3BhY2VPcHRpb25zID0ge1xuXHRyb290RGlyOiBCYXNlRGVmYXVsdHMucm9vdERpcixcblx0b3V0RGlyOiBCYXNlRGVmYXVsdHMub3V0RGlyLFxuXHRpbmNsdWRlUHJvamVjdHM6IEJhc2VEZWZhdWx0cy5pbmNsdWRlUHJvamVjdHMsXG5cdGlnbm9yZVByb2plY3RzOiBCYXNlRGVmYXVsdHMuaWdub3JlUHJvamVjdHMsXG5cdGluY2x1ZGU6IFtcIioqLyoudHNcIl0sXG5cdGlnbm9yZTogW1wiKiovKi5kLnRzXCIsIGAqKi8ke05PREVfTU9EVUxFU30vKipgXSxcblx0Y29weUZpbGVzOiBbXCJwYWNrYWdlLmpzb25cIiwgXCIqKi8qLm1qc1wiXSxcblx0Y29uZmlndXJhdGlvbnM6IERlZmF1bHRDb25maWd1cmF0aW9ucyxcbn07XG4iXSwibmFtZXMiOlsiV29ya3NwYWNlRGVmYXVsdHMiLCJCYXNlRGVmYXVsdHMiLCJOT0RFX01PRFVMRVMiLCJCdWlsZFRhcmdldHMiLCJEZWJ1ZyIsIm5hbWUiLCJ0YXJnZXRzIiwiZXM2IiwiYWxpYXNQYXRocyIsIlJlbGVhc2UiLCJwYWNrIiwiY29tbW9uanMiLCJ0eXBlcyIsImlnbm9yZSIsIkRlZmF1bHRDb25maWd1cmF0aW9ucyIsInJvb3REaXIiLCJvdXREaXIiLCJpbmNsdWRlUHJvamVjdHMiLCJpZ25vcmVQcm9qZWN0cyIsImluY2x1ZGUiLCJjb3B5RmlsZXMiLCJjb25maWd1cmF0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EscUJBQXFCQyxZQUFZLFFBQVEsaUJBQWlCO0FBQ25FLFNBQVNDLFlBQVksUUFBUSxhQUFhO0FBQzFDLFNBQVNDLFlBQVksUUFBUSwrQkFBK0I7QUFJNUQsT0FBTyxNQUFNQyxRQUE0QjtJQUN4Q0MsTUFBTTtJQUNOQyxTQUFTO1FBQUNILGFBQWFJLEdBQUc7S0FBQztJQUMzQkMsWUFBWTtBQUNiLEVBQUU7QUFFRixPQUFPLE1BQU1DLFVBQThCO0lBQzFDSixNQUFNO0lBQ05LLE1BQU07SUFDTkosU0FBUztRQUFDSCxhQUFhUSxRQUFRO1FBQUVSLGFBQWFJLEdBQUc7UUFBRUosYUFBYVMsS0FBSztLQUFDO0lBQ3RFQyxRQUFRO1FBQUM7UUFBZ0I7UUFBZ0I7UUFBWTtLQUFTO0FBQy9ELEVBQUU7QUFFRixPQUFPLE1BQU1DLHdCQUF3QjtJQUFDVjtJQUFPSztDQUFRLENBQUM7QUFFdEQsT0FBTyxNQUFNVCxvQkFBc0M7SUFDbERlLFNBQVNkLGFBQWFjLE9BQU87SUFDN0JDLFFBQVFmLGFBQWFlLE1BQU07SUFDM0JDLGlCQUFpQmhCLGFBQWFnQixlQUFlO0lBQzdDQyxnQkFBZ0JqQixhQUFhaUIsY0FBYztJQUMzQ0MsU0FBUztRQUFDO0tBQVU7SUFDcEJOLFFBQVE7UUFBQztRQUFhLENBQUMsR0FBRyxFQUFFWCxhQUFhLEdBQUcsQ0FBQztLQUFDO0lBQzlDa0IsV0FBVztRQUFDO1FBQWdCO0tBQVc7SUFDdkNDLGdCQUFnQlA7QUFDakIsRUFBRSJ9