cdklabs-projen-project-types 0.2.5 → 0.2.7

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/lib/jsii.js CHANGED
@@ -28,5 +28,5 @@ class CdkJsiiProject extends projen_1.cdk.JsiiProject {
28
28
  }
29
29
  exports.CdkJsiiProject = CdkJsiiProject;
30
30
  _a = JSII_RTTI_SYMBOL_1;
31
- CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.2.5" };
31
+ CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.2.7" };
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2lpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTZCO0FBRTdCLHFEQUF3RjtBQUV4Rjs7OztHQUlHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsWUFBRyxDQUFDLFdBQVc7SUFHakQsWUFBWSxPQUE4QjtRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDO1lBQ3JDLEdBQUcsT0FBTztZQUNWLGtEQUFrRDtZQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsYUFBYTtTQUN4RCxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUM7WUFDSixHQUFHLElBQUk7WUFDUCxzREFBc0Q7WUFDdEQsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQy9CLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU1QixJQUFBLDBDQUF5QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQWpCSCx3Q0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ2RrSnNpaVByb2plY3RPcHRpb25zIH0gZnJvbSAnLi9jZGstanNpaS1vcHRpb25zJztcbmltcG9ydCB7IGNvbmZpZ3VyZUNvbW1vbkNvbXBvbmVudHMsIHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMgfSBmcm9tICcuL2NvbW1vbi1vcHRpb25zJztcblxuLyoqXG4gKiBDcmVhdGUgYSBDZGsgSnNpaSBKc2lpIHByb2plY3RcbiAqXG4gKiBAcGppZCBjZGstanNpaS1wcm9qXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtKc2lpUHJvamVjdCBleHRlbmRzIGNkay5Kc2lpUHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcml2YXRlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka0pzaWlQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB3aXRoQ29tbW9uT3B0aW9uc0RlZmF1bHRzKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAvLyBhbHNvIGFjY2VwdCB0aGUgZGVwcmVjYXRlZCByZXBvc2l0b3J5VXJsIG9wdGlvblxuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucy5yZXBvc2l0b3J5ID8/IG9wdGlvbnMucmVwb3NpdG9yeVVybCxcbiAgICB9KTtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRzLFxuICAgICAgLy8gdXBzdHJlYW0gSnNpaVByb2plY3QgdXNlcyBhIGRpZmZlcmVudCBuYW1lIGZvciB0aGlzXG4gICAgICByZXBvc2l0b3J5VXJsOiBvcHRzLnJlcG9zaXRvcnksXG4gICAgfSk7XG4gICAgdGhpcy5wcml2YXRlID0gb3B0cy5wcml2YXRlO1xuXG4gICAgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgfVxufVxuIl19
package/lib/rosetta.js CHANGED
@@ -48,5 +48,5 @@ class Rosetta extends projen_1.Component {
48
48
  }
49
49
  exports.Rosetta = Rosetta;
50
50
  _a = JSII_RTTI_SYMBOL_1;
51
- Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.2.5" };
51
+ Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.2.7" };
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zZXR0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3NldHRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9EO0FBa0JwRDs7Ozs7R0FLRztBQUNILE1BQWEsT0FBUSxTQUFRLGtCQUFTO0lBQ3BDLFlBQVksT0FBd0IsRUFBRSxVQUEwQixFQUFFO1FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVHQUF1RyxDQUFDLENBQUM7UUFDL0gsQ0FBQztRQUVELGFBQWE7UUFDYixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDeEYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ3JELFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsSUFBSSxFQUFFLHNDQUFzQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO1NBQzlFLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFO1lBQ3BELFFBQVEsRUFBRTtnQkFDUixxREFBcUQ7Z0JBQ3JELHlDQUF5QztnQkFDekMsVUFBVTtnQkFDVixVQUFVO2dCQUNWLHVCQUF1QjtnQkFDdkIsRUFBRTtnQkFDRiwrQkFBK0I7Z0JBQy9CLCtDQUErQztnQkFDL0MsdUJBQXVCO2dCQUN2QixFQUFFO2dCQUNGLGNBQWM7Z0JBQ2QsS0FBSztnQkFDTCxHQUFHO2FBQ0osQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O0FBdENILDBCQXVDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgU2FtcGxlRmlsZSwgY2RrIH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGludGVyZmFjZSBSb3NldHRhT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzdHJpY3QgbW9kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0IGFuIGV4cGxpY2l0IHZlcnNpb24gb2Ygcm9zZXR0YS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB2ZXJzaW9uIGlzIHNldCwgdXNlIGF1dG9tYXRpYyBkZXRlY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIFJvc2V0dGEgY29tcG9uZW50IGFkZHMgYnVpbHRpbiByb3NldHRhIHN1cHBvcnRcbiAqIGZvciBhIGNvbnN0cnVjdCBsaWJyYXJ5LiBTaW5jZSBDb25zdHJ1Y3RIdWIgd2lsbCBydW5cbiAqIHJvc2V0dGEgZm9yIHJlYWwsIHRoaXMganVzdCBhZGRzIGEgY2hlY2sgdG8gdGhlIGJ1aWxkIHRvXG4gKiBlbnN1cmUgdGhhdCByb3NldHRhIHdpbGwgcnVuIHN1Y2Nlc3NmdWxseVxuICovXG5leHBvcnQgY2xhc3MgUm9zZXR0YSBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IGNkay5Kc2lpUHJvamVjdCwgb3B0aW9uczogUm9zZXR0YU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3Qgc3RyaWN0ID0gb3B0aW9ucy5zdHJpY3QgPz8gdHJ1ZTtcblxuICAgIGlmICghc3RyaWN0KSB7XG4gICAgICBwcm9qZWN0LmxvZ2dlci53YXJuKCdSb3NldHRhIGlzIE5PVCBvcGVyYXRpbmcgaW4gc3RyaWN0IG1vZGUuIFdlIGFyZSBnb2luZyB0byBlbmZvcmNlIHRoaXMgc29vbi5cXG5QbGVhc2UgZml4IGFueSBleGFtcGxlcy4nKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgRGV2RGVwXG4gICAgY29uc3Qgcm9zZXR0YURlcCA9IG9wdGlvbnMudmVyc2lvbiA/IGBqc2lpLXJvc2V0dGFAJHtvcHRpb25zLnZlcnNpb259YCA6ICdqc2lpLXJvc2V0dGEnO1xuICAgIHByb2plY3QuYWRkRGV2RGVwcyhyb3NldHRhRGVwKTtcblxuICAgIGNvbnN0IHJvc2V0dGFUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdyb3NldHRhOmV4dHJhY3QnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1Rlc3Qgcm9zZXR0YSBleHRyYWN0JyxcbiAgICAgIGV4ZWM6IGB5YXJuIC0tc2lsZW50IGpzaWktcm9zZXR0YSBleHRyYWN0ICR7c3RyaWN0ID8gJy0tc3RyaWN0JyA6ICcnfWAudHJpbSgpLFxuICAgIH0pO1xuICAgIHByb2plY3QucG9zdENvbXBpbGVUYXNrLnNwYXduKHJvc2V0dGFUYXNrKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLmpzaWkudGFibC5qc29uJyk7XG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgJ3Jvc2V0dGEvZGVmYXVsdC50cy1maXh0dXJlJywge1xuICAgICAgY29udGVudHM6IFtcbiAgICAgICAgJy8vIEZpeHR1cmUgd2l0aCBwYWNrYWdlcyBpbXBvcnRlZCwgYnV0IG5vdGhpbmcgZWxzZScsXG4gICAgICAgIFwiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XCIsXG4gICAgICAgICdpbXBvcnQgeycsXG4gICAgICAgICcgIFN0YWNrLCcsXG4gICAgICAgIFwifSBmcm9tICdhd3MtY2RrLWxpYic7XCIsXG4gICAgICAgICcnLFxuICAgICAgICAnY2xhc3MgRml4dHVyZSBleHRlbmRzIFN0YWNrIHsnLFxuICAgICAgICAnICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7JyxcbiAgICAgICAgJyAgICBzdXBlcihzY29wZSwgaWQpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8vLyBoZXJlJyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICd9JyxcbiAgICAgIF0uam9pbignXFxuJyksXG4gICAgfSk7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoJyEvcm9zZXR0YS9kZWZhdWx0LnRzLWZpeHR1cmUnKTtcbiAgfVxufVxuIl19
@@ -1 +1,2 @@
1
- export {};
1
+ export declare function cliMain(): void;
2
+ export declare function main(argv: string[], packageDirectory: string): void;
@@ -1,48 +1,76 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cliMain = cliMain;
4
+ exports.main = main;
3
5
  const fs_1 = require("fs");
4
- function main() {
5
- if (process.argv.includes('--help')) {
6
- console.log('Usage: gather-versions [PACKAGE] [VERSION-MATCH] --deps [DEPENDENCIES]\n');
7
- console.log('Positionals:');
8
- console.log(' PACKAGE\tThe name of the package to gather versions for');
9
- console.log(' VERSION-MATCH\tHow dependency constraints are defined. One of: MAJOR (^), MINOR (~), EXACT');
10
- console.log(' DEPENDENCIES\tNames of the dependencies to gather versions from.');
6
+ function cliMain() {
7
+ main(process.argv.slice(1), process.cwd());
8
+ }
9
+ function main(argv, packageDirectory) {
10
+ if (argv.includes('--help')) {
11
+ console.error('Usage: gather-versions [PKG=TYPE] [PKG=TYPE] [...]\n');
12
+ console.error('Positionals:');
13
+ console.error(' PKG\tPackage name.');
14
+ console.error(' TYPE\tmajor | minor | exact | minimal');
15
+ process.exitCode = 1;
11
16
  return;
12
17
  }
13
- const [packageName, versionMatch, _dashDashDeps, ...deps] = process.argv.slice(1);
14
- const manifest = dependencyInfo(packageName);
15
- const prefix = versionConstraint(versionMatch);
16
- for (const dep of deps) {
17
- const depVersion = dependencyInfo(dep).version;
18
- console.log(dep, depVersion);
19
- if (manifest.devDependencies?.[dep]) {
20
- manifest.devDependencies[dep] = prefix + depVersion;
21
- }
22
- if (manifest.dependencies?.[dep]) {
23
- manifest.dependencies[dep] = prefix + depVersion;
18
+ const deps = Object.fromEntries(argv.map(x => x.split('=', 2)));
19
+ // The PJ file we are updating
20
+ const targetPjFile = `${packageDirectory ?? '.'}/package.json`;
21
+ const manifest = JSON.parse((0, fs_1.readFileSync)(targetPjFile, 'utf-8'));
22
+ const changeReport = {
23
+ name: manifest.name,
24
+ version: manifest.version,
25
+ };
26
+ for (const [dep, depType] of Object.entries(deps)) {
27
+ const depVersion = dependencyInfo(dep, packageDirectory).version;
28
+ const runtimePrefix = prefixFromRange(depType);
29
+ const dependencyClasses = [
30
+ ['dependencies', runtimePrefix],
31
+ ['peerDependencies', runtimePrefix],
32
+ // It doesn't matter what we do for devDependencies (might even do
33
+ // nothing), but it feels like nice form to show the exact version we used
34
+ // when we built this package.
35
+ ['devDependencies', ''],
36
+ ];
37
+ for (const [depSection, prefix] of dependencyClasses) {
38
+ const updatedRange = prefix + depVersion;
39
+ if (manifest[depSection]?.[dep]) {
40
+ manifest[depSection][dep] = updatedRange;
41
+ // Also update the report so that we can print what we did.
42
+ // The below syntax works regardless of whether depSection already
43
+ // exists or not, and only adds depSection if there are changes in it.
44
+ changeReport[depSection] = {
45
+ ...changeReport[depSection],
46
+ [dep]: updatedRange,
47
+ };
48
+ }
24
49
  }
25
- (0, fs_1.writeFileSync)('package.json', JSON.stringify(manifest, null, 2) + '\n');
26
50
  }
51
+ // Print a report of what we did
52
+ console.log('Updated versions', JSON.stringify(changeReport, undefined, 2));
53
+ (0, fs_1.writeFileSync)(targetPjFile, JSON.stringify(manifest, null, 2) + '\n');
27
54
  }
28
- function dependencyInfo(dependency) {
55
+ function dependencyInfo(dependency, searchDirectory) {
29
56
  // Search needs to be w.r.t. the current directory, otherwise it is w.r.t. the current
30
57
  // file and that doesn't work if `cdklabs-projen-project-types` is locally symlinked.
31
- return JSON.parse((0, fs_1.readFileSync)(require.resolve(`${dependency}/package.json`, { paths: [process.cwd()] })).toString());
58
+ // This will throw if the resolution fails
59
+ const pjLoc = require.resolve(`${dependency}/package.json`, { paths: [searchDirectory] });
60
+ return JSON.parse((0, fs_1.readFileSync)(pjLoc, 'utf-8'));
32
61
  }
33
- function versionConstraint(versionMatch) {
34
- switch (versionMatch.toUpperCase()) {
35
- case 'MAJOR':
36
- case '^':
62
+ function prefixFromRange(x) {
63
+ switch (x) {
64
+ case 'major':
37
65
  return '^';
38
- case 'MINOR':
39
- case '~':
66
+ case 'minor':
40
67
  return '~';
41
- case 'EXACT':
68
+ case 'exact':
42
69
  return '';
70
+ case 'minimal':
71
+ return '>=';
43
72
  default:
44
- throw new Error(`Unknown VERSION-MATCH: ${versionMatch}`);
73
+ throw new Error(`Unknown range type: ${x}`);
45
74
  }
46
75
  }
47
- main();
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0aGVyLXZlcnNpb25zLmV4ZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9nYXRoZXItdmVyc2lvbnMuZXhlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJCQUFpRDtBQUVqRCxTQUFTLElBQUk7SUFDWCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO1FBQ3hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUM1RyxPQUFPLENBQUMsR0FBRyxDQUFDLG9FQUFvRSxDQUFDLENBQUM7UUFDbEYsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFN0MsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdCLElBQUksUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3RELENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUNuRCxDQUFDO1FBRUQsSUFBQSxrQkFBYSxFQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxVQUFrQjtJQUN4QyxzRkFBc0Y7SUFDdEYscUZBQXFGO0lBQ3JGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFBLGlCQUFZLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFVBQVUsZUFBZSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN4SCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxZQUFvQjtJQUM3QyxRQUFRLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ25DLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxHQUFHO1lBQ04sT0FBTyxHQUFHLENBQUM7UUFDYixLQUFLLE9BQU8sQ0FBQztRQUNiLEtBQUssR0FBRztZQUNOLE9BQU8sR0FBRyxDQUFDO1FBQ2IsS0FBSyxPQUFPO1lBQ1YsT0FBTyxFQUFFLENBQUM7UUFDWjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYyB9IGZyb20gJ2ZzJztcblxuZnVuY3Rpb24gbWFpbigpIHtcbiAgaWYgKHByb2Nlc3MuYXJndi5pbmNsdWRlcygnLS1oZWxwJykpIHtcbiAgICBjb25zb2xlLmxvZygnVXNhZ2U6IGdhdGhlci12ZXJzaW9ucyBbUEFDS0FHRV0gW1ZFUlNJT04tTUFUQ0hdIC0tZGVwcyBbREVQRU5ERU5DSUVTXVxcbicpO1xuICAgIGNvbnNvbGUubG9nKCdQb3NpdGlvbmFsczonKTtcbiAgICBjb25zb2xlLmxvZygnICBQQUNLQUdFXFx0VGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UgdG8gZ2F0aGVyIHZlcnNpb25zIGZvcicpO1xuICAgIGNvbnNvbGUubG9nKCcgIFZFUlNJT04tTUFUQ0hcXHRIb3cgZGVwZW5kZW5jeSBjb25zdHJhaW50cyBhcmUgZGVmaW5lZC4gT25lIG9mOiBNQUpPUiAoXiksIE1JTk9SICh+KSwgRVhBQ1QnKTtcbiAgICBjb25zb2xlLmxvZygnICBERVBFTkRFTkNJRVNcXHROYW1lcyBvZiB0aGUgZGVwZW5kZW5jaWVzIHRvIGdhdGhlciB2ZXJzaW9ucyBmcm9tLicpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IFtwYWNrYWdlTmFtZSwgdmVyc2lvbk1hdGNoLCBfZGFzaERhc2hEZXBzLCAuLi5kZXBzXSA9IHByb2Nlc3MuYXJndi5zbGljZSgxKTtcblxuICBjb25zdCBtYW5pZmVzdCA9IGRlcGVuZGVuY3lJbmZvKHBhY2thZ2VOYW1lKTtcblxuICBjb25zdCBwcmVmaXggPSB2ZXJzaW9uQ29uc3RyYWludCh2ZXJzaW9uTWF0Y2gpO1xuXG4gIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcbiAgICBjb25zdCBkZXBWZXJzaW9uID0gZGVwZW5kZW5jeUluZm8oZGVwKS52ZXJzaW9uO1xuICAgIGNvbnNvbGUubG9nKGRlcCwgZGVwVmVyc2lvbik7XG4gICAgaWYgKG1hbmlmZXN0LmRldkRlcGVuZGVuY2llcz8uW2RlcF0pIHtcbiAgICAgIG1hbmlmZXN0LmRldkRlcGVuZGVuY2llc1tkZXBdID0gcHJlZml4ICsgZGVwVmVyc2lvbjtcbiAgICB9XG4gICAgaWYgKG1hbmlmZXN0LmRlcGVuZGVuY2llcz8uW2RlcF0pIHtcbiAgICAgIG1hbmlmZXN0LmRlcGVuZGVuY2llc1tkZXBdID0gcHJlZml4ICsgZGVwVmVyc2lvbjtcbiAgICB9XG5cbiAgICB3cml0ZUZpbGVTeW5jKCdwYWNrYWdlLmpzb24nLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdCwgbnVsbCwgMikgKyAnXFxuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVwZW5kZW5jeUluZm8oZGVwZW5kZW5jeTogc3RyaW5nKTogYW55IHtcbiAgLy8gU2VhcmNoIG5lZWRzIHRvIGJlIHcuci50LiB0aGUgY3VycmVudCBkaXJlY3RvcnksIG90aGVyd2lzZSBpdCBpcyB3LnIudC4gdGhlIGN1cnJlbnRcbiAgLy8gZmlsZSBhbmQgdGhhdCBkb2Vzbid0IHdvcmsgaWYgYGNka2xhYnMtcHJvamVuLXByb2plY3QtdHlwZXNgIGlzIGxvY2FsbHkgc3ltbGlua2VkLlxuICByZXR1cm4gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMocmVxdWlyZS5yZXNvbHZlKGAke2RlcGVuZGVuY3l9L3BhY2thZ2UuanNvbmAsIHsgcGF0aHM6IFtwcm9jZXNzLmN3ZCgpXSB9KSkudG9TdHJpbmcoKSk7XG59XG5cbmZ1bmN0aW9uIHZlcnNpb25Db25zdHJhaW50KHZlcnNpb25NYXRjaDogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoICh2ZXJzaW9uTWF0Y2gudG9VcHBlckNhc2UoKSkge1xuICAgIGNhc2UgJ01BSk9SJzpcbiAgICBjYXNlICdeJzpcbiAgICAgIHJldHVybiAnXic7XG4gICAgY2FzZSAnTUlOT1InOlxuICAgIGNhc2UgJ34nOlxuICAgICAgcmV0dXJuICd+JztcbiAgICBjYXNlICdFWEFDVCc6XG4gICAgICByZXR1cm4gJyc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBWRVJTSU9OLU1BVENIOiAke3ZlcnNpb25NYXRjaH1gKTtcbiAgfVxufVxuXG5tYWluKCk7XG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0aGVyLXZlcnNpb25zLmV4ZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9nYXRoZXItdmVyc2lvbnMuZXhlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDBCQUVDO0FBRUQsb0JBdURDO0FBN0RELDJCQUFpRDtBQUVqRCxTQUFnQixPQUFPO0lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBZ0IsSUFBSSxDQUFDLElBQWMsRUFBRSxnQkFBd0I7SUFDM0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUN6RCxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNyQixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBcUIsQ0FBQyxDQUFDLENBQUM7SUFFcEYsOEJBQThCO0lBQzlCLE1BQU0sWUFBWSxHQUFHLEdBQUcsZ0JBQWdCLElBQUksR0FBRyxlQUFlLENBQUM7SUFFL0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFBLGlCQUFZLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakUsTUFBTSxZQUFZLEdBQVE7UUFDeEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1FBQ25CLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztLQUMxQixDQUFDO0lBRUYsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUvQyxNQUFNLGlCQUFpQixHQUFHO1lBQ3hCLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQztZQUMvQixDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQztZQUNuQyxrRUFBa0U7WUFDbEUsMEVBQTBFO1lBQzFFLDhCQUE4QjtZQUM5QixDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztTQUN4QixDQUFDO1FBRUYsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDckQsTUFBTSxZQUFZLEdBQUcsTUFBTSxHQUFHLFVBQVUsQ0FBQztZQUV6QyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUM7Z0JBRXpDLDJEQUEyRDtnQkFDM0Qsa0VBQWtFO2dCQUNsRSxzRUFBc0U7Z0JBQ3RFLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRztvQkFDekIsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO29CQUMzQixDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVk7aUJBQ3BCLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU1RSxJQUFBLGtCQUFhLEVBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUN4RSxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsVUFBa0IsRUFBRSxlQUF1QjtJQUNqRSxzRkFBc0Y7SUFDdEYscUZBQXFGO0lBRXJGLDBDQUEwQztJQUMxQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsVUFBVSxlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUEsaUJBQVksRUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsQ0FBUztJQUNoQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ1YsS0FBSyxPQUFPO1lBQ1YsT0FBTyxHQUFHLENBQUM7UUFDYixLQUFLLE9BQU87WUFDVixPQUFPLEdBQUcsQ0FBQztRQUNiLEtBQUssT0FBTztZQUNWLE9BQU8sRUFBRSxDQUFDO1FBQ1osS0FBSyxTQUFTO1lBQ1osT0FBTyxJQUFJLENBQUM7UUFDZDtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWFkRmlsZVN5bmMsIHdyaXRlRmlsZVN5bmMgfSBmcm9tICdmcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGlNYWluKCkge1xuICBtYWluKHByb2Nlc3MuYXJndi5zbGljZSgxKSwgcHJvY2Vzcy5jd2QoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWluKGFyZ3Y6IHN0cmluZ1tdLCBwYWNrYWdlRGlyZWN0b3J5OiBzdHJpbmcpIHtcbiAgaWYgKGFyZ3YuaW5jbHVkZXMoJy0taGVscCcpKSB7XG4gICAgY29uc29sZS5lcnJvcignVXNhZ2U6IGdhdGhlci12ZXJzaW9ucyBbUEtHPVRZUEVdIFtQS0c9VFlQRV0gWy4uLl1cXG4nKTtcbiAgICBjb25zb2xlLmVycm9yKCdQb3NpdGlvbmFsczonKTtcbiAgICBjb25zb2xlLmVycm9yKCcgIFBLR1xcdFBhY2thZ2UgbmFtZS4nKTtcbiAgICBjb25zb2xlLmVycm9yKCcgIFRZUEVcXHRtYWpvciB8IG1pbm9yIHwgZXhhY3QgfCBtaW5pbWFsJyk7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgZGVwcyA9IE9iamVjdC5mcm9tRW50cmllcyhhcmd2Lm1hcCh4ID0+IHguc3BsaXQoJz0nLCAyKSBhcyBbc3RyaW5nLCBzdHJpbmddKSk7XG5cbiAgLy8gVGhlIFBKIGZpbGUgd2UgYXJlIHVwZGF0aW5nXG4gIGNvbnN0IHRhcmdldFBqRmlsZSA9IGAke3BhY2thZ2VEaXJlY3RvcnkgPz8gJy4nfS9wYWNrYWdlLmpzb25gO1xuXG4gIGNvbnN0IG1hbmlmZXN0ID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmModGFyZ2V0UGpGaWxlLCAndXRmLTgnKSk7XG4gIGNvbnN0IGNoYW5nZVJlcG9ydDogYW55ID0ge1xuICAgIG5hbWU6IG1hbmlmZXN0Lm5hbWUsXG4gICAgdmVyc2lvbjogbWFuaWZlc3QudmVyc2lvbixcbiAgfTtcblxuICBmb3IgKGNvbnN0IFtkZXAsIGRlcFR5cGVdIG9mIE9iamVjdC5lbnRyaWVzKGRlcHMpKSB7XG4gICAgY29uc3QgZGVwVmVyc2lvbiA9IGRlcGVuZGVuY3lJbmZvKGRlcCwgcGFja2FnZURpcmVjdG9yeSkudmVyc2lvbjtcbiAgICBjb25zdCBydW50aW1lUHJlZml4ID0gcHJlZml4RnJvbVJhbmdlKGRlcFR5cGUpO1xuXG4gICAgY29uc3QgZGVwZW5kZW5jeUNsYXNzZXMgPSBbXG4gICAgICBbJ2RlcGVuZGVuY2llcycsIHJ1bnRpbWVQcmVmaXhdLFxuICAgICAgWydwZWVyRGVwZW5kZW5jaWVzJywgcnVudGltZVByZWZpeF0sXG4gICAgICAvLyBJdCBkb2Vzbid0IG1hdHRlciB3aGF0IHdlIGRvIGZvciBkZXZEZXBlbmRlbmNpZXMgKG1pZ2h0IGV2ZW4gZG9cbiAgICAgIC8vIG5vdGhpbmcpLCBidXQgaXQgZmVlbHMgbGlrZSBuaWNlIGZvcm0gdG8gc2hvdyB0aGUgZXhhY3QgdmVyc2lvbiB3ZSB1c2VkXG4gICAgICAvLyB3aGVuIHdlIGJ1aWx0IHRoaXMgcGFja2FnZS5cbiAgICAgIFsnZGV2RGVwZW5kZW5jaWVzJywgJyddLFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IFtkZXBTZWN0aW9uLCBwcmVmaXhdIG9mIGRlcGVuZGVuY3lDbGFzc2VzKSB7XG4gICAgICBjb25zdCB1cGRhdGVkUmFuZ2UgPSBwcmVmaXggKyBkZXBWZXJzaW9uO1xuXG4gICAgICBpZiAobWFuaWZlc3RbZGVwU2VjdGlvbl0/LltkZXBdKSB7XG4gICAgICAgIG1hbmlmZXN0W2RlcFNlY3Rpb25dW2RlcF0gPSB1cGRhdGVkUmFuZ2U7XG5cbiAgICAgICAgLy8gQWxzbyB1cGRhdGUgdGhlIHJlcG9ydCBzbyB0aGF0IHdlIGNhbiBwcmludCB3aGF0IHdlIGRpZC5cbiAgICAgICAgLy8gVGhlIGJlbG93IHN5bnRheCB3b3JrcyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgZGVwU2VjdGlvbiBhbHJlYWR5XG4gICAgICAgIC8vIGV4aXN0cyBvciBub3QsIGFuZCBvbmx5IGFkZHMgZGVwU2VjdGlvbiBpZiB0aGVyZSBhcmUgY2hhbmdlcyBpbiBpdC5cbiAgICAgICAgY2hhbmdlUmVwb3J0W2RlcFNlY3Rpb25dID0ge1xuICAgICAgICAgIC4uLmNoYW5nZVJlcG9ydFtkZXBTZWN0aW9uXSxcbiAgICAgICAgICBbZGVwXTogdXBkYXRlZFJhbmdlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFByaW50IGEgcmVwb3J0IG9mIHdoYXQgd2UgZGlkXG4gIGNvbnNvbGUubG9nKCdVcGRhdGVkIHZlcnNpb25zJywgSlNPTi5zdHJpbmdpZnkoY2hhbmdlUmVwb3J0LCB1bmRlZmluZWQsIDIpKTtcblxuICB3cml0ZUZpbGVTeW5jKHRhcmdldFBqRmlsZSwgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QsIG51bGwsIDIpICsgJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBkZXBlbmRlbmN5SW5mbyhkZXBlbmRlbmN5OiBzdHJpbmcsIHNlYXJjaERpcmVjdG9yeTogc3RyaW5nKTogYW55IHtcbiAgLy8gU2VhcmNoIG5lZWRzIHRvIGJlIHcuci50LiB0aGUgY3VycmVudCBkaXJlY3RvcnksIG90aGVyd2lzZSBpdCBpcyB3LnIudC4gdGhlIGN1cnJlbnRcbiAgLy8gZmlsZSBhbmQgdGhhdCBkb2Vzbid0IHdvcmsgaWYgYGNka2xhYnMtcHJvamVuLXByb2plY3QtdHlwZXNgIGlzIGxvY2FsbHkgc3ltbGlua2VkLlxuXG4gIC8vIFRoaXMgd2lsbCB0aHJvdyBpZiB0aGUgcmVzb2x1dGlvbiBmYWlsc1xuICBjb25zdCBwakxvYyA9IHJlcXVpcmUucmVzb2x2ZShgJHtkZXBlbmRlbmN5fS9wYWNrYWdlLmpzb25gLCB7IHBhdGhzOiBbc2VhcmNoRGlyZWN0b3J5XSB9KTtcbiAgcmV0dXJuIEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBqTG9jLCAndXRmLTgnKSk7XG59XG5cbmZ1bmN0aW9uIHByZWZpeEZyb21SYW5nZSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKHgpIHtcbiAgICBjYXNlICdtYWpvcic6XG4gICAgICByZXR1cm4gJ14nO1xuICAgIGNhc2UgJ21pbm9yJzpcbiAgICAgIHJldHVybiAnfic7XG4gICAgY2FzZSAnZXhhY3QnOlxuICAgICAgcmV0dXJuICcnO1xuICAgIGNhc2UgJ21pbmltYWwnOlxuICAgICAgcmV0dXJuICc+PSc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biByYW5nZSB0eXBlOiAke3h9YCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,16 +1,17 @@
1
1
  import { TaskOptions, TaskStep } from 'projen';
2
- import { TypeScriptWorkspace } from './typescript-workspace';
3
- export declare enum VersionMatch {
4
- MAJOR = "MAJOR",
5
- MINOR = "MINOR",
6
- EXACT = "EXACT"
2
+ import { TypeScriptWorkspace, VersionType } from './typescript-workspace';
3
+ export interface GatherVersionsOptions {
4
+ /**
5
+ * For regular and peer dependencies only, the type of dependency we take on each package
6
+ */
7
+ readonly repoRuntimeDependencies: Record<string, VersionType>;
7
8
  }
8
9
  export declare class GatherVersions implements TaskOptions, TaskStep {
9
10
  readonly project: TypeScriptWorkspace;
10
- readonly versionMatch: VersionMatch;
11
- get exec(): string;
12
11
  receiveArgs: boolean;
13
- constructor(project: TypeScriptWorkspace, versionMatch: VersionMatch);
12
+ private repoDependencies;
13
+ constructor(project: TypeScriptWorkspace, options: GatherVersionsOptions);
14
+ get exec(): string;
14
15
  toJSON(): {
15
16
  exec: string;
16
17
  receiveArgs: boolean;
@@ -1,26 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GatherVersions = exports.VersionMatch = void 0;
3
+ exports.GatherVersions = void 0;
4
4
  const node_fs_1 = require("node:fs");
5
5
  const node_path_1 = require("node:path");
6
- var VersionMatch;
7
- (function (VersionMatch) {
8
- VersionMatch["MAJOR"] = "MAJOR";
9
- VersionMatch["MINOR"] = "MINOR";
10
- VersionMatch["EXACT"] = "EXACT";
11
- })(VersionMatch || (exports.VersionMatch = VersionMatch = {}));
6
+ const projen_1 = require("projen");
12
7
  class GatherVersions {
13
- get exec() {
14
- const main = `require(path.join(path.dirname(require.resolve('${currentPackageName()}')), 'yarn', 'gather-versions.exec.js'))`;
15
- return `node -e "${main}" ${this.project.name} ${this.versionMatch} --deps ${this.project
16
- .workspaceDependencies()
17
- .map((d) => d.name)
18
- .join(' ')}`;
19
- }
20
- constructor(project, versionMatch) {
8
+ constructor(project, options) {
21
9
  this.project = project;
22
- this.versionMatch = versionMatch;
23
10
  this.receiveArgs = true;
11
+ // Start by building a list of all repo devdependencies and map them to an 'exact' dependency,
12
+ // then add in the runtime dependencies. Only devs and peers can clash this way, peer will win.
13
+ const wsDeps = new Set(this.project.workspaceDependencies().map(p => p.name));
14
+ const repoDevDependencies = Object.fromEntries(devDeps(this.project)
15
+ .filter(d => wsDeps.has(d.name))
16
+ .map((d) => [d.name, 'exact']));
17
+ this.repoDependencies = {
18
+ ...repoDevDependencies,
19
+ ...options.repoRuntimeDependencies,
20
+ };
21
+ }
22
+ get exec() {
23
+ // We must resolve paths at runtime to avoid writing '/home/$USER/...' into the `tasks.json` file
24
+ const main = `require(require.resolve('${currentPackageName()}/lib/yarn/gather-versions.exec.js')).cliMain()`;
25
+ return `node -e "${main}" ${Object.entries(this.repoDependencies).map(([d, r]) => `${d}=${r}`)}`;
24
26
  }
25
27
  toJSON() {
26
28
  return {
@@ -30,8 +32,11 @@ class GatherVersions {
30
32
  }
31
33
  }
32
34
  exports.GatherVersions = GatherVersions;
35
+ function devDeps(p) {
36
+ return p.deps.all.filter(d => [projen_1.DependencyType.BUILD, projen_1.DependencyType.DEVENV, projen_1.DependencyType.TEST].includes(d.type));
37
+ }
33
38
  function currentPackageName() {
34
39
  const pkg = JSON.parse((0, node_fs_1.readFileSync)(require.resolve((0, node_path_1.join)(__dirname, '..', '..', 'package.json'))).toString());
35
40
  return pkg.name;
36
41
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0aGVyLXZlcnNpb25zLnRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9nYXRoZXItdmVyc2lvbnMudGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBdUM7QUFDdkMseUNBQWlDO0FBSWpDLElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUN0QiwrQkFBZSxDQUFBO0lBQ2YsK0JBQWUsQ0FBQTtJQUNmLCtCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLFlBQVksNEJBQVosWUFBWSxRQUl2QjtBQUVELE1BQWEsY0FBYztJQUN6QixJQUFXLElBQUk7UUFDYixNQUFNLElBQUksR0FBRyxtREFBbUQsa0JBQWtCLEVBQUUsMENBQTBDLENBQUM7UUFDL0gsT0FBTyxZQUFZLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxXQUFXLElBQUksQ0FBQyxPQUFPO2FBQ3RGLHFCQUFxQixFQUFFO2FBQ3ZCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBR0QsWUFBbUMsT0FBNEIsRUFBa0IsWUFBMEI7UUFBeEUsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFBa0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFGcEcsZ0JBQVcsR0FBRyxJQUFJLENBQUM7SUFFb0YsQ0FBQztJQUV4RyxNQUFNO1FBQ1gsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztTQUM5QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbEJELHdDQWtCQztBQUVELFNBQVMsa0JBQWtCO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBQSxzQkFBWSxFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBQSxnQkFBSSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IFRhc2tPcHRpb25zLCBUYXNrU3RlcCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBUeXBlU2NyaXB0V29ya3NwYWNlIH0gZnJvbSAnLi90eXBlc2NyaXB0LXdvcmtzcGFjZSc7XG5cbmV4cG9ydCBlbnVtIFZlcnNpb25NYXRjaCB7XG4gIE1BSk9SID0gJ01BSk9SJyxcbiAgTUlOT1IgPSAnTUlOT1InLFxuICBFWEFDVCA9ICdFWEFDVCcsXG59XG5cbmV4cG9ydCBjbGFzcyBHYXRoZXJWZXJzaW9ucyBpbXBsZW1lbnRzIFRhc2tPcHRpb25zLCBUYXNrU3RlcCB7XG4gIHB1YmxpYyBnZXQgZXhlYygpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1haW4gPSBgcmVxdWlyZShwYXRoLmpvaW4ocGF0aC5kaXJuYW1lKHJlcXVpcmUucmVzb2x2ZSgnJHtjdXJyZW50UGFja2FnZU5hbWUoKX0nKSksICd5YXJuJywgJ2dhdGhlci12ZXJzaW9ucy5leGVjLmpzJykpYDtcbiAgICByZXR1cm4gYG5vZGUgLWUgXCIke21haW59XCIgJHt0aGlzLnByb2plY3QubmFtZX0gJHt0aGlzLnZlcnNpb25NYXRjaH0gLS1kZXBzICR7dGhpcy5wcm9qZWN0XG4gICAgICAud29ya3NwYWNlRGVwZW5kZW5jaWVzKClcbiAgICAgIC5tYXAoKGQpID0+IGQubmFtZSlcbiAgICAgIC5qb2luKCcgJyl9YDtcbiAgfVxuICBwdWJsaWMgcmVjZWl2ZUFyZ3MgPSB0cnVlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSwgcHVibGljIHJlYWRvbmx5IHZlcnNpb25NYXRjaDogVmVyc2lvbk1hdGNoKSB7fVxuXG4gIHB1YmxpYyB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV4ZWM6IHRoaXMuZXhlYyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0aGlzLnJlY2VpdmVBcmdzLFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gY3VycmVudFBhY2thZ2VOYW1lKCk6IHN0cmluZyB7XG4gIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHJlcXVpcmUucmVzb2x2ZShqb2luKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3BhY2thZ2UuanNvbicpKSkudG9TdHJpbmcoKSk7XG4gIHJldHVybiBwa2cubmFtZTtcbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0aGVyLXZlcnNpb25zLnRhc2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9nYXRoZXItdmVyc2lvbnMudGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBdUM7QUFDdkMseUNBQWlDO0FBQ2pDLG1DQUErRDtBQVUvRCxNQUFhLGNBQWM7SUFLekIsWUFBbUMsT0FBNEIsRUFBRSxPQUE4QjtRQUE1RCxZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUp4RCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUt4Qiw4RkFBOEY7UUFDOUYsK0ZBQStGO1FBQy9GLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU5RSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDakUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFpQyxDQUFDLENBQy9ELENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDdEIsR0FBRyxtQkFBbUI7WUFDdEIsR0FBRyxPQUFPLENBQUMsdUJBQXVCO1NBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsaUdBQWlHO1FBQ2pHLE1BQU0sSUFBSSxHQUFHLDRCQUE0QixrQkFBa0IsRUFBRSxnREFBZ0QsQ0FBQztRQUM5RyxPQUFPLFlBQVksSUFBSSxLQUFLLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNuRyxDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDOUIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpDRCx3Q0FpQ0M7QUFFRCxTQUFTLE9BQU8sQ0FBQyxDQUFzQjtJQUNyQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsdUJBQWMsQ0FBQyxLQUFLLEVBQUUsdUJBQWMsQ0FBQyxNQUFNLEVBQUUsdUJBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDckgsQ0FBQztBQUVELFNBQVMsa0JBQWtCO0lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBQSxzQkFBWSxFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBQSxnQkFBSSxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IERlcGVuZGVuY3lUeXBlLCBUYXNrT3B0aW9ucywgVGFza1N0ZXAgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSwgVmVyc2lvblR5cGUgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBHYXRoZXJWZXJzaW9uc09wdGlvbnMge1xuICAvKipcbiAgICogRm9yIHJlZ3VsYXIgYW5kIHBlZXIgZGVwZW5kZW5jaWVzIG9ubHksIHRoZSB0eXBlIG9mIGRlcGVuZGVuY3kgd2UgdGFrZSBvbiBlYWNoIHBhY2thZ2VcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9SdW50aW1lRGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBWZXJzaW9uVHlwZT47XG59XG5cbmV4cG9ydCBjbGFzcyBHYXRoZXJWZXJzaW9ucyBpbXBsZW1lbnRzIFRhc2tPcHRpb25zLCBUYXNrU3RlcCB7XG4gIHB1YmxpYyByZWNlaXZlQXJncyA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZXBvRGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBWZXJzaW9uVHlwZT47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlLCBvcHRpb25zOiBHYXRoZXJWZXJzaW9uc09wdGlvbnMpIHtcbiAgICAvLyBTdGFydCBieSBidWlsZGluZyBhIGxpc3Qgb2YgYWxsIHJlcG8gZGV2ZGVwZW5kZW5jaWVzIGFuZCBtYXAgdGhlbSB0byBhbiAnZXhhY3QnIGRlcGVuZGVuY3ksXG4gICAgLy8gdGhlbiBhZGQgaW4gdGhlIHJ1bnRpbWUgZGVwZW5kZW5jaWVzLiBPbmx5IGRldnMgYW5kIHBlZXJzIGNhbiBjbGFzaCB0aGlzIHdheSwgcGVlciB3aWxsIHdpbi5cbiAgICBjb25zdCB3c0RlcHMgPSBuZXcgU2V0KHRoaXMucHJvamVjdC53b3Jrc3BhY2VEZXBlbmRlbmNpZXMoKS5tYXAocCA9PiBwLm5hbWUpKTtcblxuICAgIGNvbnN0IHJlcG9EZXZEZXBlbmRlbmNpZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoZGV2RGVwcyh0aGlzLnByb2plY3QpXG4gICAgICAuZmlsdGVyKGQgPT4gd3NEZXBzLmhhcyhkLm5hbWUpKVxuICAgICAgLm1hcCgoZCkgPT4gW2QubmFtZSwgJ2V4YWN0J10gc2F0aXNmaWVzIFtzdHJpbmcsIFZlcnNpb25UeXBlXSksXG4gICAgKTtcblxuICAgIHRoaXMucmVwb0RlcGVuZGVuY2llcyA9IHtcbiAgICAgIC4uLnJlcG9EZXZEZXBlbmRlbmNpZXMsXG4gICAgICAuLi5vcHRpb25zLnJlcG9SdW50aW1lRGVwZW5kZW5jaWVzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4ZWMoKTogc3RyaW5nIHtcbiAgICAvLyBXZSBtdXN0IHJlc29sdmUgcGF0aHMgYXQgcnVudGltZSB0byBhdm9pZCB3cml0aW5nICcvaG9tZS8kVVNFUi8uLi4nIGludG8gdGhlIGB0YXNrcy5qc29uYCBmaWxlXG4gICAgY29uc3QgbWFpbiA9IGByZXF1aXJlKHJlcXVpcmUucmVzb2x2ZSgnJHtjdXJyZW50UGFja2FnZU5hbWUoKX0vbGliL3lhcm4vZ2F0aGVyLXZlcnNpb25zLmV4ZWMuanMnKSkuY2xpTWFpbigpYDtcbiAgICByZXR1cm4gYG5vZGUgLWUgXCIke21haW59XCIgJHtPYmplY3QuZW50cmllcyh0aGlzLnJlcG9EZXBlbmRlbmNpZXMpLm1hcCgoW2QsIHJdKSA9PiBgJHtkfT0ke3J9YCl9YDtcbiAgfVxuXG4gIHB1YmxpYyB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGV4ZWM6IHRoaXMuZXhlYyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0aGlzLnJlY2VpdmVBcmdzLFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gZGV2RGVwcyhwOiBUeXBlU2NyaXB0V29ya3NwYWNlKSB7XG4gIHJldHVybiBwLmRlcHMuYWxsLmZpbHRlcihkID0+IFtEZXBlbmRlbmN5VHlwZS5CVUlMRCwgRGVwZW5kZW5jeVR5cGUuREVWRU5WLCBEZXBlbmRlbmN5VHlwZS5URVNUXS5pbmNsdWRlcyhkLnR5cGUpKTtcbn1cblxuZnVuY3Rpb24gY3VycmVudFBhY2thZ2VOYW1lKCk6IHN0cmluZyB7XG4gIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHJlcXVpcmUucmVzb2x2ZShqb2luKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3BhY2thZ2UuanNvbicpKSkudG9TdHJpbmcoKSk7XG4gIHJldHVybiBwa2cubmFtZTtcbn1cbiJdfQ==
@@ -264,7 +264,7 @@ class MonorepoRelease extends projen_1.Component {
264
264
  }
265
265
  exports.MonorepoRelease = MonorepoRelease;
266
266
  _a = JSII_RTTI_SYMBOL_1;
267
- MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.2.5" };
267
+ MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.2.7" };
268
268
  function slugify(x) {
269
269
  return x.replace(/[^a-zA-Z0-9_-]/g, '-').replace(/^[0-9-]+/, '');
270
270
  }
@@ -214,7 +214,7 @@ class Monorepo extends projen_1.typescript.TypeScriptProject {
214
214
  }
215
215
  exports.Monorepo = Monorepo;
216
216
  _a = JSII_RTTI_SYMBOL_1;
217
- Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.2.5" };
217
+ Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.2.7" };
218
218
  function getObjFromFile(project, file) {
219
219
  return project.tryFindObjectFile(file)?.obj;
220
220
  }
@@ -249,5 +249,5 @@ class CdkLabsMonorepo extends Monorepo {
249
249
  }
250
250
  exports.CdkLabsMonorepo = CdkLabsMonorepo;
251
251
  _b = JSII_RTTI_SYMBOL_1;
252
- CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.2.5" };
252
+ CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.2.7" };
253
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==
@@ -1,4 +1,5 @@
1
1
  import { Component, ReleasableCommits, Version, VersionBranchOptions, release } from 'projen';
2
+ import { GatherVersionsOptions } from './gather-versions.task';
2
3
  import { TypeScriptWorkspace } from './typescript-workspace';
3
4
  export interface WorkspaceReleaseOptions {
4
5
  readonly private: boolean;
@@ -9,6 +10,10 @@ export interface WorkspaceReleaseOptions {
9
10
  readonly releasableCommits?: ReleasableCommits;
10
11
  readonly nextVersionCommand?: string;
11
12
  readonly versionBranchOptions: VersionBranchOptions;
13
+ /**
14
+ * For runtime and peer dependencies, the type of dependency we take on each package
15
+ */
16
+ readonly repoRuntimeDependencies?: GatherVersionsOptions['repoRuntimeDependencies'];
12
17
  }
13
18
  export declare class WorkspaceRelease extends Component {
14
19
  readonly publisher?: release.Publisher;
@@ -54,7 +54,9 @@ class WorkspaceRelease extends projen_1.Component {
54
54
  // Therefor it is guaranteed that any local packages a package depends on,
55
55
  // already have been bumped.
56
56
  const gatherVersions = project.addTask('gather-versions', {
57
- steps: [new gather_versions_task_1.GatherVersions(project, gather_versions_task_1.VersionMatch.MAJOR)],
57
+ steps: [new gather_versions_task_1.GatherVersions(project, {
58
+ repoRuntimeDependencies: options.repoRuntimeDependencies ?? {},
59
+ })],
58
60
  });
59
61
  const bumpTask = this.obtainBumpTask();
60
62
  bumpTask.prependSpawn(gatherVersions);
@@ -105,5 +107,5 @@ class WorkspaceRelease extends projen_1.Component {
105
107
  }
106
108
  exports.WorkspaceRelease = WorkspaceRelease;
107
109
  _a = JSII_RTTI_SYMBOL_1;
108
- WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.2.5" };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsbUNBQW9HO0FBQ3BHLGlFQUFzRTtBQWV0RSxNQUFhLGdCQUFpQixTQUFRLGtCQUFTO0lBSzdDLFlBQW1CLE9BQTRCLEVBQUUsT0FBZ0M7UUFDL0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFFekIsK0RBQStEO1FBQy9ELG1FQUFtRTtRQUNuRSwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUN6QyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsNENBQTRDO2dCQUM5RSxrQkFBa0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCO2dCQUM5QyxnQkFBZ0IsRUFBRTtvQkFDaEIsSUFBSSxFQUFFLEdBQUcsRUFBRSwwRkFBMEY7aUJBQ3RHO2dCQUNELGlEQUFpRDtnQkFDakQsb0RBQW9EO2dCQUNwRCx1REFBdUQ7Z0JBQ3ZELFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUc7Z0JBRTdCLGtFQUFrRTtnQkFDbEUseUVBQXlFO2dCQUN6RSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCLElBQUksMEJBQWlCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztnQkFFbEYsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjthQUMvQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZ0JBQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFB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SyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUMvQixXQUFXLEVBQUUsZ0RBQWdEO2FBQzlELENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7QUFuSEgsNENBb0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBSZWxlYXNhYmxlQ29tbWl0cywgVGFzaywgVmVyc2lvbiwgVmVyc2lvbkJyYW5jaE9wdGlvbnMsIHJlbGVhc2UgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2F0aGVyVmVyc2lvbnMsIFZlcnNpb25NYXRjaCB9IGZyb20gJy4vZ2F0aGVyLXZlcnNpb25zLnRhc2snO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICAvKiogQGRlZmF1bHQgJ2x0cy8qJyAqL1xuICByZWFkb25seSB3b3JrZmxvd05vZGVWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBwdWJsaXNoVG9OcG0/OiBib29sZWFuO1xuICByZWFkb25seSBucG1EaXN0VGFnPzogc3RyaW5nO1xuICByZWFkb25seSByZWxlYXNhYmxlQ29tbWl0cz86IFJlbGVhc2FibGVDb21taXRzO1xuICByZWFkb25seSBuZXh0VmVyc2lvbkNvbW1hbmQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb25CcmFuY2hPcHRpb25zOiBWZXJzaW9uQnJhbmNoT3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVJlbGVhc2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGlzaGVyPzogcmVsZWFzZS5QdWJsaXNoZXI7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogVmVyc2lvbjtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZTogVHlwZVNjcmlwdFdvcmtzcGFjZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSwgb3B0aW9uczogV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLndvcmtzcGFjZSA9IHByb2plY3Q7XG5cbiAgICAvLyBUaGUgcm9vdCBwYWNrYWdlIGlzIHJlbGVhc2UtYXdhcmUuIEVpdGhlciB3ZSBjcmVhdGUgYSBwcm9wZXJcbiAgICAvLyAneWFybiByZWxlYXNlJyB0YXNrIGhlcmUsIG9yIHdlIGNyZWF0ZSBhIGZha2Ugb25lIHRoYXQganVzdCBkb2VzXG4gICAgLy8gYSAnYnVpbGQnICh3aWxsIGJlIHJ1biBpbiBkZXBlbmRlbmN5IG9yZGVyIGJ5IHRoZSBwYXJlbnQgcmVsZWFzZSB0YXNrKS5cbiAgICBpZiAoIW9wdGlvbnMucHJpdmF0ZSkge1xuICAgICAgdGhpcy52ZXJzaW9uID0gbmV3IFZlcnNpb24odGhpcy53b3Jrc3BhY2UsIHtcbiAgICAgICAgdmVyc2lvbklucHV0RmlsZTogJ3BhY2thZ2UuanNvbicsIC8vIHRoaXMgaXMgd2hlcmUgXCJ2ZXJzaW9uXCIgaXMgc2V0IGFmdGVyIGJ1bXBcbiAgICAgICAgYXJ0aWZhY3RzRGlyZWN0b3J5OiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgdmVyc2lvbnJjT3B0aW9uczoge1xuICAgICAgICAgIHBhdGg6ICcuJywgLy8gSW4gYSBtb25vcmVwbywgd2Ugd2FudCBzdGFuZGFyZC12ZXJzaW9uIHRvIG9ubHkgY29uc2lkZXIgdGhlIGRpcmVjdG9yeSBvZiB0aGUgd29ya3NwYWNlXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFRoaXMgbWl4ZXMgdGhlIHBhY2thZ2UgbmFtZSBpbnRvIHRoZSB0YWcgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gZ2l2ZSBwYWNrYWdlcyBpbmRpdmlkdWFsIHZlcnNpb25zLlxuICAgICAgICAvLyBUYWdzIGVuZCB1cCBsb29raW5nIGxpa2UgdGhpczogQHNjb3BlL3BhY2thZ2VAdjEuMi4zXG4gICAgICAgIHRhZ1ByZWZpeDogYCR7cHJvamVjdC5uYW1lfUBgLFxuXG4gICAgICAgIC8vIEluIGEgbW9ub3JlcG8sIG9ubHkgY29uc2lkZXIgY2hhbmdlcyByZWxldmFudCB0byB0aGUgc3VicHJvamVjdFxuICAgICAgICAvLyBQYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBzdWJwcm9qZWN0IG91dGRpciwgc28gJy4nIGlzIHdoYXQgd2Ugd2FudCBoZXJlXG4gICAgICAgIHJlbGVhc2FibGVDb21taXRzOiBvcHRpb25zLnJlbGVhc2FibGVDb21taXRzID8/IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KCcuJyksXG5cbiAgICAgICAgbmV4dFZlcnNpb25Db21tYW5kOiBvcHRpb25zLm5leHRWZXJzaW9uQ29tbWFuZCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlciA9IG5ldyByZWxlYXNlLlB1Ymxpc2hlcih0aGlzLndvcmtzcGFjZSwge1xuICAgICAgICBhcnRpZmFjdE5hbWU6IHByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICBjb25kaXRpb246ICduZWVkcy5yZWxlYXNlLm91dHB1dHMubGF0ZXN0X2NvbW1pdCA9PSBnaXRodWIuc2hhJyxcbiAgICAgICAgYnVpbGRKb2JJZDogJ3JlbGVhc2UnLFxuICAgICAgICB3b3JrZmxvd05vZGVWZXJzaW9uOiBvcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gJ2x0cy8qJyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9HaXRIdWJSZWxlYXNlcyh7XG4gICAgICAgIGNoYW5nZWxvZ0ZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLmNoYW5nZWxvZ0ZpbGVOYW1lKSxcbiAgICAgICAgdmVyc2lvbkZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLnZlcnNpb25GaWxlTmFtZSksXG4gICAgICAgIHJlbGVhc2VUYWdGaWxlOiBwYXRoLnBvc2l4LmpvaW4ocHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbi5yZWxlYXNlVGFnRmlsZU5hbWUpLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEdpdEh1YiBSZWxlYXNlcyBjb21lcyBmb3IgZnJlZSB3aXRoIGEgYFJlbGVhc2VgIGNvbXBvbmVudCwgTlBNIG11c3QgYmUgYWRkZWQgZXhwbGljaXRseVxuICAgICAgaWYgKG9wdGlvbnMucHVibGlzaFRvTnBtID8/IHRydWUpIHtcbiAgICAgICAgdGhpcy5wdWJsaXNoZXIucHVibGlzaFRvTnBtKHtcbiAgICAgICAgICByZWdpc3RyeTogcHJvamVjdC5wYWNrYWdlLm5wbVJlZ2lzdHJ5LFxuICAgICAgICAgIG5wbVRva2VuU2VjcmV0OiBwcm9qZWN0LnBhY2thZ2UubnBtVG9rZW5TZWNyZXQsXG4gICAgICAgICAgbnBtUHJvdmVuYW5jZTogcHJvamVjdC5wYWNrYWdlLm5wbVByb3ZlbmFuY2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgdGFza3Mgc2V0cyBhbGwgbG9jYWwgZGVwZW5kZW5jaWVzIHRvIHRoZWlyIGN1cnJlbnQgdmVyc2lvblxuICAgIC8vIEluIHRoZSBtb25vcmVwbyB3ZSBjYWxsIHRoaXMgdGFzayBpbiB0b3BvbG9naWNhbCBvcmRlci5cbiAgICAvLyBUaGVyZWZvciBpdCBpcyBndWFyYW50ZWVkIHRoYXQgYW55IGxvY2FsIHBhY2thZ2VzIGEgcGFja2FnZSBkZXBlbmRzIG9uLFxuICAgIC8vIGFscmVhZHkgaGF2ZSBiZWVuIGJ1bXBlZC5cbiAgICBjb25zdCBnYXRoZXJWZXJzaW9ucyA9IHByb2plY3QuYWRkVGFzaygnZ2F0aGVyLXZlcnNpb25zJywge1xuICAgICAgc3RlcHM6IFtuZXcgR2F0aGVyVmVyc2lvbnMocHJvamVjdCwgVmVyc2lvbk1hdGNoLk1BSk9SKV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBidW1wVGFzayA9IHRoaXMub2J0YWluQnVtcFRhc2soKTtcbiAgICBidW1wVGFzay5wcmVwZW5kU3Bhd24oZ2F0aGVyVmVyc2lvbnMpO1xuICAgIC8vIFRoZSBidW1wVGFzayBuZWVkcyB0byBiZSBleGVjdXRlZCB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGNvbnRyb2xcbiAgICAvLyB2ZXJzaW9uIGluZm9ybWF0aW9uLiBUaGVzZSBhcmUgbm90IHBhcnQgb2YgdGhlIHVwc3RyZWFtIHRhc2sgaXRzZWxmIHlldCxcbiAgICAvLyBzaW5jZSB0aGV5IGFyZSBwYXJ0IG9mIHRoZSBpbnZvY2F0aW9uIHRoZXJlLiBXZSBhbHNvIG5lZWQgdG8gbWFrZSB0aGVtIHBhcnRcbiAgICAvLyBvZiB0aGUgaW52b2NhdGlvbiBoZXJlLlxuICAgIGlmICh0aGlzLnZlcnNpb24pIHtcbiAgICAgIGlmIChvcHRpb25zLnZlcnNpb25CcmFuY2hPcHRpb25zPy50YWdQcmVmaXgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEbyBub3Qgc2V0IHZlcnNpb25CcmFuY2hPcHRpb25zLnRhZ1ByZWZpeDsgaXQgaXMgY29uZmlndXJlZCBhbm90aGVyIHdheScpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy52ZXJzaW9uLmVudkZvckJyYW5jaCh7XG4gICAgICAgIC4uLm9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnMsXG4gICAgICB9KSkpIHtcbiAgICAgICAgYnVtcFRhc2suZW52KGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gQWZ0ZXIgd2UgaGF2ZSB1bmJ1bXBlZCBwYWNrYWdlIHZlcnNpb25zIGJhY2sgdG8gMC4wLjAsXG4gICAgLy8gd2UgY2FuIHJ1biB0aGUgZ2F0aGVyLXZlcnNpb25zIHRhc2sgYWdhaW4gd2hpY2ggd2lsbCBub3cgcmVwbGFjZSB0aGUgdG8tYmUtcmVsZWFzZSB2ZXJzaW9ucyB3aXRoIDAuMC4wXG4gICAgdGhpcy5vYnRhaW5VbmJ1bXBUYXNrKCkuc3Bhd24oZ2F0aGVyVmVyc2lvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYnVtcCB2ZXJzaW9uIHRhc2tcbiAgICpcbiAgICogSWYgdGhpcyBpcyBhIHByaXZhdGUgcGFja2FnZSwgaXQgd29uJ3QgaGF2ZSBhIGJ1bXAgdGFzayB5ZXQuXG4gICAqIFNvIGluc3RlYWQgd2UgY3JlYXRlIGFuIGVtcHR5IG9uZSB0aGF0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbW9ub3JlcG8gcm9vdFxuICAgKiBhbmQgc2VydmUgYXMgYSBjb250YWluZXIgZm9yIG90aGVyIHN0ZXBzIHRoYXQgbmVlZCB0byBvY2N1ciBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlXG4gICAqL1xuICBwcml2YXRlIG9idGFpbkJ1bXBUYXNrKCk6IFRhc2sge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndvcmtzcGFjZS50YXNrcy50cnlGaW5kKCdidW1wJykgPz9cbiAgICAgIHRoaXMud29ya3NwYWNlLmFkZFRhc2soJ2J1bXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQnVtcHMgdmVyc2lvbnMgb2YgbG9jYWwgZGVwZW5kZW5jaWVzJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVuYnVtcCB2ZXJzaW9uIHRhc2tcbiAgICouXG4gICAqIElmIHRoaXMgaXMgYSBwcml2YXRlIHBhY2thZ2UsIGl0IHdvbid0IGhhdmUgYSBidW1wIHRhc2sgeWV0XG4gICAqIFNvIGluc3RlYWQgd2UgY3JlYXRlIGFuIGVtcHR5IG9uZSB0aGF0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbW9ub3JlcG8gcm9vdFxuICAgKiBhbmQgc2VydmUgYXMgYSBjb250YWluZXIgZm9yIG90aGVyIHN0ZXBzIHRoYXQgbmVlZCB0byBvY2N1ciBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlXG4gICAqL1xuICBwcml2YXRlIG9idGFpblVuYnVtcFRhc2soKTogVGFzayB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMud29ya3NwYWNlLnRhc2tzLnRyeUZpbmQoJ3VuYnVtcCcpID8/XG4gICAgICB0aGlzLndvcmtzcGFjZS5hZGRUYXNrKCd1bmJ1bXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmVzZXRzIHZlcnNpb25zIG9mIGxvY2FsIGRlcGVuZGVuY2llcyB0byAwLjAuMCcsXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
110
+ WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.2.7" };
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsbUNBQW9HO0FBQ3BHLGlFQUErRTtBQW9CL0UsTUFBYSxnQkFBaUIsU0FBUSxrQkFBUztJQUs3QyxZQUFtQixPQUE0QixFQUFFLE9BQWdDO1FBQy9FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBRXpCLCtEQUErRDtRQUMvRCxtRUFBbUU7UUFDbkUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDekMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLDRDQUE0QztnQkFDOUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtnQkFDOUMsZ0JBQWdCLEVBQUU7b0JBQ2hCLElBQUksRUFBRSxHQUFHLEVBQUUsMEZBQTBGO2lCQUN0RztnQkFDRCxpREFBaUQ7Z0JBQ2pELG9EQUFvRDtnQkFDcEQsdURBQXVEO2dCQUN2RCxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHO2dCQUU3QixrRUFBa0U7Z0JBQ2xFLHlFQUF5RTtnQkFDekUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixJQUFJLDBCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7Z0JBRWxGLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7YUFDL0MsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVB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Q3RCLE9BQU8sQ0FDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsV0FBVyxFQUFFLGdEQUFnRDthQUM5RCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O0FBckhILDRDQXNIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IENvbXBvbmVudCwgUmVsZWFzYWJsZUNvbW1pdHMsIFRhc2ssIFZlcnNpb24sIFZlcnNpb25CcmFuY2hPcHRpb25zLCByZWxlYXNlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEdhdGhlclZlcnNpb25zLCBHYXRoZXJWZXJzaW9uc09wdGlvbnMgfSBmcm9tICcuL2dhdGhlci12ZXJzaW9ucy50YXNrJztcbmltcG9ydCB7IFR5cGVTY3JpcHRXb3Jrc3BhY2UgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VSZWxlYXNlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHByaXZhdGU6IGJvb2xlYW47XG5cbiAgLyoqIEBkZWZhdWx0ICdsdHMvKicgKi9cbiAgcmVhZG9ubHkgd29ya2Zsb3dOb2RlVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGlzaFRvTnBtPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbnBtRGlzdFRhZz86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVsZWFzYWJsZUNvbW1pdHM/OiBSZWxlYXNhYmxlQ29tbWl0cztcbiAgcmVhZG9ubHkgbmV4dFZlcnNpb25Db21tYW5kPzogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uQnJhbmNoT3B0aW9uczogVmVyc2lvbkJyYW5jaE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEZvciBydW50aW1lIGFuZCBwZWVyIGRlcGVuZGVuY2llcywgdGhlIHR5cGUgb2YgZGVwZW5kZW5jeSB3ZSB0YWtlIG9uIGVhY2ggcGFja2FnZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb1J1bnRpbWVEZXBlbmRlbmNpZXM/OiBHYXRoZXJWZXJzaW9uc09wdGlvbnNbJ3JlcG9SdW50aW1lRGVwZW5kZW5jaWVzJ107XG59XG5cbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VSZWxlYXNlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IHB1Ymxpc2hlcj86IHJlbGVhc2UuUHVibGlzaGVyO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbj86IFZlcnNpb247XG4gIHB1YmxpYyByZWFkb25seSB3b3Jrc3BhY2U6IFR5cGVTY3JpcHRXb3Jrc3BhY2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb2plY3Q6IFR5cGVTY3JpcHRXb3Jrc3BhY2UsIG9wdGlvbnM6IFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG4gICAgdGhpcy53b3Jrc3BhY2UgPSBwcm9qZWN0O1xuXG4gICAgLy8gVGhlIHJvb3QgcGFja2FnZSBpcyByZWxlYXNlLWF3YXJlLiBFaXRoZXIgd2UgY3JlYXRlIGEgcHJvcGVyXG4gICAgLy8gJ3lhcm4gcmVsZWFzZScgdGFzayBoZXJlLCBvciB3ZSBjcmVhdGUgYSBmYWtlIG9uZSB0aGF0IGp1c3QgZG9lc1xuICAgIC8vIGEgJ2J1aWxkJyAod2lsbCBiZSBydW4gaW4gZGVwZW5kZW5jeSBvcmRlciBieSB0aGUgcGFyZW50IHJlbGVhc2UgdGFzaykuXG4gICAgaWYgKCFvcHRpb25zLnByaXZhdGUpIHtcbiAgICAgIHRoaXMudmVyc2lvbiA9IG5ldyBWZXJzaW9uKHRoaXMud29ya3NwYWNlLCB7XG4gICAgICAgIHZlcnNpb25JbnB1dEZpbGU6ICdwYWNrYWdlLmpzb24nLCAvLyB0aGlzIGlzIHdoZXJlIFwidmVyc2lvblwiIGlzIHNldCBhZnRlciBidW1wXG4gICAgICAgIGFydGlmYWN0c0RpcmVjdG9yeTogcHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksXG4gICAgICAgIHZlcnNpb25yY09wdGlvbnM6IHtcbiAgICAgICAgICBwYXRoOiAnLicsIC8vIEluIGEgbW9ub3JlcG8sIHdlIHdhbnQgc3RhbmRhcmQtdmVyc2lvbiB0byBvbmx5IGNvbnNpZGVyIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIHdvcmtzcGFjZVxuICAgICAgICB9LFxuICAgICAgICAvLyBUaGlzIG1peGVzIHRoZSBwYWNrYWdlIG5hbWUgaW50byB0aGUgdGFnIG5hbWUsXG4gICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIGdpdmUgcGFja2FnZXMgaW5kaXZpZHVhbCB2ZXJzaW9ucy5cbiAgICAgICAgLy8gVGFncyBlbmQgdXAgbG9va2luZyBsaWtlIHRoaXM6IEBzY29wZS9wYWNrYWdlQHYxLjIuM1xuICAgICAgICB0YWdQcmVmaXg6IGAke3Byb2plY3QubmFtZX1AYCxcblxuICAgICAgICAvLyBJbiBhIG1vbm9yZXBvLCBvbmx5IGNvbnNpZGVyIGNoYW5nZXMgcmVsZXZhbnQgdG8gdGhlIHN1YnByb2plY3RcbiAgICAgICAgLy8gUGF0aCBpcyByZWxhdGl2ZSB0byB0aGUgc3VicHJvamVjdCBvdXRkaXIsIHNvICcuJyBpcyB3aGF0IHdlIHdhbnQgaGVyZVxuICAgICAgICByZWxlYXNhYmxlQ29tbWl0czogb3B0aW9ucy5yZWxlYXNhYmxlQ29tbWl0cyA/PyBSZWxlYXNhYmxlQ29tbWl0cy5ldmVyeUNvbW1pdCgnLicpLFxuXG4gICAgICAgIG5leHRWZXJzaW9uQ29tbWFuZDogb3B0aW9ucy5uZXh0VmVyc2lvbkNvbW1hbmQsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wdWJsaXNoZXIgPSBuZXcgcmVsZWFzZS5QdWJsaXNoZXIodGhpcy53b3Jrc3BhY2UsIHtcbiAgICAgICAgYXJ0aWZhY3ROYW1lOiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgY29uZGl0aW9uOiAnbmVlZHMucmVsZWFzZS5vdXRwdXRzLmxhdGVzdF9jb21taXQgPT0gZ2l0aHViLnNoYScsXG4gICAgICAgIGJ1aWxkSm9iSWQ6ICdyZWxlYXNlJyxcbiAgICAgICAgd29ya2Zsb3dOb2RlVmVyc2lvbjogb3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uID8/ICdsdHMvKicsXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wdWJsaXNoZXIucHVibGlzaFRvR2l0SHViUmVsZWFzZXMoe1xuICAgICAgICBjaGFuZ2Vsb2dGaWxlOiBwYXRoLnBvc2l4LmpvaW4ocHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbi5jaGFuZ2Vsb2dGaWxlTmFtZSksXG4gICAgICAgIHZlcnNpb25GaWxlOiBwYXRoLnBvc2l4LmpvaW4ocHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbi52ZXJzaW9uRmlsZU5hbWUpLFxuICAgICAgICByZWxlYXNlVGFnRmlsZTogcGF0aC5wb3NpeC5qb2luKHByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5LCB0aGlzLnZlcnNpb24ucmVsZWFzZVRhZ0ZpbGVOYW1lKSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBHaXRIdWIgUmVsZWFzZXMgY29tZXMgZm9yIGZyZWUgd2l0aCBhIGBSZWxlYXNlYCBjb21wb25lbnQsIE5QTSBtdXN0IGJlIGFkZGVkIGV4cGxpY2l0bHlcbiAgICAgIGlmIChvcHRpb25zLnB1Ymxpc2hUb05wbSA/PyB0cnVlKSB7XG4gICAgICAgIHRoaXMucHVibGlzaGVyLnB1Ymxpc2hUb05wbSh7XG4gICAgICAgICAgcmVnaXN0cnk6IHByb2plY3QucGFja2FnZS5ucG1SZWdpc3RyeSxcbiAgICAgICAgICBucG1Ub2tlblNlY3JldDogcHJvamVjdC5wYWNrYWdlLm5wbVRva2VuU2VjcmV0LFxuICAgICAgICAgIG5wbVByb3ZlbmFuY2U6IHByb2plY3QucGFja2FnZS5ucG1Qcm92ZW5hbmNlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGlzIHRhc2tzIHNldHMgYWxsIGxvY2FsIGRlcGVuZGVuY2llcyB0byB0aGVpciBjdXJyZW50IHZlcnNpb25cbiAgICAvLyBJbiB0aGUgbW9ub3JlcG8gd2UgY2FsbCB0aGlzIHRhc2sgaW4gdG9wb2xvZ2ljYWwgb3JkZXIuXG4gICAgLy8gVGhlcmVmb3IgaXQgaXMgZ3VhcmFudGVlZCB0aGF0IGFueSBsb2NhbCBwYWNrYWdlcyBhIHBhY2thZ2UgZGVwZW5kcyBvbixcbiAgICAvLyBhbHJlYWR5IGhhdmUgYmVlbiBidW1wZWQuXG4gICAgY29uc3QgZ2F0aGVyVmVyc2lvbnMgPSBwcm9qZWN0LmFkZFRhc2soJ2dhdGhlci12ZXJzaW9ucycsIHtcbiAgICAgIHN0ZXBzOiBbbmV3IEdhdGhlclZlcnNpb25zKHByb2plY3QsIHtcbiAgICAgICAgcmVwb1J1bnRpbWVEZXBlbmRlbmNpZXM6IG9wdGlvbnMucmVwb1J1bnRpbWVEZXBlbmRlbmNpZXMgPz8ge30sXG4gICAgICB9KV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBidW1wVGFzayA9IHRoaXMub2J0YWluQnVtcFRhc2soKTtcbiAgICBidW1wVGFzay5wcmVwZW5kU3Bhd24oZ2F0aGVyVmVyc2lvbnMpO1xuICAgIC8vIFRoZSBidW1wVGFzayBuZWVkcyB0byBiZSBleGVjdXRlZCB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGNvbnRyb2xcbiAgICAvLyB2ZXJzaW9uIGluZm9ybWF0aW9uLiBUaGVzZSBhcmUgbm90IHBhcnQgb2YgdGhlIHVwc3RyZWFtIHRhc2sgaXRzZWxmIHlldCxcbiAgICAvLyBzaW5jZSB0aGV5IGFyZSBwYXJ0IG9mIHRoZSBpbnZvY2F0aW9uIHRoZXJlLiBXZSBhbHNvIG5lZWQgdG8gbWFrZSB0aGVtIHBhcnRcbiAgICAvLyBvZiB0aGUgaW52b2NhdGlvbiBoZXJlLlxuICAgIGlmICh0aGlzLnZlcnNpb24pIHtcbiAgICAgIGlmIChvcHRpb25zLnZlcnNpb25CcmFuY2hPcHRpb25zPy50YWdQcmVmaXgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEbyBub3Qgc2V0IHZlcnNpb25CcmFuY2hPcHRpb25zLnRhZ1ByZWZpeDsgaXQgaXMgY29uZmlndXJlZCBhbm90aGVyIHdheScpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy52ZXJzaW9uLmVudkZvckJyYW5jaCh7XG4gICAgICAgIC4uLm9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnMsXG4gICAgICB9KSkpIHtcbiAgICAgICAgYnVtcFRhc2suZW52KGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gQWZ0ZXIgd2UgaGF2ZSB1bmJ1bXBlZCBwYWNrYWdlIHZlcnNpb25zIGJhY2sgdG8gMC4wLjAsXG4gICAgLy8gd2UgY2FuIHJ1biB0aGUgZ2F0aGVyLXZlcnNpb25zIHRhc2sgYWdhaW4gd2hpY2ggd2lsbCBub3cgcmVwbGFjZSB0aGUgdG8tYmUtcmVsZWFzZSB2ZXJzaW9ucyB3aXRoIDAuMC4wXG4gICAgdGhpcy5vYnRhaW5VbmJ1bXBUYXNrKCkuc3Bhd24oZ2F0aGVyVmVyc2lvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYnVtcCB2ZXJzaW9uIHRhc2tcbiAgICpcbiAgICogSWYgdGhpcyBpcyBhIHByaXZhdGUgcGFja2FnZSwgaXQgd29uJ3QgaGF2ZSBhIGJ1bXAgdGFzayB5ZXQuXG4gICAqIFNvIGluc3RlYWQgd2UgY3JlYXRlIGFuIGVtcHR5IG9uZSB0aGF0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbW9ub3JlcG8gcm9vdFxuICAgKiBhbmQgc2VydmUgYXMgYSBjb250YWluZXIgZm9yIG90aGVyIHN0ZXBzIHRoYXQgbmVlZCB0byBvY2N1ciBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlXG4gICAqL1xuICBwcml2YXRlIG9idGFpbkJ1bXBUYXNrKCk6IFRhc2sge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndvcmtzcGFjZS50YXNrcy50cnlGaW5kKCdidW1wJykgPz9cbiAgICAgIHRoaXMud29ya3NwYWNlLmFkZFRhc2soJ2J1bXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQnVtcHMgdmVyc2lvbnMgb2YgbG9jYWwgZGVwZW5kZW5jaWVzJyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVuYnVtcCB2ZXJzaW9uIHRhc2tcbiAgICouXG4gICAqIElmIHRoaXMgaXMgYSBwcml2YXRlIHBhY2thZ2UsIGl0IHdvbid0IGhhdmUgYSBidW1wIHRhc2sgeWV0XG4gICAqIFNvIGluc3RlYWQgd2UgY3JlYXRlIGFuIGVtcHR5IG9uZSB0aGF0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbW9ub3JlcG8gcm9vdFxuICAgKiBhbmQgc2VydmUgYXMgYSBjb250YWluZXIgZm9yIG90aGVyIHN0ZXBzIHRoYXQgbmVlZCB0byBvY2N1ciBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlXG4gICAqL1xuICBwcml2YXRlIG9idGFpblVuYnVtcFRhc2soKTogVGFzayB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMud29ya3NwYWNlLnRhc2tzLnRyeUZpbmQoJ3VuYnVtcCcpID8/XG4gICAgICB0aGlzLndvcmtzcGFjZS5hZGRUYXNrKCd1bmJ1bXAnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmVzZXRzIHZlcnNpb25zIG9mIGxvY2FsIGRlcGVuZGVuY2llcyB0byAwLjAuMCcsXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,14 @@
1
1
  import { typescript, DependencyType, Project } from 'projen';
2
2
  import { TypeScriptWorkspaceOptions } from './typescript-workspace-options';
3
+ /**
4
+ * What kind of semver dependency to take
5
+ *
6
+ * - 'major' corresponds to '^'
7
+ * - 'minor' to '~'
8
+ * - 'exact' to ''
9
+ * - 'minimal' to '>='
10
+ */
11
+ export type VersionType = 'major' | 'minor' | 'exact' | 'minimal';
3
12
  /**
4
13
  * A reference to a workspace in the same monorepo
5
14
  *
@@ -22,9 +31,9 @@ export interface IWorkspaceReference {
22
31
  */
23
32
  readonly name: string;
24
33
  /**
25
- * The semver range that should be used to reference this package
34
+ * The semver range that should be used to reference this package when it is released
26
35
  */
27
- readonly dependencyRange: string;
36
+ readonly versionType: VersionType;
28
37
  /**
29
38
  * The directory that holds this package in the monorepo
30
39
  */
@@ -37,7 +46,7 @@ export declare class TypeScriptWorkspace extends typescript.TypeScriptProject im
37
46
  readonly workspaceDirectory: string;
38
47
  readonly bundledDeps: string[];
39
48
  readonly isPrivatePackage: boolean;
40
- readonly dependencyRange: string;
49
+ readonly versionType = "major";
41
50
  private readonly monorepo;
42
51
  constructor(options: TypeScriptWorkspaceOptions);
43
52
  /**
@@ -68,17 +77,18 @@ export declare class TypeScriptWorkspace extends typescript.TypeScriptProject im
68
77
  customizeReference(refOpts?: ReferenceOptions): IWorkspaceReference;
69
78
  }
70
79
  /**
71
- * Options for the `workspace.reference()` method
80
+ * Options for the `workspace.customizeReference()` method
72
81
  */
73
82
  export interface ReferenceOptions {
74
83
  /**
75
- * Depend on the exact version of this package at release time
84
+ * What type of dependency to take on this package
85
+ *
86
+ * By default, dependencies will be referenced with a `^`, which means that
87
+ * come install time a newer version may be installed.
76
88
  *
77
- * By default, dependencies will be referenced with a `^`, and come install time
78
- * a newer version may be installed. Set this to `true` to require exactly the
79
- * version of this package that is released along with the consuming package.
89
+ * Choose a different range type to take, for example, an `exact` dependency.
80
90
  *
81
- * @deafult false
91
+ * @default 'major'
82
92
  */
83
- readonly exactVersion?: boolean;
93
+ readonly versionType?: VersionType;
84
94
  }