cdklabs-projen-project-types 0.2.8 → 0.2.9
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/.jsii +208 -170
- package/API.md +50 -2
- package/lib/cdk-cli-integ-tests.js +1 -1
- package/lib/cdk.js +2 -2
- package/lib/cdklabs.js +3 -3
- package/lib/jsii.js +1 -1
- package/lib/rosetta.js +1 -1
- package/lib/yarn/monorepo-options.d.ts +6 -0
- package/lib/yarn/monorepo-options.js +1 -1
- package/lib/yarn/monorepo-release-options.d.ts +6 -0
- package/lib/yarn/monorepo-release-options.js +1 -1
- package/lib/yarn/monorepo-release.d.ts +1 -0
- package/lib/yarn/monorepo-release.js +10 -3
- package/lib/yarn/monorepo.d.ts +3 -0
- package/lib/yarn/monorepo.js +12 -4
- package/lib/yarn/nx.js +2 -9
- package/lib/yarn/typescript-workspace-release.js +1 -1
- package/lib/yarn/typescript-workspace.js +1 -1
- package/package.json +1 -1
|
@@ -32,6 +32,7 @@ class MonorepoRelease extends projen_1.Component {
|
|
|
32
32
|
}
|
|
33
33
|
this.github = gh;
|
|
34
34
|
this.releaseTrigger = options.releaseTrigger ?? projen_1.release.ReleaseTrigger.continuous();
|
|
35
|
+
this.buildWithNx = options.buildWithNx ?? false;
|
|
35
36
|
}
|
|
36
37
|
workspaceRelease(project) {
|
|
37
38
|
const ret = this.workspaceReleases.get(project);
|
|
@@ -156,7 +157,13 @@ class MonorepoRelease extends projen_1.Component {
|
|
|
156
157
|
// time so that the dependency versions in all 'package.json's are correct.
|
|
157
158
|
this.releaseTask.exec('yarn workspaces run shx rm -rf dist');
|
|
158
159
|
this.releaseTask.exec('yarn workspaces run bump');
|
|
159
|
-
this.
|
|
160
|
+
if (this.buildWithNx) {
|
|
161
|
+
this.releaseTask.exec('nx run-many -t build');
|
|
162
|
+
this.releaseTask.env('NX_SKIP_NX_CACHE', 'true');
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
this.releaseTask.exec('yarn workspaces run build');
|
|
166
|
+
}
|
|
160
167
|
this.releaseTask.exec('yarn workspaces run unbump');
|
|
161
168
|
// anti-tamper check (fails if there were changes to committed files)
|
|
162
169
|
// this will identify any non-committed files generated during build (e.g. test snapshots)
|
|
@@ -264,7 +271,7 @@ class MonorepoRelease extends projen_1.Component {
|
|
|
264
271
|
}
|
|
265
272
|
exports.MonorepoRelease = MonorepoRelease;
|
|
266
273
|
_a = JSII_RTTI_SYMBOL_1;
|
|
267
|
-
MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.2.
|
|
274
|
+
MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.2.9" };
|
|
268
275
|
function slugify(x) {
|
|
269
276
|
return x.replace(/[^a-zA-Z0-9_-]/g, '-').replace(/^[0-9-]+/, '');
|
|
270
277
|
}
|
|
@@ -277,4 +284,4 @@ function publishProjectOutputId(project) {
|
|
|
277
284
|
function shouldPublishProjectStepId(project) {
|
|
278
285
|
return `check-${publishProjectOutputId(project)}`;
|
|
279
286
|
}
|
|
280
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL21vbm9yZXBvLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW9GO0FBQ3BGLDJEQUEwRjtBQUcxRixpRkFBMkY7QUFFM0YsZ0NBQWdDO0FBQ2hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNoQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQztBQUU3QyxNQUFhLGVBQWdCLFNBQVEsa0JBQVM7SUFDNUM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBWSxFQUF3QixFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQWUsQ0FBQztRQUN2RyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQWtCRCxZQUFZLE9BQWdCLEVBQW1CLFVBQWtDLEVBQUU7UUFDakYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDhCLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBYmxFLHNCQUFpQixHQUFHLElBQUksS0FBSyxFQU8xQyxDQUFDO1FBSVksc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQXlDLENBQUM7UUFLcEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUMvQyxNQUFNLEVBQUUsR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJ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QUksQ0FBQyxXQUFZO1lBQ3ZCLGNBQWM7WUFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaFRILDBDQWlUQzs7O0FBRUQsU0FBUyxPQUFPLENBQUMsQ0FBUztJQUN4QixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxPQUFnQjtJQUN6QyxPQUFPLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksK0JBQW1CLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLE9BQWdCO0lBQzlDLE9BQU8sV0FBVyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELFNBQVMsMEJBQTBCLENBQUMsT0FBZ0I7SUFDbEQsT0FBTyxTQUFTLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBnaXRodWIsIHJlbGVhc2UgYXMgcHJvamVuUmVsZWFzZSwgQ29tcG9uZW50LCBQcm9qZWN0LCBUYXNrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEJVSUxEX0FSVElGQUNUX05BTUUsIFBFUk1JU1NJT05fQkFDS1VQX0ZJTEUgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTW9ub3JlcG9SZWxlYXNlT3B0aW9ucyB9IGZyb20gJy4vbW9ub3JlcG8tcmVsZWFzZS1vcHRpb25zJztcbmltcG9ydCB7IFR5cGVTY3JpcHRXb3Jrc3BhY2UgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcbmltcG9ydCB7IFdvcmtzcGFjZVJlbGVhc2UsIFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zIH0gZnJvbSAnLi90eXBlc2NyaXB0LXdvcmtzcGFjZS1yZWxlYXNlJztcblxuLy8gY29waWVkIGZyb20gcHJvamVuL3JlbGVhc2UudHNcbmNvbnN0IFJFTEVBU0VfSk9CSUQgPSAncmVsZWFzZSc7XG5jb25zdCBHSVRfUkVNT1RFX1NURVBJRCA9ICdnaXRfcmVtb3RlJztcbmNvbnN0IExBVEVTVF9DT01NSVRfT1VUUFVUID0gJ2xhdGVzdF9jb21taXQnO1xuXG5leHBvcnQgY2xhc3MgTW9ub3JlcG9SZWxlYXNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBNb25vcmVwb1JlbGVhc2VXb3JrZmxvd2AgY29tcG9uZW50IG9mIGEgcHJvamVjdCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgcHJvamVjdFxuICAgKiBkb2VzIG5vdCBoYXZlIGEgTW9ub3JlcG9SZWxlYXNlV29ya2Zsb3cgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihwcm9qZWN0OiBQcm9qZWN0KTogTW9ub3JlcG9SZWxlYXNlIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBpc01vbm9yZXBvUmVsZWFzZVdvcmtmbG93ID0gKGM6IENvbXBvbmVudCk6IGMgaXMgTW9ub3JlcG9SZWxlYXNlID0+IGMgaW5zdGFuY2VvZiBNb25vcmVwb1JlbGVhc2U7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzTW9ub3JlcG9SZWxlYXNlV29ya2Zsb3cpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBicmFuY2hOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2l0aHViOiBnaXRodWIuR2l0SHViO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbGVhc2VUcmlnZ2VyOiBwcm9qZW5SZWxlYXNlLlJlbGVhc2VUcmlnZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhY2thZ2VzVG9SZWxlYXNlID0gbmV3IEFycmF5PHtcbiAgICByZWFkb25seSB3b3Jrc3BhY2VEaXJlY3Rvcnk6IHN0cmluZztcbiAgICByZWFkb25seSByZWxlYXNlOiB7XG4gICAgICByZWFkb25seSB3b3Jrc3BhY2U6IFR5cGVTY3JpcHRXb3Jrc3BhY2U7XG4gICAgICByZWFkb25seSBwdWJsaXNoZXI6IHByb2plblJlbGVhc2UuUHVibGlzaGVyO1xuICAgICAgcmVhZG9ubHkgb3B0aW9uczogUGFydGlhbDxwcm9qZW5SZWxlYXNlLkJyYW5jaE9wdGlvbnM+O1xuICAgIH07XG4gIH0+KCk7XG5cbiAgcHJpdmF0ZSB3b3JrZmxvdz86IGdpdGh1Yi5UYXNrV29ya2Zsb3c7XG4gIHByaXZhdGUgcmVsZWFzZVRhc2s/OiBUYXNrO1xuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtzcGFjZVJlbGVhc2VzID0gbmV3IE1hcDxUeXBlU2NyaXB0V29ya3NwYWNlLCBXb3Jrc3BhY2VSZWxlYXNlPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogTW9ub3JlcG9SZWxlYXNlT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLmJyYW5jaE5hbWUgPSBvcHRpb25zLmJyYW5jaE5hbWUgPz8gJ21haW4nO1xuICAgIGNvbnN0IGdoID0gZ2l0aHViLkdpdEh1Yi5vZihwcm9qZWN0KTtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2plY3QgaXMgbm90IGEgR2l0SHViIHByb2plY3Q6ICR7cHJvamVjdH1gKTtcbiAgICB9XG4gICAgdGhpcy5naXRodWIgPSBnaDtcbiAgICB0aGlzLnJlbGVhc2VUcmlnZ2VyID0gb3B0aW9ucy5yZWxlYXNlVHJpZ2dlciA/PyBwcm9qZW5SZWxlYXNlLlJlbGVhc2VUcmlnZ2VyLmNvbnRpbnVvdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyB3b3Jrc3BhY2VSZWxlYXNlKHByb2plY3Q6IFR5cGVTY3JpcHRXb3Jrc3BhY2UpIHtcbiAgICBjb25zdCByZXQgPSB0aGlzLndvcmtzcGFjZVJlbGVhc2VzLmdldChwcm9qZWN0KTtcbiAgICBpZiAoIXJldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyByZWxlYXNlIGZvciBwcm9qZWN0ICR7cHJvamVjdC5uYW1lfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIGFkZFdvcmtzcGFjZShwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlLCBvcHRpb25zOiBXb3Jrc3BhY2VSZWxlYXNlT3B0aW9ucykge1xuICAgIGNvbnN0IHdvcmtzcGFjZVJlbGVhc2UgPSBuZXcgV29ya3NwYWNlUmVsZWFzZShwcm9qZWN0LCB7XG4gICAgICBwdWJsaXNoVG9OcG06IHRoaXMub3B0aW9ucy5wdWJsaXNoVG9OcG0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgLy8gTWFrZSB0aGVzZSBwdWJsaWNseSBhY2Nlc3NpYmxlXG4gICAgdGhpcy53b3Jrc3BhY2VSZWxlYXNlcy5zZXQocHJvamVjdCwgd29ya3NwYWNlUmVsZWFzZSk7XG5cbiAgICBpZiAoIW9wdGlvbnMucHJpdmF0ZSAmJiB3b3Jrc3BhY2VSZWxlYXNlLnB1Ymxpc2hlcikge1xuICAgICAgdGhpcy5vYnRhaW5SZWxlYXNlVGFzaygpO1xuXG4gICAgICB0aGlzLnBhY2thZ2VzVG9SZWxlYXNlLnB1c2goe1xuICAgICAgICB3b3Jrc3BhY2VEaXJlY3Rvcnk6IHByb2plY3Qud29ya3NwYWNlRGlyZWN0b3J5LFxuICAgICAgICByZWxlYXNlOiB7XG4gICAgICAgICAgd29ya3NwYWNlOiB3b3Jrc3BhY2VSZWxlYXNlLndvcmtzcGFjZSxcbiAgICAgICAgICBwdWJsaXNoZXI6IHdvcmtzcGFjZVJlbGVhc2UucHVibGlzaGVyLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8vIGVuZm9yY2VkIG9wdGlvbnNcbiAgICAgICAgICAgIHdvcmtmbG93TmFtZTogdGhpcy5vcHRpb25zLnJlbGVhc2VXb3JrZmxvd05hbWUsXG4gICAgICAgICAgICB0YWdQcmVmaXg6IGAke3Byb2plY3QubmFtZX1AYCxcblxuICAgICAgICAgICAgLy8gb3B0aW9ucyB0aGF0IG1heSBiZSBvdmVycmlkZSBsb2NhbGx5XG4gICAgICAgICAgICBtYWpvclZlcnNpb246IG9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnMubWFqb3JWZXJzaW9uID8/IHRoaXMub3B0aW9ucy5tYWpvclZlcnNpb24sXG4gICAgICAgICAgICBtaW5NYWpvclZlcnNpb246IG9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnMubWluTWFqb3JWZXJzaW9uID8/IHRoaXMub3B0aW9ucy5taW5NYWpvclZlcnNpb24sXG4gICAgICAgICAgICBwcmVyZWxlYXNlOiBvcHRpb25zLnZlcnNpb25CcmFuY2hPcHRpb25zLnByZXJlbGVhc2UgPz8gdGhpcy5vcHRpb25zLnByZXJlbGVhc2UsXG4gICAgICAgICAgICBucG1EaXN0VGFnOiBvcHRpb25zLm5wbURpc3RUYWcgPz8gdGhpcy5vcHRpb25zLm5wbURpc3RUYWcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCkge1xuICAgIGlmICghdGhpcy5yZWxlYXNlVGFzaykge1xuICAgICAgLy8gV2UgZGlkbid0IGVuZCB1cCBhZGRpbmcgYW55IHBhY2thZ2VzXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVQdWJsaXNoaW5nTWVjaGFuaXNtKCk7XG4gICAgdGhpcy5yZW5kZXJQYWNrYWdlVXBsb2FkcygpO1xuICAgIHRoaXMucmVuZGVyUHVibGlzaEpvYnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUGFja2FnZVVwbG9hZHMoKSB7XG4gICAgY29uc3Qgbm9OZXdDb21taXRzID0gYFxcJHt7IHN0ZXBzLiR7R0lUX1JFTU9URV9TVEVQSUR9Lm91dHB1dHMuJHtMQVRFU1RfQ09NTUlUX09VVFBVVH0gPT0gZ2l0aHViLnNoYSB9fWA7XG5cbiAgICBmb3IgKGNvbnN0IHsgd29ya3NwYWNlRGlyZWN0b3J5LCByZWxlYXNlIH0gb2YgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZSkge1xuICAgICAgY29uc3Qgam9iID0gdGhpcy53b3JrZmxvdz8uZ2V0Sm9iKFJFTEVBU0VfSk9CSUQpIGFzIGdpdGh1Yi53b3JrZmxvd3MuSm9iIHwgdW5kZWZpbmVkO1xuICAgICAgam9iPy5zdGVwcy5wdXNoKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogYCR7cmVsZWFzZS53b3Jrc3BhY2UubmFtZX06IEJhY2t1cCBhcnRpZmFjdCBwZXJtaXNzaW9uc2AsXG4gICAgICAgICAgaWY6IG5vTmV3Q29tbWl0cyxcbiAgICAgICAgICBjb250aW51ZU9uRXJyb3I6IHRydWUsXG4gICAgICAgICAgcnVuOiBgY2QgJHtyZWxlYXNlLndvcmtzcGFjZS5hcnRpZmFjdHNEaXJlY3Rvcnl9ICYmIGdldGZhY2wgLVIgLiA+ICR7UEVSTUlTU0lPTl9CQUNLVVBfRklMRX1gLFxuICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtzcGFjZURpcmVjdG9yeSxcbiAgICAgICAgfSxcbiAgICAgICAgZ2l0aHViLldvcmtmbG93U3RlcHMudXBsb2FkQXJ0aWZhY3Qoe1xuICAgICAgICAgIG5hbWU6IGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9OiBVcGxvYWQgYXJ0aWZhY3RgLFxuICAgICAgICAgIGlmOiBub05ld0NvbW1pdHMsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgLy8gRXZlcnkgYXJ0aWZhY3QgbXVzdCBoYXZlIGEgdW5pcXVlIG5hbWVcbiAgICAgICAgICAgIG5hbWU6IGJ1aWxkQXJ0aWZhY3ROYW1lKHJlbGVhc2Uud29ya3NwYWNlKSxcbiAgICAgICAgICAgIHBhdGg6IHBhdGguam9pbih3b3Jrc3BhY2VEaXJlY3RvcnksIHJlbGVhc2Uud29ya3NwYWNlLmFydGlmYWN0c0RpcmVjdG9yeSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUHVibGlzaEpvYnMoKSB7XG4gICAgZm9yIChjb25zdCB7IHJlbGVhc2UgfSBvZiB0aGlzLnBhY2thZ2VzVG9SZWxlYXNlKSB7XG4gICAgICBjb25zdCBwYWNrYWdlUHVibGlzaEpvYnMgPSByZWxlYXNlLnB1Ymxpc2hlci5fcmVuZGVySm9ic0ZvckJyYW5jaCh0aGlzLmJyYW5jaE5hbWUsIHJlbGVhc2Uub3B0aW9ucyk7XG5cbiAgICAgIGZvciAoY29uc3Qgam9iIG9mIE9iamVjdC52YWx1ZXMocGFja2FnZVB1Ymxpc2hKb2JzKSkge1xuICAgICAgICAvLyBGaW5kIHRoZSAnZG93bmxvYWQtYXJ0aWZhY3QnIGpvYiBhbmQgcmVwbGFjZSB0aGUgYnVpbGQgYXJ0aWZhY3QgbmFtZSB3aXRoIHRoZSB1bmlxdWUgcGVyLXByb2plY3Qgb25lXG4gICAgICAgIGNvbnN0IGRvd25sb2FkU3RlcCA9IGpvYi5zdGVwcy5maW5kKChqKSA9PiBqLnVzZXM/LnN0YXJ0c1dpdGgoJ2FjdGlvbnMvZG93bmxvYWQtYXJ0aWZhY3RAJykpO1xuICAgICAgICBpZiAoIWRvd25sb2FkU3RlcCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgZG93bmxvYWRTdGVwIGFtb25nIHN0ZXBzOiAke0pTT04uc3RyaW5naWZ5KGpvYi5zdGVwcywgdW5kZWZpbmVkLCAyKX1gKTtcbiAgICAgICAgfVxuICAgICAgICAoZG93bmxvYWRTdGVwLndpdGggPz8ge30pLm5hbWUgPSBidWlsZEFydGlmYWN0TmFtZShyZWxlYXNlLndvcmtzcGFjZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE1ha2UgdGhlIGpvYiBuYW1lcyB1bmlxdWVcbiAgICAgIHRoaXMud29ya2Zsb3c/LmFkZEpvYnMoXG4gICAgICAgIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICBPYmplY3QuZW50cmllcyhwYWNrYWdlUHVibGlzaEpvYnMpLm1hcCgoW2tleSwgam9iXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gc2x1Z2lmeShgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfWApO1xuICAgICAgICAgICAgY29uc3QgbmVlZHMgPSAoam9iLm5lZWRzID8/IFtdKS5tYXAoZGVwID0+IHtcbiAgICAgICAgICAgICAgLy8gQWxsIHB1Ymxpc2ggam9icyBkZXBlbmQgb24gdGhlIG1haW4gcmVsZWFzZSBqb2JcbiAgICAgICAgICAgICAgaWYgKGRlcCA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlcDtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIC4uLiBhbmQgcG9zc2libHkgb24gaW5kaXZpZHVhbCBwdWJsaXNoIGpvYnMgdGhhdCBhcmUgcHJlZml4ZWRcbiAgICAgICAgICAgICAgcmV0dXJuIGAke3ByZWZpeH1fJHtkZXB9YDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBgJHtwcmVmaXh9XyR7a2V5fWAsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5qb2IsXG4gICAgICAgICAgICAgICAgbmVlZHMsXG4gICAgICAgICAgICAgICAgaWY6IGBcXCR7eyBuZWVkcy5yZWxlYXNlLm91dHB1dHMubGF0ZXN0X2NvbW1pdCA9PSBnaXRodWIuc2hhICYmIG5lZWRzLnJlbGVhc2Uub3V0cHV0cy4ke3B1Ymxpc2hQcm9qZWN0T3V0cHV0SWQoXG4gICAgICAgICAgICAgICAgICByZWxlYXNlLndvcmtzcGFjZSxcbiAgICAgICAgICAgICAgICApfSA9PSAndHJ1ZScgfX1gLFxuICAgICAgICAgICAgICAgIG5hbWU6IGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9OiAke2pvYi5uYW1lfWAsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdO1xuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9idGFpblJlbGVhc2VUYXNrKCk6IFRhc2sge1xuICAgIGlmICh0aGlzLnJlbGVhc2VUYXNrKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWxlYXNlVGFzaztcbiAgICB9XG5cbiAgICBjb25zdCBlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBSRUxFQVNFOiAndHJ1ZScsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMubWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGVudi5NQUpPUiA9IHRoaXMub3B0aW9ucy5tYWpvclZlcnNpb24udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm1pbk1ham9yVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignbWluTWFqb3JWZXJzaW9uIGFuZCBtYWpvclZlcnNpb24gY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIuJyk7XG4gICAgICB9XG5cbiAgICAgIGVudi5NSU5fTUFKT1IgPSB0aGlzLm9wdGlvbnMubWluTWFqb3JWZXJzaW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZWxlYXNlVGFzayA9IHRoaXMucHJvamVjdC5hZGRUYXNrKCdyZWxlYXNlJywge1xuICAgICAgZGVzY3JpcHRpb246ICdQcmVwYXJlIGEgcmVsZWFzZSBmcm9tIGFsbCBtb25vcmVwbyBwYWNrYWdlcycsXG4gICAgICBlbnYsXG4gICAgfSk7XG4gICAgLy8gVW5yb2xsIG91dCB0aGUgJ3JlbGVhc2UnIHRhc2ssIGFuZCBkbyBhbGwgdGhlIHBoYXNlcyBmb3IgZWFjaCBpbmRpdmlkdWFsIHBhY2thZ2UuIFdlIG5lZWQgdG8gJ2J1bXAnIGF0IHRoZSBzYW1lXG4gICAgLy8gdGltZSBzbyB0aGF0IHRoZSBkZXBlbmRlbmN5IHZlcnNpb25zIGluIGFsbCAncGFja2FnZS5qc29uJ3MgYXJlIGNvcnJlY3QuXG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKCd5YXJuIHdvcmtzcGFjZXMgcnVuIHNoeCBybSAtcmYgZGlzdCcpO1xuICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biBidW1wJyk7XG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKCd5YXJuIHdvcmtzcGFjZXMgcnVuIGJ1aWxkJyk7XG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKCd5YXJuIHdvcmtzcGFjZXMgcnVuIHVuYnVtcCcpO1xuICAgIC8vIGFudGktdGFtcGVyIGNoZWNrIChmYWlscyBpZiB0aGVyZSB3ZXJlIGNoYW5nZXMgdG8gY29tbWl0dGVkIGZpbGVzKVxuICAgIC8vIHRoaXMgd2lsbCBpZGVudGlmeSBhbnkgbm9uLWNvbW1pdHRlZCBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkIChlLmcuIHRlc3Qgc25hcHNob3RzKVxuICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYyhwcm9qZW5SZWxlYXNlLlJlbGVhc2UuQU5USV9UQU1QRVJfQ01EKTtcblxuICAgIHJldHVybiB0aGlzLnJlbGVhc2VUYXNrO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWJsaXNoaW5nTWVjaGFuaXNtKCkge1xuICAgIGlmICh0aGlzLnJlbGVhc2VUcmlnZ2VyLmlzTWFudWFsKSB7XG4gICAgICB0aGlzLmNyZWF0ZVB1Ymxpc2hUYXNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3JlYXRlUHVibGlzaFdvcmtmbG93KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWJsaXNoVGFzaygpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbnVhbCBwdWJsaXNoaW5nIGlzIG5vdCBzdXBwb3J0ZWQgcmlnaHQgbm93Jyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hXb3JrZmxvdygpIHtcbiAgICBjb25zdCB3b3JrZmxvd05hbWUgPVxuICAgICAgdGhpcy5vcHRpb25zLnJlbGVhc2VXb3JrZmxvd05hbWUgPz9cbiAgICAgIChbJ21hc3RlcicsICdtYWluJ10uaW5jbHVkZXModGhpcy5icmFuY2hOYW1lKSA/ICdyZWxlYXNlJyA6IGByZWxlYXNlLSR7dGhpcy5icmFuY2hOYW1lfWApO1xuXG4gICAgLy8gVGhlIGFycmF5cyBhcmUgYmVpbmcgY2xvbmVkIHRvIGF2b2lkIGFjY3VtdWxhdGluZyB2YWx1ZXMgZnJvbSBwcmV2aW91cyBicmFuY2hlc1xuICAgIGNvbnN0IHByZUJ1aWxkU3RlcHMgPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2NCcsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogKHRoaXMucHJvamVjdCBhcyBhbnkpLm5vZGVWZXJzaW9uID8/ICdsdHMvKicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICAgICBydW46ICd5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcyAtLWZyb3plbi1sb2NrZmlsZScsXG4gICAgICB9LFxuICAgICAgLi4uKHRoaXMub3B0aW9ucy5yZWxlYXNlV29ya2Zsb3dTZXR1cFN0ZXBzID8/IFtdKSxcbiAgICBdO1xuICAgIGNvbnN0IHBvc3RCdWlsZFN0ZXBzID0gWy4uLih0aGlzLm9wdGlvbnMucG9zdEJ1aWxkU3RlcHMgPz8gW10pXTtcblxuICAgIC8vIEFkZCBhbiBvdXRwdXQgdG8gdGhlIGpvYiB0byBpbmRpY2F0ZSBpZiBhIGNlcnRhaW4gcGFja2FnZSBuZWVkcyBwdWJsaXNoaW5nXG4gICAgY29uc3Qgc2hvdWxkUHVibGlzaE91dHB1dHMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICB0aGlzLnBhY2thZ2VzVG9SZWxlYXNlLm1hcCgoeyByZWxlYXNlIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBwdWJsaXNoUHJvamVjdE91dHB1dElkKHJlbGVhc2Uud29ya3NwYWNlKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzdGVwSWQ6IHNob3VsZFB1Ymxpc2hQcm9qZWN0U3RlcElkKHJlbGVhc2Uud29ya3NwYWNlKSxcbiAgICAgICAgICAgIG91dHB1dE5hbWU6ICdwdWJsaXNoJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBwcm9wb3NlZCByZWxlYXNlIHRhZyBhbHJlYWR5IGV4aXN0c1xuICAgIC8vIE9ubHkgaWYgaXQgZG9lc24ndCBleGlzdCB5ZXQgc2hvdWxkIHdlIHB1Ymxpc2hcbiAgICBmb3IgKGNvbnN0IHsgd29ya3NwYWNlRGlyZWN0b3J5LCByZWxlYXNlIH0gb2YgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZSkge1xuICAgICAgcG9zdEJ1aWxkU3RlcHMucHVzaCh7XG4gICAgICAgIGlkOiBzaG91bGRQdWJsaXNoUHJvamVjdFN0ZXBJZChyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtzcGFjZURpcmVjdG9yeSxcbiAgICAgICAgcnVuOiAnKGdpdCBscy1yZW1vdGUgLXEgLS1leGl0LWNvZGUgLS10YWdzIG9yaWdpbiAkKGNhdCBkaXN0L3JlbGVhc2V0YWcudHh0KSAmJiAoZWNobyBcInB1Ymxpc2g9ZmFsc2VcIiA+PiAkR0lUSFVCX09VVFBVVCkpIHx8IGVjaG8gXCJwdWJsaXNoPXRydWVcIiA+PiAkR0lUSFVCX09VVFBVVCcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiBuZXcgY29tbWl0cyB3ZXJlIHB1c2hlZCB0byB0aGUgcmVwbyB3aGlsZSB3ZSB3ZXJlIGJ1aWxkaW5nLlxuICAgIC8vIGlmIG5ldyBjb21taXRzIGhhdmUgYmVlbiBwdXNoZWQsIHdlIHdpbGwgY2FuY2VsIHRoaXMgcmVsZWFzZVxuICAgIGlmICh0aGlzLm9wdGlvbnMucmVsZWFzZVRyaWdnZXI/LmlzQ29udGludW91cyA/PyB0cnVlKSB7XG4gICAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ0NoZWNrIGZvciBuZXcgY29tbWl0cycsXG4gICAgICAgIGlkOiBHSVRfUkVNT1RFX1NURVBJRCxcbiAgICAgICAgcnVuOiBgZWNobyBcIiR7TEFURVNUX0NPTU1JVF9PVVRQVVR9PSQoZ2l0IGxzLXJlbW90ZSBvcmlnaW4gLWggXFwke3sgZ2l0aHViLnJlZiB9fSB8IGN1dCAtZjEpXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBub24tY29udGludW91cyBidWlsZHMgd2UnbGwganVzdCBwdXQgdGhlIHZhbHVlIHRoZXJlIHRoYXQgZG93bnN0cmVhbSBzdGVwcyBhcmUgZ29pbmcgdG8gY29tcGFyZSBhZ2FpbnN0XG4gICAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ091dHB1dCB0aGUgc2hhIHZhbHVlIHRoYXQgZG93bnN0cmVhbSBjaGVja3MgZXhwZWN0JyxcbiAgICAgICAgaWQ6IEdJVF9SRU1PVEVfU1RFUElELFxuICAgICAgICBydW46IGBlY2hvIFwiJHtMQVRFU1RfQ09NTUlUX09VVFBVVH09XFwke3sgZ2l0aHViLnNoYSB9fVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMud29ya2Zsb3cgPSBuZXcgZ2l0aHViLlRhc2tXb3JrZmxvdyh0aGlzLmdpdGh1Yiwge1xuICAgICAgbmFtZTogd29ya2Zsb3dOYW1lLFxuICAgICAgam9iSWQ6IFJFTEVBU0VfSk9CSUQsXG4gICAgICBvdXRwdXRzOiB7XG4gICAgICAgIGxhdGVzdF9jb21taXQ6IHtcbiAgICAgICAgICBzdGVwSWQ6IEdJVF9SRU1PVEVfU1RFUElELFxuICAgICAgICAgIG91dHB1dE5hbWU6IExBVEVTVF9DT01NSVRfT1VUUFVULFxuICAgICAgICB9LFxuICAgICAgICAuLi5zaG91bGRQdWJsaXNoT3V0cHV0cyxcbiAgICAgIH0sXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBzY2hlZHVsZTogdGhpcy5yZWxlYXNlVHJpZ2dlci5zY2hlZHVsZSA/IFt7IGNyb246IHRoaXMucmVsZWFzZVRyaWdnZXIuc2NoZWR1bGUgfV0gOiB1bmRlZmluZWQsXG4gICAgICAgIHB1c2g6IHRoaXMucmVsZWFzZVRyaWdnZXIuaXNDb250aW51b3VzID8geyBicmFuY2hlczogW3RoaXMuYnJhbmNoTmFtZV0gfSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBjb250YWluZXI6IHRoaXMub3B0aW9ucy53b3JrZmxvd0NvbnRhaW5lckltYWdlID8geyBpbWFnZTogdGhpcy5vcHRpb25zLndvcmtmbG93Q29udGFpbmVySW1hZ2UgfSA6IHVuZGVmaW5lZCxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGNvbnRlbnRzOiAnd3JpdGUnIGFzIGFueSxcbiAgICAgIH0sXG4gICAgICBjaGVja291dFdpdGg6IHtcbiAgICAgICAgLy8gd2UgbXVzdCB1c2UgJ2ZldGNoLWRlcHRoPTAnIGluIG9yZGVyIHRvIGZldGNoIGFsbCB0YWdzXG4gICAgICAgIC8vIG90aGVyd2lzZSB0YWdzIGFyZSBub3QgY2hlY2tlZCBvdXRcbiAgICAgICAgZmV0Y2hEZXB0aDogMCxcbiAgICAgIH0sXG4gICAgICBwcmVCdWlsZFN0ZXBzLFxuICAgICAgdGFzazogdGhpcy5yZWxlYXNlVGFzayEsXG4gICAgICBwb3N0QnVpbGRTdGVwcyxcbiAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNsdWdpZnkoeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHgucmVwbGFjZSgvW15hLXpBLVowLTlfLV0vZywgJy0nKS5yZXBsYWNlKC9eWzAtOS1dKy8sICcnKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBcnRpZmFjdE5hbWUocHJvamVjdDogUHJvamVjdCkge1xuICByZXR1cm4gc2x1Z2lmeShgJHtwcm9qZWN0Lm5hbWV9XyR7QlVJTERfQVJUSUZBQ1RfTkFNRX1gKTtcbn1cblxuZnVuY3Rpb24gcHVibGlzaFByb2plY3RPdXRwdXRJZChwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBgcHVibGlzaC0ke3NsdWdpZnkocHJvamVjdC5uYW1lKX1gO1xufVxuXG5mdW5jdGlvbiBzaG91bGRQdWJsaXNoUHJvamVjdFN0ZXBJZChwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBgY2hlY2stJHtwdWJsaXNoUHJvamVjdE91dHB1dElkKHByb2plY3QpfWA7XG59XG4iXX0=
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL21vbm9yZXBvLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW9GO0FBQ3BGLDJEQUEwRjtBQUcxRixpRkFBMkY7QUFFM0YsZ0NBQWdDO0FBQ2hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNoQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQztBQUU3QyxNQUFhLGVBQWdCLFNBQVEsa0JBQVM7SUFDNUM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBWSxFQUF3QixFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQWUsQ0FBQztRQUN2RyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQW1CRCxZQUFZLE9BQWdCLEVBQW1CLFVBQWtDLEVBQUU7UUFDakYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDhCLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBYmxFLHNCQUFpQixHQUFHLElBQUksS0FBSyxFQU8xQyxDQUFDO1FBSVksc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQXlDLENBQUM7UUFLcEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUMvQyxNQUFNLEVBQUUsR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJ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LEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzNHLEdBQUcsRUFBRTtnQkFDSCxFQUFFLEVBQUUsTUFBTTthQUNYO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxPQUFjO2FBQ3pCO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLHlEQUF5RDtnQkFDekQscUNBQXFDO2dCQUNyQyxVQUFVLEVBQUUsQ0FBQzthQUNkO1lBQ0QsYUFBYTtZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsV0FBWTtZQUN2QixjQUFjO1lBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYztTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXZUSCwwQ0F3VEM7OztBQUVELFNBQVMsT0FBTyxDQUFDLENBQVM7SUFDeEIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBZ0I7SUFDekMsT0FBTyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLCtCQUFtQixFQUFFLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxPQUFnQjtJQUM5QyxPQUFPLFdBQVcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLE9BQWdCO0lBQ2xELE9BQU8sU0FBUyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZ2l0aHViLCByZWxlYXNlIGFzIHByb2plblJlbGVhc2UsIENvbXBvbmVudCwgUHJvamVjdCwgVGFzayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBCVUlMRF9BUlRJRkFDVF9OQU1FLCBQRVJNSVNTSU9OX0JBQ0tVUF9GSUxFIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvY29uc3RhbnRzJztcbmltcG9ydCB7IE1vbm9yZXBvUmVsZWFzZU9wdGlvbnMgfSBmcm9tICcuL21vbm9yZXBvLXJlbGVhc2Utb3B0aW9ucyc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0V29ya3NwYWNlIH0gZnJvbSAnLi90eXBlc2NyaXB0LXdvcmtzcGFjZSc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VSZWxlYXNlLCBXb3Jrc3BhY2VSZWxlYXNlT3B0aW9ucyB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZSc7XG5cbi8vIGNvcGllZCBmcm9tIHByb2plbi9yZWxlYXNlLnRzXG5jb25zdCBSRUxFQVNFX0pPQklEID0gJ3JlbGVhc2UnO1xuY29uc3QgR0lUX1JFTU9URV9TVEVQSUQgPSAnZ2l0X3JlbW90ZSc7XG5jb25zdCBMQVRFU1RfQ09NTUlUX09VVFBVVCA9ICdsYXRlc3RfY29tbWl0JztcblxuZXhwb3J0IGNsYXNzIE1vbm9yZXBvUmVsZWFzZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgTW9ub3JlcG9SZWxlYXNlV29ya2Zsb3dgIGNvbXBvbmVudCBvZiBhIHByb2plY3Qgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIHByb2plY3RcbiAgICogZG9lcyBub3QgaGF2ZSBhIE1vbm9yZXBvUmVsZWFzZVdvcmtmbG93IGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IE1vbm9yZXBvUmVsZWFzZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNNb25vcmVwb1JlbGVhc2VXb3JrZmxvdyA9IChjOiBDb21wb25lbnQpOiBjIGlzIE1vbm9yZXBvUmVsZWFzZSA9PiBjIGluc3RhbmNlb2YgTW9ub3JlcG9SZWxlYXNlO1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc01vbm9yZXBvUmVsZWFzZVdvcmtmbG93KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYnJhbmNoTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGdpdGh1YjogZ2l0aHViLkdpdEh1YjtcbiAgcHJpdmF0ZSByZWFkb25seSByZWxlYXNlVHJpZ2dlcjogcHJvamVuUmVsZWFzZS5SZWxlYXNlVHJpZ2dlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBidWlsZFdpdGhOeDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWNrYWdlc1RvUmVsZWFzZSA9IG5ldyBBcnJheTx7XG4gICAgcmVhZG9ubHkgd29ya3NwYWNlRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcmVsZWFzZToge1xuICAgICAgcmVhZG9ubHkgd29ya3NwYWNlOiBUeXBlU2NyaXB0V29ya3NwYWNlO1xuICAgICAgcmVhZG9ubHkgcHVibGlzaGVyOiBwcm9qZW5SZWxlYXNlLlB1Ymxpc2hlcjtcbiAgICAgIHJlYWRvbmx5IG9wdGlvbnM6IFBhcnRpYWw8cHJvamVuUmVsZWFzZS5CcmFuY2hPcHRpb25zPjtcbiAgICB9O1xuICB9PigpO1xuXG4gIHByaXZhdGUgd29ya2Zsb3c/OiBnaXRodWIuVGFza1dvcmtmbG93O1xuICBwcml2YXRlIHJlbGVhc2VUYXNrPzogVGFzaztcbiAgcHJpdmF0ZSByZWFkb25seSB3b3Jrc3BhY2VSZWxlYXNlcyA9IG5ldyBNYXA8VHlwZVNjcmlwdFdvcmtzcGFjZSwgV29ya3NwYWNlUmVsZWFzZT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IE1vbm9yZXBvUmVsZWFzZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5icmFuY2hOYW1lID0gb3B0aW9ucy5icmFuY2hOYW1lID8/ICdtYWluJztcbiAgICBjb25zdCBnaCA9IGdpdGh1Yi5HaXRIdWIub2YocHJvamVjdCk7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9qZWN0IGlzIG5vdCBhIEdpdEh1YiBwcm9qZWN0OiAke3Byb2plY3R9YCk7XG4gICAgfVxuICAgIHRoaXMuZ2l0aHViID0gZ2g7XG4gICAgdGhpcy5yZWxlYXNlVHJpZ2dlciA9IG9wdGlvbnMucmVsZWFzZVRyaWdnZXIgPz8gcHJvamVuUmVsZWFzZS5SZWxlYXNlVHJpZ2dlci5jb250aW51b3VzKCk7XG4gICAgdGhpcy5idWlsZFdpdGhOeCA9IG9wdGlvbnMuYnVpbGRXaXRoTnggPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgd29ya3NwYWNlUmVsZWFzZShwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlKSB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy53b3Jrc3BhY2VSZWxlYXNlcy5nZXQocHJvamVjdCk7XG4gICAgaWYgKCFyZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gcmVsZWFzZSBmb3IgcHJvamVjdCAke3Byb2plY3QubmFtZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRXb3Jrc3BhY2UocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSwgb3B0aW9uczogV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBjb25zdCB3b3Jrc3BhY2VSZWxlYXNlID0gbmV3IFdvcmtzcGFjZVJlbGVhc2UocHJvamVjdCwge1xuICAgICAgcHVibGlzaFRvTnBtOiB0aGlzLm9wdGlvbnMucHVibGlzaFRvTnBtLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIC8vIE1ha2UgdGhlc2UgcHVibGljbHkgYWNjZXNzaWJsZVxuICAgIHRoaXMud29ya3NwYWNlUmVsZWFzZXMuc2V0KHByb2plY3QsIHdvcmtzcGFjZVJlbGVhc2UpO1xuXG4gICAgaWYgKCFvcHRpb25zLnByaXZhdGUgJiYgd29ya3NwYWNlUmVsZWFzZS5wdWJsaXNoZXIpIHtcbiAgICAgIHRoaXMub2J0YWluUmVsZWFzZVRhc2soKTtcblxuICAgICAgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZS5wdXNoKHtcbiAgICAgICAgd29ya3NwYWNlRGlyZWN0b3J5OiBwcm9qZWN0LndvcmtzcGFjZURpcmVjdG9yeSxcbiAgICAgICAgcmVsZWFzZToge1xuICAgICAgICAgIHdvcmtzcGFjZTogd29ya3NwYWNlUmVsZWFzZS53b3Jrc3BhY2UsXG4gICAgICAgICAgcHVibGlzaGVyOiB3b3Jrc3BhY2VSZWxlYXNlLnB1Ymxpc2hlcixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAvLyBlbmZvcmNlZCBvcHRpb25zXG4gICAgICAgICAgICB3b3JrZmxvd05hbWU6IHRoaXMub3B0aW9ucy5yZWxlYXNlV29ya2Zsb3dOYW1lLFxuICAgICAgICAgICAgdGFnUHJlZml4OiBgJHtwcm9qZWN0Lm5hbWV9QGAsXG5cbiAgICAgICAgICAgIC8vIG9wdGlvbnMgdGhhdCBtYXkgYmUgb3ZlcnJpZGUgbG9jYWxseVxuICAgICAgICAgICAgbWFqb3JWZXJzaW9uOiBvcHRpb25zLnZlcnNpb25CcmFuY2hPcHRpb25zLm1ham9yVmVyc2lvbiA/PyB0aGlzLm9wdGlvbnMubWFqb3JWZXJzaW9uLFxuICAgICAgICAgICAgbWluTWFqb3JWZXJzaW9uOiBvcHRpb25zLnZlcnNpb25CcmFuY2hPcHRpb25zLm1pbk1ham9yVmVyc2lvbiA/PyB0aGlzLm9wdGlvbnMubWluTWFqb3JWZXJzaW9uLFxuICAgICAgICAgICAgcHJlcmVsZWFzZTogb3B0aW9ucy52ZXJzaW9uQnJhbmNoT3B0aW9ucy5wcmVyZWxlYXNlID8/IHRoaXMub3B0aW9ucy5wcmVyZWxlYXNlLFxuICAgICAgICAgICAgbnBtRGlzdFRhZzogb3B0aW9ucy5ucG1EaXN0VGFnID8/IHRoaXMub3B0aW9ucy5ucG1EaXN0VGFnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMucmVsZWFzZVRhc2spIHtcbiAgICAgIC8vIFdlIGRpZG4ndCBlbmQgdXAgYWRkaW5nIGFueSBwYWNrYWdlc1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlUHVibGlzaGluZ01lY2hhbmlzbSgpO1xuICAgIHRoaXMucmVuZGVyUGFja2FnZVVwbG9hZHMoKTtcbiAgICB0aGlzLnJlbmRlclB1Ymxpc2hKb2JzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhY2thZ2VVcGxvYWRzKCkge1xuICAgIGNvbnN0IG5vTmV3Q29tbWl0cyA9IGBcXCR7eyBzdGVwcy4ke0dJVF9SRU1PVEVfU1RFUElEfS5vdXRwdXRzLiR7TEFURVNUX0NPTU1JVF9PVVRQVVR9ID09IGdpdGh1Yi5zaGEgfX1gO1xuXG4gICAgZm9yIChjb25zdCB7IHdvcmtzcGFjZURpcmVjdG9yeSwgcmVsZWFzZSB9IG9mIHRoaXMucGFja2FnZXNUb1JlbGVhc2UpIHtcbiAgICAgIGNvbnN0IGpvYiA9IHRoaXMud29ya2Zsb3c/LmdldEpvYihSRUxFQVNFX0pPQklEKSBhcyBnaXRodWIud29ya2Zsb3dzLkpvYiB8IHVuZGVmaW5lZDtcbiAgICAgIGpvYj8uc3RlcHMucHVzaChcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9OiBCYWNrdXAgYXJ0aWZhY3QgcGVybWlzc2lvbnNgLFxuICAgICAgICAgIGlmOiBub05ld0NvbW1pdHMsXG4gICAgICAgICAgY29udGludWVPbkVycm9yOiB0cnVlLFxuICAgICAgICAgIHJ1bjogYGNkICR7cmVsZWFzZS53b3Jrc3BhY2UuYXJ0aWZhY3RzRGlyZWN0b3J5fSAmJiBnZXRmYWNsIC1SIC4gPiAke1BFUk1JU1NJT05fQkFDS1VQX0ZJTEV9YCxcbiAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIH0sXG4gICAgICAgIGdpdGh1Yi5Xb3JrZmxvd1N0ZXBzLnVwbG9hZEFydGlmYWN0KHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfTogVXBsb2FkIGFydGlmYWN0YCxcbiAgICAgICAgICBpZjogbm9OZXdDb21taXRzLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIC8vIEV2ZXJ5IGFydGlmYWN0IG11c3QgaGF2ZSBhIHVuaXF1ZSBuYW1lXG4gICAgICAgICAgICBuYW1lOiBidWlsZEFydGlmYWN0TmFtZShyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgICAgICBwYXRoOiBwYXRoLmpvaW4od29ya3NwYWNlRGlyZWN0b3J5LCByZWxlYXNlLndvcmtzcGFjZS5hcnRpZmFjdHNEaXJlY3RvcnkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclB1Ymxpc2hKb2JzKCkge1xuICAgIGZvciAoY29uc3QgeyByZWxlYXNlIH0gb2YgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZSkge1xuICAgICAgY29uc3QgcGFja2FnZVB1Ymxpc2hKb2JzID0gcmVsZWFzZS5wdWJsaXNoZXIuX3JlbmRlckpvYnNGb3JCcmFuY2godGhpcy5icmFuY2hOYW1lLCByZWxlYXNlLm9wdGlvbnMpO1xuXG4gICAgICBmb3IgKGNvbnN0IGpvYiBvZiBPYmplY3QudmFsdWVzKHBhY2thZ2VQdWJsaXNoSm9icykpIHtcbiAgICAgICAgLy8gRmluZCB0aGUgJ2Rvd25sb2FkLWFydGlmYWN0JyBqb2IgYW5kIHJlcGxhY2UgdGhlIGJ1aWxkIGFydGlmYWN0IG5hbWUgd2l0aCB0aGUgdW5pcXVlIHBlci1wcm9qZWN0IG9uZVxuICAgICAgICBjb25zdCBkb3dubG9hZFN0ZXAgPSBqb2Iuc3RlcHMuZmluZCgoaikgPT4gai51c2VzPy5zdGFydHNXaXRoKCdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QCcpKTtcbiAgICAgICAgaWYgKCFkb3dubG9hZFN0ZXApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRvd25sb2FkU3RlcCBhbW9uZyBzdGVwczogJHtKU09OLnN0cmluZ2lmeShqb2Iuc3RlcHMsIHVuZGVmaW5lZCwgMil9YCk7XG4gICAgICAgIH1cbiAgICAgICAgKGRvd25sb2FkU3RlcC53aXRoID8/IHt9KS5uYW1lID0gYnVpbGRBcnRpZmFjdE5hbWUocmVsZWFzZS53b3Jrc3BhY2UpO1xuICAgICAgfVxuXG4gICAgICAvLyBNYWtlIHRoZSBqb2IgbmFtZXMgdW5pcXVlXG4gICAgICB0aGlzLndvcmtmbG93Py5hZGRKb2JzKFxuICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMocGFja2FnZVB1Ymxpc2hKb2JzKS5tYXAoKFtrZXksIGpvYl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IHNsdWdpZnkoYCR7cmVsZWFzZS53b3Jrc3BhY2UubmFtZX1gKTtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzID0gKGpvYi5uZWVkcyA/PyBbXSkubWFwKGRlcCA9PiB7XG4gICAgICAgICAgICAgIC8vIEFsbCBwdWJsaXNoIGpvYnMgZGVwZW5kIG9uIHRoZSBtYWluIHJlbGVhc2Ugam9iXG4gICAgICAgICAgICAgIGlmIChkZXAgPT09ICdyZWxlYXNlJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXA7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyAuLi4gYW5kIHBvc3NpYmx5IG9uIGluZGl2aWR1YWwgcHVibGlzaCBqb2JzIHRoYXQgYXJlIHByZWZpeGVkXG4gICAgICAgICAgICAgIHJldHVybiBgJHtwcmVmaXh9XyR7ZGVwfWA7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgYCR7cHJlZml4fV8ke2tleX1gLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uam9iLFxuICAgICAgICAgICAgICAgIG5lZWRzLFxuICAgICAgICAgICAgICAgIGlmOiBgXFwke3sgbmVlZHMucmVsZWFzZS5vdXRwdXRzLmxhdGVzdF9jb21taXQgPT0gZ2l0aHViLnNoYSAmJiBuZWVkcy5yZWxlYXNlLm91dHB1dHMuJHtwdWJsaXNoUHJvamVjdE91dHB1dElkKFxuICAgICAgICAgICAgICAgICAgcmVsZWFzZS53b3Jrc3BhY2UsXG4gICAgICAgICAgICAgICAgKX0gPT0gJ3RydWUnIH19YCxcbiAgICAgICAgICAgICAgICBuYW1lOiBgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfTogJHtqb2IubmFtZX1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvYnRhaW5SZWxlYXNlVGFzaygpOiBUYXNrIHtcbiAgICBpZiAodGhpcy5yZWxlYXNlVGFzaykge1xuICAgICAgcmV0dXJuIHRoaXMucmVsZWFzZVRhc2s7XG4gICAgfVxuXG4gICAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgUkVMRUFTRTogJ3RydWUnLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBlbnYuTUFKT1IgPSB0aGlzLm9wdGlvbnMubWFqb3JWZXJzaW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5taW5NYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5tYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbk1ham9yVmVyc2lvbiBhbmQgbWFqb3JWZXJzaW9uIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyLicpO1xuICAgICAgfVxuXG4gICAgICBlbnYuTUlOX01BSk9SID0gdGhpcy5vcHRpb25zLm1pbk1ham9yVmVyc2lvbi50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHRoaXMucmVsZWFzZVRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzaygncmVsZWFzZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUHJlcGFyZSBhIHJlbGVhc2UgZnJvbSBhbGwgbW9ub3JlcG8gcGFja2FnZXMnLFxuICAgICAgZW52LFxuICAgIH0pO1xuICAgIC8vIFVucm9sbCBvdXQgdGhlICdyZWxlYXNlJyB0YXNrLCBhbmQgZG8gYWxsIHRoZSBwaGFzZXMgZm9yIGVhY2ggaW5kaXZpZHVhbCBwYWNrYWdlLiBXZSBuZWVkIHRvICdidW1wJyBhdCB0aGUgc2FtZVxuICAgIC8vIHRpbWUgc28gdGhhdCB0aGUgZGVwZW5kZW5jeSB2ZXJzaW9ucyBpbiBhbGwgJ3BhY2thZ2UuanNvbidzIGFyZSBjb3JyZWN0LlxuICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biBzaHggcm0gLXJmIGRpc3QnKTtcbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVtcCcpO1xuICAgIGlmICh0aGlzLmJ1aWxkV2l0aE54KSB7XG4gICAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ254IHJ1bi1tYW55IC10IGJ1aWxkJyk7XG4gICAgICB0aGlzLnJlbGVhc2VUYXNrLmVudignTlhfU0tJUF9OWF9DQUNIRScsICd0cnVlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biBidWlsZCcpO1xuICAgIH1cbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gdW5idW1wJyk7XG4gICAgLy8gYW50aS10YW1wZXIgY2hlY2sgKGZhaWxzIGlmIHRoZXJlIHdlcmUgY2hhbmdlcyB0byBjb21taXR0ZWQgZmlsZXMpXG4gICAgLy8gdGhpcyB3aWxsIGlkZW50aWZ5IGFueSBub24tY29tbWl0dGVkIGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgYnVpbGQgKGUuZy4gdGVzdCBzbmFwc2hvdHMpXG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKHByb2plblJlbGVhc2UuUmVsZWFzZS5BTlRJX1RBTVBFUl9DTUQpO1xuXG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZVRhc2s7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hpbmdNZWNoYW5pc20oKSB7XG4gICAgaWYgKHRoaXMucmVsZWFzZVRyaWdnZXIuaXNNYW51YWwpIHtcbiAgICAgIHRoaXMuY3JlYXRlUHVibGlzaFRhc2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVQdWJsaXNoV29ya2Zsb3coKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hUYXNrKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWFudWFsIHB1Ymxpc2hpbmcgaXMgbm90IHN1cHBvcnRlZCByaWdodCBub3cnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHVibGlzaFdvcmtmbG93KCkge1xuICAgIGNvbnN0IHdvcmtmbG93TmFtZSA9XG4gICAgICB0aGlzLm9wdGlvbnMucmVsZWFzZVdvcmtmbG93TmFtZSA/P1xuICAgICAgKFsnbWFzdGVyJywgJ21haW4nXS5pbmNsdWRlcyh0aGlzLmJyYW5jaE5hbWUpID8gJ3JlbGVhc2UnIDogYHJlbGVhc2UtJHt0aGlzLmJyYW5jaE5hbWV9YCk7XG5cbiAgICAvLyBUaGUgYXJyYXlzIGFyZSBiZWluZyBjbG9uZWQgdG8gYXZvaWQgYWNjdW11bGF0aW5nIHZhbHVlcyBmcm9tIHByZXZpb3VzIGJyYW5jaGVzXG4gICAgY29uc3QgcHJlQnVpbGRTdGVwcyA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY0JyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgICdub2RlLXZlcnNpb24nOiAodGhpcy5wcm9qZWN0IGFzIGFueSkubm9kZVZlcnNpb24gPz8gJ2x0cy8qJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgIHJ1bjogJ3lhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzIC0tZnJvemVuLWxvY2tmaWxlJyxcbiAgICAgIH0sXG4gICAgICAuLi4odGhpcy5vcHRpb25zLnJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHMgPz8gW10pLFxuICAgIF07XG4gICAgY29uc3QgcG9zdEJ1aWxkU3RlcHMgPSBbLi4uKHRoaXMub3B0aW9ucy5wb3N0QnVpbGRTdGVwcyA/PyBbXSldO1xuXG4gICAgLy8gQWRkIGFuIG91dHB1dCB0byB0aGUgam9iIHRvIGluZGljYXRlIGlmIGEgY2VydGFpbiBwYWNrYWdlIG5lZWRzIHB1Ymxpc2hpbmdcbiAgICBjb25zdCBzaG91bGRQdWJsaXNoT3V0cHV0cyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIHRoaXMucGFja2FnZXNUb1JlbGVhc2UubWFwKCh7IHJlbGVhc2UgfSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHB1Ymxpc2hQcm9qZWN0T3V0cHV0SWQocmVsZWFzZS53b3Jrc3BhY2UpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0ZXBJZDogc2hvdWxkUHVibGlzaFByb2plY3RTdGVwSWQocmVsZWFzZS53b3Jrc3BhY2UpLFxuICAgICAgICAgICAgb3V0cHV0TmFtZTogJ3B1Ymxpc2gnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHByb3Bvc2VkIHJlbGVhc2UgdGFnIGFscmVhZHkgZXhpc3RzXG4gICAgLy8gT25seSBpZiBpdCBkb2Vzbid0IGV4aXN0IHlldCBzaG91bGQgd2UgcHVibGlzaFxuICAgIGZvciAoY29uc3QgeyB3b3Jrc3BhY2VEaXJlY3RvcnksIHJlbGVhc2UgfSBvZiB0aGlzLnBhY2thZ2VzVG9SZWxlYXNlKSB7XG4gICAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgICAgaWQ6IHNob3VsZFB1Ymxpc2hQcm9qZWN0U3RlcElkKHJlbGVhc2Uud29ya3NwYWNlKSxcbiAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogd29ya3NwYWNlRGlyZWN0b3J5LFxuICAgICAgICBydW46ICcoZ2l0IGxzLXJlbW90ZSAtcSAtLWV4aXQtY29kZSAtLXRhZ3Mgb3JpZ2luICQoY2F0IGRpc3QvcmVsZWFzZXRhZy50eHQpICYmIChlY2hvIFwicHVibGlzaD1mYWxzZVwiID4+ICRHSVRIVUJfT1VUUFVUKSkgfHwgZWNobyBcInB1Ymxpc2g9dHJ1ZVwiID4+ICRHSVRIVUJfT1VUUFVUJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIG5ldyBjb21taXRzIHdlcmUgcHVzaGVkIHRvIHRoZSByZXBvIHdoaWxlIHdlIHdlcmUgYnVpbGRpbmcuXG4gICAgLy8gaWYgbmV3IGNvbW1pdHMgaGF2ZSBiZWVuIHB1c2hlZCwgd2Ugd2lsbCBjYW5jZWwgdGhpcyByZWxlYXNlXG4gICAgaWYgKHRoaXMub3B0aW9ucy5yZWxlYXNlVHJpZ2dlcj8uaXNDb250aW51b3VzID8/IHRydWUpIHtcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiAnQ2hlY2sgZm9yIG5ldyBjb21taXRzJyxcbiAgICAgICAgaWQ6IEdJVF9SRU1PVEVfU1RFUElELFxuICAgICAgICBydW46IGBlY2hvIFwiJHtMQVRFU1RfQ09NTUlUX09VVFBVVH09JChnaXQgbHMtcmVtb3RlIG9yaWdpbiAtaCBcXCR7eyBnaXRodWIucmVmIH19IHwgY3V0IC1mMSlcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIG5vbi1jb250aW51b3VzIGJ1aWxkcyB3ZSdsbCBqdXN0IHB1dCB0aGUgdmFsdWUgdGhlcmUgdGhhdCBkb3duc3RyZWFtIHN0ZXBzIGFyZSBnb2luZyB0byBjb21wYXJlIGFnYWluc3RcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiAnT3V0cHV0IHRoZSBzaGEgdmFsdWUgdGhhdCBkb3duc3RyZWFtIGNoZWNrcyBleHBlY3QnLFxuICAgICAgICBpZDogR0lUX1JFTU9URV9TVEVQSUQsXG4gICAgICAgIHJ1bjogYGVjaG8gXCIke0xBVEVTVF9DT01NSVRfT1VUUFVUfT1cXCR7eyBnaXRodWIuc2hhIH19XCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy53b3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KHRoaXMuZ2l0aHViLCB7XG4gICAgICBuYW1lOiB3b3JrZmxvd05hbWUsXG4gICAgICBqb2JJZDogUkVMRUFTRV9KT0JJRCxcbiAgICAgIG91dHB1dHM6IHtcbiAgICAgICAgbGF0ZXN0X2NvbW1pdDoge1xuICAgICAgICAgIHN0ZXBJZDogR0lUX1JFTU9URV9TVEVQSUQsXG4gICAgICAgICAgb3V0cHV0TmFtZTogTEFURVNUX0NPTU1JVF9PVVRQVVQsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnNob3VsZFB1Ymxpc2hPdXRwdXRzLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIHNjaGVkdWxlOiB0aGlzLnJlbGVhc2VUcmlnZ2VyLnNjaGVkdWxlID8gW3sgY3JvbjogdGhpcy5yZWxlYXNlVHJpZ2dlci5zY2hlZHVsZSB9XSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHVzaDogdGhpcy5yZWxlYXNlVHJpZ2dlci5pc0NvbnRpbnVvdXMgPyB7IGJyYW5jaGVzOiBbdGhpcy5icmFuY2hOYW1lXSB9IDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5vcHRpb25zLndvcmtmbG93Q29udGFpbmVySW1hZ2UgPyB7IGltYWdlOiB0aGlzLm9wdGlvbnMud29ya2Zsb3dDb250YWluZXJJbWFnZSB9IDogdW5kZWZpbmVkLFxuICAgICAgZW52OiB7XG4gICAgICAgIENJOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6ICd3cml0ZScgYXMgYW55LFxuICAgICAgfSxcbiAgICAgIGNoZWNrb3V0V2l0aDoge1xuICAgICAgICAvLyB3ZSBtdXN0IHVzZSAnZmV0Y2gtZGVwdGg9MCcgaW4gb3JkZXIgdG8gZmV0Y2ggYWxsIHRhZ3NcbiAgICAgICAgLy8gb3RoZXJ3aXNlIHRhZ3MgYXJlIG5vdCBjaGVja2VkIG91dFxuICAgICAgICBmZXRjaERlcHRoOiAwLFxuICAgICAgfSxcbiAgICAgIHByZUJ1aWxkU3RlcHMsXG4gICAgICB0YXNrOiB0aGlzLnJlbGVhc2VUYXNrISxcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLFxuICAgICAgcnVuc09uOiB0aGlzLm9wdGlvbnMud29ya2Zsb3dSdW5zT24sXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2x1Z2lmeSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4geC5yZXBsYWNlKC9bXmEtekEtWjAtOV8tXS9nLCAnLScpLnJlcGxhY2UoL15bMC05LV0rLywgJycpO1xufVxuXG5mdW5jdGlvbiBidWlsZEFydGlmYWN0TmFtZShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBzbHVnaWZ5KGAke3Byb2plY3QubmFtZX1fJHtCVUlMRF9BUlRJRkFDVF9OQU1FfWApO1xufVxuXG5mdW5jdGlvbiBwdWJsaXNoUHJvamVjdE91dHB1dElkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgcmV0dXJuIGBwdWJsaXNoLSR7c2x1Z2lmeShwcm9qZWN0Lm5hbWUpfWA7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFB1Ymxpc2hQcm9qZWN0U3RlcElkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgcmV0dXJuIGBjaGVjay0ke3B1Ymxpc2hQcm9qZWN0T3V0cHV0SWQocHJvamVjdCl9YDtcbn1cbiJdfQ==
|
package/lib/yarn/monorepo.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ import { TypeScriptWorkspace } from './typescript-workspace';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class Monorepo extends typescript.TypeScriptProject {
|
|
9
9
|
static isMonorepo(x: Project): x is Monorepo;
|
|
10
|
+
/**
|
|
11
|
+
* The Monorepo Release component
|
|
12
|
+
*/
|
|
10
13
|
readonly monorepoRelease?: MonorepoRelease;
|
|
11
14
|
/**
|
|
12
15
|
* The URL where the actual code for the package lives.
|
package/lib/yarn/monorepo.js
CHANGED
|
@@ -28,6 +28,7 @@ class Monorepo extends projen_1.typescript.TypeScriptProject {
|
|
|
28
28
|
this.postInstallDependencies = new Array();
|
|
29
29
|
Object.defineProperty(this, MONOREPO_SYM, { value: true });
|
|
30
30
|
this.repositoryUrl = options.repository;
|
|
31
|
+
const buildWithNx = Boolean(options.nx && options.buildWithNx);
|
|
31
32
|
/**
|
|
32
33
|
* Prettier formatting
|
|
33
34
|
*/
|
|
@@ -102,7 +103,13 @@ class Monorepo extends projen_1.typescript.TypeScriptProject {
|
|
|
102
103
|
if (fmtTask) {
|
|
103
104
|
buildTask.spawn(fmtTask);
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
+
if (buildWithNx) {
|
|
107
|
+
buildTask.exec('nx run-many -t build');
|
|
108
|
+
this.github?.tryFindWorkflow('build')?.file?.patch(projen_1.JsonPatch.add('/jobs/build/env/NX_SKIP_NX_CACHE', 'true'));
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
buildTask.exec('yarn workspaces run build');
|
|
112
|
+
}
|
|
106
113
|
// Run in all workspaces tasks
|
|
107
114
|
this.tasks.tryFind('compile')?.reset('yarn workspaces run compile');
|
|
108
115
|
this.tasks.tryFind('package')?.reset('yarn workspaces run package');
|
|
@@ -142,6 +149,7 @@ class Monorepo extends projen_1.typescript.TypeScriptProject {
|
|
|
142
149
|
if (options.release) {
|
|
143
150
|
this.monorepoRelease = new monorepo_release_1.MonorepoRelease(this, {
|
|
144
151
|
workflowRunsOn: options.workflowRunsOn,
|
|
152
|
+
buildWithNx,
|
|
145
153
|
...options.releaseOptions,
|
|
146
154
|
});
|
|
147
155
|
}
|
|
@@ -214,7 +222,7 @@ class Monorepo extends projen_1.typescript.TypeScriptProject {
|
|
|
214
222
|
}
|
|
215
223
|
exports.Monorepo = Monorepo;
|
|
216
224
|
_a = JSII_RTTI_SYMBOL_1;
|
|
217
|
-
Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.2.
|
|
225
|
+
Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.2.9" };
|
|
218
226
|
function getObjFromFile(project, file) {
|
|
219
227
|
return project.tryFindObjectFile(file)?.obj;
|
|
220
228
|
}
|
|
@@ -249,5 +257,5 @@ class CdkLabsMonorepo extends Monorepo {
|
|
|
249
257
|
}
|
|
250
258
|
exports.CdkLabsMonorepo = CdkLabsMonorepo;
|
|
251
259
|
_b = JSII_RTTI_SYMBOL_1;
|
|
252
|
-
CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.2.
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9tb25vcmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUM3QyxtQ0FBMkY7QUFFM0YseURBQXFEO0FBQ3JELDZCQUEwQjtBQUcxQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFFOUU7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQUNqRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQVU7UUFDakMsT0FBTyxPQUFPLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQVlELFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsWUFBWTtZQUMxRCxVQUFVLEVBQUUsS0FBSztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFYRyxhQUFRLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7UUFDNUMsNEJBQXVCLEdBQUcsSUFBSSxLQUFLLEVBQWlCLENBQUM7UUFZM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBRXhDOztXQUVHO1FBQ0gsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3BFLElB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QUksT0FBTztTQUM1RCxDQUFDLENBQUM7UUFFSCxJQUFJLGVBQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQzFCLGdCQUFnQixFQUFFO2dCQUNoQixpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsQ0FBQzthQUN2RztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBekJILDBDQTBCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGhQb3NpeCBmcm9tICdub2RlOnBhdGgvcG9zaXgnO1xuaW1wb3J0IHsgSnNvbkZpbGUsIFByb2plY3QsIGphdmFzY3JpcHQsIHR5cGVzY3JpcHQsIGdpdGh1YiwgRGVwZW5kZW5jeVR5cGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTW9ub3JlcG9PcHRpb25zIH0gZnJvbSAnLi9tb25vcmVwby1vcHRpb25zJztcbmltcG9ydCB7IE1vbm9yZXBvUmVsZWFzZSB9IGZyb20gJy4vbW9ub3JlcG8tcmVsZWFzZSc7XG5pbXBvcnQgeyBOeCB9IGZyb20gJy4vbngnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuXG5jb25zdCBNT05PUkVQT19TWU0gPSBTeW1ib2wuZm9yKCdjZGtsYWJzLXByb2plbi1wcm9qZWN0LXR5cGVzLnlhcm4uTW9ub3JlcG8nKTtcblxuLyoqXG4gKiBBIG1vbm9yZXBvIHVzaW5nIHlhcm4gd29ya3NwYWNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1vbm9yZXBvIGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCB7XG4gIHB1YmxpYyBzdGF0aWMgaXNNb25vcmVwbyh4OiBQcm9qZWN0KTogeCBpcyBNb25vcmVwbyB7XG4gICAgcmV0dXJuIEJvb2xlYW4oeCAmJiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgTU9OT1JFUE9fU1lNIGluIHgpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IG1vbm9yZXBvUmVsZWFzZT86IE1vbm9yZXBvUmVsZWFzZTtcblxuICAvKipcbiAgICogVGhlIFVSTCB3aGVyZSB0aGUgYWN0dWFsIGNvZGUgZm9yIHRoZSBwYWNrYWdlIGxpdmVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlcG9zaXRvcnlVcmw/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwcm9qZWN0cyA9IG5ldyBBcnJheTxUeXBlU2NyaXB0V29ya3NwYWNlPigpO1xuICBwcml2YXRlIHBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzID0gbmV3IEFycmF5PCgpID0+IGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTW9ub3JlcG9PcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOX0NMQVNTSUMsXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcbiAgICAgIGplc3Q6IGZhbHNlLFxuICAgICAgZXNsaW50OiBmYWxzZSxcbiAgICAgIHJlbGVhc2U6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIE1PTk9SRVBPX1NZTSwgeyB2YWx1ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMucmVwb3NpdG9yeVVybCA9IG9wdGlvbnMucmVwb3NpdG9yeTtcblxuICAgIC8qKlxuICAgICAqIFByZXR0aWVyIGZvcm1hdHRpbmdcbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy5wcmV0dGllcikge1xuICAgICAgdGhpcy5hZGREZXZEZXBzKCdlc2xpbnQtY29uZmlnLXByZXR0aWVyJywgJ2VzbGludC1wbHVnaW4tcHJldHRpZXInKTtcbiAgICAgIG5ldyBKc29uRmlsZSh0aGlzLCAnLmVzbGludHJjLmpzb24nLCB7XG4gICAgICAgIGFsbG93Q29tbWVudHM6IHRydWUsXG4gICAgICAgIG9iajoge1xuICAgICAgICAgIHBsdWdpbnM6IFsnQHR5cGVzY3JpcHQtZXNsaW50JywgJ3ByZXR0aWVyJ10sXG4gICAgICAgICAgcGFyc2VyOiAnQHR5cGVzY3JpcHQtZXNsaW50L3BhcnNlcicsXG4gICAgICAgICAgcGFyc2VyT3B0aW9uczoge1xuICAgICAgICAgICAgZWNtYVZlcnNpb246IDIwMTgsXG4gICAgICAgICAgICBzb3VyY2VUeXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICAgIHByb2plY3Q6ICcuL3RzY29uZmlnLmRldi5qc29uJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlnbm9yZVBhdHRlcm5zOiBbJyEucHJvamVucmMudHMnXSxcbiAgICAgICAgICBleHRlbmRzOiBbJ3BsdWdpbjpwcmV0dGllci9yZWNvbW1lbmRlZCddLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLnRhc2tzLmFkZFRhc2soJ2ZtdCcsIHsgZXhlYzogJ2VzbGludCAtLWV4dCAudHMgLS1maXggLS1uby1lcnJvci1vbi11bm1hdGNoZWQtcGF0dGVybiBwcm9qZW5yYyAucHJvamVucmMudHMnIH0pO1xuXG4gICAgICB0aGlzLnZzY29kZT8uZXh0ZW5zaW9ucy5hZGRSZWNvbW1lbmRhdGlvbnMoJ2VzYmVucC5wcmV0dGllci12c2NvZGUnLCAnZGJhZXVtZXIudnNjb2RlLWVzbGludCcpO1xuICAgICAgdGhpcy52c2NvZGU/LnNldHRpbmdzLmFkZFNldHRpbmcoJ2VkaXRvci5kZWZhdWx0Rm9ybWF0dGVyJywgJ2VzYmVucC5wcmV0dGllci12c2NvZGUnKTtcbiAgICAgIHRoaXMudnNjb2RlPy5zZXR0aW5ncy5hZGRTZXR0aW5nKCdlc2xpbnQuZm9ybWF0LmVuYWJsZScsIHRydWUpO1xuICAgICAgdGhpcy52c2NvZGU/LnNldHRpbmdzLmFkZFNldHRpbmdzKHsgJ2VkaXRvci5kZWZhdWx0Rm9ybWF0dGVyJzogJ2RiYWV1bWVyLnZzY29kZS1lc2xpbnQnIH0sIFtcbiAgICAgICAgJ2phdmFzY3JpcHQnLFxuICAgICAgICAndHlwZXNjcmlwdCcsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBWU0NvZGUgV29ya3NwYWNlXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMudnNjb2RlV29ya3NwYWNlKSB7XG4gICAgICBjb25zdCB3b3Jrc3BhY2VGaWxlID0gYCR7dGhpcy5uYW1lfS5jb2RlLXdvcmtzcGFjZWA7XG4gICAgICBuZXcgSnNvbkZpbGUodGhpcywgd29ya3NwYWNlRmlsZSwge1xuICAgICAgICBhbGxvd0NvbW1lbnRzOiB0cnVlLFxuICAgICAgICBvYmo6ICgpID0+ICh7XG4gICAgICAgICAgZm9sZGVyczogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9sZGVyczogQXJyYXk8e1xuICAgICAgICAgICAgICBwYXRoOiBzdHJpbmc7XG4gICAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICB9PiA9IHRoaXMucHJvamVjdHNcbiAgICAgICAgICAgICAgLnNvcnQoKHAxLCBwMikgPT4gcDEubmFtZS5sb2NhbGVDb21wYXJlKHAyLm5hbWUpKVxuICAgICAgICAgICAgICAubWFwKChwKSA9PiAoeyBwYXRoOiBwLndvcmtzcGFjZURpcmVjdG9yeSB9KSk7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnZzY29kZVdvcmtzcGFjZU9wdGlvbnM/LmluY2x1ZGVSb290V29ya3NwYWNlKSB7XG4gICAgICAgICAgICAgIGZvbGRlcnMudW5zaGlmdCh7IHBhdGg6ICcuJywgbmFtZTogb3B0aW9ucy52c2NvZGVXb3Jrc3BhY2VPcHRpb25zPy5yb290V29ya3NwYWNlTmFtZSA/PyAnPHJvb3Q+JyB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZvbGRlcnM7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXR0aW5nczogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSAoZ2V0T2JqRnJvbUZpbGUodGhpcywgJy52c2NvZGUvc2V0dGluZ3MuanNvbicpID8/IHt9KSBhcyBhbnk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy52c2NvZGVXb3Jrc3BhY2VPcHRpb25zPy5pbmNsdWRlUm9vdFdvcmtzcGFjZSAmJiB0aGlzLnByb2plY3RzLmxlbmd0aCkge1xuICAgICAgICAgICAgICBzZXR0aW5nc1snZmlsZXMuZXhjbHVkZSddID0gdGhpcy5wcm9qZWN0cy5yZWR1Y2UoKGV4Y2x1ZGVzLCBwKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIC4uLmV4Y2x1ZGVzLFxuICAgICAgICAgICAgICAgICAgW3Aud29ya3NwYWNlRGlyZWN0b3J5LnNwbGl0KHBhdGhQb3NpeC5zZXApWzBdXTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9LCBzZXR0aW5nc1snZmlsZXMuZXhjbHVkZSddID8/IHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzZXR0aW5ncztcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4dGVuc2lvbnM6ICgpID0+IGdldE9iakZyb21GaWxlKHRoaXMsICcudnNjb2RlL2V4dGVuc2lvbnMuanNvbicpLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRhc2tzXG4gICAgICovXG4gICAgLy8gYnVpbGQgdGFza1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygnYnVpbGQnKTtcbiAgICBjb25zdCBmbXRUYXNrID0gdGhpcy50YXNrcy50cnlGaW5kKCdmbXQnKTtcbiAgICBjb25zdCBidWlsZFRhc2sgPSB0aGlzLnRhc2tzLmFkZFRhc2soJ2J1aWxkJyk7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFRhc2spIHtcbiAgICAgIGJ1aWxkVGFzay5zcGF3bih0aGlzLmRlZmF1bHRUYXNrKTtcbiAgICB9XG4gICAgaWYgKGZtdFRhc2spIHtcbiAgICAgIGJ1aWxkVGFzay5zcGF3bihmbXRUYXNrKTtcbiAgICB9XG4gICAgYnVpbGRUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVpbGQnKTtcblxuICAgIC8vIFJ1biBpbiBhbGwgd29ya3NwYWNlcyB0YXNrc1xuICAgIHRoaXMudGFza3MudHJ5RmluZCgnY29tcGlsZScpPy5yZXNldCgneWFybiB3b3Jrc3BhY2VzIHJ1biBjb21waWxlJyk7XG4gICAgdGhpcy50YXNrcy50cnlGaW5kKCdwYWNrYWdlJyk/LnJlc2V0KCd5YXJuIHdvcmtzcGFjZXMgcnVuIHBhY2thZ2UnKTtcbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ3Rlc3QnKT8ucmVzZXQoJ3lhcm4gd29ya3NwYWNlcyBydW4gdGVzdCcpO1xuICAgIHRoaXMuYWRkVGFzaygncnVuJywge1xuICAgICAgZXhlYzogJ3lhcm4gd29ya3NwYWNlcyBydW4nLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBVcGdyYWRlIGFsbCBwYWNrYWdlc1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygndXBncmFkZScpO1xuICAgIHRoaXMudGFza3MuYWRkVGFzaygndXBncmFkZScsIHtcbiAgICAgIGVudjogeyBDSTogJzAnIH0sXG4gICAgICBkZXNjcmlwdGlvbjogJ1VwZ3JhZGUgZGVwZW5kZW5jaWVzIGluIGFsbCB3b3Jrc3BhY2VzJyxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIC8vIEl0IGlzIG5vdCBzYWZlIGFueW1vcmUgdG8gaGF2ZSAnbnBtLWNoZWNrLXVwZGF0ZXMnIGluIGEgWWFybiAxIGRlcGVuZGVuY3kgdHJlZSwgc28gcnVuIGl0IGluIGEgc2VwYXJhdGVcbiAgICAgICAgLy8gdHJlZSBieSB1c2luZyBucHguXG4gICAgICAgIHsgZXhlYzogJ25weCBucG0tY2hlY2stdXBkYXRlc0AxNiAtLWRlcD1kZXYsb3B0aW9uYWwscGVlcixwcm9kLGJ1bmRsZSAtLXVwZ3JhZGUgLS10YXJnZXQ9bWlub3InIH0sXG4gICAgICAgIHsgZXhlYzogJ3lhcm4gd29ya3NwYWNlcyBydW4gY2hlY2stZm9yLXVwZGF0ZXMnIH0sXG4gICAgICAgIHsgZXhlYzogJ3lhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzJyB9LFxuICAgICAgICB7IGV4ZWM6ICd5YXJuIHVwZ3JhZGUnIH0sXG4gICAgICAgIHsgc3Bhd246ICdkZWZhdWx0JyB9LFxuICAgICAgICB7IHNwYXduOiAncG9zdC11cGdyYWRlJyB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vIENsZWFuIHVwIHRhc2tzIG5vdCByZXF1aXJlZCBhdCB0b3AtbGV2ZWxcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ2VqZWN0Jyk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCd3YXRjaCcpO1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygncHJlLWNvbXBpbGUnKTtcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3Bvc3QtY29tcGlsZScpO1xuXG4gICAgLy8gTnhcbiAgICBpZiAob3B0aW9ucy5ueCkge1xuICAgICAgbmV3IE54KHRoaXMsIHtcbiAgICAgICAgZGVmYXVsdEJhc2U6IG9wdGlvbnMuZGVmYXVsdFJlbGVhc2VCcmFuY2gsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBSZWxlYXNlIFdvcmtmbG93XG4gICAgaWYgKG9wdGlvbnMucmVsZWFzZSkge1xuICAgICAgdGhpcy5tb25vcmVwb1JlbGVhc2UgPSBuZXcgTW9ub3JlcG9SZWxlYXNlKHRoaXMsIHtcbiAgICAgICAgd29ya2Zsb3dSdW5zT246IG9wdGlvbnMud29ya2Zsb3dSdW5zT24sXG4gICAgICAgIC4uLm9wdGlvbnMucmVsZWFzZU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXIocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSkge1xuICAgIHRoaXMucHJvamVjdHMucHVzaChwcm9qZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBzeW50aCgpIHtcbiAgICB0aGlzLmZpbmFsRXNjYXBlSGF0Y2hlcygpO1xuICAgIHN1cGVyLnN5bnRoKCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIGEgc3ViIHByb2plY3QgdG8gcmVxdWVzdCBpbnN0YWxsYXRpb24gb2YgZGVwZW5kZW5jeSBhdCB0aGUgTW9ub3JlcG8gcm9vdFxuICAgKiBUaGV5IG11c3QgcHJvdmlkZSBhIGZ1bmN0aW9uIHRoYXQgaXMgZXhlY3V0ZWQgYWZ0ZXIgZGVwZW5kZW5jaWVzIGhhdmUgYmVlbiBpbnN0YWxsZWRcbiAgICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZSBpbnN0YWxsIGNvbW1hbmQgaXMgcnVuIGZvciBhIHNlY29uZCB0aW1lIGFmdGVyIGFsbCBzdWIgcHJvamVjdCByZXF1ZXN0cyBoYXZlIHJ1bi5cbiAgICogVGhpcyBpcyB1c2VkIHRvIHJlc29sdmUgZGVwZW5kZW5jeSB2ZXJzaW9ucyBmcm9tIGAqYCB0byBhIGNvbmNyZXRlIHZlcnNpb24gY29uc3RyYWludC5cbiAgICovXG4gIHB1YmxpYyByZXF1ZXN0SW5zdGFsbERlcGVuZGVuY2llcyhyZXNvbHZlcjogSURlcGVuZGVuY3lSZXNvbHZlcikge1xuICAgIHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMucHVzaChyZXNvbHZlci5yZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvZGUgdGhhdCBuZWVkcyB0byBydW4ganVzdCBiZWZvcmUgc3ludGgsIGJ1dCBhZnRlciBhbGwgb3RoZXIgY29kZVxuICAgKi9cbiAgcHJpdmF0ZSBmaW5hbEVzY2FwZUhhdGNoZXMoKSB7XG4gICAgLy8gR2V0IHRoZSBPYmplY3RGaWxlXG4gICAgdGhpcy5wYWNrYWdlLmFkZEZpZWxkKCdwcml2YXRlJywgdHJ1ZSk7XG4gICAgdGhpcy5wYWNrYWdlLmFkZEZpZWxkKCd3b3Jrc3BhY2VzJywge1xuICAgICAgcGFja2FnZXM6IHRoaXMucHJvamVjdHMubWFwKChwKSA9PiBwLndvcmtzcGFjZURpcmVjdG9yeSksXG4gICAgICAuLi50aGlzLnJlbmRlck5vSG9pc3QoKSxcbiAgICB9KTtcblxuICAgIHRoaXMudHNjb25maWc/LmZpbGUuYWRkT3ZlcnJpZGUoJ2luY2x1ZGUnLCBbXSk7XG4gICAgdGhpcy50c2NvbmZpZ0Rldj8uZmlsZS5hZGRPdmVycmlkZSgnaW5jbHVkZScsIFsnLnByb2plbnJjLnRzJywgJ3Byb2plbnJjLyoqLyoudHMnXSk7XG4gICAgZm9yIChjb25zdCB0c2NvbmZpZyBvZiBbdGhpcy50c2NvbmZpZywgdGhpcy50c2NvbmZpZ0Rldl0pIHtcbiAgICAgIHRzY29uZmlnPy5maWxlLmFkZE92ZXJyaWRlKFxuICAgICAgICAncmVmZXJlbmNlcycsXG4gICAgICAgIHRoaXMucHJvamVjdHMubWFwKChwKSA9PiAoeyBwYXRoOiBwLndvcmtzcGFjZURpcmVjdG9yeSB9KSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucGFja2FnZS5hZGRGaWVsZCgnamVzdCcsIHtcbiAgICAgIHByb2plY3RzOiB0aGlzLnByb2plY3RzLm1hcCgocCkgPT4gYDxyb290RGlyPi8ke3Aud29ya3NwYWNlRGlyZWN0b3J5fWApLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgJ25vaG9pc3QnIGRpcmVjdGl2ZVxuICAgKlxuICAgKiBCdW5kbGVkIGRlcGVuZGVuY2llcyBtdXN0IGJlIG5vaG9pc3QnZWQsIG90aGVyd2lzZSBOUE0gc2lsZW50bHkgd29uJ3QgYnVuZGxlIHRoZW0uXG4gICAqXG4gICAqIFJlbmRlcnMgYW4gb2JqZWN0IHRoYXQgc2hvdWxkIGJlIG1peGVkIGludG8gdGhlIGB3b3Jrc3BhY2VzYCBvYmplY3QuXG4gICAqL1xuICBwcml2YXRlIHJlbmRlck5vSG9pc3QoKTogYW55IHtcbiAgICBjb25zdCBub2hvaXN0ID0gdGhpcy5wcm9qZWN0cy5mbGF0TWFwKChwKSA9PlxuICAgICAgcC5kZXBzLmFsbFxuICAgICAgICAuZmlsdGVyKChkZXApID0+IGRlcC50eXBlID09PSBEZXBlbmRlbmN5VHlwZS5CVU5ETEVEKVxuICAgICAgICAuZmxhdE1hcCgoZGVwKSA9PiBbXG4gICAgICAgICAgYCR7cC5uYW1lfS8ke2RlcC5uYW1lfWAsXG4gICAgICAgICAgYCR7cC5uYW1lfS8ke2RlcC5uYW1lfS8qKmAsXG4gICAgICAgIF0pLFxuICAgICk7XG4gICAgcmV0dXJuIG5vaG9pc3QubGVuZ3RoID4gMCA/IHsgbm9ob2lzdCB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvb2tzIGludG8gdGhlIGluc3RhbGwgZGVwZW5kZW5jaWVzIGN5Y2xlXG4gICAqL1xuICBwdWJsaWMgcG9zdFN5bnRoZXNpemUoKSB7XG4gICAgaWYgKHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBub2RlUGtnOiBhbnkgPSB0aGlzLnBhY2thZ2U7XG4gICAgICBub2RlUGtnLmluc3RhbGxEZXBlbmRlbmNpZXMoKTtcblxuICAgICAgY29uc3QgY29tcGxldGVkUmVxdWVzdHMgPSB0aGlzLnBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzLm1hcCgocmVxdWVzdCkgPT4gcmVxdWVzdCgpKTtcbiAgICAgIGlmIChjb21wbGV0ZWRSZXF1ZXN0cy5zb21lKEJvb2xlYW4pKSB7XG4gICAgICAgIG5vZGVQa2cuaW5zdGFsbERlcGVuZGVuY2llcygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzID0gW107XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlcGVuZGVuY3lSZXNvbHZlciB7XG4gIHJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbigpOiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBnZXRPYmpGcm9tRmlsZShwcm9qZWN0OiBQcm9qZWN0LCBmaWxlOiBzdHJpbmcpOiBvYmplY3Qge1xuICByZXR1cm4gKHByb2plY3QudHJ5RmluZE9iamVjdEZpbGUoZmlsZSkgYXMgYW55KT8ub2JqO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIENka0xhYnNNb25vcmVwb1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENka0xhYnNNb25vcmVwb09wdGlvbnMgZXh0ZW5kcyBNb25vcmVwb09wdGlvbnMge31cblxuLyoqXG4gKiBPcGluaW9uYXRlZCBpbXBsZW1lbnRhdGlvbiBvZiB5YXJuLk1vbm9yZXBvXG4gKiBAcGppZCBjZGtsYWJzLXlhcm4tbW9ub3JlcG9cbiAqL1xuZXhwb3J0IGNsYXNzIENka0xhYnNNb25vcmVwbyBleHRlbmRzIE1vbm9yZXBvIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrTGFic01vbm9yZXBvT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG5cbiAgICAgIGF1dG9BcHByb3ZlVXBncmFkZXM6IHRydWUsXG4gICAgICBhdXRvQXBwcm92ZU9wdGlvbnM6IHtcbiAgICAgICAgYWxsb3dlZFVzZXJuYW1lczogWydnaXRodWItYm90JywgJ2Nka2xhYnMtYXV0b21hdGlvbicsICdkZXBlbmRhYm90W2JvdF0nXSxcbiAgICAgICAgc2VjcmV0OiAnR0lUSFVCX1RPS0VOJyxcbiAgICAgIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnMsXG4gICAgICAgIG1lcmdpZnk6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIC8vIERldmlhdGlvbiBmcm9tIHVwc3RyZWFtIHByb2plbjogdXBzdHJlYW0gcHJvamVuIGRlZmF1bHRzIHRvIG1pbk5vZGVWZXJzaW9uLCBidXQgd2UgaGF2ZSB0b28gbWFueSB3b3JrZmxvd3NcbiAgICAgIC8vIHRoYXQgdXNlIHRvb2xzIHRoYXQgd2FudCBhIHJlY2VudCBOb2RlIHZlcnNpb24sIHNvIGRlZmF1bHQgdG8gYSByZWFzb25hYmxlIGZsb2F0aW5nIHZlcnNpb24uXG4gICAgICB3b3JrZmxvd05vZGVWZXJzaW9uOiBvcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gJ2x0cy8qJyxcbiAgICB9KTtcblxuICAgIG5ldyBnaXRodWIuTWVyZ2VRdWV1ZSh0aGlzLCB7XG4gICAgICBhdXRvUXVldWVPcHRpb25zOiB7XG4gICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oeyBzZWNyZXQ6ICdQUk9KRU5fR0lUSFVCX1RPS0VOJyB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
260
|
+
CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.2.9" };
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9tb25vcmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUM3QyxtQ0FBc0c7QUFFdEcseURBQXFEO0FBQ3JELDZCQUEwQjtBQUcxQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFFOUU7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQUNqRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQVU7UUFDakMsT0FBTyxPQUFPLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQWVELFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsWUFBWTtZQUMxRCxVQUFVLEVBQUUsS0FBSztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFYRyxhQUFRLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7UUFDNUMsNEJBQXVCLEdBQUcsSUFBSSxLQUFLLEVBQWlCLENBQUM7UUFZM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvRDs7V0FFRztRQUNILElBQUksT0FBTyxDQUFDLFFB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K0I7UUFDekMsS0FBSyxDQUFDO1lBQ0osVUFBVSxFQUFFLElBQUk7WUFFaEIsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixrQkFBa0IsRUFBRTtnQkFDbEIsZ0JBQWdCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3pFLE1BQU0sRUFBRSxjQUFjO2FBQ3ZCO1lBQ0QsR0FBRyxPQUFPO1lBQ1YsYUFBYSxFQUFFO2dCQUNiLEdBQUcsT0FBTyxDQUFDLGFBQWE7Z0JBQ3hCLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7WUFDRCw2R0FBNkc7WUFDN0csK0ZBQStGO1lBQy9GLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxPQUFPO1NBQzVELENBQUMsQ0FBQztRQUVILElBQUksZUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDMUIsZ0JBQWdCLEVBQUU7Z0JBQ2hCLGlCQUFpQixFQUFFLGVBQU0sQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO2FBQ3ZHO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6QkgsMENBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aFBvc2l4IGZyb20gJ25vZGU6cGF0aC9wb3NpeCc7XG5pbXBvcnQgeyBKc29uRmlsZSwgUHJvamVjdCwgamF2YXNjcmlwdCwgdHlwZXNjcmlwdCwgZ2l0aHViLCBEZXBlbmRlbmN5VHlwZSwgSnNvblBhdGNoIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE1vbm9yZXBvT3B0aW9ucyB9IGZyb20gJy4vbW9ub3JlcG8tb3B0aW9ucyc7XG5pbXBvcnQgeyBNb25vcmVwb1JlbGVhc2UgfSBmcm9tICcuL21vbm9yZXBvLXJlbGVhc2UnO1xuaW1wb3J0IHsgTnggfSBmcm9tICcuL254JztcbmltcG9ydCB7IFR5cGVTY3JpcHRXb3Jrc3BhY2UgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcblxuY29uc3QgTU9OT1JFUE9fU1lNID0gU3ltYm9sLmZvcignY2RrbGFicy1wcm9qZW4tcHJvamVjdC10eXBlcy55YXJuLk1vbm9yZXBvJyk7XG5cbi8qKlxuICogQSBtb25vcmVwbyB1c2luZyB5YXJuIHdvcmtzcGFjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25vcmVwbyBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuICBwdWJsaWMgc3RhdGljIGlzTW9ub3JlcG8oeDogUHJvamVjdCk6IHggaXMgTW9ub3JlcG8ge1xuICAgIHJldHVybiBCb29sZWFuKHggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmIE1PTk9SRVBPX1NZTSBpbiB4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgTW9ub3JlcG8gUmVsZWFzZSBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtb25vcmVwb1JlbGVhc2U/OiBNb25vcmVwb1JlbGVhc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgd2hlcmUgdGhlIGFjdHVhbCBjb2RlIGZvciB0aGUgcGFja2FnZSBsaXZlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXBvc2l0b3J5VXJsPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcHJvamVjdHMgPSBuZXcgQXJyYXk8VHlwZVNjcmlwdFdvcmtzcGFjZT4oKTtcbiAgcHJpdmF0ZSBwb3N0SW5zdGFsbERlcGVuZGVuY2llcyA9IG5ldyBBcnJheTwoKSA9PiBib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE1vbm9yZXBvT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICByZWxlYXNlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBNT05PUkVQT19TWU0sIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLnJlcG9zaXRvcnlVcmwgPSBvcHRpb25zLnJlcG9zaXRvcnk7XG4gICAgY29uc3QgYnVpbGRXaXRoTnggPSBCb29sZWFuKG9wdGlvbnMubnggJiYgb3B0aW9ucy5idWlsZFdpdGhOeCk7XG5cbiAgICAvKipcbiAgICAgKiBQcmV0dGllciBmb3JtYXR0aW5nXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucHJldHRpZXIpIHtcbiAgICAgIHRoaXMuYWRkRGV2RGVwcygnZXNsaW50LWNvbmZpZy1wcmV0dGllcicsICdlc2xpbnQtcGx1Z2luLXByZXR0aWVyJyk7XG4gICAgICBuZXcgSnNvbkZpbGUodGhpcywgJy5lc2xpbnRyYy5qc29uJywge1xuICAgICAgICBhbGxvd0NvbW1lbnRzOiB0cnVlLFxuICAgICAgICBvYmo6IHtcbiAgICAgICAgICBwbHVnaW5zOiBbJ0B0eXBlc2NyaXB0LWVzbGludCcsICdwcmV0dGllciddLFxuICAgICAgICAgIHBhcnNlcjogJ0B0eXBlc2NyaXB0LWVzbGludC9wYXJzZXInLFxuICAgICAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgICAgIGVjbWFWZXJzaW9uOiAyMDE4LFxuICAgICAgICAgICAgc291cmNlVHlwZTogJ21vZHVsZScsXG4gICAgICAgICAgICBwcm9qZWN0OiAnLi90c2NvbmZpZy5kZXYuanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZ25vcmVQYXR0ZXJuczogWychLnByb2plbnJjLnRzJ10sXG4gICAgICAgICAgZXh0ZW5kczogWydwbHVnaW46cHJldHRpZXIvcmVjb21tZW5kZWQnXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YXNrcy5hZGRUYXNrKCdmbXQnLCB7IGV4ZWM6ICdlc2xpbnQgLS1leHQgLnRzIC0tZml4IC0tbm8tZXJyb3Itb24tdW5tYXRjaGVkLXBhdHRlcm4gcHJvamVucmMgLnByb2plbnJjLnRzJyB9KTtcblxuICAgICAgdGhpcy52c2NvZGU/LmV4dGVuc2lvbnMuYWRkUmVjb21tZW5kYXRpb25zKCdlc2JlbnAucHJldHRpZXItdnNjb2RlJywgJ2RiYWV1bWVyLnZzY29kZS1lc2xpbnQnKTtcbiAgICAgIHRoaXMudnNjb2RlPy5zZXR0aW5ncy5hZGRTZXR0aW5nKCdlZGl0b3IuZGVmYXVsdEZvcm1hdHRlcicsICdlc2JlbnAucHJldHRpZXItdnNjb2RlJyk7XG4gICAgICB0aGlzLnZzY29kZT8uc2V0dGluZ3MuYWRkU2V0dGluZygnZXNsaW50LmZvcm1hdC5lbmFibGUnLCB0cnVlKTtcbiAgICAgIHRoaXMudnNjb2RlPy5zZXR0aW5ncy5hZGRTZXR0aW5ncyh7ICdlZGl0b3IuZGVmYXVsdEZvcm1hdHRlcic6ICdkYmFldW1lci52c2NvZGUtZXNsaW50JyB9LCBbXG4gICAgICAgICdqYXZhc2NyaXB0JyxcbiAgICAgICAgJ3R5cGVzY3JpcHQnLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgVlNDb2RlIFdvcmtzcGFjZVxuICAgICAqL1xuICAgIGlmIChvcHRpb25zLnZzY29kZVdvcmtzcGFjZSkge1xuICAgICAgY29uc3Qgd29ya3NwYWNlRmlsZSA9IGAke3RoaXMubmFtZX0uY29kZS13b3Jrc3BhY2VgO1xuICAgICAgbmV3IEpzb25GaWxlKHRoaXMsIHdvcmtzcGFjZUZpbGUsIHtcbiAgICAgICAgYWxsb3dDb21tZW50czogdHJ1ZSxcbiAgICAgICAgb2JqOiAoKSA9PiAoe1xuICAgICAgICAgIGZvbGRlcnM6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvbGRlcnM6IEFycmF5PHtcbiAgICAgICAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgfT4gPSB0aGlzLnByb2plY3RzXG4gICAgICAgICAgICAgIC5zb3J0KChwMSwgcDIpID0+IHAxLm5hbWUubG9jYWxlQ29tcGFyZShwMi5uYW1lKSlcbiAgICAgICAgICAgICAgLm1hcCgocCkgPT4gKHsgcGF0aDogcC53b3Jrc3BhY2VEaXJlY3RvcnkgfSkpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy52c2NvZGVXb3Jrc3BhY2VPcHRpb25zPy5pbmNsdWRlUm9vdFdvcmtzcGFjZSkge1xuICAgICAgICAgICAgICBmb2xkZXJzLnVuc2hpZnQoeyBwYXRoOiAnLicsIG5hbWU6IG9wdGlvbnMudnNjb2RlV29ya3NwYWNlT3B0aW9ucz8ucm9vdFdvcmtzcGFjZU5hbWUgPz8gJzxyb290PicgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmb2xkZXJzO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0dGluZ3M6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzID0gKGdldE9iakZyb21GaWxlKHRoaXMsICcudnNjb2RlL3NldHRpbmdzLmpzb24nKSA/PyB7fSkgYXMgYW55O1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudnNjb2RlV29ya3NwYWNlT3B0aW9ucz8uaW5jbHVkZVJvb3RXb3Jrc3BhY2UgJiYgdGhpcy5wcm9qZWN0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgc2V0dGluZ3NbJ2ZpbGVzLmV4Y2x1ZGUnXSA9IHRoaXMucHJvamVjdHMucmVkdWNlKChleGNsdWRlcywgcCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAuLi5leGNsdWRlcyxcbiAgICAgICAgICAgICAgICAgIFtwLndvcmtzcGFjZURpcmVjdG9yeS5zcGxpdChwYXRoUG9zaXguc2VwKVswXV06IHRydWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSwgc2V0dGluZ3NbJ2ZpbGVzLmV4Y2x1ZGUnXSA/PyB7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2V0dGluZ3M7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleHRlbnNpb25zOiAoKSA9PiBnZXRPYmpGcm9tRmlsZSh0aGlzLCAnLnZzY29kZS9leHRlbnNpb25zLmpzb24nKSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYXNrc1xuICAgICAqL1xuICAgIC8vIGJ1aWxkIHRhc2tcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ2J1aWxkJyk7XG4gICAgY29uc3QgZm10VGFzayA9IHRoaXMudGFza3MudHJ5RmluZCgnZm10Jyk7XG4gICAgY29uc3QgYnVpbGRUYXNrID0gdGhpcy50YXNrcy5hZGRUYXNrKCdidWlsZCcpO1xuICAgIGlmICh0aGlzLmRlZmF1bHRUYXNrKSB7XG4gICAgICBidWlsZFRhc2suc3Bhd24odGhpcy5kZWZhdWx0VGFzayk7XG4gICAgfVxuICAgIGlmIChmbXRUYXNrKSB7XG4gICAgICBidWlsZFRhc2suc3Bhd24oZm10VGFzayk7XG4gICAgfVxuICAgIGlmIChidWlsZFdpdGhOeCkge1xuICAgICAgYnVpbGRUYXNrLmV4ZWMoJ254IHJ1bi1tYW55IC10IGJ1aWxkJyk7XG4gICAgICB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KCdidWlsZCcpPy5maWxlPy5wYXRjaChcbiAgICAgICAgSnNvblBhdGNoLmFkZCgnL2pvYnMvYnVpbGQvZW52L05YX1NLSVBfTlhfQ0FDSEUnLCAndHJ1ZScpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVpbGRUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVpbGQnKTtcbiAgICB9XG5cbiAgICAvLyBSdW4gaW4gYWxsIHdvcmtzcGFjZXMgdGFza3NcbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKT8ucmVzZXQoJ3lhcm4gd29ya3NwYWNlcyBydW4gY29tcGlsZScpO1xuICAgIHRoaXMudGFza3MudHJ5RmluZCgncGFja2FnZScpPy5yZXNldCgneWFybiB3b3Jrc3BhY2VzIHJ1biBwYWNrYWdlJyk7XG4gICAgdGhpcy50YXNrcy50cnlGaW5kKCd0ZXN0Jyk/LnJlc2V0KCd5YXJuIHdvcmtzcGFjZXMgcnVuIHRlc3QnKTtcbiAgICB0aGlzLmFkZFRhc2soJ3J1bicsIHtcbiAgICAgIGV4ZWM6ICd5YXJuIHdvcmtzcGFjZXMgcnVuJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gVXBncmFkZSBhbGwgcGFja2FnZXNcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3VwZ3JhZGUnKTtcbiAgICB0aGlzLnRhc2tzLmFkZFRhc2soJ3VwZ3JhZGUnLCB7XG4gICAgICBlbnY6IHsgQ0k6ICcwJyB9LFxuICAgICAgZGVzY3JpcHRpb246ICdVcGdyYWRlIGRlcGVuZGVuY2llcyBpbiBhbGwgd29ya3NwYWNlcycsXG4gICAgICBzdGVwczogW1xuICAgICAgICAvLyBJdCBpcyBub3Qgc2FmZSBhbnltb3JlIHRvIGhhdmUgJ25wbS1jaGVjay11cGRhdGVzJyBpbiBhIFlhcm4gMSBkZXBlbmRlbmN5IHRyZWUsIHNvIHJ1biBpdCBpbiBhIHNlcGFyYXRlXG4gICAgICAgIC8vIHRyZWUgYnkgdXNpbmcgbnB4LlxuICAgICAgICB7IGV4ZWM6ICducHggbnBtLWNoZWNrLXVwZGF0ZXNAMTYgLS1kZXA9ZGV2LG9wdGlvbmFsLHBlZXIscHJvZCxidW5kbGUgLS11cGdyYWRlIC0tdGFyZ2V0PW1pbm9yJyB9LFxuICAgICAgICB7IGV4ZWM6ICd5YXJuIHdvcmtzcGFjZXMgcnVuIGNoZWNrLWZvci11cGRhdGVzJyB9LFxuICAgICAgICB7IGV4ZWM6ICd5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcycgfSxcbiAgICAgICAgeyBleGVjOiAneWFybiB1cGdyYWRlJyB9LFxuICAgICAgICB7IHNwYXduOiAnZGVmYXVsdCcgfSxcbiAgICAgICAgeyBzcGF3bjogJ3Bvc3QtdXBncmFkZScgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBDbGVhbiB1cCB0YXNrcyBub3QgcmVxdWlyZWQgYXQgdG9wLWxldmVsXG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdlamVjdCcpO1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygnd2F0Y2gnKTtcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3ByZS1jb21waWxlJyk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdwb3N0LWNvbXBpbGUnKTtcblxuICAgIC8vIE54XG4gICAgaWYgKG9wdGlvbnMubngpIHtcbiAgICAgIG5ldyBOeCh0aGlzLCB7XG4gICAgICAgIGRlZmF1bHRCYXNlOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUmVsZWFzZSBXb3JrZmxvd1xuICAgIGlmIChvcHRpb25zLnJlbGVhc2UpIHtcbiAgICAgIHRoaXMubW9ub3JlcG9SZWxlYXNlID0gbmV3IE1vbm9yZXBvUmVsZWFzZSh0aGlzLCB7XG4gICAgICAgIHdvcmtmbG93UnVuc09uOiBvcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgICAgICBidWlsZFdpdGhOeCxcbiAgICAgICAgLi4ub3B0aW9ucy5yZWxlYXNlT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlcihwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlKSB7XG4gICAgdGhpcy5wcm9qZWN0cy5wdXNoKHByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIHN5bnRoKCkge1xuICAgIHRoaXMuZmluYWxFc2NhcGVIYXRjaGVzKCk7XG4gICAgc3VwZXIuc3ludGgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgYSBzdWIgcHJvamVjdCB0byByZXF1ZXN0IGluc3RhbGxhdGlvbiBvZiBkZXBlbmRlbmN5IGF0IHRoZSBNb25vcmVwbyByb290XG4gICAqIFRoZXkgbXVzdCBwcm92aWRlIGEgZnVuY3Rpb24gdGhhdCBpcyBleGVjdXRlZCBhZnRlciBkZXBlbmRlbmNpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZFxuICAgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgdGhlIGluc3RhbGwgY29tbWFuZCBpcyBydW4gZm9yIGEgc2Vjb25kIHRpbWUgYWZ0ZXIgYWxsIHN1YiBwcm9qZWN0IHJlcXVlc3RzIGhhdmUgcnVuLlxuICAgKiBUaGlzIGlzIHVzZWQgdG8gcmVzb2x2ZSBkZXBlbmRlbmN5IHZlcnNpb25zIGZyb20gYCpgIHRvIGEgY29uY3JldGUgdmVyc2lvbiBjb25zdHJhaW50LlxuICAgKi9cbiAgcHVibGljIHJlcXVlc3RJbnN0YWxsRGVwZW5kZW5jaWVzKHJlc29sdmVyOiBJRGVwZW5kZW5jeVJlc29sdmVyKSB7XG4gICAgdGhpcy5wb3N0SW5zdGFsbERlcGVuZGVuY2llcy5wdXNoKHJlc29sdmVyLnJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbik7XG4gIH1cblxuICAvKipcbiAgICogQ29kZSB0aGF0IG5lZWRzIHRvIHJ1biBqdXN0IGJlZm9yZSBzeW50aCwgYnV0IGFmdGVyIGFsbCBvdGhlciBjb2RlXG4gICAqL1xuICBwcml2YXRlIGZpbmFsRXNjYXBlSGF0Y2hlcygpIHtcbiAgICAvLyBHZXQgdGhlIE9iamVjdEZpbGVcbiAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3ByaXZhdGUnLCB0cnVlKTtcbiAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3dvcmtzcGFjZXMnLCB7XG4gICAgICBwYWNrYWdlczogdGhpcy5wcm9qZWN0cy5tYXAoKHApID0+IHAud29ya3NwYWNlRGlyZWN0b3J5KSxcbiAgICAgIC4uLnRoaXMucmVuZGVyTm9Ib2lzdCgpLFxuICAgIH0pO1xuXG4gICAgdGhpcy50c2NvbmZpZz8uZmlsZS5hZGRPdmVycmlkZSgnaW5jbHVkZScsIFtdKTtcbiAgICB0aGlzLnRzY29uZmlnRGV2Py5maWxlLmFkZE92ZXJyaWRlKCdpbmNsdWRlJywgWycucHJvamVucmMudHMnLCAncHJvamVucmMvKiovKi50cyddKTtcbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnIG9mIFt0aGlzLnRzY29uZmlnLCB0aGlzLnRzY29uZmlnRGV2XSkge1xuICAgICAgdHNjb25maWc/LmZpbGUuYWRkT3ZlcnJpZGUoXG4gICAgICAgICdyZWZlcmVuY2VzJyxcbiAgICAgICAgdGhpcy5wcm9qZWN0cy5tYXAoKHApID0+ICh7IHBhdGg6IHAud29ya3NwYWNlRGlyZWN0b3J5IH0pKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5wYWNrYWdlLmFkZEZpZWxkKCdqZXN0Jywge1xuICAgICAgcHJvamVjdHM6IHRoaXMucHJvamVjdHMubWFwKChwKSA9PiBgPHJvb3REaXI+LyR7cC53b3Jrc3BhY2VEaXJlY3Rvcnl9YCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSAnbm9ob2lzdCcgZGlyZWN0aXZlXG4gICAqXG4gICAqIEJ1bmRsZWQgZGVwZW5kZW5jaWVzIG11c3QgYmUgbm9ob2lzdCdlZCwgb3RoZXJ3aXNlIE5QTSBzaWxlbnRseSB3b24ndCBidW5kbGUgdGhlbS5cbiAgICpcbiAgICogUmVuZGVycyBhbiBvYmplY3QgdGhhdCBzaG91bGQgYmUgbWl4ZWQgaW50byB0aGUgYHdvcmtzcGFjZXNgIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgcmVuZGVyTm9Ib2lzdCgpOiBhbnkge1xuICAgIGNvbnN0IG5vaG9pc3QgPSB0aGlzLnByb2plY3RzLmZsYXRNYXAoKHApID0+XG4gICAgICBwLmRlcHMuYWxsXG4gICAgICAgIC5maWx0ZXIoKGRlcCkgPT4gZGVwLnR5cGUgPT09IERlcGVuZGVuY3lUeXBlLkJVTkRMRUQpXG4gICAgICAgIC5mbGF0TWFwKChkZXApID0+IFtcbiAgICAgICAgICBgJHtwLm5hbWV9LyR7ZGVwLm5hbWV9YCxcbiAgICAgICAgICBgJHtwLm5hbWV9LyR7ZGVwLm5hbWV9LyoqYCxcbiAgICAgICAgXSksXG4gICAgKTtcbiAgICByZXR1cm4gbm9ob2lzdC5sZW5ndGggPiAwID8geyBub2hvaXN0IH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogSG9va3MgaW50byB0aGUgaW5zdGFsbCBkZXBlbmRlbmNpZXMgY3ljbGVcbiAgICovXG4gIHB1YmxpYyBwb3N0U3ludGhlc2l6ZSgpIHtcbiAgICBpZiAodGhpcy5wb3N0SW5zdGFsbERlcGVuZGVuY2llcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5vZGVQa2c6IGFueSA9IHRoaXMucGFja2FnZTtcbiAgICAgIG5vZGVQa2cuaW5zdGFsbERlcGVuZGVuY2llcygpO1xuXG4gICAgICBjb25zdCBjb21wbGV0ZWRSZXF1ZXN0cyA9IHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMubWFwKChyZXF1ZXN0KSA9PiByZXF1ZXN0KCkpO1xuICAgICAgaWYgKGNvbXBsZXRlZFJlcXVlc3RzLnNvbWUoQm9vbGVhbikpIHtcbiAgICAgICAgbm9kZVBrZy5pbnN0YWxsRGVwZW5kZW5jaWVzKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMgPSBbXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVwZW5kZW5jeVJlc29sdmVyIHtcbiAgcmVzb2x2ZURlcHNBbmRXcml0ZVBhY2thZ2VKc29uKCk6IGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIGdldE9iakZyb21GaWxlKHByb2plY3Q6IFByb2plY3QsIGZpbGU6IHN0cmluZyk6IG9iamVjdCB7XG4gIHJldHVybiAocHJvamVjdC50cnlGaW5kT2JqZWN0RmlsZShmaWxlKSBhcyBhbnkpPy5vYmo7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQ2RrTGFic01vbm9yZXBvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrTGFic01vbm9yZXBvT3B0aW9ucyBleHRlbmRzIE1vbm9yZXBvT3B0aW9ucyB7fVxuXG4vKipcbiAqIE9waW5pb25hdGVkIGltcGxlbWVudGF0aW9uIG9mIHlhcm4uTW9ub3JlcG9cbiAqIEBwamlkIGNka2xhYnMteWFybi1tb25vcmVwb1xuICovXG5leHBvcnQgY2xhc3MgQ2RrTGFic01vbm9yZXBvIGV4dGVuZHMgTW9ub3JlcG8ge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtMYWJzTW9ub3JlcG9PcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgcHJvamVucmNUczogdHJ1ZSxcblxuICAgICAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczoge1xuICAgICAgICBhbGxvd2VkVXNlcm5hbWVzOiBbJ2dpdGh1Yi1ib3QnLCAnY2RrbGFicy1hdXRvbWF0aW9uJywgJ2RlcGVuZGFib3RbYm90XSddLFxuICAgICAgICBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nLFxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZ2l0aHViT3B0aW9ucyxcbiAgICAgICAgbWVyZ2lmeTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgLy8gRGV2aWF0aW9uIGZyb20gdXBzdHJlYW0gcHJvamVuOiB1cHN0cmVhbSBwcm9qZW4gZGVmYXVsdHMgdG8gbWluTm9kZVZlcnNpb24sIGJ1dCB3ZSBoYXZlIHRvbyBtYW55IHdvcmtmbG93c1xuICAgICAgLy8gdGhhdCB1c2UgdG9vbHMgdGhhdCB3YW50IGEgcmVjZW50IE5vZGUgdmVyc2lvbiwgc28gZGVmYXVsdCB0byBhIHJlYXNvbmFibGUgZmxvYXRpbmcgdmVyc2lvbi5cbiAgICAgIHdvcmtmbG93Tm9kZVZlcnNpb246IG9wdGlvbnMud29ya2Zsb3dOb2RlVmVyc2lvbiA/PyAnbHRzLyonLFxuICAgIH0pO1xuXG4gICAgbmV3IGdpdGh1Yi5NZXJnZVF1ZXVlKHRoaXMsIHtcbiAgICAgIGF1dG9RdWV1ZU9wdGlvbnM6IHtcbiAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7IHNlY3JldDogJ1BST0pFTl9HSVRIVUJfVE9LRU4nIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/lib/yarn/nx.js
CHANGED
|
@@ -31,18 +31,11 @@ class Nx extends projen_1.Component {
|
|
|
31
31
|
project.addPackageIgnore('/.nx');
|
|
32
32
|
new projen_1.JsonFile(project, 'nx.json', {
|
|
33
33
|
obj: {
|
|
34
|
-
tasksRunnerOptions: {
|
|
35
|
-
default: {
|
|
36
|
-
runner: 'nx/tasks-runners/default',
|
|
37
|
-
options: {
|
|
38
|
-
cacheableOperations: () => cachableTasks.map(({ name }) => name).filter((name) => project.tasks.tryFind(name)),
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
34
|
targetDefaults: () => cachableTasks.reduce((targetDefaults, { name, outputs, inputs }) => {
|
|
43
35
|
const task = project.tasks.tryFind(name);
|
|
44
36
|
if (task) {
|
|
45
37
|
targetDefaults[name] = {
|
|
38
|
+
cache: true,
|
|
46
39
|
dependsOn: [`^${name}`],
|
|
47
40
|
outputs,
|
|
48
41
|
inputs,
|
|
@@ -65,4 +58,4 @@ class Nx extends projen_1.Component {
|
|
|
65
58
|
}
|
|
66
59
|
}
|
|
67
60
|
exports.Nx = Nx;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9ueC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBeUQ7QUF1QnpELE1BQWEsRUFBRyxTQUFRLGtCQUFTO0lBQy9CLFlBQW1CLE9BQStCLEVBQUUsVUFBcUIsRUFBRTtRQUN6RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixNQUFNLGNBQWMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLG9DQUFvQyxDQUFDLENBQUM7UUFDbkYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sV0FBVyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztRQUM3RSxNQUFNLFdBQVcsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFM0MsTUFBTSxFQUNKLGNBQWMsRUFBRSxhQUFhLEdBQUc7WUFDOUI7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLE9BQU8sRUFBRSxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsV0FBVyxFQUFFLEdBQUcsV0FBVyxDQUFDO2FBQzdEO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsT0FBTyxFQUFFLGNBQWM7YUFDeEI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsVUFBVTtnQkFDbEIsT0FBTyxFQUFFLFdBQVc7YUFDckI7U0FDRixFQUNELFdBQVcsR0FBRyxNQUFNLEdBQ3JCLEdBQUcsT0FBTyxDQUFDO1FBRVosS0FBSztRQUNMLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxpQkFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7WUFDL0IsR0FBRyxFQUFFO2dCQUNILGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FDbkIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtvQkFDakUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ1QsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHOzRCQUNyQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxTQUFTLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDOzRCQUN2QixPQUFPOzRCQUNQLE1BQU07eUJBQ1AsQ0FBQztvQkFDSixDQUFDO29CQUNELE9BQU8sY0FBYyxDQUFDO2dCQUN4QixDQUFDLEVBQUUsRUFBK0IsQ0FBQztnQkFDckMsUUFBUSxFQUFFO29CQUNSLFdBQVc7aUJBQ1o7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhO1FBQ1gsS0FBSyxNQUFNLFVBQVUsSUFBSyxJQUFJLENBQUMsT0FBZSxDQUFDLFdBQXVDLEVBQUUsQ0FBQztZQUN2RixVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM1QyxXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBOURELGdCQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSnNvbkZpbGUsIGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIE54Q2FjaGVhYmxlVGFzayB7XG4gIG5hbWU6IHN0cmluZztcbiAgb3V0cHV0czogc3RyaW5nW107XG4gIGlucHV0cz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE54T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGljaCB0YXNrcyBhcmUgY2FjaGVhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGJ1aWxkLCBjb21waWxlLCB0ZXN0XG4gICAqL1xuICBjYWNoZWFibGVUYXNrcz86IE54Q2FjaGVhYmxlVGFza1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBicmFuY2hcbiAgICogQGRlZmF1bHQgXCJtYWluXCJcbiAgICovXG4gIGRlZmF1bHRCYXNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTnggZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvamVjdDogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCwgb3B0aW9uczogTnhPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IGNvbXBpbGVPdXRwdXRzID0gWyd7cHJvamVjdFJvb3R9L2xpYicsICd7cHJvamVjdFJvb3R9L3RzY29uZmlnLnRzYnVpbGRpbmZvJ107XG4gICAgY29uc3QgdGVzdElucHV0cyA9IFsnIXtwcm9qZWN0Um9vdH0vdGVzdC1yZXBvcnRzLyoqJ107XG4gICAgY29uc3QgdGVzdE91dHB1dHMgPSBbJ3twcm9qZWN0Um9vdH0vY292ZXJhZ2UnLCAne3Byb2plY3RSb290fS90ZXN0LXJlcG9ydHMnXTtcbiAgICBjb25zdCBwYWNrT3V0cHV0cyA9IFsne3Byb2plY3RSb290fS9kaXN0J107XG5cbiAgICBjb25zdCB7XG4gICAgICBjYWNoZWFibGVUYXNrczogY2FjaGFibGVUYXNrcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdidWlsZCcsXG4gICAgICAgICAgaW5wdXRzOiB0ZXN0SW5wdXRzLFxuICAgICAgICAgIG91dHB1dHM6IFsuLi5jb21waWxlT3V0cHV0cywgLi4udGVzdE91dHB1dHMsIC4uLnBhY2tPdXRwdXRzXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjb21waWxlJyxcbiAgICAgICAgICBvdXRwdXRzOiBjb21waWxlT3V0cHV0cyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgICAgICBpbnB1dHM6IHRlc3RJbnB1dHMsXG4gICAgICAgICAgb3V0cHV0czogdGVzdE91dHB1dHMsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZGVmYXVsdEJhc2UgPSAnbWFpbicsXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICAvLyBueFxuICAgIHByb2plY3QuYWRkRGV2RGVwcygnbngnKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLy5ueCcpO1xuICAgIHByb2plY3QuYWRkUGFja2FnZUlnbm9yZSgnLy5ueCcpO1xuICAgIG5ldyBKc29uRmlsZShwcm9qZWN0LCAnbnguanNvbicsIHtcbiAgICAgIG9iajoge1xuICAgICAgICB0YXJnZXREZWZhdWx0czogKCkgPT5cbiAgICAgICAgICBjYWNoYWJsZVRhc2tzLnJlZHVjZSgodGFyZ2V0RGVmYXVsdHMsIHsgbmFtZSwgb3V0cHV0cywgaW5wdXRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhc2sgPSBwcm9qZWN0LnRhc2tzLnRyeUZpbmQobmFtZSk7XG4gICAgICAgICAgICBpZiAodGFzaykge1xuICAgICAgICAgICAgICB0YXJnZXREZWZhdWx0c1tuYW1lXSA9IHtcbiAgICAgICAgICAgICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXBlbmRzT246IFtgXiR7bmFtZX1gXSxcbiAgICAgICAgICAgICAgICBvdXRwdXRzLFxuICAgICAgICAgICAgICAgIGlucHV0cyxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0YXJnZXREZWZhdWx0cztcbiAgICAgICAgICB9LCB7fSBhcyB7IFt0YXJnZXQ6IHN0cmluZ106IGFueSB9KSxcbiAgICAgICAgYWZmZWN0ZWQ6IHtcbiAgICAgICAgICBkZWZhdWx0QmFzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3VicHJvamVjdCBvZiAodGhpcy5wcm9qZWN0IGFzIGFueSkuc3VicHJvamVjdHMgYXMgamF2YXNjcmlwdC5Ob2RlUHJvamVjdFtdKSB7XG4gICAgICBzdWJwcm9qZWN0LnRhc2tzLmFkZFRhc2soJ254JykuZXhlYygnbnggcnVuJywge1xuICAgICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -107,5 +107,5 @@ class WorkspaceRelease extends projen_1.Component {
|
|
|
107
107
|
}
|
|
108
108
|
exports.WorkspaceRelease = WorkspaceRelease;
|
|
109
109
|
_a = JSII_RTTI_SYMBOL_1;
|
|
110
|
-
WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.2.
|
|
110
|
+
WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.2.9" };
|
|
111
111
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsbUNBQW9HO0FBQ3BHLGlFQUErRTtBQW9CL0UsTUFBYSxnQkFBaUIsU0FBUSxrQkFBUztJQUs3QyxZQUFtQixPQUE0QixFQUFFLE9BQWdDO1FBQy9FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBRXpCLCtEQUErRDtRQUMvRCxtRUFBbUU7UUFDbkUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDekMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLDRDQUE0QztnQkFDOUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtnQkFDOUMsZ0JBQWdCLEVBQUU7b0JBQ2hCLElBQUksRUFBRSxHQUFHLEVBQUUsMEZBQTBGO2lCQUN0RztnQkFDRCxpREFBaUQ7Z0JBQ2pELG9EQUFvRDtnQkFDcEQsdURBQXVEO2dCQUN2RCxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHO2dCQUU3QixrRUFBa0U7Z0JBQ2xFLHlFQUF5RTtnQkFDekUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixJQUFJLDBCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7Z0JBRWxGLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7YUFDL0MsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVB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Q3RCLE9BQU8sQ0FDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsV0FBVyxFQUFFLGdEQUFnRDthQUM5RCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O0FBckhILDRDQXNIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IENvbXBvbmVudCwgUmVsZWFzYWJsZUNvbW1pdHMsIFRhc2ssIFZlcnNpb24sIFZlcnNpb25CcmFuY2hPcHRpb25zLCByZWxlYXNlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEdhdGhlclZlcnNpb25zLCBHYXRoZXJWZXJzaW9uc09wdGlvbnMgfSBmcm9tICcuL2dhdGhlci12ZXJzaW9ucy50YXNrJztcbmltcG9ydCB7IFR5cGVTY3JpcHRXb3Jrc3BhY2UgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VSZWxlYXNlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHByaXZhdGU6IGJvb2xlYW47XG5cbiAgLyoqIEBkZWZhdWx0ICdsdHMvKicgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOb2RlVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGlzaFRvTnBtPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbnBtRGlzdFRhZz86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVsZWFzYWJsZUNvbW1pdHM/OiBSZWxlYXNhYmxlQ29tbWl0cztcbiAgcmVhZG9ubHkgbmV4dFZlcnNpb25Db21tYW5kPzogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uQnJhbmNoT3B0aW9uczogVmVyc2lvbkJyYW5jaE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEZvciBydW50aW1lIGFuZCBwZWVyIGRlcGVuZGVuY2llcywgdGhlIHR5cGUgb2YgZGVwZW5kZW5jeSB3ZSB0YWtlIG9uIGVhY2ggcGFja2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb1J1bnRpbWVEZXBlbmRlbmNpZXM/OiBHYXRoZXJWZXJzaW9uc09wdGlvbnNbJ3JlcG9SdW50aW1lRGVwZW5kZW5jaWVzJ107XG59XG5cbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VSZWxlYXNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IHB1Ymxpc2hlcj86IHJlbGVhc2UuUHVibGlzaGVyO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbj86IFZlcnNpb247XG4gIHB1YmxpYyByZWFkb25seSB3b3Jrc3BhY2U6IFR5cGVTY3JpcHRXb3Jrc3BhY2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb2plY3Q6IFR5cGVTY3JpcHRXb3Jrc3BhY2UsIG9wdGlvbnM6IFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG4gICAgdGhpcy53b3Jrc3BhY2UgPSBwcm9qZWN0O1xuXG4gICAgLy8gVGhlIHJvb3QgcGFja2FnZSBpcyByZWxlYXNlLWF3YXJlLiBFaXRoZXIgd2UgY3JlYXRlIGEgcHJvcGVyXG4gICAgLy8gJ3lhcm4gcmVsZWFzZScgdGFzayBoZXJlLCBvciB3ZSBjcmVhdGUgYSBmYWtlIG9uZSB0aGF0IGp1c3QgZG9lc1xuICAgIC8vIGEgJ2J1aWxkJyAod2lsbCBiZSBydW4gaW4gZGVwZW5kZW5jeSBvcmRlciBieSB0aGUgcGFyZW50IHJlbGVhc2UgdGFzaykuXG4gICAgaWYgKCFvcHRpb25zLnByaXZhdGUpIHtcbiAgICAgIHRoaXMudmVyc2lvbiA9IG5ldyBWZXJzaW9uKHRoaXMud29ya3NwYWNlLCB7XG4gICAgICAgIHZlcnNpb25JbnB1dEZpbGU6ICdwYWNrYWdlLmpzb24nLCAvLyB0aGlzIGlzIHdoZXJlIFwidmVyc2lvblwiIGlzIHNldCBhZnRlciBidW1wXG4gICAgICAgIGFydGlmYWN0c0RpcmVjdG9yeTogcHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICAgIHZlcnNpb25yY09wdGlvbnM6IHtcbiAgICAgICAgICBwYXRoOiAnLicsIC8vIEluIGEgbW9ub3JlcG8sIHdlIHdhbnQgc3RhbmRhcmQtdmVyc2lvbiB0byBvbmx5IGNvbnNpZGVyIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIHdvcmtzcGFjZVxuICAgICAgICB9LFxuICAgICAgICAvLyBUaGlzIG1peGVzIHRoZSBwYWNrYWdlIG5hbWUgaW50byB0aGUgdGFnIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIGdpdmUgcGFja2FnZXMgaW5kaXZpZHVhbCB2ZXJzaW9ucy5cbiAgICAgICAgLy8gVGFncyBlbmQgdXAgbG9va2luZyBsaWtlIHRoaXM6IEBzY29wZS9wYWNrYWdlQHYxLjIuM1xuICAgICAgICB0YWdQcmVmaXg6IGAke3Byb2plY3QubmFtZX1AYCxcblxuICAgICAgICAvLyBJbiBhIG1vbm9yZXBvLCBvbmx5IGNvbnNpZGVyIGNoYW5nZXMgcmVsZXZhbnQgdG8gdGhlIHN1YnByb2plY3RcbiAgICAgICAgLy8gUGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgc3VicHJvamVjdCBvdXRkaXIsIHNvICcuJyBpcyB3aGF0IHdlIHdhbnQgaGVyZVxuICAgICAgICByZWxlYXNhYmxlQ29tbWl0czogb3B0aW9ucy5yZWxlYXNhYmxlQ29tbWl0cyA/PyBSZWxlYXNhYmxlQ29tbWl0cy5ldmVyeUNvbW1pdCgnLicpLFxuXG4gICAgICAgIG5leHRWZXJzaW9uQ29tbWFuZDogb3B0aW9ucy5uZXh0VmVyc2lvbkNvbW1hbmQsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wdWJsaXNoZXIgPSBuZXcgcmVsZWFzZS5QdWJsaXNoZXIodGhpcy53b3Jrc3BhY2UsIHtcbiAgICAgICAgYXJ0aWZhY3ROYW1lOiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgY29uZGl0aW9uOiAnbmVlZHMucmVsZWFzZS5vdXRwdXRzLmxhdGVzdF9jb21taXQgPT0gZ2l0aHViLnNoYScsXG4gICAgICAgIGJ1aWxkSm9iSWQ6ICdyZWxlYXNlJyxcbiAgICAgICAgd29ya2Zsb3dOb2RlVmVyc2lvbjogb3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uID8/ICdsdHMvKicsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wdWJsaXNoZXIucHVibGlzaFRvR2l0SHViUmVsZWFzZXMoe1xuICAgICAgICBjaGFuZ2Vsb2dGaWxlOiBwYXRoLnBvc2l4LmpvaW4ocHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbi5jaGFuZ2Vsb2dGaWxlTmFtZSksXG4gICAgICAgIHZlcnNpb25GaWxlOiBwYXRoLnBvc2l4LmpvaW4ocHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbi52ZXJzaW9uRmlsZU5hbWUpLFxuICAgICAgICByZWxlYXNlVGFnRmlsZTogcGF0aC5wb3NpeC5qb2luKHByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5LCB0aGlzLnZlcnNpb24ucmVsZWFzZVRhZ0ZpbGVOYW1lKSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBHaXRIdWIgUmVsZWFzZXMgY29tZXMgZm9yIGZyZWUgd2l0aCBhIGBSZWxlYXNlYCBjb21wb25lbnQsIE5QTSBtdXN0IGJlIGFkZGVkIGV4cGxpY2l0bHlcbiAgICAgIGlmIChvcHRpb25zLnB1Ymxpc2hUb05wbSA/PyB0cnVlKSB7XG4gICAgICAgIHRoaXMucHVibGlzaGVyLnB1Ymxpc2hUb05wbSh7XG4gICAgICAgICAgcmVnaXN0cnk6IHByb2plY3QucGFja2FnZS5ucG1SZWdpc3RyeSxcbiAgICAgICAgICBucG1Ub2tlblNlY3JldDogcHJvamVjdC5wYWNrYWdlLm5wbVRva2VuU2VjcmV0LFxuICAgICAgICAgIG5wbVByb3ZlbmFuY2U6IHByb2plY3QucGFja2FnZS5ucG1Qcm92ZW5hbmNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIHRhc2tzIHNldHMgYWxsIGxvY2FsIGRlcGVuZGVuY2llcyB0byB0aGVpciBjdXJyZW50IHZlcnNpb25cbiAgICAvLyBJbiB0aGUgbW9ub3JlcG8gd2UgY2FsbCB0aGlzIHRhc2sgaW4gdG9wb2xvZ2ljYWwgb3JkZXIuXG4gICAgLy8gVGhlcmVmb3IgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IGFueSBsb2NhbCBwYWNrYWdlcyBhIHBhY2thZ2UgZGVwZW5kcyBvbixcbiAgICAvLyBhbHJlYWR5IGhhdmUgYmVlbiBidW1wZWQuXG4gICAgY29uc3QgZ2F0aGVyVmVyc2lvbnMgPSBwcm9qZWN0LmFkZFRhc2soJ2dhdGhlci12ZXJzaW9ucycsIHtcbiAgICAgIHN0ZXBzOiBbbmV3IEdhdGhlclZlcnNpb25zKHByb2plY3QsIHtcbiAgICAgICAgcmVwb1J1bnRpbWVEZXBlbmRlbmNpZXM6IG9wdGlvbnMucmVwb1J1bnRpbWVEZXBlbmRlbmNpZXMgPz8ge30sXG4gICAgICB9KV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBidW1wVGFzayA9IHRoaXMub2J0YWluQnVtcFRhc2soKTtcbiAgICBidW1wVGFzay5wcmVwZW5kU3Bhd24oZ2F0aGVyVmVyc2lvbnMpO1xuICAgIC8vIFRoZSBidW1wVGFzayBuZWVkcyB0byBiZSBleGVjdXRlZCB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGNvbnRyb2xcbiAgICAvLyB2ZXJzaW9uIGluZm9ybWF0aW9uLiBUaGVzZSBhcmUgbm90IHBhcnQgb2YgdGhlIHVwc3RyZWFtIHRhc2sgaXRzZWxmIHlldCxcbiAgICAvLyBzaW5jZSB0aGV5IGFyZSBwYXJ0IG9mIHRoZSBpbnZvY2F0aW9uIHRoZXJlLiBXZSBhbHNvIG5lZWQgdG8gbWFrZSB0aGVtIHBhcnRcbiAgICAvLyBvZiB0aGUgaW52b2NhdGlvbiBoZXJlLlxuICAgIGlmICh0aGlzLnZlcnNpb24pIHtcbiAgICAgIGlmIChvcHRpb25zLnZlcnNpb25CcmFuY2hPcHRpb25zPy50YWdQcmVmaXgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEbyBub3Qgc2V0IHZlcnNpb25CcmFuY2hPcHRpb25zLnRhZ1ByZWZpeDsgaXQgaXMgY29uZmlndXJlZCBhbm90aGVyIHdheScpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy52ZXJzaW9uLmVudkZvckJyYW5jaCh7XG4gICAgICAgIC4uLm9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnMsXG4gICAgICB9KSkpIHtcbiAgICAgICAgYnVtcFRhc2suZW52KGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gQWZ0ZXIgd2UgaGF2ZSB1bmJ1bXBlZCBwYWNrYWdlIHZlcnNpb25zIGJhY2sgdG8gMC4wLjAsXG4gICAgLy8gd2UgY2FuIHJ1biB0aGUgZ2F0aGVyLXZlcnNpb25zIHRhc2sgYWdhaW4gd2hpY2ggd2lsbCBub3cgcmVwbGFjZSB0aGUgdG8tYmUtcmVsZWFzZSB2ZXJzaW9ucyB3aXRoIDAuMC4wXG4gICAgdGhpcy5vYnRhaW5VbmJ1bXBUYXNrKCkuc3Bhd24oZ2F0aGVyVmVyc2lvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYnVtcCB2ZXJzaW9uIHRhc2tcbiAgICpcbiAgICogSWYgdGhpcyBpcyBhIHByaXZhdGUgcGFja2FnZSwgaXQgd29uJ3QgaGF2ZSBhIGJ1bXAgdGFzayB5ZXQuXG4gICAqIFNvIGluc3RlYWQgd2UgY3JlYXRlIGFuIGVtcHR5IG9uZSB0aGF0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbW9ub3JlcG8gcm9vdFxuICAgKiBhbmQgc2VydmUgYXMgYSBjb250YWluZXIgZm9yIG90aGVyIHN0ZXBzIHRoYXQgbmVlZCB0byBvY2N1ciBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlXG4gICAqL1xuICBwcml2YXRlIG9idGFpbkJ1bXBUYXNrKCk6IFRhc2sge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndvcmtzcGFjZS50YXNrcy50cnlGaW5kKCdidW1wJykgPz9cbiAgICAgIHRoaXMud29ya3NwYWNlLmFkZFRhc2soJ2J1bXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQnVtcHMgdmVyc2lvbnMgb2YgbG9jYWwgZGVwZW5kZW5jaWVzJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVuYnVtcCB2ZXJzaW9uIHRhc2tcbiAgICouXG4gICAqIElmIHRoaXMgaXMgYSBwcml2YXRlIHBhY2thZ2UsIGl0IHdvbid0IGhhdmUgYSBidW1wIHRhc2sgeWV0XG4gICAqIFNvIGluc3RlYWQgd2UgY3JlYXRlIGFuIGVtcHR5IG9uZSB0aGF0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbW9ub3JlcG8gcm9vdFxuICAgKiBhbmQgc2VydmUgYXMgYSBjb250YWluZXIgZm9yIG90aGVyIHN0ZXBzIHRoYXQgbmVlZCB0byBvY2N1ciBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlXG4gICAqL1xuICBwcml2YXRlIG9idGFpblVuYnVtcFRhc2soKTogVGFzayB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMud29ya3NwYWNlLnRhc2tzLnRyeUZpbmQoJ3VuYnVtcCcpID8/XG4gICAgICB0aGlzLndvcmtzcGFjZS5hZGRUYXNrKCd1bmJ1bXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmVzZXRzIHZlcnNpb25zIG9mIGxvY2FsIGRlcGVuZGVuY2llcyB0byAwLjAuMCcsXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -209,7 +209,7 @@ class TypeScriptWorkspace extends projen_1.typescript.TypeScriptProject {
|
|
|
209
209
|
}
|
|
210
210
|
exports.TypeScriptWorkspace = TypeScriptWorkspace;
|
|
211
211
|
_a = JSII_RTTI_SYMBOL_1;
|
|
212
|
-
TypeScriptWorkspace[_a] = { fqn: "cdklabs-projen-project-types.yarn.TypeScriptWorkspace", version: "0.2.
|
|
212
|
+
TypeScriptWorkspace[_a] = { fqn: "cdklabs-projen-project-types.yarn.TypeScriptWorkspace", version: "0.2.9" };
|
|
213
213
|
function packageNames(xs) {
|
|
214
214
|
if (!xs) {
|
|
215
215
|
return undefined;
|