@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,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TypeEmissionProgram", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TypeEmissionProgram;
9
+ }
10
+ });
11
+ const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
12
+ const _diagnostics = require("@decohere/nexus/diagnostics");
13
+ const _transformresponsemodel = require("../types/transform-response.model.js");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ function _ts_decorate(decorators, target, key, desc) {
20
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22
+ 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;
23
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
24
+ }
25
+ function _ts_metadata(k, v) {
26
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
27
+ }
28
+ class TypeEmissionProgram {
29
+ #program;
30
+ #group;
31
+ #targetsByDtsPath;
32
+ #targetsByEmittedPath;
33
+ #host;
34
+ #compilerHost;
35
+ #allFiles;
36
+ #compilerOptions;
37
+ constructor(group, hostFactory){
38
+ this.#group = group;
39
+ const targets = this.buildTargetMaps(group);
40
+ this.#targetsByDtsPath = targets.byDtsPath;
41
+ this.#targetsByEmittedPath = targets.byEmittedPath;
42
+ this.#host = hostFactory;
43
+ this.#compilerOptions = group[0].tsconfig.compilerOptions;
44
+ this.#allFiles = group.flatMap(({ files })=>files);
45
+ this.#compilerHost = hostFactory.createHost(this.#compilerOptions);
46
+ this.#program = hostFactory.createProgram(this.#allFiles, this.#compilerOptions, this.#compilerHost);
47
+ }
48
+ toEmissionTarget(groupProject, file, outBaseDir) {
49
+ const extName = _nodepath.default.extname(file.relativePath);
50
+ const dtsRelative = file.relativePath.replace(new RegExp(`${extName}$`), ".d.ts");
51
+ const outputPath = _nodepath.default.join(outBaseDir, dtsRelative);
52
+ return {
53
+ file,
54
+ tsconfig: groupProject.tsconfig,
55
+ project: groupProject.project,
56
+ outputPath,
57
+ outputDir: _nodepath.default.dirname(outputPath),
58
+ dtsRelative
59
+ };
60
+ }
61
+ emittedKey(file) {
62
+ return file.fullPath.replace(/\.[^.]+$/, ".d.ts");
63
+ }
64
+ buildTargetMaps(group) {
65
+ const byDtsPath = new Map();
66
+ const byEmittedPath = new Map();
67
+ for (const groupProject of group){
68
+ const outBaseDir = groupProject.project.getOutDir("types");
69
+ for (const file of groupProject.files){
70
+ const target = this.toEmissionTarget(groupProject, file, outBaseDir);
71
+ byDtsPath.set(target.dtsRelative, target);
72
+ byEmittedPath.set(this.emittedKey(file), target);
73
+ }
74
+ }
75
+ return {
76
+ byDtsPath,
77
+ byEmittedPath
78
+ };
79
+ }
80
+ addFile(file, project) {
81
+ const groupProject = this.#group.find((g)=>g.project === project);
82
+ if (groupProject == null) return;
83
+ groupProject.files.push(file);
84
+ this.#allFiles.push(file);
85
+ const outBaseDir = groupProject.project.getOutDir("types");
86
+ const target = this.toEmissionTarget(groupProject, file, outBaseDir);
87
+ this.#targetsByDtsPath.set(target.dtsRelative, target);
88
+ this.#targetsByEmittedPath.set(this.emittedKey(file), target);
89
+ this.#host.invalidateSourceFile(file.fullPath);
90
+ }
91
+ async emit(fileFilter, onOutput) {
92
+ if (this.#host.hasInvalidated()) {
93
+ this.#program = this.#host.createProgram(this.#allFiles, this.#compilerOptions, this.#compilerHost, this.#program);
94
+ }
95
+ if (fileFilter == null) {
96
+ return this.emitAll(onOutput);
97
+ }
98
+ return this.emitFiltered(fileFilter, onOutput);
99
+ }
100
+ emitAll(onOutput) {
101
+ const responses = [];
102
+ this.#program.emit(undefined, (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
+ return responses;
111
+ }
112
+ async emitFiltered(fileFilter, onOutput) {
113
+ const files = await Promise.all(this.#group.map(({ project })=>fileFilter(project)));
114
+ const sourceFiles = files.flat().map((file)=>this.#program.getSourceFile(file.fullPath)).filter((sf)=>sf != null);
115
+ const responses = [];
116
+ for (const sourceFile of sourceFiles){
117
+ this.#program.emit(sourceFile, (emittedPath, content)=>{
118
+ if (!emittedPath.endsWith(".d.ts")) {
119
+ return;
120
+ }
121
+ const response = this.toTransformResponse(emittedPath, content);
122
+ responses.push(response);
123
+ onOutput?.(response);
124
+ });
125
+ }
126
+ return responses;
127
+ }
128
+ toTransformResponse(emittedPath, content) {
129
+ const target = this.#targetsByEmittedPath.get(emittedPath);
130
+ if (target == null) {
131
+ throw new Error(`No matching emission target for: ${emittedPath}`);
132
+ }
133
+ return this.toTransformResponseFromTarget(target, content);
134
+ }
135
+ toTransformResponseFromTarget(target, content) {
136
+ const { file, tsconfig, project, outputPath, outputDir, dtsRelative } = target;
137
+ return _transformresponsemodel.TransformResponse.from({
138
+ file,
139
+ config: tsconfig,
140
+ outcome: "success",
141
+ fileName: dtsRelative,
142
+ code: content,
143
+ target: "types",
144
+ messages: [],
145
+ project,
146
+ outputDir,
147
+ outputPath
148
+ });
149
+ }
150
+ }
151
+ TypeEmissionProgram = _ts_decorate([
152
+ _diagnostics.Trace,
153
+ _ts_metadata("design:type", Function),
154
+ _ts_metadata("design:paramtypes", [
155
+ Array,
156
+ typeof TsProgramHost === "undefined" ? Object : TsProgramHost
157
+ ])
158
+ ], TypeEmissionProgram);
159
+
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3QsIFRzY29uZmlnIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZGlhZ25vc3RpY3NcIjtcbmltcG9ydCB0eXBlIHsgRmlsZUV4IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHR5cGUgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcbmltcG9ydCB0eXBlIHsgVHNQcm9ncmFtSG9zdCB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cy1wcm9ncmFtLWhvc3QuanNcIjtcbmltcG9ydCB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuXG5leHBvcnQgdHlwZSBUeXBlUHJvZ3JhbVByb2plY3QgPSB7XG5cdHByb2plY3Q6IFByb2plY3Q7XG5cdGZpbGVzOiBGaWxlRXhbXTtcblx0dHNjb25maWc6IFRzY29uZmlnO1xufTtcblxudHlwZSBFbWlzc2lvblRhcmdldCA9IHtcblx0ZmlsZTogRmlsZUV4O1xuXHR0c2NvbmZpZzogVHNjb25maWc7XG5cdHByb2plY3Q6IFByb2plY3Q7XG5cdG91dHB1dFBhdGg6IHN0cmluZztcblx0b3V0cHV0RGlyOiBzdHJpbmc7XG5cdGR0c1JlbGF0aXZlOiBzdHJpbmc7XG59O1xuXG5AVHJhY2VcbmV4cG9ydCBjbGFzcyBUeXBlRW1pc3Npb25Qcm9ncmFtIHtcblx0I3Byb2dyYW06IHRzLlByb2dyYW07XG5cdCNncm91cDogVHlwZVByb2dyYW1Qcm9qZWN0W107XG5cdCN0YXJnZXRzQnlEdHNQYXRoOiBNYXA8c3RyaW5nLCBFbWlzc2lvblRhcmdldD47XG5cdCN0YXJnZXRzQnlFbWl0dGVkUGF0aDogTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+O1xuXHQjaG9zdDogVHNQcm9ncmFtSG9zdDtcblx0I2NvbXBpbGVySG9zdDogdHMuQ29tcGlsZXJIb3N0O1xuXHQjYWxsRmlsZXM6IEZpbGVFeFtdO1xuXHQjY29tcGlsZXJPcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnM7XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKGdyb3VwOiBUeXBlUHJvZ3JhbVByb2plY3RbXSwgaG9zdEZhY3Rvcnk6IFRzUHJvZ3JhbUhvc3QpIHtcblx0XHR0aGlzLiNncm91cCA9IGdyb3VwO1xuXHRcdGNvbnN0IHRhcmdldHMgPSB0aGlzLmJ1aWxkVGFyZ2V0TWFwcyhncm91cCk7XG5cdFx0dGhpcy4jdGFyZ2V0c0J5RHRzUGF0aCA9IHRhcmdldHMuYnlEdHNQYXRoO1xuXHRcdHRoaXMuI3RhcmdldHNCeUVtaXR0ZWRQYXRoID0gdGFyZ2V0cy5ieUVtaXR0ZWRQYXRoO1xuXHRcdHRoaXMuI2hvc3QgPSBob3N0RmFjdG9yeTtcblx0XHR0aGlzLiNjb21waWxlck9wdGlvbnMgPSBncm91cFswXS50c2NvbmZpZy5jb21waWxlck9wdGlvbnM7XG5cdFx0dGhpcy4jYWxsRmlsZXMgPSBncm91cC5mbGF0TWFwKCh7IGZpbGVzIH0pID0+IGZpbGVzKTtcblx0XHR0aGlzLiNjb21waWxlckhvc3QgPSBob3N0RmFjdG9yeS5jcmVhdGVIb3N0KHRoaXMuI2NvbXBpbGVyT3B0aW9ucyk7XG5cdFx0dGhpcy4jcHJvZ3JhbSA9IGhvc3RGYWN0b3J5LmNyZWF0ZVByb2dyYW0oXG5cdFx0XHR0aGlzLiNhbGxGaWxlcyxcblx0XHRcdHRoaXMuI2NvbXBpbGVyT3B0aW9ucyxcblx0XHRcdHRoaXMuI2NvbXBpbGVySG9zdCxcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b0VtaXNzaW9uVGFyZ2V0KFxuXHRcdGdyb3VwUHJvamVjdDogVHlwZVByb2dyYW1Qcm9qZWN0LFxuXHRcdGZpbGU6IEZpbGVFeCxcblx0XHRvdXRCYXNlRGlyOiBzdHJpbmcsXG5cdCk6IEVtaXNzaW9uVGFyZ2V0IHtcblx0XHRjb25zdCBleHROYW1lID0gcGF0aC5leHRuYW1lKGZpbGUucmVsYXRpdmVQYXRoKTtcblx0XHRjb25zdCBkdHNSZWxhdGl2ZSA9IGZpbGUucmVsYXRpdmVQYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChgJHtleHROYW1lfSRgKSwgXCIuZC50c1wiKTtcblx0XHRjb25zdCBvdXRwdXRQYXRoID0gcGF0aC5qb2luKG91dEJhc2VEaXIsIGR0c1JlbGF0aXZlKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZmlsZSxcblx0XHRcdHRzY29uZmlnOiBncm91cFByb2plY3QudHNjb25maWcsXG5cdFx0XHRwcm9qZWN0OiBncm91cFByb2plY3QucHJvamVjdCxcblx0XHRcdG91dHB1dFBhdGgsXG5cdFx0XHRvdXRwdXREaXI6IHBhdGguZGlybmFtZShvdXRwdXRQYXRoKSxcblx0XHRcdGR0c1JlbGF0aXZlLFxuXHRcdH07XG5cdH1cblxuXHRwcml2YXRlIGVtaXR0ZWRLZXkoZmlsZTogRmlsZUV4KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gZmlsZS5mdWxsUGF0aC5yZXBsYWNlKC9cXC5bXi5dKyQvLCBcIi5kLnRzXCIpO1xuXHR9XG5cblx0cHJpdmF0ZSBidWlsZFRhcmdldE1hcHMoZ3JvdXA6IFR5cGVQcm9ncmFtUHJvamVjdFtdKToge1xuXHRcdGJ5RHRzUGF0aDogTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+O1xuXHRcdGJ5RW1pdHRlZFBhdGg6IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0Pjtcblx0fSB7XG5cdFx0Y29uc3QgYnlEdHNQYXRoID0gbmV3IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0PigpO1xuXHRcdGNvbnN0IGJ5RW1pdHRlZFBhdGggPSBuZXcgTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+KCk7XG5cblx0XHRmb3IgKGNvbnN0IGdyb3VwUHJvamVjdCBvZiBncm91cCkge1xuXHRcdFx0Y29uc3Qgb3V0QmFzZURpciA9IGdyb3VwUHJvamVjdC5wcm9qZWN0LmdldE91dERpcihcInR5cGVzXCIpO1xuXHRcdFx0Zm9yIChjb25zdCBmaWxlIG9mIGdyb3VwUHJvamVjdC5maWxlcykge1xuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLnRvRW1pc3Npb25UYXJnZXQoZ3JvdXBQcm9qZWN0LCBmaWxlLCBvdXRCYXNlRGlyKTtcblx0XHRcdFx0YnlEdHNQYXRoLnNldCh0YXJnZXQuZHRzUmVsYXRpdmUsIHRhcmdldCk7XG5cdFx0XHRcdGJ5RW1pdHRlZFBhdGguc2V0KHRoaXMuZW1pdHRlZEtleShmaWxlKSwgdGFyZ2V0KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBieUR0c1BhdGgsIGJ5RW1pdHRlZFBhdGggfTtcblx0fVxuXG5cdHB1YmxpYyBhZGRGaWxlKGZpbGU6IEZpbGVFeCwgcHJvamVjdDogUHJvamVjdCk6IHZvaWQge1xuXHRcdGNvbnN0IGdyb3VwUHJvamVjdCA9IHRoaXMuI2dyb3VwLmZpbmQoKGcpID0+IGcucHJvamVjdCA9PT0gcHJvamVjdCk7XG5cdFx0aWYgKGdyb3VwUHJvamVjdCA9PSBudWxsKSByZXR1cm47XG5cblx0XHRncm91cFByb2plY3QuZmlsZXMucHVzaChmaWxlKTtcblx0XHR0aGlzLiNhbGxGaWxlcy5wdXNoKGZpbGUpO1xuXG5cdFx0Y29uc3Qgb3V0QmFzZURpciA9IGdyb3VwUHJvamVjdC5wcm9qZWN0LmdldE91dERpcihcInR5cGVzXCIpO1xuXHRcdGNvbnN0IHRhcmdldCA9IHRoaXMudG9FbWlzc2lvblRhcmdldChncm91cFByb2plY3QsIGZpbGUsIG91dEJhc2VEaXIpO1xuXHRcdHRoaXMuI3RhcmdldHNCeUR0c1BhdGguc2V0KHRhcmdldC5kdHNSZWxhdGl2ZSwgdGFyZ2V0KTtcblx0XHR0aGlzLiN0YXJnZXRzQnlFbWl0dGVkUGF0aC5zZXQodGhpcy5lbWl0dGVkS2V5KGZpbGUpLCB0YXJnZXQpO1xuXHRcdHRoaXMuI2hvc3QuaW52YWxpZGF0ZVNvdXJjZUZpbGUoZmlsZS5mdWxsUGF0aCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZW1pdChcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0aWYgKHRoaXMuI2hvc3QuaGFzSW52YWxpZGF0ZWQoKSkge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbSA9IHRoaXMuI2hvc3QuY3JlYXRlUHJvZ3JhbShcblx0XHRcdFx0dGhpcy4jYWxsRmlsZXMsXG5cdFx0XHRcdHRoaXMuI2NvbXBpbGVyT3B0aW9ucyxcblx0XHRcdFx0dGhpcy4jY29tcGlsZXJIb3N0LFxuXHRcdFx0XHR0aGlzLiNwcm9ncmFtLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKGZpbGVGaWx0ZXIgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZW1pdEFsbChvbk91dHB1dCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVtaXRGaWx0ZXJlZChmaWxlRmlsdGVyLCBvbk91dHB1dCk7XG5cdH1cblxuXHRwcml2YXRlIGVtaXRBbGwob25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkKTogVHJhbnNmb3JtUmVzcG9uc2VbXSB7XG5cdFx0Y29uc3QgcmVzcG9uc2VzOiBUcmFuc2Zvcm1SZXNwb25zZVtdID0gW107XG5cdFx0dGhpcy4jcHJvZ3JhbS5lbWl0KHVuZGVmaW5lZCwgKGVtaXR0ZWRQYXRoLCBjb250ZW50KSA9PiB7XG5cdFx0XHRpZiAoIWVtaXR0ZWRQYXRoLmVuZHNXaXRoKFwiLmQudHNcIikpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSB0aGlzLnRvVHJhbnNmb3JtUmVzcG9uc2UoZW1pdHRlZFBhdGgsIGNvbnRlbnQpO1xuXHRcdFx0cmVzcG9uc2VzLnB1c2gocmVzcG9uc2UpO1xuXHRcdFx0b25PdXRwdXQ/LihyZXNwb25zZSk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHJlc3BvbnNlcztcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgZW1pdEZpbHRlcmVkKFxuXHRcdGZpbGVGaWx0ZXI6IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0XHRvbk91dHB1dD86IChyZXNwb25zZTogVHJhbnNmb3JtUmVzcG9uc2UpID0+IHZvaWQsXG5cdCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdGNvbnN0IGZpbGVzID0gYXdhaXQgUHJvbWlzZS5hbGwodGhpcy4jZ3JvdXAubWFwKCh7IHByb2plY3QgfSkgPT4gZmlsZUZpbHRlcihwcm9qZWN0KSkpO1xuXHRcdGNvbnN0IHNvdXJjZUZpbGVzID0gZmlsZXNcblx0XHRcdC5mbGF0KClcblx0XHRcdC5tYXAoKGZpbGUpID0+IHRoaXMuI3Byb2dyYW0uZ2V0U291cmNlRmlsZShmaWxlLmZ1bGxQYXRoKSlcblx0XHRcdC5maWx0ZXIoKHNmKTogc2YgaXMgdHMuU291cmNlRmlsZSA9PiBzZiAhPSBudWxsKTtcblxuXHRcdGNvbnN0IHJlc3BvbnNlczogVHJhbnNmb3JtUmVzcG9uc2VbXSA9IFtdO1xuXG5cdFx0Zm9yIChjb25zdCBzb3VyY2VGaWxlIG9mIHNvdXJjZUZpbGVzKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtLmVtaXQoc291cmNlRmlsZSwgKGVtaXR0ZWRQYXRoLCBjb250ZW50KSA9PiB7XG5cdFx0XHRcdGlmICghZW1pdHRlZFBhdGguZW5kc1dpdGgoXCIuZC50c1wiKSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCByZXNwb25zZSA9IHRoaXMudG9UcmFuc2Zvcm1SZXNwb25zZShlbWl0dGVkUGF0aCwgY29udGVudCk7XG5cdFx0XHRcdHJlc3BvbnNlcy5wdXNoKHJlc3BvbnNlKTtcblx0XHRcdFx0b25PdXRwdXQ/LihyZXNwb25zZSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzcG9uc2VzO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1RyYW5zZm9ybVJlc3BvbnNlKGVtaXR0ZWRQYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IFRyYW5zZm9ybVJlc3BvbnNlIHtcblx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLiN0YXJnZXRzQnlFbWl0dGVkUGF0aC5nZXQoZW1pdHRlZFBhdGgpO1xuXHRcdGlmICh0YXJnZXQgPT0gbnVsbCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBObyBtYXRjaGluZyBlbWlzc2lvbiB0YXJnZXQgZm9yOiAke2VtaXR0ZWRQYXRofWApO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50b1RyYW5zZm9ybVJlc3BvbnNlRnJvbVRhcmdldCh0YXJnZXQsIGNvbnRlbnQpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1RyYW5zZm9ybVJlc3BvbnNlRnJvbVRhcmdldChcblx0XHR0YXJnZXQ6IEVtaXNzaW9uVGFyZ2V0LFxuXHRcdGNvbnRlbnQ6IHN0cmluZyxcblx0KTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdGNvbnN0IHsgZmlsZSwgdHNjb25maWcsIHByb2plY3QsIG91dHB1dFBhdGgsIG91dHB1dERpciwgZHRzUmVsYXRpdmUgfSA9IHRhcmdldDtcblx0XHRyZXR1cm4gVHJhbnNmb3JtUmVzcG9uc2UuZnJvbSh7XG5cdFx0XHRmaWxlLFxuXHRcdFx0Y29uZmlnOiB0c2NvbmZpZyxcblx0XHRcdG91dGNvbWU6IFwic3VjY2Vzc1wiLFxuXHRcdFx0ZmlsZU5hbWU6IGR0c1JlbGF0aXZlLFxuXHRcdFx0Y29kZTogY29udGVudCxcblx0XHRcdHRhcmdldDogXCJ0eXBlc1wiLFxuXHRcdFx0bWVzc2FnZXM6IFtdLFxuXHRcdFx0cHJvamVjdCxcblx0XHRcdG91dHB1dERpcixcblx0XHRcdG91dHB1dFBhdGgsXG5cdFx0fSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJUeXBlRW1pc3Npb25Qcm9ncmFtIiwiZ3JvdXAiLCJob3N0RmFjdG9yeSIsInRhcmdldHMiLCJidWlsZFRhcmdldE1hcHMiLCJieUR0c1BhdGgiLCJieUVtaXR0ZWRQYXRoIiwidHNjb25maWciLCJjb21waWxlck9wdGlvbnMiLCJmbGF0TWFwIiwiZmlsZXMiLCJjcmVhdGVIb3N0IiwiY3JlYXRlUHJvZ3JhbSIsInRvRW1pc3Npb25UYXJnZXQiLCJncm91cFByb2plY3QiLCJmaWxlIiwib3V0QmFzZURpciIsImV4dE5hbWUiLCJwYXRoIiwiZXh0bmFtZSIsInJlbGF0aXZlUGF0aCIsImR0c1JlbGF0aXZlIiwicmVwbGFjZSIsIlJlZ0V4cCIsIm91dHB1dFBhdGgiLCJqb2luIiwicHJvamVjdCIsIm91dHB1dERpciIsImRpcm5hbWUiLCJlbWl0dGVkS2V5IiwiZnVsbFBhdGgiLCJNYXAiLCJnZXRPdXREaXIiLCJ0YXJnZXQiLCJzZXQiLCJhZGRGaWxlIiwiZmluZCIsImciLCJwdXNoIiwiaW52YWxpZGF0ZVNvdXJjZUZpbGUiLCJlbWl0IiwiZmlsZUZpbHRlciIsIm9uT3V0cHV0IiwiaGFzSW52YWxpZGF0ZWQiLCJlbWl0QWxsIiwiZW1pdEZpbHRlcmVkIiwicmVzcG9uc2VzIiwidW5kZWZpbmVkIiwiZW1pdHRlZFBhdGgiLCJjb250ZW50IiwiZW5kc1dpdGgiLCJyZXNwb25zZSIsInRvVHJhbnNmb3JtUmVzcG9uc2UiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwic291cmNlRmlsZXMiLCJmbGF0IiwiZ2V0U291cmNlRmlsZSIsImZpbHRlciIsInNmIiwic291cmNlRmlsZSIsImdldCIsIkVycm9yIiwidG9UcmFuc2Zvcm1SZXNwb25zZUZyb21UYXJnZXQiLCJUcmFuc2Zvcm1SZXNwb25zZSIsImZyb20iLCJjb25maWciLCJvdXRjb21lIiwiZmlsZU5hbWUiLCJjb2RlIiwibWVzc2FnZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBd0JhQTs7O2VBQUFBOzs7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
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get DEFAULT_TYPE_EMITTER_OPTIONS () {
13
+ return DEFAULT_TYPE_EMITTER_OPTIONS;
14
+ },
15
+ get REQUIRED_TYPE_EMITTER_OPTIONS () {
16
+ return REQUIRED_TYPE_EMITTER_OPTIONS;
17
+ },
18
+ get TypeEmitter () {
19
+ return TypeEmitter;
20
+ }
21
+ });
22
+ const _caching = require("@decohere/nexus/caching");
23
+ const _diagnostics = require("@decohere/nexus/diagnostics");
24
+ const _extensibility = require("@decohere/nexus/extensibility");
25
+ const _io = require("@decohere/nexus/io");
26
+ require("../extensions/project.extensions.js");
27
+ const _cachesoutputsmixin = require("../mixins/caches-outputs.mixin.js");
28
+ const _incrementaltransformmixin = require("../mixins/incremental-transform.mixin.js");
29
+ const _tsprogramhost = require("./ts-program-host.js");
30
+ const _typeemissionprogram = require("./type-emission-program.js");
31
+ const _buildtargettype = require("../types/build-target.type.js");
32
+ function _ts_decorate(decorators, target, key, desc) {
33
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
35
+ 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;
36
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
37
+ }
38
+ function _ts_metadata(k, v) {
39
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
40
+ }
41
+ const DEFAULT_TYPE_EMITTER_OPTIONS = {
42
+ lib: [
43
+ "lib.es2022.d.ts"
44
+ ],
45
+ types: [],
46
+ skipLibCheck: true
47
+ };
48
+ const REQUIRED_TYPE_EMITTER_OPTIONS = {
49
+ emitDeclarationOnly: true,
50
+ declaration: true
51
+ };
52
+ class TypeEmitter extends (0, _extensibility.mixwith)(_cachesoutputsmixin.CachesOutputs, _incrementaltransformmixin.IncrementalTransform) {
53
+ buildTargets = [
54
+ _buildtargettype.BuildTargets.types
55
+ ];
56
+ /** Prepared programs from init(), consumed once by the next transformProject() call. */ #programs;
57
+ #host = new _tsprogramhost.TsProgramHost();
58
+ /**
59
+ * Phase 1: fetch files, create TypeScript programs sequentially.
60
+ * Called before transformProject() so that the heavy createProgram work
61
+ * completes before other transformers (SWC/Rayon) start running in parallel.
62
+ */ async init(projectArrayLike, _filter) {
63
+ if (this.#programs == null) {
64
+ this.#programs = await this.preparePrograms(projectArrayLike);
65
+ }
66
+ }
67
+ async transformProject(projectArrayLike, filter, onOutput) {
68
+ // Consume prepared state from init() if available; otherwise do full setup
69
+ // (e.g. watch-mode single-file rebuilds that skip the init phase).
70
+ const programs = this.#programs ?? await this.preparePrograms(projectArrayLike);
71
+ this.#programs = programs;
72
+ if (programs.length === 0) {
73
+ return [];
74
+ }
75
+ const responses = (await Promise.all(programs.map((program)=>program.emit(filter, onOutput)))).flat();
76
+ this.cacheOutputs(responses);
77
+ return responses;
78
+ }
79
+ async preparePrograms(projectArrayLike) {
80
+ const allProjects = Array.isArray(projectArrayLike) ? projectArrayLike : [
81
+ projectArrayLike
82
+ ];
83
+ const projects = allProjects.filter((proj)=>proj.getForgeConfiguration().targets.includes(_buildtargettype.BuildTargets.types));
84
+ if (projects.length === 0) {
85
+ return [];
86
+ }
87
+ // Pre-fetch all files and tsconfigs in parallel across all projects
88
+ const projectData = await Promise.all(projects.map(async (proj)=>({
89
+ project: proj,
90
+ files: await proj.getAllFiles(),
91
+ tsconfig: await proj.getTsConfig()
92
+ })));
93
+ // Group projects by the resolved compiler options that affect the compiler
94
+ // host (lib loading, module resolution, path aliases). Projects sharing the
95
+ // same resolved values get one shared host AND one shared program — all their
96
+ // files are compiled together, matching v1's single-program approach which
97
+ // avoids re-parsing lib/node_modules .d.ts files per project.
98
+ const groups = Map.groupBy(projectData, ({ tsconfig })=>this.#host.hostKey(tsconfig.compilerOptions));
99
+ return [
100
+ ...groups.values()
101
+ ].map((group)=>new _typeemissionprogram.TypeEmissionProgram(group, this.#host));
102
+ }
103
+ async onIncrementalFileEvent(evt) {
104
+ const { file, project } = evt;
105
+ if (evt.eventName === _io.io.WatchEvents.unlink) {
106
+ this.deleteCachedOutputs(file.fullPath);
107
+ return [];
108
+ }
109
+ if (!project.isSourceFile(file)) {
110
+ return [];
111
+ }
112
+ if (evt.eventName === _io.io.WatchEvents.add) {
113
+ this.#programs?.forEach((p)=>{
114
+ p.addFile(file, project);
115
+ });
116
+ } else {
117
+ this.invalidateReadFileCache(file.fullPath);
118
+ this.#host.invalidateSourceFile(file.fullPath);
119
+ }
120
+ return this.transformProject(project, ()=>Promise.resolve([
121
+ file
122
+ ]));
123
+ }
124
+ invalidateReadFileCache(_path) {}
125
+ }
126
+ _ts_decorate([
127
+ (0, _caching.invalidateCache)(_tsprogramhost.TsProgramHost.prototype.readFileFromDisk, {
128
+ name: "FILE_CONTENT",
129
+ keyFn: (...args)=>args[0]
130
+ }),
131
+ _ts_metadata("design:type", Function),
132
+ _ts_metadata("design:paramtypes", [
133
+ String
134
+ ]),
135
+ _ts_metadata("design:returntype", void 0)
136
+ ], TypeEmitter.prototype, "invalidateReadFileCache", null);
137
+ TypeEmitter = _ts_decorate([
138
+ _diagnostics.Trace
139
+ ], TypeEmitter);
140
+
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3NlcnZpY2VzL3R5cGUtZW1pdHRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFByb2plY3QsIFByb2plY3RGaWxlRXZlbnQgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB7IGludmFsaWRhdGVDYWNoZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2FjaGluZ1wiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgeyBtaXh3aXRoIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB7IGlvIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHR5cGUgdHMgZnJvbSBcInR5cGVzY3JpcHRcIjtcbmltcG9ydCBcIi4uL2V4dGVuc2lvbnMvcHJvamVjdC5leHRlbnNpb25zLmpzXCI7XG5pbXBvcnQgeyBDYWNoZXNPdXRwdXRzIH0gZnJvbSBcIi4uL21peGlucy9jYWNoZXMtb3V0cHV0cy5taXhpbi5qc1wiO1xuaW1wb3J0IHsgSW5jcmVtZW50YWxUcmFuc2Zvcm0gfSBmcm9tIFwiLi4vbWl4aW5zL2luY3JlbWVudGFsLXRyYW5zZm9ybS5taXhpbi5qc1wiO1xuaW1wb3J0IHsgVHNQcm9ncmFtSG9zdCB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cy1wcm9ncmFtLWhvc3QuanNcIjtcbmltcG9ydCB7XG5cdFR5cGVFbWlzc2lvblByb2dyYW0sXG5cdHR5cGUgVHlwZVByb2dyYW1Qcm9qZWN0LFxufSBmcm9tIFwiLi4vc2VydmljZXMvdHlwZS1lbWlzc2lvbi1wcm9ncmFtLmpzXCI7XG5pbXBvcnQgeyB0eXBlIEJ1aWxkVGFyZ2V0LCBCdWlsZFRhcmdldHMgfSBmcm9tIFwiLi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNmb3JtUmVzcG9uc2UgfSBmcm9tIFwiLi4vdHlwZXMvdHJhbnNmb3JtLXJlc3BvbnNlLm1vZGVsLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybWVyIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybWVyLnR5cGUuanNcIjtcblxuLyoqXG4gKiBDb21waWxlciBvcHRpb24gZGVmYXVsdHMgYXBwbGllZCBiZWZvcmUgdGhlIHVzZXIncyB0c2NvbmZpZyDigJQgdGhlIHVzZXIncyB2YWx1ZXMgb3ZlcnJpZGUgdGhlc2UuXG4gKlxuICogbGliOiBFUzIwMjIg4oCUIGF2b2lkcyBsb2FkaW5nIGxpYi5kb20uZC50cyAoMS44IE1CKSB3aGljaCBUUyBpbmNsdWRlcyBieSBkZWZhdWx0XG4gKiB3aGVuIG5vIGBsaWJgIGlzIHNldC4gQmFja2VuZCBwYWNrYWdlcyBoYXZlIG5vIHVzZSBmb3IgYnJvd3NlciBBUElzLlxuICpcbiAqIHR5cGVzOiBbXSDigJQgZGlzYWJsZXMgYW1iaWVudCBAdHlwZXMgYXV0by1kaXNjb3ZlcnkuIFdpdGhvdXQgdGhpcywgVFMgc2NhbnNcbiAqIGV2ZXJ5IEB0eXBlcy8qIHBhY2thZ2UgaW4gdGhlIG5vZGVfbW9kdWxlcyBoaWVyYXJjaHk7IGluIGEgbW9ub3JlcG8gdGhhdCBjYW5cbiAqIHB1bGwgaW4gZG96ZW5zIG9mIHVucmVsYXRlZCBwYWNrYWdlcy4gRXhwbGljaXRseSBpbXBvcnRlZCB0eXBlcyBzdGlsbCByZXNvbHZlXG4gKiBub3JtYWxseTsgb25seSBhbWJpZW50IGdsb2JhbHMgKGUuZy4gQnVmZmVyLCBwcm9jZXNzKSBhcmUgc3VwcHJlc3NlZCDigJQgYWRkXG4gKiBgdHlwZXM6IFtcIm5vZGVcIl1gIHRvIGEgcHJvamVjdCdzIHRzY29uZmlnIHRvIHJlc3RvcmUgdGhlbS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfVFlQRV9FTUlUVEVSX09QVElPTlM6IFJlYWRvbmx5PHRzLkNvbXBpbGVyT3B0aW9ucz4gPSB7XG5cdGxpYjogW1wibGliLmVzMjAyMi5kLnRzXCJdLFxuXHR0eXBlczogW10sXG5cdHNraXBMaWJDaGVjazogdHJ1ZSxcbn07XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9ucyB0aGF0IFR5cGVFbWl0dGVyIGFsd2F5cyBlbmZvcmNlcyByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHVzZXInc1xuICogdHNjb25maWcgc3BlY2lmaWVzLiBBcHBsaWVkIGFmdGVyIHRoZSB1c2VyIHNwcmVhZCBzbyB0aGV5IGNhbm5vdCBiZSBvdmVycmlkZGVuLlxuICovXG5leHBvcnQgY29uc3QgUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlM6IFJlYWRvbmx5PHRzLkNvbXBpbGVyT3B0aW9ucz4gPSB7XG5cdGVtaXREZWNsYXJhdGlvbk9ubHk6IHRydWUsXG5cdGRlY2xhcmF0aW9uOiB0cnVlLFxufTtcblxuQFRyYWNlXG5leHBvcnQgY2xhc3MgVHlwZUVtaXR0ZXJcblx0ZXh0ZW5kcyBtaXh3aXRoKENhY2hlc091dHB1dHMsIEluY3JlbWVudGFsVHJhbnNmb3JtKVxuXHRpbXBsZW1lbnRzIFRyYW5zZm9ybWVyXG57XG5cdHB1YmxpYyBidWlsZFRhcmdldHM6IEJ1aWxkVGFyZ2V0W10gPSBbQnVpbGRUYXJnZXRzLnR5cGVzXTtcblx0LyoqIFByZXBhcmVkIHByb2dyYW1zIGZyb20gaW5pdCgpLCBjb25zdW1lZCBvbmNlIGJ5IHRoZSBuZXh0IHRyYW5zZm9ybVByb2plY3QoKSBjYWxsLiAqL1xuXHQjcHJvZ3JhbXM6IFR5cGVFbWlzc2lvblByb2dyYW1bXSB8IHVuZGVmaW5lZDtcblx0I2hvc3QgPSBuZXcgVHNQcm9ncmFtSG9zdCgpO1xuXG5cdC8qKlxuXHQgKiBQaGFzZSAxOiBmZXRjaCBmaWxlcywgY3JlYXRlIFR5cGVTY3JpcHQgcHJvZ3JhbXMgc2VxdWVudGlhbGx5LlxuXHQgKiBDYWxsZWQgYmVmb3JlIHRyYW5zZm9ybVByb2plY3QoKSBzbyB0aGF0IHRoZSBoZWF2eSBjcmVhdGVQcm9ncmFtIHdvcmtcblx0ICogY29tcGxldGVzIGJlZm9yZSBvdGhlciB0cmFuc2Zvcm1lcnMgKFNXQy9SYXlvbikgc3RhcnQgcnVubmluZyBpbiBwYXJhbGxlbC5cblx0ICovXG5cdHB1YmxpYyBhc3luYyBpbml0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0X2ZpbHRlcj86IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKHRoaXMuI3Byb2dyYW1zID09IG51bGwpIHtcblx0XHRcdHRoaXMuI3Byb2dyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlUHJvZ3JhbXMocHJvamVjdEFycmF5TGlrZSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGFzeW5jIHRyYW5zZm9ybVByb2plY3QoXG5cdFx0cHJvamVjdEFycmF5TGlrZTogUHJvamVjdFtdIHwgUHJvamVjdCxcblx0XHRmaWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdFx0b25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkLFxuXHQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+IHtcblx0XHQvLyBDb25zdW1lIHByZXBhcmVkIHN0YXRlIGZyb20gaW5pdCgpIGlmIGF2YWlsYWJsZTsgb3RoZXJ3aXNlIGRvIGZ1bGwgc2V0dXBcblx0XHQvLyAoZS5nLiB3YXRjaC1tb2RlIHNpbmdsZS1maWxlIHJlYnVpbGRzIHRoYXQgc2tpcCB0aGUgaW5pdCBwaGFzZSkuXG5cdFx0Y29uc3QgcHJvZ3JhbXMgPSB0aGlzLiNwcm9ncmFtcyA/PyAoYXdhaXQgdGhpcy5wcmVwYXJlUHJvZ3JhbXMocHJvamVjdEFycmF5TGlrZSkpO1xuXHRcdHRoaXMuI3Byb2dyYW1zID0gcHJvZ3JhbXM7XG5cblx0XHRpZiAocHJvZ3JhbXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXG5cdFx0Y29uc3QgcmVzcG9uc2VzID0gKFxuXHRcdFx0YXdhaXQgUHJvbWlzZS5hbGwocHJvZ3JhbXMubWFwKChwcm9ncmFtKSA9PiBwcm9ncmFtLmVtaXQoZmlsdGVyLCBvbk91dHB1dCkpKVxuXHRcdCkuZmxhdCgpO1xuXHRcdHRoaXMuY2FjaGVPdXRwdXRzKHJlc3BvbnNlcyk7XG5cdFx0cmV0dXJuIHJlc3BvbnNlcztcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgcHJlcGFyZVByb2dyYW1zKFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdCk6IFByb21pc2U8VHlwZUVtaXNzaW9uUHJvZ3JhbVtdPiB7XG5cdFx0Y29uc3QgYWxsUHJvamVjdHMgPSBBcnJheS5pc0FycmF5KHByb2plY3RBcnJheUxpa2UpXG5cdFx0XHQ/IHByb2plY3RBcnJheUxpa2Vcblx0XHRcdDogW3Byb2plY3RBcnJheUxpa2VdO1xuXHRcdGNvbnN0IHByb2plY3RzID0gYWxsUHJvamVjdHMuZmlsdGVyKChwcm9qKSA9PlxuXHRcdFx0cHJvai5nZXRGb3JnZUNvbmZpZ3VyYXRpb24oKS50YXJnZXRzLmluY2x1ZGVzKEJ1aWxkVGFyZ2V0cy50eXBlcyksXG5cdFx0KTtcblx0XHRpZiAocHJvamVjdHMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXG5cdFx0Ly8gUHJlLWZldGNoIGFsbCBmaWxlcyBhbmQgdHNjb25maWdzIGluIHBhcmFsbGVsIGFjcm9zcyBhbGwgcHJvamVjdHNcblx0XHRjb25zdCBwcm9qZWN0RGF0YTogVHlwZVByb2dyYW1Qcm9qZWN0W10gPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdHByb2plY3RzLm1hcChhc3luYyAocHJvaikgPT4gKHtcblx0XHRcdFx0cHJvamVjdDogcHJvaixcblx0XHRcdFx0ZmlsZXM6IGF3YWl0IHByb2ouZ2V0QWxsRmlsZXMoKSxcblx0XHRcdFx0dHNjb25maWc6IGF3YWl0IHByb2ouZ2V0VHNDb25maWcoKSxcblx0XHRcdH0pKSxcblx0XHQpO1xuXG5cdFx0Ly8gR3JvdXAgcHJvamVjdHMgYnkgdGhlIHJlc29sdmVkIGNvbXBpbGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIGNvbXBpbGVyXG5cdFx0Ly8gaG9zdCAobGliIGxvYWRpbmcsIG1vZHVsZSByZXNvbHV0aW9uLCBwYXRoIGFsaWFzZXMpLiBQcm9qZWN0cyBzaGFyaW5nIHRoZVxuXHRcdC8vIHNhbWUgcmVzb2x2ZWQgdmFsdWVzIGdldCBvbmUgc2hhcmVkIGhvc3QgQU5EIG9uZSBzaGFyZWQgcHJvZ3JhbSDigJQgYWxsIHRoZWlyXG5cdFx0Ly8gZmlsZXMgYXJlIGNvbXBpbGVkIHRvZ2V0aGVyLCBtYXRjaGluZyB2MSdzIHNpbmdsZS1wcm9ncmFtIGFwcHJvYWNoIHdoaWNoXG5cdFx0Ly8gYXZvaWRzIHJlLXBhcnNpbmcgbGliL25vZGVfbW9kdWxlcyAuZC50cyBmaWxlcyBwZXIgcHJvamVjdC5cblx0XHRjb25zdCBncm91cHMgPSBNYXAuZ3JvdXBCeShwcm9qZWN0RGF0YSwgKHsgdHNjb25maWcgfSkgPT5cblx0XHRcdHRoaXMuI2hvc3QuaG9zdEtleSh0c2NvbmZpZy5jb21waWxlck9wdGlvbnMpLFxuXHRcdCk7XG5cblx0XHRyZXR1cm4gWy4uLmdyb3Vwcy52YWx1ZXMoKV0ubWFwKChncm91cCkgPT4gbmV3IFR5cGVFbWlzc2lvblByb2dyYW0oZ3JvdXAsIHRoaXMuI2hvc3QpKTtcblx0fVxuXG5cdHByb3RlY3RlZCBhc3luYyBvbkluY3JlbWVudGFsRmlsZUV2ZW50KGV2dDogUHJvamVjdEZpbGVFdmVudCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdGNvbnN0IHsgZmlsZSwgcHJvamVjdCB9ID0gZXZ0O1xuXHRcdGlmIChldnQuZXZlbnROYW1lID09PSBpby5XYXRjaEV2ZW50cy51bmxpbmspIHtcblx0XHRcdHRoaXMuZGVsZXRlQ2FjaGVkT3V0cHV0cyhmaWxlLmZ1bGxQYXRoKTtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdFx0aWYgKCFwcm9qZWN0LmlzU291cmNlRmlsZShmaWxlKSkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRpZiAoZXZ0LmV2ZW50TmFtZSA9PT0gaW8uV2F0Y2hFdmVudHMuYWRkKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcz8uZm9yRWFjaCgocCkgPT4ge1xuXHRcdFx0XHRwLmFkZEZpbGUoZmlsZSwgcHJvamVjdCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5pbnZhbGlkYXRlUmVhZEZpbGVDYWNoZShmaWxlLmZ1bGxQYXRoKTtcblx0XHRcdHRoaXMuI2hvc3QuaW52YWxpZGF0ZVNvdXJjZUZpbGUoZmlsZS5mdWxsUGF0aCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnRyYW5zZm9ybVByb2plY3QocHJvamVjdCwgKCkgPT4gUHJvbWlzZS5yZXNvbHZlKFtmaWxlXSkpO1xuXHR9XG5cblx0QGludmFsaWRhdGVDYWNoZShUc1Byb2dyYW1Ib3N0LnByb3RvdHlwZS5yZWFkRmlsZUZyb21EaXNrLCB7XG5cdFx0bmFtZTogXCJGSUxFX0NPTlRFTlRcIixcblx0XHRrZXlGbjogKC4uLmFyZ3MpID0+IGFyZ3NbMF0gYXMgc3RyaW5nLFxuXHR9KVxuXHRwcml2YXRlIGludmFsaWRhdGVSZWFkRmlsZUNhY2hlKF9wYXRoOiBzdHJpbmcpOiB2b2lkIHt9XG59XG4iXSwibmFtZXMiOlsiREVGQVVMVF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsIlJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TIiwiVHlwZUVtaXR0ZXIiLCJsaWIiLCJ0eXBlcyIsInNraXBMaWJDaGVjayIsImVtaXREZWNsYXJhdGlvbk9ubHkiLCJkZWNsYXJhdGlvbiIsIm1peHdpdGgiLCJDYWNoZXNPdXRwdXRzIiwiSW5jcmVtZW50YWxUcmFuc2Zvcm0iLCJidWlsZFRhcmdldHMiLCJCdWlsZFRhcmdldHMiLCJUc1Byb2dyYW1Ib3N0IiwiaW5pdCIsInByb2plY3RBcnJheUxpa2UiLCJfZmlsdGVyIiwicHJlcGFyZVByb2dyYW1zIiwidHJhbnNmb3JtUHJvamVjdCIsImZpbHRlciIsIm9uT3V0cHV0IiwicHJvZ3JhbXMiLCJsZW5ndGgiLCJyZXNwb25zZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwicHJvZ3JhbSIsImVtaXQiLCJmbGF0IiwiY2FjaGVPdXRwdXRzIiwiYWxsUHJvamVjdHMiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9qZWN0cyIsInByb2oiLCJnZXRGb3JnZUNvbmZpZ3VyYXRpb24iLCJ0YXJnZXRzIiwiaW5jbHVkZXMiLCJwcm9qZWN0RGF0YSIsInByb2plY3QiLCJmaWxlcyIsImdldEFsbEZpbGVzIiwidHNjb25maWciLCJnZXRUc0NvbmZpZyIsImdyb3VwcyIsIk1hcCIsImdyb3VwQnkiLCJob3N0S2V5IiwiY29tcGlsZXJPcHRpb25zIiwidmFsdWVzIiwiZ3JvdXAiLCJUeXBlRW1pc3Npb25Qcm9ncmFtIiwib25JbmNyZW1lbnRhbEZpbGVFdmVudCIsImV2dCIsImZpbGUiLCJldmVudE5hbWUiLCJpbyIsIldhdGNoRXZlbnRzIiwidW5saW5rIiwiZGVsZXRlQ2FjaGVkT3V0cHV0cyIsImZ1bGxQYXRoIiwiaXNTb3VyY2VGaWxlIiwiYWRkIiwiZm9yRWFjaCIsInAiLCJhZGRGaWxlIiwiaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUiLCJpbnZhbGlkYXRlU291cmNlRmlsZSIsInJlc29sdmUiLCJfcGF0aCIsInByb3RvdHlwZSIsInJlYWRGaWxlRnJvbURpc2siLCJuYW1lIiwia2V5Rm4iLCJhcmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQStCYUE7ZUFBQUE7O1FBVUFDO2VBQUFBOztRQU1BQztlQUFBQTs7O3lCQTlDbUI7NkJBQ1Y7K0JBQ0U7b0JBRUw7UUFFWjtvQ0FDdUI7MkNBQ087K0JBQ1A7cUNBSXZCO2lDQUN3Qzs7Ozs7Ozs7OztBQWdCeEMsTUFBTUYsK0JBQTZEO0lBQ3pF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
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "BuildTargets", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return BuildTargets;
9
+ }
10
+ });
11
+ const BuildTargets = {
12
+ commonjs: "commonjs",
13
+ es6: "es6",
14
+ types: "types"
15
+ };
16
+
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCdWlsZFRhcmdldHMgPSB7XG5cdGNvbW1vbmpzOiBcImNvbW1vbmpzXCIsXG5cdGVzNjogXCJlczZcIixcblx0dHlwZXM6IFwidHlwZXNcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXQ+O1xuXG5leHBvcnQgdHlwZSBCdWlsZFRhcmdldCA9IFwiZXM2XCIgfCBcImNvbW1vbmpzXCIgfCBcInR5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIFRyYW5zcGlsZVRhcmdldCA9IEV4Y2x1ZGU8QnVpbGRUYXJnZXQsIFwidHlwZXNcIj47XG4iXSwibmFtZXMiOlsiQnVpbGRUYXJnZXRzIiwiY29tbW9uanMiLCJlczYiLCJ0eXBlcyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsZUFBZTtJQUMzQkMsVUFBVTtJQUNWQyxLQUFLO0lBQ0xDLE9BQU87QUFDUiJ9
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "SwcConfig", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return SwcConfig;
9
+ }
10
+ });
11
+ class SwcConfig {
12
+ constructor(data = {}){
13
+ Object.assign(this, data);
14
+ }
15
+ }
16
+
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL3N3Yy1jb25maWcudHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRzY29uZmlnIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbmV4cG9ydCB0eXBlIFN3Y0NvbmZpZ09wdGlvbnMgPSB7XG5cdGFsaWFzUGF0aHM/OiBib29sZWFuO1xuXHR0c0NvbmZpZz86IFRzY29uZmlnO1xuXHR1c2VyQ29uZmlnPzogU3djQ29uZmlnO1xufTtcblxuZXhwb3J0IGNsYXNzIFN3Y0NvbmZpZyB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPFN3Y0NvbmZpZz4gPSB7fSkge1xuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJTd2NDb25maWciLCJkYXRhIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQTtJQUNaLFlBQW1CQyxPQUEyQixDQUFDLENBQUMsQ0FBRTtRQUNqREMsT0FBT0MsTUFBTSxDQUFDLElBQUksRUFBRUY7SUFDckI7QUFDRCJ9
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get TransformOutcomes () {
13
+ return TransformOutcomes;
14
+ },
15
+ get TransformResponse () {
16
+ return TransformResponse;
17
+ }
18
+ });
19
+ const TransformOutcomes = {
20
+ success: "success",
21
+ failure: "failure",
22
+ skipped: "skipped"
23
+ };
24
+ class TransformResponse {
25
+ static Success(data) {
26
+ return new TransformResponse({
27
+ ...data,
28
+ outcome: "success"
29
+ });
30
+ }
31
+ static Error(data) {
32
+ return new TransformResponse({
33
+ ...data,
34
+ outcome: "failure"
35
+ });
36
+ }
37
+ static Skipped(data) {
38
+ return new TransformResponse({
39
+ ...data,
40
+ outcome: "skipped"
41
+ });
42
+ }
43
+ static from(data) {
44
+ return new TransformResponse({
45
+ ...data
46
+ });
47
+ }
48
+ constructor(data){
49
+ Object.assign(this, data);
50
+ }
51
+ // Properties are populated via Object.assign in the constructor.
52
+ file;
53
+ outcome;
54
+ target;
55
+ code;
56
+ fileName;
57
+ messages;
58
+ config;
59
+ project;
60
+ outputDir;
61
+ outputPath;
62
+ }
63
+
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFByb2plY3QgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgRmlsZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHsgQnVpbGRUYXJnZXQgfSBmcm9tIFwiLi9idWlsZC10YXJnZXQudHlwZS5qc1wiO1xuXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1PdXRjb21lID0gXCJzdWNjZXNzXCIgfCBcImZhaWx1cmVcIiB8IFwic2tpcHBlZFwiO1xuZXhwb3J0IGNvbnN0IFRyYW5zZm9ybU91dGNvbWVzID0ge1xuXHRzdWNjZXNzOiBcInN1Y2Nlc3NcIixcblx0ZmFpbHVyZTogXCJmYWlsdXJlXCIsXG5cdHNraXBwZWQ6IFwic2tpcHBlZFwiLFxufSBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgVHJhbnNmb3JtT3V0Y29tZT47XG5cbnR5cGUgVHJhbnNmb3JtUmVzcG9uc2VCYXNlID0ge1xuXHRmaWxlOiBGaWxlO1xuXHRjb25maWc6IHVua25vd247XG5cdHByb2plY3Q/OiBQcm9qZWN0O1xuXHQvKiogQWJzb2x1dGUgZGlyZWN0b3J5IHRoYXQgd2lsbCBjb250YWluIHRoZSBvdXRwdXQgZmlsZS4gUHJlLWNvbXB1dGVkIGJ5IHRoZSB0cmFuc2Zvcm1lci4gKi9cblx0b3V0cHV0RGlyPzogc3RyaW5nO1xuXHQvKiogQWJzb2x1dGUgcGF0aCBvZiB0aGUgb3V0cHV0IGZpbGUgKG91dHB1dERpciArIGZpbGVOYW1lKS4gUHJlLWNvbXB1dGVkIGJ5IHRoZSB0cmFuc2Zvcm1lci4gKi9cblx0b3V0cHV0UGF0aD86IHN0cmluZztcbn07XG5cbnR5cGUgVHJhbnNmb3JtU3VjY2VzcyA9IFRyYW5zZm9ybVJlc3BvbnNlQmFzZSAmIHtcblx0b3V0Y29tZTogXCJzdWNjZXNzXCI7XG5cdGNvZGU6IHN0cmluZztcblx0bWVzc2FnZXM/OiBzdHJpbmdbXTtcblx0dGFyZ2V0OiBCdWlsZFRhcmdldDtcblx0ZmlsZU5hbWU6IHN0cmluZztcbn07XG5cbnR5cGUgVHJhbnNmb3JtRmFpbHVyZSA9IFRyYW5zZm9ybVJlc3BvbnNlQmFzZSAmIHtcblx0b3V0Y29tZTogXCJmYWlsdXJlXCI7XG5cdG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHRhcmdldD86IEJ1aWxkVGFyZ2V0O1xuXHRmaWxlTmFtZT86IHN0cmluZztcbn07XG5cbnR5cGUgVHJhbnNmb3JtU2tpcHBlZCA9IFRyYW5zZm9ybVJlc3BvbnNlQmFzZSAmIHtcblx0b3V0Y29tZTogXCJza2lwcGVkXCI7XG5cdG1lc3NhZ2VzPzogc3RyaW5nIHwgc3RyaW5nW107XG59O1xuXG50eXBlIFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxUIGV4dGVuZHMgVHJhbnNmb3JtT3V0Y29tZSA9IFRyYW5zZm9ybU91dGNvbWU+ID0gVCBleHRlbmRzIFwic3VjY2Vzc1wiXG5cdD8gVHJhbnNmb3JtU3VjY2Vzc1xuXHQ6IFQgZXh0ZW5kcyBcInNraXBwZWRcIlxuXHRcdD8gVHJhbnNmb3JtU2tpcHBlZFxuXHRcdDogVHJhbnNmb3JtRmFpbHVyZTtcblxuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybVJlc3BvbnNlIHtcblx0cHVibGljIHN0YXRpYyBTdWNjZXNzKGRhdGE6IE9taXQ8VHJhbnNmb3JtUmVzcG9uc2VEYXRhPFwic3VjY2Vzc1wiPiwgXCJvdXRjb21lXCI+KSB7XG5cdFx0cmV0dXJuIG5ldyBUcmFuc2Zvcm1SZXNwb25zZSh7IC4uLmRhdGEsIG91dGNvbWU6IFwic3VjY2Vzc1wiIGFzIGNvbnN0IH0pO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBFcnJvcihkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcImZhaWx1cmVcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcImZhaWx1cmVcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgU2tpcHBlZChkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcInNraXBwZWRcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcInNraXBwZWRcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgZnJvbShkYXRhOiBUcmFuc2Zvcm1SZXNwb25zZURhdGEpOiBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdFx0cmV0dXJuIG5ldyBUcmFuc2Zvcm1SZXNwb25zZSh7IC4uLmRhdGEgfSBhcyBUcmFuc2Zvcm1SZXNwb25zZURhdGEpO1xuXHR9XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKGRhdGE/OiBQYXJ0aWFsPFRyYW5zZm9ybVJlc3BvbnNlRGF0YT4pIHtcblx0XHRPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEpO1xuXHR9XG5cblx0Ly8gUHJvcGVydGllcyBhcmUgcG9wdWxhdGVkIHZpYSBPYmplY3QuYXNzaWduIGluIHRoZSBjb25zdHJ1Y3Rvci5cblx0cHVibGljIHJlYWRvbmx5IGZpbGUhOiBGaWxlO1xuXHRwdWJsaWMgcmVhZG9ubHkgb3V0Y29tZSE6IFRyYW5zZm9ybU91dGNvbWU7XG5cdHB1YmxpYyByZWFkb25seSB0YXJnZXQ/OiBCdWlsZFRhcmdldDtcblx0cHVibGljIHJlYWRvbmx5IGNvZGUhOiBzdHJpbmc7XG5cdHB1YmxpYyByZWFkb25seSBmaWxlTmFtZT86IHN0cmluZztcblx0cHVibGljIHJlYWRvbmx5IG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHB1YmxpYyByZWFkb25seSBjb25maWc6IHVua25vd247XG5cdHB1YmxpYyByZWFkb25seSBwcm9qZWN0PzogUHJvamVjdDtcblx0cHVibGljIHJlYWRvbmx5IG91dHB1dERpcj86IHN0cmluZztcblx0cHVibGljIHJlYWRvbmx5IG91dHB1dFBhdGg/OiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiVHJhbnNmb3JtT3V0Y29tZXMiLCJUcmFuc2Zvcm1SZXNwb25zZSIsInN1Y2Nlc3MiLCJmYWlsdXJlIiwic2tpcHBlZCIsIlN1Y2Nlc3MiLCJkYXRhIiwib3V0Y29tZSIsIkVycm9yIiwiU2tpcHBlZCIsImZyb20iLCJPYmplY3QiLCJhc3NpZ24iLCJmaWxlIiwidGFyZ2V0IiwiY29kZSIsImZpbGVOYW1lIiwibWVzc2FnZXMiLCJjb25maWciLCJwcm9qZWN0Iiwib3V0cHV0RGlyIiwib3V0cHV0UGF0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFLYUE7ZUFBQUE7O1FBMENBQztlQUFBQTs7O0FBMUNOLE1BQU1ELG9CQUFvQjtJQUNoQ0UsU0FBUztJQUNUQyxTQUFTO0lBQ1RDLFNBQVM7QUFDVjtBQXNDTyxNQUFNSDtJQUNaLE9BQWNJLFFBQVFDLElBQXVELEVBQUU7UUFDOUUsT0FBTyxJQUFJTCxrQkFBa0I7WUFBRSxHQUFHSyxJQUFJO1lBQUVDLFNBQVM7UUFBbUI7SUFDckU7SUFFQSxPQUFjQyxNQUFNRixJQUF1RCxFQUFFO1FBQzVFLE9BQU8sSUFBSUwsa0JBQWtCO1lBQUUsR0FBR0ssSUFBSTtZQUFFQyxTQUFTO1FBQW1CO0lBQ3JFO0lBRUEsT0FBY0UsUUFBUUgsSUFBdUQsRUFBRTtRQUM5RSxPQUFPLElBQUlMLGtCQUFrQjtZQUFFLEdBQUdLLElBQUk7WUFBRUMsU0FBUztRQUFtQjtJQUNyRTtJQUVBLE9BQWNHLEtBQUtKLElBQTJCLEVBQXFCO1FBQ2xFLE9BQU8sSUFBSUwsa0JBQWtCO1lBQUUsR0FBR0ssSUFBSTtRQUFDO0lBQ3hDO0lBRUEsWUFBbUJBLElBQXFDLENBQUU7UUFDekRLLE9BQU9DLE1BQU0sQ0FBQyxJQUFJLEVBQUVOO0lBQ3JCO0lBRUEsaUVBQWlFO0lBQ2pETyxLQUFZO0lBQ1pOLFFBQTJCO0lBQzNCTyxPQUFxQjtJQUNyQkMsS0FBYztJQUNkQyxTQUFrQjtJQUNsQkMsU0FBb0I7SUFDcEJDLE9BQWdCO0lBQ2hCQyxRQUFrQjtJQUNsQkMsVUFBbUI7SUFDbkJDLFdBQW9CO0FBQ3JDIn0=
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "TransformerKey", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return TransformerKey;
9
+ }
10
+ });
11
+ const TransformerKey = Symbol("TransformerKey");
12
+
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9zcmMvcHJvamVjdHMvZm9yZ2Uvc3JjL3R5cGVzL3RyYW5zZm9ybWVyLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBXb3Jrc3BhY2UgfSBmcm9tIFwiQGRlY29oZXJlL21lc2hcIjtcbmltcG9ydCB0eXBlIHsgRmlsZUV4IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB0eXBlIHsgQnVpbGRUYXJnZXQgfSBmcm9tIFwiLi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNmb3JtUmVzcG9uc2UgfSBmcm9tIFwiLi90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwuanNcIjtcblxuZXhwb3J0IHR5cGUgRmlsZUV2ZW50ID1cblx0fCB7IHR5cGU6IFwiY2hhbmdlZFwiIHwgXCJhZGRlZFwiOyBmaWxlOiBGaWxlRXg7IHByb2plY3Q/OiBQcm9qZWN0IH1cblx0fCB7IHR5cGU6IFwiZGVsZXRlZFwiOyBmaWxlOiBGaWxlRXg7IHByb2plY3Q6IFByb2plY3QgfTtcblxuZXhwb3J0IGNvbnN0IFRyYW5zZm9ybWVyS2V5ID0gU3ltYm9sKFwiVHJhbnNmb3JtZXJLZXlcIik7XG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZm9ybWVyIHtcblx0cmVhZG9ubHkgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdO1xuXG5cdC8qKlxuXHQgKiBPcHRpb25hbCBwcmUtYnVpbGQgcGhhc2UgdGhhdCBydW5zIHNlcXVlbnRpYWxseSBiZWZvcmUgYWxsIHRyYW5zZm9ybWVycydcblx0ICoge0BsaW5rIHRyYW5zZm9ybVByb2plY3R9IGNhbGxzLiBVc2UgZm9yIGV4cGVuc2l2ZSBDUFUtYm91bmQgc2V0dXAgKGUuZy5cblx0ICogVHlwZVNjcmlwdCBjcmVhdGVQcm9ncmFtKSB0aGF0IG11c3Qgbm90IGNvbXBldGUgd2l0aCBvdGhlciB0cmFuc2Zvcm1lcnMnXG5cdCAqIHBhcmFsbGVsIHdvcmtsb2Fkcy5cblx0ICovXG5cdGluaXQ/KFxuXHRcdHByb2plY3RzOiBQcm9qZWN0IHwgUHJvamVjdFtdLFxuXHRcdGZpbGVGaWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD47XG5cblx0dHJhbnNmb3JtUHJvamVjdChcblx0XHRwcm9qZWN0czogUHJvamVjdCB8IFByb2plY3RbXSxcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPjtcblxuXHQvKipcblx0ICogSWYgaW1wbGVtZW50ZWQsIHNpZ25hbHMgdGhpcyB0cmFuc2Zvcm1lciBzdXBwb3J0cyBpbmNyZW1lbnRhbCAod2F0Y2gpIG1vZGUuXG5cdCAqIHtAbGluayBCdWlsZEFjdGlvbn0gY2FsbHMgdGhpcyBhZnRlciB0aGUgaW5pdGlhbCBidWlsZCwgcGFzc2luZyB0aGUgd29ya3NwYWNlXG5cdCAqIHNvIHRoZSB0cmFuc2Zvcm1lciBjYW4gc2VsZi1zdWJzY3JpYmUgdG8gZmlsZSBjaGFuZ2UgZXZlbnRzLlxuXHQgKi9cblx0d2F0Y2g/KHdvcmtzcGFjZTogV29ya3NwYWNlKTogdm9pZDtcblxuXHQvKipcblx0ICogRW1pdHMgaW5jcmVtZW50YWwgdHJhbnNmb3JtIHJlc3VsdHMgYWZ0ZXIgZWFjaCBmaWxlLWNoYW5nZSBjeWNsZS5cblx0ICogUHJlc2VudCB3aGVuIHtAbGluayB3YXRjaH0gaXMgaW1wbGVtZW50ZWQuXG5cdCAqL1xuXHRpbmNyZW1lbnRhbFRyYW5zZm9ybSQ/OiBPYnNlcnZhYmxlPFRyYW5zZm9ybVJlc3BvbnNlW10+O1xufVxuIl0sIm5hbWVzIjpbIlRyYW5zZm9ybWVyS2V5IiwiU3ltYm9sIl0sIm1hcHBpbmdzIjoiOzs7OytCQVVhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxpQkFBaUJDLE9BQU8ifQ==
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9