@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.
- package/commonjs/src/actions/build.action.js +108 -0
- package/commonjs/src/actions/clean.action.js +55 -0
- package/commonjs/src/actions/commit.action.js +80 -0
- package/commonjs/src/actions/copy.action.js +83 -0
- package/commonjs/src/actions/dependency-report.action.js +142 -0
- package/commonjs/src/actions/dependency-sync.action.js +100 -0
- package/commonjs/src/actions/index.js +30 -0
- package/commonjs/src/actions/publish.action.js +156 -0
- package/commonjs/src/actions/sync-lock-file.action.js +43 -0
- package/commonjs/src/actions/tag.action.js +76 -0
- package/commonjs/src/actions/version.action.js +209 -0
- package/commonjs/src/actions/watch.action.js +50 -0
- package/commonjs/src/commands/build.command.js +49 -0
- package/commonjs/src/commands/dependency.command.js +88 -0
- package/commonjs/src/commands/forge.command.js +24 -0
- package/commonjs/src/commands/index.js +25 -0
- package/commonjs/src/commands/publish.command.js +32 -0
- package/commonjs/src/commands/tag.command.js +28 -0
- package/commonjs/src/commands/version.command.js +36 -0
- package/commonjs/src/const.js +81 -0
- package/commonjs/src/errors.js +39 -0
- package/commonjs/src/extensions/project.extensions.js +66 -0
- package/commonjs/src/factories/swc-config.factory.js +98 -0
- package/commonjs/src/forge.module.js +109 -0
- package/commonjs/src/index.js +22 -0
- package/commonjs/src/mixins/caches-outputs.mixin.js +42 -0
- package/commonjs/src/mixins/incremental-transform.mixin.js +36 -0
- package/commonjs/src/services/dependency-resolver.service.js +172 -0
- package/commonjs/src/services/file-writer.service.js +232 -0
- package/commonjs/src/services/swc-transpiler.js +176 -0
- package/commonjs/src/services/ts-program-host.js +135 -0
- package/commonjs/src/services/type-emission-program.js +160 -0
- package/commonjs/src/services/type-emitter.js +141 -0
- package/commonjs/src/types/build-target.type.js +17 -0
- package/commonjs/src/types/configuration.type.js +6 -0
- package/commonjs/src/types/dependency.types.js +6 -0
- package/commonjs/src/types/swc-config.type.js +17 -0
- package/commonjs/src/types/transform-response.model.js +64 -0
- package/commonjs/src/types/transformer.type.js +13 -0
- package/commonjs/src/types/workspace-config.type.js +6 -0
- package/commonjs/src/vitest/forge-build.plugin.js +129 -0
- package/commonjs/src/vitest/index.js +13 -0
- package/commonjs/src/workspace.config.js +73 -0
- package/es6/src/actions/build.action.js +100 -0
- package/es6/src/actions/clean.action.js +46 -0
- package/es6/src/actions/commit.action.js +71 -0
- package/es6/src/actions/copy.action.js +69 -0
- package/es6/src/actions/dependency-report.action.js +134 -0
- package/es6/src/actions/dependency-sync.action.js +92 -0
- package/es6/src/actions/index.js +13 -0
- package/es6/src/actions/publish.action.js +147 -0
- package/es6/src/actions/sync-lock-file.action.js +33 -0
- package/es6/src/actions/tag.action.js +67 -0
- package/es6/src/actions/version.action.js +189 -0
- package/es6/src/actions/watch.action.js +41 -0
- package/es6/src/commands/build.command.js +34 -0
- package/es6/src/commands/dependency.command.js +78 -0
- package/es6/src/commands/forge.command.js +14 -0
- package/es6/src/commands/index.js +8 -0
- package/es6/src/commands/publish.command.js +22 -0
- package/es6/src/commands/tag.command.js +18 -0
- package/es6/src/commands/version.command.js +26 -0
- package/es6/src/const.js +60 -0
- package/es6/src/errors.js +18 -0
- package/es6/src/extensions/project.extensions.js +51 -0
- package/es6/src/factories/swc-config.factory.js +83 -0
- package/es6/src/forge.module.js +58 -0
- package/es6/src/index.js +4 -0
- package/es6/src/mixins/caches-outputs.mixin.js +32 -0
- package/es6/src/mixins/incremental-transform.mixin.js +26 -0
- package/es6/src/services/dependency-resolver.service.js +162 -0
- package/es6/src/services/file-writer.service.js +217 -0
- package/es6/src/services/swc-transpiler.js +161 -0
- package/es6/src/services/ts-program-host.js +120 -0
- package/es6/src/services/type-emission-program.js +145 -0
- package/es6/src/services/type-emitter.js +134 -0
- package/es6/src/types/build-target.type.js +7 -0
- package/es6/src/types/configuration.type.js +3 -0
- package/es6/src/types/dependency.types.js +3 -0
- package/es6/src/types/swc-config.type.js +7 -0
- package/es6/src/types/transform-response.model.js +46 -0
- package/es6/src/types/transformer.type.js +3 -0
- package/es6/src/types/workspace-config.type.js +3 -0
- package/es6/src/vitest/forge-build.plugin.js +114 -0
- package/es6/src/vitest/index.js +3 -0
- package/es6/src/workspace.config.js +49 -0
- package/package.json +43 -0
- package/types/src/actions/build.action.d.ts +22 -0
- package/types/src/actions/clean.action.d.ts +13 -0
- package/types/src/actions/commit.action.d.ts +17 -0
- package/types/src/actions/copy.action.d.ts +14 -0
- package/types/src/actions/dependency-report.action.d.ts +36 -0
- package/types/src/actions/dependency-sync.action.d.ts +17 -0
- package/types/src/actions/index.d.ts +11 -0
- package/types/src/actions/publish.action.d.ts +34 -0
- package/types/src/actions/sync-lock-file.action.d.ts +10 -0
- package/types/src/actions/tag.action.d.ts +19 -0
- package/types/src/actions/version.action.d.ts +35 -0
- package/types/src/actions/watch.action.d.ts +14 -0
- package/types/src/commands/build.command.d.ts +16 -0
- package/types/src/commands/dependency.command.d.ts +5 -0
- package/types/src/commands/forge.command.d.ts +6 -0
- package/types/src/commands/index.d.ts +6 -0
- package/types/src/commands/publish.command.d.ts +6 -0
- package/types/src/commands/tag.command.d.ts +6 -0
- package/types/src/commands/version.command.d.ts +12 -0
- package/types/src/const.d.ts +3 -0
- package/types/src/errors.d.ts +4 -0
- package/types/src/extensions/project.extensions.d.ts +13 -0
- package/types/src/factories/swc-config.factory.d.ts +24 -0
- package/types/src/forge.module.d.ts +31 -0
- package/types/src/index.d.ts +4 -0
- package/types/src/mixins/caches-outputs.mixin.d.ts +7 -0
- package/types/src/mixins/incremental-transform.mixin.d.ts +13 -0
- package/types/src/services/dependency-resolver.service.d.ts +15 -0
- package/types/src/services/file-writer.service.d.ts +20 -0
- package/types/src/services/swc-transpiler.d.ts +28 -0
- package/types/src/services/ts-program-host.d.ts +22 -0
- package/types/src/services/type-emission-program.d.ts +22 -0
- package/types/src/services/type-emitter.d.ts +43 -0
- package/types/src/types/build-target.type.d.ts +7 -0
- package/types/src/types/configuration.type.d.ts +6 -0
- package/types/src/types/dependency.types.d.ts +39 -0
- package/types/src/types/swc-config.type.d.ts +9 -0
- package/types/src/types/transform-response.model.d.ts +54 -0
- package/types/src/types/transformer.type.d.ts +37 -0
- package/types/src/types/workspace-config.type.d.ts +13 -0
- package/types/src/vitest/forge-build.plugin.d.ts +18 -0
- package/types/src/vitest/index.d.ts +2 -0
- 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
|