@decohere/forge 0.0.1-dev.9 → 0.0.1-dev.91
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 +9 -1
- package/commonjs/src/actions/clean.action.js +3 -3
- package/commonjs/src/actions/copy.action.js +38 -6
- package/commonjs/src/actions/docker.action.js +198 -0
- package/commonjs/src/actions/index.js +5 -1
- package/commonjs/src/actions/link.action.js +156 -0
- package/commonjs/src/actions/tag.action.js +3 -4
- package/commonjs/src/actions/typecheck.action.js +69 -0
- package/commonjs/src/actions/unlink.action.js +76 -0
- package/commonjs/src/actions/watch.action.js +2 -1
- package/commonjs/src/commands/docker.command.js +28 -0
- package/commonjs/src/commands/index.js +4 -1
- package/commonjs/src/commands/link.command.js +89 -0
- package/commonjs/src/commands/typecheck.command.js +26 -0
- package/commonjs/src/factories/swc-config.factory.js +14 -4
- package/commonjs/src/forge.module.js +12 -3
- package/commonjs/src/index.js +4 -1
- package/commonjs/src/mixins/caches-outputs.mixin.js +8 -6
- package/commonjs/src/services/swc-transpiler.js +27 -7
- package/commonjs/src/services/ts-program-host.js +3 -3
- package/commonjs/src/services/type-emission-program.js +24 -7
- package/commonjs/src/services/type-emitter.js +34 -4
- package/commonjs/src/types/swc-config.type.js +1 -1
- package/commonjs/src/types/transform-response.model.js +2 -1
- package/commonjs/src/vitest/forge-build.plugin.js +3 -2
- package/commonjs/src/workspace.config.js +29 -2
- package/es6/src/actions/build.action.js +9 -1
- package/es6/src/actions/clean.action.js +3 -3
- package/es6/src/actions/copy.action.js +38 -6
- package/es6/src/actions/docker.action.js +184 -0
- package/es6/src/actions/index.js +5 -1
- package/es6/src/actions/link.action.js +131 -0
- package/es6/src/actions/tag.action.js +3 -4
- package/es6/src/actions/typecheck.action.js +56 -0
- package/es6/src/actions/unlink.action.js +61 -0
- package/es6/src/actions/watch.action.js +2 -1
- package/es6/src/commands/docker.command.js +18 -0
- package/es6/src/commands/index.js +4 -1
- package/es6/src/commands/link.command.js +66 -0
- package/es6/src/commands/typecheck.command.js +16 -0
- package/es6/src/factories/swc-config.factory.js +14 -4
- package/es6/src/forge.module.js +12 -3
- package/es6/src/index.js +2 -2
- package/es6/src/mixins/caches-outputs.mixin.js +8 -6
- package/es6/src/services/swc-transpiler.js +27 -7
- package/es6/src/services/ts-program-host.js +3 -3
- package/es6/src/services/type-emission-program.js +24 -7
- package/es6/src/services/type-emitter.js +31 -4
- package/es6/src/types/swc-config.type.js +1 -1
- package/es6/src/types/transform-response.model.js +2 -1
- package/es6/src/vitest/forge-build.plugin.js +3 -2
- package/es6/src/workspace.config.js +30 -2
- package/package.json +5 -5
- package/types/src/actions/build.action.d.ts +1 -0
- package/types/src/actions/copy.action.d.ts +10 -0
- package/types/src/actions/docker.action.d.ts +33 -0
- package/types/src/actions/index.d.ts +4 -0
- package/types/src/actions/link.action.d.ts +25 -0
- package/types/src/actions/typecheck.action.d.ts +14 -0
- package/types/src/actions/unlink.action.d.ts +9 -0
- package/types/src/commands/docker.command.d.ts +6 -0
- package/types/src/commands/index.d.ts +3 -0
- package/types/src/commands/link.command.d.ts +28 -0
- package/types/src/commands/typecheck.command.d.ts +6 -0
- package/types/src/factories/swc-config.factory.d.ts +1 -0
- package/types/src/forge.module.d.ts +8 -0
- package/types/src/index.d.ts +1 -1
- package/types/src/services/swc-transpiler.d.ts +5 -2
- package/types/src/services/ts-program-host.d.ts +1 -1
- package/types/src/services/type-emission-program.d.ts +6 -1
- package/types/src/services/type-emitter.d.ts +14 -0
- package/types/src/types/swc-config.type.d.ts +5 -1
- package/types/src/types/transform-response.model.d.ts +2 -0
- package/types/src/workspace.config.d.ts +6 -0
|
@@ -41,6 +41,17 @@ class SwcTranspiler extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Cach
|
|
|
41
41
|
_buildtargettype.BuildTargets.commonjs
|
|
42
42
|
];
|
|
43
43
|
#swcConfigFactory = new _swcconfigfactory.SwcConfigFactory();
|
|
44
|
+
#workspace;
|
|
45
|
+
watch(workspace) {
|
|
46
|
+
this.#workspace = workspace;
|
|
47
|
+
super.watch(workspace);
|
|
48
|
+
}
|
|
49
|
+
withAliasContext(options = {}) {
|
|
50
|
+
return {
|
|
51
|
+
...options,
|
|
52
|
+
workspace: options.workspace ?? this.#workspace
|
|
53
|
+
};
|
|
54
|
+
}
|
|
44
55
|
async transformProject(projectArrayLike, fileFilter, onOutput) {
|
|
45
56
|
const projects = Array.isArray(projectArrayLike) ? projectArrayLike : [
|
|
46
57
|
projectArrayLike
|
|
@@ -58,7 +69,9 @@ class SwcTranspiler extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Cach
|
|
|
58
69
|
return this.transformTarget(sourceFiles, target, {
|
|
59
70
|
tsConfig,
|
|
60
71
|
userConfig,
|
|
61
|
-
aliasPaths
|
|
72
|
+
aliasPaths,
|
|
73
|
+
workspace: this.#workspace,
|
|
74
|
+
projects
|
|
62
75
|
}, project, onOutput);
|
|
63
76
|
}));
|
|
64
77
|
return responses.flat();
|
|
@@ -79,7 +92,7 @@ class SwcTranspiler extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Cach
|
|
|
79
92
|
* Reads the file with `fs.readFileSync` and transpiles via `swc.transformSync`.
|
|
80
93
|
* Intended for callers that cannot await (e.g. Node.js `registerHooks` load hook).
|
|
81
94
|
*/ transformFileSync(file, buildTarget, options = {}) {
|
|
82
|
-
const baseConfig = this.#swcConfigFactory.createBaseConfig(buildTarget, options);
|
|
95
|
+
const baseConfig = this.#swcConfigFactory.createBaseConfig(buildTarget, this.withAliasContext(options));
|
|
83
96
|
const swcOptions = this.#swcConfigFactory.createFileConfig(file, baseConfig);
|
|
84
97
|
let content;
|
|
85
98
|
try {
|
|
@@ -111,6 +124,7 @@ class SwcTranspiler extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Cach
|
|
|
111
124
|
return _transformresponsemodel.TransformResponse.Success({
|
|
112
125
|
file,
|
|
113
126
|
code: transformed.code,
|
|
127
|
+
sourceContent: content,
|
|
114
128
|
target: buildTarget,
|
|
115
129
|
fileName,
|
|
116
130
|
config: swcOptions
|
|
@@ -126,7 +140,7 @@ class SwcTranspiler extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Cach
|
|
|
126
140
|
}
|
|
127
141
|
}
|
|
128
142
|
async transformTarget(files, buildTarget, options, project, onOutput) {
|
|
129
|
-
const baseConfig = this.#swcConfigFactory.createBaseConfig(buildTarget, options
|
|
143
|
+
const baseConfig = this.#swcConfigFactory.createBaseConfig(buildTarget, this.withAliasContext(options));
|
|
130
144
|
return await Promise.all(files.map((file)=>{
|
|
131
145
|
const swcOptions = this.#swcConfigFactory.createFileConfig(file, baseConfig);
|
|
132
146
|
return this.runTransform(file, buildTarget, swcOptions, project, onOutput);
|
|
@@ -158,6 +172,7 @@ class SwcTranspiler extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Cach
|
|
|
158
172
|
const success = _transformresponsemodel.TransformResponse.Success({
|
|
159
173
|
file,
|
|
160
174
|
code: transformed.code,
|
|
175
|
+
sourceContent: content,
|
|
161
176
|
target,
|
|
162
177
|
fileName,
|
|
163
178
|
outputDir,
|
|
@@ -189,14 +204,19 @@ class SwcTranspiler extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Cach
|
|
|
189
204
|
if (!project.isSourceFile(file)) {
|
|
190
205
|
return [];
|
|
191
206
|
}
|
|
207
|
+
const freshContent = await file.getContent();
|
|
208
|
+
const cached = this.outputCache.get(file.fullPath);
|
|
209
|
+
if (cached != null && cached[0]?.sourceContent === freshContent) {
|
|
210
|
+
return [];
|
|
211
|
+
}
|
|
192
212
|
this.invalidateContentCache(file);
|
|
193
213
|
return this.transformProject(project, ()=>Promise.resolve([
|
|
194
214
|
file
|
|
195
215
|
]));
|
|
196
216
|
}
|
|
197
217
|
invalidateContentCache(_file) {}
|
|
198
|
-
getFileContent(file) {
|
|
199
|
-
return file.getContent();
|
|
218
|
+
async getFileContent(file) {
|
|
219
|
+
return await file.getContent();
|
|
200
220
|
}
|
|
201
221
|
}
|
|
202
222
|
_ts_decorate([
|
|
@@ -219,10 +239,10 @@ _ts_decorate([
|
|
|
219
239
|
_ts_metadata("design:paramtypes", [
|
|
220
240
|
typeof FileEx === "undefined" ? Object : FileEx
|
|
221
241
|
]),
|
|
222
|
-
_ts_metadata("design:returntype",
|
|
242
|
+
_ts_metadata("design:returntype", Promise)
|
|
223
243
|
], SwcTranspiler.prototype, "getFileContent", null);
|
|
224
244
|
SwcTranspiler = _ts_decorate([
|
|
225
245
|
_diagnostics.Trace
|
|
226
246
|
], SwcTranspiler);
|
|
227
247
|
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy9zd2MtdHJhbnNwaWxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgY2FjaGUsIGludmFsaWRhdGVDYWNoZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2FjaGluZ1wiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgeyBtaXh3aXRoIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB7IGlvIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHsgdHlwZSBPcHRpb25zLCB0cmFuc2Zvcm0sIHRyYW5zZm9ybVN5bmMgfSBmcm9tIFwiQHN3Yy9jb3JlXCI7XG5pbXBvcnQge1xuXHR0eXBlIEJ1aWxkVGFyZ2V0LFxuXHRCdWlsZFRhcmdldHMsXG5cdHR5cGUgVHJhbnNwaWxlVGFyZ2V0LFxufSBmcm9tIFwiLi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCBcIi4uL2V4dGVuc2lvbnMvcHJvamVjdC5leHRlbnNpb25zLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFByb2plY3RGaWxlRXZlbnQsIFRzY29uZmlnIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBTd2NDb25maWdGYWN0b3J5IH0gZnJvbSBcIi4uL2ZhY3Rvcmllcy9zd2MtY29uZmlnLmZhY3RvcnkuanNcIjtcbmltcG9ydCB7IENhY2hlc091dHB1dHMgfSBmcm9tIFwiLi4vbWl4aW5zL2NhY2hlcy1vdXRwdXRzLm1peGluLmpzXCI7XG5pbXBvcnQgeyBJbmNyZW1lbnRhbFRyYW5zZm9ybSB9IGZyb20gXCIuLi9taXhpbnMvaW5jcmVtZW50YWwtdHJhbnNmb3JtLm1peGluLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFN3Y0NvbmZpZyB9IGZyb20gXCIuLi90eXBlcy9zd2MtY29uZmlnLnR5cGUuanNcIjtcbmltcG9ydCB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbmV4cG9ydCB0eXBlIFRyYW5zcGlsZU9wdGlvbnMgPSB7XG5cdGFsaWFzUGF0aHM/OiBib29sZWFuO1xuXHR0c0NvbmZpZz86IFRzY29uZmlnO1xuXHR1c2VyQ29uZmlnPzogU3djQ29uZmlnO1xufTtcblxuQFRyYWNlXG5leHBvcnQgY2xhc3MgU3djVHJhbnNwaWxlclxuXHRleHRlbmRzIG1peHdpdGgoQ2FjaGVzT3V0cHV0cywgSW5jcmVtZW50YWxUcmFuc2Zvcm0pXG5cdGltcGxlbWVudHMgVHJhbnNmb3JtZXJcbntcblx0cHVibGljIGJ1aWxkVGFyZ2V0czogQnVpbGRUYXJnZXRbXSA9IFtCdWlsZFRhcmdldHMuZXM2LCBCdWlsZFRhcmdldHMuY29tbW9uanNdO1xuXHQjc3djQ29uZmlnRmFjdG9yeSA9IG5ldyBTd2NDb25maWdGYWN0b3J5KCk7XG5cblx0cHVibGljIGFzeW5jIHRyYW5zZm9ybVByb2plY3QoXG5cdFx0cHJvamVjdEFycmF5TGlrZTogUHJvamVjdCB8IFByb2plY3RbXSxcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3QgcHJvamVjdHMgPSBBcnJheS5pc0FycmF5KHByb2plY3RBcnJheUxpa2UpID8gcHJvamVjdEFycmF5TGlrZSA6IFtwcm9qZWN0QXJyYXlMaWtlXTtcblx0XHRjb25zdCByZXNwb25zZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdHByb2plY3RzLm1hcChhc3luYyAocHJvamVjdCkgPT4ge1xuXHRcdFx0XHRjb25zdCB7IHRhcmdldHMsIGFsaWFzUGF0aHMgfSA9IHByb2plY3QuZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCk7XG5cdFx0XHRcdGNvbnN0IHRyYW5zcGlsZVRhcmdldHMgPSB0YXJnZXRzLmZpbHRlcigoYnQpID0+IGJ0ICE9PSBCdWlsZFRhcmdldHMudHlwZXMpO1xuXHRcdFx0XHRpZiAodHJhbnNwaWxlVGFyZ2V0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXR1cm4gW107XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBzb3VyY2VGaWxlcyA9IGF3YWl0IChmaWxlRmlsdGVyPy4ocHJvamVjdCkgPz8gcHJvamVjdC5nZXRBbGxGaWxlcygpKTtcblx0XHRcdFx0Y29uc3QgdHNDb25maWcgPSBhd2FpdCBwcm9qZWN0LmdldFRzQ29uZmlnKCk7XG5cdFx0XHRcdGNvbnN0IHVzZXJDb25maWcgPSBhd2FpdCBwcm9qZWN0LmdldFN3Y0NvbmZpZygpO1xuXHRcdFx0XHRjb25zdCByZXNwb25zZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdFx0XHR0cmFuc3BpbGVUYXJnZXRzLm1hcCgodGFyZ2V0KSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1UYXJnZXQoXG5cdFx0XHRcdFx0XHRcdHNvdXJjZUZpbGVzLFxuXHRcdFx0XHRcdFx0XHR0YXJnZXQsXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR0c0NvbmZpZyxcblx0XHRcdFx0XHRcdFx0XHR1c2VyQ29uZmlnLFxuXHRcdFx0XHRcdFx0XHRcdGFsaWFzUGF0aHMsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHByb2plY3QsXG5cdFx0XHRcdFx0XHRcdG9uT3V0cHV0LFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KTtcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlcy5mbGF0KCk7XG5cdFx0XHR9KSxcblx0XHQpO1xuXG5cdFx0Y29uc3QgZmxhdCA9IHJlc3BvbnNlcy5mbGF0KCk7XG5cdFx0dGhpcy5jYWNoZU91dHB1dHMoZmxhdCk7XG5cdFx0cmV0dXJuIGZsYXQ7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgdHJhbnNmb3JtRmlsZShcblx0XHRmaWxlQXJyYXlMaWtlOiBGaWxlRXhbXSB8IEZpbGVFeCxcblx0XHRidWlsZFRhcmdldDogVHJhbnNwaWxlVGFyZ2V0LFxuXHRcdG9wdGlvbnM6IFRyYW5zcGlsZU9wdGlvbnMgPSB7fSxcblx0KSB7XG5cdFx0Y29uc3QgZmlsZXMgPSBBcnJheS5pc0FycmF5KGZpbGVBcnJheUxpa2UpID8gZmlsZUFycmF5TGlrZSA6IFtmaWxlQXJyYXlMaWtlXTtcblx0XHRjb25zdCByZXNwb25zZXMgPSB0aGlzLnRyYW5zZm9ybVRhcmdldChmaWxlcywgYnVpbGRUYXJnZXQsIG9wdGlvbnMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHQvKipcblx0ICogU3luY2hyb25vdXMsIHNpbmdsZS1maWxlIHZhcmlhbnQgb2YgYHRyYW5zZm9ybUZpbGVgLlxuXHQgKiBSZWFkcyB0aGUgZmlsZSB3aXRoIGBmcy5yZWFkRmlsZVN5bmNgIGFuZCB0cmFuc3BpbGVzIHZpYSBgc3djLnRyYW5zZm9ybVN5bmNgLlxuXHQgKiBJbnRlbmRlZCBmb3IgY2FsbGVycyB0aGF0IGNhbm5vdCBhd2FpdCAoZS5nLiBOb2RlLmpzIGByZWdpc3Rlckhvb2tzYCBsb2FkIGhvb2spLlxuXHQgKi9cblx0cHVibGljIHRyYW5zZm9ybUZpbGVTeW5jKFxuXHRcdGZpbGU6IEZpbGVFeCxcblx0XHRidWlsZFRhcmdldDogVHJhbnNwaWxlVGFyZ2V0LFxuXHRcdG9wdGlvbnM6IFRyYW5zcGlsZU9wdGlvbnMgPSB7fSxcblx0KTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdGNvbnN0IGJhc2VDb25maWcgPSB0aGlzLiNzd2NDb25maWdGYWN0b3J5LmNyZWF0ZUJhc2VDb25maWcoYnVpbGRUYXJnZXQsIG9wdGlvbnMpO1xuXHRcdGNvbnN0IHN3Y09wdGlvbnMgPSB0aGlzLiNzd2NDb25maWdGYWN0b3J5LmNyZWF0ZUZpbGVDb25maWcoZmlsZSwgYmFzZUNvbmZpZyk7XG5cblx0XHRsZXQgY29udGVudDogc3RyaW5nO1xuXHRcdHRyeSB7XG5cdFx0XHRjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZpbGUuZnVsbFBhdGgsIFwidXRmOFwiKTtcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0cmV0dXJuIFRyYW5zZm9ybVJlc3BvbnNlLkVycm9yKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0bWVzc2FnZXM6IFtTdHJpbmcoZXJyb3IpXSxcblx0XHRcdFx0Y29uZmlnOiBzd2NPcHRpb25zLFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKGNvbnRlbnQgPT09IFwiXCIpIHtcblx0XHRcdHJldHVybiBUcmFuc2Zvcm1SZXNwb25zZS5Ta2lwcGVkKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0bWVzc2FnZXM6IFwiRmlsZSBpcyBlbXB0eVwiLFxuXHRcdFx0XHRjb25maWc6IHN3Y09wdGlvbnMsXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1TeW5jKGNvbnRlbnQsIHN3Y09wdGlvbnMpO1xuXHRcdFx0aWYgKHRyYW5zZm9ybWVkID09IG51bGwpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwic3djLnRyYW5zZm9ybVN5bmMgcmV0dXJuZWQgbm8gcmVzdWx0XCIpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZmlsZVBhdGggPSBmaWxlLnJlbGF0aXZlUGF0aDtcblx0XHRcdGNvbnN0IGV4dE5hbWUgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xuXHRcdFx0Y29uc3QgZmlsZU5hbWUgPSBmaWxlUGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7ZXh0TmFtZX0kYCksIFwiLmpzXCIpO1xuXHRcdFx0cmV0dXJuIFRyYW5zZm9ybVJlc3BvbnNlLlN1Y2Nlc3Moe1xuXHRcdFx0XHRmaWxlLFxuXHRcdFx0XHRjb2RlOiB0cmFuc2Zvcm1lZC5jb2RlLFxuXHRcdFx0XHR0YXJnZXQ6IGJ1aWxkVGFyZ2V0LFxuXHRcdFx0XHRmaWxlTmFtZSxcblx0XHRcdFx0Y29uZmlnOiBzd2NPcHRpb25zLFxuXHRcdFx0fSk7XG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdHJldHVybiBUcmFuc2Zvcm1SZXNwb25zZS5FcnJvcih7XG5cdFx0XHRcdGZpbGUsXG5cdFx0XHRcdG1lc3NhZ2VzOiBbU3RyaW5nKGVycm9yKV0sXG5cdFx0XHRcdGNvbmZpZzogc3djT3B0aW9ucyxcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgdHJhbnNmb3JtVGFyZ2V0KFxuXHRcdGZpbGVzOiBGaWxlRXhbXSxcblx0XHRidWlsZFRhcmdldDogVHJhbnNwaWxlVGFyZ2V0LFxuXHRcdG9wdGlvbnM/OiBUcmFuc3BpbGVPcHRpb25zLFxuXHRcdHByb2plY3Q/OiBQcm9qZWN0LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KSB7XG5cdFx0Y29uc3QgYmFzZUNvbmZpZyA9IHRoaXMuI3N3Y0NvbmZpZ0ZhY3RvcnkuY3JlYXRlQmFzZUNvbmZpZyhidWlsZFRhcmdldCwgb3B0aW9ucyA/PyB7fSk7XG5cdFx0cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKFxuXHRcdFx0ZmlsZXMubWFwKChmaWxlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHN3Y09wdGlvbnMgPSB0aGlzLiNzd2NDb25maWdGYWN0b3J5LmNyZWF0ZUZpbGVDb25maWcoZmlsZSwgYmFzZUNvbmZpZyk7XG5cdFx0XHRcdHJldHVybiB0aGlzLnJ1blRyYW5zZm9ybShmaWxlLCBidWlsZFRhcmdldCwgc3djT3B0aW9ucywgcHJvamVjdCwgb25PdXRwdXQpO1xuXHRcdFx0fSksXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgcnVuVHJhbnNmb3JtKFxuXHRcdGZpbGU6IEZpbGVFeCxcblx0XHR0YXJnZXQ6IEJ1aWxkVGFyZ2V0LFxuXHRcdHN3Y09wdGlvbnM6IE9wdGlvbnMsXG5cdFx0cHJvamVjdD86IFByb2plY3QsXG5cdFx0b25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkLFxuXHQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlPiB7XG5cdFx0Y29uc3QgY29udGVudCA9IGF3YWl0IHRoaXMuZ2V0RmlsZUNvbnRlbnQoZmlsZSk7XG5cdFx0aWYgKGNvbnRlbnQgPT09IFwiXCIpIHtcblx0XHRcdGNvbnN0IHNraXBwZWQgPSBUcmFuc2Zvcm1SZXNwb25zZS5Ta2lwcGVkKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0bWVzc2FnZXM6IFwiRmlsZSBpcyBlbXB0eVwiLFxuXHRcdFx0XHRjb25maWc6IHN3Y09wdGlvbnMsXG5cdFx0XHRcdHByb2plY3QsXG5cdFx0XHR9KTtcblx0XHRcdG9uT3V0cHV0Py4oc2tpcHBlZCk7XG5cdFx0XHRyZXR1cm4gc2tpcHBlZDtcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgZmlsZVBhdGggPSBmaWxlLnJlbGF0aXZlUGF0aDtcblx0XHRcdGNvbnN0IGV4dE5hbWUgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xuXHRcdFx0Y29uc3QgZmlsZU5hbWUgPSBmaWxlUGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7ZXh0TmFtZX0kYCksIFwiLmpzXCIpO1xuXHRcdFx0Y29uc3Qgb3V0QmFzZURpciA9IHByb2plY3Q/LmdldE91dERpcih0YXJnZXQpO1xuXHRcdFx0Y29uc3Qgb3V0cHV0UGF0aCA9IG91dEJhc2VEaXIgPyBwYXRoLmpvaW4ob3V0QmFzZURpciwgZmlsZU5hbWUpIDogdW5kZWZpbmVkO1xuXHRcdFx0Y29uc3Qgb3V0cHV0RGlyID0gb3V0cHV0UGF0aCA/IHBhdGguZGlybmFtZShvdXRwdXRQYXRoKSA6IHVuZGVmaW5lZDtcblx0XHRcdGNvbnN0IHRyYW5zZm9ybWVkID0gYXdhaXQgdHJhbnNmb3JtKGNvbnRlbnQsIHN3Y09wdGlvbnMpO1xuXHRcdFx0aWYgKHRyYW5zZm9ybWVkID09IG51bGwpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwic3djLnRyYW5zZm9ybSByZXR1cm5lZCBubyByZXN1bHRcIik7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHN1Y2Nlc3MgPSBUcmFuc2Zvcm1SZXNwb25zZS5TdWNjZXNzKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0Y29kZTogdHJhbnNmb3JtZWQuY29kZSxcblx0XHRcdFx0dGFyZ2V0LFxuXHRcdFx0XHRmaWxlTmFtZSxcblx0XHRcdFx0b3V0cHV0RGlyLFxuXHRcdFx0XHRvdXRwdXRQYXRoLFxuXHRcdFx0XHRjb25maWc6IHN3Y09wdGlvbnMsXG5cdFx0XHRcdHByb2plY3QsXG5cdFx0XHR9KTtcblx0XHRcdG9uT3V0cHV0Py4oc3VjY2Vzcyk7XG5cdFx0XHRyZXR1cm4gc3VjY2Vzcztcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0Y29uc3QgZmFpbHVyZSA9IFRyYW5zZm9ybVJlc3BvbnNlLkVycm9yKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0bWVzc2FnZXM6IFtTdHJpbmcoZXJyb3IpXSxcblx0XHRcdFx0Y29uZmlnOiBzd2NPcHRpb25zLFxuXHRcdFx0XHRwcm9qZWN0LFxuXHRcdFx0fSk7XG5cdFx0XHRvbk91dHB1dD8uKGZhaWx1cmUpO1xuXHRcdFx0cmV0dXJuIGZhaWx1cmU7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIG9uSW5jcmVtZW50YWxGaWxlRXZlbnQoZXZ0OiBQcm9qZWN0RmlsZUV2ZW50KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3QgeyBmaWxlLCBwcm9qZWN0IH0gPSBldnQ7XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLnVubGluaykge1xuXHRcdFx0dGhpcy5kZWxldGVDYWNoZWRPdXRwdXRzKGZpbGUuZnVsbFBhdGgpO1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRpZiAoIXByb2plY3QuaXNTb3VyY2VGaWxlKGZpbGUpKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdHRoaXMuaW52YWxpZGF0ZUNvbnRlbnRDYWNoZShmaWxlKTtcblx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1Qcm9qZWN0KHByb2plY3QsICgpID0+IFByb21pc2UucmVzb2x2ZShbZmlsZV0pKTtcblx0fVxuXG5cdEBpbnZhbGlkYXRlQ2FjaGUoU3djVHJhbnNwaWxlci5wcm90b3R5cGUuZ2V0RmlsZUNvbnRlbnQsIHtcblx0XHRuYW1lOiBcIkZJTEVfQ09OVEVOVFwiLFxuXHRcdGtleUZuOiAoLi4uYXJncykgPT4gKGFyZ3NbMF0gYXMgRmlsZUV4KS5mdWxsUGF0aCxcblx0fSlcblx0cHVibGljIGludmFsaWRhdGVDb250ZW50Q2FjaGUoX2ZpbGU6IEZpbGVFeCk6IHZvaWQge31cblxuXHRAY2FjaGUoeyBuYW1lOiBcIkZJTEVfQ09OVEVOVFwiLCBrZXlGbjogKC4uLmFyZ3MpID0+IChhcmdzWzBdIGFzIEZpbGVFeCkuZnVsbFBhdGggfSlcblx0cHJpdmF0ZSBnZXRGaWxlQ29udGVudChmaWxlOiBGaWxlRXgpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdHJldHVybiBmaWxlLmdldENvbnRlbnQoKTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIlN3Y1RyYW5zcGlsZXIiLCJtaXh3aXRoIiwiQ2FjaGVzT3V0cHV0cyIsIkluY3JlbWVudGFsVHJhbnNmb3JtIiwiYnVpbGRUYXJnZXRzIiwiQnVpbGRUYXJnZXRzIiwiZXM2IiwiY29tbW9uanMiLCJTd2NDb25maWdGYWN0b3J5IiwidHJhbnNmb3JtUHJvamVjdCIsInByb2plY3RBcnJheUxpa2UiLCJmaWxlRmlsdGVyIiwib25PdXRwdXQiLCJwcm9qZWN0cyIsIkFycmF5IiwiaXNBcnJheSIsInJlc3BvbnNlcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJwcm9qZWN0IiwidGFyZ2V0cyIsImFsaWFzUGF0aHMiLCJnZXRGb3JnZUNvbmZpZ3VyYXRpb24iLCJ0cmFuc3BpbGVUYXJnZXRzIiwiZmlsdGVyIiwiYnQiLCJ0eXBlcyIsImxlbmd0aCIsInNvdXJjZUZpbGVzIiwiZ2V0QWxsRmlsZXMiLCJ0c0NvbmZpZyIsImdldFRzQ29uZmlnIiwidXNlckNvbmZpZyIsImdldFN3Y0NvbmZpZyIsInRhcmdldCIsInRyYW5zZm9ybVRhcmdldCIsImZsYXQiLCJjYWNoZU91dHB1dHMiLCJ0cmFuc2Zvcm1GaWxlIiwiZmlsZUFycmF5TGlrZSIsImJ1aWxkVGFyZ2V0Iiwib3B0aW9ucyIsImZpbGVzIiwidHJhbnNmb3JtRmlsZVN5bmMiLCJmaWxlIiwiYmFzZUNvbmZpZyIsImNyZWF0ZUJhc2VDb25maWciLCJzd2NPcHRpb25zIiwiY3JlYXRlRmlsZUNvbmZpZyIsImNvbnRlbnQiLCJmcyIsInJlYWRGaWxlU3luYyIsImZ1bGxQYXRoIiwiZXJyb3IiLCJUcmFuc2Zvcm1SZXNwb25zZSIsIkVycm9yIiwibWVzc2FnZXMiLCJTdHJpbmciLCJjb25maWciLCJTa2lwcGVkIiwidHJhbnNmb3JtZWQiLCJ0cmFuc2Zvcm1TeW5jIiwiZmlsZVBhdGgiLCJyZWxhdGl2ZVBhdGgiLCJleHROYW1lIiwicGF0aCIsImV4dG5hbWUiLCJmaWxlTmFtZSIsInJlcGxhY2UiLCJSZWdFeHAiLCJTdWNjZXNzIiwiY29kZSIsInJ1blRyYW5zZm9ybSIsImdldEZpbGVDb250ZW50Iiwic2tpcHBlZCIsIm91dEJhc2VEaXIiLCJnZXRPdXREaXIiLCJvdXRwdXRQYXRoIiwiam9pbiIsInVuZGVmaW5lZCIsIm91dHB1dERpciIsImRpcm5hbWUiLCJ0cmFuc2Zvcm0iLCJzdWNjZXNzIiwiZmFpbHVyZSIsIm9uSW5jcmVtZW50YWxGaWxlRXZlbnQiLCJldnQiLCJldmVudE5hbWUiLCJpbyIsIldhdGNoRXZlbnRzIiwidW5saW5rIiwiZGVsZXRlQ2FjaGVkT3V0cHV0cyIsImlzU291cmNlRmlsZSIsImludmFsaWRhdGVDb250ZW50Q2FjaGUiLCJyZXNvbHZlIiwiX2ZpbGUiLCJnZXRDb250ZW50IiwicHJvdG90eXBlIiwibmFtZSIsImtleUZuIiwiYXJncyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE4QmFBOzs7ZUFBQUE7OzsrREE5QkU7aUVBQ0U7eUJBRXNCOzZCQUNqQjsrQkFDRTtvQkFFTDtzQkFDb0M7aUNBS2hEO1FBQ0E7a0NBRTBCO29DQUNIOzJDQUNPO3dDQUVIOzs7Ozs7Ozs7Ozs7Ozs7QUFVM0IsTUFBTUEsc0JBQ0pDLElBQUFBLHNCQUFPLEVBQUNDLGlDQUFhLEVBQUVDLCtDQUFvQjtJQUc1Q0MsZUFBOEI7UUFBQ0MsNkJBQVksQ0FBQ0MsR0FBRztRQUFFRCw2QkFBWSxDQUFDRSxRQUFRO0tBQUMsQ0FBQztJQUMvRSxDQUFBLGdCQUFpQixHQUFHLElBQUlDLGtDQUFnQixHQUFHO0lBRTNDLE1BQWFDLGlCQUNaQyxnQkFBcUMsRUFDckNDLFVBQW9ELEVBQ3BEQyxRQUFnRCxFQUNqQjtRQUMvQixNQUFNQyxXQUFXQyxNQUFNQyxPQUFPLENBQUNMLG9CQUFvQkEsbUJBQW1CO1lBQUNBO1NBQWlCO1FBQ3hGLE1BQU1NLFlBQVksTUFBTUMsUUFBUUMsR0FBRyxDQUNsQ0wsU0FBU00sR0FBRyxDQUFDLE9BQU9DO1lBQ25CLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxVQUFVLEVBQUUsR0FBR0YsUUFBUUcscUJBQXFCO1lBQzdELE1BQU1DLG1CQUFtQkgsUUFBUUksTUFB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
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy9zd2MtdHJhbnNwaWxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCwgUHJvamVjdEZpbGVFdmVudCwgVHNjb25maWcsIFdvcmtzcGFjZSB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgY2FjaGUsIGludmFsaWRhdGVDYWNoZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2FjaGluZ1wiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgeyBtaXh3aXRoIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB7IGlvIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHsgdHlwZSBPcHRpb25zLCB0cmFuc2Zvcm0sIHRyYW5zZm9ybVN5bmMgfSBmcm9tIFwiQHN3Yy9jb3JlXCI7XG5pbXBvcnQge1xuXHR0eXBlIEJ1aWxkVGFyZ2V0LFxuXHRCdWlsZFRhcmdldHMsXG5cdHR5cGUgVHJhbnNwaWxlVGFyZ2V0LFxufSBmcm9tIFwiLi4vdHlwZXMvYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcbmltcG9ydCBcIi4uL2V4dGVuc2lvbnMvcHJvamVjdC5leHRlbnNpb25zLmpzXCI7XG5pbXBvcnQgeyBTd2NDb25maWdGYWN0b3J5IH0gZnJvbSBcIi4uL2ZhY3Rvcmllcy9zd2MtY29uZmlnLmZhY3RvcnkuanNcIjtcbmltcG9ydCB7IENhY2hlc091dHB1dHMgfSBmcm9tIFwiLi4vbWl4aW5zL2NhY2hlcy1vdXRwdXRzLm1peGluLmpzXCI7XG5pbXBvcnQgeyBJbmNyZW1lbnRhbFRyYW5zZm9ybSB9IGZyb20gXCIuLi9taXhpbnMvaW5jcmVtZW50YWwtdHJhbnNmb3JtLm1peGluLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFN3Y0NvbmZpZyB9IGZyb20gXCIuLi90eXBlcy9zd2MtY29uZmlnLnR5cGUuanNcIjtcbmltcG9ydCB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbmV4cG9ydCB0eXBlIFRyYW5zcGlsZU9wdGlvbnMgPSB7XG5cdGFsaWFzUGF0aHM/OiBib29sZWFuO1xuXHR0c0NvbmZpZz86IFRzY29uZmlnO1xuXHR1c2VyQ29uZmlnPzogU3djQ29uZmlnO1xuXHR3b3Jrc3BhY2U/OiBXb3Jrc3BhY2U7XG5cdHByb2plY3RzPzogcmVhZG9ubHkgUHJvamVjdFtdO1xufTtcblxuQFRyYWNlXG5leHBvcnQgY2xhc3MgU3djVHJhbnNwaWxlclxuXHRleHRlbmRzIG1peHdpdGgoQ2FjaGVzT3V0cHV0cywgSW5jcmVtZW50YWxUcmFuc2Zvcm0pXG5cdGltcGxlbWVudHMgVHJhbnNmb3JtZXJcbntcblx0cHVibGljIGJ1aWxkVGFyZ2V0czogQnVpbGRUYXJnZXRbXSA9IFtCdWlsZFRhcmdldHMuZXM2LCBCdWlsZFRhcmdldHMuY29tbW9uanNdO1xuXHQjc3djQ29uZmlnRmFjdG9yeSA9IG5ldyBTd2NDb25maWdGYWN0b3J5KCk7XG5cdCN3b3Jrc3BhY2U/OiBXb3Jrc3BhY2U7XG5cblx0cHVibGljIHdhdGNoKHdvcmtzcGFjZTogV29ya3NwYWNlKTogdm9pZCB7XG5cdFx0dGhpcy4jd29ya3NwYWNlID0gd29ya3NwYWNlO1xuXHRcdHN1cGVyLndhdGNoKHdvcmtzcGFjZSk7XG5cdH1cblxuXHRwcml2YXRlIHdpdGhBbGlhc0NvbnRleHQob3B0aW9uczogVHJhbnNwaWxlT3B0aW9ucyA9IHt9KTogVHJhbnNwaWxlT3B0aW9ucyB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLm9wdGlvbnMsXG5cdFx0XHR3b3Jrc3BhY2U6IG9wdGlvbnMud29ya3NwYWNlID8/IHRoaXMuI3dvcmtzcGFjZSxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHRyYW5zZm9ybVByb2plY3QoXG5cdFx0cHJvamVjdEFycmF5TGlrZTogUHJvamVjdCB8IFByb2plY3RbXSxcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3QgcHJvamVjdHMgPSBBcnJheS5pc0FycmF5KHByb2plY3RBcnJheUxpa2UpID8gcHJvamVjdEFycmF5TGlrZSA6IFtwcm9qZWN0QXJyYXlMaWtlXTtcblx0XHRjb25zdCByZXNwb25zZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdHByb2plY3RzLm1hcChhc3luYyAocHJvamVjdCkgPT4ge1xuXHRcdFx0XHRjb25zdCB7IHRhcmdldHMsIGFsaWFzUGF0aHMgfSA9IHByb2plY3QuZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCk7XG5cdFx0XHRcdGNvbnN0IHRyYW5zcGlsZVRhcmdldHMgPSB0YXJnZXRzLmZpbHRlcigoYnQpID0+IGJ0ICE9PSBCdWlsZFRhcmdldHMudHlwZXMpO1xuXHRcdFx0XHRpZiAodHJhbnNwaWxlVGFyZ2V0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXR1cm4gW107XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBzb3VyY2VGaWxlcyA9IGF3YWl0IChmaWxlRmlsdGVyPy4ocHJvamVjdCkgPz8gcHJvamVjdC5nZXRBbGxGaWxlcygpKTtcblx0XHRcdFx0Y29uc3QgdHNDb25maWcgPSBhd2FpdCBwcm9qZWN0LmdldFRzQ29uZmlnKCk7XG5cdFx0XHRcdGNvbnN0IHVzZXJDb25maWcgPSBhd2FpdCBwcm9qZWN0LmdldFN3Y0NvbmZpZygpO1xuXHRcdFx0XHRjb25zdCByZXNwb25zZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcblx0XHRcdFx0XHR0cmFuc3BpbGVUYXJnZXRzLm1hcCgodGFyZ2V0KSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1UYXJnZXQoXG5cdFx0XHRcdFx0XHRcdHNvdXJjZUZpbGVzLFxuXHRcdFx0XHRcdFx0XHR0YXJnZXQsXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHR0c0NvbmZpZyxcblx0XHRcdFx0XHRcdFx0XHR1c2VyQ29uZmlnLFxuXHRcdFx0XHRcdFx0XHRcdGFsaWFzUGF0aHMsXG5cdFx0XHRcdFx0XHRcdFx0d29ya3NwYWNlOiB0aGlzLiN3b3Jrc3BhY2UsXG5cdFx0XHRcdFx0XHRcdFx0cHJvamVjdHMsXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdHByb2plY3QsXG5cdFx0XHRcdFx0XHRcdG9uT3V0cHV0LFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KTtcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlcy5mbGF0KCk7XG5cdFx0XHR9KSxcblx0XHQpO1xuXG5cdFx0Y29uc3QgZmxhdCA9IHJlc3BvbnNlcy5mbGF0KCk7XG5cdFx0dGhpcy5jYWNoZU91dHB1dHMoZmxhdCk7XG5cdFx0cmV0dXJuIGZsYXQ7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgdHJhbnNmb3JtRmlsZShcblx0XHRmaWxlQXJyYXlMaWtlOiBGaWxlRXhbXSB8IEZpbGVFeCxcblx0XHRidWlsZFRhcmdldDogVHJhbnNwaWxlVGFyZ2V0LFxuXHRcdG9wdGlvbnM6IFRyYW5zcGlsZU9wdGlvbnMgPSB7fSxcblx0KSB7XG5cdFx0Y29uc3QgZmlsZXMgPSBBcnJheS5pc0FycmF5KGZpbGVBcnJheUxpa2UpID8gZmlsZUFycmF5TGlrZSA6IFtmaWxlQXJyYXlMaWtlXTtcblx0XHRjb25zdCByZXNwb25zZXMgPSB0aGlzLnRyYW5zZm9ybVRhcmdldChmaWxlcywgYnVpbGRUYXJnZXQsIG9wdGlvbnMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHQvKipcblx0ICogU3luY2hyb25vdXMsIHNpbmdsZS1maWxlIHZhcmlhbnQgb2YgYHRyYW5zZm9ybUZpbGVgLlxuXHQgKiBSZWFkcyB0aGUgZmlsZSB3aXRoIGBmcy5yZWFkRmlsZVN5bmNgIGFuZCB0cmFuc3BpbGVzIHZpYSBgc3djLnRyYW5zZm9ybVN5bmNgLlxuXHQgKiBJbnRlbmRlZCBmb3IgY2FsbGVycyB0aGF0IGNhbm5vdCBhd2FpdCAoZS5nLiBOb2RlLmpzIGByZWdpc3Rlckhvb2tzYCBsb2FkIGhvb2spLlxuXHQgKi9cblx0cHVibGljIHRyYW5zZm9ybUZpbGVTeW5jKFxuXHRcdGZpbGU6IEZpbGVFeCxcblx0XHRidWlsZFRhcmdldDogVHJhbnNwaWxlVGFyZ2V0LFxuXHRcdG9wdGlvbnM6IFRyYW5zcGlsZU9wdGlvbnMgPSB7fSxcblx0KTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdGNvbnN0IGJhc2VDb25maWcgPSB0aGlzLiNzd2NDb25maWdGYWN0b3J5LmNyZWF0ZUJhc2VDb25maWcoXG5cdFx0XHRidWlsZFRhcmdldCxcblx0XHRcdHRoaXMud2l0aEFsaWFzQ29udGV4dChvcHRpb25zKSxcblx0XHQpO1xuXHRcdGNvbnN0IHN3Y09wdGlvbnMgPSB0aGlzLiNzd2NDb25maWdGYWN0b3J5LmNyZWF0ZUZpbGVDb25maWcoZmlsZSwgYmFzZUNvbmZpZyk7XG5cblx0XHRsZXQgY29udGVudDogc3RyaW5nO1xuXHRcdHRyeSB7XG5cdFx0XHRjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZpbGUuZnVsbFBhdGgsIFwidXRmOFwiKTtcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0cmV0dXJuIFRyYW5zZm9ybVJlc3BvbnNlLkVycm9yKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0bWVzc2FnZXM6IFtTdHJpbmcoZXJyb3IpXSxcblx0XHRcdFx0Y29uZmlnOiBzd2NPcHRpb25zLFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKGNvbnRlbnQgPT09IFwiXCIpIHtcblx0XHRcdHJldHVybiBUcmFuc2Zvcm1SZXNwb25zZS5Ta2lwcGVkKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0bWVzc2FnZXM6IFwiRmlsZSBpcyBlbXB0eVwiLFxuXHRcdFx0XHRjb25maWc6IHN3Y09wdGlvbnMsXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1TeW5jKGNvbnRlbnQsIHN3Y09wdGlvbnMpO1xuXHRcdFx0aWYgKHRyYW5zZm9ybWVkID09IG51bGwpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwic3djLnRyYW5zZm9ybVN5bmMgcmV0dXJuZWQgbm8gcmVzdWx0XCIpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZmlsZVBhdGggPSBmaWxlLnJlbGF0aXZlUGF0aDtcblx0XHRcdGNvbnN0IGV4dE5hbWUgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xuXHRcdFx0Y29uc3QgZmlsZU5hbWUgPSBmaWxlUGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7ZXh0TmFtZX0kYCksIFwiLmpzXCIpO1xuXHRcdFx0cmV0dXJuIFRyYW5zZm9ybVJlc3BvbnNlLlN1Y2Nlc3Moe1xuXHRcdFx0XHRmaWxlLFxuXHRcdFx0XHRjb2RlOiB0cmFuc2Zvcm1lZC5jb2RlLFxuXHRcdFx0XHRzb3VyY2VDb250ZW50OiBjb250ZW50LFxuXHRcdFx0XHR0YXJnZXQ6IGJ1aWxkVGFyZ2V0LFxuXHRcdFx0XHRmaWxlTmFtZSxcblx0XHRcdFx0Y29uZmlnOiBzd2NPcHRpb25zLFxuXHRcdFx0fSk7XG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdHJldHVybiBUcmFuc2Zvcm1SZXNwb25zZS5FcnJvcih7XG5cdFx0XHRcdGZpbGUsXG5cdFx0XHRcdG1lc3NhZ2VzOiBbU3RyaW5nKGVycm9yKV0sXG5cdFx0XHRcdGNvbmZpZzogc3djT3B0aW9ucyxcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgdHJhbnNmb3JtVGFyZ2V0KFxuXHRcdGZpbGVzOiBGaWxlRXhbXSxcblx0XHRidWlsZFRhcmdldDogVHJhbnNwaWxlVGFyZ2V0LFxuXHRcdG9wdGlvbnM/OiBUcmFuc3BpbGVPcHRpb25zLFxuXHRcdHByb2plY3Q/OiBQcm9qZWN0LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KSB7XG5cdFx0Y29uc3QgYmFzZUNvbmZpZyA9IHRoaXMuI3N3Y0NvbmZpZ0ZhY3RvcnkuY3JlYXRlQmFzZUNvbmZpZyhcblx0XHRcdGJ1aWxkVGFyZ2V0LFxuXHRcdFx0dGhpcy53aXRoQWxpYXNDb250ZXh0KG9wdGlvbnMpLFxuXHRcdCk7XG5cdFx0cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKFxuXHRcdFx0ZmlsZXMubWFwKChmaWxlKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHN3Y09wdGlvbnMgPSB0aGlzLiNzd2NDb25maWdGYWN0b3J5LmNyZWF0ZUZpbGVDb25maWcoZmlsZSwgYmFzZUNvbmZpZyk7XG5cdFx0XHRcdHJldHVybiB0aGlzLnJ1blRyYW5zZm9ybShmaWxlLCBidWlsZFRhcmdldCwgc3djT3B0aW9ucywgcHJvamVjdCwgb25PdXRwdXQpO1xuXHRcdFx0fSksXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgcnVuVHJhbnNmb3JtKFxuXHRcdGZpbGU6IEZpbGVFeCxcblx0XHR0YXJnZXQ6IEJ1aWxkVGFyZ2V0LFxuXHRcdHN3Y09wdGlvbnM6IE9wdGlvbnMsXG5cdFx0cHJvamVjdD86IFByb2plY3QsXG5cdFx0b25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkLFxuXHQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlPiB7XG5cdFx0Y29uc3QgY29udGVudCA9IGF3YWl0IHRoaXMuZ2V0RmlsZUNvbnRlbnQoZmlsZSk7XG5cdFx0aWYgKGNvbnRlbnQgPT09IFwiXCIpIHtcblx0XHRcdGNvbnN0IHNraXBwZWQgPSBUcmFuc2Zvcm1SZXNwb25zZS5Ta2lwcGVkKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0bWVzc2FnZXM6IFwiRmlsZSBpcyBlbXB0eVwiLFxuXHRcdFx0XHRjb25maWc6IHN3Y09wdGlvbnMsXG5cdFx0XHRcdHByb2plY3QsXG5cdFx0XHR9KTtcblx0XHRcdG9uT3V0cHV0Py4oc2tpcHBlZCk7XG5cdFx0XHRyZXR1cm4gc2tpcHBlZDtcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgZmlsZVBhdGggPSBmaWxlLnJlbGF0aXZlUGF0aDtcblx0XHRcdGNvbnN0IGV4dE5hbWUgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpO1xuXHRcdFx0Y29uc3QgZmlsZU5hbWUgPSBmaWxlUGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7ZXh0TmFtZX0kYCksIFwiLmpzXCIpO1xuXHRcdFx0Y29uc3Qgb3V0QmFzZURpciA9IHByb2plY3Q/LmdldE91dERpcih0YXJnZXQpO1xuXHRcdFx0Y29uc3Qgb3V0cHV0UGF0aCA9IG91dEJhc2VEaXIgPyBwYXRoLmpvaW4ob3V0QmFzZURpciwgZmlsZU5hbWUpIDogdW5kZWZpbmVkO1xuXHRcdFx0Y29uc3Qgb3V0cHV0RGlyID0gb3V0cHV0UGF0aCA/IHBhdGguZGlybmFtZShvdXRwdXRQYXRoKSA6IHVuZGVmaW5lZDtcblx0XHRcdGNvbnN0IHRyYW5zZm9ybWVkID0gYXdhaXQgdHJhbnNmb3JtKGNvbnRlbnQsIHN3Y09wdGlvbnMpO1xuXHRcdFx0aWYgKHRyYW5zZm9ybWVkID09IG51bGwpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwic3djLnRyYW5zZm9ybSByZXR1cm5lZCBubyByZXN1bHRcIik7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IHN1Y2Nlc3MgPSBUcmFuc2Zvcm1SZXNwb25zZS5TdWNjZXNzKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0Y29kZTogdHJhbnNmb3JtZWQuY29kZSxcblx0XHRcdFx0c291cmNlQ29udGVudDogY29udGVudCxcblx0XHRcdFx0dGFyZ2V0LFxuXHRcdFx0XHRmaWxlTmFtZSxcblx0XHRcdFx0b3V0cHV0RGlyLFxuXHRcdFx0XHRvdXRwdXRQYXRoLFxuXHRcdFx0XHRjb25maWc6IHN3Y09wdGlvbnMsXG5cdFx0XHRcdHByb2plY3QsXG5cdFx0XHR9KTtcblx0XHRcdG9uT3V0cHV0Py4oc3VjY2Vzcyk7XG5cdFx0XHRyZXR1cm4gc3VjY2Vzcztcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0Y29uc3QgZmFpbHVyZSA9IFRyYW5zZm9ybVJlc3BvbnNlLkVycm9yKHtcblx0XHRcdFx0ZmlsZSxcblx0XHRcdFx0bWVzc2FnZXM6IFtTdHJpbmcoZXJyb3IpXSxcblx0XHRcdFx0Y29uZmlnOiBzd2NPcHRpb25zLFxuXHRcdFx0XHRwcm9qZWN0LFxuXHRcdFx0fSk7XG5cdFx0XHRvbk91dHB1dD8uKGZhaWx1cmUpO1xuXHRcdFx0cmV0dXJuIGZhaWx1cmU7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIG9uSW5jcmVtZW50YWxGaWxlRXZlbnQoZXZ0OiBQcm9qZWN0RmlsZUV2ZW50KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3QgeyBmaWxlLCBwcm9qZWN0IH0gPSBldnQ7XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLnVubGluaykge1xuXHRcdFx0dGhpcy5kZWxldGVDYWNoZWRPdXRwdXRzKGZpbGUuZnVsbFBhdGgpO1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRpZiAoIXByb2plY3QuaXNTb3VyY2VGaWxlKGZpbGUpKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdGNvbnN0IGZyZXNoQ29udGVudCA9IGF3YWl0IGZpbGUuZ2V0Q29udGVudCgpO1xuXHRcdGNvbnN0IGNhY2hlZCA9IHRoaXMub3V0cHV0Q2FjaGUuZ2V0KGZpbGUuZnVsbFBhdGgpO1xuXHRcdGlmIChjYWNoZWQgIT0gbnVsbCAmJiBjYWNoZWRbMF0/LnNvdXJjZUNvbnRlbnQgPT09IGZyZXNoQ29udGVudCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHR0aGlzLmludmFsaWRhdGVDb250ZW50Q2FjaGUoZmlsZSk7XG5cdFx0cmV0dXJuIHRoaXMudHJhbnNmb3JtUHJvamVjdChwcm9qZWN0LCAoKSA9PiBQcm9taXNlLnJlc29sdmUoW2ZpbGVdKSk7XG5cdH1cblxuXHRAaW52YWxpZGF0ZUNhY2hlKFN3Y1RyYW5zcGlsZXIucHJvdG90eXBlLmdldEZpbGVDb250ZW50LCB7XG5cdFx0bmFtZTogXCJGSUxFX0NPTlRFTlRcIixcblx0XHRrZXlGbjogKC4uLmFyZ3MpID0+IChhcmdzWzBdIGFzIEZpbGVFeCkuZnVsbFBhdGgsXG5cdH0pXG5cdHB1YmxpYyBpbnZhbGlkYXRlQ29udGVudENhY2hlKF9maWxlOiBGaWxlRXgpOiB2b2lkIHt9XG5cblx0QGNhY2hlKHsgbmFtZTogXCJGSUxFX0NPTlRFTlRcIiwga2V5Rm46ICguLi5hcmdzKSA9PiAoYXJnc1swXSBhcyBGaWxlRXgpLmZ1bGxQYXRoIH0pXG5cdHByaXZhdGUgYXN5bmMgZ2V0RmlsZUNvbnRlbnQoZmlsZTogRmlsZUV4KTogUHJvbWlzZTxzdHJpbmc+IHtcblx0XHRyZXR1cm4gYXdhaXQgZmlsZS5nZXRDb250ZW50KCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJTd2NUcmFuc3BpbGVyIiwibWl4d2l0aCIsIkNhY2hlc091dHB1dHMiLCJJbmNyZW1lbnRhbFRyYW5zZm9ybSIsImJ1aWxkVGFyZ2V0cyIsIkJ1aWxkVGFyZ2V0cyIsImVzNiIsImNvbW1vbmpzIiwiU3djQ29uZmlnRmFjdG9yeSIsIndhdGNoIiwid29ya3NwYWNlIiwid2l0aEFsaWFzQ29udGV4dCIsIm9wdGlvbnMiLCJ0cmFuc2Zvcm1Qcm9qZWN0IiwicHJvamVjdEFycmF5TGlrZSIsImZpbGVGaWx0ZXIiLCJvbk91dHB1dCIsInByb2plY3RzIiwiQXJyYXkiLCJpc0FycmF5IiwicmVzcG9uc2VzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInByb2plY3QiLCJ0YXJnZXRzIiwiYWxpYXNQYXRocyIsImdldEZvcmdlQ29uZmlndXJhdGlvbiIsInRyYW5zcGlsZVRhcmdldHMiLCJmaWx0ZXIiLCJidCIsInR5cGVzIiwibGVuZ3RoIiwic291cmNlRmlsZXMiLCJnZXRBbGxGaWxlcyIsInRzQ29uZmlnIiwiZ2V0VHNDb25maWciLCJ1c2VyQ29uZmlnIiwiZ2V0U3djQ29uZmlnIiwidGFyZ2V0IiwidHJhbnNmb3JtVGFyZ2V0IiwiZmxhdCIsImNhY2hlT3V0cHV0cyIsInRyYW5zZm9ybUZpbGUiLCJmaWxlQXJyYXlMaWtlIiwiYnVpbGRUYXJnZXQiLCJmaWxlcyIsInRyYW5zZm9ybUZpbGVTeW5jIiwiZmlsZSIsImJhc2VDb25maWciLCJjcmVhdGVCYXNlQ29uZmlnIiwic3djT3B0aW9ucyIsImNyZWF0ZUZpbGVDb25maWciLCJjb250ZW50IiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJmdWxsUGF0aCIsImVycm9yIiwiVHJhbnNmb3JtUmVzcG9uc2UiLCJFcnJvciIsIm1lc3NhZ2VzIiwiU3RyaW5nIiwiY29uZmlnIiwiU2tpcHBlZCIsInRyYW5zZm9ybWVkIiwidHJhbnNmb3JtU3luYyIsImZpbGVQYXRoIiwicmVsYXRpdmVQYXRoIiwiZXh0TmFtZSIsInBhdGgiLCJleHRuYW1lIiwiZmlsZU5hbWUiLCJyZXBsYWNlIiwiUmVnRXhwIiwiU3VjY2VzcyIsImNvZGUiLCJzb3VyY2VDb250ZW50IiwicnVuVHJhbnNmb3JtIiwiZ2V0RmlsZUNvbnRlbnQiLCJza2lwcGVkIiwib3V0QmFzZURpciIsImdldE91dERpciIsIm91dHB1dFBhdGgiLCJqb2luIiwidW5kZWZpbmVkIiwib3V0cHV0RGlyIiwiZGlybmFtZSIsInRyYW5zZm9ybSIsInN1Y2Nlc3MiLCJmYWlsdXJlIiwib25JbmNyZW1lbnRhbEZpbGVFdmVudCIsImV2dCIsImV2ZW50TmFtZSIsImlvIiwiV2F0Y2hFdmVudHMiLCJ1bmxpbmsiLCJkZWxldGVDYWNoZWRPdXRwdXRzIiwiaXNTb3VyY2VGaWxlIiwiZnJlc2hDb250ZW50IiwiZ2V0Q29udGVudCIsImNhY2hlZCIsIm91dHB1dENhY2hlIiwiZ2V0IiwiaW52YWxpZGF0ZUNvbnRlbnRDYWNoZSIsInJlc29sdmUiLCJfZmlsZSIsInByb3RvdHlwZSIsIm5hbWUiLCJrZXlGbiIsImFyZ3MiXSwibWFwcGluZ3MiOiI7Ozs7K0JBK0JhQTs7O2VBQUFBOzs7K0RBL0JFO2lFQUNFO3lCQUVzQjs2QkFDakI7K0JBQ0U7b0JBRUw7c0JBQ29DO2lDQUtoRDtRQUNBO2tDQUMwQjtvQ0FDSDsyQ0FDTzt3Q0FFSDs7Ozs7Ozs7Ozs7Ozs7O0FBWTNCLE1BQU1BLHNCQUNKQyxJQUFBQSxzQkFBTyxFQUFDQyxpQ0FBYSxFQUFFQywrQ0FBb0I7SUFHNUNDLGVBQThCO1FBQUNDLDZCQUFZLENBQUNDLEdBQUc7UUFBRUQsNkJBQVksQ0FBQ0UsUUFBUTtLQUFDLENBQUM7SUFDL0UsQ0FBQSxnQkFBaUIsR0FBRyxJQUFJQyxrQ0FBZ0IsR0FBRztJQUMzQyxDQUFBLFNBQVUsQ0FBYTtJQUVoQkMsTUFBTUMsU0FBb0IsRUFBUTtRQUN4QyxJQUFJLENBQUMsQ0FBQSxTQUFVLEdBQUdBO1FBQ2xCLEtBQUssQ0FBQ0QsTUFBTUM7SUFDYjtJQUVRQyxpQkFBaUJDLFVBQTRCLENBQUMsQ0FBQyxFQUFvQjtRQUMxRSxPQUFPO1lBQ04sR0FBR0EsT0FBTztZQUNWRixXQUFXRSxRQUFRRixTQUFTLElBQUksSUFBSSxDQUFDLENBQUEsU0FBVTtRQUNoRDtJQUNEO0lBRUEsTUFBYUcsaUJBQ1pDLGdCQUFxQyxFQUNyQ0MsVUFBb0QsRUFDcERDLFFB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
|
|
@@ -57,13 +57,13 @@ class TsProgramHost {
|
|
|
57
57
|
host.getDirectories = (directoryName)=>this.getDirectories(directoryName);
|
|
58
58
|
return host;
|
|
59
59
|
}
|
|
60
|
-
createProgram(files, compilerOptions, host, oldProgram) {
|
|
60
|
+
createProgram(files, compilerOptions, host, oldProgram, requiredOptions = _typeemitter.REQUIRED_TYPE_EMITTER_OPTIONS) {
|
|
61
61
|
const filePaths = files.map((f)=>f.fullPath);
|
|
62
62
|
this.#invalidated.clear();
|
|
63
63
|
return (0, _typescript.createProgram)(filePaths, {
|
|
64
64
|
..._typeemitter.DEFAULT_TYPE_EMITTER_OPTIONS,
|
|
65
65
|
...compilerOptions,
|
|
66
|
-
...
|
|
66
|
+
...requiredOptions
|
|
67
67
|
}, host, oldProgram);
|
|
68
68
|
}
|
|
69
69
|
readFileFromDisk(fileName) {
|
|
@@ -132,4 +132,4 @@ TsProgramHost = _ts_decorate([
|
|
|
132
132
|
_diagnostics.Trace
|
|
133
133
|
], TsProgramHost);
|
|
134
134
|
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90cy1wcm9ncmFtLWhvc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBjYWNoZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2FjaGluZ1wiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb21waWxlckhvc3QsIGNyZWF0ZVByb2dyYW0gfSBmcm9tIFwidHlwZXNjcmlwdFwiO1xuaW1wb3J0IHtcblx0REVGQVVMVF9UWVBFX0VNSVRURVJfT1BUSU9OUyxcblx0UkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlMsXG59IGZyb20gXCIuLi9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIuanNcIjtcblxuLyoqXG4gKiBXcmFwcyBhIFR5cGVTY3JpcHQgQ29tcGlsZXJIb3N0IHdpdGggY2FjaGVkIGZpbGUtc3lzdGVtIGNhbGxzIHNvIHRoYXRcbiAqIHJlcGVhdGVkIHJlYWRzIGR1cmluZyBhIHNpbmdsZSBidWlsZCBkbyBub3QgaGl0IHRoZSBkaXNrIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIFNlcGFyYXRpbmcgdGhpcyBmcm9tIFR5cGVFbWl0dGVyIGtlZXBzIHRoZSB0cmFuc2Zvcm1lciBsb2dpYyByZWFkYWJsZSBhbmRcbiAqIGxldHMgdGhlIGNhY2hpbmcvcHJvZ3JhbS1jcmVhdGlvbiBjb25jZXJucyBsaXZlIGluIG9uZSBmb2N1c2VkIHBsYWNlLlxuICovXG5AVHJhY2VcbmV4cG9ydCBjbGFzcyBUc1Byb2dyYW1Ib3N0IHtcblx0I2ludmFsaWRhdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cblx0cHVibGljIGludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLiNpbnZhbGlkYXRlZC5hZGQoZmlsZU5hbWUpO1xuXHR9XG5cblx0cHVibGljIGhhc0ludmFsaWRhdGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLiNpbnZhbGlkYXRlZC5zaXplID4gMDtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIGEgc3RhYmxlIHN0cmluZyBrZXkgZm9yIGEgc2V0IG9mIGNvbXBpbGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgaG9zdCBiZWhhdmlvdXIuICovXG5cdHB1YmxpYyBob3N0S2V5KG9wdHM6IHRzLkNvbXBpbGVyT3B0aW9ucyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcblx0XHRcdHRhcmdldDogb3B0cy50YXJnZXQsXG5cdFx0XHRsaWI6IG9wdHMubGliLFxuXHRcdFx0dHlwZVJvb3RzOiBvcHRzLnR5cGVSb290cyxcblx0XHRcdHR5cGVzOiBvcHRzLnR5cGVzLFxuXHRcdFx0bW9kdWxlUmVzb2x1dGlvbjogb3B0cy5tb2R1bGVSZXNvbHV0aW9uLFxuXHRcdFx0YmFzZVVybDogb3B0cy5iYXNlVXJsLFxuXHRcdFx0cGF0aHM6IG9wdHMucGF0aHMsXG5cdFx0XHRtb2R1bGU6IG9wdHMubW9kdWxlLFxuXHRcdFx0cm9vdERpcjogb3B0cy5yb290RGlyLFxuXHRcdFx0cm9vdERpcnM6IG9wdHMucm9vdERpcnMsXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgY3JlYXRlSG9zdChjb21waWxlck9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyk6IHRzLkNvbXBpbGVySG9zdCB7XG5cdFx0Y29uc3QgaG9zdCA9IGNyZWF0ZUNvbXBpbGVySG9zdChjb21waWxlck9wdGlvbnMpO1xuXHRcdGhvc3QuZmlsZUV4aXN0cyA9IChmaWxlTmFtZSkgPT4gdGhpcy5maWxlRXhpc3RzT25EaXNrKGZpbGVOYW1lKTtcblx0XHRob3N0LnJlYWRGaWxlID0gKGZpbGVOYW1lKSA9PiB0aGlzLnJlYWRGaWxlRnJvbURpc2soZmlsZU5hbWUpO1xuXHRcdGhvc3QuZGlyZWN0b3J5RXhpc3RzID0gKGRpcmVjdG9yeU5hbWUpID0+
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90cy1wcm9ncmFtLWhvc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgeyBjYWNoZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvY2FjaGluZ1wiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb21waWxlckhvc3QsIGNyZWF0ZVByb2dyYW0gfSBmcm9tIFwidHlwZXNjcmlwdFwiO1xuaW1wb3J0IHtcblx0REVGQVVMVF9UWVBFX0VNSVRURVJfT1BUSU9OUyxcblx0UkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlMsXG59IGZyb20gXCIuLi9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIuanNcIjtcblxuLyoqXG4gKiBXcmFwcyBhIFR5cGVTY3JpcHQgQ29tcGlsZXJIb3N0IHdpdGggY2FjaGVkIGZpbGUtc3lzdGVtIGNhbGxzIHNvIHRoYXRcbiAqIHJlcGVhdGVkIHJlYWRzIGR1cmluZyBhIHNpbmdsZSBidWlsZCBkbyBub3QgaGl0IHRoZSBkaXNrIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIFNlcGFyYXRpbmcgdGhpcyBmcm9tIFR5cGVFbWl0dGVyIGtlZXBzIHRoZSB0cmFuc2Zvcm1lciBsb2dpYyByZWFkYWJsZSBhbmRcbiAqIGxldHMgdGhlIGNhY2hpbmcvcHJvZ3JhbS1jcmVhdGlvbiBjb25jZXJucyBsaXZlIGluIG9uZSBmb2N1c2VkIHBsYWNlLlxuICovXG5AVHJhY2VcbmV4cG9ydCBjbGFzcyBUc1Byb2dyYW1Ib3N0IHtcblx0I2ludmFsaWRhdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cblx0cHVibGljIGludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLiNpbnZhbGlkYXRlZC5hZGQoZmlsZU5hbWUpO1xuXHR9XG5cblx0cHVibGljIGhhc0ludmFsaWRhdGVkKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLiNpbnZhbGlkYXRlZC5zaXplID4gMDtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIGEgc3RhYmxlIHN0cmluZyBrZXkgZm9yIGEgc2V0IG9mIGNvbXBpbGVyIG9wdGlvbnMgdGhhdCBhZmZlY3QgaG9zdCBiZWhhdmlvdXIuICovXG5cdHB1YmxpYyBob3N0S2V5KG9wdHM6IHRzLkNvbXBpbGVyT3B0aW9ucyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcblx0XHRcdHRhcmdldDogb3B0cy50YXJnZXQsXG5cdFx0XHRsaWI6IG9wdHMubGliLFxuXHRcdFx0dHlwZVJvb3RzOiBvcHRzLnR5cGVSb290cyxcblx0XHRcdHR5cGVzOiBvcHRzLnR5cGVzLFxuXHRcdFx0bW9kdWxlUmVzb2x1dGlvbjogb3B0cy5tb2R1bGVSZXNvbHV0aW9uLFxuXHRcdFx0YmFzZVVybDogb3B0cy5iYXNlVXJsLFxuXHRcdFx0cGF0aHM6IG9wdHMucGF0aHMsXG5cdFx0XHRtb2R1bGU6IG9wdHMubW9kdWxlLFxuXHRcdFx0cm9vdERpcjogb3B0cy5yb290RGlyLFxuXHRcdFx0cm9vdERpcnM6IG9wdHMucm9vdERpcnMsXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgY3JlYXRlSG9zdChjb21waWxlck9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyk6IHRzLkNvbXBpbGVySG9zdCB7XG5cdFx0Y29uc3QgaG9zdCA9IGNyZWF0ZUNvbXBpbGVySG9zdChjb21waWxlck9wdGlvbnMpO1xuXHRcdGhvc3QuZmlsZUV4aXN0cyA9IChmaWxlTmFtZSkgPT4gdGhpcy5maWxlRXhpc3RzT25EaXNrKGZpbGVOYW1lKTtcblx0XHRob3N0LnJlYWRGaWxlID0gKGZpbGVOYW1lKSA9PiB0aGlzLnJlYWRGaWxlRnJvbURpc2soZmlsZU5hbWUpO1xuXHRcdGhvc3QuZGlyZWN0b3J5RXhpc3RzID0gKGRpcmVjdG9yeU5hbWUpID0+IHRoaXMuZGlyZWN0b3J5RXhpc3RzKGRpcmVjdG9yeU5hbWUpO1xuXHRcdGhvc3QuZ2V0RGlyZWN0b3JpZXMgPSAoZGlyZWN0b3J5TmFtZSkgPT4gdGhpcy5nZXREaXJlY3RvcmllcyhkaXJlY3RvcnlOYW1lKTtcblx0XHRyZXR1cm4gaG9zdDtcblx0fVxuXG5cdHB1YmxpYyBjcmVhdGVQcm9ncmFtKFxuXHRcdGZpbGVzOiBGaWxlRXhbXSxcblx0XHRjb21waWxlck9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucyxcblx0XHRob3N0OiB0cy5Db21waWxlckhvc3QsXG5cdFx0b2xkUHJvZ3JhbT86IHRzLlByb2dyYW0sXG5cdFx0cmVxdWlyZWRPcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMgPSBSRVFVSVJFRF9UWVBFX0VNSVRURVJfT1BUSU9OUyxcblx0KTogdHMuUHJvZ3JhbSB7XG5cdFx0Y29uc3QgZmlsZVBhdGhzID0gZmlsZXMubWFwKChmKSA9PiBmLmZ1bGxQYXRoKTtcblx0XHR0aGlzLiNpbnZhbGlkYXRlZC5jbGVhcigpO1xuXHRcdHJldHVybiBjcmVhdGVQcm9ncmFtKFxuXHRcdFx0ZmlsZVBhdGhzLFxuXHRcdFx0e1xuXHRcdFx0XHQuLi5ERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TLFxuXHRcdFx0XHQuLi5jb21waWxlck9wdGlvbnMsXG5cdFx0XHRcdC4uLnJlcXVpcmVkT3B0aW9ucyxcblx0XHRcdH0sXG5cdFx0XHRob3N0LFxuXHRcdFx0b2xkUHJvZ3JhbSxcblx0XHQpO1xuXHR9XG5cblx0QGNhY2hlKHsgbmFtZTogXCJGSUxFX0NPTlRFTlRcIiwga2V5Rm46ICguLi5hcmdzKSA9PiBhcmdzWzBdIGFzIHN0cmluZyB9KVxuXHRwdWJsaWMgcmVhZEZpbGVGcm9tRGlzayhmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGZzLnJlYWRGaWxlU3luYyhmaWxlTmFtZSwgXCJ1dGY4XCIpO1xuXHRcdH0gY2F0Y2gge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRAY2FjaGUoKVxuXHRwdWJsaWMgZmlsZUV4aXN0c09uRGlzayhmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIGZzLmV4aXN0c1N5bmMoZmlsZU5hbWUpO1xuXHR9XG5cblx0QGNhY2hlKClcblx0cHVibGljIGRpcmVjdG9yeUV4aXN0cyhkaXJlY3RvcnlOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGZzLnN0YXRTeW5jKGRpcmVjdG9yeU5hbWUpLmlzRGlyZWN0b3J5KCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0QGNhY2hlKClcblx0cHVibGljIGdldERpcmVjdG9yaWVzKGRpcmVjdG9yeU5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGZzXG5cdFx0XHRcdC5yZWFkZGlyU3luYyhkaXJlY3RvcnlOYW1lLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSlcblx0XHRcdFx0LmZpbHRlcigoZW50cnkpID0+IGVudHJ5LmlzRGlyZWN0b3J5KCkpXG5cdFx0XHRcdC5tYXAoKGVudHJ5KSA9PiBlbnRyeS5uYW1lKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJUc1Byb2dyYW1Ib3N0IiwiU2V0IiwiaW52YWxpZGF0ZVNvdXJjZUZpbGUiLCJmaWxlTmFtZSIsImFkZCIsImhhc0ludmFsaWRhdGVkIiwic2l6ZSIsImhvc3RLZXkiLCJvcHRzIiwiSlNPTiIsInN0cmluZ2lmeSIsInRhcmdldCIsImxpYiIsInR5cGVSb290cyIsInR5cGVzIiwibW9kdWxlUmVzb2x1dGlvbiIsImJhc2VVcmwiLCJwYXRocyIsIm1vZHVsZSIsInJvb3REaXIiLCJyb290RGlycyIsImNyZWF0ZUhvc3QiLCJjb21waWxlck9wdGlvbnMiLCJob3N0IiwiY3JlYXRlQ29tcGlsZXJIb3N0IiwiZmlsZUV4aXN0cyIsImZpbGVFeGlzdHNPbkRpc2siLCJyZWFkRmlsZSIsInJlYWRGaWxlRnJvbURpc2siLCJkaXJlY3RvcnlFeGlzdHMiLCJkaXJlY3RvcnlOYW1lIiwiZ2V0RGlyZWN0b3JpZXMiLCJjcmVhdGVQcm9ncmFtIiwiZmlsZXMiLCJvbGRQcm9ncmFtIiwicmVxdWlyZWRPcHRpb25zIiwiUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlMiLCJmaWxlUGF0aHMiLCJtYXAiLCJmIiwiZnVsbFBhdGgiLCJjbGVhciIsIkRFRkFVTFRfVFlQRV9FTUlUVEVSX09QVElPTlMiLCJmcyIsInJlYWRGaWxlU3luYyIsInVuZGVmaW5lZCIsImV4aXN0c1N5bmMiLCJzdGF0U3luYyIsImlzRGlyZWN0b3J5IiwicmVhZGRpclN5bmMiLCJ3aXRoRmlsZVR5cGVzIiwiZmlsdGVyIiwiZW50cnkiLCJuYW1lIiwia2V5Rm4iLCJhcmdzIl0sIm1hcHBpbmdzIjoiOzs7OytCQW1CYUE7OztlQUFBQTs7OytEQW5CRTt5QkFDTzs2QkFDQTs0QkFHNEI7NkJBSTNDOzs7Ozs7Ozs7Ozs7Ozs7QUFVQSxNQUFNQTtJQUNaLENBQUEsV0FBWSxHQUFHLElBQUlDLE1BQWM7SUFFMUJDLHFCQUFxQkMsUUFBZ0IsRUFBUTtRQUNuRCxJQUFJLENBQUMsQ0FBQSxXQUFZLENBQUNDLEdBQUcsQ0FBQ0Q7SUFDdkI7SUFFT0UsaUJBQTBCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLENBQUEsV0FBWSxDQUFDQyxJQUFJLEdBQUc7SUFDakM7SUFFQSwwRkFBMEYsR0FDMUYsQUFBT0MsUUFBUUMsSUFBd0IsRUFBVTtRQUNoRCxPQUFPQyxLQUFLQyxTQUFTLENBQUM7WUFDckJDLFFBQVFILEtBQUtHLE1BQU07WUFDbkJDLEtBQUtKLEtBQUtJLEdBQUc7WUFDYkMsV0FBV0wsS0FBS0ssU0FBUztZQUN6QkMsT0FBT04sS0FBS00sS0FBSztZQUNqQkMsa0JBQWtCUCxLQUFLTyxnQkFBZ0I7WUFDdkNDLFNBQVNSLEtBQUtRLE9BQU87WUFDckJDLE9BQU9ULEtBQUtTLEtBQUs7WUFDakJDLFFBQVFWLEtBQUtVLE1BQU07WUFDbkJDLFNBQVNYLEtBQUtXLE9BQU87WUFDckJDLFVBQVVaLEtBQUtZLFFBQVE7UUFDeEI7SUFDRDtJQUVPQyxXQUFXQyxlQUFtQyxFQUFtQjtRQUN2RSxNQUFNQyxPQUFPQyxJQUFBQSw4QkFBa0IsRUFBQ0Y7UUFDaENDLEtBQUtFLFVBQVUsR0FBRyxDQUFDdEIsV0FBYSxJQUFJLENBQUN1QixnQkFBZ0IsQ0FBQ3ZCO1FBQ3REb0IsS0FBS0ksUUFBUSxHQUFHLENBQUN4QixXQUFhLElBQUksQ0FBQ3lCLGdCQUFnQixDQUFDekI7UUFDcERvQixLQUFLTSxlQUFlLEdBQUcsQ0FBQ0MsZ0JBQWtCLElBQUksQ0FBQ0QsZUFBZSxDQUFDQztRQUMvRFAsS0FBS1EsY0FBYyxHQUFHLENBQUNELGdCQUFrQixJQUFJLENBQUNDLGNBQWMsQ0FBQ0Q7UUFDN0QsT0FBT1A7SUFDUjtJQUVPUyxjQUNOQyxLQUFlLEVBQ2ZYLGVBQW1DLEVBQ25DQyxJQUFxQixFQUNyQlcsVUFBdUIsRUFDdkJDLGtCQUFzQ0MsMENBQTZCLEVBQ3REO1FBQ2IsTUFBTUMsWUFBWUosTUFBTUssR0FBRyxDQUFDLENBQUNDLElBQU1BLEVBQUVDLFFBQVE7UUFDN0MsSUFBSSxDQUFDLENBQUEsV0FBWSxDQUFDQyxLQUFLO1FBQ3ZCLE9BQU9ULElBQUFBLHlCQUFhLEVBQ25CSyxXQUNBO1lBQ0MsR0FBR0sseUNBQTRCO1lBQy9CLEdBQUdwQixlQUFlO1lBQ2xCLEdBQUdhLGVBQWU7UUFDbkIsR0FDQVosTUFDQVc7SUFFRjtJQUdPTixpQkFBaUJ6QixRQUFnQixFQUFzQjtRQUM3RCxJQUFJO1lBQ0gsT0FBT3dDLGVBQUUsQ0FBQ0MsWUFBWSxDQUFDekMsVUFBVTtRQUNsQyxFQUFFLE9BQU07WUFDUCxPQUFPMEM7UUFDUjtJQUNEO0lBR09uQixpQkFBaUJ2QixRQUFnQixFQUFXO1FBQ2xELE9BQU93QyxlQUFFLENBQUNHLFVBQVUsQ0FBQzNDO0lBQ3RCO0lBR08wQixnQkFBZ0JDLGFBQXFCLEVBQVc7UUFDdEQsSUFBSTtZQUNILE9BQU9hLGVBQUUsQ0FBQ0ksUUFBUSxDQUFDakIsZUFBZWtCLFdBQVc7UUFDOUMsRUFBRSxPQUFNO1lBQ1AsT0FBTztRQUNSO0lBQ0Q7SUFHT2pCLGVBQWVELGFBQXFCLEVBQVk7UUFDdEQsSUFBSTtZQUNILE9BQU9hLGVBQUUsQ0FDUE0sV0FBVyxDQUFDbkIsZUFBZTtnQkFBRW9CLGVBQWU7WUFBSyxHQUNqREMsTUFBTSxDQUFDLENBQUNDLFFBQVVBLE1BQU1KLFdBQVcsSUFDbkNWLEdBQUcsQ0FBQyxDQUFDYyxRQUFVQSxNQUFNQyxJQUFJO1FBQzVCLEVBQUUsT0FBTTtZQUNQLE9BQU8sRUFBRTtRQUNWO0lBQ0Q7QUFDRDs7O1FBbENVQSxNQUFNO1FBQWdCQyxPQUFPLENBQUMsR0FBR0MsT0FBU0EsSUFBSSxDQUFDLEVBQUUifQ==
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "TypeEmissionProgram", {
|
|
|
10
10
|
});
|
|
11
11
|
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
12
12
|
const _diagnostics = require("@decohere/nexus/diagnostics");
|
|
13
|
+
const _typescript = /*#__PURE__*/ _interop_require_default(require("typescript"));
|
|
13
14
|
const _transformresponsemodel = require("../types/transform-response.model.js");
|
|
14
15
|
function _interop_require_default(obj) {
|
|
15
16
|
return obj && obj.__esModule ? obj : {
|
|
@@ -34,16 +35,25 @@ class TypeEmissionProgram {
|
|
|
34
35
|
#compilerHost;
|
|
35
36
|
#allFiles;
|
|
36
37
|
#compilerOptions;
|
|
37
|
-
|
|
38
|
+
#requiredOptions;
|
|
39
|
+
constructor(group, hostFactory, requiredOptions){
|
|
38
40
|
this.#group = group;
|
|
39
41
|
const targets = this.buildTargetMaps(group);
|
|
40
42
|
this.#targetsByDtsPath = targets.byDtsPath;
|
|
41
43
|
this.#targetsByEmittedPath = targets.byEmittedPath;
|
|
42
44
|
this.#host = hostFactory;
|
|
43
45
|
this.#compilerOptions = group[0].tsconfig.compilerOptions;
|
|
46
|
+
this.#requiredOptions = requiredOptions;
|
|
44
47
|
this.#allFiles = group.flatMap(({ files })=>files);
|
|
45
48
|
this.#compilerHost = hostFactory.createHost(this.#compilerOptions);
|
|
46
|
-
this.#program =
|
|
49
|
+
this.#program = this.createProgram();
|
|
50
|
+
}
|
|
51
|
+
check() {
|
|
52
|
+
this.refreshProgramIfNeeded();
|
|
53
|
+
return _typescript.default.getPreEmitDiagnostics(this.#program);
|
|
54
|
+
}
|
|
55
|
+
formatDiagnostics(diagnostics) {
|
|
56
|
+
return _typescript.default.formatDiagnosticsWithColorAndContext(diagnostics, this.#compilerHost);
|
|
47
57
|
}
|
|
48
58
|
toEmissionTarget(groupProject, file, outBaseDir) {
|
|
49
59
|
const extName = _nodepath.default.extname(file.relativePath);
|
|
@@ -89,14 +99,20 @@ class TypeEmissionProgram {
|
|
|
89
99
|
this.#host.invalidateSourceFile(file.fullPath);
|
|
90
100
|
}
|
|
91
101
|
async emit(fileFilter, onOutput) {
|
|
92
|
-
|
|
93
|
-
this.#program = this.#host.createProgram(this.#allFiles, this.#compilerOptions, this.#compilerHost, this.#program);
|
|
94
|
-
}
|
|
102
|
+
this.refreshProgramIfNeeded();
|
|
95
103
|
if (fileFilter == null) {
|
|
96
104
|
return this.emitAll(onOutput);
|
|
97
105
|
}
|
|
98
106
|
return this.emitFiltered(fileFilter, onOutput);
|
|
99
107
|
}
|
|
108
|
+
createProgram(oldProgram) {
|
|
109
|
+
return this.#host.createProgram(this.#allFiles, this.#compilerOptions, this.#compilerHost, oldProgram, this.#requiredOptions);
|
|
110
|
+
}
|
|
111
|
+
refreshProgramIfNeeded() {
|
|
112
|
+
if (this.#host.hasInvalidated()) {
|
|
113
|
+
this.#program = this.createProgram(this.#program);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
100
116
|
emitAll(onOutput) {
|
|
101
117
|
const responses = [];
|
|
102
118
|
this.#program.emit(undefined, (emittedPath, content)=>{
|
|
@@ -153,8 +169,9 @@ TypeEmissionProgram = _ts_decorate([
|
|
|
153
169
|
_ts_metadata("design:type", Function),
|
|
154
170
|
_ts_metadata("design:paramtypes", [
|
|
155
171
|
Array,
|
|
156
|
-
typeof TsProgramHost === "undefined" ? Object : TsProgramHost
|
|
172
|
+
typeof TsProgramHost === "undefined" ? Object : TsProgramHost,
|
|
173
|
+
typeof _typescript.default === "undefined" || typeof _typescript.default.CompilerOptions === "undefined" ? Object : _typescript.default.CompilerOptions
|
|
157
174
|
])
|
|
158
175
|
], TypeEmissionProgram);
|
|
159
176
|
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXNzaW9uLXByb2dyYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBUc2NvbmZpZyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgdHlwZSB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQgeyBUcmFuc2Zvcm1SZXNwb25zZSB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwuanNcIjtcblxuZXhwb3J0IHR5cGUgVHlwZVByb2dyYW1Qcm9qZWN0ID0ge1xuXHRwcm9qZWN0OiBQcm9qZWN0O1xuXHRmaWxlczogRmlsZUV4W107XG5cdHRzY29uZmlnOiBUc2NvbmZpZztcbn07XG5cbnR5cGUgRW1pc3Npb25UYXJnZXQgPSB7XG5cdGZpbGU6IEZpbGVFeDtcblx0dHNjb25maWc6IFRzY29uZmlnO1xuXHRwcm9qZWN0OiBQcm9qZWN0O1xuXHRvdXRwdXRQYXRoOiBzdHJpbmc7XG5cdG91dHB1dERpcjogc3RyaW5nO1xuXHRkdHNSZWxhdGl2ZTogc3RyaW5nO1xufTtcblxuQFRyYWNlXG5leHBvcnQgY2xhc3MgVHlwZUVtaXNzaW9uUHJvZ3JhbSB7XG5cdCNwcm9ncmFtOiB0cy5Qcm9ncmFtO1xuXHQjZ3JvdXA6IFR5cGVQcm9ncmFtUHJvamVjdFtdO1xuXHQjdGFyZ2V0c0J5RHRzUGF0aDogTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+O1xuXHQjdGFyZ2V0c0J5RW1pdHRlZFBhdGg6IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0Pjtcblx0I2hvc3Q6IFRzUHJvZ3JhbUhvc3Q7XG5cdCNjb21waWxlckhvc3Q6IHRzLkNvbXBpbGVySG9zdDtcblx0I2FsbEZpbGVzOiBGaWxlRXhbXTtcblx0I2NvbXBpbGVyT3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihncm91cDogVHlwZVByb2dyYW1Qcm9qZWN0W10sIGhvc3RGYWN0b3J5OiBUc1Byb2dyYW1Ib3N0KSB7XG5cdFx0dGhpcy4jZ3JvdXAgPSBncm91cDtcblx0XHRjb25zdCB0YXJnZXRzID0gdGhpcy5idWlsZFRhcmdldE1hcHMoZ3JvdXApO1xuXHRcdHRoaXMuI3RhcmdldHNCeUR0c1BhdGggPSB0YXJnZXRzLmJ5RHRzUGF0aDtcblx0XHR0aGlzLiN0YXJnZXRzQnlFbWl0dGVkUGF0aCA9IHRhcmdldHMuYnlFbWl0dGVkUGF0aDtcblx0XHR0aGlzLiNob3N0ID0gaG9zdEZhY3Rvcnk7XG5cdFx0dGhpcy4jY29tcGlsZXJPcHRpb25zID0gZ3JvdXBbMF0udHNjb25maWcuY29tcGlsZXJPcHRpb25zO1xuXHRcdHRoaXMuI2FsbEZpbGVzID0gZ3JvdXAuZmxhdE1hcCgoeyBmaWxlcyB9KSA9PiBmaWxlcyk7XG5cdFx0dGhpcy4jY29tcGlsZXJIb3N0ID0gaG9zdEZhY3RvcnkuY3JlYXRlSG9zdCh0aGlzLiNjb21waWxlck9wdGlvbnMpO1xuXHRcdHRoaXMuI3Byb2dyYW0gPSBob3N0RmFjdG9yeS5jcmVhdGVQcm9ncmFtKFxuXHRcdFx0dGhpcy4jYWxsRmlsZXMsXG5cdFx0XHR0aGlzLiNjb21waWxlck9wdGlvbnMsXG5cdFx0XHR0aGlzLiNjb21waWxlckhvc3QsXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgdG9FbWlzc2lvblRhcmdldChcblx0XHRncm91cFByb2plY3Q6IFR5cGVQcm9ncmFtUHJvamVjdCxcblx0XHRmaWxlOiBGaWxlRXgsXG5cdFx0b3V0QmFzZURpcjogc3RyaW5nLFxuXHQpOiBFbWlzc2lvblRhcmdldCB7XG5cdFx0Y29uc3QgZXh0TmFtZSA9IHBhdGguZXh0bmFtZShmaWxlLnJlbGF0aXZlUGF0aCk7XG5cdFx0Y29uc3QgZHRzUmVsYXRpdmUgPSBmaWxlLnJlbGF0aXZlUGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7ZXh0TmFtZX0kYCksIFwiLmQudHNcIik7XG5cdFx0Y29uc3Qgb3V0cHV0UGF0aCA9IHBhdGguam9pbihvdXRCYXNlRGlyLCBkdHNSZWxhdGl2ZSk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGZpbGUsXG5cdFx0XHR0c2NvbmZpZzogZ3JvdXBQcm9qZWN0LnRzY29uZmlnLFxuXHRcdFx0cHJvamVjdDogZ3JvdXBQcm9qZWN0LnByb2plY3QsXG5cdFx0XHRvdXRwdXRQYXRoLFxuXHRcdFx0b3V0cHV0RGlyOiBwYXRoLmRpcm5hbWUob3V0cHV0UGF0aCksXG5cdFx0XHRkdHNSZWxhdGl2ZSxcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSBlbWl0dGVkS2V5KGZpbGU6IEZpbGVFeCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGZpbGUuZnVsbFBhdGgucmVwbGFjZSgvXFwuW14uXSskLywgXCIuZC50c1wiKTtcblx0fVxuXG5cdHByaXZhdGUgYnVpbGRUYXJnZXRNYXBzKGdyb3VwOiBUeXBlUHJvZ3JhbVByb2plY3RbXSk6IHtcblx0XHRieUR0c1BhdGg6IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0Pjtcblx0XHRieUVtaXR0ZWRQYXRoOiBNYXA8c3RyaW5nLCBFbWlzc2lvblRhcmdldD47XG5cdH0ge1xuXHRcdGNvbnN0IGJ5RHRzUGF0aCA9IG5ldyBNYXA8c3RyaW5nLCBFbWlzc2lvblRhcmdldD4oKTtcblx0XHRjb25zdCBieUVtaXR0ZWRQYXRoID0gbmV3IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0PigpO1xuXG5cdFx0Zm9yIChjb25zdCBncm91cFByb2plY3Qgb2YgZ3JvdXApIHtcblx0XHRcdGNvbnN0IG91dEJhc2VEaXIgPSBncm91cFByb2plY3QucHJvamVjdC5nZXRPdXREaXIoXCJ0eXBlc1wiKTtcblx0XHRcdGZvciAoY29uc3QgZmlsZSBvZiBncm91cFByb2plY3QuZmlsZXMpIHtcblx0XHRcdFx0Y29uc3QgdGFyZ2V0ID0gdGhpcy50b0VtaXNzaW9uVGFyZ2V0KGdyb3VwUHJvamVjdCwgZmlsZSwgb3V0QmFzZURpcik7XG5cdFx0XHRcdGJ5RHRzUGF0aC5zZXQodGFyZ2V0LmR0c1JlbGF0aXZlLCB0YXJnZXQpO1xuXHRcdFx0XHRieUVtaXR0ZWRQYXRoLnNldCh0aGlzLmVtaXR0ZWRLZXkoZmlsZSksIHRhcmdldCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHsgYnlEdHNQYXRoLCBieUVtaXR0ZWRQYXRoIH07XG5cdH1cblxuXHRwdWJsaWMgYWRkRmlsZShmaWxlOiBGaWxlRXgsIHByb2plY3Q6IFByb2plY3QpOiB2b2lkIHtcblx0XHRjb25zdCBncm91cFByb2plY3QgPSB0aGlzLiNncm91cC5maW5kKChnKSA9PiBnLnByb2plY3QgPT09IHByb2plY3QpO1xuXHRcdGlmIChncm91cFByb2plY3QgPT0gbnVsbCkgcmV0dXJuO1xuXG5cdFx0Z3JvdXBQcm9qZWN0LmZpbGVzLnB1c2goZmlsZSk7XG5cdFx0dGhpcy4jYWxsRmlsZXMucHVzaChmaWxlKTtcblxuXHRcdGNvbnN0IG91dEJhc2VEaXIgPSBncm91cFByb2plY3QucHJvamVjdC5nZXRPdXREaXIoXCJ0eXBlc1wiKTtcblx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLnRvRW1pc3Npb25UYXJnZXQoZ3JvdXBQcm9qZWN0LCBmaWxlLCBvdXRCYXNlRGlyKTtcblx0XHR0aGlzLiN0YXJnZXRzQnlEdHNQYXRoLnNldCh0YXJnZXQuZHRzUmVsYXRpdmUsIHRhcmdldCk7XG5cdFx0dGhpcy4jdGFyZ2V0c0J5RW1pdHRlZFBhdGguc2V0KHRoaXMuZW1pdHRlZEtleShmaWxlKSwgdGFyZ2V0KTtcblx0XHR0aGlzLiNob3N0LmludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGUuZnVsbFBhdGgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGVtaXQoXG5cdFx0ZmlsZUZpbHRlcj86IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0XHRvbk91dHB1dD86IChyZXNwb25zZTogVHJhbnNmb3JtUmVzcG9uc2UpID0+IHZvaWQsXG5cdCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdGlmICh0aGlzLiNob3N0Lmhhc0ludmFsaWRhdGVkKCkpIHtcblx0XHRcdHRoaXMuI3Byb2dyYW0gPSB0aGlzLiNob3N0LmNyZWF0ZVByb2dyYW0oXG5cdFx0XHRcdHRoaXMuI2FsbEZpbGVzLFxuXHRcdFx0XHR0aGlzLiNjb21waWxlck9wdGlvbnMsXG5cdFx0XHRcdHRoaXMuI2NvbXBpbGVySG9zdCxcblx0XHRcdFx0dGhpcy4jcHJvZ3JhbSxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmIChmaWxlRmlsdGVyID09IG51bGwpIHtcblx0XHRcdHJldHVybiB0aGlzLmVtaXRBbGwob25PdXRwdXQpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5lbWl0RmlsdGVyZWQoZmlsZUZpbHRlciwgb25PdXRwdXQpO1xuXHR9XG5cblx0cHJpdmF0ZSBlbWl0QWxsKG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCk6IFRyYW5zZm9ybVJlc3BvbnNlW10ge1xuXHRcdGNvbnN0IHJlc3BvbnNlczogVHJhbnNmb3JtUmVzcG9uc2VbXSA9IFtdO1xuXHRcdHRoaXMuI3Byb2dyYW0uZW1pdCh1bmRlZmluZWQsIChlbWl0dGVkUGF0aCwgY29udGVudCkgPT4ge1xuXHRcdFx0aWYgKCFlbWl0dGVkUGF0aC5lbmRzV2l0aChcIi5kLnRzXCIpKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHJlc3BvbnNlID0gdGhpcy50b1RyYW5zZm9ybVJlc3BvbnNlKGVtaXR0ZWRQYXRoLCBjb250ZW50KTtcblx0XHRcdHJlc3BvbnNlcy5wdXNoKHJlc3BvbnNlKTtcblx0XHRcdG9uT3V0cHV0Py4ocmVzcG9uc2UpO1xuXHRcdH0pO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIGVtaXRGaWx0ZXJlZChcblx0XHRmaWxlRmlsdGVyOiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdFx0b25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkLFxuXHQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+IHtcblx0XHRjb25zdCBmaWxlcyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMuI2dyb3VwLm1hcCgoeyBwcm9qZWN0IH0pID0+IGZpbGVGaWx0ZXIocHJvamVjdCkpKTtcblx0XHRjb25zdCBzb3VyY2VGaWxlcyA9IGZpbGVzXG5cdFx0XHQuZmxhdCgpXG5cdFx0XHQubWFwKChmaWxlKSA9PiB0aGlzLiNwcm9ncmFtLmdldFNvdXJjZUZpbGUoZmlsZS5mdWxsUGF0aCkpXG5cdFx0XHQuZmlsdGVyKChzZik6IHNmIGlzIHRzLlNvdXJjZUZpbGUgPT4gc2YgIT0gbnVsbCk7XG5cblx0XHRjb25zdCByZXNwb25zZXM6IFRyYW5zZm9ybVJlc3BvbnNlW10gPSBbXTtcblxuXHRcdGZvciAoY29uc3Qgc291cmNlRmlsZSBvZiBzb3VyY2VGaWxlcykge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbS5lbWl0KHNvdXJjZUZpbGUsIChlbWl0dGVkUGF0aCwgY29udGVudCkgPT4ge1xuXHRcdFx0XHRpZiAoIWVtaXR0ZWRQYXRoLmVuZHNXaXRoKFwiLmQudHNcIikpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgcmVzcG9uc2UgPSB0aGlzLnRvVHJhbnNmb3JtUmVzcG9uc2UoZW1pdHRlZFBhdGgsIGNvbnRlbnQpO1xuXHRcdFx0XHRyZXNwb25zZXMucHVzaChyZXNwb25zZSk7XG5cdFx0XHRcdG9uT3V0cHV0Py4ocmVzcG9uc2UpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3BvbnNlcztcblx0fVxuXG5cdHByaXZhdGUgdG9UcmFuc2Zvcm1SZXNwb25zZShlbWl0dGVkUGF0aDogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdFx0Y29uc3QgdGFyZ2V0ID0gdGhpcy4jdGFyZ2V0c0J5RW1pdHRlZFBhdGguZ2V0KGVtaXR0ZWRQYXRoKTtcblx0XHRpZiAodGFyZ2V0ID09IG51bGwpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgTm8gbWF0Y2hpbmcgZW1pc3Npb24gdGFyZ2V0IGZvcjogJHtlbWl0dGVkUGF0aH1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudG9UcmFuc2Zvcm1SZXNwb25zZUZyb21UYXJnZXQodGFyZ2V0LCBjb250ZW50KTtcblx0fVxuXG5cdHByaXZhdGUgdG9UcmFuc2Zvcm1SZXNwb25zZUZyb21UYXJnZXQoXG5cdFx0dGFyZ2V0OiBFbWlzc2lvblRhcmdldCxcblx0XHRjb250ZW50OiBzdHJpbmcsXG5cdCk6IFRyYW5zZm9ybVJlc3BvbnNlIHtcblx0XHRjb25zdCB7IGZpbGUsIHRzY29uZmlnLCBwcm9qZWN0LCBvdXRwdXRQYXRoLCBvdXRwdXREaXIsIGR0c1JlbGF0aXZlIH0gPSB0YXJnZXQ7XG5cdFx0cmV0dXJuIFRyYW5zZm9ybVJlc3BvbnNlLmZyb20oe1xuXHRcdFx0ZmlsZSxcblx0XHRcdGNvbmZpZzogdHNjb25maWcsXG5cdFx0XHRvdXRjb21lOiBcInN1Y2Nlc3NcIixcblx0XHRcdGZpbGVOYW1lOiBkdHNSZWxhdGl2ZSxcblx0XHRcdGNvZGU6IGNvbnRlbnQsXG5cdFx0XHR0YXJnZXQ6IFwidHlwZXNcIixcblx0XHRcdG1lc3NhZ2VzOiBbXSxcblx0XHRcdHByb2plY3QsXG5cdFx0XHRvdXRwdXREaXIsXG5cdFx0XHRvdXRwdXRQYXRoLFxuXHRcdH0pO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiVHlwZUVtaXNzaW9uUHJvZ3JhbSIsImdyb3VwIiwiaG9zdEZhY3RvcnkiLCJ0YXJnZXRzIiwiYnVpbGRUYXJnZXRNYXBzIiwiYnlEdHNQYXRoIiwiYnlFbWl0dGVkUGF0aCIsInRzY29uZmlnIiwiY29tcGlsZXJPcHRpb25zIiwiZmxhdE1hcCIsImZpbGVzIiwiY3JlYXRlSG9zdCIsImNyZWF0ZVByb2dyYW0iLCJ0b0VtaXNzaW9uVGFyZ2V0IiwiZ3JvdXBQcm9qZWN0IiwiZmlsZSIsIm91dEJhc2VEaXIiLCJleHROYW1lIiwicGF0aCIsImV4dG5hbWUiLCJyZWxhdGl2ZVBhdGgiLCJkdHNSZWxhdGl2ZSIsInJlcGxhY2UiLCJSZWdFeHAiLCJvdXRwdXRQYXRoIiwiam9pbiIsInByb2plY3QiLCJvdXRwdXREaXIiLCJkaXJuYW1lIiwiZW1pdHRlZEtleSIsImZ1bGxQYXRoIiwiTWFwIiwiZ2V0T3V0RGlyIiwidGFyZ2V0Iiwic2V0IiwiYWRkRmlsZSIsImZpbmQiLCJnIiwicHVzaCIsImludmFsaWRhdGVTb3VyY2VGaWxlIiwiZW1pdCIsImZpbGVGaWx0ZXIiLCJvbk91dHB1dCIsImhhc0ludmFsaWRhdGVkIiwiZW1pdEFsbCIsImVtaXRGaWx0ZXJlZCIsInJlc3BvbnNlcyIsInVuZGVmaW5lZCIsImVtaXR0ZWRQYXRoIiwiY29udGVudCIsImVuZHNXaXRoIiwicmVzcG9uc2UiLCJ0b1RyYW5zZm9ybVJlc3BvbnNlIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInNvdXJjZUZpbGVzIiwiZmxhdCIsImdldFNvdXJjZUZpbGUiLCJmaWx0ZXIiLCJzZiIsInNvdXJjZUZpbGUiLCJnZXQiLCJFcnJvciIsInRvVHJhbnNmb3JtUmVzcG9uc2VGcm9tVGFyZ2V0IiwiVHJhbnNmb3JtUmVzcG9uc2UiLCJmcm9tIiwiY29uZmlnIiwib3V0Y29tZSIsImZpbGVOYW1lIiwiY29kZSIsIm1lc3NhZ2VzIl0sIm1h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
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXNzaW9uLXByb2dyYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBUc2NvbmZpZyB9IGZyb20gXCJAZGVjb2hlcmUvbWVzaFwiO1xuaW1wb3J0IHsgVHJhY2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2RpYWdub3N0aWNzXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0cyBmcm9tIFwidHlwZXNjcmlwdFwiO1xuaW1wb3J0IHR5cGUgeyBUc1Byb2dyYW1Ib3N0IH0gZnJvbSBcIi4uL3NlcnZpY2VzL3RzLXByb2dyYW0taG9zdC5qc1wiO1xuaW1wb3J0IHsgVHJhbnNmb3JtUmVzcG9uc2UgfSBmcm9tIFwiLi4vdHlwZXMvdHJhbnNmb3JtLXJlc3BvbnNlLm1vZGVsLmpzXCI7XG5cbmV4cG9ydCB0eXBlIFR5cGVQcm9ncmFtUHJvamVjdCA9IHtcblx0cHJvamVjdDogUHJvamVjdDtcblx0ZmlsZXM6IEZpbGVFeFtdO1xuXHR0c2NvbmZpZzogVHNjb25maWc7XG59O1xuXG50eXBlIEVtaXNzaW9uVGFyZ2V0ID0ge1xuXHRmaWxlOiBGaWxlRXg7XG5cdHRzY29uZmlnOiBUc2NvbmZpZztcblx0cHJvamVjdDogUHJvamVjdDtcblx0b3V0cHV0UGF0aDogc3RyaW5nO1xuXHRvdXRwdXREaXI6IHN0cmluZztcblx0ZHRzUmVsYXRpdmU6IHN0cmluZztcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFR5cGVFbWlzc2lvblByb2dyYW0ge1xuXHQjcHJvZ3JhbTogdHMuUHJvZ3JhbTtcblx0I2dyb3VwOiBUeXBlUHJvZ3JhbVByb2plY3RbXTtcblx0I3RhcmdldHNCeUR0c1BhdGg6IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0Pjtcblx0I3RhcmdldHNCeUVtaXR0ZWRQYXRoOiBNYXA8c3RyaW5nLCBFbWlzc2lvblRhcmdldD47XG5cdCNob3N0OiBUc1Byb2dyYW1Ib3N0O1xuXHQjY29tcGlsZXJIb3N0OiB0cy5Db21waWxlckhvc3Q7XG5cdCNhbGxGaWxlczogRmlsZUV4W107XG5cdCNjb21waWxlck9wdGlvbnM6IHRzLkNvbXBpbGVyT3B0aW9ucztcblx0I3JlcXVpcmVkT3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihcblx0XHRncm91cDogVHlwZVByb2dyYW1Qcm9qZWN0W10sXG5cdFx0aG9zdEZhY3Rvcnk6IFRzUHJvZ3JhbUhvc3QsXG5cdFx0cmVxdWlyZWRPcHRpb25zOiB0cy5Db21waWxlck9wdGlvbnMsXG5cdCkge1xuXHRcdHRoaXMuI2dyb3VwID0gZ3JvdXA7XG5cdFx0Y29uc3QgdGFyZ2V0cyA9IHRoaXMuYnVpbGRUYXJnZXRNYXBzKGdyb3VwKTtcblx0XHR0aGlzLiN0YXJnZXRzQnlEdHNQYXRoID0gdGFyZ2V0cy5ieUR0c1BhdGg7XG5cdFx0dGhpcy4jdGFyZ2V0c0J5RW1pdHRlZFBhdGggPSB0YXJnZXRzLmJ5RW1pdHRlZFBhdGg7XG5cdFx0dGhpcy4jaG9zdCA9IGhvc3RGYWN0b3J5O1xuXHRcdHRoaXMuI2NvbXBpbGVyT3B0aW9ucyA9IGdyb3VwWzBdLnRzY29uZmlnLmNvbXBpbGVyT3B0aW9ucztcblx0XHR0aGlzLiNyZXF1aXJlZE9wdGlvbnMgPSByZXF1aXJlZE9wdGlvbnM7XG5cdFx0dGhpcy4jYWxsRmlsZXMgPSBncm91cC5mbGF0TWFwKCh7IGZpbGVzIH0pID0+IGZpbGVzKTtcblx0XHR0aGlzLiNjb21waWxlckhvc3QgPSBob3N0RmFjdG9yeS5jcmVhdGVIb3N0KHRoaXMuI2NvbXBpbGVyT3B0aW9ucyk7XG5cdFx0dGhpcy4jcHJvZ3JhbSA9IHRoaXMuY3JlYXRlUHJvZ3JhbSgpO1xuXHR9XG5cblx0cHVibGljIGNoZWNrKCk6IHJlYWRvbmx5IHRzLkRpYWdub3N0aWNbXSB7XG5cdFx0dGhpcy5yZWZyZXNoUHJvZ3JhbUlmTmVlZGVkKCk7XG5cdFx0cmV0dXJuIHRzLmdldFByZUVtaXREaWFnbm9zdGljcyh0aGlzLiNwcm9ncmFtKTtcblx0fVxuXG5cdHB1YmxpYyBmb3JtYXREaWFnbm9zdGljcyhkaWFnbm9zdGljczogcmVhZG9ubHkgdHMuRGlhZ25vc3RpY1tdKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdHMuZm9ybWF0RGlhZ25vc3RpY3NXaXRoQ29sb3JBbmRDb250ZXh0KGRpYWdub3N0aWNzLCB0aGlzLiNjb21waWxlckhvc3QpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b0VtaXNzaW9uVGFyZ2V0KFxuXHRcdGdyb3VwUHJvamVjdDogVHlwZVByb2dyYW1Qcm9qZWN0LFxuXHRcdGZpbGU6IEZpbGVFeCxcblx0XHRvdXRCYXNlRGlyOiBzdHJpbmcsXG5cdCk6IEVtaXNzaW9uVGFyZ2V0IHtcblx0XHRjb25zdCBleHROYW1lID0gcGF0aC5leHRuYW1lKGZpbGUucmVsYXRpdmVQYXRoKTtcblx0XHRjb25zdCBkdHNSZWxhdGl2ZSA9IGZpbGUucmVsYXRpdmVQYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChgJHtleHROYW1lfSRgKSwgXCIuZC50c1wiKTtcblx0XHRjb25zdCBvdXRwdXRQYXRoID0gcGF0aC5qb2luKG91dEJhc2VEaXIsIGR0c1JlbGF0aXZlKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZmlsZSxcblx0XHRcdHRzY29uZmlnOiBncm91cFByb2plY3QudHNjb25maWcsXG5cdFx0XHRwcm9qZWN0OiBncm91cFByb2plY3QucHJvamVjdCxcblx0XHRcdG91dHB1dFBhdGgsXG5cdFx0XHRvdXRwdXREaXI6IHBhdGguZGlybmFtZShvdXRwdXRQYXRoKSxcblx0XHRcdGR0c1JlbGF0aXZlLFxuXHRcdH07XG5cdH1cblxuXHRwcml2YXRlIGVtaXR0ZWRLZXkoZmlsZTogRmlsZUV4KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gZmlsZS5mdWxsUGF0aC5yZXBsYWNlKC9cXC5bXi5dKyQvLCBcIi5kLnRzXCIpO1xuXHR9XG5cblx0cHJpdmF0ZSBidWlsZFRhcmdldE1hcHMoZ3JvdXA6IFR5cGVQcm9ncmFtUHJvamVjdFtdKToge1xuXHRcdGJ5RHRzUGF0aDogTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+O1xuXHRcdGJ5RW1pdHRlZFBhdGg6IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0Pjtcblx0fSB7XG5cdFx0Y29uc3QgYnlEdHNQYXRoID0gbmV3IE1hcDxzdHJpbmcsIEVtaXNzaW9uVGFyZ2V0PigpO1xuXHRcdGNvbnN0IGJ5RW1pdHRlZFBhdGggPSBuZXcgTWFwPHN0cmluZywgRW1pc3Npb25UYXJnZXQ+KCk7XG5cblx0XHRmb3IgKGNvbnN0IGdyb3VwUHJvamVjdCBvZiBncm91cCkge1xuXHRcdFx0Y29uc3Qgb3V0QmFzZURpciA9IGdyb3VwUHJvamVjdC5wcm9qZWN0LmdldE91dERpcihcInR5cGVzXCIpO1xuXHRcdFx0Zm9yIChjb25zdCBmaWxlIG9mIGdyb3VwUHJvamVjdC5maWxlcykge1xuXHRcdFx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLnRvRW1pc3Npb25UYXJnZXQoZ3JvdXBQcm9qZWN0LCBmaWxlLCBvdXRCYXNlRGlyKTtcblx0XHRcdFx0YnlEdHNQYXRoLnNldCh0YXJnZXQuZHRzUmVsYXRpdmUsIHRhcmdldCk7XG5cdFx0XHRcdGJ5RW1pdHRlZFBhdGguc2V0KHRoaXMuZW1pdHRlZEtleShmaWxlKSwgdGFyZ2V0KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBieUR0c1BhdGgsIGJ5RW1pdHRlZFBhdGggfTtcblx0fVxuXG5cdHB1YmxpYyBhZGRGaWxlKGZpbGU6IEZpbGVFeCwgcHJvamVjdDogUHJvamVjdCk6IHZvaWQge1xuXHRcdGNvbnN0IGdyb3VwUHJvamVjdCA9IHRoaXMuI2dyb3VwLmZpbmQoKGcpID0+IGcucHJvamVjdCA9PT0gcHJvamVjdCk7XG5cdFx0aWYgKGdyb3VwUHJvamVjdCA9PSBudWxsKSByZXR1cm47XG5cblx0XHRncm91cFByb2plY3QuZmlsZXMucHVzaChmaWxlKTtcblx0XHR0aGlzLiNhbGxGaWxlcy5wdXNoKGZpbGUpO1xuXG5cdFx0Y29uc3Qgb3V0QmFzZURpciA9IGdyb3VwUHJvamVjdC5wcm9qZWN0LmdldE91dERpcihcInR5cGVzXCIpO1xuXHRcdGNvbnN0IHRhcmdldCA9IHRoaXMudG9FbWlzc2lvblRhcmdldChncm91cFByb2plY3QsIGZpbGUsIG91dEJhc2VEaXIpO1xuXHRcdHRoaXMuI3RhcmdldHNCeUR0c1BhdGguc2V0KHRhcmdldC5kdHNSZWxhdGl2ZSwgdGFyZ2V0KTtcblx0XHR0aGlzLiN0YXJnZXRzQnlFbWl0dGVkUGF0aC5zZXQodGhpcy5lbWl0dGVkS2V5KGZpbGUpLCB0YXJnZXQpO1xuXHRcdHRoaXMuI2hvc3QuaW52YWxpZGF0ZVNvdXJjZUZpbGUoZmlsZS5mdWxsUGF0aCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZW1pdChcblx0XHRmaWxlRmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0dGhpcy5yZWZyZXNoUHJvZ3JhbUlmTmVlZGVkKCk7XG5cdFx0aWYgKGZpbGVGaWx0ZXIgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZW1pdEFsbChvbk91dHB1dCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVtaXRGaWx0ZXJlZChmaWxlRmlsdGVyLCBvbk91dHB1dCk7XG5cdH1cblxuXHRwcml2YXRlIGNyZWF0ZVByb2dyYW0ob2xkUHJvZ3JhbT86IHRzLlByb2dyYW0pOiB0cy5Qcm9ncmFtIHtcblx0XHRyZXR1cm4gdGhpcy4jaG9zdC5jcmVhdGVQcm9ncmFtKFxuXHRcdFx0dGhpcy4jYWxsRmlsZXMsXG5cdFx0XHR0aGlzLiNjb21waWxlck9wdGlvbnMsXG5cdFx0XHR0aGlzLiNjb21waWxlckhvc3QsXG5cdFx0XHRvbGRQcm9ncmFtLFxuXHRcdFx0dGhpcy4jcmVxdWlyZWRPcHRpb25zLFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIHJlZnJlc2hQcm9ncmFtSWZOZWVkZWQoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuI2hvc3QuaGFzSW52YWxpZGF0ZWQoKSkge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbSA9IHRoaXMuY3JlYXRlUHJvZ3JhbSh0aGlzLiNwcm9ncmFtKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGVtaXRBbGwob25PdXRwdXQ/OiAocmVzcG9uc2U6IFRyYW5zZm9ybVJlc3BvbnNlKSA9PiB2b2lkKTogVHJhbnNmb3JtUmVzcG9uc2VbXSB7XG5cdFx0Y29uc3QgcmVzcG9uc2VzOiBUcmFuc2Zvcm1SZXNwb25zZVtdID0gW107XG5cdFx0dGhpcy4jcHJvZ3JhbS5lbWl0KHVuZGVmaW5lZCwgKGVtaXR0ZWRQYXRoLCBjb250ZW50KSA9PiB7XG5cdFx0XHRpZiAoIWVtaXR0ZWRQYXRoLmVuZHNXaXRoKFwiLmQudHNcIikpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcmVzcG9uc2UgPSB0aGlzLnRvVHJhbnNmb3JtUmVzcG9uc2UoZW1pdHRlZFBhdGgsIGNvbnRlbnQpO1xuXHRcdFx0cmVzcG9uc2VzLnB1c2gocmVzcG9uc2UpO1xuXHRcdFx0b25PdXRwdXQ/LihyZXNwb25zZSk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHJlc3BvbnNlcztcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgZW1pdEZpbHRlcmVkKFxuXHRcdGZpbGVGaWx0ZXI6IChwcm9qZWN0OiBQcm9qZWN0KSA9PiBQcm9taXNlPEZpbGVFeFtdPixcblx0XHRvbk91dHB1dD86IChyZXNwb25zZTogVHJhbnNmb3JtUmVzcG9uc2UpID0+IHZvaWQsXG5cdCk6IFByb21pc2U8VHJhbnNmb3JtUmVzcG9uc2VbXT4ge1xuXHRcdGNvbnN0IGZpbGVzID0gYXdhaXQgUHJvbWlzZS5hbGwodGhpcy4jZ3JvdXAubWFwKCh7IHByb2plY3QgfSkgPT4gZmlsZUZpbHRlcihwcm9qZWN0KSkpO1xuXHRcdGNvbnN0IHNvdXJjZUZpbGVzID0gZmlsZXNcblx0XHRcdC5mbGF0KClcblx0XHRcdC5tYXAoKGZpbGUpID0+IHRoaXMuI3Byb2dyYW0uZ2V0U291cmNlRmlsZShmaWxlLmZ1bGxQYXRoKSlcblx0XHRcdC5maWx0ZXIoKHNmKTogc2YgaXMgdHMuU291cmNlRmlsZSA9PiBzZiAhPSBudWxsKTtcblxuXHRcdGNvbnN0IHJlc3BvbnNlczogVHJhbnNmb3JtUmVzcG9uc2VbXSA9IFtdO1xuXG5cdFx0Zm9yIChjb25zdCBzb3VyY2VGaWxlIG9mIHNvdXJjZUZpbGVzKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtLmVtaXQoc291cmNlRmlsZSwgKGVtaXR0ZWRQYXRoLCBjb250ZW50KSA9PiB7XG5cdFx0XHRcdGlmICghZW1pdHRlZFBhdGguZW5kc1dpdGgoXCIuZC50c1wiKSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCByZXNwb25zZSA9IHRoaXMudG9UcmFuc2Zvcm1SZXNwb25zZShlbWl0dGVkUGF0aCwgY29udGVudCk7XG5cdFx0XHRcdHJlc3BvbnNlcy5wdXNoKHJlc3BvbnNlKTtcblx0XHRcdFx0b25PdXRwdXQ/LihyZXNwb25zZSk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzcG9uc2VzO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1RyYW5zZm9ybVJlc3BvbnNlKGVtaXR0ZWRQYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZyk6IFRyYW5zZm9ybVJlc3BvbnNlIHtcblx0XHRjb25zdCB0YXJnZXQgPSB0aGlzLiN0YXJnZXRzQnlFbWl0dGVkUGF0aC5nZXQoZW1pdHRlZFBhdGgpO1xuXHRcdGlmICh0YXJnZXQgPT0gbnVsbCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBObyBtYXRjaGluZyBlbWlzc2lvbiB0YXJnZXQgZm9yOiAke2VtaXR0ZWRQYXRofWApO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50b1RyYW5zZm9ybVJlc3BvbnNlRnJvbVRhcmdldCh0YXJnZXQsIGNvbnRlbnQpO1xuXHR9XG5cblx0cHJpdmF0ZSB0b1RyYW5zZm9ybVJlc3BvbnNlRnJvbVRhcmdldChcblx0XHR0YXJnZXQ6IEVtaXNzaW9uVGFyZ2V0LFxuXHRcdGNvbnRlbnQ6IHN0cmluZyxcblx0KTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdGNvbnN0IHsgZmlsZSwgdHNjb25maWcsIHByb2plY3QsIG91dHB1dFBhdGgsIG91dHB1dERpciwgZHRzUmVsYXRpdmUgfSA9IHRhcmdldDtcblx0XHRyZXR1cm4gVHJhbnNmb3JtUmVzcG9uc2UuZnJvbSh7XG5cdFx0XHRmaWxlLFxuXHRcdFx0Y29uZmlnOiB0c2NvbmZpZyxcblx0XHRcdG91dGNvbWU6IFwic3VjY2Vzc1wiLFxuXHRcdFx0ZmlsZU5hbWU6IGR0c1JlbGF0aXZlLFxuXHRcdFx0Y29kZTogY29udGVudCxcblx0XHRcdHRhcmdldDogXCJ0eXBlc1wiLFxuXHRcdFx0bWVzc2FnZXM6IFtdLFxuXHRcdFx0cHJvamVjdCxcblx0XHRcdG91dHB1dERpcixcblx0XHRcdG91dHB1dFBhdGgsXG5cdFx0fSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJUeXBlRW1pc3Npb25Qcm9ncmFtIiwiZ3JvdXAiLCJob3N0RmFjdG9yeSIsInJlcXVpcmVkT3B0aW9ucyIsInRhcmdldHMiLCJidWlsZFRhcmdldE1hcHMiLCJieUR0c1BhdGgiLCJieUVtaXR0ZWRQYXRoIiwidHNjb25maWciLCJjb21waWxlck9wdGlvbnMiLCJmbGF0TWFwIiwiZmlsZXMiLCJjcmVhdGVIb3N0IiwiY3JlYXRlUHJvZ3JhbSIsImNoZWNrIiwicmVmcmVzaFByb2dyYW1JZk5lZWRlZCIsInRzIiwiZ2V0UHJlRW1pdERpYWdub3N0aWNzIiwiZm9ybWF0RGlhZ25vc3RpY3MiLCJkaWFnbm9zdGljcyIsImZvcm1hdERpYWdub3N0aWNzV2l0aENvbG9yQW5kQ29udGV4dCIsInRvRW1pc3Npb25UYXJnZXQiLCJncm91cFByb2plY3QiLCJmaWxlIiwib3V0QmFzZURpciIsImV4dE5hbWUiLCJwYXRoIiwiZXh0bmFtZSIsInJlbGF0aXZlUGF0aCIsImR0c1JlbGF0aXZlIiwicmVwbGFjZSIsIlJlZ0V4cCIsIm91dHB1dFBhdGgiLCJqb2luIiwicHJvamVjdCIsIm91dHB1dERpciIsImRpcm5hbWUiLCJlbWl0dGVkS2V5IiwiZnVsbFBhdGgiLCJNYXAiLCJnZXRPdXREaXIiLCJ0YXJnZXQiLCJzZXQiLCJhZGRGaWxlIiwiZmluZCIsImciLCJwdXNoIiwiaW52YWxpZGF0ZVNvdXJjZUZpbGUiLCJlbWl0IiwiZmlsZUZpbHRlciIsIm9uT3V0cHV0IiwiZW1pdEFsbCIsImVtaXRGaWx0ZXJlZCIsIm9sZFByb2dyYW0iLCJoYXNJbnZhbGlkYXRlZCIsInJlc3BvbnNlcyIsInVuZGVmaW5lZCIsImVtaXR0ZWRQYXRoIiwiY29udGVudCIsImVuZHNXaXRoIiwicmVzcG9uc2UiLCJ0b1RyYW5zZm9ybVJlc3BvbnNlIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInNvdXJjZUZpbGVzIiwiZmxhdCIsImdldFNvdXJjZUZpbGUiLCJmaWx0ZXIiLCJzZiIsInNvdXJjZUZpbGUiLCJnZXQiLCJFcnJvciIsInRvVHJhbnNmb3JtUmVzcG9uc2VGcm9tVGFyZ2V0IiwiVHJhbnNmb3JtUmVzcG9uc2UiLCJmcm9tIiwiY29uZmlnIiwib3V0Y29tZSIsImZpbGVOYW1lIiwiY29kZSIsIm1lc3NhZ2VzIl0sIm1hcHBpbmdzIjoiOzs7OytCQXdCYUE7OztlQUFBQTs7O2lFQXhCSTs2QkFFSzttRUFFUDt3Q0FFbUI7Ozs7Ozs7Ozs7Ozs7OztBQWtCM0IsTUFBTUE7SUFDWixDQUFBLE9BQVEsQ0FBYTtJQUNyQixDQUFBLEtBQU0sQ0FBdUI7SUFDN0IsQ0FBQSxnQkFBaUIsQ0FBOEI7SUFD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
|
|
@@ -12,6 +12,9 @@ _export(exports, {
|
|
|
12
12
|
get DEFAULT_TYPE_EMITTER_OPTIONS () {
|
|
13
13
|
return DEFAULT_TYPE_EMITTER_OPTIONS;
|
|
14
14
|
},
|
|
15
|
+
get REQUIRED_TYPE_CHECK_OPTIONS () {
|
|
16
|
+
return REQUIRED_TYPE_CHECK_OPTIONS;
|
|
17
|
+
},
|
|
15
18
|
get REQUIRED_TYPE_EMITTER_OPTIONS () {
|
|
16
19
|
return REQUIRED_TYPE_EMITTER_OPTIONS;
|
|
17
20
|
},
|
|
@@ -49,6 +52,9 @@ const REQUIRED_TYPE_EMITTER_OPTIONS = {
|
|
|
49
52
|
emitDeclarationOnly: true,
|
|
50
53
|
declaration: true
|
|
51
54
|
};
|
|
55
|
+
const REQUIRED_TYPE_CHECK_OPTIONS = {
|
|
56
|
+
noEmit: true
|
|
57
|
+
};
|
|
52
58
|
class TypeEmitter extends (0, _extensibility.mixwith)(_cachesoutputsmixin.CachesOutputs, _incrementaltransformmixin.IncrementalTransform) {
|
|
53
59
|
buildTargets = [
|
|
54
60
|
_buildtargettype.BuildTargets.types
|
|
@@ -76,11 +82,34 @@ class TypeEmitter extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Caches
|
|
|
76
82
|
this.cacheOutputs(responses);
|
|
77
83
|
return responses;
|
|
78
84
|
}
|
|
79
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Type-check projects without emitting files. Includes every Mesh project, not
|
|
87
|
+
* only those with a `types` build target (debug is es6-only).
|
|
88
|
+
*/ async checkProject(projectArrayLike) {
|
|
89
|
+
const programs = await this.preparePrograms(projectArrayLike, {
|
|
90
|
+
includeAllProjects: true,
|
|
91
|
+
requiredCompilerOptions: REQUIRED_TYPE_CHECK_OPTIONS
|
|
92
|
+
});
|
|
93
|
+
const diagnostics = [];
|
|
94
|
+
const formattedParts = [];
|
|
95
|
+
for (const program of programs){
|
|
96
|
+
const programDiagnostics = program.check();
|
|
97
|
+
if (programDiagnostics.length === 0) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
diagnostics.push(...programDiagnostics);
|
|
101
|
+
formattedParts.push(program.formatDiagnostics(programDiagnostics));
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
diagnostics,
|
|
105
|
+
formatted: formattedParts.join("")
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
async preparePrograms(projectArrayLike, options = {}) {
|
|
80
109
|
const allProjects = Array.isArray(projectArrayLike) ? projectArrayLike : [
|
|
81
110
|
projectArrayLike
|
|
82
111
|
];
|
|
83
|
-
const projects = allProjects.filter((proj)=>proj.getForgeConfiguration().targets.includes(_buildtargettype.BuildTargets.types));
|
|
112
|
+
const projects = options.includeAllProjects ? allProjects : allProjects.filter((proj)=>proj.getForgeConfiguration().targets.includes(_buildtargettype.BuildTargets.types));
|
|
84
113
|
if (projects.length === 0) {
|
|
85
114
|
return [];
|
|
86
115
|
}
|
|
@@ -96,9 +125,10 @@ class TypeEmitter extends (0, _extensibility.mixwith)(_cachesoutputsmixin.Caches
|
|
|
96
125
|
// files are compiled together, matching v1's single-program approach which
|
|
97
126
|
// avoids re-parsing lib/node_modules .d.ts files per project.
|
|
98
127
|
const groups = Map.groupBy(projectData, ({ tsconfig })=>this.#host.hostKey(tsconfig.compilerOptions));
|
|
128
|
+
const requiredCompilerOptions = options.requiredCompilerOptions ?? REQUIRED_TYPE_EMITTER_OPTIONS;
|
|
99
129
|
return [
|
|
100
130
|
...groups.values()
|
|
101
|
-
].map((group)=>new _typeemissionprogram.TypeEmissionProgram(group, this.#host));
|
|
131
|
+
].map((group)=>new _typeemissionprogram.TypeEmissionProgram(group, this.#host, requiredCompilerOptions));
|
|
102
132
|
}
|
|
103
133
|
async onIncrementalFileEvent(evt) {
|
|
104
134
|
const { file, project } = evt;
|
|
@@ -138,4 +168,4 @@ TypeEmitter = _ts_decorate([
|
|
|
138
168
|
_diagnostics.Trace
|
|
139
169
|
], TypeEmitter);
|
|
140
170
|
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBQcm9qZWN0RmlsZUV2ZW50IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NhY2hpbmdcIjtcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9kaWFnbm9zdGljc1wiO1xuaW1wb3J0IHsgbWl4d2l0aCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZXh0ZW5zaWJpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBGaWxlRXggfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgeyBpbyB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgXCIuLi9leHRlbnNpb25zL3Byb2plY3QuZXh0ZW5zaW9ucy5qc1wiO1xuaW1wb3J0IHsgQ2FjaGVzT3V0cHV0cyB9IGZyb20gXCIuLi9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4uanNcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsVHJhbnNmb3JtIH0gZnJvbSBcIi4uL21peGlucy9pbmNyZW1lbnRhbC10cmFuc2Zvcm0ubWl4aW4uanNcIjtcbmltcG9ydCB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQge1xuXHRUeXBlRW1pc3Npb25Qcm9ncmFtLFxuXHR0eXBlIFR5cGVQcm9ncmFtUHJvamVjdCxcbn0gZnJvbSBcIi4uL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9uIGRlZmF1bHRzIGFwcGxpZWQgYmVmb3JlIHRoZSB1c2VyJ3MgdHNjb25maWcg4oCUIHRoZSB1c2VyJ3MgdmFsdWVzIG92ZXJyaWRlIHRoZXNlLlxuICpcbiAqIGxpYjogRVMyMDIyIOKAlCBhdm9pZHMgbG9hZGluZyBsaWIuZG9tLmQudHMgKDEuOCBNQikgd2hpY2ggVFMgaW5jbHVkZXMgYnkgZGVmYXVsdFxuICogd2hlbiBubyBgbGliYCBpcyBzZXQuIEJhY2tlbmQgcGFja2FnZXMgaGF2ZSBubyB1c2UgZm9yIGJyb3dzZXIgQVBJcy5cbiAqXG4gKiB0eXBlczogW10g4oCUIGRpc2FibGVzIGFtYmllbnQgQHR5cGVzIGF1dG8tZGlzY292ZXJ5LiBXaXRob3V0IHRoaXMsIFRTIHNjYW5zXG4gKiBldmVyeSBAdHlwZXMvKiBwYWNrYWdlIGluIHRoZSBub2RlX21vZHVsZXMgaGllcmFyY2h5OyBpbiBhIG1vbm9yZXBvIHRoYXQgY2FuXG4gKiBwdWxsIGluIGRvemVucyBvZiB1bnJlbGF0ZWQgcGFja2FnZXMuIEV4cGxpY2l0bHkgaW1wb3J0ZWQgdHlwZXMgc3RpbGwgcmVzb2x2ZVxuICogbm9ybWFsbHk7IG9ubHkgYW1iaWVudCBnbG9iYWxzIChlLmcuIEJ1ZmZlciwgcHJvY2VzcykgYXJlIHN1cHByZXNzZWQg4oCUIGFkZFxuICogYHR5cGVzOiBbXCJub2RlXCJdYCB0byBhIHByb2plY3QncyB0c2NvbmZpZyB0byByZXN0b3JlIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRsaWI6IFtcImxpYi5lczIwMjIuZC50c1wiXSxcblx0dHlwZXM6IFtdLFxuXHRza2lwTGliQ2hlY2s6IHRydWUsXG59O1xuXG4vKipcbiAqIENvbXBpbGVyIG9wdGlvbnMgdGhhdCBUeXBlRW1pdHRlciBhbHdheXMgZW5mb3JjZXMgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyJ3NcbiAqIHRzY29uZmlnIHNwZWNpZmllcy4gQXBwbGllZCBhZnRlciB0aGUgdXNlciBzcHJlYWQgc28gdGhleSBjYW5ub3QgYmUgb3ZlcnJpZGRlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRlbWl0RGVjbGFyYXRpb25Pbmx5OiB0cnVlLFxuXHRkZWNsYXJhdGlvbjogdHJ1ZSxcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFR5cGVFbWl0dGVyXG5cdGV4dGVuZHMgbWl4d2l0aChDYWNoZXNPdXRwdXRzLCBJbmNyZW1lbnRhbFRyYW5zZm9ybSlcblx0aW1wbGVtZW50cyBUcmFuc2Zvcm1lclxue1xuXHRwdWJsaWMgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdID0gW0J1aWxkVGFyZ2V0cy50eXBlc107XG5cdC8qKiBQcmVwYXJlZCBwcm9ncmFtcyBmcm9tIGluaXQoKSwgY29uc3VtZWQgb25jZSBieSB0aGUgbmV4dCB0cmFuc2Zvcm1Qcm9qZWN0KCkgY2FsbC4gKi9cblx0I3Byb2dyYW1zOiBUeXBlRW1pc3Npb25Qcm9ncmFtW10gfCB1bmRlZmluZWQ7XG5cdCNob3N0ID0gbmV3IFRzUHJvZ3JhbUhvc3QoKTtcblxuXHQvKipcblx0ICogUGhhc2UgMTogZmV0Y2ggZmlsZXMsIGNyZWF0ZSBUeXBlU2NyaXB0IHByb2dyYW1zIHNlcXVlbnRpYWxseS5cblx0ICogQ2FsbGVkIGJlZm9yZSB0cmFuc2Zvcm1Qcm9qZWN0KCkgc28gdGhhdCB0aGUgaGVhdnkgY3JlYXRlUHJvZ3JhbSB3b3JrXG5cdCAqIGNvbXBsZXRlcyBiZWZvcmUgb3RoZXIgdHJhbnNmb3JtZXJzIChTV0MvUmF5b24pIHN0YXJ0IHJ1bm5pbmcgaW4gcGFyYWxsZWwuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgaW5pdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHRcdF9maWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLiNwcm9ncmFtcyA9PSBudWxsKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2Zvcm1Qcm9qZWN0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0ZmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Ly8gQ29uc3VtZSBwcmVwYXJlZCBzdGF0ZSBmcm9tIGluaXQoKSBpZiBhdmFpbGFibGU7IG90aGVyd2lzZSBkbyBmdWxsIHNldHVwXG5cdFx0Ly8gKGUuZy4gd2F0Y2gtbW9kZSBzaW5nbGUtZmlsZSByZWJ1aWxkcyB0aGF0IHNraXAgdGhlIGluaXQgcGhhc2UpLlxuXHRcdGNvbnN0IHByb2dyYW1zID0gdGhpcy4jcHJvZ3JhbXMgPz8gKGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpKTtcblx0XHR0aGlzLiNwcm9ncmFtcyA9IHByb2dyYW1zO1xuXG5cdFx0aWYgKHByb2dyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3BvbnNlcyA9IChcblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb2dyYW1zLm1hcCgocHJvZ3JhbSkgPT4gcHJvZ3JhbS5lbWl0KGZpbHRlciwgb25PdXRwdXQpKSlcblx0XHQpLmZsYXQoKTtcblx0XHR0aGlzLmNhY2hlT3V0cHV0cyhyZXNwb25zZXMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIHByZXBhcmVQcm9ncmFtcyhcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHQpOiBQcm9taXNlPFR5cGVFbWlzc2lvblByb2dyYW1bXT4ge1xuXHRcdGNvbnN0IGFsbFByb2plY3RzID0gQXJyYXkuaXNBcnJheShwcm9qZWN0QXJyYXlMaWtlKVxuXHRcdFx0PyBwcm9qZWN0QXJyYXlMaWtlXG5cdFx0XHQ6IFtwcm9qZWN0QXJyYXlMaWtlXTtcblx0XHRjb25zdCBwcm9qZWN0cyA9IGFsbFByb2plY3RzLmZpbHRlcigocHJvaikgPT5cblx0XHRcdHByb2ouZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCkudGFyZ2V0cy5pbmNsdWRlcyhCdWlsZFRhcmdldHMudHlwZXMpLFxuXHRcdCk7XG5cdFx0aWYgKHByb2plY3RzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdC8vIFByZS1mZXRjaCBhbGwgZmlsZXMgYW5kIHRzY29uZmlncyBpbiBwYXJhbGxlbCBhY3Jvc3MgYWxsIHByb2plY3RzXG5cdFx0Y29uc3QgcHJvamVjdERhdGE6IFR5cGVQcm9ncmFtUHJvamVjdFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG5cdFx0XHRwcm9qZWN0cy5tYXAoYXN5bmMgKHByb2opID0+ICh7XG5cdFx0XHRcdHByb2plY3Q6IHByb2osXG5cdFx0XHRcdGZpbGVzOiBhd2FpdCBwcm9qLmdldEFsbEZpbGVzKCksXG5cdFx0XHRcdHRzY29uZmlnOiBhd2FpdCBwcm9qLmdldFRzQ29uZmlnKCksXG5cdFx0XHR9KSksXG5cdFx0KTtcblxuXHRcdC8vIEdyb3VwIHByb2plY3RzIGJ5IHRoZSByZXNvbHZlZCBjb21waWxlciBvcHRpb25zIHRoYXQgYWZmZWN0IHRoZSBjb21waWxlclxuXHRcdC8vIGhvc3QgKGxpYiBsb2FkaW5nLCBtb2R1bGUgcmVzb2x1dGlvbiwgcGF0aCBhbGlhc2VzKS4gUHJvamVjdHMgc2hhcmluZyB0aGVcblx0XHQvLyBzYW1lIHJlc29sdmVkIHZhbHVlcyBnZXQgb25lIHNoYXJlZCBob3N0IEFORCBvbmUgc2hhcmVkIHByb2dyYW0g4oCUIGFsbCB0aGVpclxuXHRcdC8vIGZpbGVzIGFyZSBjb21waWxlZCB0b2dldGhlciwgbWF0Y2hpbmcgdjEncyBzaW5nbGUtcHJvZ3JhbSBhcHByb2FjaCB3aGljaFxuXHRcdC8vIGF2b2lkcyByZS1wYXJzaW5nIGxpYi9ub2RlX21vZHVsZXMgLmQudHMgZmlsZXMgcGVyIHByb2plY3QuXG5cdFx0Y29uc3QgZ3JvdXBzID0gTWFwLmdyb3VwQnkocHJvamVjdERhdGEsICh7IHRzY29uZmlnIH0pID0+XG5cdFx0XHR0aGlzLiNob3N0Lmhvc3RLZXkodHNjb25maWcuY29tcGlsZXJPcHRpb25zKSxcblx0XHQpO1xuXG5cdFx0cmV0dXJuIFsuLi5ncm91cHMudmFsdWVzKCldLm1hcCgoZ3JvdXApID0+IG5ldyBUeXBlRW1pc3Npb25Qcm9ncmFtKGdyb3VwLCB0aGlzLiNob3N0KSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgb25JbmNyZW1lbnRhbEZpbGVFdmVudChldnQ6IFByb2plY3RGaWxlRXZlbnQpOiBQcm9taXNlPFRyYW5zZm9ybVJlc3BvbnNlW10+IHtcblx0XHRjb25zdCB7IGZpbGUsIHByb2plY3QgfSA9IGV2dDtcblx0XHRpZiAoZXZ0LmV2ZW50TmFtZSA9PT0gaW8uV2F0Y2hFdmVudHMudW5saW5rKSB7XG5cdFx0XHR0aGlzLmRlbGV0ZUNhY2hlZE91dHB1dHMoZmlsZS5mdWxsUGF0aCk7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdGlmICghcHJvamVjdC5pc1NvdXJjZUZpbGUoZmlsZSkpIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLmFkZCkge1xuXHRcdFx0dGhpcy4jcHJvZ3JhbXM/LmZvckVhY2goKHApID0+IHtcblx0XHRcdFx0cC5hZGRGaWxlKGZpbGUsIHByb2plY3QpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUoZmlsZS5mdWxsUGF0aCk7XG5cdFx0XHR0aGlzLiNob3N0LmludmFsaWRhdGVTb3VyY2VGaWxlKGZpbGUuZnVsbFBhdGgpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1Qcm9qZWN0KHByb2plY3QsICgpID0+IFByb21pc2UucmVzb2x2ZShbZmlsZV0pKTtcblx0fVxuXG5cdEBpbnZhbGlkYXRlQ2FjaGUoVHNQcm9ncmFtSG9zdC5wcm90b3R5cGUucmVhZEZpbGVGcm9tRGlzaywge1xuXHRcdG5hbWU6IFwiRklMRV9DT05URU5UXCIsXG5cdFx0a2V5Rm46ICguLi5hcmdzKSA9PiBhcmdzWzBdIGFzIHN0cmluZyxcblx0fSlcblx0cHJpdmF0ZSBpbnZhbGlkYXRlUmVhZEZpbGVDYWNoZShfcGF0aDogc3RyaW5nKTogdm9pZCB7fVxufVxuIl0sIm5hbWVzIjpbIkRFRkFVTFRfVFlQRV9FTUlUVEVSX09QVElPTlMiLCJSRVFVSVJFRF9UWVBFX0VNSVRURVJfT1BUSU9OUyIsIlR5cGVFbWl0dGVyIiwibGliIiwidHlwZXMiLCJza2lwTGliQ2hlY2siLCJlbWl0RGVjbGFyYXRpb25Pbmx5IiwiZGVjbGFyYXRpb24iLCJtaXh3aXRoIiwiQ2FjaGVzT3V0cHV0cyIsIkluY3JlbWVudGFsVHJhbnNmb3JtIiwiYnVpbGRUYXJnZXRzIiwiQnVpbGRUYXJnZXRzIiwiVHNQcm9ncmFtSG9zdCIsImluaXQiLCJwcm9qZWN0QXJyYXlMaWtlIiwiX2ZpbHRlciIsInByZXBhcmVQcm9ncmFtcyIsInRyYW5zZm9ybVByb2plY3QiLCJmaWx0ZXIiLCJvbk91dHB1dCIsInByb2dyYW1zIiwibGVuZ3RoIiwicmVzcG9uc2VzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInByb2dyYW0iLCJlbWl0IiwiZmxhdCIsImNhY2hlT3V0cHV0cyIsImFsbFByb2plY3RzIiwiQXJyYXkiLCJpc0FycmF5IiwicHJvamVjdHMiLCJwcm9qIiwiZ2V0Rm9yZ2VDb25maWd1cmF0aW9uIiwidGFyZ2V0cyIsImluY2x1ZGVzIiwicHJvamVjdERhdGEiLCJwcm9qZWN0IiwiZmlsZXMiLCJnZXRBbGxGaWxlcyIsInRzY29uZmlnIiwiZ2V0VHNDb25maWciLCJncm91cHMiLCJNYXAiLCJncm91cEJ5IiwiaG9zdEtleSIsImNvbXBpbGVyT3B0aW9ucyIsInZhbHVlcyIsImdyb3VwIiwiVHlwZUVtaXNzaW9uUHJvZ3JhbSIsIm9uSW5jcmVtZW50YWxGaWxlRXZlbnQiLCJldnQiLCJmaWxlIiwiZXZlbnROYW1lIiwiaW8iLCJXYXRjaEV2ZW50cyIsInVubGluayIsImRlbGV0ZUNhY2hlZE91dHB1dHMiLCJmdWxsUGF0aCIsImlzU291cmNlRmlsZSIsImFkZCIsImZvckVhY2giLCJwIiwiYWRkRmlsZSIsImludmFsaWRhdGVSZWFkRmlsZUNhY2hlIiwiaW52YWxpZGF0ZVNvdXJjZUZpbGUiLCJyZXNvbHZlIiwiX3BhdGgiLCJwcm90b3R5cGUiLCJyZWFkRmlsZUZyb21EaXNrIiwibmFtZSIsImtleUZuIiwiYXJncyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUErQmFBO2VBQUFBOztRQVVBQztlQUFBQTs7UUFNQUM7ZUFBQUE7Ozt5QkE5Q21COzZCQUNWOytCQUNFO29CQUVMO1FBRVo7b0NBQ3VCOzJDQUNPOytCQUNQO3FDQUl2QjtpQ0FDd0M7Ozs7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
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9zZXJ2aWNlcy90eXBlLWVtaXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBQcm9qZWN0RmlsZUV2ZW50IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBpbnZhbGlkYXRlQ2FjaGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2NhY2hpbmdcIjtcbmltcG9ydCB7IFRyYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9kaWFnbm9zdGljc1wiO1xuaW1wb3J0IHsgbWl4d2l0aCB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZXh0ZW5zaWJpbGl0eVwiO1xuaW1wb3J0IHR5cGUgeyBGaWxlRXggfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgeyBpbyB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvaW9cIjtcbmltcG9ydCB0eXBlIHRzIGZyb20gXCJ0eXBlc2NyaXB0XCI7XG5pbXBvcnQgXCIuLi9leHRlbnNpb25zL3Byb2plY3QuZXh0ZW5zaW9ucy5qc1wiO1xuaW1wb3J0IHsgQ2FjaGVzT3V0cHV0cyB9IGZyb20gXCIuLi9taXhpbnMvY2FjaGVzLW91dHB1dHMubWl4aW4uanNcIjtcbmltcG9ydCB7IEluY3JlbWVudGFsVHJhbnNmb3JtIH0gZnJvbSBcIi4uL21peGlucy9pbmNyZW1lbnRhbC10cmFuc2Zvcm0ubWl4aW4uanNcIjtcbmltcG9ydCB7IFRzUHJvZ3JhbUhvc3QgfSBmcm9tIFwiLi4vc2VydmljZXMvdHMtcHJvZ3JhbS1ob3N0LmpzXCI7XG5pbXBvcnQge1xuXHRUeXBlRW1pc3Npb25Qcm9ncmFtLFxuXHR0eXBlIFR5cGVQcm9ncmFtUHJvamVjdCxcbn0gZnJvbSBcIi4uL3NlcnZpY2VzL3R5cGUtZW1pc3Npb24tcHJvZ3JhbS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBCdWlsZFRhcmdldCwgQnVpbGRUYXJnZXRzIH0gZnJvbSBcIi4uL3R5cGVzL2J1aWxkLXRhcmdldC50eXBlLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3BvbnNlIH0gZnJvbSBcIi4uL3R5cGVzL3RyYW5zZm9ybS1yZXNwb25zZS5tb2RlbC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gXCIuLi90eXBlcy90cmFuc2Zvcm1lci50eXBlLmpzXCI7XG5cbi8qKlxuICogQ29tcGlsZXIgb3B0aW9uIGRlZmF1bHRzIGFwcGxpZWQgYmVmb3JlIHRoZSB1c2VyJ3MgdHNjb25maWcg4oCUIHRoZSB1c2VyJ3MgdmFsdWVzIG92ZXJyaWRlIHRoZXNlLlxuICpcbiAqIGxpYjogRVMyMDIyIOKAlCBhdm9pZHMgbG9hZGluZyBsaWIuZG9tLmQudHMgKDEuOCBNQikgd2hpY2ggVFMgaW5jbHVkZXMgYnkgZGVmYXVsdFxuICogd2hlbiBubyBgbGliYCBpcyBzZXQuIEJhY2tlbmQgcGFja2FnZXMgaGF2ZSBubyB1c2UgZm9yIGJyb3dzZXIgQVBJcy5cbiAqXG4gKiB0eXBlczogW10g4oCUIGRpc2FibGVzIGFtYmllbnQgQHR5cGVzIGF1dG8tZGlzY292ZXJ5LiBXaXRob3V0IHRoaXMsIFRTIHNjYW5zXG4gKiBldmVyeSBAdHlwZXMvKiBwYWNrYWdlIGluIHRoZSBub2RlX21vZHVsZXMgaGllcmFyY2h5OyBpbiBhIG1vbm9yZXBvIHRoYXQgY2FuXG4gKiBwdWxsIGluIGRvemVucyBvZiB1bnJlbGF0ZWQgcGFja2FnZXMuIEV4cGxpY2l0bHkgaW1wb3J0ZWQgdHlwZXMgc3RpbGwgcmVzb2x2ZVxuICogbm9ybWFsbHk7IG9ubHkgYW1iaWVudCBnbG9iYWxzIChlLmcuIEJ1ZmZlciwgcHJvY2VzcykgYXJlIHN1cHByZXNzZWQg4oCUIGFkZFxuICogYHR5cGVzOiBbXCJub2RlXCJdYCB0byBhIHByb2plY3QncyB0c2NvbmZpZyB0byByZXN0b3JlIHRoZW0uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRsaWI6IFtcImxpYi5lczIwMjIuZC50c1wiXSxcblx0dHlwZXM6IFtdLFxuXHRza2lwTGliQ2hlY2s6IHRydWUsXG59O1xuXG4vKipcbiAqIENvbXBpbGVyIG9wdGlvbnMgdGhhdCBUeXBlRW1pdHRlciBhbHdheXMgZW5mb3JjZXMgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyJ3NcbiAqIHRzY29uZmlnIHNwZWNpZmllcy4gQXBwbGllZCBhZnRlciB0aGUgdXNlciBzcHJlYWQgc28gdGhleSBjYW5ub3QgYmUgb3ZlcnJpZGRlbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVJUkVEX1RZUEVfRU1JVFRFUl9PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRlbWl0RGVjbGFyYXRpb25Pbmx5OiB0cnVlLFxuXHRkZWNsYXJhdGlvbjogdHJ1ZSxcbn07XG5cbi8qKiBDb21waWxlciBvcHRpb25zIGVuZm9yY2VkIGZvciBgZm9yZ2UgdHlwZWNoZWNrYCDigJQgbmV2ZXIgZW1pdCBKUyBvciBkZWNsYXJhdGlvbnMuICovXG5leHBvcnQgY29uc3QgUkVRVUlSRURfVFlQRV9DSEVDS19PUFRJT05TOiBSZWFkb25seTx0cy5Db21waWxlck9wdGlvbnM+ID0ge1xuXHRub0VtaXQ6IHRydWUsXG59O1xuXG5leHBvcnQgdHlwZSBQcmVwYXJlUHJvZ3JhbXNPcHRpb25zID0ge1xuXHRpbmNsdWRlQWxsUHJvamVjdHM/OiBib29sZWFuO1xuXHRyZXF1aXJlZENvbXBpbGVyT3B0aW9ucz86IHRzLkNvbXBpbGVyT3B0aW9ucztcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFR5cGVFbWl0dGVyXG5cdGV4dGVuZHMgbWl4d2l0aChDYWNoZXNPdXRwdXRzLCBJbmNyZW1lbnRhbFRyYW5zZm9ybSlcblx0aW1wbGVtZW50cyBUcmFuc2Zvcm1lclxue1xuXHRwdWJsaWMgYnVpbGRUYXJnZXRzOiBCdWlsZFRhcmdldFtdID0gW0J1aWxkVGFyZ2V0cy50eXBlc107XG5cdC8qKiBQcmVwYXJlZCBwcm9ncmFtcyBmcm9tIGluaXQoKSwgY29uc3VtZWQgb25jZSBieSB0aGUgbmV4dCB0cmFuc2Zvcm1Qcm9qZWN0KCkgY2FsbC4gKi9cblx0I3Byb2dyYW1zOiBUeXBlRW1pc3Npb25Qcm9ncmFtW10gfCB1bmRlZmluZWQ7XG5cdCNob3N0ID0gbmV3IFRzUHJvZ3JhbUhvc3QoKTtcblxuXHQvKipcblx0ICogUGhhc2UgMTogZmV0Y2ggZmlsZXMsIGNyZWF0ZSBUeXBlU2NyaXB0IHByb2dyYW1zIHNlcXVlbnRpYWxseS5cblx0ICogQ2FsbGVkIGJlZm9yZSB0cmFuc2Zvcm1Qcm9qZWN0KCkgc28gdGhhdCB0aGUgaGVhdnkgY3JlYXRlUHJvZ3JhbSB3b3JrXG5cdCAqIGNvbXBsZXRlcyBiZWZvcmUgb3RoZXIgdHJhbnNmb3JtZXJzIChTV0MvUmF5b24pIHN0YXJ0IHJ1bm5pbmcgaW4gcGFyYWxsZWwuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgaW5pdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHRcdF9maWx0ZXI/OiAocHJvamVjdDogUHJvamVjdCkgPT4gUHJvbWlzZTxGaWxlRXhbXT4sXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmICh0aGlzLiNwcm9ncmFtcyA9PSBudWxsKSB7XG5cdFx0XHR0aGlzLiNwcm9ncmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyB0cmFuc2Zvcm1Qcm9qZWN0KFxuXHRcdHByb2plY3RBcnJheUxpa2U6IFByb2plY3RbXSB8IFByb2plY3QsXG5cdFx0ZmlsdGVyPzogKHByb2plY3Q6IFByb2plY3QpID0+IFByb21pc2U8RmlsZUV4W10+LFxuXHRcdG9uT3V0cHV0PzogKHJlc3BvbnNlOiBUcmFuc2Zvcm1SZXNwb25zZSkgPT4gdm9pZCxcblx0KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Ly8gQ29uc3VtZSBwcmVwYXJlZCBzdGF0ZSBmcm9tIGluaXQoKSBpZiBhdmFpbGFibGU7IG90aGVyd2lzZSBkbyBmdWxsIHNldHVwXG5cdFx0Ly8gKGUuZy4gd2F0Y2gtbW9kZSBzaW5nbGUtZmlsZSByZWJ1aWxkcyB0aGF0IHNraXAgdGhlIGluaXQgcGhhc2UpLlxuXHRcdGNvbnN0IHByb2dyYW1zID0gdGhpcy4jcHJvZ3JhbXMgPz8gKGF3YWl0IHRoaXMucHJlcGFyZVByb2dyYW1zKHByb2plY3RBcnJheUxpa2UpKTtcblx0XHR0aGlzLiNwcm9ncmFtcyA9IHByb2dyYW1zO1xuXG5cdFx0aWYgKHByb2dyYW1zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJlc3BvbnNlcyA9IChcblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb2dyYW1zLm1hcCgocHJvZ3JhbSkgPT4gcHJvZ3JhbS5lbWl0KGZpbHRlciwgb25PdXRwdXQpKSlcblx0XHQpLmZsYXQoKTtcblx0XHR0aGlzLmNhY2hlT3V0cHV0cyhyZXNwb25zZXMpO1xuXHRcdHJldHVybiByZXNwb25zZXM7XG5cdH1cblxuXHQvKipcblx0ICogVHlwZS1jaGVjayBwcm9qZWN0cyB3aXRob3V0IGVtaXR0aW5nIGZpbGVzLiBJbmNsdWRlcyBldmVyeSBNZXNoIHByb2plY3QsIG5vdFxuXHQgKiBvbmx5IHRob3NlIHdpdGggYSBgdHlwZXNgIGJ1aWxkIHRhcmdldCAoZGVidWcgaXMgZXM2LW9ubHkpLlxuXHQgKi9cblx0cHVibGljIGFzeW5jIGNoZWNrUHJvamVjdChcblx0XHRwcm9qZWN0QXJyYXlMaWtlOiBQcm9qZWN0W10gfCBQcm9qZWN0LFxuXHQpOiBQcm9taXNlPHsgZGlhZ25vc3RpY3M6IHRzLkRpYWdub3N0aWNbXTsgZm9ybWF0dGVkOiBzdHJpbmcgfT4ge1xuXHRcdGNvbnN0IHByb2dyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlUHJvZ3JhbXMocHJvamVjdEFycmF5TGlrZSwge1xuXHRcdFx0aW5jbHVkZUFsbFByb2plY3RzOiB0cnVlLFxuXHRcdFx0cmVxdWlyZWRDb21waWxlck9wdGlvbnM6IFJFUVVJUkVEX1RZUEVfQ0hFQ0tfT1BUSU9OUyxcblx0XHR9KTtcblx0XHRjb25zdCBkaWFnbm9zdGljczogdHMuRGlhZ25vc3RpY1tdID0gW107XG5cdFx0Y29uc3QgZm9ybWF0dGVkUGFydHM6IHN0cmluZ1tdID0gW107XG5cdFx0Zm9yIChjb25zdCBwcm9ncmFtIG9mIHByb2dyYW1zKSB7XG5cdFx0XHRjb25zdCBwcm9ncmFtRGlhZ25vc3RpY3MgPSBwcm9ncmFtLmNoZWNrKCk7XG5cdFx0XHRpZiAocHJvZ3JhbURpYWdub3N0aWNzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGRpYWdub3N0aWNzLnB1c2goLi4ucHJvZ3JhbURpYWdub3N0aWNzKTtcblx0XHRcdGZvcm1hdHRlZFBhcnRzLnB1c2gocHJvZ3JhbS5mb3JtYXREaWFnbm9zdGljcyhwcm9ncmFtRGlhZ25vc3RpY3MpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgZGlhZ25vc3RpY3MsIGZvcm1hdHRlZDogZm9ybWF0dGVkUGFydHMuam9pbihcIlwiKSB9O1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBwcmVwYXJlUHJvZ3JhbXMoXG5cdFx0cHJvamVjdEFycmF5TGlrZTogUHJvamVjdFtdIHwgUHJvamVjdCxcblx0XHRvcHRpb25zOiBQcmVwYXJlUHJvZ3JhbXNPcHRpb25zID0ge30sXG5cdCk6IFByb21pc2U8VHlwZUVtaXNzaW9uUHJvZ3JhbVtdPiB7XG5cdFx0Y29uc3QgYWxsUHJvamVjdHMgPSBBcnJheS5pc0FycmF5KHByb2plY3RBcnJheUxpa2UpXG5cdFx0XHQ/IHByb2plY3RBcnJheUxpa2Vcblx0XHRcdDogW3Byb2plY3RBcnJheUxpa2VdO1xuXHRcdGNvbnN0IHByb2plY3RzID0gb3B0aW9ucy5pbmNsdWRlQWxsUHJvamVjdHNcblx0XHRcdD8gYWxsUHJvamVjdHNcblx0XHRcdDogYWxsUHJvamVjdHMuZmlsdGVyKChwcm9qKSA9PlxuXHRcdFx0XHRcdHByb2ouZ2V0Rm9yZ2VDb25maWd1cmF0aW9uKCkudGFyZ2V0cy5pbmNsdWRlcyhCdWlsZFRhcmdldHMudHlwZXMpLFxuXHRcdFx0XHQpO1xuXHRcdGlmIChwcm9qZWN0cy5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cblx0XHQvLyBQcmUtZmV0Y2ggYWxsIGZpbGVzIGFuZCB0c2NvbmZpZ3MgaW4gcGFyYWxsZWwgYWNyb3NzIGFsbCBwcm9qZWN0c1xuXHRcdGNvbnN0IHByb2plY3REYXRhOiBUeXBlUHJvZ3JhbVByb2plY3RbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuXHRcdFx0cHJvamVjdHMubWFwKGFzeW5jIChwcm9qKSA9PiAoe1xuXHRcdFx0XHRwcm9qZWN0OiBwcm9qLFxuXHRcdFx0XHRmaWxlczogYXdhaXQgcHJvai5nZXRBbGxGaWxlcygpLFxuXHRcdFx0XHR0c2NvbmZpZzogYXdhaXQgcHJvai5nZXRUc0NvbmZpZygpLFxuXHRcdFx0fSkpLFxuXHRcdCk7XG5cblx0XHQvLyBHcm91cCBwcm9qZWN0cyBieSB0aGUgcmVzb2x2ZWQgY29tcGlsZXIgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUgY29tcGlsZXJcblx0XHQvLyBob3N0IChsaWIgbG9hZGluZywgbW9kdWxlIHJlc29sdXRpb24sIHBhdGggYWxpYXNlcykuIFByb2plY3RzIHNoYXJpbmcgdGhlXG5cdFx0Ly8gc2FtZSByZXNvbHZlZCB2YWx1ZXMgZ2V0IG9uZSBzaGFyZWQgaG9zdCBBTkQgb25lIHNoYXJlZCBwcm9ncmFtIOKAlCBhbGwgdGhlaXJcblx0XHQvLyBmaWxlcyBhcmUgY29tcGlsZWQgdG9nZXRoZXIsIG1hdGNoaW5nIHYxJ3Mgc2luZ2xlLXByb2dyYW0gYXBwcm9hY2ggd2hpY2hcblx0XHQvLyBhdm9pZHMgcmUtcGFyc2luZyBsaWIvbm9kZV9tb2R1bGVzIC5kLnRzIGZpbGVzIHBlciBwcm9qZWN0LlxuXHRcdGNvbnN0IGdyb3VwcyA9IE1hcC5ncm91cEJ5KHByb2plY3REYXRhLCAoeyB0c2NvbmZpZyB9KSA9PlxuXHRcdFx0dGhpcy4jaG9zdC5ob3N0S2V5KHRzY29uZmlnLmNvbXBpbGVyT3B0aW9ucyksXG5cdFx0KTtcblxuXHRcdGNvbnN0IHJlcXVpcmVkQ29tcGlsZXJPcHRpb25zID1cblx0XHRcdG9wdGlvbnMucmVxdWlyZWRDb21waWxlck9wdGlvbnMgPz8gUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlM7XG5cdFx0cmV0dXJuIFsuLi5ncm91cHMudmFsdWVzKCldLm1hcChcblx0XHRcdChncm91cCkgPT4gbmV3IFR5cGVFbWlzc2lvblByb2dyYW0oZ3JvdXAsIHRoaXMuI2hvc3QsIHJlcXVpcmVkQ29tcGlsZXJPcHRpb25zKSxcblx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIG9uSW5jcmVtZW50YWxGaWxlRXZlbnQoZXZ0OiBQcm9qZWN0RmlsZUV2ZW50KTogUHJvbWlzZTxUcmFuc2Zvcm1SZXNwb25zZVtdPiB7XG5cdFx0Y29uc3QgeyBmaWxlLCBwcm9qZWN0IH0gPSBldnQ7XG5cdFx0aWYgKGV2dC5ldmVudE5hbWUgPT09IGlvLldhdGNoRXZlbnRzLnVubGluaykge1xuXHRcdFx0dGhpcy5kZWxldGVDYWNoZWRPdXRwdXRzKGZpbGUuZnVsbFBhdGgpO1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblx0XHRpZiAoIXByb2plY3QuaXNTb3VyY2VGaWxlKGZpbGUpKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdGlmIChldnQuZXZlbnROYW1lID09PSBpby5XYXRjaEV2ZW50cy5hZGQpIHtcblx0XHRcdHRoaXMuI3Byb2dyYW1zPy5mb3JFYWNoKChwKSA9PiB7XG5cdFx0XHRcdHAuYWRkRmlsZShmaWxlLCBwcm9qZWN0KTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmludmFsaWRhdGVSZWFkRmlsZUNhY2hlKGZpbGUuZnVsbFBhdGgpO1xuXHRcdFx0dGhpcy4jaG9zdC5pbnZhbGlkYXRlU291cmNlRmlsZShmaWxlLmZ1bGxQYXRoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudHJhbnNmb3JtUHJvamVjdChwcm9qZWN0LCAoKSA9PiBQcm9taXNlLnJlc29sdmUoW2ZpbGVdKSk7XG5cdH1cblxuXHRAaW52YWxpZGF0ZUNhY2hlKFRzUHJvZ3JhbUhvc3QucHJvdG90eXBlLnJlYWRGaWxlRnJvbURpc2ssIHtcblx0XHRuYW1lOiBcIkZJTEVfQ09OVEVOVFwiLFxuXHRcdGtleUZuOiAoLi4uYXJncykgPT4gYXJnc1swXSBhcyBzdHJpbmcsXG5cdH0pXG5cdHByaXZhdGUgaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUoX3BhdGg6IHN0cmluZyk6IHZvaWQge31cbn1cbiJdLCJuYW1lcyI6WyJERUZBVUxUX1RZUEVfRU1JVFRFUl9PUFRJT05TIiwiUkVRVUlSRURfVFlQRV9DSEVDS19PUFRJT05TIiwiUkVRVUlSRURfVFlQRV9FTUlUVEVSX09QVElPTlMiLCJUeXBlRW1pdHRlciIsImxpYiIsInR5cGVzIiwic2tpcExpYkNoZWNrIiwiZW1pdERlY2xhcmF0aW9uT25seSIsImRlY2xhcmF0aW9uIiwibm9FbWl0IiwibWl4d2l0aCIsIkNhY2hlc091dHB1dHMiLCJJbmNyZW1lbnRhbFRyYW5zZm9ybSIsImJ1aWxkVGFyZ2V0cyIsIkJ1aWxkVGFyZ2V0cyIsIlRzUHJvZ3JhbUhvc3QiLCJpbml0IiwicHJvamVjdEFycmF5TGlrZSIsIl9maWx0ZXIiLCJwcmVwYXJlUHJvZ3JhbXMiLCJ0cmFuc2Zvcm1Qcm9qZWN0IiwiZmlsdGVyIiwib25PdXRwdXQiLCJwcm9ncmFtcyIsImxlbmd0aCIsInJlc3BvbnNlcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJwcm9ncmFtIiwiZW1pdCIsImZsYXQiLCJjYWNoZU91dHB1dHMiLCJjaGVja1Byb2plY3QiLCJpbmNsdWRlQWxsUHJvamVjdHMiLCJyZXF1aXJlZENvbXBpbGVyT3B0aW9ucyIsImRpYWdub3N0aWNzIiwiZm9ybWF0dGVkUGFydHMiLCJwcm9ncmFtRGlhZ25vc3RpY3MiLCJjaGVjayIsInB1c2giLCJmb3JtYXREaWFnbm9zdGljcyIsImZvcm1hdHRlZCIsImpvaW4iLCJvcHRpb25zIiwiYWxsUHJvamVjdHMiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9qZWN0cyIsInByb2oiLCJnZXRGb3JnZUNvbmZpZ3VyYXRpb24iLCJ0YXJnZXRzIiwiaW5jbHVkZXMiLCJwcm9qZWN0RGF0YSIsInByb2plY3QiLCJmaWxlcyIsImdldEFsbEZpbGVzIiwidHNjb25maWciLCJnZXRUc0NvbmZpZyIsImdyb3VwcyIsIk1hcCIsImdyb3VwQnkiLCJob3N0S2V5IiwiY29tcGlsZXJPcHRpb25zIiwidmFsdWVzIiwiZ3JvdXAiLCJUeXBlRW1pc3Npb25Qcm9ncmFtIiwib25JbmNyZW1lbnRhbEZpbGVFdmVudCIsImV2dCIsImZpbGUiLCJldmVudE5hbWUiLCJpbyIsIldhdGNoRXZlbnRzIiwidW5saW5rIiwiZGVsZXRlQ2FjaGVkT3V0cHV0cyIsImZ1bGxQYXRoIiwiaXNTb3VyY2VGaWxlIiwiYWRkIiwiZm9yRWFjaCIsInAiLCJhZGRGaWxlIiwiaW52YWxpZGF0ZVJlYWRGaWxlQ2FjaGUiLCJpbnZhbGlkYXRlU291cmNlRmlsZSIsInJlc29sdmUiLCJfcGF0aCIsInByb3RvdHlwZSIsInJlYWRGaWxlRnJvbURpc2siLCJuYW1lIiwia2V5Rm4iLCJhcmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQStCYUE7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7UUFOQUM7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7O3lCQXhEbUI7NkJBQ1Y7K0JBQ0U7b0JBRUw7UUFFWjtvQ0FDdUI7MkNBQ087K0JBQ1A7cUNBSXZCO2lDQUN3Qzs7Ozs7Ozs7OztBQWdCeEMsTUFBTUgsK0JBQTZEO0lBQ3pFSSxLQUFLO1FBQUM7S0FBa0I7SUFDeEJDLE9B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
|
|
@@ -14,4 +14,4 @@ class SwcConfig {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy9zd2MtY29uZmlnLnR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0LCBUc2NvbmZpZywgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbmV4cG9ydCB0eXBlIFN3Y0NvbmZpZ09wdGlvbnMgPSB7XG5cdGFsaWFzUGF0aHM/OiBib29sZWFuO1xuXHR0c0NvbmZpZz86IFRzY29uZmlnO1xuXHR1c2VyQ29uZmlnPzogU3djQ29uZmlnO1xuXHQvKiogV2hlbiBzZXQsIGNvbnZlbnRpb24gYWxpYXNlcyBjb21lIGZyb20gdGhlIGZ1bGwgd29ya3NwYWNlIHBhY2thZ2UgbGlzdC4gKi9cblx0d29ya3NwYWNlPzogV29ya3NwYWNlO1xuXHQvKiogRmFsbGJhY2sgcGFja2FnZSBsaXN0IHdoZW4gYHdvcmtzcGFjZWAgaXMgbm90IHNldCAoZS5nLiBhIHRyYW5zZm9ybSBiYXRjaCkuICovXG5cdHByb2plY3RzPzogcmVhZG9ubHkgUHJvamVjdFtdO1xufTtcblxuZXhwb3J0IGNsYXNzIFN3Y0NvbmZpZyB7XG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPFN3Y0NvbmZpZz4gPSB7fSkge1xuXHRcdE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJTd2NDb25maWciLCJkYXRhIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7OytCQVlhQTs7O2VBQUFBOzs7QUFBTixNQUFNQTtJQUNaLFlBQW1CQyxPQUEyQixDQUFDLENBQUMsQ0FBRTtRQUNqREMsT0FBT0MsTUFBTSxDQUFDLElBQUksRUFBRUY7SUFDckI7QUFDRCJ9
|
|
@@ -53,6 +53,7 @@ class TransformResponse {
|
|
|
53
53
|
outcome;
|
|
54
54
|
target;
|
|
55
55
|
code;
|
|
56
|
+
sourceContent;
|
|
56
57
|
fileName;
|
|
57
58
|
messages;
|
|
58
59
|
config;
|
|
@@ -61,4 +62,4 @@ class TransformResponse {
|
|
|
61
62
|
outputPath;
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4vYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtT3V0Y29tZSA9IFwic3VjY2Vzc1wiIHwgXCJmYWlsdXJlXCIgfCBcInNraXBwZWRcIjtcbmV4cG9ydCBjb25zdCBUcmFuc2Zvcm1PdXRjb21lcyA9IHtcblx0c3VjY2VzczogXCJzdWNjZXNzXCIsXG5cdGZhaWx1cmU6IFwiZmFpbHVyZVwiLFxuXHRza2lwcGVkOiBcInNraXBwZWRcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFRyYW5zZm9ybU91dGNvbWU+O1xuXG50eXBlIFRyYW5zZm9ybVJlc3BvbnNlQmFzZSA9IHtcblx0ZmlsZTogRmlsZTtcblx0Y29uZmlnOiB1bmtub3duO1xuXHRwcm9qZWN0PzogUHJvamVjdDtcblx0LyoqIEFic29sdXRlIGRpcmVjdG9yeSB0aGF0IHdpbGwgY29udGFpbiB0aGUgb3V0cHV0IGZpbGUuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dERpcj86IHN0cmluZztcblx0LyoqIEFic29sdXRlIHBhdGggb2YgdGhlIG91dHB1dCBmaWxlIChvdXRwdXREaXIgKyBmaWxlTmFtZSkuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dFBhdGg/
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy90eXBlcy90cmFuc2Zvcm0tcmVzcG9uc2UubW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9qZWN0IH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgdHlwZSB7IEZpbGUgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL2lvXCI7XG5pbXBvcnQgdHlwZSB7IEJ1aWxkVGFyZ2V0IH0gZnJvbSBcIi4vYnVpbGQtdGFyZ2V0LnR5cGUuanNcIjtcblxuZXhwb3J0IHR5cGUgVHJhbnNmb3JtT3V0Y29tZSA9IFwic3VjY2Vzc1wiIHwgXCJmYWlsdXJlXCIgfCBcInNraXBwZWRcIjtcbmV4cG9ydCBjb25zdCBUcmFuc2Zvcm1PdXRjb21lcyA9IHtcblx0c3VjY2VzczogXCJzdWNjZXNzXCIsXG5cdGZhaWx1cmU6IFwiZmFpbHVyZVwiLFxuXHRza2lwcGVkOiBcInNraXBwZWRcIixcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFRyYW5zZm9ybU91dGNvbWU+O1xuXG50eXBlIFRyYW5zZm9ybVJlc3BvbnNlQmFzZSA9IHtcblx0ZmlsZTogRmlsZTtcblx0Y29uZmlnOiB1bmtub3duO1xuXHRwcm9qZWN0PzogUHJvamVjdDtcblx0LyoqIEFic29sdXRlIGRpcmVjdG9yeSB0aGF0IHdpbGwgY29udGFpbiB0aGUgb3V0cHV0IGZpbGUuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dERpcj86IHN0cmluZztcblx0LyoqIEFic29sdXRlIHBhdGggb2YgdGhlIG91dHB1dCBmaWxlIChvdXRwdXREaXIgKyBmaWxlTmFtZSkuIFByZS1jb21wdXRlZCBieSB0aGUgdHJhbnNmb3JtZXIuICovXG5cdG91dHB1dFBhdGg/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVN1Y2Nlc3MgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic3VjY2Vzc1wiO1xuXHRjb2RlOiBzdHJpbmc7XG5cdHNvdXJjZUNvbnRlbnQ/OiBzdHJpbmc7XG5cdG1lc3NhZ2VzPzogc3RyaW5nW107XG5cdHRhcmdldDogQnVpbGRUYXJnZXQ7XG5cdGZpbGVOYW1lOiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybUZhaWx1cmUgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwiZmFpbHVyZVwiO1xuXHRtZXNzYWdlcz86IHN0cmluZ1tdO1xuXHR0YXJnZXQ/OiBCdWlsZFRhcmdldDtcblx0ZmlsZU5hbWU/OiBzdHJpbmc7XG59O1xuXG50eXBlIFRyYW5zZm9ybVNraXBwZWQgPSBUcmFuc2Zvcm1SZXNwb25zZUJhc2UgJiB7XG5cdG91dGNvbWU6IFwic2tpcHBlZFwiO1xuXHRtZXNzYWdlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufTtcblxudHlwZSBUcmFuc2Zvcm1SZXNwb25zZURhdGE8VCBleHRlbmRzIFRyYW5zZm9ybU91dGNvbWUgPSBUcmFuc2Zvcm1PdXRjb21lPiA9IFQgZXh0ZW5kcyBcInN1Y2Nlc3NcIlxuXHQ/IFRyYW5zZm9ybVN1Y2Nlc3Ncblx0OiBUIGV4dGVuZHMgXCJza2lwcGVkXCJcblx0XHQ/IFRyYW5zZm9ybVNraXBwZWRcblx0XHQ6IFRyYW5zZm9ybUZhaWx1cmU7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2Zvcm1SZXNwb25zZSB7XG5cdHB1YmxpYyBzdGF0aWMgU3VjY2VzcyhkYXRhOiBPbWl0PFRyYW5zZm9ybVJlc3BvbnNlRGF0YTxcInN1Y2Nlc3NcIj4sIFwib3V0Y29tZVwiPikge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhLCBvdXRjb21lOiBcInN1Y2Nlc3NcIiBhcyBjb25zdCB9KTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgRXJyb3IoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJmYWlsdXJlXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJmYWlsdXJlXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIFNraXBwZWQoZGF0YTogT21pdDxUcmFuc2Zvcm1SZXNwb25zZURhdGE8XCJza2lwcGVkXCI+LCBcIm91dGNvbWVcIj4pIHtcblx0XHRyZXR1cm4gbmV3IFRyYW5zZm9ybVJlc3BvbnNlKHsgLi4uZGF0YSwgb3V0Y29tZTogXCJza2lwcGVkXCIgYXMgY29uc3QgfSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGZyb20oZGF0YTogVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTogVHJhbnNmb3JtUmVzcG9uc2Uge1xuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtUmVzcG9uc2UoeyAuLi5kYXRhIH0gYXMgVHJhbnNmb3JtUmVzcG9uc2VEYXRhKTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxUcmFuc2Zvcm1SZXNwb25zZURhdGE+KSB7XG5cdFx0T2JqZWN0LmFzc2lnbih0aGlzLCBkYXRhKTtcblx0fVxuXG5cdC8vIFByb3BlcnRpZXMgYXJlIHBvcHVsYXRlZCB2aWEgT2JqZWN0LmFzc2lnbiBpbiB0aGUgY29uc3RydWN0b3IuXG5cdHB1YmxpYyByZWFkb25seSBmaWxlITogRmlsZTtcblx0cHVibGljIHJlYWRvbmx5IG91dGNvbWUhOiBUcmFuc2Zvcm1PdXRjb21lO1xuXHRwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0PzogQnVpbGRUYXJnZXQ7XG5cdHB1YmxpYyByZWFkb25seSBjb2RlITogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgc291cmNlQ29udGVudD86IHN0cmluZztcblx0cHVibGljIHJlYWRvbmx5IGZpbGVOYW1lPzogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZXM/OiBzdHJpbmdbXTtcblx0cHVibGljIHJlYWRvbmx5IGNvbmZpZzogdW5rbm93bjtcblx0cHVibGljIHJlYWRvbmx5IHByb2plY3Q/OiBQcm9qZWN0O1xuXHRwdWJsaWMgcmVhZG9ubHkgb3V0cHV0RGlyPzogc3RyaW5nO1xuXHRwdWJsaWMgcmVhZG9ubHkgb3V0cHV0UGF0aD86IHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJUcmFuc2Zvcm1PdXRjb21lcyIsIlRyYW5zZm9ybVJlc3BvbnNlIiwic3VjY2VzcyIsImZhaWx1cmUiLCJza2lwcGVkIiwiU3VjY2VzcyIsImRhdGEiLCJvdXRjb21lIiwiRXJyb3IiLCJTa2lwcGVkIiwiZnJvbSIsIk9iamVjdCIsImFzc2lnbiIsImZpbGUiLCJ0YXJnZXQiLCJjb2RlIiwic291cmNlQ29udGVudCIsImZpbGVOYW1lIiwibWVzc2FnZXMiLCJjb25maWciLCJwcm9qZWN0Iiwib3V0cHV0RGlyIiwib3V0cHV0UGF0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFLYUE7ZUFBQUE7O1FBMkNBQztlQUFBQTs7O0FBM0NOLE1BQU1ELG9CQUFvQjtJQUNoQ0UsU0FBUztJQUNUQyxTQUFTO0lBQ1RDLFNBQVM7QUFDVjtBQXVDTyxNQUFNSDtJQUNaLE9BQWNJLFFBQVFDLElBQXVELEVBQUU7UUFDOUUsT0FBTyxJQUFJTCxrQkFBa0I7WUFBRSxHQUFHSyxJQUFJO1lBQUVDLFNBQVM7UUFBbUI7SUFDckU7SUFFQSxPQUFjQyxNQUFNRixJQUF1RCxFQUFFO1FBQzVFLE9BQU8sSUFBSUwsa0JBQWtCO1lBQUUsR0FBR0ssSUFBSTtZQUFFQyxTQUFTO1FBQW1CO0lBQ3JFO0lBRUEsT0FBY0UsUUFBUUgsSUFBdUQsRUFBRTtRQUM5RSxPQUFPLElBQUlMLGtCQUFrQjtZQUFFLEdBQUdLLElBQUk7WUFBRUMsU0FBUztRQUFtQjtJQUNyRTtJQUVBLE9BQWNHLEtBQUtKLElBQTJCLEVBQXFCO1FBQ2xFLE9BQU8sSUFBSUwsa0JBQWtCO1lBQUUsR0FBR0ssSUFBSTtRQUFDO0lBQ3hDO0lBRUEsWUFBbUJBLElBQXFDLENBQUU7UUFDekRLLE9BQU9DLE1BQU0sQ0FBQyxJQUFJLEVBQUVOO0lBQ3JCO0lBRUEsaUVBQWlFO0lBQ2pETyxLQUFZO0lBQ1pOLFFBQTJCO0lBQzNCTyxPQUFxQjtJQUNyQkMsS0FBYztJQUNkQyxjQUF1QjtJQUN2QkMsU0FBa0I7SUFDbEJDLFNBQW9CO0lBQ3BCQyxPQUFnQjtJQUNoQkMsUUFBa0I7SUFDbEJDLFVBQW1CO0lBQ25CQyxXQUFvQjtBQUNyQyJ9
|