@codedrifters/configulator 0.0.84 → 0.0.86

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.
@@ -13,6 +13,9 @@ import { TurboRepoOptions } from "../turbo/turbo-repo";
13
13
  * linting, testing, and other project-wide settings.
14
14
  *
15
15
  ******************************************************************************/
16
+ export interface IDependencyResolver {
17
+ resolveDepsAndWritePackageJson(): boolean;
18
+ }
16
19
  /**
17
20
  * Configuration options for the monorepo.
18
21
  */
@@ -78,5 +81,20 @@ export declare class MonorepoProject extends TypeScriptAppProject {
78
81
  * official CodeDrifters configs.
79
82
  */
80
83
  readonly upgradeConfigulatorTask?: UpgradeDependencies;
84
+ /**
85
+ * List of functions to call after dependencies have been installed.
86
+ */
87
+ private postInstallDependencies;
81
88
  constructor(userOptions: MonorepoProjectOptions);
89
+ /**
90
+ * Allows a sub project to request installation of dependency at the Monorepo root
91
+ * They must provide a function that is executed after dependencies have been installed
92
+ * If this function returns true, the install command is run for a second time after all sub project requests have run.
93
+ * This is used to resolve dependency versions from `*` to a concrete version constraint.
94
+ */
95
+ requestInstallDependencies(resolver: IDependencyResolver): void;
96
+ /**
97
+ * Hooks into the install dependencies cycle
98
+ */
99
+ postSynthesize(): void;
82
100
  }
@@ -107,9 +107,15 @@ class MonorepoProject extends typescript_1.TypeScriptAppProject {
107
107
  */
108
108
  release: false,
109
109
  /**
110
- * Don't upgrade dependencies automatically.
110
+ * Uppgrade dependencies automatically unless otherwise instructed.
111
111
  */
112
- depsUpgrade: false,
112
+ depsUpgrade: true,
113
+ depsUpgradeOptions: {
114
+ workflowOptions: {
115
+ schedule: javascript_1.UpgradeDependenciesSchedule.WEEKLY,
116
+ },
117
+ cooldown: 1,
118
+ },
113
119
  /**
114
120
  * Disable tsconfig.dev.json in the root since we aren't going to be
115
121
  * developing any code here. It's just a task runner and configuration
@@ -136,7 +142,10 @@ class MonorepoProject extends typescript_1.TypeScriptAppProject {
136
142
  /**
137
143
  * Include self as a devDep
138
144
  */
139
- devDeps: ["@codedrifters/configulator"],
145
+ devDeps: ["@codedrifters/configulator", "@codedrifters/utils"],
146
+ /**
147
+ * PNPM options for the monorepo.
148
+ */
140
149
  pnpmOptions: {
141
150
  pnpmWorkspaceOptions: {
142
151
  defaultCatalog: {
@@ -192,6 +201,10 @@ class MonorepoProject extends typescript_1.TypeScriptAppProject {
192
201
  **************************************************************************/
193
202
  const options = (0, ts_deepmerge_1.merge)(defaultOptions, userOptions, requiredOptions);
194
203
  super({ ...options });
204
+ /**
205
+ * List of functions to call after dependencies have been installed.
206
+ */
207
+ this.postInstallDependencies = new Array();
195
208
  /***************************************************************************
196
209
  *
197
210
  * PUBLIC PROPS
@@ -264,14 +277,45 @@ class MonorepoProject extends typescript_1.TypeScriptAppProject {
264
277
  */
265
278
  if (options.upgradeConfigulatorTask !== false) {
266
279
  this.upgradeConfigulatorTask = new javascript_1.UpgradeDependencies(this, (0, ts_deepmerge_1.merge)({
267
- include: ["@codedrifters/configulator"],
280
+ include: ["@codedrifters/configulator", "@codedrifters/utils"],
268
281
  taskName: `upgrade-codedrifters-configulator`,
269
282
  workflowOptions: {
270
283
  schedule: javascript_1.UpgradeDependenciesSchedule.DAILY,
271
284
  },
272
285
  }, options.upgradeConfigulatorTaskOptions ?? {}));
273
286
  }
287
+ /**
288
+ * Update all packages after the root of the monorepo's updated.
289
+ * Run the default task after the upgrade to ensure all packages are
290
+ * updated. In particular make sure the pnpm-workspace file was not
291
+ * tampered with during the upgrade.
292
+ */
293
+ this.tasks.tryFind("post-upgrade")?.exec("pnpm upgrade -r");
294
+ this.tasks.tryFind("post-upgrade")?.spawn(this.defaultTask);
295
+ }
296
+ /**
297
+ * Allows a sub project to request installation of dependency at the Monorepo root
298
+ * They must provide a function that is executed after dependencies have been installed
299
+ * If this function returns true, the install command is run for a second time after all sub project requests have run.
300
+ * This is used to resolve dependency versions from `*` to a concrete version constraint.
301
+ */
302
+ requestInstallDependencies(resolver) {
303
+ this.postInstallDependencies.push(resolver.resolveDepsAndWritePackageJson);
304
+ }
305
+ /**
306
+ * Hooks into the install dependencies cycle
307
+ */
308
+ postSynthesize() {
309
+ if (this.postInstallDependencies.length) {
310
+ const nodePkg = this.package;
311
+ nodePkg.installDependencies();
312
+ const completedRequests = this.postInstallDependencies.map((request) => request());
313
+ if (completedRequests.some(Boolean)) {
314
+ nodePkg.installDependencies();
315
+ }
316
+ this.postInstallDependencies = [];
317
+ }
274
318
  }
275
319
  }
276
320
  exports.MonorepoProject = MonorepoProject;
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9tb25vcmVwby1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUsrQjtBQUMvQixzREFHK0I7QUFDL0IsK0NBQXFDO0FBQ3JDLDJEQUE2RTtBQUM3RSxvREFBa0U7QUFDbEUsb0RBSTZCO0FBQzdCLDBDQUFzQztBQUN0Qyw2Q0FBZ0Q7QUFpRmhELE1BQWEsZUFBZ0IsU0FBUSxpQ0FBb0I7SUFhdkQsWUFBWSxXQUFtQztRQUM3Qzs7Ozs7O29GQU00RTtRQUU1RSxNQUFNLG9CQUFvQixHQUFrQyxXQUFXO2FBQ3BFLFlBQVksRUFBRSxrQkFBa0I7WUFDakMsQ0FBQyxDQUFDLHNCQUFTLENBQUMsb0JBQW9CLENBQzVCLFdBQVcsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQzVDO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQOzs7Ozs7b0ZBTTRFO1FBRTVFLE1BQU0sY0FBYyxHQUdoQjtZQUNGOztlQUVHO1lBQ0gsVUFBVSxFQUFFLElBQUk7WUFFaEI7O2VBRUc7WUFDSCxhQUFhLEVBQUUsVUFBVTtZQUV6Qjs7ZUFFRztZQUNILFFBQVEsRUFBRSxJQUFJO1lBRWQ7O2VBRUc7WUFDSCxRQUFRLEVBQUUsS0FBSztZQUVmOzs7ZUFHRztZQUNILGFBQWEsRUFBRTtnQkFDYixPQUFPLEVBQUUsS0FBSztnQkFFZDs7OzttQkFJRztnQkFDSCxzQkFBc0IsRUFBRTtvQkFDdEIsb0JBQW9CLEVBQUU7d0JBQ3BCOzs7Ozs7Ozs7Ozs7OzsyQkFjRzt3QkFDSCxLQUFLLEVBQUU7NEJBQ0wsTUFBTTs0QkFDTixLQUFLOzRCQUNMLE1BQU07NEJBQ04sT0FBTzs0QkFDUCxVQUFVOzRCQUNWLE1BQU07NEJBQ04sTUFBTTs0QkFDTixPQUFPOzRCQUNQLElBQUk7NEJBQ0osT0FBTzs0QkFDUCxRQUFRO3lCQUNUO3FCQUNGO2lCQUNG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O0lBQ0gsQ0FBQztDQUNGO0FBOVVELDBDQThVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWxkV29ya2Zsb3dPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvYnVpbGRcIjtcbmltcG9ydCB7XG4gIE5vZGVQYWNrYWdlTWFuYWdlcixcbiAgVXBncmFkZURlcGVuZGVuY2llcyxcbiAgVXBncmFkZURlcGVuZGVuY2llc09wdGlvbnMsXG4gIFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZSxcbn0gZnJvbSBcInByb2plbi9saWIvamF2YXNjcmlwdFwiO1xuaW1wb3J0IHtcbiAgVHlwZVNjcmlwdEFwcFByb2plY3QsXG4gIFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyxcbn0gZnJvbSBcInByb2plbi9saWIvdHlwZXNjcmlwdFwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwidHMtZGVlcG1lcmdlXCI7XG5pbXBvcnQgeyBQbnBtV29ya3NwYWNlLCBQbnBtV29ya3NwYWNlT3B0aW9ucyB9IGZyb20gXCIuLi9wbnBtL3BucG0td29ya3NwYWNlXCI7XG5pbXBvcnQgeyBSZXNldFRhc2ssIFJlc2V0VGFza09wdGlvbnMgfSBmcm9tIFwiLi4vdGFza3MvcmVzZXQtdGFza1wiO1xuaW1wb3J0IHtcbiAgUk9PVF9DSV9UQVNLX05BTUUsXG4gIFR1cmJvUmVwbyxcbiAgVHVyYm9SZXBvT3B0aW9ucyxcbn0gZnJvbSBcIi4uL3R1cmJvL3R1cmJvLXJlcG9cIjtcbmltcG9ydCB7IFZFUlNJT04gfSBmcm9tIFwiLi4vdmVyc2lvbnNcIjtcbmltcG9ydCB7IFZTQ29kZUNvbmZpZyB9IGZyb20gXCIuLi92c2NvZGUvdnNjb2RlXCI7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKlxuICogTW9ub3JlcG8gUm9vdCBQcm9qZWN0XG4gKlxuICogVGhpcyBwcm9qZWN0IHNob3VsZCBiZSB1c2VkIGFzIHRoZSBiYXNlIHByb2plY3QgZm9yIG90aGVyIHByb2plY3RzIGluIGFcbiAqIG1vbm9yZXBvLiBUaGUgTW9ub3JlcG8gcm9vdCBwcm9qZWN0IGdlbmVyYWxseSB3b24ndCBjb250YWluIGFueSBjb2RlLCBidXQgaXRcbiAqIHdpbGwgY29udGFpbiBjb25maWd1cmF0aW9uIGZvciB0aGUgbW9ub3JlcG8sIHN1Y2ggYXMgcGFja2FnZSBtYW5hZ2VtZW50LFxuICogbGludGluZywgdGVzdGluZywgYW5kIG90aGVyIHByb2plY3Qtd2lkZSBzZXR0aW5ncy5cbiAqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1vbm9yZXBvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBPbWl0PFxuICBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsXG4gIFwiZGVmYXVsdFJlbGVhc2VCcmFuY2hcIlxuPiB7XG4gIC8qKlxuICAgKiBUdXJuIG9uIFR1cmJvcmVwbyBzdXBwb3J0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICB0dXJibz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnNhbCBvcHRpb25zIGZvciB0dXJib3JlcG8gY29uZmlnXG4gICAqL1xuICB0dXJib09wdGlvbnM/OiBUdXJib1JlcG9PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIHJlc2V0IHRhc2sgdGhhdCBkZWxldGVzIGFsbCBidWlsZCBhcnRpZmFjdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlc2V0VGFzaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHRoZSByZXNldCB0YXNrLlxuICAgKi9cbiAgcmVzZXRUYXNrT3B0aW9ucz86IFJlc2V0VGFza09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFBOUE0gb3B0aW9ucyBmb3IgdGhlIG1vbm9yZXBvLlxuICAgKi9cbiAgcG5wbU9wdGlvbnM/OiB7XG4gICAgLyoqXG4gICAgICogVGhlIHZlcnNpb24gb2YgUE5QTSB0byB1c2UgaW4gdGhlIG1vbm9yZXBvLlxuICAgICAqIEBkZWZhdWx0IFZFUlNJT04uUE5QTV9WRVJTSU9OXG4gICAgICogQHNlZSB7QGxpbmsgc3JjL3ZlcnNpb25zLnRzfVxuICAgICAqL1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBwbnBtIG9wdGlvbnMgZm9yIHRoZSBtb25vcmVwbyB3b3Jrc3BhY2UgZmlsZS5cbiAgICAgKi9cbiAgICBwbnBtV29ya3NwYWNlT3B0aW9ucz86IFBucG1Xb3Jrc3BhY2VPcHRpb25zO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUdXJuIG9uIHRoZSB1cGdyYWRlIGNvbmZpZ3VyYXRvciB0YXNrIHRoYXQgd2lsbCBhdHRlbXB0IHRvIHVwZ3JhZGUgdGhlXG4gICAqIEBjb2RlZHJpZnRlcnMvY29uZmlndWxhdG9yIHBhY2thZ2UgdmVyc2lvbiBuaWdodGx5LiBUaGlzIGtlZXBzIHRoZVxuICAgKiBwcm9qZWN0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0IG9mZmljaWFsIENvZGVEcmlmdGVycyBjb25maWdzLi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZUNvbmZpZ3VsYXRvclRhc2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgdXBncmFkZSBjb25maWd1cmF0b3IgdGFzay5cbiAgICpcbiAgICogQGRlZmF1bHQ6IGRhaWx5IHNjaGVkdWxlXG4gICAqL1xuICByZWFkb25seSB1cGdyYWRlQ29uZmlndWxhdG9yVGFza09wdGlvbnM/OiBVcGdyYWRlRGVwZW5kZW5jaWVzT3B0aW9ucztcbn1cblxuaW50ZXJmYWNlIEFwcGxpZWRPcHRpb25zXG4gIGV4dGVuZHMgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBNb25vcmVwb1Byb2plY3RPcHRpb25zIHt9XG5cbmV4cG9ydCBjbGFzcyBNb25vcmVwb1Byb2plY3QgZXh0ZW5kcyBUeXBlU2NyaXB0QXBwUHJvamVjdCB7XG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIFBOUE0gd2hpY2ggdGhlIHdob2xlIG1vbm9yZXBvIHNob3VsZCB1c2UuXG4gICAqL1xuICByZWFkb25seSBwbnBtVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0YXNrIHRoYXQgd2lsbCBhdHRlbXB0IHRvIHVwZ3JhZGUgdGhlIEBjb2RlZHJpZnRlcnMvY29uZmlndWxhdG9yXG4gICAqIHBhY2thZ2UgdmVyc2lvbiBuaWdodGx5LiBUaGlzIGtlZXBzIHRoZSBwcm9qZWN0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0XG4gICAqIG9mZmljaWFsIENvZGVEcmlmdGVycyBjb25maWdzLlxuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZUNvbmZpZ3VsYXRvclRhc2s/OiBVcGdyYWRlRGVwZW5kZW5jaWVzO1xuXG4gIGNvbnN0cnVjdG9yKHVzZXJPcHRpb25zOiBNb25vcmVwb1Byb2plY3RPcHRpb25zKSB7XG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQlVJTEQgV09SS0ZMT1cgT1BUSU9OU1xuICAgICAqXG4gICAgICogZGlzY292ZXIgc29tZSB0dXJibyBvcHRpb25zIGZvciBidWlsZCB3b3JrZmxvdywgaWYgbmVlZGVkLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgYnVpbGRXb3JrZmxvd09wdGlvbnM6IFBhcnRpYWw8QnVpbGRXb3JrZmxvd09wdGlvbnM+ID0gdXNlck9wdGlvbnNcbiAgICAgIC50dXJib09wdGlvbnM/LnJlbW90ZUNhY2hlT3B0aW9uc1xuICAgICAgPyBUdXJib1JlcG8uYnVpbGRXb3JrZmxvd09wdGlvbnMoXG4gICAgICAgICAgdXNlck9wdGlvbnMudHVyYm9PcHRpb25zLnJlbW90ZUNhY2hlT3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgOiB7fTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIERFRkFVTFQgT1BUSU9OU1xuICAgICAqXG4gICAgICogVGhlc2UgYXJlIHRoZSBkZWZhdWx0IG9wdGlvbnMgdW5sZXNzIHlvdSBvdmVycmlkZSB3aXRoIG9wdGlvbiBpbnB1dHMuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogT21pdDxcbiAgICAgIE1vbm9yZXBvUHJvamVjdE9wdGlvbnMsXG4gICAgICBcIm5hbWVcIiB8IFwiZGVmYXVsdFJlbGVhc2VCcmFuY2hcIlxuICAgID4gPSB7XG4gICAgICAvKipcbiAgICAgICAqIFVzZSB0eXBlc2NyaXB0IGJhc2VkIGNvbmZpZyBmaWxlLlxuICAgICAgICovXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFByb2plbiB2ZXJzaW9uIHNob3VsZCBiZSBwaW5uZWQgdG8gdGhlIGxvY2FsIHNwZWNpZmllZCB2ZXJzaW9uLlxuICAgICAgICovXG4gICAgICBwcm9qZW5WZXJzaW9uOiBcImNhdGFsb2c6XCIsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlIFByZXR0aWVyIGZvciBjb2RlIGZvcm1hdHRpbmcuXG4gICAgICAgKi9cbiAgICAgIHByZXR0aWVyOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIE5vdCBsaWNlbnNlZCBieSBkZWZhdWx0LlxuICAgICAgICovXG4gICAgICBsaWNlbnNlZDogZmFsc2UsXG5cbiAgICAgIC8qKlxuICAgICAgICogR2l0SHViIG9wdGlvbnMgZm9yIHRoZSBtb25vcmVwby5cbiAgICAgICAqIERvbid0IGVuYWJsZSBtZXJnaWZ5IGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHtcbiAgICAgICAgbWVyZ2lmeTogZmFsc2UsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbmZpZ3VyZSBwdWxsIHJlcXVlc3QgbGludGluZyB0byB2YWxpZGF0ZSBQUiB0aXRsZXMgZm9sbG93IENvbnZlbnRpb25hbCBDb21taXRzLlxuICAgICAgICAgKiBCeSBkZWZhdWx0LCBhbGwgY29udmVudGlvbmFsIGNvbW1pdCB0eXBlcyBhcmUgYWxsb3dlZCwgcHJvdmlkaW5nIGZsZXhpYmlsaXR5XG4gICAgICAgICAqIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgY2hhbmdlcyAoZmVhdHVyZXMsIGZpeGVzLCBkb2N1bWVudGF0aW9uLCByZWZhY3RvcmluZywgZXRjLikuXG4gICAgICAgICAqL1xuICAgICAgICBwdWxsUmVxdWVzdExpbnRPcHRpb25zOiB7XG4gICAgICAgICAgc2VtYW50aWNUaXRsZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQWxsb3dlZCBjb252ZW50aW9uYWwgY29tbWl0IHR5cGVzIGZvciBQUiB0aXRsZXMuXG4gICAgICAgICAgICAgKiBUaGlzIGluY2x1ZGVzIGFsbCBzdGFuZGFyZCB0eXBlcyBmcm9tIHRoZSBDb252ZW50aW9uYWwgQ29tbWl0cyBzcGVjaWZpY2F0aW9uOlxuICAgICAgICAgICAgICogLSBmZWF0OiBOZXcgZmVhdHVyZXNcbiAgICAgICAgICAgICAqIC0gZml4OiBCdWcgZml4ZXNcbiAgICAgICAgICAgICAqIC0gZG9jczogRG9jdW1lbnRhdGlvbiBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIHN0eWxlOiBDb2RlIHN0eWxlIGNoYW5nZXMgKGZvcm1hdHRpbmcsIGV0Yy4pXG4gICAgICAgICAgICAgKiAtIHJlZmFjdG9yOiBDb2RlIHJlZmFjdG9yaW5nXG4gICAgICAgICAgICAgKiAtIHBlcmY6IFBlcmZvcm1hbmNlIGltcHJvdmVtZW50c1xuICAgICAgICAgICAgICogLSB0ZXN0OiBUZXN0IGFkZGl0aW9ucyBvciBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIGJ1aWxkOiBCdWlsZCBzeXN0ZW0gY2hhbmdlc1xuICAgICAgICAgICAgICogLSBjaTogQ0kgY29uZmlndXJhdGlvbiBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIGNob3JlOiBNYWludGVuYW5jZSB0YXNrc1xuICAgICAgICAgICAgICogLSByZXZlcnQ6IFJldmVydCBjb21taXRzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVzOiBbXG4gICAgICAgICAgICAgIFwiZmVhdFwiLFxuICAgICAgICAgICAgICBcImZpeFwiLFxuICAgICAgICAgICAgICBcImRvY3NcIixcbiAgICAgICAgICAgICAgXCJzdHlsZVwiLFxuICAgICAgICAgICAgICBcInJlZmFjdG9yXCIsXG4gICAgICAgICAgICAgIFwicGVyZlwiLFxuICAgICAgICAgICAgICBcInRlc3RcIixcbiAgICAgICAgICAgICAgXCJidWlsZFwiLFxuICAgICAgICAgICAgICBcImNpXCIsXG4gICAgICAgICAgICAgIFwiY2hvcmVcIixcbiAgICAgICAgICAgICAgXCJyZXZlcnRcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogRGVmYXVsdCBQTlBNIHZlcnNpb24gdG8gdXNlIGluIHRoZSBtb25vcmVwby5cbiAgICAgICAqL1xuICAgICAgcG5wbVZlcnNpb246IFZFUlNJT04uUE5QTV9WRVJTSU9OLFxuXG4gICAgICAvKipcbiAgICAgICAqIFdlIGRvbid0IHdhbnQgc2FtcGxlIGNvZGUgZ2VuZXJhdGVkIGZvciB0aGUgcm9vdCBwcm9qZWN0LlxuICAgICAgICovXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBKZXN0IGlzIG5vdCByZXF1aXJlZCBpbiB0aGUgcm9vdCBwcm9qZWN0LlxuICAgICAgICovXG4gICAgICBqZXN0OiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEb24ndCByZWxlYXNlIHRoZSByb290IHByb2plY3QuXG4gICAgICAgKi9cbiAgICAgIHJlbGVhc2U6IGZhbHNlLFxuXG4gICAgICAvKipcbiAgICAgICAqIERvbid0IHVwZ3JhZGUgZGVwZW5kZW5jaWVzIGF1dG9tYXRpY2FsbHkuXG4gICAgICAgKi9cbiAgICAgIGRlcHNVcGdyYWRlOiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEaXNhYmxlIHRzY29uZmlnLmRldi5qc29uIGluIHRoZSByb290IHNpbmNlIHdlIGFyZW4ndCBnb2luZyB0byBiZVxuICAgICAgICogZGV2ZWxvcGluZyBhbnkgY29kZSBoZXJlLiBJdCdzIGp1c3QgYSB0YXNrIHJ1bm5lciBhbmQgY29uZmlndXJhdGlvblxuICAgICAgICogdG9vbCBmb3Igc3ViLXByb2plY3RzLlxuICAgICAgICovXG4gICAgICBkaXNhYmxlVHNjb25maWdEZXY6IHRydWUsXG5cbiAgICAgIC8qKlxuICAgICAgICogS2lsbCB0aGUgc3JjZGlyIGluIHRoZSByb290IHNpbmNlIHdlIGFyZW4ndCB1c2luZyBvbmUuXG4gICAgICAgKi9cbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIHJvb3REaXI6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgZXhjbHVkZTogW1wibm9kZV9tb2R1bGVzXCJdLFxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBFbmFibGUgdHVyYm9yZXBvIGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIHR1cmJvOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIEVuYWJsZSByZXNldCB0YXNrIGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIHJlc2V0VGFzazogdHJ1ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBJbmNsdWRlIHNlbGYgYXMgYSBkZXZEZXBcbiAgICAgICAqL1xuICAgICAgZGV2RGVwczogW1wiQGNvZGVkcmlmdGVycy9jb25maWd1bGF0b3JcIl0sXG5cbiAgICAgIHBucG1PcHRpb25zOiB7XG4gICAgICAgIHBucG1Xb3Jrc3BhY2VPcHRpb25zOiB7XG4gICAgICAgICAgZGVmYXVsdENhdGFsb2c6IHtcbiAgICAgICAgICAgIFtcImF3cy1jZGtcIl06IFZFUlNJT04uQVdTX0NES19DTElfVkVSU0lPTixcbiAgICAgICAgICAgIFtcImF3cy1jZGstbGliXCJdOiBWRVJTSU9OLkFXU19DREtfTElCX1ZFUlNJT04sXG4gICAgICAgICAgICBbXCJwcm9qZW5cIl06IFZFUlNJT04uUFJPSkVOX1ZFUlNJT04sXG4gICAgICAgICAgICBbXCJjb25zdHJ1Y3RzXCJdOiBWRVJTSU9OLkFXU19DT05TVFJVQ1RTX1ZFUlNJT04sXG4gICAgICAgICAgICBbXCJ0dXJib1wiXTogVkVSU0lPTi5UVVJCT19WRVJTSU9OLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBSRVFVSVJFRCBPUFRJT05TXG4gICAgICpcbiAgICAgKiBUaGVzZSBvcHRpb25zIGNhbm5vdCBiZSBjaGFuZ2VkIGJ5IHRoZSB1c2VyLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgcmVxdWlyZWRPcHRpb25zOiBPbWl0PFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucywgXCJuYW1lXCI+ID0ge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgaXQncyBzdGFuZGFyZCBwcmFjdGljZSBhbmQgYWxzbyB0byBzaW1wbGlmeVxuICAgICAgICogc29tZSB3b3JrZmxvdyBkZXNpZ24uXG4gICAgICAgKi9cbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiBcIm1haW5cIixcblxuICAgICAgLyoqXG4gICAgICAgKiBVc2UgUE5QTSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IChZYXJuKS4gTXVjaCBvZiB0aGUgZWNvc3lzdGVtIGRlcGVuZHNcbiAgICAgICAqIG9uIFBOUE0gYW5kIG1ha2luZyBtb25vcmVwb3MgUE5QTSBvbmx5IHNpbXBsaWZpZXMgbWFueSBjb25maWd1cmF0aW9ucy5cbiAgICAgICAqL1xuICAgICAgcGFja2FnZU1hbmFnZXI6IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNLFxuXG4gICAgICAvKipcbiAgICAgICAqIFNvbWUgYWRkaXRpb25hbCBwcmUtYnVpbGQgc3RlcHMgaWYgd2UncmUgdXNpbmcgdHVyYm8ncyByZW1vdGUgY2FjaGUuXG4gICAgICAgKi9cbiAgICAgIGJ1aWxkV29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgLi4uYnVpbGRXb3JrZmxvd09wdGlvbnM/LnBlcm1pc3Npb25zLFxuICAgICAgICAgIC4uLnVzZXJPcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wZXJtaXNzaW9ucyxcbiAgICAgICAgfSxcbiAgICAgICAgcHJlQnVpbGRTdGVwczogW1xuICAgICAgICAgIC4uLihidWlsZFdvcmtmbG93T3B0aW9ucz8ucHJlQnVpbGRTdGVwcyA/PyBbXSksXG4gICAgICAgICAgLi4uKHVzZXJPcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wcmVCdWlsZFN0ZXBzID8/IFtdKSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIENPTlNUUlVDVE9SXG4gICAgICpcbiAgICAgKiBDb21iaW5lcyBkZWZhdWx0IG9wdGlvbnMgd2l0aCB1c2VyIHByb3ZpZGVkIG9wdGlvbnMgYW5kIHJlcXVpcmVkIG9wdGlvbnMuXG4gICAgICogU3RvcmUgdGhlIG9wdGlvbnMgaW4gYSBjb25zdCBzbyB3ZSBjYW4gdXNlIHRoZW0gYWZ0ZXIgc3VwZXIoKSwgZmFydGhlclxuICAgICAqIGludG8gdGhlIGNvbnN0cnVjdG9yIGZvciBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24uXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBvcHRpb25zOiBBcHBsaWVkT3B0aW9ucyA9IG1lcmdlKFxuICAgICAgZGVmYXVsdE9wdGlvbnMsXG4gICAgICB1c2VyT3B0aW9ucyxcbiAgICAgIHJlcXVpcmVkT3B0aW9ucyxcbiAgICApO1xuXG4gICAgc3VwZXIoeyAuLi5vcHRpb25zIH0pO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogUFVCTElDIFBST1BTXG4gICAgICpcbiAgICAgKiBTb21lIHByb3BzIGFyZSBoaWRkZW4gYnkgUHJvamVuIGFuZCB3ZSBuZWVkIHRvIGV4cG9zZSB0aGVtIGZvciB0aGVcbiAgICAgKiBtb25vcmVwbyB0byB3b3JrIHByb3Blcmx5LiBUaGlzIGlzIHdoZXJlIHdlIHN0b3JlIHRoZW0uXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICB0aGlzLnBucG1WZXJzaW9uID0gb3B0aW9ucy5wbnBtVmVyc2lvbiE7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBDVVNUT00gQ09ORklHU1xuICAgICAqXG4gICAgICogV2UgYWRkIHNvbWUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9ucyB0byB0aGUgbW9ub3JlcG8gcm9vdCBwcm9qZWN0IGJlbG93XG4gICAgICogc3VjaCBhcyBUdXJib3JlcG8sIFZTIENvZGUgY29uZmlnLCBhbmQgdGhlIFBOUE0gd29ya3NwYWNlIGZpbGUuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICAvKipcbiAgICAgKiBBZGQgVlNDb2RlIGNvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgICBuZXcgVlNDb2RlQ29uZmlnKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogQWRkIHdvcmtzcGFjZSBkZWZpbml0aW9uIHRvIFBOUE0gcm9vdFxuICAgICAqL1xuICAgIG5ldyBQbnBtV29ya3NwYWNlKHRoaXMsIG9wdGlvbnMucG5wbU9wdGlvbnM/LnBucG1Xb3Jrc3BhY2VPcHRpb25zKTtcblxuICAgIC8qKlxuICAgICAqIFR1cm4gb24gdHVyYm9yZXBvIHN1cHBvcnQgaWYgcmVxdWVzdGVkLlxuICAgICAqL1xuICAgIGlmIChvcHRpb25zLnR1cmJvKSB7XG4gICAgICBuZXcgVHVyYm9SZXBvKHRoaXMsIG9wdGlvbnMudHVyYm9PcHRpb25zKTtcblxuICAgICAgdGhpcy5idWlsZFdvcmtmbG93Py5hZGRQb3N0QnVpbGRTdGVwcyh7XG4gICAgICAgIG5hbWU6IFwiQnVpbGQgU3ViIFByb2plY3RzXCIsXG4gICAgICAgIHJ1bjogYG5weCBwcm9qZW4gJHtST09UX0NJX1RBU0tfTkFNRX1gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHJlc2V0IHRhc2sgaWYgZW5hYmxlZC5cbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy5yZXNldFRhc2sgIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBkZWZhdWx0UmVzZXRUYXNrT3B0aW9uczogUmVzZXRUYXNrT3B0aW9ucyA9IHtcbiAgICAgICAgcGF0aHNUb1JlbW92ZTogW1wibm9kZV9tb2R1bGVzXCIsIFwiLnR1cmJvXCIsIFwiZGlzdFwiLCBcImxpYlwiXSxcbiAgICAgIH07XG4gICAgICBjb25zdCB1c2VyUmVzZXRUYXNrT3B0aW9ucyA9IG9wdGlvbnMucmVzZXRUYXNrT3B0aW9ucyA/PyB7fTtcbiAgICAgIGNvbnN0IHJlc2V0VGFza09wdGlvbnM6IFJlc2V0VGFza09wdGlvbnMgPSBtZXJnZShcbiAgICAgICAgZGVmYXVsdFJlc2V0VGFza09wdGlvbnMsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi51c2VyUmVzZXRUYXNrT3B0aW9ucyxcbiAgICAgICAgICBwYXRoc1RvUmVtb3ZlOiBbXG4gICAgICAgICAgICAuLi4oZGVmYXVsdFJlc2V0VGFza09wdGlvbnMucGF0aHNUb1JlbW92ZSA/PyBbXSksXG4gICAgICAgICAgICAuLi4odXNlclJlc2V0VGFza09wdGlvbnMucGF0aHNUb1JlbW92ZSA/PyBbXSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgICBuZXcgUmVzZXRUYXNrKHRoaXMsIHJlc2V0VGFza09wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgcGFja2FnZSBtYW5hZ2VyXG4gICAgICovXG4gICAgLy8gY29uc3QgcG5wbVZlcnNpb24gPSBvcHRpb25zLnBucG1WZXJzaW9uID8/IFZFUlNJT04uUE5QTV9WRVJTSU9OO1xuICAgIHRoaXMucGFja2FnZS5maWxlLmFkZE92ZXJyaWRlKFxuICAgICAgXCJwYWNrYWdlTWFuYWdlclwiLFxuICAgICAgYHBucG1AJHtvcHRpb25zLnBucG1WZXJzaW9ufWAsXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIEFkZCBzb21lIHNpbGx5IHRoaW5ncyB0byB0aGUgZ2l0aWdub3JlLlxuICAgICAqL1xuICAgIHRoaXMuZ2l0aWdub3JlPy5hZGRQYXR0ZXJucyhcIi5EU19TdG9yZVwiKTtcblxuICAgIC8qKlxuICAgICAqIFVzZSBjYXRhbG9nIHZlcnNpb24gZm9yIGNvbnN0cnVjdHMgdmVyc2lvblxuICAgICAqL1xuICAgIHRoaXMuYWRkRGV2RGVwcyhcImNvbnN0cnVjdHNAY2F0YWxvZzpcIik7XG5cbiAgICAvKipcbiAgICAgKiBBZGQgYSB0YXNrIG9uIHRoZSBtb25vcmVwbydzIHJvb3QgcHJvamVjdCB0aGF0IHdpbGwgYXR0ZW1wdCB0byB1cGdyYWRlXG4gICAgICogdGhlIEBjb2RlZHJpZnRlcnMvY29uZmlndWxhdG9yIHBhY2thZ2UgdmVyc2lvbiBuaWdodGx5LiBUaGlzIGtlZXBzIHRoZVxuICAgICAqIHByb2plY3QgdXAtdG8tZGF0ZSB3aXRoIHRoZSBsYXRlc3Qgb2ZmaWNpYWwgQ29kZURyaWZ0ZXJzIGNvbmZpZ3MuLlxuICAgICAqL1xuICAgIGlmIChvcHRpb25zLnVwZ3JhZGVDb25maWd1bGF0b3JUYXNrICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy51cGdyYWRlQ29uZmlndWxhdG9yVGFzayA9IG5ldyBVcGdyYWRlRGVwZW5kZW5jaWVzKFxuICAgICAgICB0aGlzLFxuICAgICAgICBtZXJnZShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpbmNsdWRlOiBbXCJAY29kZWRyaWZ0ZXJzL2NvbmZpZ3VsYXRvclwiXSxcbiAgICAgICAgICAgIHRhc2tOYW1lOiBgdXBncmFkZS1jb2RlZHJpZnRlcnMtY29uZmlndWxhdG9yYCxcbiAgICAgICAgICAgIHdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICAgICAgICBzY2hlZHVsZTogVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLkRBSUxZLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9wdGlvbnMudXBncmFkZUNvbmZpZ3VsYXRvclRhc2tPcHRpb25zID8/IHt9LFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9tb25vcmVwby1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUsrQjtBQUMvQixzREFHK0I7QUFDL0IsK0NBQXFDO0FBQ3JDLDJEQUE2RTtBQUM3RSxvREFBa0U7QUFDbEUsb0RBSTZCO0FBQzdCLDBDQUFzQztBQUN0Qyw2Q0FBZ0Q7QUFxRmhELE1BQWEsZUFBZ0IsU0FBUSxpQ0FBb0I7SUFrQnZELFlBQVksV0FBbUM7UUFDN0M7Ozs7OztvRkFNNEU7UUFFNUUsTUFBTSxvQkFBb0IsR0FBa0MsV0FBVzthQUNwRSxZQUFZLEVBQUUsa0JBQWtCO1lBQ2pDLENBQUMsQ0FBQyxzQkFBUyxDQUFDLG9CQUFvQixDQUM1QixXQUFXLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUM1QztZQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUDs7Ozs7O29GQU00RTtRQUU1RSxNQUFNLGNBQWMsR0FHaEI7WUFDRjs7ZUFFRztZQUNILFVBQVUsRUFBRSxJQUFJO1lBRWhCOztlQUVHO1lBQ0gsYUFBYSxFQUFFLFVBQVU7WUFFekI7O2VBRUc7WUFDSCxRQUFRLEVBQUUsSUFBSTtZQUVkOztlQUVHO1lBQ0gsUUFBUSxFQUFFLEtBQUs7WUFFZjs7O2VBR0c7WUFDSCxhQUFhLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFLEtBQUs7Z0JBRWQ7Ozs7bUJBSUc7Z0JBQ0gsc0JBQXNCLEVBQUU7b0JBQ3RCLG9CQUFvQixFQUFFO3dCQUNwQjs7Ozs7Ozs7Ozs7Ozs7MkJBY0c7d0JBQ0gsS0FBSyxFQUFFOzRCQUNMLE1BQU07NEJBQ04sS0FBSzs0QkFDTCxNQUFNOzRCQUNOLE9BQU87NEJBQ1AsVUFBVTs0QkFDVixNQUFNOzRCQUNOLE1BQU07NEJBQ04sT0FBTzs0QkFDUCxJQUFJOzRCQUNKLE9BQU87NEJBQ1AsUUFBUTt5QkFDVDtxQkFDRjtpQkFD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MENBa1lDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRXb3JrZmxvd09wdGlvbnMgfSBmcm9tIFwicHJvamVuL2xpYi9idWlsZFwiO1xuaW1wb3J0IHtcbiAgTm9kZVBhY2thZ2VNYW5hZ2VyLFxuICBVcGdyYWRlRGVwZW5kZW5jaWVzLFxuICBVcGdyYWRlRGVwZW5kZW5jaWVzT3B0aW9ucyxcbiAgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLFxufSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQge1xuICBUeXBlU2NyaXB0QXBwUHJvamVjdCxcbiAgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLFxufSBmcm9tIFwicHJvamVuL2xpYi90eXBlc2NyaXB0XCI7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gXCJ0cy1kZWVwbWVyZ2VcIjtcbmltcG9ydCB7IFBucG1Xb3Jrc3BhY2UsIFBucG1Xb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSBcIi4uL3BucG0vcG5wbS13b3Jrc3BhY2VcIjtcbmltcG9ydCB7IFJlc2V0VGFzaywgUmVzZXRUYXNrT3B0aW9ucyB9IGZyb20gXCIuLi90YXNrcy9yZXNldC10YXNrXCI7XG5pbXBvcnQge1xuICBST09UX0NJX1RBU0tfTkFNRSxcbiAgVHVyYm9SZXBvLFxuICBUdXJib1JlcG9PcHRpb25zLFxufSBmcm9tIFwiLi4vdHVyYm8vdHVyYm8tcmVwb1wiO1xuaW1wb3J0IHsgVkVSU0lPTiB9IGZyb20gXCIuLi92ZXJzaW9uc1wiO1xuaW1wb3J0IHsgVlNDb2RlQ29uZmlnIH0gZnJvbSBcIi4uL3ZzY29kZS92c2NvZGVcIjtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXG4gKiBNb25vcmVwbyBSb290IFByb2plY3RcbiAqXG4gKiBUaGlzIHByb2plY3Qgc2hvdWxkIGJlIHVzZWQgYXMgdGhlIGJhc2UgcHJvamVjdCBmb3Igb3RoZXIgcHJvamVjdHMgaW4gYVxuICogbW9ub3JlcG8uIFRoZSBNb25vcmVwbyByb290IHByb2plY3QgZ2VuZXJhbGx5IHdvbid0IGNvbnRhaW4gYW55IGNvZGUsIGJ1dCBpdFxuICogd2lsbCBjb250YWluIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBtb25vcmVwbywgc3VjaCBhcyBwYWNrYWdlIG1hbmFnZW1lbnQsXG4gKiBsaW50aW5nLCB0ZXN0aW5nLCBhbmQgb3RoZXIgcHJvamVjdC13aWRlIHNldHRpbmdzLlxuICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlcGVuZGVuY3lSZXNvbHZlciB7XG4gIHJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbigpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1vbm9yZXBvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBPbWl0PFxuICBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsXG4gIFwiZGVmYXVsdFJlbGVhc2VCcmFuY2hcIlxuPiB7XG4gIC8qKlxuICAgKiBUdXJuIG9uIFR1cmJvcmVwbyBzdXBwb3J0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICB0dXJibz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnNhbCBvcHRpb25zIGZvciB0dXJib3JlcG8gY29uZmlnXG4gICAqL1xuICB0dXJib09wdGlvbnM/OiBUdXJib1JlcG9PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIHJlc2V0IHRhc2sgdGhhdCBkZWxldGVzIGFsbCBidWlsZCBhcnRpZmFjdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlc2V0VGFzaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHRoZSByZXNldCB0YXNrLlxuICAgKi9cbiAgcmVzZXRUYXNrT3B0aW9ucz86IFJlc2V0VGFza09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFBOUE0gb3B0aW9ucyBmb3IgdGhlIG1vbm9yZXBvLlxuICAgKi9cbiAgcG5wbU9wdGlvbnM/OiB7XG4gICAgLyoqXG4gICAgICogVGhlIHZlcnNpb24gb2YgUE5QTSB0byB1c2UgaW4gdGhlIG1vbm9yZXBvLlxuICAgICAqIEBkZWZhdWx0IFZFUlNJT04uUE5QTV9WRVJTSU9OXG4gICAgICogQHNlZSB7QGxpbmsgc3JjL3ZlcnNpb25zLnRzfVxuICAgICAqL1xuICAgIHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBwbnBtIG9wdGlvbnMgZm9yIHRoZSBtb25vcmVwbyB3b3Jrc3BhY2UgZmlsZS5cbiAgICAgKi9cbiAgICBwbnBtV29ya3NwYWNlT3B0aW9ucz86IFBucG1Xb3Jrc3BhY2VPcHRpb25zO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUdXJuIG9uIHRoZSB1cGdyYWRlIGNvbmZpZ3VyYXRvciB0YXNrIHRoYXQgd2lsbCBhdHRlbXB0IHRvIHVwZ3JhZGUgdGhlXG4gICAqIEBjb2RlZHJpZnRlcnMvY29uZmlndWxhdG9yIHBhY2thZ2UgdmVyc2lvbiBuaWdodGx5LiBUaGlzIGtlZXBzIHRoZVxuICAgKiBwcm9qZWN0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0IG9mZmljaWFsIENvZGVEcmlmdGVycyBjb25maWdzLi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZUNvbmZpZ3VsYXRvclRhc2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgdXBncmFkZSBjb25maWd1cmF0b3IgdGFzay5cbiAgICpcbiAgICogQGRlZmF1bHQ6IGRhaWx5IHNjaGVkdWxlXG4gICAqL1xuICByZWFkb25seSB1cGdyYWRlQ29uZmlndWxhdG9yVGFza09wdGlvbnM/OiBVcGdyYWRlRGVwZW5kZW5jaWVzT3B0aW9ucztcbn1cblxuaW50ZXJmYWNlIEFwcGxpZWRPcHRpb25zXG4gIGV4dGVuZHMgVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBNb25vcmVwb1Byb2plY3RPcHRpb25zIHt9XG5cbmV4cG9ydCBjbGFzcyBNb25vcmVwb1Byb2plY3QgZXh0ZW5kcyBUeXBlU2NyaXB0QXBwUHJvamVjdCB7XG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIFBOUE0gd2hpY2ggdGhlIHdob2xlIG1vbm9yZXBvIHNob3VsZCB1c2UuXG4gICAqL1xuICByZWFkb25seSBwbnBtVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0YXNrIHRoYXQgd2lsbCBhdHRlbXB0IHRvIHVwZ3JhZGUgdGhlIEBjb2RlZHJpZnRlcnMvY29uZmlndWxhdG9yXG4gICAqIHBhY2thZ2UgdmVyc2lvbiBuaWdodGx5LiBUaGlzIGtlZXBzIHRoZSBwcm9qZWN0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0XG4gICAqIG9mZmljaWFsIENvZGVEcmlmdGVycyBjb25maWdzLlxuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZUNvbmZpZ3VsYXRvclRhc2s/OiBVcGdyYWRlRGVwZW5kZW5jaWVzO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGZ1bmN0aW9ucyB0byBjYWxsIGFmdGVyIGRlcGVuZGVuY2llcyBoYXZlIGJlZW4gaW5zdGFsbGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBwb3N0SW5zdGFsbERlcGVuZGVuY2llcyA9IG5ldyBBcnJheTwoKSA9PiBib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKHVzZXJPcHRpb25zOiBNb25vcmVwb1Byb2plY3RPcHRpb25zKSB7XG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQlVJTEQgV09SS0ZMT1cgT1BUSU9OU1xuICAgICAqXG4gICAgICogZGlzY292ZXIgc29tZSB0dXJibyBvcHRpb25zIGZvciBidWlsZCB3b3JrZmxvdywgaWYgbmVlZGVkLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgYnVpbGRXb3JrZmxvd09wdGlvbnM6IFBhcnRpYWw8QnVpbGRXb3JrZmxvd09wdGlvbnM+ID0gdXNlck9wdGlvbnNcbiAgICAgIC50dXJib09wdGlvbnM/LnJlbW90ZUNhY2hlT3B0aW9uc1xuICAgICAgPyBUdXJib1JlcG8uYnVpbGRXb3JrZmxvd09wdGlvbnMoXG4gICAgICAgICAgdXNlck9wdGlvbnMudHVyYm9PcHRpb25zLnJlbW90ZUNhY2hlT3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgOiB7fTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIERFRkFVTFQgT1BUSU9OU1xuICAgICAqXG4gICAgICogVGhlc2UgYXJlIHRoZSBkZWZhdWx0IG9wdGlvbnMgdW5sZXNzIHlvdSBvdmVycmlkZSB3aXRoIG9wdGlvbiBpbnB1dHMuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogT21pdDxcbiAgICAgIE1vbm9yZXBvUHJvamVjdE9wdGlvbnMsXG4gICAgICBcIm5hbWVcIiB8IFwiZGVmYXVsdFJlbGVhc2VCcmFuY2hcIlxuICAgID4gPSB7XG4gICAgICAvKipcbiAgICAgICAqIFVzZSB0eXBlc2NyaXB0IGJhc2VkIGNvbmZpZyBmaWxlLlxuICAgICAgICovXG4gICAgICBwcm9qZW5yY1RzOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFByb2plbiB2ZXJzaW9uIHNob3VsZCBiZSBwaW5uZWQgdG8gdGhlIGxvY2FsIHNwZWNpZmllZCB2ZXJzaW9uLlxuICAgICAgICovXG4gICAgICBwcm9qZW5WZXJzaW9uOiBcImNhdGFsb2c6XCIsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlIFByZXR0aWVyIGZvciBjb2RlIGZvcm1hdHRpbmcuXG4gICAgICAgKi9cbiAgICAgIHByZXR0aWVyOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIE5vdCBsaWNlbnNlZCBieSBkZWZhdWx0LlxuICAgICAgICovXG4gICAgICBsaWNlbnNlZDogZmFsc2UsXG5cbiAgICAgIC8qKlxuICAgICAgICogR2l0SHViIG9wdGlvbnMgZm9yIHRoZSBtb25vcmVwby5cbiAgICAgICAqIERvbid0IGVuYWJsZSBtZXJnaWZ5IGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHtcbiAgICAgICAgbWVyZ2lmeTogZmFsc2UsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbmZpZ3VyZSBwdWxsIHJlcXVlc3QgbGludGluZyB0byB2YWxpZGF0ZSBQUiB0aXRsZXMgZm9sbG93IENvbnZlbnRpb25hbCBDb21taXRzLlxuICAgICAgICAgKiBCeSBkZWZhdWx0LCBhbGwgY29udmVudGlvbmFsIGNvbW1pdCB0eXBlcyBhcmUgYWxsb3dlZCwgcHJvdmlkaW5nIGZsZXhpYmlsaXR5XG4gICAgICAgICAqIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgY2hhbmdlcyAoZmVhdHVyZXMsIGZpeGVzLCBkb2N1bWVudGF0aW9uLCByZWZhY3RvcmluZywgZXRjLikuXG4gICAgICAgICAqL1xuICAgICAgICBwdWxsUmVxdWVzdExpbnRPcHRpb25zOiB7XG4gICAgICAgICAgc2VtYW50aWNUaXRsZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQWxsb3dlZCBjb252ZW50aW9uYWwgY29tbWl0IHR5cGVzIGZvciBQUiB0aXRsZXMuXG4gICAgICAgICAgICAgKiBUaGlzIGluY2x1ZGVzIGFsbCBzdGFuZGFyZCB0eXBlcyBmcm9tIHRoZSBDb252ZW50aW9uYWwgQ29tbWl0cyBzcGVjaWZpY2F0aW9uOlxuICAgICAgICAgICAgICogLSBmZWF0OiBOZXcgZmVhdHVyZXNcbiAgICAgICAgICAgICAqIC0gZml4OiBCdWcgZml4ZXNcbiAgICAgICAgICAgICAqIC0gZG9jczogRG9jdW1lbnRhdGlvbiBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIHN0eWxlOiBDb2RlIHN0eWxlIGNoYW5nZXMgKGZvcm1hdHRpbmcsIGV0Yy4pXG4gICAgICAgICAgICAgKiAtIHJlZmFjdG9yOiBDb2RlIHJlZmFjdG9yaW5nXG4gICAgICAgICAgICAgKiAtIHBlcmY6IFBlcmZvcm1hbmNlIGltcHJvdmVtZW50c1xuICAgICAgICAgICAgICogLSB0ZXN0OiBUZXN0IGFkZGl0aW9ucyBvciBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIGJ1aWxkOiBCdWlsZCBzeXN0ZW0gY2hhbmdlc1xuICAgICAgICAgICAgICogLSBjaTogQ0kgY29uZmlndXJhdGlvbiBjaGFuZ2VzXG4gICAgICAgICAgICAgKiAtIGNob3JlOiBNYWludGVuYW5jZSB0YXNrc1xuICAgICAgICAgICAgICogLSByZXZlcnQ6IFJldmVydCBjb21taXRzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVzOiBbXG4gICAgICAgICAgICAgIFwiZmVhdFwiLFxuICAgICAgICAgICAgICBcImZpeFwiLFxuICAgICAgICAgICAgICBcImRvY3NcIixcbiAgICAgICAgICAgICAgXCJzdHlsZVwiLFxuICAgICAgICAgICAgICBcInJlZmFjdG9yXCIsXG4gICAgICAgICAgICAgIFwicGVyZlwiLFxuICAgICAgICAgICAgICBcInRlc3RcIixcbiAgICAgICAgICAgICAgXCJidWlsZFwiLFxuICAgICAgICAgICAgICBcImNpXCIsXG4gICAgICAgICAgICAgIFwiY2hvcmVcIixcbiAgICAgICAgICAgICAgXCJyZXZlcnRcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogRGVmYXVsdCBQTlBNIHZlcnNpb24gdG8gdXNlIGluIHRoZSBtb25vcmVwby5cbiAgICAgICAqL1xuICAgICAgcG5wbVZlcnNpb246IFZFUlNJT04uUE5QTV9WRVJTSU9OLFxuXG4gICAgICAvKipcbiAgICAgICAqIFdlIGRvbid0IHdhbnQgc2FtcGxlIGNvZGUgZ2VuZXJhdGVkIGZvciB0aGUgcm9vdCBwcm9qZWN0LlxuICAgICAgICovXG4gICAgICBzYW1wbGVDb2RlOiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBKZXN0IGlzIG5vdCByZXF1aXJlZCBpbiB0aGUgcm9vdCBwcm9qZWN0LlxuICAgICAgICovXG4gICAgICBqZXN0OiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEb24ndCByZWxlYXNlIHRoZSByb290IHByb2plY3QuXG4gICAgICAgKi9cbiAgICAgIHJlbGVhc2U6IGZhbHNlLFxuXG4gICAgICAvKipcbiAgICAgICAqIFVwcGdyYWRlIGRlcGVuZGVuY2llcyBhdXRvbWF0aWNhbGx5IHVubGVzcyBvdGhlcndpc2UgaW5zdHJ1Y3RlZC5cbiAgICAgICAqL1xuICAgICAgZGVwc1VwZ3JhZGU6IHRydWUsXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHtcbiAgICAgICAgd29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgICAgc2NoZWR1bGU6IFVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZS5XRUVLTFksXG4gICAgICAgIH0sXG4gICAgICAgIGNvb2xkb3duOiAxLFxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEaXNhYmxlIHRzY29uZmlnLmRldi5qc29uIGluIHRoZSByb290IHNpbmNlIHdlIGFyZW4ndCBnb2luZyB0byBiZVxuICAgICAgICogZGV2ZWxvcGluZyBhbnkgY29kZSBoZXJlLiBJdCdzIGp1c3QgYSB0YXNrIHJ1bm5lciBhbmQgY29uZmlndXJhdGlvblxuICAgICAgICogdG9vbCBmb3Igc3ViLXByb2plY3RzLlxuICAgICAgICovXG4gICAgICBkaXNhYmxlVHNjb25maWdEZXY6IHRydWUsXG5cbiAgICAgIC8qKlxuICAgICAgICogS2lsbCB0aGUgc3JjZGlyIGluIHRoZSByb290IHNpbmNlIHdlIGFyZW4ndCB1c2luZyBvbmUuXG4gICAgICAgKi9cbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIHJvb3REaXI6IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgZXhjbHVkZTogW1wibm9kZV9tb2R1bGVzXCJdLFxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBFbmFibGUgdHVyYm9yZXBvIGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIHR1cmJvOiB0cnVlLFxuXG4gICAgICAvKipcbiAgICAgICAqIEVuYWJsZSByZXNldCB0YXNrIGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIHJlc2V0VGFzazogdHJ1ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBJbmNsdWRlIHNlbGYgYXMgYSBkZXZEZXBcbiAgICAgICAqL1xuICAgICAgZGV2RGVwczogW1wiQGNvZGVkcmlmdGVycy9jb25maWd1bGF0b3JcIiwgXCJAY29kZWRyaWZ0ZXJzL3V0aWxzXCJdLFxuXG4gICAgICAvKipcbiAgICAgICAqIFBOUE0gb3B0aW9ucyBmb3IgdGhlIG1vbm9yZXBvLlxuICAgICAgICovXG4gICAgICBwbnBtT3B0aW9uczoge1xuICAgICAgICBwbnBtV29ya3NwYWNlT3B0aW9uczoge1xuICAgICAgICAgIGRlZmF1bHRDYXRhbG9nOiB7XG4gICAgICAgICAgICBbXCJhd3MtY2RrXCJdOiBWRVJTSU9OLkFXU19DREtfQ0xJX1ZFUlNJT04sXG4gICAgICAgICAgICBbXCJhd3MtY2RrLWxpYlwiXTogVkVSU0lPTi5BV1NfQ0RLX0xJQl9WRVJTSU9OLFxuICAgICAgICAgICAgW1wicHJvamVuXCJdOiBWRVJTSU9OLlBST0pFTl9WRVJTSU9OLFxuICAgICAgICAgICAgW1wiY29uc3RydWN0c1wiXTogVkVSU0lPTi5BV1NfQ09OU1RSVUNUU19WRVJTSU9OLFxuICAgICAgICAgICAgW1widHVyYm9cIl06IFZFUlNJT04uVFVSQk9fVkVSU0lPTixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogUkVRVUlSRUQgT1BUSU9OU1xuICAgICAqXG4gICAgICogVGhlc2Ugb3B0aW9ucyBjYW5ub3QgYmUgY2hhbmdlZCBieSB0aGUgdXNlci5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0IHJlcXVpcmVkT3B0aW9uczogT21pdDxUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsIFwibmFtZVwiPiA9IHtcbiAgICAgIC8qKlxuICAgICAgICogVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIGl0J3Mgc3RhbmRhcmQgcHJhY3RpY2UgYW5kIGFsc28gdG8gc2ltcGxpZnlcbiAgICAgICAqIHNvbWUgd29ya2Zsb3cgZGVzaWduLlxuICAgICAgICovXG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogXCJtYWluXCIsXG5cbiAgICAgIC8qKlxuICAgICAgICogVXNlIFBOUE0gaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAoWWFybikuIE11Y2ggb2YgdGhlIGVjb3N5c3RlbSBkZXBlbmRzXG4gICAgICAgKiBvbiBQTlBNIGFuZCBtYWtpbmcgbW9ub3JlcG9zIFBOUE0gb25seSBzaW1wbGlmaWVzIG1hbnkgY29uZmlndXJhdGlvbnMuXG4gICAgICAgKi9cbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSxcblxuICAgICAgLyoqXG4gICAgICAgKiBTb21lIGFkZGl0aW9uYWwgcHJlLWJ1aWxkIHN0ZXBzIGlmIHdlJ3JlIHVzaW5nIHR1cmJvJ3MgcmVtb3RlIGNhY2hlLlxuICAgICAgICovXG4gICAgICBidWlsZFdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIC4uLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wZXJtaXNzaW9ucyxcbiAgICAgICAgICAuLi51c2VyT3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ucGVybWlzc2lvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHByZUJ1aWxkU3RlcHM6IFtcbiAgICAgICAgICAuLi4oYnVpbGRXb3JrZmxvd09wdGlvbnM/LnByZUJ1aWxkU3RlcHMgPz8gW10pLFxuICAgICAgICAgIC4uLih1c2VyT3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ucHJlQnVpbGRTdGVwcyA/PyBbXSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBDT05TVFJVQ1RPUlxuICAgICAqXG4gICAgICogQ29tYmluZXMgZGVmYXVsdCBvcHRpb25zIHdpdGggdXNlciBwcm92aWRlZCBvcHRpb25zIGFuZCByZXF1aXJlZCBvcHRpb25zLlxuICAgICAqIFN0b3JlIHRoZSBvcHRpb25zIGluIGEgY29uc3Qgc28gd2UgY2FuIHVzZSB0aGVtIGFmdGVyIHN1cGVyKCksIGZhcnRoZXJcbiAgICAgKiBpbnRvIHRoZSBjb25zdHJ1Y3RvciBmb3IgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3Qgb3B0aW9uczogQXBwbGllZE9wdGlvbnMgPSBtZXJnZShcbiAgICAgIGRlZmF1bHRPcHRpb25zLFxuICAgICAgdXNlck9wdGlvbnMsXG4gICAgICByZXF1aXJlZE9wdGlvbnMsXG4gICAgKTtcblxuICAgIHN1cGVyKHsgLi4ub3B0aW9ucyB9KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFBVQkxJQyBQUk9QU1xuICAgICAqXG4gICAgICogU29tZSBwcm9wcyBhcmUgaGlkZGVuIGJ5IFByb2plbiBhbmQgd2UgbmVlZCB0byBleHBvc2UgdGhlbSBmb3IgdGhlXG4gICAgICogbW9ub3JlcG8gdG8gd29yayBwcm9wZXJseS4gVGhpcyBpcyB3aGVyZSB3ZSBzdG9yZSB0aGVtLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5wbnBtVmVyc2lvbiA9IG9wdGlvbnMucG5wbVZlcnNpb24hO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQ1VTVE9NIENPTkZJR1NcbiAgICAgKlxuICAgICAqIFdlIGFkZCBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdG8gdGhlIG1vbm9yZXBvIHJvb3QgcHJvamVjdCBiZWxvd1xuICAgICAqIHN1Y2ggYXMgVHVyYm9yZXBvLCBWUyBDb2RlIGNvbmZpZywgYW5kIHRoZSBQTlBNIHdvcmtzcGFjZSBmaWxlLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIFZTQ29kZSBjb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgbmV3IFZTQ29kZUNvbmZpZyh0aGlzKTtcblxuICAgIC8qKlxuICAgICAqIEFkZCB3b3Jrc3BhY2UgZGVmaW5pdGlvbiB0byBQTlBNIHJvb3RcbiAgICAgKi9cbiAgICBuZXcgUG5wbVdvcmtzcGFjZSh0aGlzLCBvcHRpb25zLnBucG1PcHRpb25zPy5wbnBtV29ya3NwYWNlT3B0aW9ucyk7XG5cbiAgICAvKipcbiAgICAgKiBUdXJuIG9uIHR1cmJvcmVwbyBzdXBwb3J0IGlmIHJlcXVlc3RlZC5cbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy50dXJibykge1xuICAgICAgbmV3IFR1cmJvUmVwbyh0aGlzLCBvcHRpb25zLnR1cmJvT3B0aW9ucyk7XG5cbiAgICAgIHRoaXMuYnVpbGRXb3JrZmxvdz8uYWRkUG9zdEJ1aWxkU3RlcHMoe1xuICAgICAgICBuYW1lOiBcIkJ1aWxkIFN1YiBQcm9qZWN0c1wiLFxuICAgICAgICBydW46IGBucHggcHJvamVuICR7Uk9PVF9DSV9UQVNLX05BTUV9YCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCByZXNldCB0YXNrIGlmIGVuYWJsZWQuXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucmVzZXRUYXNrICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgZGVmYXVsdFJlc2V0VGFza09wdGlvbnM6IFJlc2V0VGFza09wdGlvbnMgPSB7XG4gICAgICAgIHBhdGhzVG9SZW1vdmU6IFtcIm5vZGVfbW9kdWxlc1wiLCBcIi50dXJib1wiLCBcImRpc3RcIiwgXCJsaWJcIl0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdXNlclJlc2V0VGFza09wdGlvbnMgPSBvcHRpb25zLnJlc2V0VGFza09wdGlvbnMgPz8ge307XG4gICAgICBjb25zdCByZXNldFRhc2tPcHRpb25zOiBSZXNldFRhc2tPcHRpb25zID0gbWVyZ2UoXG4gICAgICAgIGRlZmF1bHRSZXNldFRhc2tPcHRpb25zLFxuICAgICAgICB7XG4gICAgICAgICAgLi4udXNlclJlc2V0VGFza09wdGlvbnMsXG4gICAgICAgICAgcGF0aHNUb1JlbW92ZTogW1xuICAgICAgICAgICAgLi4uKGRlZmF1bHRSZXNldFRhc2tPcHRpb25zLnBhdGhzVG9SZW1vdmUgPz8gW10pLFxuICAgICAgICAgICAgLi4uKHVzZXJSZXNldFRhc2tPcHRpb25zLnBhdGhzVG9SZW1vdmUgPz8gW10pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgbmV3IFJlc2V0VGFzayh0aGlzLCByZXNldFRhc2tPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHBhY2thZ2UgbWFuYWdlclxuICAgICAqL1xuICAgIC8vIGNvbnN0IHBucG1WZXJzaW9uID0gb3B0aW9ucy5wbnBtVmVyc2lvbiA/PyBWRVJTSU9OLlBOUE1fVkVSU0lPTjtcbiAgICB0aGlzLnBhY2thZ2UuZmlsZS5hZGRPdmVycmlkZShcbiAgICAgIFwicGFja2FnZU1hbmFnZXJcIixcbiAgICAgIGBwbnBtQCR7b3B0aW9ucy5wbnBtVmVyc2lvbn1gLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBBZGQgc29tZSBzaWxseSB0aGluZ3MgdG8gdGhlIGdpdGlnbm9yZS5cbiAgICAgKi9cbiAgICB0aGlzLmdpdGlnbm9yZT8uYWRkUGF0dGVybnMoXCIuRFNfU3RvcmVcIik7XG5cbiAgICAvKipcbiAgICAgKiBVc2UgY2F0YWxvZyB2ZXJzaW9uIGZvciBjb25zdHJ1Y3RzIHZlcnNpb25cbiAgICAgKi9cbiAgICB0aGlzLmFkZERldkRlcHMoXCJjb25zdHJ1Y3RzQGNhdGFsb2c6XCIpO1xuXG4gICAgLyoqXG4gICAgICogQWRkIGEgdGFzayBvbiB0aGUgbW9ub3JlcG8ncyByb290IHByb2plY3QgdGhhdCB3aWxsIGF0dGVtcHQgdG8gdXBncmFkZVxuICAgICAqIHRoZSBAY29kZWRyaWZ0ZXJzL2NvbmZpZ3VsYXRvciBwYWNrYWdlIHZlcnNpb24gbmlnaHRseS4gVGhpcyBrZWVwcyB0aGVcbiAgICAgKiBwcm9qZWN0IHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0IG9mZmljaWFsIENvZGVEcmlmdGVycyBjb25maWdzLi5cbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy51cGdyYWRlQ29uZmlndWxhdG9yVGFzayAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMudXBncmFkZUNvbmZpZ3VsYXRvclRhc2sgPSBuZXcgVXBncmFkZURlcGVuZGVuY2llcyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAge1xuICAgICAgICAgICAgaW5jbHVkZTogW1wiQGNvZGVkcmlmdGVycy9jb25maWd1bGF0b3JcIiwgXCJAY29kZWRyaWZ0ZXJzL3V0aWxzXCJdLFxuICAgICAgICAgICAgdGFza05hbWU6IGB1cGdyYWRlLWNvZGVkcmlmdGVycy1jb25maWd1bGF0b3JgLFxuICAgICAgICAgICAgd29ya2Zsb3dPcHRpb25zOiB7XG4gICAgICAgICAgICAgIHNjaGVkdWxlOiBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUuREFJTFksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3B0aW9ucy51cGdyYWRlQ29uZmlndWxhdG9yVGFza09wdGlvbnMgPz8ge30sXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBhbGwgcGFja2FnZXMgYWZ0ZXIgdGhlIHJvb3Qgb2YgdGhlIG1vbm9yZXBvJ3MgdXBkYXRlZC5cbiAgICAgKiBSdW4gdGhlIGRlZmF1bHQgdGFzayBhZnRlciB0aGUgdXBncmFkZSB0byBlbnN1cmUgYWxsIHBhY2thZ2VzIGFyZVxuICAgICAqIHVwZGF0ZWQuIEluIHBhcnRpY3VsYXIgbWFrZSBzdXJlIHRoZSBwbnBtLXdvcmtzcGFjZSBmaWxlIHdhcyBub3RcbiAgICAgKiB0YW1wZXJlZCB3aXRoIGR1cmluZyB0aGUgdXBncmFkZS5cbiAgICAgKi9cbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoXCJwb3N0LXVwZ3JhZGVcIik/LmV4ZWMoXCJwbnBtIHVwZ3JhZGUgLXJcIik7XG4gICAgdGhpcy50YXNrcy50cnlGaW5kKFwicG9zdC11cGdyYWRlXCIpPy5zcGF3bih0aGlzLmRlZmF1bHRUYXNrISk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIGEgc3ViIHByb2plY3QgdG8gcmVxdWVzdCBpbnN0YWxsYXRpb24gb2YgZGVwZW5kZW5jeSBhdCB0aGUgTW9ub3JlcG8gcm9vdFxuICAgKiBUaGV5IG11c3QgcHJvdmlkZSBhIGZ1bmN0aW9uIHRoYXQgaXMgZXhlY3V0ZWQgYWZ0ZXIgZGVwZW5kZW5jaWVzIGhhdmUgYmVlbiBpbnN0YWxsZWRcbiAgICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUsIHRoZSBpbnN0YWxsIGNvbW1hbmQgaXMgcnVuIGZvciBhIHNlY29uZCB0aW1lIGFmdGVyIGFsbCBzdWIgcHJvamVjdCByZXF1ZXN0cyBoYXZlIHJ1bi5cbiAgICogVGhpcyBpcyB1c2VkIHRvIHJlc29sdmUgZGVwZW5kZW5jeSB2ZXJzaW9ucyBmcm9tIGAqYCB0byBhIGNvbmNyZXRlIHZlcnNpb24gY29uc3RyYWludC5cbiAgICovXG4gIHB1YmxpYyByZXF1ZXN0SW5zdGFsbERlcGVuZGVuY2llcyhyZXNvbHZlcjogSURlcGVuZGVuY3lSZXNvbHZlcikge1xuICAgIHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMucHVzaChyZXNvbHZlci5yZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvb2tzIGludG8gdGhlIGluc3RhbGwgZGVwZW5kZW5jaWVzIGN5Y2xlXG4gICAqL1xuICBwdWJsaWMgcG9zdFN5bnRoZXNpemUoKSB7XG4gICAgaWYgKHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBub2RlUGtnOiBhbnkgPSB0aGlzLnBhY2thZ2U7XG4gICAgICBub2RlUGtnLmluc3RhbGxEZXBlbmRlbmNpZXMoKTtcblxuICAgICAgY29uc3QgY29tcGxldGVkUmVxdWVzdHMgPSB0aGlzLnBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzLm1hcCgocmVxdWVzdCkgPT5cbiAgICAgICAgcmVxdWVzdCgpLFxuICAgICAgKTtcbiAgICAgIGlmIChjb21wbGV0ZWRSZXF1ZXN0cy5zb21lKEJvb2xlYW4pKSB7XG4gICAgICAgIG5vZGVQa2cuaW5zdGFsbERlcGVuZGVuY2llcygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzID0gW107XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -85,7 +85,9 @@ class TypeScriptProject extends projen_1.typescript.TypeScriptProject {
85
85
  * project as default catalog dependencies since we want to let the
86
86
  * catalog manage those dependencies.
87
87
  */
88
+ depsUpgrade: true,
88
89
  depsUpgradeOptions: {
90
+ workflow: false,
89
91
  exclude: Object.keys(pnpmWorkspace?.defaultCatalog || {}),
90
92
  ...(userOptions.parent && userOptions.parent instanceof monorepo_project_1.MonorepoProject
91
93
  ? {
@@ -175,7 +177,23 @@ class TypeScriptProject extends projen_1.typescript.TypeScriptProject {
175
177
  });
176
178
  new reset_task_1.ResetTask(this, resetTaskOptions);
177
179
  }
180
+ /**
181
+ *
182
+ */
183
+ if (options.parent && options.parent instanceof monorepo_project_1.MonorepoProject) {
184
+ // Install dependencies via the parent project
185
+ /* @ts-ignore access private method */
186
+ const originalResolve = this.package.resolveDepsAndWritePackageJson;
187
+ /* @ts-ignore access private method */
188
+ this.package.installDependencies = () => {
189
+ options.parent.requestInstallDependencies({
190
+ resolveDepsAndWritePackageJson: () => originalResolve.apply(this.package),
191
+ });
192
+ };
193
+ /* @ts-ignore access private method */
194
+ this.package.resolveDepsAndWritePackageJson = () => { };
195
+ }
178
196
  }
179
197
  }
180
198
  exports.TypeScriptProject = TypeScriptProject;
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzL3R5cGVzY3JpcHQtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsc0RBSStCO0FBQy9CLGdEQUFvRDtBQUNwRCwrQ0FBcUM7QUFDckMseURBQXFEO0FBQ3JELGtDQUF3QztBQUN4QyxvREFBa0U7QUFDbEUsb0NBQXFDO0FBQ3JDLDBDQUFzQztBQXNCdEMsTUFBYSxpQkFBa0IsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQUNqRSxZQUFZLFdBQXFDO1FBQy9DOzs7O1dBSUc7UUFDSCxNQUFNLFdBQVcsR0FDZixXQUFXLENBQUMsTUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLFlBQVksa0NBQWU7WUFDakUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVztZQUNoQyxDQUFDLENBQUMsa0JBQU8sQ0FBQyxZQUFZLENBQUM7UUFFM0I7O1dBRUc7UUFDSCxNQUFNLGFBQWEsR0FDakIsV0FBVyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxZQUFZLGtDQUFlO1lBQ2pFLENBQUMsQ0FBQyxvQkFBYSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBeUIsQ0FBQztZQUN6RCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWhCOzs7O2tGQUkwRTtRQUUxRSxNQUFNLGNBQWMsR0FFaEI7WUFDRjs7ZUFFRztZQUNILG9CQUFvQixFQUFFLE1BQU07WUFFNUI7O2VBRUc7WUFDSCxTQUFTLEVBQUUsSUFBSTtZQUVmOztlQUVHO1lBQ0gsY0FBYyxFQUFFLCtCQUFrQixDQUFDLElBQUk7WUFDdkMsV0FBVyxFQUFFLFdBQVc7WUFDeEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUs7WUFDcEQsY0FBYyxFQUFFLGNBQWM7WUFDOUIsT0FBTyxFQUFFLEtBQUs7WUFF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QUFxQjtnQkFDaEQsYUFBYSxFQUFFO29CQUNiLGNBQWM7b0JBQ2QsTUFBTTtvQkFDTixLQUFLO29CQUNMLFVBQVU7b0JBQ1YsY0FBYztvQkFDZCxRQUFRO29CQUNSLHNCQUFzQjtvQkFDdEIsSUFBSSxDQUFDLGtCQUFrQjtpQkFDeEI7YUFDRixDQUFDO1lBQ0YsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBQzVELE1BQU0sZ0JBQWdCLEdBQXFCLElBQUEsb0JBQUssRUFDOUMsdUJBQXVCLEVBQ3ZCO2dCQUNFLEdBQUcsb0JBQW9CO2dCQUN2QixhQUFhLEVBQUU7b0JBQ2IsR0FBRyxDQUFDLHVCQUF1QixDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7b0JBQ2hELEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO2lCQUM5QzthQUNGLENBQ0YsQ0FBQztZQUNGLElBQUksc0JBQVMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdk1ELDhDQXVNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGVzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQge1xuICBOb2RlUGFja2FnZU1hbmFnZXIsXG4gIFRyYW5zZm9ybSxcbiAgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLFxufSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBSZWxlYXNlVHJpZ2dlciB9IGZyb20gXCJwcm9qZW4vbGliL3JlbGVhc2VcIjtcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcInRzLWRlZXBtZXJnZVwiO1xuaW1wb3J0IHsgTW9ub3JlcG9Qcm9qZWN0IH0gZnJvbSBcIi4vbW9ub3JlcG8tcHJvamVjdFwiO1xuaW1wb3J0IHsgUG5wbVdvcmtzcGFjZSB9IGZyb20gXCIuLi9wbnBtXCI7XG5pbXBvcnQgeyBSZXNldFRhc2ssIFJlc2V0VGFza09wdGlvbnMgfSBmcm9tIFwiLi4vdGFza3MvcmVzZXQtdGFza1wiO1xuaW1wb3J0IHsgVHVyYm9SZXBvIH0gZnJvbSBcIi4uL3R1cmJvXCI7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSBcIi4uL3ZlcnNpb25zXCI7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBUeXBlU2NyaXB0UHJvamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBPbWl0PFxuICB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyxcbiAgXCJkZWZhdWx0UmVsZWFzZUJyYW5jaFwiXG4+IHtcbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUgcmVzZXQgdGFzayB0aGF0IGRlbGV0ZXMgYWxsIGJ1aWxkIGFydGlmYWN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRUYXNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIHJlc2V0IHRhc2suXG4gICAqL1xuICByZWFkb25seSByZXNldFRhc2tPcHRpb25zPzogUmVzZXRUYXNrT3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRQcm9qZWN0IGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKHVzZXJPcHRpb25zOiBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IFBOUE0gdmVyc2lvbiB0byB1c2UuIFRoaXMgd2lsbCBlaXRoZXIgY29tZSBmcm9tIHRoZSBNb25vUmVwb1xuICAgICAqIHJvb3Qgb3IgZnJvbSB0aGUgZGVmYXVsdCBzcGVjaWZpZWQgaW4gY29uZmlndWxhdG9yLiBJZiB0aGUgdXNlciBwYXNzZXNcbiAgICAgKiBpbiBhIGRpZmZlcmVudCBwbnBtVmVyc2lvbiBpdCB3aWxsIGFsc28gb3ZlcnJpZGUgdGhpcy5cbiAgICAgKi9cbiAgICBjb25zdCBwbnBtVmVyc2lvbiA9XG4gICAgICB1c2VyT3B0aW9ucy5wYXJlbnQgJiYgdXNlck9wdGlvbnMucGFyZW50IGluc3RhbmNlb2YgTW9ub3JlcG9Qcm9qZWN0XG4gICAgICAgID8gdXNlck9wdGlvbnMucGFyZW50LnBucG1WZXJzaW9uXG4gICAgICAgIDogVkVSU0lPTi5QTlBNX1ZFUlNJT047XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHBucG0gd29ya3NwYWNlIGZyb20gdGhlIHBhcmVudCBwcm9qZWN0LlxuICAgICAqL1xuICAgIGNvbnN0IHBucG1Xb3Jrc3BhY2UgPVxuICAgICAgdXNlck9wdGlvbnMucGFyZW50ICYmIHVzZXJPcHRpb25zLnBhcmVudCBpbnN0YW5jZW9mIE1vbm9yZXBvUHJvamVjdFxuICAgICAgICA/IFBucG1Xb3Jrc3BhY2Uub2YodXNlck9wdGlvbnMucGFyZW50IGFzIE1vbm9yZXBvUHJvamVjdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogRGVmYXVsdCBPcHRpb25zXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IE9taXQ8VHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBcIm5hbWVcIj4gJiB7XG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogc3RyaW5nO1xuICAgIH0gPSB7XG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgaXMgYSBzdGFuZGFyZCwgc28gZG9uJ3QgcmVxdWlyZSBpdCB0byBwYXNzZWQgaW4gZXZlcnl3aGVyZS5cbiAgICAgICAqL1xuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuXG4gICAgICAvKipcbiAgICAgICAqIEVuYWJsZSByZXNldCB0YXNrIGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIHJlc2V0VGFzazogdHJ1ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBQYWNrYWdpbmcgb3B0aW9uc1xuICAgICAgICovXG4gICAgICBwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0sXG4gICAgICBwbnBtVmVyc2lvbjogcG5wbVZlcnNpb24sXG4gICAgICBsaWNlbnNlZDogdXNlck9wdGlvbnMubGljZW5zZSAhPT0gdW5kZWZpbmVkIHx8IGZhbHNlLFxuICAgICAgY29weXJpZ2h0T3duZXI6IFwiQ29kZURyaWZ0ZXJzXCIsXG4gICAgICByZWxlYXNlOiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEb24ndCBhZGQgc2FtcGxlIGNvZGUuXG4gICAgICAgKi9cbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuXG4gICAgICAvKipcbiAgICAgICAqIE1ha2Ugc3VyZSBqZXN0IGNvbmZpZyBpcyBzdG9yZWQgb3V0c2lkZSBvZiBwYWNrYWdlLmpzb25cbiAgICAgICAqL1xuICAgICAgamVzdE9wdGlvbnM6IHtcbiAgICAgICAgY29uZmlnRmlsZVBhdGg6IFwiamVzdC5jb25maWcuanNvblwiLFxuICAgICAgICBqZXN0Q29uZmlnOiB7XG4gICAgICAgICAgcm9vdHM6IFtgPHJvb3REaXI+L3NyY2BdLFxuICAgICAgICAgIHRyYW5zZm9ybToge1xuICAgICAgICAgICAgW1wiXi4rXFxcXC5bdF1zeD8kXCJdOiBuZXcgVHJhbnNmb3JtKFwiQHN3Yy9qZXN0XCIpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbW9kdWxlRmlsZUV4dGVuc2lvbnM6IFtcImpzXCIsIFwidHNcIl0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb24gcHJldHRpZXIgZm9ybWF0dGluZ1xuICAgICAgICovXG4gICAgICBwcmV0dGllcjogdHJ1ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBTV0MgZm9yIGZhc3RlciB0ZXN0aW5nXG4gICAgICAgKi9cbiAgICAgIGRldkRlcHM6IFtcIkBzd2MvamVzdFwiLCBcIkBzd2MvY29yZVwiXSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEb24ndCBwYWNrYWdlIHRlc3QgZmlsZXMuXG4gICAgICAgKi9cbiAgICAgIG5wbUlnbm9yZU9wdGlvbnM6IHtcbiAgICAgICAgaWdub3JlUGF0dGVybnM6IFtcIiouc3BlYy4qXCIsIFwiKi50ZXN0LipcIl0sXG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIE9wdGlvbnMgZm9yIHRoZSBhdXRvbWF0ZWQgZGVwZW5kZW5jeSB1cGdyYWRlIHRhc2sgLyB3b3JrZmxvd1xuICAgICAgICogQXV0b21hdGljYWxseSBleGNsdWRlIGFueSBwYWNrYWdlcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5IHRoZSByb290XG4gICAgICAgKiBwcm9qZWN0IGFzIGRlZmF1bHQgY2F0YWxvZyBkZXBlbmRlbmNpZXMgc2luY2Ugd2Ugd2FudCB0byBsZXQgdGhlXG4gICAgICAgKiBjYXRhbG9nIG1hbmFnZSB0aG9zZSBkZXBlbmRlbmNpZXMuXG4gICAgICAgKi9cbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICBleGNsdWRlOiBPYmplY3Qua2V5cyhwbnBtV29ya3NwYWNlPy5kZWZhdWx0Q2F0YWxvZyB8fCB7fSksXG4gICAgICAgIC4uLih1c2VyT3B0aW9ucy5wYXJlbnQgJiYgdXNlck9wdGlvbnMucGFyZW50IGluc3RhbmNlb2YgTW9ub3JlcG9Qcm9qZWN0XG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHdvcmtmbG93T3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlOiBVcGdyYWRlRGVwZW5kZW5jaWVzU2NoZWR1bGUuV0VFS0xZLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjb29sZG93bjogMSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogT25seSByZWxlYXNlIHdoZW4gdGhlIHBhY2thZ2UgZm9sZGVyIHNvdXJjY2UgY29udGVudCBjaGFuZ2VzXG4gICAgICAgKi9cbiAgICAgIHJlbGVhc2VUcmlnZ2VyOiBSZWxlYXNlVHJpZ2dlci5jb250aW51b3VzKHtcbiAgICAgICAgcGF0aHM6IFtgJHt1c2VyT3B0aW9ucy5vdXRkaXJ9L3NyYy8qKmBdLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBNZXJnZSBkZWZhdWx0cyBpbnRvIHVzZXIgb3B0aW9uc1xuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0IG9wdGlvbnM6IFR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyAmXG4gICAgICB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyA9IG1lcmdlKGRlZmF1bHRPcHRpb25zLCB1c2VyT3B0aW9ucyk7XG5cbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBqZXN0IHNpbmNlIHdlJ3ZlIHN3YXBwZWQgaW4gQHN3Yy9qZXN0IGluc3RlYWQgb2YgdHMtamVzdC5cbiAgICAgKi9cbiAgICB0aGlzLmRlcHMucmVtb3ZlRGVwZW5kZW5jeShcInRzLWplc3RcIik7XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHBhY2thZ2UgbWFuYWdlclxuICAgICAqL1xuICAgIHRoaXMucGFja2FnZS5maWxlLmFkZE92ZXJyaWRlKFxuICAgICAgXCJwYWNrYWdlTWFuYWdlclwiLFxuICAgICAgYHBucG1AJHtvcHRpb25zLnBucG1WZXJzaW9ufWAsXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogRGlzYWJsZSB0aGlzIHJ1bGUgZm9yIGFsbCB0ZXN0IGZpbGVzLlxuICAgICAqXG4gICAgICogVW5sZXNzIHdlIHR1cm4gdGhpcyBvZmYsIEVTTGludCB3aWxsIHN1Z2dlc3QgdGhhdCBhbnl0aGluZyBmb3VuZCBpbiBhIHRlc3RcbiAgICAgKiBuZWVkcyB0byBiZSBhIGRlcCBpbnN0ZWFkIG9mIGEgZGV2RGVwLiBQcm9qZW4gYWN0dWFsbHkgYWxyZWFkeSB0dXJucyBvZmZcbiAgICAgKiB0aGUgcnVsZSBmb3IgZmlsZXMgaW4gdGhlIHRlc3RzLyogZm9sZGVyIGJ1dCBzaW5jZSB3ZSBjb21tb25seSBwdXQgdGVzdHNcbiAgICAgKiBuZXh0IHRvIHRoZSBjb2RlIGl0J3MgdGVzdGluZywgd2UgbmVlZCB0byBkbyB0aGlzIG91cnNlbHZlcy5cbiAgICAgKlxuICAgICAqL1xuICAgIHRoaXMuZXNsaW50Py5hZGRPdmVycmlkZSh7XG4gICAgICBmaWxlczogW1wiKiovKi50ZXN0LipcIiwgXCIqKi8qLnNwZWMuKlwiXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgIFwiaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXCI6IFwib2ZmXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogU29tZSBzdGFuZGFyZCBpZ25vcmVzIGZvciBhbGwgcHJvamVjdHMuXG4gICAgICovXG4gICAgdGhpcy5naXRpZ25vcmU/LmFkZFBhdHRlcm5zKFwiLkRTX1N0b3JlXCIpO1xuICAgIHRoaXMubnBtaWdub3JlPy5hZGRQYXR0ZXJucyhcIiouc3BlYy4qXCIsIFwiKi50ZXN0LipcIiwgXCJfX2ZpeHR1cmVzX19cIik7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0dXJibyBpcyBhY3RpdmUgaW4gdGhlIHBhcmVudCBwcm9qZWN0LCBjb25maWd1cmUgaXQgaGVyZS5cbiAgICAgKi9cbiAgICBjb25zdCB0dXJib0FjdGl2ZSA9XG4gICAgICB1c2VyT3B0aW9ucy5wYXJlbnQgJiYgVHVyYm9SZXBvLm9mKHVzZXJPcHRpb25zLnBhcmVudCkgIT09IHVuZGVmaW5lZDtcbiAgICBpZiAodHVyYm9BY3RpdmUpIHtcbiAgICAgIGNvbnN0IHR1cmJvID0gbmV3IFR1cmJvUmVwbyh0aGlzKTtcbiAgICAgIHR1cmJvLmNvbXBpbGVUYXNrPy5vdXRwdXRzLnB1c2goXCJkaXN0LyoqXCIpO1xuICAgICAgdHVyYm8uY29tcGlsZVRhc2s/Lm91dHB1dHMucHVzaChcImxpYi8qKlwiKTtcbiAgICAgIC8vdHVyYm8udGVzdFRhc2s/LmlucHV0cy5wdXNoKFwic3JjLyoqXCIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCByZXNldCB0YXNrIGlmIGVuYWJsZWQuXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucmVzZXRUYXNrICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgZGVmYXVsdFJlc2V0VGFza09wdGlvbnM6IFJlc2V0VGFza09wdGlvbnMgPSB7XG4gICAgICAgIHBhdGhzVG9SZW1vdmU6IFtcbiAgICAgICAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgICAgICAgIFwiZGlzdFwiLFxuICAgICAgICAgIFwibGliXCIsXG4gICAgICAgICAgXCJjb3ZlcmFnZVwiLFxuICAgICAgICAgIFwidGVzdC1yZXBvcnRzXCIsXG4gICAgICAgICAgXCIudHVyYm9cIixcbiAgICAgICAgICBcInRzY29uZmlnLnRzYnVpbGRpbmZvXCIsXG4gICAgICAgICAgdGhpcy5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgICAgY29uc3QgdXNlclJlc2V0VGFza09wdGlvbnMgPSBvcHRpb25zLnJlc2V0VGFza09wdGlvbnMgPz8ge307XG4gICAgICBjb25zdCByZXNldFRhc2tPcHRpb25zOiBSZXNldFRhc2tPcHRpb25zID0gbWVyZ2UoXG4gICAgICAgIGRlZmF1bHRSZXNldFRhc2tPcHRpb25zLFxuICAgICAgICB7XG4gICAgICAgICAgLi4udXNlclJlc2V0VGFza09wdGlvbnMsXG4gICAgICAgICAgcGF0aHNUb1JlbW92ZTogW1xuICAgICAgICAgICAgLi4uKGRlZmF1bHRSZXNldFRhc2tPcHRpb25zLnBhdGhzVG9SZW1vdmUgPz8gW10pLFxuICAgICAgICAgICAgLi4uKHVzZXJSZXNldFRhc2tPcHRpb25zLnBhdGhzVG9SZW1vdmUgPz8gW10pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgbmV3IFJlc2V0VGFzayh0aGlzLCByZXNldFRhc2tPcHRpb25zKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzL3R5cGVzY3JpcHQtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsc0RBSStCO0FBQy9CLGdEQUFvRDtBQUNwRCwrQ0FBcUM7QUFDckMseURBQXFEO0FBQ3JELGtDQUF3QztBQUN4QyxvREFBa0U7QUFDbEUsb0NBQXFDO0FBQ3JDLDBDQUFzQztBQXNCdEMsTUFBYSxpQkFBa0IsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQUNqRSxZQUFZLFdBQXFDO1FBQy9DOzs7O1dBSUc7UUFDSCxNQUFNLFdBQVcsR0FDZixXQUFXLENBQUMsTUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLFlBQVksa0NBQWU7WUFDakUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVztZQUNoQyxDQUFDLENBQUMsa0JBQU8sQ0FBQyxZQUFZLENBQUM7UUFFM0I7O1dBRUc7UUFDSCxNQUFNLGFBQWEsR0FDakIsV0FBVyxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxZQUFZLGtDQUFlO1lBQ2pFLENBQUMsQ0FBQyxvQkFBYSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBeUIsQ0FBQztZQUN6RCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWhCOzs7O2tGQUkwRTtRQUUxRSxNQUFNLGNBQWMsR0FFaEI7WUFDRjs7ZUFFRztZQUNILG9CQUFvQixFQUFFLE1BQU07WUFFNUI7O2VBRUc7WUFDSCxTQUFTLEVBQUUsSUFBSTtZQUVmOztlQUVHO1lBQ0gsY0FBYyxFQUFFLCtCQUFrQixDQUFDLElBQUk7WUFDdkMsV0FBVyxFQUFFLFdBQVc7WUFDeEIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLEtBQUs7WUFDcEQsY0FBYyxFQUFFLGNBQWM7WUFDOUIsT0FBTyxFQUFFLEtBQUs7WUFF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TyxDQUFDLDhCQUE4QixHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBNU5ELDhDQTROQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGVzY3JpcHQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQge1xuICBOb2RlUGFja2FnZU1hbmFnZXIsXG4gIFRyYW5zZm9ybSxcbiAgVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLFxufSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBSZWxlYXNlVHJpZ2dlciB9IGZyb20gXCJwcm9qZW4vbGliL3JlbGVhc2VcIjtcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcInRzLWRlZXBtZXJnZVwiO1xuaW1wb3J0IHsgTW9ub3JlcG9Qcm9qZWN0IH0gZnJvbSBcIi4vbW9ub3JlcG8tcHJvamVjdFwiO1xuaW1wb3J0IHsgUG5wbVdvcmtzcGFjZSB9IGZyb20gXCIuLi9wbnBtXCI7XG5pbXBvcnQgeyBSZXNldFRhc2ssIFJlc2V0VGFza09wdGlvbnMgfSBmcm9tIFwiLi4vdGFza3MvcmVzZXQtdGFza1wiO1xuaW1wb3J0IHsgVHVyYm9SZXBvIH0gZnJvbSBcIi4uL3R1cmJvXCI7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSBcIi4uL3ZlcnNpb25zXCI7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBUeXBlU2NyaXB0UHJvamVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBPbWl0PFxuICB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyxcbiAgXCJkZWZhdWx0UmVsZWFzZUJyYW5jaFwiXG4+IHtcbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUgcmVzZXQgdGFzayB0aGF0IGRlbGV0ZXMgYWxsIGJ1aWxkIGFydGlmYWN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzZXRUYXNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIHJlc2V0IHRhc2suXG4gICAqL1xuICByZWFkb25seSByZXNldFRhc2tPcHRpb25zPzogUmVzZXRUYXNrT3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRQcm9qZWN0IGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKHVzZXJPcHRpb25zOiBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICAvKipcbiAgICAgKiBEZWZhdWx0IFBOUE0gdmVyc2lvbiB0byB1c2UuIFRoaXMgd2lsbCBlaXRoZXIgY29tZSBmcm9tIHRoZSBNb25vUmVwb1xuICAgICAqIHJvb3Qgb3IgZnJvbSB0aGUgZGVmYXVsdCBzcGVjaWZpZWQgaW4gY29uZmlndWxhdG9yLiBJZiB0aGUgdXNlciBwYXNzZXNcbiAgICAgKiBpbiBhIGRpZmZlcmVudCBwbnBtVmVyc2lvbiBpdCB3aWxsIGFsc28gb3ZlcnJpZGUgdGhpcy5cbiAgICAgKi9cbiAgICBjb25zdCBwbnBtVmVyc2lvbiA9XG4gICAgICB1c2VyT3B0aW9ucy5wYXJlbnQgJiYgdXNlck9wdGlvbnMucGFyZW50IGluc3RhbmNlb2YgTW9ub3JlcG9Qcm9qZWN0XG4gICAgICAgID8gdXNlck9wdGlvbnMucGFyZW50LnBucG1WZXJzaW9uXG4gICAgICAgIDogVkVSU0lPTi5QTlBNX1ZFUlNJT047XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIHBucG0gd29ya3NwYWNlIGZyb20gdGhlIHBhcmVudCBwcm9qZWN0LlxuICAgICAqL1xuICAgIGNvbnN0IHBucG1Xb3Jrc3BhY2UgPVxuICAgICAgdXNlck9wdGlvbnMucGFyZW50ICYmIHVzZXJPcHRpb25zLnBhcmVudCBpbnN0YW5jZW9mIE1vbm9yZXBvUHJvamVjdFxuICAgICAgICA/IFBucG1Xb3Jrc3BhY2Uub2YodXNlck9wdGlvbnMucGFyZW50IGFzIE1vbm9yZXBvUHJvamVjdClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogRGVmYXVsdCBPcHRpb25zXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IE9taXQ8VHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBcIm5hbWVcIj4gJiB7XG4gICAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogc3RyaW5nO1xuICAgIH0gPSB7XG4gICAgICAvKipcbiAgICAgICAqIFRoaXMgaXMgYSBzdGFuZGFyZCwgc28gZG9uJ3QgcmVxdWlyZSBpdCB0byBwYXNzZWQgaW4gZXZlcnl3aGVyZS5cbiAgICAgICAqL1xuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6IFwibWFpblwiLFxuXG4gICAgICAvKipcbiAgICAgICAqIEVuYWJsZSByZXNldCB0YXNrIGJ5IGRlZmF1bHQuXG4gICAgICAgKi9cbiAgICAgIHJlc2V0VGFzazogdHJ1ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBQYWNrYWdpbmcgb3B0aW9uc1xuICAgICAgICovXG4gICAgICBwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0sXG4gICAgICBwbnBtVmVyc2lvbjogcG5wbVZlcnNpb24sXG4gICAgICBsaWNlbnNlZDogdXNlck9wdGlvbnMubGljZW5zZSAhPT0gdW5kZWZpbmVkIHx8IGZhbHNlLFxuICAgICAgY29weXJpZ2h0T3duZXI6IFwiQ29kZURyaWZ0ZXJzXCIsXG4gICAgICByZWxlYXNlOiBmYWxzZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEb24ndCBhZGQgc2FtcGxlIGNvZGUuXG4gICAgICAgKi9cbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuXG4gICAgICAvKipcbiAgICAgICAqIE1ha2Ugc3VyZSBqZXN0IGNvbmZpZyBpcyBzdG9yZWQgb3V0c2lkZSBvZiBwYWNrYWdlLmpzb25cbiAgICAgICAqL1xuICAgICAgamVzdE9wdGlvbnM6IHtcbiAgICAgICAgY29uZmlnRmlsZVBhdGg6IFwiamVzdC5jb25maWcuanNvblwiLFxuICAgICAgICBqZXN0Q29uZmlnOiB7XG4gICAgICAgICAgcm9vdHM6IFtgPHJvb3REaXI+L3NyY2BdLFxuICAgICAgICAgIHRyYW5zZm9ybToge1xuICAgICAgICAgICAgW1wiXi4rXFxcXC5bdF1zeD8kXCJdOiBuZXcgVHJhbnNmb3JtKFwiQHN3Yy9qZXN0XCIpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbW9kdWxlRmlsZUV4dGVuc2lvbnM6IFtcImpzXCIsIFwidHNcIl0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIFR1cm4gb24gcHJldHRpZXIgZm9ybWF0dGluZ1xuICAgICAgICovXG4gICAgICBwcmV0dGllcjogdHJ1ZSxcblxuICAgICAgLyoqXG4gICAgICAgKiBTV0MgZm9yIGZhc3RlciB0ZXN0aW5nXG4gICAgICAgKi9cbiAgICAgIGRldkRlcHM6IFtcIkBzd2MvamVzdFwiLCBcIkBzd2MvY29yZVwiXSxcblxuICAgICAgLyoqXG4gICAgICAgKiBEb24ndCBwYWNrYWdlIHRlc3QgZmlsZXMuXG4gICAgICAgKi9cbiAgICAgIG5wbUlnbm9yZU9wdGlvbnM6IHtcbiAgICAgICAgaWdub3JlUGF0dGVybnM6IFtcIiouc3BlYy4qXCIsIFwiKi50ZXN0LipcIl0sXG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIE9wdGlvbnMgZm9yIHRoZSBhdXRvbWF0ZWQgZGVwZW5kZW5jeSB1cGdyYWRlIHRhc2sgLyB3b3JrZmxvd1xuICAgICAgICogQXV0b21hdGljYWxseSBleGNsdWRlIGFueSBwYWNrYWdlcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5IHRoZSByb290XG4gICAgICAgKiBwcm9qZWN0IGFzIGRlZmF1bHQgY2F0YWxvZyBkZXBlbmRlbmNpZXMgc2luY2Ugd2Ugd2FudCB0byBsZXQgdGhlXG4gICAgICAgKiBjYXRhbG9nIG1hbmFnZSB0aG9zZSBkZXBlbmRlbmNpZXMuXG4gICAgICAgKi9cbiAgICAgIGRlcHNVcGdyYWRlOiB0cnVlLFxuICAgICAgZGVwc1VwZ3JhZGVPcHRpb25zOiB7XG4gICAgICAgIHdvcmtmbG93OiBmYWxzZSxcbiAgICAgICAgZXhjbHVkZTogT2JqZWN0LmtleXMocG5wbVdvcmtzcGFjZT8uZGVmYXVsdENhdGFsb2cgfHwge30pLFxuICAgICAgICAuLi4odXNlck9wdGlvbnMucGFyZW50ICYmIHVzZXJPcHRpb25zLnBhcmVudCBpbnN0YW5jZW9mIE1vbm9yZXBvUHJvamVjdFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICB3b3JrZmxvd09wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzY2hlZHVsZTogVXBncmFkZURlcGVuZGVuY2llc1NjaGVkdWxlLldFRUtMWSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY29vbGRvd246IDEsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIE9ubHkgcmVsZWFzZSB3aGVuIHRoZSBwYWNrYWdlIGZvbGRlciBzb3VyY2NlIGNvbnRlbnQgY2hhbmdlc1xuICAgICAgICovXG4gICAgICByZWxlYXNlVHJpZ2dlcjogUmVsZWFzZVRyaWdnZXIuY29udGludW91cyh7XG4gICAgICAgIHBhdGhzOiBbYCR7dXNlck9wdGlvbnMub3V0ZGlyfS9zcmMvKipgXSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogTWVyZ2UgZGVmYXVsdHMgaW50byB1c2VyIG9wdGlvbnNcbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCBvcHRpb25zOiBUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgJlxuICAgICAgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgPSBtZXJnZShkZWZhdWx0T3B0aW9ucywgdXNlck9wdGlvbnMpO1xuXG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgamVzdCBzaW5jZSB3ZSd2ZSBzd2FwcGVkIGluIEBzd2MvamVzdCBpbnN0ZWFkIG9mIHRzLWplc3QuXG4gICAgICovXG4gICAgdGhpcy5kZXBzLnJlbW92ZURlcGVuZGVuY3koXCJ0cy1qZXN0XCIpO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lmeSBwYWNrYWdlIG1hbmFnZXJcbiAgICAgKi9cbiAgICB0aGlzLnBhY2thZ2UuZmlsZS5hZGRPdmVycmlkZShcbiAgICAgIFwicGFja2FnZU1hbmFnZXJcIixcbiAgICAgIGBwbnBtQCR7b3B0aW9ucy5wbnBtVmVyc2lvbn1gLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIERpc2FibGUgdGhpcyBydWxlIGZvciBhbGwgdGVzdCBmaWxlcy5cbiAgICAgKlxuICAgICAqIFVubGVzcyB3ZSB0dXJuIHRoaXMgb2ZmLCBFU0xpbnQgd2lsbCBzdWdnZXN0IHRoYXQgYW55dGhpbmcgZm91bmQgaW4gYSB0ZXN0XG4gICAgICogbmVlZHMgdG8gYmUgYSBkZXAgaW5zdGVhZCBvZiBhIGRldkRlcC4gUHJvamVuIGFjdHVhbGx5IGFscmVhZHkgdHVybnMgb2ZmXG4gICAgICogdGhlIHJ1bGUgZm9yIGZpbGVzIGluIHRoZSB0ZXN0cy8qIGZvbGRlciBidXQgc2luY2Ugd2UgY29tbW9ubHkgcHV0IHRlc3RzXG4gICAgICogbmV4dCB0byB0aGUgY29kZSBpdCdzIHRlc3RpbmcsIHdlIG5lZWQgdG8gZG8gdGhpcyBvdXJzZWx2ZXMuXG4gICAgICpcbiAgICAgKi9cbiAgICB0aGlzLmVzbGludD8uYWRkT3ZlcnJpZGUoe1xuICAgICAgZmlsZXM6IFtcIioqLyoudGVzdC4qXCIsIFwiKiovKi5zcGVjLipcIl0sXG4gICAgICBydWxlczoge1xuICAgICAgICBcImltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1wiOiBcIm9mZlwiLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFNvbWUgc3RhbmRhcmQgaWdub3JlcyBmb3IgYWxsIHByb2plY3RzLlxuICAgICAqL1xuICAgIHRoaXMuZ2l0aWdub3JlPy5hZGRQYXR0ZXJucyhcIi5EU19TdG9yZVwiKTtcbiAgICB0aGlzLm5wbWlnbm9yZT8uYWRkUGF0dGVybnMoXCIqLnNwZWMuKlwiLCBcIioudGVzdC4qXCIsIFwiX19maXh0dXJlc19fXCIpO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHVyYm8gaXMgYWN0aXZlIGluIHRoZSBwYXJlbnQgcHJvamVjdCwgY29uZmlndXJlIGl0IGhlcmUuXG4gICAgICovXG4gICAgY29uc3QgdHVyYm9BY3RpdmUgPVxuICAgICAgdXNlck9wdGlvbnMucGFyZW50ICYmIFR1cmJvUmVwby5vZih1c2VyT3B0aW9ucy5wYXJlbnQpICE9PSB1bmRlZmluZWQ7XG4gICAgaWYgKHR1cmJvQWN0aXZlKSB7XG4gICAgICBjb25zdCB0dXJibyA9IG5ldyBUdXJib1JlcG8odGhpcyk7XG4gICAgICB0dXJiby5jb21waWxlVGFzaz8ub3V0cHV0cy5wdXNoKFwiZGlzdC8qKlwiKTtcbiAgICAgIHR1cmJvLmNvbXBpbGVUYXNrPy5vdXRwdXRzLnB1c2goXCJsaWIvKipcIik7XG4gICAgICAvL3R1cmJvLnRlc3RUYXNrPy5pbnB1dHMucHVzaChcInNyYy8qKlwiKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgcmVzZXQgdGFzayBpZiBlbmFibGVkLlxuICAgICAqL1xuICAgIGlmIChvcHRpb25zLnJlc2V0VGFzayAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRSZXNldFRhc2tPcHRpb25zOiBSZXNldFRhc2tPcHRpb25zID0ge1xuICAgICAgICBwYXRoc1RvUmVtb3ZlOiBbXG4gICAgICAgICAgXCJub2RlX21vZHVsZXNcIixcbiAgICAgICAgICBcImRpc3RcIixcbiAgICAgICAgICBcImxpYlwiLFxuICAgICAgICAgIFwiY292ZXJhZ2VcIixcbiAgICAgICAgICBcInRlc3QtcmVwb3J0c1wiLFxuICAgICAgICAgIFwiLnR1cmJvXCIsXG4gICAgICAgICAgXCJ0c2NvbmZpZy50c2J1aWxkaW5mb1wiLFxuICAgICAgICAgIHRoaXMuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVzZXJSZXNldFRhc2tPcHRpb25zID0gb3B0aW9ucy5yZXNldFRhc2tPcHRpb25zID8/IHt9O1xuICAgICAgY29uc3QgcmVzZXRUYXNrT3B0aW9uczogUmVzZXRUYXNrT3B0aW9ucyA9IG1lcmdlKFxuICAgICAgICBkZWZhdWx0UmVzZXRUYXNrT3B0aW9ucyxcbiAgICAgICAge1xuICAgICAgICAgIC4uLnVzZXJSZXNldFRhc2tPcHRpb25zLFxuICAgICAgICAgIHBhdGhzVG9SZW1vdmU6IFtcbiAgICAgICAgICAgIC4uLihkZWZhdWx0UmVzZXRUYXNrT3B0aW9ucy5wYXRoc1RvUmVtb3ZlID8/IFtdKSxcbiAgICAgICAgICAgIC4uLih1c2VyUmVzZXRUYXNrT3B0aW9ucy5wYXRoc1RvUmVtb3ZlID8/IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIG5ldyBSZXNldFRhc2sodGhpcywgcmVzZXRUYXNrT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cblxuICAgIGlmIChvcHRpb25zLnBhcmVudCAmJiBvcHRpb25zLnBhcmVudCBpbnN0YW5jZW9mIE1vbm9yZXBvUHJvamVjdCkge1xuICAgICAgLy8gSW5zdGFsbCBkZXBlbmRlbmNpZXMgdmlhIHRoZSBwYXJlbnQgcHJvamVjdFxuICAgICAgLyogQHRzLWlnbm9yZSBhY2Nlc3MgcHJpdmF0ZSBtZXRob2QgKi9cbiAgICAgIGNvbnN0IG9yaWdpbmFsUmVzb2x2ZSA9IHRoaXMucGFja2FnZS5yZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb247XG4gICAgICAvKiBAdHMtaWdub3JlIGFjY2VzcyBwcml2YXRlIG1ldGhvZCAqL1xuICAgICAgdGhpcy5wYWNrYWdlLmluc3RhbGxEZXBlbmRlbmNpZXMgPSAoKSA9PiB7XG4gICAgICAgIChvcHRpb25zLnBhcmVudCBhcyBNb25vcmVwb1Byb2plY3QpLnJlcXVlc3RJbnN0YWxsRGVwZW5kZW5jaWVzKHtcbiAgICAgICAgICByZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb246ICgpID0+XG4gICAgICAgICAgICBvcmlnaW5hbFJlc29sdmUuYXBwbHkodGhpcy5wYWNrYWdlKSxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgICAgLyogQHRzLWlnbm9yZSBhY2Nlc3MgcHJpdmF0ZSBtZXRob2QgKi9cbiAgICAgIHRoaXMucGFja2FnZS5yZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb24gPSAoKSA9PiB7fTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
package/lib/versions.d.ts CHANGED
@@ -4,17 +4,17 @@ export declare const VERSION: {
4
4
  *
5
5
  * CLI and lib are versioned separately, so this is the CLI version.
6
6
  */
7
- readonly AWS_CDK_CLI_VERSION: "2.1100.3";
7
+ readonly AWS_CDK_CLI_VERSION: "2.1104.0";
8
8
  /**
9
9
  * CDK Version to use for construct projects.
10
10
  *
11
11
  * CLI and lib are versioned separately, so this is the lib version.
12
12
  */
13
- readonly AWS_CDK_LIB_VERSION: "2.234.1";
13
+ readonly AWS_CDK_LIB_VERSION: "2.237.1";
14
14
  /**
15
15
  * Version of the AWS Constructs library to use.
16
16
  */
17
- readonly AWS_CONSTRUCTS_VERSION: "10.4.4";
17
+ readonly AWS_CONSTRUCTS_VERSION: "10.4.5";
18
18
  /**
19
19
  * Version of Node.js to use in CI workflows at github actions.
20
20
  */
@@ -22,13 +22,13 @@ export declare const VERSION: {
22
22
  /**
23
23
  * Version of PNPM to use in workflows at github actions.
24
24
  */
25
- readonly PNPM_VERSION: "10.28.0";
25
+ readonly PNPM_VERSION: "10.28.2";
26
26
  /**
27
27
  * Version of Projen to use.
28
28
  */
29
- readonly PROJEN_VERSION: "0.99.1";
29
+ readonly PROJEN_VERSION: "0.99.9";
30
30
  /**
31
31
  * What version of the turborepo library should we use?
32
32
  */
33
- readonly TURBO_VERSION: "2.7.3";
33
+ readonly TURBO_VERSION: "2.8.2";
34
34
  };
package/lib/versions.js CHANGED
@@ -7,17 +7,17 @@ exports.VERSION = {
7
7
  *
8
8
  * CLI and lib are versioned separately, so this is the CLI version.
9
9
  */
10
- AWS_CDK_CLI_VERSION: "2.1100.3",
10
+ AWS_CDK_CLI_VERSION: "2.1104.0",
11
11
  /**
12
12
  * CDK Version to use for construct projects.
13
13
  *
14
14
  * CLI and lib are versioned separately, so this is the lib version.
15
15
  */
16
- AWS_CDK_LIB_VERSION: "2.234.1",
16
+ AWS_CDK_LIB_VERSION: "2.237.1",
17
17
  /**
18
18
  * Version of the AWS Constructs library to use.
19
19
  */
20
- AWS_CONSTRUCTS_VERSION: "10.4.4",
20
+ AWS_CONSTRUCTS_VERSION: "10.4.5",
21
21
  /**
22
22
  * Version of Node.js to use in CI workflows at github actions.
23
23
  */
@@ -25,14 +25,14 @@ exports.VERSION = {
25
25
  /**
26
26
  * Version of PNPM to use in workflows at github actions.
27
27
  */
28
- PNPM_VERSION: "10.28.0",
28
+ PNPM_VERSION: "10.28.2",
29
29
  /**
30
30
  * Version of Projen to use.
31
31
  */
32
- PROJEN_VERSION: "0.99.1",
32
+ PROJEN_VERSION: "0.99.9",
33
33
  /**
34
34
  * What version of the turborepo library should we use?
35
35
  */
36
- TURBO_VERSION: "2.7.3",
36
+ TURBO_VERSION: "2.8.2",
37
37
  };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdmVyc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxPQUFPLEdBQUc7SUFDckI7Ozs7T0FJRztJQUNILG1CQUFtQixFQUFFLFVBQVU7SUFFL0I7Ozs7T0FJRztJQUNILG1CQUFtQixFQUFFLFNBQVM7SUFFOUI7O09BRUc7SUFDSCxzQkFBc0IsRUFBRSxRQUFRO0lBRWhDOztPQUVHO0lBQ0gsY0FBYyxFQUFFLElBQUk7SUFFcEI7O09BRUc7SUFDSCxZQUFZLEVBQUUsU0FBUztJQUV2Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxRQUFRO0lBRXhCOztPQUVHO0lBQ0gsYUFBYSxFQUFFLE9BQU87Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSB7XG4gIC8qKlxuICAgKiBDREsgQ0xJIGZvciB3b3JrZmxvd3MgYW5kIGNvbW1hbmQgbGluZSBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBDTEkgYW5kIGxpYiBhcmUgdmVyc2lvbmVkIHNlcGFyYXRlbHksIHNvIHRoaXMgaXMgdGhlIENMSSB2ZXJzaW9uLlxuICAgKi9cbiAgQVdTX0NES19DTElfVkVSU0lPTjogXCIyLjExMDAuM1wiLFxuXG4gIC8qKlxuICAgKiBDREsgVmVyc2lvbiB0byB1c2UgZm9yIGNvbnN0cnVjdCBwcm9qZWN0cy5cbiAgICpcbiAgICogQ0xJIGFuZCBsaWIgYXJlIHZlcnNpb25lZCBzZXBhcmF0ZWx5LCBzbyB0aGlzIGlzIHRoZSBsaWIgdmVyc2lvbi5cbiAgICovXG4gIEFXU19DREtfTElCX1ZFUlNJT046IFwiMi4yMzQuMVwiLFxuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBBV1MgQ29uc3RydWN0cyBsaWJyYXJ5IHRvIHVzZS5cbiAgICovXG4gIEFXU19DT05TVFJVQ1RTX1ZFUlNJT046IFwiMTAuNC40XCIsXG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgTm9kZS5qcyB0byB1c2UgaW4gQ0kgd29ya2Zsb3dzIGF0IGdpdGh1YiBhY3Rpb25zLlxuICAgKi9cbiAgTk9ERV9XT1JLRkxPV1M6IFwiMjRcIixcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBQTlBNIHRvIHVzZSBpbiB3b3JrZmxvd3MgYXQgZ2l0aHViIGFjdGlvbnMuXG4gICAqL1xuICBQTlBNX1ZFUlNJT046IFwiMTAuMjguMFwiLFxuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIFByb2plbiB0byB1c2UuXG4gICAqL1xuICBQUk9KRU5fVkVSU0lPTjogXCIwLjk5LjFcIixcblxuICAvKipcbiAgICogV2hhdCB2ZXJzaW9uIG9mIHRoZSB0dXJib3JlcG8gbGlicmFyeSBzaG91bGQgd2UgdXNlP1xuICAgKi9cbiAgVFVSQk9fVkVSU0lPTjogXCIyLjcuM1wiLFxufSBhcyBjb25zdDtcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdmVyc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxPQUFPLEdBQUc7SUFDckI7Ozs7T0FJRztJQUNILG1CQUFtQixFQUFFLFVBQVU7SUFFL0I7Ozs7T0FJRztJQUNILG1CQUFtQixFQUFFLFNBQVM7SUFFOUI7O09BRUc7SUFDSCxzQkFBc0IsRUFBRSxRQUFRO0lBRWhDOztPQUVHO0lBQ0gsY0FBYyxFQUFFLElBQUk7SUFFcEI7O09BRUc7SUFDSCxZQUFZLEVBQUUsU0FBUztJQUV2Qjs7T0FFRztJQUNILGNBQWMsRUFBRSxRQUFRO0lBRXhCOztPQUVHO0lBQ0gsYUFBYSxFQUFFLE9BQU87Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSB7XG4gIC8qKlxuICAgKiBDREsgQ0xJIGZvciB3b3JrZmxvd3MgYW5kIGNvbW1hbmQgbGluZSBvcGVyYXRpb25zLlxuICAgKlxuICAgKiBDTEkgYW5kIGxpYiBhcmUgdmVyc2lvbmVkIHNlcGFyYXRlbHksIHNvIHRoaXMgaXMgdGhlIENMSSB2ZXJzaW9uLlxuICAgKi9cbiAgQVdTX0NES19DTElfVkVSU0lPTjogXCIyLjExMDQuMFwiLFxuXG4gIC8qKlxuICAgKiBDREsgVmVyc2lvbiB0byB1c2UgZm9yIGNvbnN0cnVjdCBwcm9qZWN0cy5cbiAgICpcbiAgICogQ0xJIGFuZCBsaWIgYXJlIHZlcnNpb25lZCBzZXBhcmF0ZWx5LCBzbyB0aGlzIGlzIHRoZSBsaWIgdmVyc2lvbi5cbiAgICovXG4gIEFXU19DREtfTElCX1ZFUlNJT046IFwiMi4yMzcuMVwiLFxuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBBV1MgQ29uc3RydWN0cyBsaWJyYXJ5IHRvIHVzZS5cbiAgICovXG4gIEFXU19DT05TVFJVQ1RTX1ZFUlNJT046IFwiMTAuNC41XCIsXG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgTm9kZS5qcyB0byB1c2UgaW4gQ0kgd29ya2Zsb3dzIGF0IGdpdGh1YiBhY3Rpb25zLlxuICAgKi9cbiAgTk9ERV9XT1JLRkxPV1M6IFwiMjRcIixcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiBQTlBNIHRvIHVzZSBpbiB3b3JrZmxvd3MgYXQgZ2l0aHViIGFjdGlvbnMuXG4gICAqL1xuICBQTlBNX1ZFUlNJT046IFwiMTAuMjguMlwiLFxuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIFByb2plbiB0byB1c2UuXG4gICAqL1xuICBQUk9KRU5fVkVSU0lPTjogXCIwLjk5LjlcIixcblxuICAvKipcbiAgICogV2hhdCB2ZXJzaW9uIG9mIHRoZSB0dXJib3JlcG8gbGlicmFyeSBzaG91bGQgd2UgdXNlP1xuICAgKi9cbiAgVFVSQk9fVkVSU0lPTjogXCIyLjguMlwiLFxufSBhcyBjb25zdDtcbiJdfQ==
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "@typescript-eslint/eslint-plugin": "^8",
18
18
  "@typescript-eslint/parser": "^8",
19
19
  "commit-and-tag-version": "^12",
20
- "constructs": "10.4.4",
20
+ "constructs": "10.4.5",
21
21
  "eslint": "^9",
22
22
  "eslint-config-prettier": "^10.1.8",
23
23
  "eslint-import-resolver-typescript": "^4.4.4",
@@ -26,12 +26,12 @@
26
26
  "jest": "^30.2.0",
27
27
  "jest-junit": "^16",
28
28
  "prettier": "^3.7.4",
29
- "projen": "0.99.1",
29
+ "projen": "0.99.9",
30
30
  "typescript": "^5.9.3"
31
31
  },
32
32
  "peerDependencies": {
33
- "constructs": "10.4.4",
34
- "projen": "0.99.1"
33
+ "constructs": "10.4.5",
34
+ "projen": "0.99.9"
35
35
  },
36
36
  "dependencies": {
37
37
  "@jsii/spec": "^1.121.0",
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "main": "lib/index.js",
43
43
  "license": "MIT",
44
- "version": "0.0.84",
44
+ "version": "0.0.86",
45
45
  "types": "lib/index.d.ts",
46
46
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\".",
47
47
  "scripts": {
@@ -52,12 +52,14 @@
52
52
  "eslint": "npx projen eslint",
53
53
  "package": "npx projen package",
54
54
  "post-compile": "npx projen post-compile",
55
+ "post-upgrade": "npx projen post-upgrade",
55
56
  "pre-compile": "npx projen pre-compile",
56
57
  "release": "npx projen release",
57
58
  "reset": "npx projen reset",
58
59
  "test": "npx projen test",
59
60
  "test:watch": "npx projen test:watch",
60
61
  "unbump": "npx projen unbump",
62
+ "upgrade": "npx projen upgrade",
61
63
  "watch": "npx projen watch",
62
64
  "projen": "npx projen"
63
65
  }