cdklabs-projen-project-types 0.1.194 → 0.1.195

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -7547,6 +7547,6 @@
7547
7547
  "symbolId": "src/yarn/typescript-workspace-release:WorkspaceReleaseOptions"
7548
7548
  }
7549
7549
  },
7550
- "version": "0.1.194",
7551
- "fingerprint": "PfO5dNUJMUGNv7Xnfznx1R4mHe46v4eedZ6qMVA8Lpg="
7550
+ "version": "0.1.195",
7551
+ "fingerprint": "6dSeGQKNWj9oY6+QOG2PxXj2FBoOFrIdFLqiM7dDaMg="
7552
7552
  }
package/lib/auto-merge.js CHANGED
@@ -71,5 +71,5 @@ class AutoMerge extends projen_1.Component {
71
71
  }
72
72
  exports.AutoMerge = AutoMerge;
73
73
  _a = JSII_RTTI_SYMBOL_1;
74
- AutoMerge[_a] = { fqn: "cdklabs-projen-project-types.AutoMerge", version: "0.1.194" };
74
+ AutoMerge[_a] = { fqn: "cdklabs-projen-project-types.AutoMerge", version: "0.1.195" };
75
75
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1tZXJnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hdXRvLW1lcmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQWlEO0FBRWpELElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQixnQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBZSxDQUFBO0lBQ2YsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLFdBQVcsMkJBQVgsV0FBVyxRQUl0QjtBQTBDRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLGtCQUFTO0lBQ3RDLFlBQVksTUFBaUIsRUFBRSxVQUE0QixFQUFFO1FBQzNELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUVqRCxNQUFNLFVBQVUsR0FBYSxFQUFFLENBQUM7UUFDaEMsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQixVQUFVLENBQUMsSUFBSSxDQUNiLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxzREFBc0QsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUN4RyxDQUFDO1NBQ0g7UUFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDRDQUE0QyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztTQUNsSDtRQUVELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDO1FBQ2hELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUU5RCxNQUFNLFlBQVksR0FBcUI7WUFDckMsSUFBSSxFQUFFLGlEQUFpRDtZQUN2RCxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUMzQyxXQUFXLEVBQUU7Z0JBQ1gsWUFBWSxFQUFFLGVBQUUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUs7Z0JBQzlDLFFBQVEsRUFBRSxlQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLO2FBQzNDO1lBQ0QsRUFBRSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0QsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSw4Q0FBOEM7b0JBQ3BELElBQUksRUFBRTt3QkFDSixPQUFPLEVBQUUsZ0JBQWdCLE1BQU0sS0FBSzt3QkFDcEMscUJBQXFCLEVBQUUsNEJBQTRCO3dCQUNuRCxjQUFjLEVBQUUsV0FBVztxQkFDNUI7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDViw4RUFBOEU7WUFDOUUsaUZBQWlGO1lBQ2pGLGlGQUFpRjtZQUNqRixtRkFBbUY7WUFDbkYsbUZBQW1GO1lBQ25GLHdDQUF3QztZQUN4QyxFQUFFO1lBQ0Ysa0ZBQWtGO1lBQ2xGLHdGQUF3RjtZQUN4RixnRkFBZ0Y7WUFDaEYsRUFBRTtZQUNGLHlGQUF5RjtZQUN6RixzRkFBc0Y7WUFDdEYsbUVBQW1FO1lBQ25FLGlCQUFpQixFQUFFO2dCQUNqQixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUFDO2FBQ2xEO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O0FBN0RILDhCQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdpdGh1YiBhcyBnaCwgQ29tcG9uZW50IH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGVudW0gTWVyZ2VNZXRob2Qge1xuICBTUVVBU0ggPSAnc3F1YXNoJyxcbiAgTUVSR0UgPSAnbWVyZ2UnLFxuICBSRUJBU0UgPSAncmViYXNlJ1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yICdBdXRvTWVyZ2UnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b01lcmdlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBPbmx5IHB1bGwgcmVxdWVzdHMgYXV0aG9yZWQgYnkgdGhlc2UgR2l0aHViIHVzZXJuYW1lcyB3aWxsIGhhdmUgYXV0by1tZXJnZSBlbmFibGVkLlxuICAgKiBAZGVmYXVsdCAtIHB1bGwgcmVxdWVzdHMgZnJvbSBhbGwgdXNlcnMgYXJlIGVsaWdpYmxlIGZvciBhdXRvLW1lcmdlXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkVXNlcm5hbWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE9ubHkgcHVsbCByZXF1ZXN0cyB3aXRoIG9uZSBvZiB0aGlzIGxhYmVscyB3aWxsIGhhdmUgYXV0by1tZXJnZSBlbmFibGVkLlxuICAgKiBAZGVmYXVsdCAtIGFsbCBwdWxsIHJlcXVlc3RzIGFyZSBlbGlnaWJsZSBmb3IgYXV0by1tZXJnZVxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWxzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgR2l0SHViIHNlY3JldCBuYW1lIHdoaWNoIGNvbnRhaW5zIGEgR2l0SHViIEFjY2VzcyBUb2tlblxuICAgKiB3aXRoIHdyaXRlIHBlcm1pc3Npb25zIGZvciB0aGUgYHB1bGxfcmVxdWVzdGAgc2NvcGUuXG4gICAqXG4gICAqIFRoaXMgdG9rZW4gaXMgdXNlZCB0byBlbmFibGUgYXV0by1tZXJnZSBvbiBwdWxsIHJlcXVlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkdJVEhVQl9UT0tFTlwiXG4gICAqL1xuICByZWFkb25seSBzZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdXNlZCB0byBhdXRvLW1lcmdlIHRoZSBQUi5cbiAgICogQW55IGJyYW5jaCBwcm90ZWN0aW9uIHJ1bGVzIG11c3QgYWxsb3cgdGhpcyBtZXJnZSBtZXRob2QuXG4gICAqIEBkZWZhdWx0IE1lcmdlTWV0aG9kLlNRVUFTSFxuICAgKi9cbiAgcmVhZG9ubHkgbWVyZ2VNZXRob2Q/OiBNZXJnZU1ldGhvZDtcblxuICAvKipcbiAgICogR2l0aHViIFJ1bm5lciBzZWxlY3Rpb24gbGFiZWxzXG4gICAqIEBkZWZhdWx0IFtcInVidW50dS1sYXRlc3RcIl1cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnNPbj86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE1lcmdlIHB1bGwgcmVxdWVzdHMgdXNpbmcgYSBtZXJnZSBxdWV1ZVxuICovXG5leHBvcnQgY2xhc3MgQXV0b01lcmdlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoZ2l0aHViOiBnaC5HaXRIdWIsIG9wdGlvbnM6IEF1dG9NZXJnZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKGdpdGh1Yi5wcm9qZWN0KTtcblxuICAgIGNvbnN0IGxhYmVscyA9IG9wdGlvbnMubGFiZWxzID8/IFtdO1xuICAgIGNvbnN0IHVzZXJuYW1lcyA9IG9wdGlvbnMuYWxsb3dlZFVzZXJuYW1lcyA/PyBbXTtcblxuICAgIGNvbnN0IGNvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKGxhYmVscy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goXG4gICAgICAgICcoJyArIGxhYmVscy5tYXAoKGwpID0+IGBjb250YWlucyhnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmxhYmVscy4qLm5hbWUsICcke2x9JylgKS5qb2luKCcgfHwgJykgKyAnKScsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodXNlcm5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaCgnKCcgKyB1c2VybmFtZXMubWFwKCh1KSA9PiBgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC51c2VyLmxvZ2luID09ICcke3V9J2ApLmpvaW4oJyB8fCAnKSArICcpJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VjcmV0ID0gb3B0aW9ucy5zZWNyZXQgPz8gJ0dJVEhVQl9UT0tFTic7XG4gICAgY29uc3QgbWVyZ2VNZXRob2QgPSBvcHRpb25zLm1lcmdlTWV0aG9kID8/IE1lcmdlTWV0aG9kLlNRVUFTSDtcblxuICAgIGNvbnN0IGF1dG9NZXJnZUpvYjogZ2gud29ya2Zsb3dzLkpvYiA9IHtcbiAgICAgIG5hbWU6ICdTZXQgQXV0b01lcmdlIG9uIFBSICMke3sgZ2l0aHViLmV2ZW50Lm51bWJlciB9fScsXG4gICAgICBydW5zT246IG9wdGlvbnMucnVuc09uID8/IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgcHVsbFJlcXVlc3RzOiBnaC53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgY29udGVudHM6IGdoLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgfSxcbiAgICAgIGlmOiBjb25kaXRpb25zLmxlbmd0aCA/IGNvbmRpdGlvbnMuam9pbignICYmICcpIDogdW5kZWZpbmVkLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHVzZXM6ICdwZXRlci1ldmFucy9lbmFibGUtcHVsbC1yZXF1ZXN0LWF1dG9tZXJnZUB2MicsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgJ3Rva2VuJzogYFxcJHt7IHNlY3JldHMuJHtzZWNyZXR9IH19YCxcbiAgICAgICAgICAgICdwdWxsLXJlcXVlc3QtbnVtYmVyJzogJyR7eyBnaXRodWIuZXZlbnQubnVtYmVyIH19JyxcbiAgICAgICAgICAgICdtZXJnZS1tZXRob2QnOiBtZXJnZU1ldGhvZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgY29uc3Qgd29ya2Zsb3cgPSBnaXRodWIuYWRkV29ya2Zsb3coJ2F1dG8tbWVyZ2UnKTtcbiAgICB3b3JrZmxvdy5vbih7XG4gICAgICAvLyBUaGUgJ3B1bGwgcmVxdWVzdCcgZXZlbnQgZ2l2ZXMgdGhlIHdvcmtmbG93ICdyZWFkLW9ubHknIHBlcm1pc3Npb25zIG9uIHNvbWVcbiAgICAgIC8vIHB1bGwgcmVxdWVzdHMgKHN1Y2ggYXMgdGhlIG9uZXMgZnJvbSBkZXBlbmRhYm90KSB3aGVuIHVzaW5nIHRoZSBgR0lUSFVCX1RPS0VOYFxuICAgICAgLy8gc2VjdXJpdHkgdG9rZW4uIFRoaXMgcHJldmVudHMgdGhlIHdvcmtmbG93IGZyb20gYXBwcm92aW5nIHRoZXNlIHB1bGwgcmVxdWVzdHMuXG4gICAgICAvLyBHaXRodWIgaGFzIHBsYWNlZCB0aGlzIGd1YXJkIHNvIGFzIHRvIHByZXZlbnQgc2VjdXJpdHkgYXR0YWNrcyBieSBzaW1wbHkgb3BlbmluZ1xuICAgICAgLy8gYSBwdWxsIHJlcXVlc3QgYW5kIHRyaWdnZXJpbmcgYSB3b3JrZmxvdyBvbiBhIGNvbW1pdCB0aGF0IHdhcyBub3QgdmV0dGVkIHRvIG1ha2VcbiAgICAgIC8vIHVuaW50ZW5kZWQgY2hhbmdlcyB0byB0aGUgcmVwb3NpdG9yeS5cbiAgICAgIC8vXG4gICAgICAvLyBJbnN0ZWFkIHVzZSB0aGUgJ3B1bGwgcmVxdWVzdCB0YXJnZXQnIGV2ZW50IGhlcmUgdGhhdCBnaXZlcyB0aGUgR2l0aHViIHdvcmtmbG93XG4gICAgICAvLyAncmVhZC13cml0ZScgcGVybWlzc2lvbnMuIFRoaXMgaXMgc2FmZSBiZWNhdXNlLCB0aGlzIGV2ZW50LCB1bmxpa2UgdGhlICdwdWxsIHJlcXVlc3QnXG4gICAgICAvLyBldmVudCByZWZlcmVuY2VzIHRoZSBCQVNFIGNvbW1pdCBvZiB0aGUgcHVsbCByZXF1ZXN0IGFuZCBub3QgdGhlIEhFQUQgY29tbWl0LlxuICAgICAgLy9cbiAgICAgIC8vIFdlIG9ubHkgZW5hYmxlIGF1dG8tbWVyZ2Ugd2hlbiBhIFBSIGlzIG9wZW5lZCwgcmVvcGVuZWQgb3IgbW92aW5nIGZyb20gRHJhZnQgdG8gUmVhZHkuXG4gICAgICAvLyBUaGF0IHdheSBhIHVzZXIgY2FuIGFsd2F5cyBkaXNhYmxlIGF1dG8tbWVyZ2UgaWYgdGhleSB3YW50IHRvIGFuZCB0aGUgd29ya2Zsb3cgd2lsbFxuICAgICAgLy8gbm90IGF1dG9tYXRpY2FsbHkgcmUtZW5hYmxlIGl0LCB1bmxlc3Mgb25lIG9mIHRoZSBldmVudHMgb2NjdXJzLlxuICAgICAgcHVsbFJlcXVlc3RUYXJnZXQ6IHtcbiAgICAgICAgdHlwZXM6IFsnb3BlbmVkJywgJ3Jlb3BlbmVkJywgJ3JlYWR5X2Zvcl9yZXZpZXcnXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgd29ya2Zsb3cuYWRkSm9icyh7IGVuYWJsZUF1dG9NZXJnZTogYXV0b01lcmdlSm9iIH0pO1xuICB9XG59XG4iXX0=
package/lib/cdk.js CHANGED
@@ -49,7 +49,7 @@ class CdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
49
49
  }
50
50
  exports.CdkConstructLibrary = CdkConstructLibrary;
51
51
  _a = JSII_RTTI_SYMBOL_1;
52
- CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.1.194" };
52
+ CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.1.195" };
53
53
  /**
54
54
  * Create a Cdk TypeScript Project
55
55
  *
@@ -65,5 +65,5 @@ class CdkTypeScriptProject extends projen_1.typescript.TypeScriptProject {
65
65
  }
66
66
  exports.CdkTypeScriptProject = CdkTypeScriptProject;
67
67
  _b = JSII_RTTI_SYMBOL_1;
68
- CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.1.194" };
68
+ CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.1.195" };
69
69
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFpRDtBQUNqRCxxREFBd0c7QUFDeEcsaURBQTZDO0FBQzdDLHVDQUFvRDtBQVVwRDs7OztHQUlHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxlQUFNLENBQUMsc0JBQXNCO0lBQzVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxPQUFtQztRQUN0RSxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQywrREFBK0QsQ0FBQyxDQUFDO1NBQzlFO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUlELFlBQVksT0FBbUM7UUFDN0MsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLFlBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzlDLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0ZBQW9GLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzVIO1NBQ0Y7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQztZQUNKLFNBQVMsRUFBRSxZQUFHLENBQUMsU0FBUyxDQUFDLFlBQVk7WUFDckMsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTVCLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksMEJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QixJQUFBLHdDQUF1QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOztBQXZDSCxrREF3Q0M7OztBQUlEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLG1CQUFVLENBQUMsaUJBQWlCO0lBR3BFLFlBQVksT0FBb0M7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQ0FBeUIsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFNUIsSUFBQSx3Q0FBdUIsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7QUFUSCxvREFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgY2RrLCB0eXBlc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENka0NvbW1vbk9wdGlvbnMsIGNvbmZpZ3VyZUNvbW1vbkZlYXR1cmVzLCB3aXRoQ29tbW9uT3B0aW9uc0RlZmF1bHRzIH0gZnJvbSAnLi9jb21tb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBJbnRlZ1J1bm5lciB9IGZyb20gJy4vaW50ZWctcnVubmVyJztcbmltcG9ydCB7IFJvc2V0dGEsIFJvc2V0dGFPcHRpb25zIH0gZnJvbSAnLi9yb3NldHRhJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zIGV4dGVuZHMgYXdzY2RrLkF3c0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLCBDZGtDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHJvc2V0dGE6ZXh0cmFjdCB0YXNrXG4gICAqL1xuICByZWFkb25seSByb3NldHRhT3B0aW9ucz86IFJvc2V0dGFPcHRpb25zO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIENkayBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrLWNvbnN0cnVjdC1saWJcbiAqL1xuZXhwb3J0IGNsYXNzIENka0NvbnN0cnVjdExpYnJhcnkgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gIHByaXZhdGUgc3RhdGljIHN0YWJpbGl0eVJlcXVpcmVtZW50cyhvcHRpb25zOiBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFvcHRpb25zLnB1Ymxpc2hUb1B5cGkpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdQdWJsaXNoaW5nIEVycm9yOiBwcm9qZWN0IG5vdCBjb25maWd1cmVkIHRvIHB1Ymxpc2ggdG8gUHl0aG9uJyk7XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5wdWJsaXNoVG9NYXZlbikge1xuICAgICAgZXJyb3JzLnB1c2goJ1B1Ymxpc2hpbmcgRXJyb3I6IHByb2plY3Qgbm90IGNvbmZpZ3VyZWQgdG8gcHVibGlzaCB0byBNYXZlbicpO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMucHVibGlzaFRvTnVnZXQpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdQdWJsaXNoaW5nIEVycm9yOiBwcm9qZWN0IG5vdCBjb25maWd1cmVkIHRvIHB1Ymxpc2ggdG8gTnVnZXQnKTtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnB1Ymxpc2hUb0dvKSB7XG4gICAgICBlcnJvcnMucHVzaCgnUHVibGlzaGluZyBFcnJvcjogcHJvamVjdCBub3QgY29uZmlndXJlZCB0byBwdWJsaXNoIHRvIEdvJyk7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnN0YWJpbGl0eSA9PT0gY2RrLlN0YWJpbGl0eS5TVEFCTEUpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IENka0NvbnN0cnVjdExpYnJhcnkuc3RhYmlsaXR5UmVxdWlyZW1lbnRzKG9wdGlvbnMpO1xuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHByb2plY3QgZG9lcyBub3QgcGFzcyBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yczpcXG4gICR7ZXJyb3JzLmpvaW4oJ1xcbiAgJyl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0cyA9IHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMob3B0aW9ucyk7XG4gICAgc3VwZXIoe1xuICAgICAgc3RhYmlsaXR5OiBjZGsuU3RhYmlsaXR5LkVYUEVSSU1FTlRBTCxcbiAgICAgIC4uLm9wdHMsXG4gICAgfSk7XG4gICAgdGhpcy5wcml2YXRlID0gb3B0cy5wcml2YXRlO1xuXG4gICAgbmV3IFJvc2V0dGEodGhpcywgb3B0aW9ucy5yb3NldHRhT3B0aW9ucyk7XG4gICAgbmV3IEludGVnUnVubmVyKHRoaXMpO1xuXG4gICAgY29uZmlndXJlQ29tbW9uRmVhdHVyZXModGhpcywgb3B0cyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucywgQ2RrQ29tbW9uT3B0aW9ucyB7IH1cblxuLyoqXG4gKiBDcmVhdGUgYSBDZGsgVHlwZVNjcmlwdCBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrLXRzLXByb2pcbiAqL1xuZXhwb3J0IGNsYXNzIENka1R5cGVTY3JpcHRQcm9qZWN0IGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcml2YXRlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB3aXRoQ29tbW9uT3B0aW9uc0RlZmF1bHRzKG9wdGlvbnMpO1xuICAgIHN1cGVyKG9wdHMpO1xuICAgIHRoaXMucHJpdmF0ZSA9IG9wdHMucHJpdmF0ZTtcblxuICAgIGNvbmZpZ3VyZUNvbW1vbkZlYXR1cmVzKHRoaXMsIG9wdHMpO1xuICB9XG59XG4iXX0=
package/lib/cdklabs.js CHANGED
@@ -120,7 +120,7 @@ class CdklabsConstructLibrary extends cdk_1.CdkConstructLibrary {
120
120
  }
121
121
  exports.CdklabsConstructLibrary = CdklabsConstructLibrary;
122
122
  _a = JSII_RTTI_SYMBOL_1;
123
- CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.1.194" };
123
+ CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.1.195" };
124
124
  /**
125
125
  * Create a Cdklabs TypeScript Project
126
126
  *
@@ -140,7 +140,7 @@ class CdklabsTypeScriptProject extends cdk_1.CdkTypeScriptProject {
140
140
  }
141
141
  exports.CdklabsTypeScriptProject = CdklabsTypeScriptProject;
142
142
  _b = JSII_RTTI_SYMBOL_1;
143
- CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.1.194" };
143
+ CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.1.195" };
144
144
  /**
145
145
  * Create a Cdklabs Jsii Project
146
146
  *
@@ -163,5 +163,5 @@ class CdklabsJsiiProject extends jsii_1.CdkJsiiProject {
163
163
  }
164
164
  exports.CdklabsJsiiProject = CdklabsJsiiProject;
165
165
  _c = JSII_RTTI_SYMBOL_1;
166
- CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.1.194" };
166
+ CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.1.195" };
167
167
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrbGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGtsYWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQWdDO0FBQ2hDLHNEQUF1RDtBQUN2RCwwQ0FBNEM7QUFFNUMsSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3RCLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0lBQ0osbURBQU0sQ0FBQTtJQUNOLDJDQUFFLENBQUE7QUFDSixDQUFDLEVBTFcsWUFBWSw0QkFBWixZQUFZLFFBS3ZCO0FBQUEsQ0FBQztBQUVGLCtCQUtlO0FBQ2YsaUNBQStEO0FBQy9ELHdDQUF3QztBQUN4QyxtQ0FBMkM7QUFFM0Msd0VBQXdFO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLGFBQWEsRUFBRSx3QkFBd0I7SUFDdkMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUE0QztJQUNuRSxtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLG1CQUFtQixFQUFFLE9BQU87SUFDNUIsV0FBVyxFQUFFO1FBQ1gsY0FBYyxFQUFFLDJCQUFjLENBQUMsTUFBTTtLQUN0QztJQUNELG9CQUFvQixFQUFFLE1BQU07SUFDNUIsbUZBQW1GO0lBQ25GLHdGQUF3RjtJQUN4RixvREFBb0Q7SUFDcEQsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7SUFDdkQsV0FBVyxFQUFFLE1BQU07Q0FDcEIsQ0FBQztBQUVGLFNBQVMsK0JBQStCLENBQUMsY0FBc0IsRUFBRSxLQUFzQjtJQUNyRixNQUFNLGVBQWUsR0FBRyxJQUFBLGVBQVEsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUVqRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsRUFB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QUFTLEVBQUM7WUFDOUIsRUFBRTtZQUNGLG1CQUFtQjtZQUNuQiw2QkFBNkI7WUFDN0IsT0FBTztZQUNQLGtCQUFrQjtTQUNuQixDQUE4QixDQUFDO1FBRWhDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QixDQUFDOztBQWRILGdEQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IFVwZGF0ZVNuYXBzaG90IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJ3Byb2plbi9saWIvdXRpbCc7XG5cbmV4cG9ydCBlbnVtIEpzaWlMYW5ndWFnZSB7XG4gIFBZVEhPTixcbiAgSkFWQSxcbiAgRE9UTkVULFxuICBHTyxcbn07XG5cbmltcG9ydCB7XG4gIENka0NvbnN0cnVjdExpYnJhcnksXG4gIENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLFxuICBDZGtUeXBlU2NyaXB0UHJvamVjdCxcbiAgQ2RrVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLFxufSBmcm9tICcuL2Nkayc7XG5pbXBvcnQgeyBDZGtKc2lpUHJvamVjdCwgQ2RrSnNpaVByb2plY3RPcHRpb25zIH0gZnJvbSAnLi9qc2lpJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvb3JkZXJcbmltcG9ydCB7IFJlbGVhc2FibGVDb21taXRzIH0gZnJvbSAncHJvamVuJztcblxuLy8gb3ZlcnJpZGUgdGhlc2UgcHJvcGVydGllcyBubyBtYXR0ZXIgd2hhdCB2YWx1ZXMgYXJlIGdpdmVuIGNsaWVudC1zaWRlXG5jb25zdCBjZGtsYWJzRm9yY2VkUHJvcHMgPSB7XG4gIGF1dGhvcjogJ0FtYXpvbiBXZWIgU2VydmljZXMnLFxuICBhdXRob3JOYW1lOiAnQW1hem9uIFdlYiBTZXJ2aWNlcycsXG4gIGF1dGhvckFkZHJlc3M6ICdhd3MtY2RrLWRldkBhbWF6b24uY29tJyxcbiAgYXV0aG9yRW1haWw6ICdhd3MtY2RrLWRldkBhbWF6b24uY29tJyxcbiAgYXV0aG9yT3JnYW5pemF0aW9uOiB0cnVlLFxufTtcblxuY29uc3QgY2RrbGFic0RlZmF1bHRQcm9wczogUGFydGlhbDxDZGtsYWJzQ29uc3RydWN0TGlicmFyeU9wdGlvbnM+ID0ge1xuICBhdXRvQXBwcm92ZVVwZ3JhZGVzOiB0cnVlLFxuICBtaW5Ob2RlVmVyc2lvbjogJzE4LjEyLjAnLFxuICB3b3JrZmxvd05vZGVWZXJzaW9uOiAnbHRzLyonLFxuICBqZXN0T3B0aW9uczoge1xuICAgIHVwZGF0ZVNuYXBzaG90OiBVcGRhdGVTbmFwc2hvdC5BTFdBWVMsXG4gIH0sXG4gIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gIC8vIERlZmF1bHQgaXMgdG8gcmVsZWFzZSBvbmx5IGZlYXR1cmVzIGFuZCBmaXhlcy4gSWYgd2UgZG9uJ3QgZG8gdGhpcywgZXZlcnkgcHJvamVuXG4gIC8vIHByb2plY3Qgd2lsbCBiYXNpY2FsbHkgcmVsZWFzZSBldmVyeSBkYXksIGJlY2F1c2UgaXQgd2lsbCBzZWUgZGV2RGVwZW5kZW5jaWVzIHVwZGF0ZXNcbiAgLy8gZXZlcnkgZGF5LCBldmVuIHRob3VnaCB0aG9zZSBhcmUgbm90IGludGVyZXN0aW5nLlxuICByZWxlYXNhYmxlQ29tbWl0czogUmVsZWFzYWJsZUNvbW1pdHMuZmVhdHVyZXNBbmRGaXhlcygpLFxuICBqc2lpVmVyc2lvbjogJ341LjInLFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQ2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cyhucG1QYWNrYWdlTmFtZTogc3RyaW5nLCBsYW5ncz86IEpzaWlMYW5ndWFnZVtdKSB7XG4gIGNvbnN0IHBhY2thZ2VCYXNlbmFtZSA9IGJhc2VuYW1lKG5wbVBhY2thZ2VOYW1lKTtcblxuICByZXR1cm4gY3JlYXRlUHVibGlzaGluZ0RlZmF1bHRzKCdjZGtsYWJzJywgcGFja2FnZUJhc2VuYW1lLCBCb29sZWFuKHBhY2thZ2VCYXNlbmFtZSAhPT0gbnBtUGFja2FnZU5hbWUpLCBsYW5ncyk7XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVQdWJsaXNoaW5nRGVmYXVsdHMobmFtZXNwYWNlOiBzdHJpbmcsIHBhY2thZ2VCYXNlbmFtZTogc3RyaW5nLCBhbHdheXNVc2VOYW1lc3BhY2UgPSB0cnVlLCBsYW5ncz86IEpzaWlMYW5ndWFnZVtdKSB7XG4gIGNvbnN0IHBpUHlQcmVmaXggPSBhbHdheXNVc2VOYW1lc3BhY2UgPyBgJHtuYW1lc3BhY2V9LmAgOiAnJztcbiAgY29uc3QgbnVnZXRQcmVmaXggPSBhbHdheXNVc2VOYW1lc3BhY2UgPyBgJHt1cHBlckNhc2VOYW1lKG5hbWVzcGFjZSl9LmAgOiBgJHt1cHBlckNhc2VOYW1lKG5hbWVzcGFjZSl9YDtcblxuICByZXR1cm4ge1xuICAgIC4uLnB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIoSnNpaUxhbmd1YWdlLlBZVEhPTiwge1xuICAgICAgcHVibGlzaFRvUHlwaToge1xuICAgICAgICBkaXN0TmFtZTogYCR7cGlQeVByZWZpeH0ke3BhY2thZ2VCYXNlbmFtZX1gLFxuICAgICAgICBtb2R1bGU6IGAke3BpUHlQcmVmaXh9JHtjaGFuZ2VEZWxpbWl0ZXIocGFja2FnZUJhc2VuYW1lLCAnXycpfWAsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIC4uLnB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIoSnNpaUxhbmd1YWdlLkpBVkEsIHtcbiAgICAgIHB1Ymxpc2hUb01hdmVuOiB7XG4gICAgICAgIGphdmFQYWNrYWdlOiBgaW8uZ2l0aHViLiR7bmFtZXNwYWNlfS4ke2NoYW5nZURlbGltaXRlcihwYWNrYWdlQmFzZW5hbWUsICcuJyl9YCxcbiAgICAgICAgbWF2ZW5Hcm91cElkOiBgaW8uZ2l0aHViLiR7bmFtZXNwYWNlfWAsXG4gICAgICAgIG1hdmVuQXJ0aWZhY3RJZDogcGFja2FnZUJhc2VuYW1lLFxuICAgICAgICBtYXZlbkVuZHBvaW50OiAnaHR0cHM6Ly9zMDEub3NzLnNvbmF0eXBlLm9yZycsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIC4uLnB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIoSnNpaUxhbmd1YWdlLkRPVE5FVCwge1xuICAgICAgcHVibGlzaFRvTnVnZXQ6IHtcbiAgICAgICAgZG90TmV0TmFtZXNwYWNlOiBgJHtudWdldFByZWZpeH0ke3VwcGVyQ2FzZU5hbWUocGFja2FnZUJhc2VuYW1lKX1gLFxuICAgICAgICBwYWNrYWdlSWQ6IGAke251Z2V0UHJlZml4fSR7dXBwZXJDYXNlTmFtZShwYWNrYWdlQmFzZW5hbWUpfWAsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIC4uLnB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIoSnNpaUxhbmd1YWdlLkdPLCB7XG4gICAgICBwdWJsaXNoVG9Hbzoge1xuICAgICAgICBtb2R1bGVOYW1lOiBgZ2l0aHViLmNvbS8ke25hbWVzcGFjZX0vJHtwYWNrYWdlQmFzZW5hbWV9LWdvYCxcbiAgICAgIH0sXG4gICAgfSksXG4gIH07XG5cbiAgZnVuY3Rpb24gcHVibGlzaExhbmd1YWdlV3JhcHBlcihsYW5nOiBKc2lpTGFuZ3VhZ2UsIG9iajogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHJldHVybiBwdWJsaXNoTGFuZ3VhZ2UobGFuZykgPyBvYmogOiB7fTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHB1Ymxpc2hMYW5ndWFnZShsYW5nOiBKc2lpTGFuZ3VhZ2UpOiBib29sZWFuIHtcbiAgICAvLyBsYW5ncyBub3Qgc3BlY2lmaWVkID09PSBhbGwgbGFuZ3VhZ2VzIHB1Ymxpc2hlZFxuICAgIGlmICghbGFuZ3MpIHsgcmV0dXJuIHRydWU7IH1cbiAgICBpZiAobGFuZ3MuaW5jbHVkZXMobGFuZykpIHsgcmV0dXJuIHRydWU7IH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmdW5jdGlvbiB1cHBlckNhc2VOYW1lKHN0cjogc3RyaW5nKSB7XG4gICAgbGV0IHdvcmRzID0gc3RyLnNwbGl0KCctJyk7XG4gICAgd29yZHMgPSB3b3Jkcy5tYXAoKHcpID0+IHdbMF0udG9VcHBlckNhc2UoKSArIHcuc3Vic3RyaW5nKDEpKTtcbiAgICByZXR1cm4gd29yZHMuam9pbignJyk7XG4gIH1cblxuICBmdW5jdGlvbiBjaGFuZ2VEZWxpbWl0ZXIoc3RyOiBzdHJpbmcsIGRlbGltOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyLnNwbGl0KCctJykuam9pbihkZWxpbSk7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrbGFic1B1Ymxpc2hpbmdQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZXQgZGVmYXVsdCBwdWJsaXNoaW5nIHByb3BlcnRpZXMuIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSBndWFyYW50ZWVzXG4gICAqIHRoYXQgeW91ciBwcm9qZWN0IHdpbGwgaGF2ZSByZWFzb25hYmxlIHB1Ymxpc2hpbmcgbmFtZXMuIFlvdSBjYW4gY2hvb3NlXG4gICAqIHRvIG1vZGlmeSB0aGVtIGhvd2V2ZXIgeW91IHdpc2ggd2l0aCB0aGUgdHJhZGl0aW9uYWwgYHB1Ymxpc2hUb1B5cGlgLFxuICAgKiBgcHVibGlzaFRvTWF2ZW5gLCBgcHVibGlzaFRvTnVnZXRgLCBhbmQgYHB1Ymxpc2hUb0dvYCBwcm9wZXJ0aWVzLCBhbmRcbiAgICogeW91ciBjb25maWd1cmF0aW9uIHdpbGwgYmUgcmVzcGVjdGVkLlxuICAgKlxuICAgKiBUaGlzIHNob3VsZCBiZSBzZXQgdG8gZmFsc2Ugb25seSBpZiB5b3UgZG8gbm90IHBsYW4gb24gcmVsZWFzaW5nIHRoZSBwYWNrYWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeSBzcGVjaWZpYyBsYW5ndWFnZXMgdG8gcHVibGlzaCB0by4gVGhpcyBjYW4gYmUgdXNlZCB3aGVuIHRoZSBsaWJyYXJ5XG4gICAqIGlzIGV4cGVyaW1lbnRhbCBvbmx5LCBiZWNhdXNlIHN0YWJsZSBsaWJyYXJpZXMgbXVzdCBwdWJsaXNoIHRvIGFsbCBqc2lpIGxhbmd1YWdlcy5cbiAgICogVGhpcyBzaG91bGQgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzOiB0cnVlYDsgb3RoZXJ3aXNlXG4gICAqIGl0IGlzIGEgbm8tb3AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxsIGpzaWkgdGFyZ2V0IGxhbmd1YWdlc1xuICAgKi9cbiAgcmVhZG9ubHkganNpaVRhcmdldExhbmd1YWdlcz86IEpzaWlMYW5ndWFnZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyBleHRlbmRzIENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLCBDZGtsYWJzUHVibGlzaGluZ1Byb2plY3RPcHRpb25zIHt9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrbGFicyBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrbGFicy1jb25zdHJ1Y3QtbGliXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtsYWJzQ29uc3RydWN0TGlicmFyeSBleHRlbmRzIENka0NvbnN0cnVjdExpYnJhcnkge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzQ29uc3RydWN0TGlicmFyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRQcm9wczogUmVjb3JkPHN0cmluZywgYW55PiA9IChvcHRpb25zLmNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMgPz8gdHJ1ZSkgP1xuICAgICAgY3JlYXRlQ2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cyhvcHRpb25zLm5hbWUsIG9wdGlvbnMuanNpaVRhcmdldExhbmd1YWdlcykgOiB7fTtcblxuICAgIC8vIHRoZSBsZWZ0bW9zdCBvYmplY3QgaXMgbXV0YXRlZCBhbmQgcmV0dXJuZWQgYnkgZGVlcE1lcmdlXG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGRlZXBNZXJnZShbXG4gICAgICB7fSxcbiAgICAgIGNka2xhYnNEZWZhdWx0UHJvcHMsXG4gICAgICBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRQcm9wcyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjZGtsYWJzRm9yY2VkUHJvcHMsXG4gICAgXSkgYXMgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnM7XG5cbiAgICBzdXBlcihtZXJnZWRPcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDZGtUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgeyB9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrbGFicyBUeXBlU2NyaXB0IFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLXRzLXByb2pcbiAqL1xuZXhwb3J0IGNsYXNzIENka2xhYnNUeXBlU2NyaXB0UHJvamVjdCBleHRlbmRzIENka1R5cGVTY3JpcHRQcm9qZWN0IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrbGFic1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucykge1xuICAgIC8vIHRoZSBsZWZ0bW9zdCBvYmplY3QgaXMgbXV0YXRlZCBhbmQgcmV0dXJuZWQgYnkgZGVlcE1lcmdlXG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGRlZXBNZXJnZShbXG4gICAgICB7fSxcbiAgICAgIGNka2xhYnNEZWZhdWx0UHJvcHMsXG4gICAgICBvcHRpb25zLFxuICAgICAgY2RrbGFic0ZvcmNlZFByb3BzLFxuICAgIF0pIGFzIENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zO1xuXG4gICAgc3VwZXIobWVyZ2VkT3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zIGV4dGVuZHMgQ2RrSnNpaVByb2plY3RPcHRpb25zLCBDZGtsYWJzUHVibGlzaGluZ1Byb2plY3RPcHRpb25zIHt9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrbGFicyBKc2lpIFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLWpzaWktcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrbGFic0pzaWlQcm9qZWN0IGV4dGVuZHMgQ2RrSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0UHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSAob3B0aW9ucy5jZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzID8/IHRydWUpID9cbiAgICAgIGNyZWF0ZUNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMob3B0aW9ucy5uYW1lLCBvcHRpb25zLmpzaWlUYXJnZXRMYW5ndWFnZXMpIDoge307XG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNka2xhYnNGb3JjZWRQcm9wcyxcbiAgICBdKSBhcyBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zO1xuXG4gICAgc3VwZXIobWVyZ2VkT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
package/lib/jsii.js CHANGED
@@ -20,5 +20,5 @@ class CdkJsiiProject extends projen_1.cdk.JsiiProject {
20
20
  }
21
21
  exports.CdkJsiiProject = CdkJsiiProject;
22
22
  _a = JSII_RTTI_SYMBOL_1;
23
- CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.1.194" };
23
+ CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.1.195" };
24
24
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2lpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTZCO0FBQzdCLHFEQUF3RztBQUl4Rzs7OztHQUlHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsWUFBRyxDQUFDLFdBQVc7SUFHakQsWUFBWSxPQUE4QjtRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU1QixJQUFBLHdDQUF1QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOztBQVRILHdDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2RrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENka0NvbW1vbk9wdGlvbnMsIGNvbmZpZ3VyZUNvbW1vbkZlYXR1cmVzLCB3aXRoQ29tbW9uT3B0aW9uc0RlZmF1bHRzIH0gZnJvbSAnLi9jb21tb24tb3B0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrSnNpaVByb2plY3RPcHRpb25zIGV4dGVuZHMgY2RrLkpzaWlQcm9qZWN0T3B0aW9ucywgQ2RrQ29tbW9uT3B0aW9ucyB7fVxuXG4vKipcbiAqIENyZWF0ZSBhIENkayBKc2lpIEpzaWkgcHJvamVjdFxuICpcbiAqIEBwamlkIGNkay1qc2lpLXByb2pcbiAqL1xuZXhwb3J0IGNsYXNzIENka0pzaWlQcm9qZWN0IGV4dGVuZHMgY2RrLkpzaWlQcm9qZWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHByaXZhdGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrSnNpaVByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMob3B0aW9ucyk7XG4gICAgc3VwZXIob3B0cyk7XG4gICAgdGhpcy5wcml2YXRlID0gb3B0cy5wcml2YXRlO1xuXG4gICAgY29uZmlndXJlQ29tbW9uRmVhdHVyZXModGhpcywgb3B0cyk7XG4gIH1cbn1cbiJdfQ==
@@ -38,5 +38,5 @@ class MergeQueue extends projen_1.Component {
38
38
  }
39
39
  exports.MergeQueue = MergeQueue;
40
40
  _a = JSII_RTTI_SYMBOL_1;
41
- MergeQueue[_a] = { fqn: "cdklabs-projen-project-types.MergeQueue", version: "0.1.194" };
41
+ MergeQueue[_a] = { fqn: "cdklabs-projen-project-types.MergeQueue", version: "0.1.195" };
42
42
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2UtcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBK0M7QUFDL0MsNkNBQTJEO0FBMEIzRDs7R0FFRztBQUNILE1BQWEsVUFBVyxTQUFRLGtCQUFTO0lBQ3ZDLFlBQVksT0FBK0IsRUFBRSxVQUE2QixFQUFFO1FBQzFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO1FBRWxELE9BQU8sQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxVQUFVLEVBQUU7Z0JBQ1YsUUFBUSxFQUFFO29CQUNSLEdBQUcsV0FBVyxFQUFFO2lCQUNqQjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxTQUFTLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUMvQixJQUFJLHNCQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN6RDtRQUVELDhDQUE4QztRQUM5QyxtRUFBbUU7UUFDbkUsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1RSxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUU7b0JBQ1IsR0FBRyxXQUFXLEVBQUU7aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxjQUFjLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FDL0Isa0JBQWtCLEVBQ2xCLG1GQUFtRixDQUNwRixDQUFDO0lBQ0osQ0FBQzs7QUFqQ0gsZ0NBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgamF2YXNjcmlwdCwgQ29tcG9uZW50IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEF1dG9NZXJnZSwgQXV0b01lcmdlT3B0aW9ucyB9IGZyb20gJy4vYXV0by1tZXJnZSc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgJ01lcmdlUXVldWUnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVyZ2VRdWV1ZU9wdGlvbnMge1xuICAvKipcbiAgICogU2hvdWxkIHB1bGwgcmVxdWVzdHMgYmUgbWVyZ2VkIGF1dG9tYXRpY2FsbHkgb25jZSB0aGV5IHBhc3MgcmVxdWlyZWQgY2hlY2tzXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9NZXJnZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBhdXRvIG1lcmdlIHB1bGwgcmVxdWVzdHNcbiAgICogQGRlZmF1bHQgLSBzZWUgQXV0b01lcmdlT3B0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYXV0b01lcmdlT3B0aW9ucz86IEF1dG9NZXJnZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBicmFuY2ggdG8gbWVyZ2UgdG9cbiAgICpcbiAgICogQGRlZmF1bHQgbWFpblxuICAgKi9cbiAgcmVhZG9ubHkgbWVyZ2VCcmFuY2g/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTWVyZ2UgcHVsbCByZXF1ZXN0cyB1c2luZyBhIG1lcmdlIHF1ZXVlXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXJnZVF1ZXVlIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCwgb3B0aW9uczogTWVyZ2VRdWV1ZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3QgYXV0b01lcmdlID0gb3B0aW9ucy5hdXRvTWVyZ2UgPz8gdHJ1ZTtcbiAgICBjb25zdCBtZXJnZUJyYW5jaCA9IG9wdGlvbnMubWVyZ2VCcmFuY2ggPz8gJ21haW4nO1xuXG4gICAgcHJvamVjdC5naXRodWI/LnRyeUZpbmRXb3JrZmxvdygnYnVpbGQnKT8ub24oe1xuICAgICAgbWVyZ2VHcm91cDoge1xuICAgICAgICBicmFuY2hlczogW1xuICAgICAgICAgIGAke21lcmdlQnJhbmNofWAsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKGF1dG9NZXJnZSAmJiBwcm9qZWN0LmdpdGh1Yikge1xuICAgICAgbmV3IEF1dG9NZXJnZShwcm9qZWN0LmdpdGh1Yiwgb3B0aW9ucy5hdXRvTWVyZ2VPcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBEbyBub3QgcmVxdWlyZSBQUiB2YWxpZGF0aW9uIG9uIG1lcmdlIHF1ZXVlXG4gICAgLy8gTmVlZCBpZiB0aGUgcHVsbC1yZXF1ZXN0LWxpbnQgd29ya2Zsb3cgaXMgYSByZXF1aXJlZCBidWlsZCBjaGVja1xuICAgIGNvbnN0IHByTGludFdvcmtmbG93ID0gcHJvamVjdC5naXRodWI/LnRyeUZpbmRXb3JrZmxvdygncHVsbC1yZXF1ZXN0LWxpbnQnKTtcbiAgICBwckxpbnRXb3JrZmxvdz8ub24oe1xuICAgICAgbWVyZ2VHcm91cDoge1xuICAgICAgICBicmFuY2hlczogW1xuICAgICAgICAgIGAke21lcmdlQnJhbmNofWAsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHByTGludFdvcmtmbG93Py5maWxlPy5hZGRPdmVycmlkZShcbiAgICAgICdqb2JzLnZhbGlkYXRlLmlmJyxcbiAgICAgIFwiZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3B1bGxfcmVxdWVzdCcgfHwgZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3B1bGxfcmVxdWVzdF90YXJnZXQnXCIsXG4gICAgKTtcbiAgfVxufVxuIl19
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.1.194" };
51
+ Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.1.195" };
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zZXR0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3NldHRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9EO0FBa0JwRDs7Ozs7R0FLRztBQUNILE1BQWEsT0FBUSxTQUFRLGtCQUFTO0lBQ3BDLFlBQVksT0FBd0IsRUFBRSxVQUEwQixFQUFFO1FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx1R0FBdUcsQ0FBQyxDQUFDO1NBQzlIO1FBRUQsYUFBYTtRQUNiLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUN4RixPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRS9CLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDckQsV0FBVyxFQUFFLHNCQUFzQjtZQUNuQyxJQUFJLEVBQUUsc0NBQXNDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUU7U0FDOUUsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hDLElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUU7WUFDcEQsUUFBUSxFQUFFO2dCQUNSLHFEQUFxRDtnQkFDckQseUNBQXlDO2dCQUN6QyxVQUFVO2dCQUNWLFVBQVU7Z0JBQ1YsdUJBQXVCO2dCQUN2QixFQUFFO2dCQUNGLCtCQUErQjtnQkFDL0IsK0NBQStDO2dCQUMvQyx1QkFBdUI7Z0JBQ3ZCLEVBQUU7Z0JBQ0YsY0FBYztnQkFDZCxLQUFLO2dCQUNMLEdBQUc7YUFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDYixDQUFDLENBQUM7UUFDSCxPQUFPLENBQUMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDdkQsQ0FBQzs7QUF0Q0gsMEJBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBTYW1wbGVGaWxlLCBjZGsgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvc2V0dGFPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHN0cmljdCBtb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzdHJpY3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXQgYW4gZXhwbGljaXQgdmVyc2lvbiBvZiByb3NldHRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHZlcnNpb24gaXMgc2V0LCB1c2UgYXV0b21hdGljIGRldGVjdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgUm9zZXR0YSBjb21wb25lbnQgYWRkcyBidWlsdGluIHJvc2V0dGEgc3VwcG9ydFxuICogZm9yIGEgY29uc3RydWN0IGxpYnJhcnkuIFNpbmNlIENvbnN0cnVjdEh1YiB3aWxsIHJ1blxuICogcm9zZXR0YSBmb3IgcmVhbCwgdGhpcyBqdXN0IGFkZHMgYSBjaGVjayB0byB0aGUgYnVpbGQgdG9cbiAqIGVuc3VyZSB0aGF0IHJvc2V0dGEgd2lsbCBydW4gc3VjY2Vzc2Z1bGx5XG4gKi9cbmV4cG9ydCBjbGFzcyBSb3NldHRhIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogY2RrLkpzaWlQcm9qZWN0LCBvcHRpb25zOiBSb3NldHRhT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICBjb25zdCBzdHJpY3QgPSBvcHRpb25zLnN0cmljdCA/PyB0cnVlO1xuXG4gICAgaWYgKCFzdHJpY3QpIHtcbiAgICAgIHByb2plY3QubG9nZ2VyLndhcm4oJ1Jvc2V0dGEgaXMgTk9UIG9wZXJhdGluZyBpbiBzdHJpY3QgbW9kZS4gV2UgYXJlIGdvaW5nIHRvIGVuZm9yY2UgdGhpcyBzb29uLlxcblBsZWFzZSBmaXggYW55IGV4YW1wbGVzLicpO1xuICAgIH1cblxuICAgIC8vIEFkZCBEZXZEZXBcbiAgICBjb25zdCByb3NldHRhRGVwID0gb3B0aW9ucy52ZXJzaW9uID8gYGpzaWktcm9zZXR0YUAke29wdGlvbnMudmVyc2lvbn1gIDogJ2pzaWktcm9zZXR0YSc7XG4gICAgcHJvamVjdC5hZGREZXZEZXBzKHJvc2V0dGFEZXApO1xuXG4gICAgY29uc3Qgcm9zZXR0YVRhc2sgPSBwcm9qZWN0LmFkZFRhc2soJ3Jvc2V0dGE6ZXh0cmFjdCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGVzdCByb3NldHRhIGV4dHJhY3QnLFxuICAgICAgZXhlYzogYHlhcm4gLS1zaWxlbnQganNpaS1yb3NldHRhIGV4dHJhY3QgJHtzdHJpY3QgPyAnLS1zdHJpY3QnIDogJyd9YC50cmltKCksXG4gICAgfSk7XG4gICAgcHJvamVjdC5wb3N0Q29tcGlsZVRhc2suc3Bhd24ocm9zZXR0YVRhc2spO1xuICAgIHByb2plY3QuYWRkR2l0SWdub3JlKCcuanNpaS50YWJsLmpzb24nKTtcbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCAncm9zZXR0YS9kZWZhdWx0LnRzLWZpeHR1cmUnLCB7XG4gICAgICBjb250ZW50czogW1xuICAgICAgICAnLy8gRml4dHVyZSB3aXRoIHBhY2thZ2VzIGltcG9ydGVkLCBidXQgbm90aGluZyBlbHNlJyxcbiAgICAgICAgXCJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcIixcbiAgICAgICAgJ2ltcG9ydCB7JyxcbiAgICAgICAgJyAgU3RhY2ssJyxcbiAgICAgICAgXCJ9IGZyb20gJ2F3cy1jZGstbGliJztcIixcbiAgICAgICAgJycsXG4gICAgICAgICdjbGFzcyBGaXh0dXJlIGV4dGVuZHMgU3RhY2sgeycsXG4gICAgICAgICcgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHsnLFxuICAgICAgICAnICAgIHN1cGVyKHNjb3BlLCBpZCk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLy8vIGhlcmUnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJ30nLFxuICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICB9KTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnIS9yb3NldHRhL2RlZmF1bHQudHMtZml4dHVyZScpO1xuICB9XG59XG4iXX0=
@@ -95,14 +95,26 @@ class MonorepoRelease extends projen_1.Component {
95
95
  (downloadStep.with ?? {}).name = buildArtifactName(release.workspace);
96
96
  }
97
97
  // Make the job names unique
98
- this.workflow?.addJobs(Object.fromEntries(Object.entries(packagePublishJobs).map(([key, job]) => [
99
- slugify(`${release.workspace.name}_${key}`),
100
- {
101
- ...job,
102
- if: `\${{ needs.release.outputs.latest_commit == github.sha && needs.release.outputs.${publishProjectOutputId(release.workspace)} == 'true' }}`,
103
- name: `${release.workspace.name}: ${job.name}`,
104
- },
105
- ])));
98
+ this.workflow?.addJobs(Object.fromEntries(Object.entries(packagePublishJobs).map(([key, job]) => {
99
+ const prefix = slugify(`${release.workspace.name}`);
100
+ const needs = (job.needs ?? []).map(dep => {
101
+ // All publish jobs depend on the main release job
102
+ if (dep === 'release') {
103
+ return dep;
104
+ }
105
+ // ... and possibly on individual publish jobs that are prefixed
106
+ return `${prefix}_${dep}`;
107
+ });
108
+ return [
109
+ `${prefix}_${key}`,
110
+ {
111
+ ...job,
112
+ needs,
113
+ if: `\${{ needs.release.outputs.latest_commit == github.sha && needs.release.outputs.${publishProjectOutputId(release.workspace)} == 'true' }}`,
114
+ name: `${release.workspace.name}: ${job.name}`,
115
+ },
116
+ ];
117
+ })));
106
118
  }
107
119
  }
108
120
  obtainReleaseTask() {
@@ -227,7 +239,7 @@ class MonorepoRelease extends projen_1.Component {
227
239
  }
228
240
  exports.MonorepoRelease = MonorepoRelease;
229
241
  _a = JSII_RTTI_SYMBOL_1;
230
- MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.1.194" };
242
+ MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.1.195" };
231
243
  function slugify(x) {
232
244
  return x.replace(/[^a-zA-Z0-9_-]/g, '-').replace(/^[0-9-]+/, '');
233
245
  }
@@ -240,4 +252,4 @@ function publishProjectOutputId(project) {
240
252
  function shouldPublishProjectStepId(project) {
241
253
  return `check-${publishProjectOutputId(project)}`;
242
254
  }
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL21vbm9yZXBvLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW9GO0FBQ3BGLDJEQUEwRjtBQUcxRixpRkFBMkY7QUFFM0YsZ0NBQWdDO0FBQ2hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNoQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQztBQUU3QyxNQUFhLGVBQWdCLFNBQVEsa0JBQVM7SUFDNUM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBWSxFQUF3QixFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQWUsQ0FBQztRQUN2RyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQWdCRCxZQUFZLE9BQWdCLEVBQW1CLFVBQWtDLEVBQUU7UUFDakYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDhCLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBWGxFLHNCQUFpQixHQUFHLElBQUksS0FBSyxFQU0xQyxDQUFDO1FBUUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUMvQyxNQUFNLEVBQUUsR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUNoRTtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdB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QUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxPQUFnQjtJQUNsRCxPQUFPLFNBQVMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGdpdGh1YiwgcmVsZWFzZSBhcyBwcm9qZW5SZWxlYXNlLCBDb21wb25lbnQsIFByb2plY3QsIFRhc2sgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQlVJTERfQVJUSUZBQ1RfTkFNRSwgUEVSTUlTU0lPTl9CQUNLVVBfRklMRSB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBNb25vcmVwb1JlbGVhc2VPcHRpb25zIH0gZnJvbSAnLi9tb25vcmVwby1yZWxlYXNlLW9wdGlvbnMnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuaW1wb3J0IHsgV29ya3NwYWNlUmVsZWFzZSwgV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UnO1xuXG4vLyBjb3BpZWQgZnJvbSBwcm9qZW4vcmVsZWFzZS50c1xuY29uc3QgUkVMRUFTRV9KT0JJRCA9ICdyZWxlYXNlJztcbmNvbnN0IEdJVF9SRU1PVEVfU1RFUElEID0gJ2dpdF9yZW1vdGUnO1xuY29uc3QgTEFURVNUX0NPTU1JVF9PVVRQVVQgPSAnbGF0ZXN0X2NvbW1pdCc7XG5cbmV4cG9ydCBjbGFzcyBNb25vcmVwb1JlbGVhc2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYE1vbm9yZXBvUmVsZWFzZVdvcmtmbG93YCBjb21wb25lbnQgb2YgYSBwcm9qZWN0IG9yIGB1bmRlZmluZWRgIGlmIHRoZSBwcm9qZWN0XG4gICAqIGRvZXMgbm90IGhhdmUgYSBNb25vcmVwb1JlbGVhc2VXb3JrZmxvdyBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBNb25vcmVwb1JlbGVhc2UgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzTW9ub3JlcG9SZWxlYXNlV29ya2Zsb3cgPSAoYzogQ29tcG9uZW50KTogYyBpcyBNb25vcmVwb1JlbGVhc2UgPT4gYyBpbnN0YW5jZW9mIE1vbm9yZXBvUmVsZWFzZTtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNNb25vcmVwb1JlbGVhc2VXb3JrZmxvdyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGJyYW5jaE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBnaXRodWI6IGdpdGh1Yi5HaXRIdWI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsZWFzZVRyaWdnZXI6IHByb2plblJlbGVhc2UuUmVsZWFzZVRyaWdnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFja2FnZXNUb1JlbGVhc2UgPSBuZXcgQXJyYXk8e1xuICAgIHJlYWRvbmx5IHdvcmtzcGFjZURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHJlbGVhc2U6IHtcbiAgICAgIHJlYWRvbmx5IHdvcmtzcGFjZTogVHlwZVNjcmlwdFdvcmtzcGFjZTtcbiAgICAgIHJlYWRvbmx5IHB1Ymxpc2hlcjogcHJvamVuUmVsZWFzZS5QdWJsaXNoZXI7XG4gICAgfTtcbiAgfT4oKTtcblxuICBwcml2YXRlIHdvcmtmbG93PzogZ2l0aHViLlRhc2tXb3JrZmxvdztcbiAgcHJpdmF0ZSByZWxlYXNlVGFzaz86IFRhc2s7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBNb25vcmVwb1JlbGVhc2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuYnJhbmNoTmFtZSA9IG9wdGlvbnMuYnJhbmNoTmFtZSA/PyAnbWFpbic7XG4gICAgY29uc3QgZ2ggPSBnaXRodWIuR2l0SHViLm9mKHByb2plY3QpO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvamVjdCBpcyBub3QgYSBHaXRIdWIgcHJvamVjdDogJHtwcm9qZWN0fWApO1xuICAgIH1cbiAgICB0aGlzLmdpdGh1YiA9IGdoO1xuICAgIHRoaXMucmVsZWFzZVRyaWdnZXIgPSBvcHRpb25zLnJlbGVhc2VUcmlnZ2VyID8/IHByb2plblJlbGVhc2UuUmVsZWFzZVRyaWdnZXIuY29udGludW91cygpO1xuICB9XG5cbiAgcHVibGljIGFkZFdvcmtzcGFjZShwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlLCBvcHRpb25zOiBXb3Jrc3BhY2VSZWxlYXNlT3B0aW9ucykge1xuICAgIGNvbnN0IHdvcmtzcGFjZVJlbGVhc2UgPSBuZXcgV29ya3NwYWNlUmVsZWFzZShwcm9qZWN0LCB7XG4gICAgICBwdWJsaXNoVG9OcG06IHRoaXMub3B0aW9ucy5wdWJsaXNoVG9OcG0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICAgIGlmICghb3B0aW9ucy5wcml2YXRlICYmIHdvcmtzcGFjZVJlbGVhc2UucHVibGlzaGVyKSB7XG4gICAgICB0aGlzLm9idGFpblJlbGVhc2VUYXNrKCk7XG5cbiAgICAgIHRoaXMucGFja2FnZXNUb1JlbGVhc2UucHVzaCh7XG4gICAgICAgIHdvcmtzcGFjZURpcmVjdG9yeTogcHJvamVjdC53b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIHJlbGVhc2U6IHtcbiAgICAgICAgICB3b3Jrc3BhY2U6IHdvcmtzcGFjZVJlbGVhc2Uud29ya3NwYWNlLFxuICAgICAgICAgIHB1Ymxpc2hlcjogd29ya3NwYWNlUmVsZWFzZS5wdWJsaXNoZXIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMucmVsZWFzZVRhc2spIHtcbiAgICAgIC8vIFdlIGRpZG4ndCBlbmQgdXAgYWRkaW5nIGFueSBwYWNrYWdlc1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlUHVibGlzaGluZ01lY2hhbmlzbSgpO1xuICAgIHRoaXMucmVuZGVyUGFja2FnZVVwbG9hZHMoKTtcbiAgICB0aGlzLnJlbmRlclB1Ymxpc2hKb2JzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhY2thZ2VVcGxvYWRzKCkge1xuICAgIGNvbnN0IG5vTmV3Q29tbWl0cyA9IGBcXCR7eyBzdGVwcy4ke0dJVF9SRU1PVEVfU1RFUElEfS5vdXRwdXRzLiR7TEFURVNUX0NPTU1JVF9PVVRQVVR9ID09IGdpdGh1Yi5zaGEgfX1gO1xuXG4gICAgZm9yIChjb25zdCB7IHdvcmtzcGFjZURpcmVjdG9yeSwgcmVsZWFzZSB9IG9mIHRoaXMucGFja2FnZXNUb1JlbGVhc2UpIHtcbiAgICAgIGNvbnN0IGpvYiA9IHRoaXMud29ya2Zsb3c/LmdldEpvYihSRUxFQVNFX0pPQklEKSBhcyBnaXRodWIud29ya2Zsb3dzLkpvYiB8IHVuZGVmaW5lZDtcbiAgICAgIGpvYj8uc3RlcHMucHVzaChcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9OiBCYWNrdXAgYXJ0aWZhY3QgcGVybWlzc2lvbnNgLFxuICAgICAgICAgIGlmOiBub05ld0NvbW1pdHMsXG4gICAgICAgICAgY29udGludWVPbkVycm9yOiB0cnVlLFxuICAgICAgICAgIHJ1bjogYGNkICR7cmVsZWFzZS53b3Jrc3BhY2UuYXJ0aWZhY3RzRGlyZWN0b3J5fSAmJiBnZXRmYWNsIC1SIC4gPiAke1BFUk1JU1NJT05fQkFDS1VQX0ZJTEV9YCxcbiAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIH0sXG4gICAgICAgIGdpdGh1Yi5Xb3JrZmxvd1N0ZXBzLnVwbG9hZEFydGlmYWN0KHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfTogVXBsb2FkIGFydGlmYWN0YCxcbiAgICAgICAgICBpZjogbm9OZXdDb21taXRzLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIC8vIEV2ZXJ5IGFydGlmYWN0IG11c3QgaGF2ZSBhIHVuaXF1ZSBuYW1lXG4gICAgICAgICAgICBuYW1lOiBidWlsZEFydGlmYWN0TmFtZShyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgICAgICBwYXRoOiBwYXRoLmpvaW4od29ya3NwYWNlRGlyZWN0b3J5LCByZWxlYXNlLndvcmtzcGFjZS5hcnRpZmFjdHNEaXJlY3RvcnkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclB1Ymxpc2hKb2JzKCkge1xuICAgIGZvciAoY29uc3QgeyByZWxlYXNlIH0gb2YgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZSkge1xuICAgICAgY29uc3QgcGFja2FnZVB1Ymxpc2hKb2JzID0gcmVsZWFzZS5wdWJsaXNoZXIuX3JlbmRlckpvYnNGb3JCcmFuY2godGhpcy5icmFuY2hOYW1lLCB7XG4gICAgICAgIG1ham9yVmVyc2lvbjogdGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbixcbiAgICAgICAgbWluTWFqb3JWZXJzaW9uOiB0aGlzLm9wdGlvbnMubWluTWFqb3JWZXJzaW9uLFxuICAgICAgICBucG1EaXN0VGFnOiB0aGlzLm9wdGlvbnMubnBtRGlzdFRhZyxcbiAgICAgICAgcHJlcmVsZWFzZTogdGhpcy5vcHRpb25zLnByZXJlbGVhc2UsXG4gICAgICB9KTtcblxuICAgICAgZm9yIChjb25zdCBqb2Igb2YgT2JqZWN0LnZhbHVlcyhwYWNrYWdlUHVibGlzaEpvYnMpKSB7XG4gICAgICAgIC8vIEZpbmQgdGhlICdkb3dubG9hZC1hcnRpZmFjdCcgam9iIGFuZCByZXBsYWNlIHRoZSBidWlsZCBhcnRpZmFjdCBuYW1lIHdpdGggdGhlIHVuaXF1ZSBwZXItcHJvamVjdCBvbmVcbiAgICAgICAgY29uc3QgZG93bmxvYWRTdGVwID0gam9iLnN0ZXBzLmZpbmQoKGopID0+IGoudXNlcz8uc3RhcnRzV2l0aCgnYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEAnKSk7XG4gICAgICAgIGlmICghZG93bmxvYWRTdGVwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBkb3dubG9hZFN0ZXAgYW1vbmcgc3RlcHM6ICR7SlNPTi5zdHJpbmdpZnkoam9iLnN0ZXBzLCB1bmRlZmluZWQsIDIpfWApO1xuICAgICAgICB9XG4gICAgICAgIChkb3dubG9hZFN0ZXAud2l0aCA/PyB7fSkubmFtZSA9IGJ1aWxkQXJ0aWZhY3ROYW1lKHJlbGVhc2Uud29ya3NwYWNlKTtcbiAgICAgIH1cblxuICAgICAgLy8gTWFrZSB0aGUgam9iIG5hbWVzIHVuaXF1ZVxuICAgICAgdGhpcy53b3JrZmxvdz8uYWRkSm9icyhcbiAgICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBhY2thZ2VQdWJsaXNoSm9icykubWFwKChba2V5LCBqb2JdKSA9PiBbXG4gICAgICAgICAgICBzbHVnaWZ5KGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9XyR7a2V5fWApLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5qb2IsXG4gICAgICAgICAgICAgIGlmOiBgXFwke3sgbmVlZHMucmVsZWFzZS5vdXRwdXRzLmxhdGVzdF9jb21taXQgPT0gZ2l0aHViLnNoYSAmJiBuZWVkcy5yZWxlYXNlLm91dHB1dHMuJHtwdWJsaXNoUHJvamVjdE91dHB1dElkKFxuICAgICAgICAgICAgICAgIHJlbGVhc2Uud29ya3NwYWNlLFxuICAgICAgICAgICAgICApfSA9PSAndHJ1ZScgfX1gLFxuICAgICAgICAgICAgICBuYW1lOiBgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfTogJHtqb2IubmFtZX1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvYnRhaW5SZWxlYXNlVGFzaygpOiBUYXNrIHtcbiAgICBpZiAodGhpcy5yZWxlYXNlVGFzaykge1xuICAgICAgcmV0dXJuIHRoaXMucmVsZWFzZVRhc2s7XG4gICAgfVxuXG4gICAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgUkVMRUFTRTogJ3RydWUnLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBlbnYuTUFKT1IgPSB0aGlzLm9wdGlvbnMubWFqb3JWZXJzaW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5taW5NYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5tYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbk1ham9yVmVyc2lvbiBhbmQgbWFqb3JWZXJzaW9uIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyLicpO1xuICAgICAgfVxuXG4gICAgICBlbnYuTUlOX01BSk9SID0gdGhpcy5vcHRpb25zLm1pbk1ham9yVmVyc2lvbi50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHRoaXMucmVsZWFzZVRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzaygncmVsZWFzZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUHJlcGFyZSBhIHJlbGVhc2UgZnJvbSBhbGwgbW9ub3JlcG8gcGFja2FnZXMnLFxuICAgICAgZW52LFxuICAgIH0pO1xuICAgIC8vIFVucm9sbCBvdXQgdGhlICdyZWxlYXNlJyB0YXNrLCBhbmQgZG8gYWxsIHRoZSBwaGFzZXMgZm9yIGVhY2ggaW5kaXZpZHVhbCBwYWNrYWdlLiBXZSBuZWVkIHRvICdidW1wJyBhdCB0aGUgc2FtZVxuICAgIC8vIHRpbWUgc28gdGhhdCB0aGUgZGVwZW5kZW5jeSB2ZXJzaW9ucyBpbiBhbGwgJ3BhY2thZ2UuanNvbidzIGFyZSBjb3JyZWN0LlxuICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biBzaHggcm0gLXJmIGRpc3QnKTtcbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVtcCcpO1xuICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biBidWlsZCcpO1xuICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biB1bmJ1bXAnKTtcbiAgICAvLyBhbnRpLXRhbXBlciBjaGVjayAoZmFpbHMgaWYgdGhlcmUgd2VyZSBjaGFuZ2VzIHRvIGNvbW1pdHRlZCBmaWxlcylcbiAgICAvLyB0aGlzIHdpbGwgaWRlbnRpZnkgYW55IG5vbi1jb21taXR0ZWQgZmlsZXMgZ2VuZXJhdGVkIGR1cmluZyBidWlsZCAoZS5nLiB0ZXN0IHNuYXBzaG90cylcbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMocHJvamVuUmVsZWFzZS5SZWxlYXNlLkFOVElfVEFNUEVSX0NNRCk7XG5cbiAgICByZXR1cm4gdGhpcy5yZWxlYXNlVGFzaztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHVibGlzaGluZ01lY2hhbmlzbSgpIHtcbiAgICBpZiAodGhpcy5yZWxlYXNlVHJpZ2dlci5pc01hbnVhbCkge1xuICAgICAgdGhpcy5jcmVhdGVQdWJsaXNoVGFzaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNyZWF0ZVB1Ymxpc2hXb3JrZmxvdygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHVibGlzaFRhc2soKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNYW51YWwgcHVibGlzaGluZyBpcyBub3Qgc3VwcG9ydGVkIHJpZ2h0IG5vdycpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWJsaXNoV29ya2Zsb3coKSB7XG4gICAgY29uc3Qgd29ya2Zsb3dOYW1lID1cbiAgICAgIHRoaXMub3B0aW9ucy5yZWxlYXNlV29ya2Zsb3dOYW1lID8/XG4gICAgICAoWydtYXN0ZXInLCAnbWFpbiddLmluY2x1ZGVzKHRoaXMuYnJhbmNoTmFtZSkgPyAncmVsZWFzZScgOiBgcmVsZWFzZS0ke3RoaXMuYnJhbmNoTmFtZX1gKTtcblxuICAgIC8vIFRoZSBhcnJheXMgYXJlIGJlaW5nIGNsb25lZCB0byBhdm9pZCBhY2N1bXVsYXRpbmcgdmFsdWVzIGZyb20gcHJldmlvdXMgYnJhbmNoZXNcbiAgICBjb25zdCBwcmVCdWlsZFN0ZXBzID0gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnU2V0dXAgTm9kZS5qcycsXG4gICAgICAgIHVzZXM6ICdhY3Rpb25zL3NldHVwLW5vZGVAdjQnLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgJ25vZGUtdmVyc2lvbic6ICh0aGlzLnByb2plY3QgYXMgYW55KS5ub2RlVmVyc2lvbiA/PyAnbHRzLyonLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgcnVuOiAneWFybiBpbnN0YWxsIC0tY2hlY2stZmlsZXMgLS1mcm96ZW4tbG9ja2ZpbGUnLFxuICAgICAgfSxcbiAgICAgIC4uLih0aGlzLm9wdGlvbnMucmVsZWFzZVdvcmtmbG93U2V0dXBTdGVwcyA/PyBbXSksXG4gICAgXTtcbiAgICBjb25zdCBwb3N0QnVpbGRTdGVwcyA9IFsuLi4odGhpcy5vcHRpb25zLnBvc3RCdWlsZFN0ZXBzID8/IFtdKV07XG5cbiAgICAvLyBBZGQgYW4gb3V0cHV0IHRvIHRoZSBqb2IgdG8gaW5kaWNhdGUgaWYgYSBjZXJ0YWluIHBhY2thZ2UgbmVlZHMgcHVibGlzaGluZ1xuICAgIGNvbnN0IHNob3VsZFB1Ymxpc2hPdXRwdXRzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZS5tYXAoKHsgcmVsZWFzZSB9KSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgcHVibGlzaFByb2plY3RPdXRwdXRJZChyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3RlcElkOiBzaG91bGRQdWJsaXNoUHJvamVjdFN0ZXBJZChyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgICAgICBvdXRwdXROYW1lOiAncHVibGlzaCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgcHJvcG9zZWQgcmVsZWFzZSB0YWcgYWxyZWFkeSBleGlzdHNcbiAgICAvLyBPbmx5IGlmIGl0IGRvZXNuJ3QgZXhpc3QgeWV0IHNob3VsZCB3ZSBwdWJsaXNoXG4gICAgZm9yIChjb25zdCB7IHdvcmtzcGFjZURpcmVjdG9yeSwgcmVsZWFzZSB9IG9mIHRoaXMucGFja2FnZXNUb1JlbGVhc2UpIHtcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLnB1c2goe1xuICAgICAgICBpZDogc2hvdWxkUHVibGlzaFByb2plY3RTdGVwSWQocmVsZWFzZS53b3Jrc3BhY2UpLFxuICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIHJ1bjogJyhnaXQgbHMtcmVtb3RlIC1xIC0tZXhpdC1jb2RlIC0tdGFncyBvcmlnaW4gJChjYXQgZGlzdC9yZWxlYXNldGFnLnR4dCkgJiYgKGVjaG8gXCJwdWJsaXNoPWZhbHNlXCIgPj4gJEdJVEhVQl9PVVRQVVQpKSB8fCBlY2hvIFwicHVibGlzaD10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgbmV3IGNvbW1pdHMgd2VyZSBwdXNoZWQgdG8gdGhlIHJlcG8gd2hpbGUgd2Ugd2VyZSBidWlsZGluZy5cbiAgICAvLyBpZiBuZXcgY29tbWl0cyBoYXZlIGJlZW4gcHVzaGVkLCB3ZSB3aWxsIGNhbmNlbCB0aGlzIHJlbGVhc2VcbiAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdDaGVjayBmb3IgbmV3IGNvbW1pdHMnLFxuICAgICAgaWQ6IEdJVF9SRU1PVEVfU1RFUElELFxuICAgICAgcnVuOiBgZWNobyBcIiR7TEFURVNUX0NPTU1JVF9PVVRQVVR9PSQoZ2l0IGxzLXJlbW90ZSBvcmlnaW4gLWggXFwke3sgZ2l0aHViLnJlZiB9fSB8IGN1dCAtZjEpXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgIH0pO1xuXG4gICAgdGhpcy53b3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KHRoaXMuZ2l0aHViLCB7XG4gICAgICBuYW1lOiB3b3JrZmxvd05hbWUsXG4gICAgICBqb2JJZDogUkVMRUFTRV9KT0JJRCxcbiAgICAgIG91dHB1dHM6IHtcbiAgICAgICAgbGF0ZXN0X2NvbW1pdDoge1xuICAgICAgICAgIHN0ZXBJZDogR0lUX1JFTU9URV9TVEVQSUQsXG4gICAgICAgICAgb3V0cHV0TmFtZTogTEFURVNUX0NPTU1JVF9PVVRQVVQsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnNob3VsZFB1Ymxpc2hPdXRwdXRzLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIHNjaGVkdWxlOiB0aGlzLnJlbGVhc2VUcmlnZ2VyLnNjaGVkdWxlID8gW3sgY3JvbjogdGhpcy5yZWxlYXNlVHJpZ2dlci5zY2hlZHVsZSB9XSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHVzaDogdGhpcy5yZWxlYXNlVHJpZ2dlci5pc0NvbnRpbnVvdXMgPyB7IGJyYW5jaGVzOiBbdGhpcy5icmFuY2hOYW1lXSB9IDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5vcHRpb25zLndvcmtmbG93Q29udGFpbmVySW1hZ2UgPyB7IGltYWdlOiB0aGlzLm9wdGlvbnMud29ya2Zsb3dDb250YWluZXJJbWFnZSB9IDogdW5kZWZpbmVkLFxuICAgICAgZW52OiB7XG4gICAgICAgIENJOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6ICd3cml0ZScgYXMgYW55LFxuICAgICAgfSxcbiAgICAgIGNoZWNrb3V0V2l0aDoge1xuICAgICAgICAvLyB3ZSBtdXN0IHVzZSAnZmV0Y2gtZGVwdGg9MCcgaW4gb3JkZXIgdG8gZmV0Y2ggYWxsIHRhZ3NcbiAgICAgICAgLy8gb3RoZXJ3aXNlIHRhZ3MgYXJlIG5vdCBjaGVja2VkIG91dFxuICAgICAgICBmZXRjaERlcHRoOiAwLFxuICAgICAgfSxcbiAgICAgIHByZUJ1aWxkU3RlcHMsXG4gICAgICB0YXNrOiB0aGlzLnJlbGVhc2VUYXNrISxcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLFxuICAgICAgcnVuc09uOiB0aGlzLm9wdGlvbnMud29ya2Zsb3dSdW5zT24sXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2x1Z2lmeSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4geC5yZXBsYWNlKC9bXmEtekEtWjAtOV8tXS9nLCAnLScpLnJlcGxhY2UoL15bMC05LV0rLywgJycpO1xufVxuXG5mdW5jdGlvbiBidWlsZEFydGlmYWN0TmFtZShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBzbHVnaWZ5KGAke3Byb2plY3QubmFtZX1fJHtCVUlMRF9BUlRJRkFDVF9OQU1FfWApO1xufVxuXG5mdW5jdGlvbiBwdWJsaXNoUHJvamVjdE91dHB1dElkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgcmV0dXJuIGBwdWJsaXNoLSR7c2x1Z2lmeShwcm9qZWN0Lm5hbWUpfWA7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFB1Ymxpc2hQcm9qZWN0U3RlcElkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgcmV0dXJuIGBjaGVjay0ke3B1Ymxpc2hQcm9qZWN0T3V0cHV0SWQocHJvamVjdCl9YDtcbn1cbiJdfQ==
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL21vbm9yZXBvLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW9GO0FBQ3BGLDJEQUEwRjtBQUcxRixpRkFBMkY7QUFFM0YsZ0NBQWdDO0FBQ2hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNoQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQztBQUU3QyxNQUFhLGVBQWdCLFNBQVEsa0JBQVM7SUFDNUM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBWSxFQUF3QixFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQWUsQ0FBQztRQUN2RyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQWdCRCxZQUFZLE9BQWdCLEVBQW1CLFVBQWtDLEVBQUU7UUFDakYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDhCLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBWGxFLHNCQUFpQixHQUFHLElBQUksS0FBSyxFQU0xQyxDQUFDO1FBUUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUMvQyxNQUFNLEVBQUUsR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUNoRTtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdB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QUFuUkgsMENBb1JDOzs7QUFFRCxTQUFTLE9BQU8sQ0FBQyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE9BQWdCO0lBQ3pDLE9BQU8sT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSwrQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsT0FBZ0I7SUFDOUMsT0FBTyxXQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxPQUFnQjtJQUNsRCxPQUFPLFNBQVMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGdpdGh1YiwgcmVsZWFzZSBhcyBwcm9qZW5SZWxlYXNlLCBDb21wb25lbnQsIFByb2plY3QsIFRhc2sgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQlVJTERfQVJUSUZBQ1RfTkFNRSwgUEVSTUlTU0lPTl9CQUNLVVBfRklMRSB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBNb25vcmVwb1JlbGVhc2VPcHRpb25zIH0gZnJvbSAnLi9tb25vcmVwby1yZWxlYXNlLW9wdGlvbnMnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuaW1wb3J0IHsgV29ya3NwYWNlUmVsZWFzZSwgV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UnO1xuXG4vLyBjb3BpZWQgZnJvbSBwcm9qZW4vcmVsZWFzZS50c1xuY29uc3QgUkVMRUFTRV9KT0JJRCA9ICdyZWxlYXNlJztcbmNvbnN0IEdJVF9SRU1PVEVfU1RFUElEID0gJ2dpdF9yZW1vdGUnO1xuY29uc3QgTEFURVNUX0NPTU1JVF9PVVRQVVQgPSAnbGF0ZXN0X2NvbW1pdCc7XG5cbmV4cG9ydCBjbGFzcyBNb25vcmVwb1JlbGVhc2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYE1vbm9yZXBvUmVsZWFzZVdvcmtmbG93YCBjb21wb25lbnQgb2YgYSBwcm9qZWN0IG9yIGB1bmRlZmluZWRgIGlmIHRoZSBwcm9qZWN0XG4gICAqIGRvZXMgbm90IGhhdmUgYSBNb25vcmVwb1JlbGVhc2VXb3JrZmxvdyBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBNb25vcmVwb1JlbGVhc2UgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzTW9ub3JlcG9SZWxlYXNlV29ya2Zsb3cgPSAoYzogQ29tcG9uZW50KTogYyBpcyBNb25vcmVwb1JlbGVhc2UgPT4gYyBpbnN0YW5jZW9mIE1vbm9yZXBvUmVsZWFzZTtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNNb25vcmVwb1JlbGVhc2VXb3JrZmxvdyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGJyYW5jaE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBnaXRodWI6IGdpdGh1Yi5HaXRIdWI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsZWFzZVRyaWdnZXI6IHByb2plblJlbGVhc2UuUmVsZWFzZVRyaWdnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFja2FnZXNUb1JlbGVhc2UgPSBuZXcgQXJyYXk8e1xuICAgIHJlYWRvbmx5IHdvcmtzcGFjZURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHJlbGVhc2U6IHtcbiAgICAgIHJlYWRvbmx5IHdvcmtzcGFjZTogVHlwZVNjcmlwdFdvcmtzcGFjZTtcbiAgICAgIHJlYWRvbmx5IHB1Ymxpc2hlcjogcHJvamVuUmVsZWFzZS5QdWJsaXNoZXI7XG4gICAgfTtcbiAgfT4oKTtcblxuICBwcml2YXRlIHdvcmtmbG93PzogZ2l0aHViLlRhc2tXb3JrZmxvdztcbiAgcHJpdmF0ZSByZWxlYXNlVGFzaz86IFRhc2s7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBNb25vcmVwb1JlbGVhc2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuYnJhbmNoTmFtZSA9IG9wdGlvbnMuYnJhbmNoTmFtZSA/PyAnbWFpbic7XG4gICAgY29uc3QgZ2ggPSBnaXRodWIuR2l0SHViLm9mKHByb2plY3QpO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvamVjdCBpcyBub3QgYSBHaXRIdWIgcHJvamVjdDogJHtwcm9qZWN0fWApO1xuICAgIH1cbiAgICB0aGlzLmdpdGh1YiA9IGdoO1xuICAgIHRoaXMucmVsZWFzZVRyaWdnZXIgPSBvcHRpb25zLnJlbGVhc2VUcmlnZ2VyID8/IHByb2plblJlbGVhc2UuUmVsZWFzZVRyaWdnZXIuY29udGludW91cygpO1xuICB9XG5cbiAgcHVibGljIGFkZFdvcmtzcGFjZShwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlLCBvcHRpb25zOiBXb3Jrc3BhY2VSZWxlYXNlT3B0aW9ucykge1xuICAgIGNvbnN0IHdvcmtzcGFjZVJlbGVhc2UgPSBuZXcgV29ya3NwYWNlUmVsZWFzZShwcm9qZWN0LCB7XG4gICAgICBwdWJsaXNoVG9OcG06IHRoaXMub3B0aW9ucy5wdWJsaXNoVG9OcG0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICAgIGlmICghb3B0aW9ucy5wcml2YXRlICYmIHdvcmtzcGFjZVJlbGVhc2UucHVibGlzaGVyKSB7XG4gICAgICB0aGlzLm9idGFpblJlbGVhc2VUYXNrKCk7XG5cbiAgICAgIHRoaXMucGFja2FnZXNUb1JlbGVhc2UucHVzaCh7XG4gICAgICAgIHdvcmtzcGFjZURpcmVjdG9yeTogcHJvamVjdC53b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIHJlbGVhc2U6IHtcbiAgICAgICAgICB3b3Jrc3BhY2U6IHdvcmtzcGFjZVJlbGVhc2Uud29ya3NwYWNlLFxuICAgICAgICAgIHB1Ymxpc2hlcjogd29ya3NwYWNlUmVsZWFzZS5wdWJsaXNoZXIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMucmVsZWFzZVRhc2spIHtcbiAgICAgIC8vIFdlIGRpZG4ndCBlbmQgdXAgYWRkaW5nIGFueSBwYWNrYWdlc1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlUHVibGlzaGluZ01lY2hhbmlzbSgpO1xuICAgIHRoaXMucmVuZGVyUGFja2FnZVVwbG9hZHMoKTtcbiAgICB0aGlzLnJlbmRlclB1Ymxpc2hKb2JzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhY2thZ2VVcGxvYWRzKCkge1xuICAgIGNvbnN0IG5vTmV3Q29tbWl0cyA9IGBcXCR7eyBzdGVwcy4ke0dJVF9SRU1PVEVfU1RFUElEfS5vdXRwdXRzLiR7TEFURVNUX0NPTU1JVF9PVVRQVVR9ID09IGdpdGh1Yi5zaGEgfX1gO1xuXG4gICAgZm9yIChjb25zdCB7IHdvcmtzcGFjZURpcmVjdG9yeSwgcmVsZWFzZSB9IG9mIHRoaXMucGFja2FnZXNUb1JlbGVhc2UpIHtcbiAgICAgIGNvbnN0IGpvYiA9IHRoaXMud29ya2Zsb3c/LmdldEpvYihSRUxFQVNFX0pPQklEKSBhcyBnaXRodWIud29ya2Zsb3dzLkpvYiB8IHVuZGVmaW5lZDtcbiAgICAgIGpvYj8uc3RlcHMucHVzaChcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9OiBCYWNrdXAgYXJ0aWZhY3QgcGVybWlzc2lvbnNgLFxuICAgICAgICAgIGlmOiBub05ld0NvbW1pdHMsXG4gICAgICAgICAgY29udGludWVPbkVycm9yOiB0cnVlLFxuICAgICAgICAgIHJ1bjogYGNkICR7cmVsZWFzZS53b3Jrc3BhY2UuYXJ0aWZhY3RzRGlyZWN0b3J5fSAmJiBnZXRmYWNsIC1SIC4gPiAke1BFUk1JU1NJT05fQkFDS1VQX0ZJTEV9YCxcbiAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIH0sXG4gICAgICAgIGdpdGh1Yi5Xb3JrZmxvd1N0ZXBzLnVwbG9hZEFydGlmYWN0KHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfTogVXBsb2FkIGFydGlmYWN0YCxcbiAgICAgICAgICBpZjogbm9OZXdDb21taXRzLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIC8vIEV2ZXJ5IGFydGlmYWN0IG11c3QgaGF2ZSBhIHVuaXF1ZSBuYW1lXG4gICAgICAgICAgICBuYW1lOiBidWlsZEFydGlmYWN0TmFtZShyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgICAgICBwYXRoOiBwYXRoLmpvaW4od29ya3NwYWNlRGlyZWN0b3J5LCByZWxlYXNlLndvcmtzcGFjZS5hcnRpZmFjdHNEaXJlY3RvcnkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclB1Ymxpc2hKb2JzKCkge1xuICAgIGZvciAoY29uc3QgeyByZWxlYXNlIH0gb2YgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZSkge1xuICAgICAgY29uc3QgcGFja2FnZVB1Ymxpc2hKb2JzID0gcmVsZWFzZS5wdWJsaXNoZXIuX3JlbmRlckpvYnNGb3JCcmFuY2godGhpcy5icmFuY2hOYW1lLCB7XG4gICAgICAgIG1ham9yVmVyc2lvbjogdGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbixcbiAgICAgICAgbWluTWFqb3JWZXJzaW9uOiB0aGlzLm9wdGlvbnMubWluTWFqb3JWZXJzaW9uLFxuICAgICAgICBucG1EaXN0VGFnOiB0aGlzLm9wdGlvbnMubnBtRGlzdFRhZyxcbiAgICAgICAgcHJlcmVsZWFzZTogdGhpcy5vcHRpb25zLnByZXJlbGVhc2UsXG4gICAgICB9KTtcblxuICAgICAgZm9yIChjb25zdCBqb2Igb2YgT2JqZWN0LnZhbHVlcyhwYWNrYWdlUHVibGlzaEpvYnMpKSB7XG4gICAgICAgIC8vIEZpbmQgdGhlICdkb3dubG9hZC1hcnRpZmFjdCcgam9iIGFuZCByZXBsYWNlIHRoZSBidWlsZCBhcnRpZmFjdCBuYW1lIHdpdGggdGhlIHVuaXF1ZSBwZXItcHJvamVjdCBvbmVcbiAgICAgICAgY29uc3QgZG93bmxvYWRTdGVwID0gam9iLnN0ZXBzLmZpbmQoKGopID0+IGoudXNlcz8uc3RhcnRzV2l0aCgnYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEAnKSk7XG4gICAgICAgIGlmICghZG93bmxvYWRTdGVwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZmluZCBkb3dubG9hZFN0ZXAgYW1vbmcgc3RlcHM6ICR7SlNPTi5zdHJpbmdpZnkoam9iLnN0ZXBzLCB1bmRlZmluZWQsIDIpfWApO1xuICAgICAgICB9XG4gICAgICAgIChkb3dubG9hZFN0ZXAud2l0aCA/PyB7fSkubmFtZSA9IGJ1aWxkQXJ0aWZhY3ROYW1lKHJlbGVhc2Uud29ya3NwYWNlKTtcbiAgICAgIH1cblxuICAgICAgLy8gTWFrZSB0aGUgam9iIG5hbWVzIHVuaXF1ZVxuICAgICAgdGhpcy53b3JrZmxvdz8uYWRkSm9icyhcbiAgICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHBhY2thZ2VQdWJsaXNoSm9icykubWFwKChba2V5LCBqb2JdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcmVmaXggPSBzbHVnaWZ5KGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9YCk7XG4gICAgICAgICAgICBjb25zdCBuZWVkcyA9IChqb2IubmVlZHMgPz8gW10pLm1hcChkZXAgPT4ge1xuICAgICAgICAgICAgICAvLyBBbGwgcHVibGlzaCBqb2JzIGRlcGVuZCBvbiB0aGUgbWFpbiByZWxlYXNlIGpvYlxuICAgICAgICAgICAgICBpZiAoZGVwID09PSAncmVsZWFzZScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVwO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gLi4uIGFuZCBwb3NzaWJseSBvbiBpbmRpdmlkdWFsIHB1Ymxpc2ggam9icyB0aGF0IGFyZSBwcmVmaXhlZFxuICAgICAgICAgICAgICByZXR1cm4gYCR7cHJlZml4fV8ke2RlcH1gO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIGAke3ByZWZpeH1fJHtrZXl9YCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmpvYixcbiAgICAgICAgICAgICAgICBuZWVkcyxcbiAgICAgICAgICAgICAgICBpZjogYFxcJHt7IG5lZWRzLnJlbGVhc2Uub3V0cHV0cy5sYXRlc3RfY29tbWl0ID09IGdpdGh1Yi5zaGEgJiYgbmVlZHMucmVsZWFzZS5vdXRwdXRzLiR7cHVibGlzaFByb2plY3RPdXRwdXRJZChcbiAgICAgICAgICAgICAgICAgIHJlbGVhc2Uud29ya3NwYWNlLFxuICAgICAgICAgICAgICAgICl9ID09ICd0cnVlJyB9fWAsXG4gICAgICAgICAgICAgICAgbmFtZTogYCR7cmVsZWFzZS53b3Jrc3BhY2UubmFtZX06ICR7am9iLm5hbWV9YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb2J0YWluUmVsZWFzZVRhc2soKTogVGFzayB7XG4gICAgaWYgKHRoaXMucmVsZWFzZVRhc2spIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbGVhc2VUYXNrO1xuICAgIH1cblxuICAgIGNvbnN0IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFJFTEVBU0U6ICd0cnVlJyxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5tYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZW52Lk1BSk9SID0gdGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbi50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMubWluTWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMubWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaW5NYWpvclZlcnNpb24gYW5kIG1ham9yVmVyc2lvbiBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4nKTtcbiAgICAgIH1cblxuICAgICAgZW52Lk1JTl9NQUpPUiA9IHRoaXMub3B0aW9ucy5taW5NYWpvclZlcnNpb24udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbGVhc2VUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3JlbGVhc2UnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1ByZXBhcmUgYSByZWxlYXNlIGZyb20gYWxsIG1vbm9yZXBvIHBhY2thZ2VzJyxcbiAgICAgIGVudixcbiAgICB9KTtcbiAgICAvLyBVbnJvbGwgb3V0IHRoZSAncmVsZWFzZScgdGFzaywgYW5kIGRvIGFsbCB0aGUgcGhhc2VzIGZvciBlYWNoIGluZGl2aWR1YWwgcGFja2FnZS4gV2UgbmVlZCB0byAnYnVtcCcgYXQgdGhlIHNhbWVcbiAgICAvLyB0aW1lIHNvIHRoYXQgdGhlIGRlcGVuZGVuY3kgdmVyc2lvbnMgaW4gYWxsICdwYWNrYWdlLmpzb24ncyBhcmUgY29ycmVjdC5cbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gc2h4IHJtIC1yZiBkaXN0Jyk7XG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKCd5YXJuIHdvcmtzcGFjZXMgcnVuIGJ1bXAnKTtcbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVpbGQnKTtcbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gdW5idW1wJyk7XG4gICAgLy8gYW50aS10YW1wZXIgY2hlY2sgKGZhaWxzIGlmIHRoZXJlIHdlcmUgY2hhbmdlcyB0byBjb21taXR0ZWQgZmlsZXMpXG4gICAgLy8gdGhpcyB3aWxsIGlkZW50aWZ5IGFueSBub24tY29tbWl0dGVkIGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgYnVpbGQgKGUuZy4gdGVzdCBzbmFwc2hvdHMpXG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKHByb2plblJlbGVhc2UuUmVsZWFzZS5BTlRJX1RBTVBFUl9DTUQpO1xuXG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZVRhc2s7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hpbmdNZWNoYW5pc20oKSB7XG4gICAgaWYgKHRoaXMucmVsZWFzZVRyaWdnZXIuaXNNYW51YWwpIHtcbiAgICAgIHRoaXMuY3JlYXRlUHVibGlzaFRhc2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVQdWJsaXNoV29ya2Zsb3coKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hUYXNrKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWFudWFsIHB1Ymxpc2hpbmcgaXMgbm90IHN1cHBvcnRlZCByaWdodCBub3cnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHVibGlzaFdvcmtmbG93KCkge1xuICAgIGNvbnN0IHdvcmtmbG93TmFtZSA9XG4gICAgICB0aGlzLm9wdGlvbnMucmVsZWFzZVdvcmtmbG93TmFtZSA/P1xuICAgICAgKFsnbWFzdGVyJywgJ21haW4nXS5pbmNsdWRlcyh0aGlzLmJyYW5jaE5hbWUpID8gJ3JlbGVhc2UnIDogYHJlbGVhc2UtJHt0aGlzLmJyYW5jaE5hbWV9YCk7XG5cbiAgICAvLyBUaGUgYXJyYXlzIGFyZSBiZWluZyBjbG9uZWQgdG8gYXZvaWQgYWNjdW11bGF0aW5nIHZhbHVlcyBmcm9tIHByZXZpb3VzIGJyYW5jaGVzXG4gICAgY29uc3QgcHJlQnVpbGRTdGVwcyA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY0JyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgICdub2RlLXZlcnNpb24nOiAodGhpcy5wcm9qZWN0IGFzIGFueSkubm9kZVZlcnNpb24gPz8gJ2x0cy8qJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgIHJ1bjogJ3lhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzIC0tZnJvemVuLWxvY2tmaWxlJyxcbiAgICAgIH0sXG4gICAgICAuLi4odGhpcy5vcHRpb25zLnJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHMgPz8gW10pLFxuICAgIF07XG4gICAgY29uc3QgcG9zdEJ1aWxkU3RlcHMgPSBbLi4uKHRoaXMub3B0aW9ucy5wb3N0QnVpbGRTdGVwcyA/PyBbXSldO1xuXG4gICAgLy8gQWRkIGFuIG91dHB1dCB0byB0aGUgam9iIHRvIGluZGljYXRlIGlmIGEgY2VydGFpbiBwYWNrYWdlIG5lZWRzIHB1Ymxpc2hpbmdcbiAgICBjb25zdCBzaG91bGRQdWJsaXNoT3V0cHV0cyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIHRoaXMucGFja2FnZXNUb1JlbGVhc2UubWFwKCh7IHJlbGVhc2UgfSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHB1Ymxpc2hQcm9qZWN0T3V0cHV0SWQocmVsZWFzZS53b3Jrc3BhY2UpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0ZXBJZDogc2hvdWxkUHVibGlzaFByb2plY3RTdGVwSWQocmVsZWFzZS53b3Jrc3BhY2UpLFxuICAgICAgICAgICAgb3V0cHV0TmFtZTogJ3B1Ymxpc2gnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHByb3Bvc2VkIHJlbGVhc2UgdGFnIGFscmVhZHkgZXhpc3RzXG4gICAgLy8gT25seSBpZiBpdCBkb2Vzbid0IGV4aXN0IHlldCBzaG91bGQgd2UgcHVibGlzaFxuICAgIGZvciAoY29uc3QgeyB3b3Jrc3BhY2VEaXJlY3RvcnksIHJlbGVhc2UgfSBvZiB0aGlzLnBhY2thZ2VzVG9SZWxlYXNlKSB7XG4gICAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgICAgaWQ6IHNob3VsZFB1Ymxpc2hQcm9qZWN0U3RlcElkKHJlbGVhc2Uud29ya3NwYWNlKSxcbiAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogd29ya3NwYWNlRGlyZWN0b3J5LFxuICAgICAgICBydW46ICcoZ2l0IGxzLXJlbW90ZSAtcSAtLWV4aXQtY29kZSAtLXRhZ3Mgb3JpZ2luICQoY2F0IGRpc3QvcmVsZWFzZXRhZy50eHQpICYmIChlY2hvIFwicHVibGlzaD1mYWxzZVwiID4+ICRHSVRIVUJfT1VUUFVUKSkgfHwgZWNobyBcInB1Ymxpc2g9dHJ1ZVwiID4+ICRHSVRIVUJfT1VUUFVUJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIG5ldyBjb21taXRzIHdlcmUgcHVzaGVkIHRvIHRoZSByZXBvIHdoaWxlIHdlIHdlcmUgYnVpbGRpbmcuXG4gICAgLy8gaWYgbmV3IGNvbW1pdHMgaGF2ZSBiZWVuIHB1c2hlZCwgd2Ugd2lsbCBjYW5jZWwgdGhpcyByZWxlYXNlXG4gICAgcG9zdEJ1aWxkU3RlcHMucHVzaCh7XG4gICAgICBuYW1lOiAnQ2hlY2sgZm9yIG5ldyBjb21taXRzJyxcbiAgICAgIGlkOiBHSVRfUkVNT1RFX1NURVBJRCxcbiAgICAgIHJ1bjogYGVjaG8gXCIke0xBVEVTVF9DT01NSVRfT1VUUFVUfT0kKGdpdCBscy1yZW1vdGUgb3JpZ2luIC1oIFxcJHt7IGdpdGh1Yi5yZWYgfX0gfCBjdXQgLWYxKVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICB9KTtcblxuICAgIHRoaXMud29ya2Zsb3cgPSBuZXcgZ2l0aHViLlRhc2tXb3JrZmxvdyh0aGlzLmdpdGh1Yiwge1xuICAgICAgbmFtZTogd29ya2Zsb3dOYW1lLFxuICAgICAgam9iSWQ6IFJFTEVBU0VfSk9CSUQsXG4gICAgICBvdXRwdXRzOiB7XG4gICAgICAgIGxhdGVzdF9jb21taXQ6IHtcbiAgICAgICAgICBzdGVwSWQ6IEdJVF9SRU1PVEVfU1RFUElELFxuICAgICAgICAgIG91dHB1dE5hbWU6IExBVEVTVF9DT01NSVRfT1VUUFVULFxuICAgICAgICB9LFxuICAgICAgICAuLi5zaG91bGRQdWJsaXNoT3V0cHV0cyxcbiAgICAgIH0sXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBzY2hlZHVsZTogdGhpcy5yZWxlYXNlVHJpZ2dlci5zY2hlZHVsZSA/IFt7IGNyb246IHRoaXMucmVsZWFzZVRyaWdnZXIuc2NoZWR1bGUgfV0gOiB1bmRlZmluZWQsXG4gICAgICAgIHB1c2g6IHRoaXMucmVsZWFzZVRyaWdnZXIuaXNDb250aW51b3VzID8geyBicmFuY2hlczogW3RoaXMuYnJhbmNoTmFtZV0gfSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBjb250YWluZXI6IHRoaXMub3B0aW9ucy53b3JrZmxvd0NvbnRhaW5lckltYWdlID8geyBpbWFnZTogdGhpcy5vcHRpb25zLndvcmtmbG93Q29udGFpbmVySW1hZ2UgfSA6IHVuZGVmaW5lZCxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGNvbnRlbnRzOiAnd3JpdGUnIGFzIGFueSxcbiAgICAgIH0sXG4gICAgICBjaGVja291dFdpdGg6IHtcbiAgICAgICAgLy8gd2UgbXVzdCB1c2UgJ2ZldGNoLWRlcHRoPTAnIGluIG9yZGVyIHRvIGZldGNoIGFsbCB0YWdzXG4gICAgICAgIC8vIG90aGVyd2lzZSB0YWdzIGFyZSBub3QgY2hlY2tlZCBvdXRcbiAgICAgICAgZmV0Y2hEZXB0aDogMCxcbiAgICAgIH0sXG4gICAgICBwcmVCdWlsZFN0ZXBzLFxuICAgICAgdGFzazogdGhpcy5yZWxlYXNlVGFzayEsXG4gICAgICBwb3N0QnVpbGRTdGVwcyxcbiAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNsdWdpZnkoeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHgucmVwbGFjZSgvW15hLXpBLVowLTlfLV0vZywgJy0nKS5yZXBsYWNlKC9eWzAtOS1dKy8sICcnKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBcnRpZmFjdE5hbWUocHJvamVjdDogUHJvamVjdCkge1xuICByZXR1cm4gc2x1Z2lmeShgJHtwcm9qZWN0Lm5hbWV9XyR7QlVJTERfQVJUSUZBQ1RfTkFNRX1gKTtcbn1cblxuZnVuY3Rpb24gcHVibGlzaFByb2plY3RPdXRwdXRJZChwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBgcHVibGlzaC0ke3NsdWdpZnkocHJvamVjdC5uYW1lKX1gO1xufVxuXG5mdW5jdGlvbiBzaG91bGRQdWJsaXNoUHJvamVjdFN0ZXBJZChwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBgY2hlY2stJHtwdWJsaXNoUHJvamVjdE91dHB1dElkKHByb2plY3QpfWA7XG59XG4iXX0=
@@ -176,7 +176,7 @@ class Monorepo extends projen_1.typescript.TypeScriptProject {
176
176
  }
177
177
  exports.Monorepo = Monorepo;
178
178
  _a = JSII_RTTI_SYMBOL_1;
179
- Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.1.194" };
179
+ Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.1.195" };
180
180
  function getObjFromFile(project, file) {
181
181
  return project.tryFindObjectFile(file)?.obj;
182
182
  }
@@ -208,5 +208,5 @@ class CdkLabsMonorepo extends Monorepo {
208
208
  }
209
209
  exports.CdkLabsMonorepo = CdkLabsMonorepo;
210
210
  _b = JSII_RTTI_SYMBOL_1;
211
- CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.1.194" };
211
+ CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.1.195" };
212
212
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9tb25vcmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUF1RDtBQUN2RCxzREFBMkQ7QUFFM0QseURBQXFEO0FBQ3JELDZCQUEwQjtBQUUxQixnREFBNEM7QUFFNUM7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQVd4RCxZQUFZLE9BQXdCO1FBQ2xDLEtBQUssQ0FBQztZQUNKLEdBQUcsT0FBTztZQUNWLGNBQWMsRUFBRSwrQkFBa0IsQ0FBQyxJQUFJO1lBQ3ZDLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztRQVhHLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBdUIsQ0FBQztRQUM1Qyw0QkFBdUIsR0FBRyxJQUFJLEtBQUssRUFBaUIsQ0FBQztRQVkzRCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFFeEM7O1dBRUc7UUFDSCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3BFLElBQUksaUJBQVEsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ25DLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixHQUFHLEVBQUU7b0JBQ0gsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsVUFBVSxDQUFDO29CQUMzQyxNQUFNLEVBQUUsMkJBQTJCO29CQUNuQyxhQUFhLEVBQUU7d0JBQ2IsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLFVBQVUsRUFBRSxRQUFRO3dCQUNwQixPQUFPLEVBQUUscUJBQXFCO3FCQUMvQjtvQkFDRCxjQUFjLEVBQUUsQ0FBQyxlQUFlLENBQUM7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SUFBSTtZQUN6QixrQkFBa0IsRUFBRTtnQkFDbEIsZ0JBQWdCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3pFLE1BQU0sRUFBRSxjQUFjO2FBQ3ZCO1lBQ0QsR0FBRyxPQUFPO1lBQ1YsYUFBYSxFQUFFO2dCQUNiLEdBQUcsT0FBTyxDQUFDLGFBQWE7Z0JBQ3hCLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLHdCQUFVLENBQUMsSUFBSSxFQUFFO1lBQ25CLGdCQUFnQixFQUFFO2dCQUNoQixNQUFNLEVBQUUscUJBQXFCO2FBQzlCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0QkgsMENBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSnNvbkZpbGUsIFByb2plY3QsIHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IE1vbm9yZXBvT3B0aW9ucyB9IGZyb20gJy4vbW9ub3JlcG8tb3B0aW9ucyc7XG5pbXBvcnQgeyBNb25vcmVwb1JlbGVhc2UgfSBmcm9tICcuL21vbm9yZXBvLXJlbGVhc2UnO1xuaW1wb3J0IHsgTnggfSBmcm9tICcuL254JztcbmltcG9ydCB7IFR5cGVTY3JpcHRXb3Jrc3BhY2UgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcbmltcG9ydCB7IE1lcmdlUXVldWUgfSBmcm9tICcuLi9tZXJnZS1xdWV1ZSc7XG5cbi8qKlxuICogQSBtb25vcmVwbyB1c2luZyB5YXJuIHdvcmtzcGFjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25vcmVwbyBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgbW9ub3JlcG9SZWxlYXNlPzogTW9ub3JlcG9SZWxlYXNlO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIHdoZXJlIHRoZSBhY3R1YWwgY29kZSBmb3IgdGhlIHBhY2thZ2UgbGl2ZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmVwb3NpdG9yeVVybD86IHN0cmluZztcblxuICBwcml2YXRlIHByb2plY3RzID0gbmV3IEFycmF5PFR5cGVTY3JpcHRXb3Jrc3BhY2U+KCk7XG4gIHByaXZhdGUgcG9zdEluc3RhbGxEZXBlbmRlbmNpZXMgPSBuZXcgQXJyYXk8KCkgPT4gYm9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNb25vcmVwb09wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcGFja2FnZU1hbmFnZXI6IE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICByZWxlYXNlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVwb3NpdG9yeVVybCA9IG9wdGlvbnMucmVwb3NpdG9yeTtcblxuICAgIC8qKlxuICAgICAqIFByZXR0aWVyIGZvcm1hdHRpbmdcbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy5wcmV0dGllcikge1xuICAgICAgdGhpcy5hZGREZXZEZXBzKCdlc2xpbnQtY29uZmlnLXByZXR0aWVyJywgJ2VzbGludC1wbHVnaW4tcHJldHRpZXInKTtcbiAgICAgIG5ldyBKc29uRmlsZSh0aGlzLCAnLmVzbGludHJjLmpzb24nLCB7XG4gICAgICAgIGFsbG93Q29tbWVudHM6IHRydWUsXG4gICAgICAgIG9iajoge1xuICAgICAgICAgIHBsdWdpbnM6IFsnQHR5cGVzY3JpcHQtZXNsaW50JywgJ3ByZXR0aWVyJ10sXG4gICAgICAgICAgcGFyc2VyOiAnQHR5cGVzY3JpcHQtZXNsaW50L3BhcnNlcicsXG4gICAgICAgICAgcGFyc2VyT3B0aW9uczoge1xuICAgICAgICAgICAgZWNtYVZlcnNpb246IDIwMTgsXG4gICAgICAgICAgICBzb3VyY2VUeXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICAgIHByb2plY3Q6ICcuL3RzY29uZmlnLmRldi5qc29uJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGlnbm9yZVBhdHRlcm5zOiBbJyEucHJvamVucmMudHMnXSxcbiAgICAgICAgICBleHRlbmRzOiBbJ3BsdWdpbjpwcmV0dGllci9yZWNvbW1lbmRlZCddLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLnRhc2tzLmFkZFRhc2soJ2ZtdCcsIHsgZXhlYzogJ2VzbGludCAtLWV4dCAudHMgLS1maXggLS1uby1lcnJvci1vbi11bm1hdGNoZWQtcGF0dGVybiBwcm9qZW5yYyAucHJvamVucmMudHMnIH0pO1xuXG4gICAgICB0aGlzLnZzY29kZT8uZXh0ZW5zaW9ucy5hZGRSZWNvbW1lbmRhdGlvbnMoJ2VzYmVucC5wcmV0dGllci12c2NvZGUnLCAnZGJhZXVtZXIudnNjb2RlLWVzbGludCcpO1xuICAgICAgdGhpcy52c2NvZGU/LnNldHRpbmdzLmFkZFNldHRpbmcoJ2VkaXRvci5kZWZhdWx0Rm9ybWF0dGVyJywgJ2VzYmVucC5wcmV0dGllci12c2NvZGUnKTtcbiAgICAgIHRoaXMudnNjb2RlPy5zZXR0aW5ncy5hZGRTZXR0aW5nKCdlc2xpbnQuZm9ybWF0LmVuYWJsZScsIHRydWUpO1xuICAgICAgdGhpcy52c2NvZGU/LnNldHRpbmdzLmFkZFNldHRpbmdzKHsgJ2VkaXRvci5kZWZhdWx0Rm9ybWF0dGVyJzogJ2RiYWV1bWVyLnZzY29kZS1lc2xpbnQnIH0sIFtcbiAgICAgICAgJ2phdmFzY3JpcHQnLFxuICAgICAgICAndHlwZXNjcmlwdCcsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBWU0NvZGUgV29ya3NwYWNlXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMudnNjb2RlV29ya3NwYWNlKSB7XG4gICAgICBjb25zdCB3b3Jrc3BhY2VGaWxlID0gYCR7dGhpcy5uYW1lfS5jb2RlLXdvcmtzcGFjZWA7XG4gICAgICBuZXcgSnNvbkZpbGUodGhpcywgd29ya3NwYWNlRmlsZSwge1xuICAgICAgICBhbGxvd0NvbW1lbnRzOiB0cnVlLFxuICAgICAgICBvYmo6ICgpID0+ICh7XG4gICAgICAgICAgZm9sZGVyczogdGhpcy5wcm9qZWN0c1xuICAgICAgICAgICAgLnNvcnQoKHAxLCBwMikgPT4gcDEubmFtZS5sb2NhbGVDb21wYXJlKHAyLm5hbWUpKVxuICAgICAgICAgICAgLm1hcCgocCkgPT4gKHsgcGF0aDogcC53b3Jrc3BhY2VEaXJlY3RvcnkgfSkpLFxuICAgICAgICAgIHNldHRpbmdzOiAoKSA9PiBnZXRPYmpGcm9tRmlsZSh0aGlzLCAnLnZzY29kZS9zZXR0aW5ncy5qc29uJyksXG4gICAgICAgICAgZXh0ZW5zaW9uczogKCkgPT4gZ2V0T2JqRnJvbUZpbGUodGhpcywgJy52c2NvZGUvZXh0ZW5zaW9ucy5qc29uJyksXG4gICAgICAgIH0pLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGFza3NcbiAgICAgKi9cbiAgICAvLyBidWlsZCB0YXNrXG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdidWlsZCcpO1xuICAgIGNvbnN0IGZtdFRhc2sgPSB0aGlzLnRhc2tzLnRyeUZpbmQoJ2ZtdCcpO1xuICAgIGNvbnN0IGJ1aWxkVGFzayA9IHRoaXMudGFza3MuYWRkVGFzaygnYnVpbGQnKTtcbiAgICBpZiAodGhpcy5kZWZhdWx0VGFzaykge1xuICAgICAgYnVpbGRUYXNrLnNwYXduKHRoaXMuZGVmYXVsdFRhc2spO1xuICAgIH1cbiAgICBpZiAoZm10VGFzaykge1xuICAgICAgYnVpbGRUYXNrLnNwYXduKGZtdFRhc2spO1xuICAgIH1cbiAgICBidWlsZFRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biBidWlsZCcpO1xuXG4gICAgLy8gUnVuIGluIGFsbCB3b3Jrc3BhY2VzIHRhc2tzXG4gICAgdGhpcy50YXNrcy50cnlGaW5kKCdjb21waWxlJyk/LnJlc2V0KCd5YXJuIHdvcmtzcGFjZXMgcnVuIGNvbXBpbGUnKTtcbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ3BhY2thZ2UnKT8ucmVzZXQoJ3lhcm4gd29ya3NwYWNlcyBydW4gcGFja2FnZScpO1xuICAgIHRoaXMudGFza3MudHJ5RmluZCgndGVzdCcpPy5yZXNldCgneWFybiB3b3Jrc3BhY2VzIHJ1biB0ZXN0Jyk7XG4gICAgdGhpcy5hZGRUYXNrKCdydW4nLCB7XG4gICAgICBleGVjOiAneWFybiB3b3Jrc3BhY2VzIHJ1bicsXG4gICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIFVwZ3JhZGUgYWxsIHBhY2thZ2VzXG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCd1cGdyYWRlJyk7XG4gICAgdGhpcy50YXNrcy5hZGRUYXNrKCd1cGdyYWRlJywge1xuICAgICAgZW52OiB7IENJOiAnMCcgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVXBncmFkZSBkZXBlbmRlbmNpZXMgaW4gYWxsIHdvcmtzcGFjZXMnLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAgLy8gSXQgaXMgbm90IHNhZmUgYW55bW9yZSB0byBoYXZlICducG0tY2hlY2stdXBkYXRlcycgaW4gYSBZYXJuIDEgZGVwZW5kZW5jeSB0cmVlLCBzbyBydW4gaXQgaW4gYSBzZXBhcmF0ZVxuICAgICAgICAvLyB0cmVlIGJ5IHVzaW5nIG5weC5cbiAgICAgICAgeyBleGVjOiAnbnB4IG5wbS1jaGVjay11cGRhdGVzQDE2IC0tZGVwPWRldixvcHRpb25hbCxwZWVyLHByb2QsYnVuZGxlIC0tdXBncmFkZSAtLXRhcmdldD1taW5vcicgfSxcbiAgICAgICAgeyBleGVjOiAneWFybiB3b3Jrc3BhY2VzIHJ1biBjaGVjay1mb3ItdXBkYXRlcycgfSxcbiAgICAgICAgeyBleGVjOiAneWFybiBpbnN0YWxsIC0tY2hlY2stZmlsZXMnIH0sXG4gICAgICAgIHsgZXhlYzogJ3lhcm4gdXBncmFkZScgfSxcbiAgICAgICAgeyBzcGF3bjogJ2RlZmF1bHQnIH0sXG4gICAgICAgIHsgc3Bhd246ICdwb3N0LXVwZ3JhZGUnIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gQ2xlYW4gdXAgdGFza3Mgbm90IHJlcXVpcmVkIGF0IHRvcC1sZXZlbFxuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygnZWplY3QnKTtcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3dhdGNoJyk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdwcmUtY29tcGlsZScpO1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygncG9zdC1jb21waWxlJyk7XG5cbiAgICAvLyBOeFxuICAgIGlmIChvcHRpb25zLm54KSB7XG4gICAgICBuZXcgTngodGhpcywge1xuICAgICAgICBkZWZhdWx0QmFzZTogb3B0aW9ucy5kZWZhdWx0UmVsZWFzZUJyYW5jaCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFJlbGVhc2UgV29ya2Zsb3dcbiAgICBpZiAob3B0aW9ucy5yZWxlYXNlKSB7XG4gICAgICB0aGlzLm1vbm9yZXBvUmVsZWFzZSA9IG5ldyBNb25vcmVwb1JlbGVhc2UodGhpcywge1xuICAgICAgICB3b3JrZmxvd1J1bnNPbjogb3B0aW9ucy53b3JrZmxvd1J1bnNPbixcbiAgICAgICAgLi4ub3B0aW9ucy5yZWxlYXNlT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlcihwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlKSB7XG4gICAgdGhpcy5wcm9qZWN0cy5wdXNoKHByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIHN5bnRoKCkge1xuICAgIHRoaXMuZmluYWxFc2NhcGVIYXRjaGVzKCk7XG4gICAgc3VwZXIuc3ludGgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgYSBzdWIgcHJvamVjdCB0byByZXF1ZXN0IGluc3RhbGxhdGlvbiBvZiBkZXBlbmRlbmN5IGF0IHRoZSBNb25vcmVwbyByb290XG4gICAqIFRoZXkgbXVzdCBwcm92aWRlIGEgZnVuY3Rpb24gdGhhdCBpcyBleGVjdXRlZCBhZnRlciBkZXBlbmRlbmNpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZFxuICAgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgdGhlIGluc3RhbGwgY29tbWFuZCBpcyBydW4gZm9yIGEgc2Vjb25kIHRpbWUgYWZ0ZXIgYWxsIHN1YiBwcm9qZWN0IHJlcXVlc3RzIGhhdmUgcnVuLlxuICAgKiBUaGlzIGlzIHVzZWQgdG8gcmVzb2x2ZSBkZXBlbmRlbmN5IHZlcnNpb25zIGZyb20gYCpgIHRvIGEgY29uY3JldGUgdmVyc2lvbiBjb25zdHJhaW50LlxuICAgKi9cbiAgcHVibGljIHJlcXVlc3RJbnN0YWxsRGVwZW5kZW5jaWVzKHJlc29sdmVyOiBJRGVwZW5kZW5jeVJlc29sdmVyKSB7XG4gICAgdGhpcy5wb3N0SW5zdGFsbERlcGVuZGVuY2llcy5wdXNoKHJlc29sdmVyLnJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbik7XG4gIH1cblxuICAvKipcbiAgICogQ29kZSB0aGF0IG5lZWRzIHRvIHJ1biBqdXN0IGJlZm9yZSBzeW50aCwgYnV0IGFmdGVyIGFsbCBvdGhlciBjb2RlXG4gICAqL1xuICBwcml2YXRlIGZpbmFsRXNjYXBlSGF0Y2hlcygpIHtcbiAgICAvLyBHZXQgdGhlIE9iamVjdEZpbGVcbiAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3ByaXZhdGUnLCB0cnVlKTtcbiAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3dvcmtzcGFjZXMnLCB7XG4gICAgICBwYWNrYWdlczogdGhpcy5wcm9qZWN0cy5tYXAoKHApID0+IHAud29ya3NwYWNlRGlyZWN0b3J5KSxcbiAgICB9KTtcblxuICAgIHRoaXMudHNjb25maWc/LmZpbGUuYWRkT3ZlcnJpZGUoJ2luY2x1ZGUnLCBbXSk7XG4gICAgdGhpcy50c2NvbmZpZ0Rldj8uZmlsZS5hZGRPdmVycmlkZSgnaW5jbHVkZScsIFsnLnByb2plbnJjLnRzJywgJ3Byb2plbnJjLyoqLyoudHMnXSk7XG4gICAgZm9yIChjb25zdCB0c2NvbmZpZyBvZiBbdGhpcy50c2NvbmZpZywgdGhpcy50c2NvbmZpZ0Rldl0pIHtcbiAgICAgIHRzY29uZmlnPy5maWxlLmFkZE92ZXJyaWRlKFxuICAgICAgICAncmVmZXJlbmNlcycsXG4gICAgICAgIHRoaXMucHJvamVjdHMubWFwKChwKSA9PiAoeyBwYXRoOiBwLndvcmtzcGFjZURpcmVjdG9yeSB9KSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucGFja2FnZS5hZGRGaWVsZCgnamVzdCcsIHtcbiAgICAgIHByb2plY3RzOiB0aGlzLnByb2plY3RzLm1hcCgocCkgPT4gYDxyb290RGlyPi8ke3Aud29ya3NwYWNlRGlyZWN0b3J5fWApLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvb2tzIGludG8gdGhlIGluc3RhbGwgZGVwZW5kZW5jaWVzIGN5Y2xlXG4gICAqL1xuICBwdWJsaWMgcG9zdFN5bnRoZXNpemUoKSB7XG4gICAgaWYgKHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBub2RlUGtnOiBhbnkgPSB0aGlzLnBhY2thZ2U7XG4gICAgICBub2RlUGtnLmluc3RhbGxEZXBlbmRlbmNpZXMoKTtcblxuICAgICAgY29uc3QgY29tcGxldGVkUmVxdWVzdHMgPSB0aGlzLnBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzLm1hcCgocmVxdWVzdCkgPT4gcmVxdWVzdCgpKTtcbiAgICAgIGlmIChjb21wbGV0ZWRSZXF1ZXN0cy5zb21lKEJvb2xlYW4pKSB7XG4gICAgICAgIG5vZGVQa2cuaW5zdGFsbERlcGVuZGVuY2llcygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBvc3RJbnN0YWxsRGVwZW5kZW5jaWVzID0gW107XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlcGVuZGVuY3lSZXNvbHZlciB7XG4gIHJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbigpOiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBnZXRPYmpGcm9tRmlsZShwcm9qZWN0OiBQcm9qZWN0LCBmaWxlOiBzdHJpbmcpOiBvYmplY3Qge1xuICByZXR1cm4gKHByb2plY3QudHJ5RmluZE9iamVjdEZpbGUoZmlsZSkgYXMgYW55KT8ub2JqO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIENka0xhYnNNb25vcmVwb1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENka0xhYnNNb25vcmVwb09wdGlvbnMgZXh0ZW5kcyBNb25vcmVwb09wdGlvbnMge31cblxuLyoqXG4gKiBPcGluaW9uYXRlZCBpbXBsZW1lbnRhdGlvbiBvZiB5YXJuLk1vbm9yZXBvXG4gKiBAcGppZCBjZGtsYWJzLXlhcm4tbW9ub3JlcG9cbiAqL1xuZXhwb3J0IGNsYXNzIENka0xhYnNNb25vcmVwbyBleHRlbmRzIE1vbm9yZXBvIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrTGFic01vbm9yZXBvT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG5cbiAgICAgIGF1dG9BcHByb3ZlVXBncmFkZXM6IHRydWUsXG4gICAgICBhdXRvQXBwcm92ZU9wdGlvbnM6IHtcbiAgICAgICAgYWxsb3dlZFVzZXJuYW1lczogWydnaXRodWItYm90JywgJ2Nka2xhYnMtYXV0b21hdGlvbicsICdkZXBlbmRhYm90W2JvdF0nXSxcbiAgICAgICAgc2VjcmV0OiAnR0lUSFVCX1RPS0VOJyxcbiAgICAgIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnMsXG4gICAgICAgIG1lcmdpZnk6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIG5ldyBNZXJnZVF1ZXVlKHRoaXMsIHtcbiAgICAgIGF1dG9NZXJnZU9wdGlvbnM6IHtcbiAgICAgICAgc2VjcmV0OiAnUFJPSkVOX0dJVEhVQl9UT0tFTicsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -88,5 +88,5 @@ class WorkspaceRelease extends projen_1.Component {
88
88
  }
89
89
  exports.WorkspaceRelease = WorkspaceRelease;
90
90
  _a = JSII_RTTI_SYMBOL_1;
91
- WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.1.194" };
91
+ WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.1.195" };
92
92
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsbUNBQThFO0FBQzlFLGlFQUFzRTtBQVV0RSxNQUFhLGdCQUFpQixTQUFRLGtCQUFTO0lBSzdDLFlBQW1CLE9BQTRCLEVBQUUsT0FBZ0M7UUFDL0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFFekIsK0RBQStEO1FBQy9ELG1FQUFtRTtRQUNuRSwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDekMsZ0JBQWdCLEVBQUUsY0FBYztnQkFDaEMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtnQkFDOUMsZ0JBQWdCLEVBQUU7b0JBQ2hCLElBQUksRUFBRSxHQUFHLEVBQUUsMEZBQTBGO2lCQUN0RztnQkFDRCxpREFBaUQ7Z0JBQ2pELG9EQUFvRDtnQkFDcEQsdURBQXVEO2dCQUN2RCxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHO2dCQUU3QixrRUFBa0U7Z0JBQ2xFLHlFQUF5RTtnQkFDekUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixJQUFJLDBCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7YUFDbkYsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3JELFlBQVksRUFBRSxPQUFPLENBQUMsa0JBQWtCO2dCQUN4QyxTQUFTLEVBQUUsbURBQW1EO2dCQUM5RCxVQUFVLEVBQUUsU0FBUztnQkFDckIsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLG1CQUFtQjthQUNqRCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDO2dCQUNyQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7Z0JBQzFGLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7Z0JBQ3RGLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQzthQUM3RixDQUFDLENBQUM7WUFFSCwwRkFBMEY7WUFDMUYsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7b0JBQzFCLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVc7b0JBQ3JDLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWM7aUJBQy9DLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFFRCxrRUFBa0U7UUFDbEUsMERBQTBEO1FBQzFELDBFQUEwRTtRQUMxRSw0QkFBNEI7UUFDNUIsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUN4RCxLQUFLLEVBQUUsQ0FBQyxJQUFJLHFDQUFjLENBQUMsT0FBTyxFQUFFLG1DQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVuRCx5REFBeUQ7UUFDekQseUdBQXlHO1FBQ3pHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssY0FBYztRQUNwQixPQUFPLENBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQzdCLFdBQVcsRUFBRSxzQ0FBc0M7YUFDcEQsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssZ0JBQWdCO1FBQ3RCLE9BQU8sQ0FDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDL0IsV0FBVyxFQUFFLGdEQUFnRDthQUM5RCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O0FBL0ZILDRDQWdHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IENvbXBvbmVudCwgUmVsZWFzYWJsZUNvbW1pdHMsIFRhc2ssIFZlcnNpb24sIHJlbGVhc2UgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2F0aGVyVmVyc2lvbnMsIFZlcnNpb25NYXRjaCB9IGZyb20gJy4vZ2F0aGVyLXZlcnNpb25zLnRhc2snO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgd29ya2Zsb3dOb2RlVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGlzaFRvTnBtPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcmVsZWFzYWJsZUNvbW1pdHM/OiBSZWxlYXNhYmxlQ29tbWl0cztcbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVJlbGVhc2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGlzaGVyPzogcmVsZWFzZS5QdWJsaXNoZXI7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogVmVyc2lvbjtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZTogVHlwZVNjcmlwdFdvcmtzcGFjZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSwgb3B0aW9uczogV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLndvcmtzcGFjZSA9IHByb2plY3Q7XG5cbiAgICAvLyBUaGUgcm9vdCBwYWNrYWdlIGlzIHJlbGVhc2UtYXdhcmUuIEVpdGhlciB3ZSBjcmVhdGUgYSBwcm9wZXJcbiAgICAvLyAneWFybiByZWxlYXNlJyB0YXNrIGhlcmUsIG9yIHdlIGNyZWF0ZSBhIGZha2Ugb25lIHRoYXQganVzdCBkb2VzXG4gICAgLy8gYSAnYnVpbGQnICh3aWxsIGJlIHJ1biBpbiBkZXBlbmRlbmN5IG9yZGVyIGJ5IHRoZSBwYXJlbnQgcmVsZWFzZSB0YXNrKS5cbiAgICBpZiAoIW9wdGlvbnMucHJpdmF0ZSkge1xuICAgICAgdGhpcy52ZXJzaW9uID0gbmV3IFZlcnNpb24odGhpcy53b3Jrc3BhY2UsIHtcbiAgICAgICAgdmVyc2lvbklucHV0RmlsZTogJ3BhY2thZ2UuanNvbicsIC8vIHRoaXMgaXMgd2hlcmUgXCJ2ZXJzaW9uXCIgaXMgc2V0IGFmdGVyIGJ1bXBcbiAgICAgICAgYXJ0aWZhY3RzRGlyZWN0b3J5OiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgdmVyc2lvbnJjT3B0aW9uczoge1xuICAgICAgICAgIHBhdGg6ICcuJywgLy8gSW4gYSBtb25vcmVwbywgd2Ugd2FudCBzdGFuZGFyZC12ZXJzaW9uIHRvIG9ubHkgY29uc2lkZXIgdGhlIGRpcmVjdG9yeSBvZiB0aGUgd29ya3NwYWNlXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFRoaXMgbWl4ZXMgdGhlIHBhY2thZ2UgbmFtZSBpbnRvIHRoZSB0YWcgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gZ2l2ZSBwYWNrYWdlcyBpbmRpdmlkdWFsIHZlcnNpb25zLlxuICAgICAgICAvLyBUYWdzIGVuZCB1cCBsb29raW5nIGxpa2UgdGhpczogQHNjb3BlL3BhY2thZ2VAdjEuMi4zXG4gICAgICAgIHRhZ1ByZWZpeDogYCR7cHJvamVjdC5uYW1lfUBgLFxuXG4gICAgICAgIC8vIEluIGEgbW9ub3JlcG8sIG9ubHkgY29uc2lkZXIgY2hhbmdlcyByZWxldmFudCB0byB0aGUgc3VicHJvamVjdFxuICAgICAgICAvLyBQYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBzdWJwcm9qZWN0IG91dGRpciwgc28gJy4nIGlzIHdoYXQgd2Ugd2FudCBoZXJlXG4gICAgICAgIHJlbGVhc2FibGVDb21taXRzOiBvcHRpb25zLnJlbGVhc2FibGVDb21taXRzID8/IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KCcuJyksXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wdWJsaXNoZXIgPSBuZXcgcmVsZWFzZS5QdWJsaXNoZXIodGhpcy53b3Jrc3BhY2UsIHtcbiAgICAgICAgYXJ0aWZhY3ROYW1lOiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgY29uZGl0aW9uOiAnbmVlZHMucmVsZWFzZS5vdXRwdXRzLmxhdGVzdF9jb21taXQgPT0gZ2l0aHViLnNoYScsXG4gICAgICAgIGJ1aWxkSm9iSWQ6ICdyZWxlYXNlJyxcbiAgICAgICAgd29ya2Zsb3dOb2RlVmVyc2lvbjogb3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucHVibGlzaGVyLnB1Ymxpc2hUb0dpdEh1YlJlbGVhc2VzKHtcbiAgICAgICAgY2hhbmdlbG9nRmlsZTogcGF0aC5wb3NpeC5qb2luKHByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5LCB0aGlzLnZlcnNpb24uY2hhbmdlbG9nRmlsZU5hbWUpLFxuICAgICAgICB2ZXJzaW9uRmlsZTogcGF0aC5wb3NpeC5qb2luKHByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5LCB0aGlzLnZlcnNpb24udmVyc2lvbkZpbGVOYW1lKSxcbiAgICAgICAgcmVsZWFzZVRhZ0ZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLnJlbGVhc2VUYWdGaWxlTmFtZSksXG4gICAgICB9KTtcblxuICAgICAgLy8gR2l0SHViIFJlbGVhc2VzIGNvbWVzIGZvciBmcmVlIHdpdGggYSBgUmVsZWFzZWAgY29tcG9uZW50LCBOUE0gbXVzdCBiZSBhZGRlZCBleHBsaWNpdGx5XG4gICAgICBpZiAob3B0aW9ucy5wdWJsaXNoVG9OcG0gPz8gdHJ1ZSkge1xuICAgICAgICB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9OcG0oe1xuICAgICAgICAgIHJlZ2lzdHJ5OiBwcm9qZWN0LnBhY2thZ2UubnBtUmVnaXN0cnksXG4gICAgICAgICAgbnBtVG9rZW5TZWNyZXQ6IHByb2plY3QucGFja2FnZS5ucG1Ub2tlblNlY3JldCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhpcyB0YXNrcyBzZXRzIGFsbCBsb2NhbCBkZXBlbmRlbmNpZXMgdG8gdGhlaXIgY3VycmVudCB2ZXJzaW9uXG4gICAgLy8gSW4gdGhlIG1vbm9yZXBvIHdlIGNhbGwgdGhpcyB0YXNrIGluIHRvcG9sb2dpY2FsIG9yZGVyLlxuICAgIC8vIFRoZXJlZm9yIGl0IGlzIGd1YXJhbnRlZWQgdGhhdCBhbnkgbG9jYWwgcGFja2FnZXMgYSBwYWNrYWdlIGRlcGVuZHMgb24sXG4gICAgLy8gYWxyZWFkeSBoYXZlIGJlZW4gYnVtcGVkLlxuICAgIGNvbnN0IGdhdGhlclZlcnNpb25zID0gcHJvamVjdC5hZGRUYXNrKCdnYXRoZXItdmVyc2lvbnMnLCB7XG4gICAgICBzdGVwczogW25ldyBHYXRoZXJWZXJzaW9ucyhwcm9qZWN0LCBWZXJzaW9uTWF0Y2guTUFKT1IpXSxcbiAgICB9KTtcbiAgICB0aGlzLm9idGFpbkJ1bXBUYXNrKCkucHJlcGVuZFNwYXduKGdhdGhlclZlcnNpb25zKTtcblxuICAgIC8vIEFmdGVyIHdlIGhhdmUgdW5idW1wZWQgcGFja2FnZSB2ZXJzaW9ucyBiYWNrIHRvIDAuMC4wLFxuICAgIC8vIHdlIGNhbiBydW4gdGhlIGdhdGhlci12ZXJzaW9ucyB0YXNrIGFnYWluIHdoaWNoIHdpbGwgbm93IHJlcGxhY2UgdGhlIHRvLWJlLXJlbGVhc2UgdmVyc2lvbnMgd2l0aCAwLjAuMFxuICAgIHRoaXMub2J0YWluVW5idW1wVGFzaygpLnNwYXduKGdhdGhlclZlcnNpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJ1bXAgdmVyc2lvbiB0YXNrXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYSBwcml2YXRlIHBhY2thZ2UsIGl0IHdvbid0IGhhdmUgYSBidW1wIHRhc2sgeWV0LlxuICAgKiBTbyBpbnN0ZWFkIHdlIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3RcbiAgICogYW5kIHNlcnZlIGFzIGEgY29udGFpbmVyIGZvciBvdGhlciBzdGVwcyB0aGF0IG5lZWQgdG8gb2NjdXIgYXMgcGFydCBvZiB0aGUgcmVsZWFzZVxuICAgKi9cbiAgcHJpdmF0ZSBvYnRhaW5CdW1wVGFzaygpOiBUYXNrIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy53b3Jrc3BhY2UudGFza3MudHJ5RmluZCgnYnVtcCcpID8/XG4gICAgICB0aGlzLndvcmtzcGFjZS5hZGRUYXNrKCdidW1wJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0J1bXBzIHZlcnNpb25zIG9mIGxvY2FsIGRlcGVuZGVuY2llcycsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1bmJ1bXAgdmVyc2lvbiB0YXNrXG4gICAqLlxuICAgKiBJZiB0aGlzIGlzIGEgcHJpdmF0ZSBwYWNrYWdlLCBpdCB3b24ndCBoYXZlIGEgYnVtcCB0YXNrIHlldFxuICAgKiBTbyBpbnN0ZWFkIHdlIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3RcbiAgICogYW5kIHNlcnZlIGFzIGEgY29udGFpbmVyIGZvciBvdGhlciBzdGVwcyB0aGF0IG5lZWQgdG8gb2NjdXIgYXMgcGFydCBvZiB0aGUgcmVsZWFzZVxuICAgKi9cbiAgcHJpdmF0ZSBvYnRhaW5VbmJ1bXBUYXNrKCk6IFRhc2sge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndvcmtzcGFjZS50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKSA/P1xuICAgICAgdGhpcy53b3Jrc3BhY2UuYWRkVGFzaygndW5idW1wJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1Jlc2V0cyB2ZXJzaW9ucyBvZiBsb2NhbCBkZXBlbmRlbmNpZXMgdG8gMC4wLjAnLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -170,7 +170,7 @@ class TypeScriptWorkspace extends projen_1.typescript.TypeScriptProject {
170
170
  }
171
171
  exports.TypeScriptWorkspace = TypeScriptWorkspace;
172
172
  _a = JSII_RTTI_SYMBOL_1;
173
- TypeScriptWorkspace[_a] = { fqn: "cdklabs-projen-project-types.yarn.TypeScriptWorkspace", version: "0.1.194" };
173
+ TypeScriptWorkspace[_a] = { fqn: "cdklabs-projen-project-types.yarn.TypeScriptWorkspace", version: "0.1.195" };
174
174
  function packageNames(xs) {
175
175
  if (!xs) {
176
176
  return undefined;
package/package.json CHANGED
@@ -35,7 +35,7 @@
35
35
  "organization": true
36
36
  },
37
37
  "devDependencies": {
38
- "@jsii/spec": "^1.97.0",
38
+ "@jsii/spec": "^1.98.0",
39
39
  "@types/jest": "^29",
40
40
  "@types/node": "^18",
41
41
  "@typescript-eslint/eslint-plugin": "^6",
@@ -47,12 +47,12 @@
47
47
  "jest": "^29",
48
48
  "jest-junit": "^15",
49
49
  "jsii": "~5.2",
50
- "jsii-diff": "^1.97.0",
50
+ "jsii-diff": "^1.98.0",
51
51
  "jsii-docgen": "^10",
52
- "jsii-pacmak": "^1.97.0",
53
- "jsii-reflect": "^1.97.0",
52
+ "jsii-pacmak": "^1.98.0",
53
+ "jsii-reflect": "^1.98.0",
54
54
  "jsii-rosetta": "~5.2",
55
- "projen": "^0.81.3",
55
+ "projen": "^0.81.5",
56
56
  "standard-version": "^9",
57
57
  "ts-jest": "^29",
58
58
  "ts-node": "^10.9.2",
@@ -70,7 +70,7 @@
70
70
  ],
71
71
  "main": "lib/index.js",
72
72
  "license": "Apache-2.0",
73
- "version": "0.1.194",
73
+ "version": "0.1.195",
74
74
  "jest": {
75
75
  "testMatch": [
76
76
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",
@@ -1,224 +0,0 @@
1
- import { join } from 'path';
2
- import { CollectionKind, Docs, InterfaceType, isCollectionTypeReference, isNamedTypeReference, isPrimitiveTypeReference, isUnionTypeReference, loadAssemblyFromPath, Property, TypeKind, TypeReference } from '@jsii/spec';
3
- import { Assembly, TypeSystem } from 'jsii-reflect';
4
- import { Component, Project, SourceCode, SourceCodeOptions, typescript } from 'projen';
5
-
6
- const typesystem = new TypeSystem();
7
- const asm = new Assembly(typesystem, loadAssemblyFromPath('node_modules/projen', false));
8
- typesystem.addAssembly(asm, { isRoot: true });
9
-
10
- export interface OptionsGeneratorOptions {
11
- /**
12
- * The interface name
13
- */
14
- readonly name: string;
15
- /**
16
- * The fqn of the interface
17
- * Is used to auto-add imports.
18
- * Any local referenced types need to adhere to this hierarchy.
19
- *
20
- * @default `${project.name}.${options.name}`
21
- */
22
- readonly fqn?: string;
23
- /**
24
- * Doc string for the interface
25
- * @default - Interface name
26
- */
27
- readonly description?: string;
28
- /**
29
- * @default - `${project.srcDir}/${options.name}.ts`
30
- */
31
- readonly filePath?: string;
32
- /**
33
- * The properties of this interface
34
- * When extending, these will overwrite existing properties.
35
- *
36
- * @default []
37
- */
38
- readonly properties?: Property[];
39
- /**
40
- * Extends this jsii type
41
- */
42
- readonly extends?: string;
43
- /**
44
- * Omit these properties from the parent interface
45
- */
46
- readonly omitProps?: string[];
47
- /**
48
- * Update these properties from the parent interface
49
- */
50
- readonly updateProps?: {
51
- [name: string]: Partial<Property>;
52
- };
53
- }
54
-
55
- export class JsiiInterface extends Component {
56
- public constructor(
57
- project: typescript.TypeScriptProject,
58
- options: OptionsGeneratorOptions,
59
- ) {
60
- super(project);
61
- const targetSpec: InterfaceType = {
62
- kind: TypeKind.Interface,
63
- assembly: project.name,
64
- fqn: options.fqn ?? `${project.name}.${options.name}`,
65
- name: options.name,
66
- docs: {
67
- summary: options.description ?? options.name,
68
- },
69
- properties: options.properties || [],
70
- };
71
-
72
- if (options.extends) {
73
- const sourceSpec = typesystem.findInterface(options.extends);
74
- const omit = [
75
- ...options.omitProps || [],
76
- ...options.properties?.map(p => p.name) || [],
77
- ];
78
- targetSpec.properties!.push(
79
- ...sourceSpec.allProperties
80
- .map(p => {
81
- if (options.updateProps?.[p.name]) {
82
- return {
83
- ...p.spec,
84
- ...options.updateProps?.[p.name],
85
- };
86
- }
87
- return p.spec;
88
- })
89
- .filter(p => !omit.includes(p.name)),
90
- );
91
- }
92
-
93
- targetSpec.properties = targetSpec.properties?.sort((a, b) => a.name.localeCompare(b.name));
94
-
95
- const outputFile = options.filePath ?? join(project.srcdir, `${options.name}.ts`);
96
- new InterfaceFile(project, outputFile, targetSpec);
97
- }
98
- }
99
-
100
- export class InterfaceFile extends SourceCode {
101
- public constructor(project: Project, filePath: string, private readonly spec: InterfaceType, options: SourceCodeOptions = {}) {
102
- super(project, filePath, options);
103
-
104
- this.line(`// ${this.marker}`);
105
- this.renderImports(extractImports(spec));
106
- this.line();
107
- this.renderDocBlock(docsToLines(spec.docs));
108
- this.open(`export interface ${spec.name} {`);
109
- spec.properties?.forEach(p => this.renderProperty(p));
110
- this.close('}');
111
- this.line();
112
- }
113
-
114
- protected renderImports(modules: Map<string, Set<string>>) {
115
- Array.from(modules.keys()).sort((a, b) => {
116
- if (a[0] < b[0]) {
117
- return 1;
118
- }
119
- return a.localeCompare(b);
120
- }).forEach(mod => {
121
- const imports = Array.from(modules.get(mod)?.values() || []);
122
- this.line(`import { ${imports.join(', ')} } from '${mod}';`);
123
- });
124
- }
125
-
126
- protected renderProperty(p: Property) {
127
- if (p.docs) {
128
- this.renderDocBlock(docsToLines(p.docs));
129
- }
130
- this.line(`readonly ${p.name}${p.optional ? '?' : ''}: ${typeRefToType(p.type, this.spec.fqn)};`);
131
- }
132
-
133
- protected renderDocBlock(lines: string[]) {
134
- this.line('/**');
135
- lines.forEach(line => this.line(` * ${line}`));
136
- this.line(' */');
137
- }
138
- }
139
-
140
- function docsToLines(docs?: Docs): string[] {
141
- if (!docs) {
142
- return [];
143
- }
144
-
145
- const lines = new Array<string>();
146
-
147
- if (docs.summary) {
148
- lines.push(docs.summary);
149
- }
150
- if (docs.remarks) {
151
- lines.push(...docs.remarks.split('\n'));
152
- }
153
- if (docs.default) {
154
- lines.push(`@default ${docs.default}`);
155
- }
156
- if (docs.deprecated) {
157
- lines.push(`@deprecated ${docs.deprecated}`);
158
- }
159
-
160
- return lines;
161
- }
162
-
163
-
164
- function typeRefToType(t: TypeReference, containingFqn: string): string {
165
- if (isPrimitiveTypeReference(t)) {
166
- return t.primitive;
167
- }
168
-
169
- if (isNamedTypeReference(t)) {
170
- return t.fqn.split('.').slice(1).join('.');
171
- }
172
-
173
- if (isCollectionTypeReference(t)) {
174
- switch (t.collection.kind) {
175
- case CollectionKind.Array:
176
- return `Array<${typeRefToType(t.collection.elementtype, containingFqn)}>`;
177
- case CollectionKind.Map:
178
- return `Record<string, ${typeRefToType(t.collection.elementtype, containingFqn)}>`;
179
- default:
180
- return 'any';
181
- }
182
- }
183
- if (isUnionTypeReference(t)) {
184
- return t.union.types.map(ut => typeRefToType(ut, containingFqn)).join(' | ');
185
- }
186
-
187
- return 'any';
188
- }
189
-
190
- function extractImports(spec: InterfaceType): Map<string, Set<string>> {
191
- const refs = spec.properties?.flatMap(p => collectFQNs(p.type)) || [];
192
- return refs.reduce((mods, ref) => {
193
- const packageName = fqnToImportName(ref, spec.assembly);
194
- const imports = mods.get(packageName) || new Set();
195
- const importName = ref.split('.').slice(1)[0] || ref;
196
- return mods.set(packageName, imports.add(importName));
197
- }, new Map<string, Set<string>>());
198
- }
199
-
200
- function fqnToImportName(fqn: string, localAssembly: string): string {
201
- const importName = fqn.split('.', 1)[0];
202
-
203
- if (importName === localAssembly) {
204
- return '.'.repeat(fqn.split('.').length - 1) + '/';
205
- }
206
-
207
- return importName;
208
- }
209
-
210
- function collectFQNs(t: TypeReference): string[] {
211
- if (isNamedTypeReference(t)) {
212
- return [t.fqn];
213
- }
214
-
215
- if (isUnionTypeReference(t)) {
216
- return t.union.types.flatMap(collectFQNs);
217
- }
218
-
219
- if (isCollectionTypeReference(t)) {
220
- return collectFQNs(t.collection.elementtype);
221
- }
222
-
223
- return [];
224
- }
@@ -1,179 +0,0 @@
1
- import { CollectionKind, PrimitiveType } from '@jsii/spec';
2
- import { typescript } from 'projen';
3
- import { JsiiInterface } from './jsii-extend-interface';
4
-
5
- export function generateYarnMonorepoOptions(project: typescript.TypeScriptProject) {
6
- new JsiiInterface(project, {
7
- name: 'MonorepoOptions',
8
- fqn: 'cdklabs-projen-project-types.yarn.MonorepoOptions',
9
- filePath: 'src/yarn/monorepo-options.ts',
10
- extends: 'projen.typescript.TypeScriptProjectOptions',
11
- omitProps: [
12
- 'eslint',
13
- 'jest',
14
- 'jestOptions',
15
- 'packageManager',
16
- 'release',
17
- 'sampleCode',
18
- ],
19
- properties: [
20
- {
21
- name: 'vscodeWorkspace',
22
- optional: true,
23
- type: { primitive: PrimitiveType.Boolean },
24
- docs: {
25
- summary: 'Create a VSCode multi-root workspace file for all monorepo workspaces',
26
- default: 'false',
27
- },
28
- },
29
- {
30
- name: 'nx',
31
- optional: true,
32
- type: { primitive: PrimitiveType.Boolean },
33
- docs: {
34
- summary: 'Enable the integration with Nx in the monorepo',
35
- default: 'false',
36
- },
37
- },
38
- {
39
- name: 'release',
40
- optional: true,
41
- type: { primitive: PrimitiveType.Boolean },
42
- docs: {
43
- summary: 'Whether or not to add release workflows for this repository',
44
- default: '- No release',
45
- },
46
- },
47
- {
48
- name: 'releaseOptions',
49
- optional: true,
50
- type: { fqn: 'cdklabs-projen-project-types.yarn.MonorepoReleaseOptions' },
51
- docs: {
52
- summary: 'Options for the release workflows',
53
- },
54
- },
55
- ],
56
- });
57
-
58
- new JsiiInterface(project, {
59
- name: 'MonorepoReleaseOptions',
60
- fqn: 'cdklabs-projen-project-types.yarn.MonorepoReleaseOptions',
61
- filePath: 'src/yarn/monorepo-release-options.ts',
62
- extends: 'projen.release.ReleaseProjectOptions',
63
- omitProps: [
64
- 'releaseEveryCommit',
65
- 'releaseSchedule',
66
- 'releaseBranches',
67
- 'releaseFailureIssue',
68
- 'releaseFailureIssueLabel',
69
- 'releaseTagPrefix',
70
- 'versionrcOptions',
71
- 'publishTasks',
72
- ],
73
- properties: [
74
- {
75
- name: 'branchName',
76
- optional: true,
77
- type: { primitive: PrimitiveType.String },
78
- docs: {
79
- summary: 'Branch name to release from',
80
- default: '"main"',
81
- },
82
- },
83
- {
84
- name: 'nodeVersion',
85
- optional: true,
86
- type: { primitive: PrimitiveType.String },
87
- docs: {
88
- summary: 'Node version to use in the release workflow',
89
- default: '"lts/*"',
90
- },
91
- },
92
- {
93
- name: 'publishToNpm',
94
- optional: true,
95
- type: { primitive: PrimitiveType.Boolean },
96
- docs: {
97
- summary: 'Publish packages to npm',
98
- default: 'true',
99
- },
100
- },
101
- ],
102
- });
103
-
104
- const dependencyType = {
105
- collection: {
106
- kind: CollectionKind.Array,
107
- elementtype: {
108
- union: {
109
- types: [
110
- { primitive: PrimitiveType.String },
111
- { fqn: 'cdklabs-projen-project-types.yarn.TypeScriptWorkspace' },
112
- ],
113
- },
114
- },
115
- },
116
- };
117
-
118
- new JsiiInterface(project, {
119
- name: 'TypeScriptWorkspaceOptions',
120
- fqn: 'cdklabs-projen-project-types.yarn.TypeScriptWorkspaceOptions',
121
- filePath: 'src/yarn/typescript-workspace-options.ts',
122
- extends: 'projen.typescript.TypeScriptProjectOptions',
123
- omitProps: [
124
- 'autoDetectBin',
125
- 'defaultReleaseBranch',
126
- 'depsUpgradeOptions',
127
- 'parent',
128
- 'release',
129
- 'repositoryDirectory',
130
- 'outdir',
131
- ],
132
- updateProps: {
133
- deps: { type: dependencyType },
134
- devDeps: { type: dependencyType },
135
- peerDeps: { type: dependencyType },
136
- },
137
- properties: [
138
- {
139
- name: 'parent',
140
- type: { fqn: 'cdklabs-projen-project-types.yarn.Monorepo' },
141
- docs: {
142
- summary: 'The parent `yarn.Monorepo` project.',
143
- },
144
- },
145
- {
146
- name: 'workspaceScope',
147
- optional: true,
148
- type: { primitive: PrimitiveType.String },
149
- docs: {
150
- summary: 'The workspace scope the package is located in.',
151
- default: '"packages"',
152
- },
153
- },
154
- {
155
- name: 'private',
156
- optional: true,
157
- type: { primitive: PrimitiveType.Boolean },
158
- docs: {
159
- summary: 'Make this a private package.',
160
- default: 'false',
161
- },
162
- },
163
- {
164
- name: 'excludeDepsFromUpgrade',
165
- optional: true,
166
- type: {
167
- collection: {
168
- kind: CollectionKind.Array,
169
- elementtype: { primitive: PrimitiveType.String },
170
- },
171
- },
172
- docs: {
173
- summary: 'Dependencies that should be excluded from upgrades.',
174
- default: '[]',
175
- },
176
- },
177
- ],
178
- });
179
- }