@taimos/projen 0.1.63 → 0.1.65
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 +680 -5
- package/API.md +6587 -4518
- package/lib/projects/cdk-app.js +2 -4
- package/lib/projects/cdk-construct.js +2 -4
- package/lib/projects/index.d.ts +1 -0
- package/lib/projects/index.js +2 -1
- package/lib/projects/monorepo.d.ts +204 -0
- package/lib/projects/monorepo.js +210 -0
- package/lib/projects/private-cdk-app.js +2 -4
- package/lib/projects/private-ts-lib.js +2 -4
- package/lib/projects/prod-cdk-app.js +6 -4
- package/lib/projects/ts-lib.js +2 -4
- package/package.json +40 -34
package/lib/projects/cdk-app.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.TaimosCdkApp = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -10,6 +9,7 @@ const projen_1 = require("projen");
|
|
|
10
9
|
* @pjid taimos-cdk-app
|
|
11
10
|
*/
|
|
12
11
|
class TaimosCdkApp extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosCdkApp", version: "0.1.65" };
|
|
13
13
|
constructor(options) {
|
|
14
14
|
super({
|
|
15
15
|
authorEmail: 'info@taimos.de',
|
|
@@ -44,6 +44,4 @@ class TaimosCdkApp extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
exports.TaimosCdkApp = TaimosCdkApp;
|
|
47
|
-
|
|
48
|
-
TaimosCdkApp[_a] = { fqn: "@taimos/projen.TaimosCdkApp", version: "0.1.63" };
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9jZGstYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTRDO0FBaUI1Qzs7OztHQUlHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsZUFBTSxDQUFDLG1CQUFtQjtJQUUxRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQztZQUNKLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFNBQVMsRUFBRSx1QkFBdUI7WUFDbEMsY0FBYyxFQUFFLGFBQWE7WUFDN0IsZUFBZSxFQUFFLE1BQU07WUFDdkIsZUFBZSxFQUFFLGVBQU0sQ0FBQyxhQUFhLENBQUMsS0FBSztZQUMzQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGlCQUFpQixFQUFFLFFBQVE7WUFDM0IsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsR0FBRztZQUNqRCxHQUFHLE9BQU8sSUFBSSxFQUFFO1lBQ2hCLGFBQWEsRUFBRTtnQkFDYixPQUFPLEVBQUUsS0FBSztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksRUFBRTthQUMvQjtZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRTtnQkFDekIsZUFBZSxFQUFFO29CQUNmLGVBQWUsRUFBRSxJQUFJO29CQUNyQixHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsZUFBZSxJQUFJLEVBQUU7aUJBQzNDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFbEMsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxXQUFXLENBQUM7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDOztBQWxDSCxvQ0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGssIGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhaW1vc0Nka0FwcE9wdGlvbnMgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgcHJpdmF0ZSBOUE0gcmVnaXN0cnkgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlTnBtPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGNvbnRhaW5pbmcgdGhlIE5QTSBhdXRoZW50aWNhdGlvbiB0b2tlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ05QTV9UT0tFTidcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVOcG1Ub2tlbkVudlZhcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBV1MgQ0RLIGFwcCBpbiBUeXBlU2NyaXB0XG4gKlxuICogQHBqaWQgdGFpbW9zLWNkay1hcHBcbiAqL1xuZXhwb3J0IGNsYXNzIFRhaW1vc0Nka0FwcCBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBUYWltb3NDZGtBcHBPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgYXV0aG9yRW1haWw6ICdpbmZvQHRhaW1vcy5kZScsXG4gICAgICBhdXRob3JOYW1lOiAnVGhvcnN0ZW4gSG9lZ2VyJyxcbiAgICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICAgIGF1dGhvclVybDogJ2h0dHBzOi8vd3d3LnRhaW1vcy5kZScsXG4gICAgICBjb3B5cmlnaHRPd25lcjogJ1RhaW1vcyBHbWJIJyxcbiAgICAgIGNvcHlyaWdodFBlcmlvZDogJzIwMjUnLFxuICAgICAgcmVxdWlyZUFwcHJvdmFsOiBhd3NjZGsuQXBwcm92YWxMZXZlbC5ORVZFUixcbiAgICAgIGNka1ZlcnNpb25QaW5uaW5nOiB0cnVlLFxuICAgICAgY29uc3RydWN0c1ZlcnNpb246ICcxMC40LjInLFxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5OUE0sXG4gICAgICAuLi5vcHRpb25zID8/IHt9LFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgICAgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zID8/IHt9LFxuICAgICAgfSxcbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIC4uLm9wdGlvbnMudHNjb25maWcgPz8ge30sXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIGVzTW9kdWxlSW50ZXJvcDogdHJ1ZSxcbiAgICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMgPz8ge30sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuYWRkRGV2RGVwcygnQHRhaW1vcy9wcm9qZW4nKTtcblxuICAgIGlmIChvcHRpb25zLnByaXZhdGVOcG0gPz8gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHRva2VuRW52VmFyID0gb3B0aW9ucy5wcml2YXRlTnBtVG9rZW5FbnZWYXIgPz8gJ05QTV9UT0tFTic7XG4gICAgICB0aGlzLm5wbXJjLmFkZENvbmZpZygnLy9yZWdpc3RyeS5ucG1qcy5vcmcvOl9hdXRoVG9rZW4nLCBgXFwkeyR7dG9rZW5FbnZWYXJ9fWApO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFwcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9jZGstYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBNEM7QUFpQjVDOzs7O0dBSUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxlQUFNLENBQUMsbUJBQW1COztJQUUxRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQztZQUNKLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLFNBQVMsRUFBRSx1QkFBdUI7WUFDbEMsY0FBYyxFQUFFLGFBQWE7WUFDN0IsZUFBZSxFQUFFLE1BQU07WUFDdkIsZUFBZSxFQUFFLGVBQU0sQ0FBQyxhQUFhLENBQUMsS0FBSztZQUMzQyxpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGlCQUFpQixFQUFFLFFBQVE7WUFDM0IsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsR0FBRztZQUNqRCxHQUFHLE9BQU8sSUFBSSxFQUFFO1lBQ2hCLGFBQWEsRUFBRTtnQkFDYixPQUFPLEVBQUUsS0FBSztnQkFDZCxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksRUFBRTthQUMvQjtZQUNELFFBQVEsRUFBRTtnQkFDUixHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksRUFBRTtnQkFDekIsZUFBZSxFQUFFO29CQUNmLGVBQWUsRUFBRSxJQUFJO29CQUNyQixHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsZUFBZSxJQUFJLEVBQUU7aUJBQzNDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFbEMsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxXQUFXLENBQUM7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsa0NBQWtDLEVBQUUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDOztBQWxDSCxvQ0FvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGssIGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhaW1vc0Nka0FwcE9wdGlvbnMgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgcHJpdmF0ZSBOUE0gcmVnaXN0cnkgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlTnBtPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGNvbnRhaW5pbmcgdGhlIE5QTSBhdXRoZW50aWNhdGlvbiB0b2tlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ05QTV9UT0tFTidcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVOcG1Ub2tlbkVudlZhcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBV1MgQ0RLIGFwcCBpbiBUeXBlU2NyaXB0XG4gKlxuICogQHBqaWQgdGFpbW9zLWNkay1hcHBcbiAqL1xuZXhwb3J0IGNsYXNzIFRhaW1vc0Nka0FwcCBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBUYWltb3NDZGtBcHBPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgYXV0aG9yRW1haWw6ICdpbmZvQHRhaW1vcy5kZScsXG4gICAgICBhdXRob3JOYW1lOiAnVGhvcnN0ZW4gSG9lZ2VyJyxcbiAgICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICAgIGF1dGhvclVybDogJ2h0dHBzOi8vd3d3LnRhaW1vcy5kZScsXG4gICAgICBjb3B5cmlnaHRPd25lcjogJ1RhaW1vcyBHbWJIJyxcbiAgICAgIGNvcHlyaWdodFBlcmlvZDogJzIwMjUnLFxuICAgICAgcmVxdWlyZUFwcHJvdmFsOiBhd3NjZGsuQXBwcm92YWxMZXZlbC5ORVZFUixcbiAgICAgIGNka1ZlcnNpb25QaW5uaW5nOiB0cnVlLFxuICAgICAgY29uc3RydWN0c1ZlcnNpb246ICcxMC40LjInLFxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIHBhY2thZ2VNYW5hZ2VyOiBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5OUE0sXG4gICAgICAuLi5vcHRpb25zID8/IHt9LFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgICAgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zID8/IHt9LFxuICAgICAgfSxcbiAgICAgIHRzY29uZmlnOiB7XG4gICAgICAgIC4uLm9wdGlvbnMudHNjb25maWcgPz8ge30sXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgIGVzTW9kdWxlSW50ZXJvcDogdHJ1ZSxcbiAgICAgICAgICAuLi5vcHRpb25zLnRzY29uZmlnPy5jb21waWxlck9wdGlvbnMgPz8ge30sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuYWRkRGV2RGVwcygnQHRhaW1vcy9wcm9qZW4nKTtcblxuICAgIGlmIChvcHRpb25zLnByaXZhdGVOcG0gPz8gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHRva2VuRW52VmFyID0gb3B0aW9ucy5wcml2YXRlTnBtVG9rZW5FbnZWYXIgPz8gJ05QTV9UT0tFTic7XG4gICAgICB0aGlzLm5wbXJjLmFkZENvbmZpZygnLy9yZWdpc3RyeS5ucG1qcy5vcmcvOl9hdXRoVG9rZW4nLCBgXFwkeyR7dG9rZW5FbnZWYXJ9fWApO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.TaimosCdkConstructLibrary = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -10,6 +9,7 @@ const projen_1 = require("projen");
|
|
|
10
9
|
* @pjid taimos-awscdk-construct
|
|
11
10
|
*/
|
|
12
11
|
class TaimosCdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosCdkConstructLibrary", version: "0.1.65" };
|
|
13
13
|
constructor(options) {
|
|
14
14
|
super({
|
|
15
15
|
authorOrganization: true,
|
|
@@ -63,6 +63,4 @@ class TaimosCdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
exports.TaimosCdkConstructLibrary = TaimosCdkConstructLibrary;
|
|
66
|
-
|
|
67
|
-
TaimosCdkConstructLibrary[_a] = { fqn: "@taimos/projen.TaimosCdkConstructLibrary", version: "0.1.63" };
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9jZGstY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9EO0FBaUJwRDs7OztHQUlHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxlQUFNLENBQUMsc0JBQXNCO0lBRTFFLFlBQVksT0FBeUM7UUFDbkQsS0FBSyxDQUFDO1lBQ0osa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixjQUFjLEVBQUUsYUFBYTtZQUM3QixlQUFlLEVBQUUsTUFBTTtZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLFVBQVU7YUFDcEI7WUFDRCxPQUFPLEVBQUUsWUFBWTtZQUNyQixTQUFTLEVBQUUsY0FBYztZQUN6QixZQUFZLEVBQUUsSUFBSTtZQUNsQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLFNBQVMsRUFBRSxtQkFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQ3RDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixrQkFBa0IsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRTtZQUNwRyxrQkFBa0IsRUFBRSxFQUFFLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxtQkFBVSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BHLGFBQWEsRUFBRTtnQkFDYixpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFO2FBQ3REO1lBQ0QsMkJBQTJCLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5QkFzQlgsQ0FBQztZQUNwQixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxFQUFFLENBQUM7WUFDaEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixJQUFJLFdBQVcsQ0FBQztZQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsRUFBRSxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDakYsQ0FBQztJQUVILENBQUM7O0FBdERILDhEQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgamF2YXNjcmlwdCwgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWltb3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyBleHRlbmRzIGF3c2Nkay5Bd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBwcml2YXRlIE5QTSByZWdpc3RyeSBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVOcG0/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgY29udGFpbmluZyB0aGUgTlBNIGF1dGhlbnRpY2F0aW9uIHRva2VuLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnTlBNX1RPS0VOJ1xuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZU5wbVRva2VuRW52VmFyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFR5cGVTY3JpcHQgbGlicmFyeVxuICpcbiAqIEBwamlkIHRhaW1vcy1hd3NjZGstY29uc3RydWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBUYWltb3NDZGtDb25zdHJ1Y3RMaWJyYXJ5IGV4dGVuZHMgYXdzY2RrLkF3c0Nka0NvbnN0cnVjdExpYnJhcnkge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRhaW1vc0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgYXV0aG9yT3JnYW5pemF0aW9uOiB0cnVlLFxuICAgICAgY29weXJpZ2h0T3duZXI6ICdUYWltb3MgR21iSCcsXG4gICAgICBjb3B5cmlnaHRQZXJpb2Q6ICcyMDI1JyxcbiAgICAgIGNhdGFsb2c6IHtcbiAgICAgICAgYW5ub3VuY2U6IHRydWUsXG4gICAgICAgIHR3aXR0ZXI6ICdob2VnZXJ0bicsXG4gICAgICB9LFxuICAgICAgbGljZW5zZTogJ0FwYWNoZS0yLjAnLFxuICAgICAgc3RhYmlsaXR5OiAnZXhwZXJpbWVudGFsJyxcbiAgICAgIHJlbGVhc2VUb05wbTogdHJ1ZSxcbiAgICAgIG5wbVRydXN0ZWRQdWJsaXNoaW5nOiB0cnVlLFxuICAgICAgbnBtQWNjZXNzOiBqYXZhc2NyaXB0Lk5wbUFjY2Vzcy5QVUJMSUMsXG4gICAgICBnaXRwb2Q6IGZhbHNlLFxuICAgICAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczogeyBhbGxvd2VkVXNlcm5hbWVzOiBbJ2hvZWdlcnRuJywgJ3RhaW1vcy1wcm9qZW5bYm90XSddLCBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nIH0sXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHsgd29ya2Zsb3dPcHRpb25zOiB7IHNjaGVkdWxlOiBqYXZhc2NyaXB0LlVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZS5XRUVLTFkgfSB9LFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoKSxcbiAgICAgIH0sXG4gICAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IFtgKiAqKlBsZWFzZSBjaGVjayBpZiB0aGUgUFIgZnVsZmlsbHMgdGhlc2UgcmVxdWlyZW1lbnRzKipcbi0gWyBdIFRoZSBjb21taXQgbWVzc2FnZSBkZXNjcmliZXMgeW91ciBjaGFuZ2Vcbi0gWyBdIFRlc3RzIGZvciB0aGUgY2hhbmdlcyBoYXZlIGJlZW4gYWRkZWQgaWYgcG9zc2libGUgKGZvciBidWcgZml4ZXMgLyBmZWF0dXJlcylcbi0gWyBdIERvY3MgaGF2ZSBiZWVuIGFkZGVkIC8gdXBkYXRlZCAoZm9yIGJ1ZyBmaXhlcyAvIGZlYXR1cmVzKVxuXG5cbiogKipXaGF0IGtpbmQgb2YgY2hhbmdlIGRvZXMgdGhpcyBQUiBpbnRyb2R1Y2U/KiogKEJ1ZyBmaXgsIGZlYXR1cmUsIGRvY3MgdXBkYXRlLCAuLi4pXG5cblxuXG4qICoqV2hhdCBpcyB0aGUgY3VycmVudCBiZWhhdmlvcj8qKiAoWW91IGNhbiBhbHNvIGxpbmsgdG8gYW4gb3BlbiBpc3N1ZSBoZXJlKVxuXG5cblxuKiAqKldoYXQgaXMgdGhlIG5ldyBiZWhhdmlvciAoaWYgdGhpcyBpcyBhIGZlYXR1cmUgY2hhbmdlKT8qKlxuXG5cblxuKiAqKkRvZXMgdGhpcyBQUiBpbnRyb2R1Y2UgYSBicmVha2luZyBjaGFuZ2U/KiogKFdoYXQgY2hhbmdlcyBtaWdodCB1c2VycyBuZWVkIHRvIG1ha2UgaW4gdGhlaXIgc2V0dXAgZHVlIHRvIHRoaXMgUFI/KVxuXG5cblxuKiAqKk90aGVyIGluZm9ybWF0aW9uKio6YF0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMucHJpdmF0ZU5wbSA/PyBmYWxzZSkge1xuICAgICAgY29uc3QgdG9rZW5FbnZWYXIgPSBvcHRpb25zLnByaXZhdGVOcG1Ub2tlbkVudlZhciA/PyAnTlBNX1RPS0VOJztcbiAgICAgIHRoaXMubnBtcmMuYWRkQ29uZmlnKCcvL3JlZ2lzdHJ5Lm5wbWpzLm9yZy86X2F1dGhUb2tlbicsIGBcXCR7JHt0b2tlbkVudlZhcn19YCk7XG4gICAgfVxuXG4gIH1cblxufVxuIl19
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZWN0cy9jZGstY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBb0Q7QUFpQnBEOzs7O0dBSUc7QUFDSCxNQUFhLHlCQUEwQixTQUFRLGVBQU0sQ0FBQyxzQkFBc0I7O0lBRTFFLFlBQVksT0FBeUM7UUFDbkQsS0FBSyxDQUFDO1lBQ0osa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixjQUFjLEVBQUUsYUFBYTtZQUM3QixlQUFlLEVBQUUsTUFBTTtZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsT0FBTyxFQUFFLFVBQVU7YUFDcEI7WUFDRCxPQUFPLEVBQUUsWUFBWTtZQUNyQixTQUFTLEVBQUUsY0FBYztZQUN6QixZQUFZLEVBQUUsSUFBSTtZQUNsQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLFNBQVMsRUFBRSxtQkFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQ3RDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixrQkFBa0IsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRTtZQUNwRyxrQkFBa0IsRUFBRSxFQUFFLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxtQkFBVSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BHLGFBQWEsRUFBRTtnQkFDYixpQkFBaUIsRUFBRSxlQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFO2FBQ3REO1lBQ0QsMkJBQTJCLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5QkFzQlgsQ0FBQztZQUNwQixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxFQUFFLENBQUM7WUFDaEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixJQUFJLFdBQVcsQ0FBQztZQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsRUFBRSxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDakYsQ0FBQztJQUVILENBQUM7O0FBdERILDhEQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgamF2YXNjcmlwdCwgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWltb3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyBleHRlbmRzIGF3c2Nkay5Bd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBwcml2YXRlIE5QTSByZWdpc3RyeSBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVOcG0/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgY29udGFpbmluZyB0aGUgTlBNIGF1dGhlbnRpY2F0aW9uIHRva2VuLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnTlBNX1RPS0VOJ1xuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZU5wbVRva2VuRW52VmFyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFR5cGVTY3JpcHQgbGlicmFyeVxuICpcbiAqIEBwamlkIHRhaW1vcy1hd3NjZGstY29uc3RydWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBUYWltb3NDZGtDb25zdHJ1Y3RMaWJyYXJ5IGV4dGVuZHMgYXdzY2RrLkF3c0Nka0NvbnN0cnVjdExpYnJhcnkge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRhaW1vc0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgYXV0aG9yT3JnYW5pemF0aW9uOiB0cnVlLFxuICAgICAgY29weXJpZ2h0T3duZXI6ICdUYWltb3MgR21iSCcsXG4gICAgICBjb3B5cmlnaHRQZXJpb2Q6ICcyMDI1JyxcbiAgICAgIGNhdGFsb2c6IHtcbiAgICAgICAgYW5ub3VuY2U6IHRydWUsXG4gICAgICAgIHR3aXR0ZXI6ICdob2VnZXJ0bicsXG4gICAgICB9LFxuICAgICAgbGljZW5zZTogJ0FwYWNoZS0yLjAnLFxuICAgICAgc3RhYmlsaXR5OiAnZXhwZXJpbWVudGFsJyxcbiAgICAgIHJlbGVhc2VUb05wbTogdHJ1ZSxcbiAgICAgIG5wbVRydXN0ZWRQdWJsaXNoaW5nOiB0cnVlLFxuICAgICAgbnBtQWNjZXNzOiBqYXZhc2NyaXB0Lk5wbUFjY2Vzcy5QVUJMSUMsXG4gICAgICBnaXRwb2Q6IGZhbHNlLFxuICAgICAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczogeyBhbGxvd2VkVXNlcm5hbWVzOiBbJ2hvZWdlcnRuJywgJ3RhaW1vcy1wcm9qZW5bYm90XSddLCBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nIH0sXG4gICAgICBkZXBzVXBncmFkZU9wdGlvbnM6IHsgd29ya2Zsb3dPcHRpb25zOiB7IHNjaGVkdWxlOiBqYXZhc2NyaXB0LlVwZ3JhZGVEZXBlbmRlbmNpZXNTY2hlZHVsZS5XRUVLTFkgfSB9LFxuICAgICAgZ2l0aHViT3B0aW9uczoge1xuICAgICAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21BcHAoKSxcbiAgICAgIH0sXG4gICAgICBwdWxsUmVxdWVzdFRlbXBsYXRlQ29udGVudHM6IFtgKiAqKlBsZWFzZSBjaGVjayBpZiB0aGUgUFIgZnVsZmlsbHMgdGhlc2UgcmVxdWlyZW1lbnRzKipcbi0gWyBdIFRoZSBjb21taXQgbWVzc2FnZSBkZXNjcmliZXMgeW91ciBjaGFuZ2Vcbi0gWyBdIFRlc3RzIGZvciB0aGUgY2hhbmdlcyBoYXZlIGJlZW4gYWRkZWQgaWYgcG9zc2libGUgKGZvciBidWcgZml4ZXMgLyBmZWF0dXJlcylcbi0gWyBdIERvY3MgaGF2ZSBiZWVuIGFkZGVkIC8gdXBkYXRlZCAoZm9yIGJ1ZyBmaXhlcyAvIGZlYXR1cmVzKVxuXG5cbiogKipXaGF0IGtpbmQgb2YgY2hhbmdlIGRvZXMgdGhpcyBQUiBpbnRyb2R1Y2U/KiogKEJ1ZyBmaXgsIGZlYXR1cmUsIGRvY3MgdXBkYXRlLCAuLi4pXG5cblxuXG4qICoqV2hhdCBpcyB0aGUgY3VycmVudCBiZWhhdmlvcj8qKiAoWW91IGNhbiBhbHNvIGxpbmsgdG8gYW4gb3BlbiBpc3N1ZSBoZXJlKVxuXG5cblxuKiAqKldoYXQgaXMgdGhlIG5ldyBiZWhhdmlvciAoaWYgdGhpcyBpcyBhIGZlYXR1cmUgY2hhbmdlKT8qKlxuXG5cblxuKiAqKkRvZXMgdGhpcyBQUiBpbnRyb2R1Y2UgYSBicmVha2luZyBjaGFuZ2U/KiogKFdoYXQgY2hhbmdlcyBtaWdodCB1c2VycyBuZWVkIHRvIG1ha2UgaW4gdGhlaXIgc2V0dXAgZHVlIHRvIHRoaXMgUFI/KVxuXG5cblxuKiAqKk90aGVyIGluZm9ybWF0aW9uKio6YF0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMucHJpdmF0ZU5wbSA/PyBmYWxzZSkge1xuICAgICAgY29uc3QgdG9rZW5FbnZWYXIgPSBvcHRpb25zLnByaXZhdGVOcG1Ub2tlbkVudlZhciA/PyAnTlBNX1RPS0VOJztcbiAgICAgIHRoaXMubnBtcmMuYWRkQ29uZmlnKCcvL3JlZ2lzdHJ5Lm5wbWpzLm9yZy86X2F1dGhUb2tlbicsIGBcXCR7JHt0b2tlbkVudlZhcn19YCk7XG4gICAgfVxuXG4gIH1cblxufVxuIl19
|
package/lib/projects/index.d.ts
CHANGED
package/lib/projects/index.js
CHANGED
|
@@ -20,4 +20,5 @@ __exportStar(require("./private-ts-lib"), exports);
|
|
|
20
20
|
__exportStar(require("./private-cdk-app"), exports);
|
|
21
21
|
__exportStar(require("./cdk-construct"), exports);
|
|
22
22
|
__exportStar(require("./prod-cdk-app"), exports);
|
|
23
|
-
|
|
23
|
+
__exportStar(require("./monorepo"), exports);
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQjtBQUMxQiwyQ0FBeUI7QUFDekIsbURBQWlDO0FBQ2pDLG9EQUFrQztBQUNsQyxrREFBZ0M7QUFDaEMsaURBQStCO0FBQy9CLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2RrLWFwcCc7XG5leHBvcnQgKiBmcm9tICcuL3RzLWxpYic7XG5leHBvcnQgKiBmcm9tICcuL3ByaXZhdGUtdHMtbGliJztcbmV4cG9ydCAqIGZyb20gJy4vcHJpdmF0ZS1jZGstYXBwJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrLWNvbnN0cnVjdCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2QtY2RrLWFwcCc7XG5leHBvcnQgKiBmcm9tICcuL21vbm9yZXBvJztcbiJdfQ==
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { github, typescript, YamlFile } from 'projen';
|
|
2
|
+
import { GitHubAssignApprover } from 'projen-pipelines';
|
|
3
|
+
/**
|
|
4
|
+
* The frontend framework an Amplify Hosting application is built with.
|
|
5
|
+
*
|
|
6
|
+
* Selects sensible defaults for the build command, artifact directory and
|
|
7
|
+
* cache paths in the generated `amplify.yml`.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum MonorepoAmplifyFramework {
|
|
10
|
+
/** A Next.js app — artifacts in `<appRoot>/.next`, built via `run build`. */
|
|
11
|
+
NEXTJS = "nextjs",
|
|
12
|
+
/** An Angular app — artifacts in `<appRoot>/dist/<filter>/browser`, built via `run build:${BUILD_ENV}`. */
|
|
13
|
+
ANGULAR = "angular"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* One AWS Amplify Hosting application served from a workspace package.
|
|
17
|
+
*
|
|
18
|
+
* Renders a single entry under `applications:` in the generated `amplify.yml`.
|
|
19
|
+
* Amplify does not auto-detect PNPM workspaces, so the generated build spec
|
|
20
|
+
* runs `corepack enable` + a root `pnpm install` and pre-builds any shared
|
|
21
|
+
* packages before building the app from its `appRoot` (see ADR-0002).
|
|
22
|
+
*/
|
|
23
|
+
export interface MonorepoAmplifyApp {
|
|
24
|
+
/**
|
|
25
|
+
* The package path that is the Amplify app root, e.g. `packages/frontend`.
|
|
26
|
+
*/
|
|
27
|
+
readonly appRoot: string;
|
|
28
|
+
/**
|
|
29
|
+
* The frontend framework, used to pick build/artifact/cache defaults.
|
|
30
|
+
*/
|
|
31
|
+
readonly framework: MonorepoAmplifyFramework;
|
|
32
|
+
/**
|
|
33
|
+
* The pnpm package name to build, used as the `--filter` target,
|
|
34
|
+
* e.g. `deploymon-frontend` or `radball-digital-portal`.
|
|
35
|
+
*/
|
|
36
|
+
readonly buildFilter: string;
|
|
37
|
+
/**
|
|
38
|
+
* Workspace packages to build before the app, as `--filter` targets.
|
|
39
|
+
*
|
|
40
|
+
* Typically the shared API package the app consumes via `workspace:*`,
|
|
41
|
+
* e.g. `['@taimos/deploymon-api']`.
|
|
42
|
+
*
|
|
43
|
+
* @default []
|
|
44
|
+
*/
|
|
45
|
+
readonly preBuildFilters?: string[];
|
|
46
|
+
/**
|
|
47
|
+
* Override the build command run in the Amplify `build` phase.
|
|
48
|
+
*
|
|
49
|
+
* @default - `pnpm --filter <buildFilter> run build` for Next.js, or
|
|
50
|
+
* `pnpm --filter <buildFilter> run build:${BUILD_ENV}` for Angular.
|
|
51
|
+
*/
|
|
52
|
+
readonly buildCommand?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Override the artifact base directory.
|
|
55
|
+
*
|
|
56
|
+
* @default - `<appRoot>/.next` for Next.js, or
|
|
57
|
+
* `<appRoot>/dist/<buildFilter>/browser` for Angular.
|
|
58
|
+
*/
|
|
59
|
+
readonly artifactBaseDirectory?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Override the Amplify build cache paths.
|
|
62
|
+
*
|
|
63
|
+
* @default - `node_modules/**` plus the framework build cache
|
|
64
|
+
* (`<appRoot>/.next/cache/**` or `<appRoot>/.angular/cache/**`).
|
|
65
|
+
*/
|
|
66
|
+
readonly cachePaths?: string[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* PNPM workspace tuning for the generated `pnpm-workspace.yaml`.
|
|
70
|
+
*/
|
|
71
|
+
export interface MonorepoWorkspaceOptions {
|
|
72
|
+
/**
|
|
73
|
+
* The workspace package globs.
|
|
74
|
+
*
|
|
75
|
+
* @default ['packages/*']
|
|
76
|
+
*/
|
|
77
|
+
readonly packages?: string[];
|
|
78
|
+
/**
|
|
79
|
+
* Version overrides forced across the whole workspace
|
|
80
|
+
* (the `overrides:` field). Omitted from the file when empty.
|
|
81
|
+
*
|
|
82
|
+
* @default {}
|
|
83
|
+
*/
|
|
84
|
+
readonly overrides?: {
|
|
85
|
+
[name: string]: string;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Dependencies allowed to run install/build scripts. pnpm >= 10 blocks these
|
|
89
|
+
* by default. The list populates both `allowBuilds` and
|
|
90
|
+
* `onlyBuiltDependencies` so pnpm does not treat `node_modules` as stale.
|
|
91
|
+
*
|
|
92
|
+
* @default ['@aws-amplify/cli', 'esbuild', 'sharp', 'unrs-resolver']
|
|
93
|
+
*/
|
|
94
|
+
readonly allowedBuilds?: string[];
|
|
95
|
+
/**
|
|
96
|
+
* Minimum age in minutes a published version must have before it may be
|
|
97
|
+
* installed (`minimumReleaseAge`).
|
|
98
|
+
*
|
|
99
|
+
* @default 2880 // 2 days
|
|
100
|
+
*/
|
|
101
|
+
readonly minimumReleaseAge?: number;
|
|
102
|
+
/**
|
|
103
|
+
* Packages exempt from `minimumReleaseAge` so our own tooling can update
|
|
104
|
+
* without the cooldown.
|
|
105
|
+
*
|
|
106
|
+
* @default ['projen-pipelines', 'cdk-serverless', '@taimos/projen']
|
|
107
|
+
*/
|
|
108
|
+
readonly minimumReleaseAgeExclude?: string[];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* One author-to-approvers routing rule for the PR approver assignment.
|
|
112
|
+
*/
|
|
113
|
+
export interface MonorepoApproverMapping {
|
|
114
|
+
/**
|
|
115
|
+
* The GitHub username opening the PR.
|
|
116
|
+
*/
|
|
117
|
+
readonly author: string;
|
|
118
|
+
/**
|
|
119
|
+
* The GitHub usernames assigned to review when `author` opens a PR.
|
|
120
|
+
*/
|
|
121
|
+
readonly approvers: string[];
|
|
122
|
+
}
|
|
123
|
+
export interface MonorepoProjectOptions extends typescript.TypeScriptProjectOptions {
|
|
124
|
+
/**
|
|
125
|
+
* The pnpm version pinned for the workspace and CI.
|
|
126
|
+
*
|
|
127
|
+
* @default '10.33.0'
|
|
128
|
+
*/
|
|
129
|
+
readonly pnpmWorkspaceVersion?: string;
|
|
130
|
+
/**
|
|
131
|
+
* The Node.js version used in the generated build workflow.
|
|
132
|
+
*
|
|
133
|
+
* @default '22'
|
|
134
|
+
*/
|
|
135
|
+
readonly nodeVersion?: string;
|
|
136
|
+
/**
|
|
137
|
+
* PNPM workspace tuning for the generated `pnpm-workspace.yaml`.
|
|
138
|
+
*/
|
|
139
|
+
readonly workspaceOptions?: MonorepoWorkspaceOptions;
|
|
140
|
+
/**
|
|
141
|
+
* Whether to add `cdk-serverless` as a workspace dev dependency.
|
|
142
|
+
*
|
|
143
|
+
* @default false
|
|
144
|
+
*/
|
|
145
|
+
readonly cdkServerless?: boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Whether to assign PR approvers via `GitHubAssignApprover`.
|
|
148
|
+
*
|
|
149
|
+
* @default true
|
|
150
|
+
*/
|
|
151
|
+
readonly assignApprover?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Author-to-approvers routing for the PR approver assignment.
|
|
154
|
+
* Only used when `assignApprover` is enabled.
|
|
155
|
+
*
|
|
156
|
+
* @default - hoegertn and hoegerma review each other
|
|
157
|
+
*/
|
|
158
|
+
readonly approverMapping?: MonorepoApproverMapping[];
|
|
159
|
+
/**
|
|
160
|
+
* Approvers assigned when no author-specific mapping matches.
|
|
161
|
+
* Only used when `assignApprover` is enabled.
|
|
162
|
+
*
|
|
163
|
+
* @default ['hoegertn', 'hoegerma']
|
|
164
|
+
*/
|
|
165
|
+
readonly defaultApprovers?: string[];
|
|
166
|
+
/**
|
|
167
|
+
* Whether the unified build workflow also runs `pnpm -r run test`.
|
|
168
|
+
*
|
|
169
|
+
* @default true
|
|
170
|
+
*/
|
|
171
|
+
readonly runTestsInBuild?: boolean;
|
|
172
|
+
/**
|
|
173
|
+
* AWS Amplify Hosting applications. When set, an `amplify.yml` is generated
|
|
174
|
+
* with one entry per app. When omitted, no `amplify.yml` is created.
|
|
175
|
+
*
|
|
176
|
+
* @default []
|
|
177
|
+
*/
|
|
178
|
+
readonly amplifyApps?: MonorepoAmplifyApp[];
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Private PNPM-workspace monorepo root, following Taimos ADR-0002.
|
|
182
|
+
*
|
|
183
|
+
* The root only orchestrates the workspace — building, testing and linting are
|
|
184
|
+
* delegated to the workspace packages via `pnpm -r`. This project generates the
|
|
185
|
+
* `pnpm-workspace.yaml`, the root convenience scripts, a unified PR build
|
|
186
|
+
* workflow and (optionally) an Amplify Hosting build spec. The projen-managed
|
|
187
|
+
* sub-projects (api, backend, infra) are added with the `parent`/`outdir`
|
|
188
|
+
* pattern in the consuming `.projenrc.ts`; plain workspace packages (e.g.
|
|
189
|
+
* Next.js apps) are picked up by the `packages/*` glob.
|
|
190
|
+
*
|
|
191
|
+
* @pjid taimos-monorepo
|
|
192
|
+
*/
|
|
193
|
+
export declare class MonorepoProject extends typescript.TypeScriptProject {
|
|
194
|
+
/** The generated `pnpm-workspace.yaml`. */
|
|
195
|
+
readonly workspaceFile: YamlFile;
|
|
196
|
+
/** The unified PR build workflow. */
|
|
197
|
+
readonly prBuildWorkflow: github.GithubWorkflow;
|
|
198
|
+
/** The generated `amplify.yml`, if any Amplify apps were configured. */
|
|
199
|
+
readonly amplifyFile?: YamlFile;
|
|
200
|
+
/** The PR approver assignment, if enabled. */
|
|
201
|
+
readonly assignApprover?: GitHubAssignApprover;
|
|
202
|
+
constructor(options: MonorepoProjectOptions);
|
|
203
|
+
private renderAmplifyApp;
|
|
204
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MonorepoProject = exports.MonorepoAmplifyFramework = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const projen_1 = require("projen");
|
|
6
|
+
const projen_pipelines_1 = require("projen-pipelines");
|
|
7
|
+
/**
|
|
8
|
+
* The frontend framework an Amplify Hosting application is built with.
|
|
9
|
+
*
|
|
10
|
+
* Selects sensible defaults for the build command, artifact directory and
|
|
11
|
+
* cache paths in the generated `amplify.yml`.
|
|
12
|
+
*/
|
|
13
|
+
var MonorepoAmplifyFramework;
|
|
14
|
+
(function (MonorepoAmplifyFramework) {
|
|
15
|
+
/** A Next.js app — artifacts in `<appRoot>/.next`, built via `run build`. */
|
|
16
|
+
MonorepoAmplifyFramework["NEXTJS"] = "nextjs";
|
|
17
|
+
/** An Angular app — artifacts in `<appRoot>/dist/<filter>/browser`, built via `run build:${BUILD_ENV}`. */
|
|
18
|
+
MonorepoAmplifyFramework["ANGULAR"] = "angular";
|
|
19
|
+
})(MonorepoAmplifyFramework || (exports.MonorepoAmplifyFramework = MonorepoAmplifyFramework = {}));
|
|
20
|
+
/**
|
|
21
|
+
* Private PNPM-workspace monorepo root, following Taimos ADR-0002.
|
|
22
|
+
*
|
|
23
|
+
* The root only orchestrates the workspace — building, testing and linting are
|
|
24
|
+
* delegated to the workspace packages via `pnpm -r`. This project generates the
|
|
25
|
+
* `pnpm-workspace.yaml`, the root convenience scripts, a unified PR build
|
|
26
|
+
* workflow and (optionally) an Amplify Hosting build spec. The projen-managed
|
|
27
|
+
* sub-projects (api, backend, infra) are added with the `parent`/`outdir`
|
|
28
|
+
* pattern in the consuming `.projenrc.ts`; plain workspace packages (e.g.
|
|
29
|
+
* Next.js apps) are picked up by the `packages/*` glob.
|
|
30
|
+
*
|
|
31
|
+
* @pjid taimos-monorepo
|
|
32
|
+
*/
|
|
33
|
+
class MonorepoProject extends projen_1.typescript.TypeScriptProject {
|
|
34
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.MonorepoProject", version: "0.1.65" };
|
|
35
|
+
/** The generated `pnpm-workspace.yaml`. */
|
|
36
|
+
workspaceFile;
|
|
37
|
+
/** The unified PR build workflow. */
|
|
38
|
+
prBuildWorkflow;
|
|
39
|
+
/** The generated `amplify.yml`, if any Amplify apps were configured. */
|
|
40
|
+
amplifyFile;
|
|
41
|
+
/** The PR approver assignment, if enabled. */
|
|
42
|
+
assignApprover;
|
|
43
|
+
constructor(options) {
|
|
44
|
+
const pnpmVersion = options.pnpmWorkspaceVersion ?? '10.33.0';
|
|
45
|
+
super({
|
|
46
|
+
licensed: false,
|
|
47
|
+
release: false,
|
|
48
|
+
depsUpgrade: false,
|
|
49
|
+
// The root only orchestrates the workspace — no app code lives here.
|
|
50
|
+
jest: false,
|
|
51
|
+
eslint: false,
|
|
52
|
+
sampleCode: false,
|
|
53
|
+
// CI is the single hand-rolled workflow below that delegates to packages.
|
|
54
|
+
buildWorkflow: false,
|
|
55
|
+
...options,
|
|
56
|
+
// Forced — defining what a Taimos monorepo root is.
|
|
57
|
+
packageManager: projen_1.javascript.NodePackageManager.PNPM,
|
|
58
|
+
pnpmVersion,
|
|
59
|
+
projenrcTs: true,
|
|
60
|
+
github: true,
|
|
61
|
+
githubOptions: {
|
|
62
|
+
projenCredentials: projen_1.github.GithubCredentials.fromApp(),
|
|
63
|
+
mergify: false,
|
|
64
|
+
mergeQueue: true,
|
|
65
|
+
...options.githubOptions,
|
|
66
|
+
mergeQueueOptions: {
|
|
67
|
+
autoQueue: true,
|
|
68
|
+
...options.githubOptions?.mergeQueueOptions,
|
|
69
|
+
},
|
|
70
|
+
pullRequestLintOptions: {
|
|
71
|
+
...options.githubOptions?.pullRequestLintOptions,
|
|
72
|
+
semanticTitleOptions: {
|
|
73
|
+
...options.githubOptions?.pullRequestLintOptions?.semanticTitleOptions,
|
|
74
|
+
// Fixed allowed PR title types for a Taimos monorepo.
|
|
75
|
+
types: ['feat', 'fix', 'chore', 'docs', 'spec', 'ci'],
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
devDeps: [
|
|
80
|
+
'@taimos/projen',
|
|
81
|
+
'projen-pipelines',
|
|
82
|
+
...(options.cdkServerless ?? false ? ['cdk-serverless'] : []),
|
|
83
|
+
...options.devDeps ?? [],
|
|
84
|
+
],
|
|
85
|
+
});
|
|
86
|
+
// Private workspace root — never published, resolves packages locally.
|
|
87
|
+
this.package.addField('private', true);
|
|
88
|
+
// PR approver routing.
|
|
89
|
+
if (options.assignApprover ?? true) {
|
|
90
|
+
this.assignApprover = new projen_pipelines_1.GitHubAssignApprover(this, {
|
|
91
|
+
approverMapping: options.approverMapping ?? [
|
|
92
|
+
{ author: 'hoegertn', approvers: ['hoegerma'] },
|
|
93
|
+
{ author: 'hoegerma', approvers: ['hoegertn'] },
|
|
94
|
+
],
|
|
95
|
+
defaultApprovers: options.defaultApprovers ?? ['hoegertn', 'hoegerma'],
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
// The projenrc is split into modules under .projen/ — make them part of the
|
|
99
|
+
// dev tsconfig so the IDE and ts-node type-check them.
|
|
100
|
+
this.tsconfigDev?.addInclude('.projen/*.ts');
|
|
101
|
+
// pnpm workspace definition.
|
|
102
|
+
const ws = options.workspaceOptions ?? {};
|
|
103
|
+
const allowedBuilds = ws.allowedBuilds ?? ['@aws-amplify/cli', 'esbuild', 'sharp', 'unrs-resolver'];
|
|
104
|
+
const allowBuilds = {};
|
|
105
|
+
for (const dep of allowedBuilds) {
|
|
106
|
+
allowBuilds[dep] = true;
|
|
107
|
+
}
|
|
108
|
+
this.workspaceFile = new projen_1.YamlFile(this, 'pnpm-workspace.yaml', {
|
|
109
|
+
obj: {
|
|
110
|
+
packages: ws.packages ?? ['packages/*'],
|
|
111
|
+
// Allow native/build-step packages to run install scripts (pnpm >= 10
|
|
112
|
+
// blocks these by default), so pnpm does not treat node_modules as stale.
|
|
113
|
+
allowBuilds,
|
|
114
|
+
onlyBuiltDependencies: allowedBuilds,
|
|
115
|
+
...(ws.overrides && Object.keys(ws.overrides).length > 0 ? { overrides: ws.overrides } : {}),
|
|
116
|
+
minimumReleaseAge: ws.minimumReleaseAge ?? 2880, // 2 days in minutes
|
|
117
|
+
minimumReleaseAgeExclude: ws.minimumReleaseAgeExclude ?? [
|
|
118
|
+
'projen-pipelines',
|
|
119
|
+
'cdk-serverless',
|
|
120
|
+
'@taimos/projen',
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
// Convenience root scripts delegate to the workspace.
|
|
125
|
+
const rootPkg = this.tryFindObjectFile('package.json');
|
|
126
|
+
rootPkg.addOverride('scripts.build', 'pnpm -r run build');
|
|
127
|
+
rootPkg.addOverride('scripts.test', 'pnpm -r run test');
|
|
128
|
+
rootPkg.addOverride('scripts.lint', 'pnpm -r run eslint');
|
|
129
|
+
// Unified PR build workflow — builds (and optionally tests) every workspace
|
|
130
|
+
// package in dependency order.
|
|
131
|
+
const nodeVersion = options.nodeVersion ?? '22';
|
|
132
|
+
const buildSteps = [
|
|
133
|
+
{ name: 'Checkout', uses: 'actions/checkout@v4' },
|
|
134
|
+
{ name: 'Setup pnpm', uses: 'pnpm/action-setup@v4', with: { version: pnpmVersion } },
|
|
135
|
+
{
|
|
136
|
+
name: 'Setup Node.js',
|
|
137
|
+
uses: 'actions/setup-node@v4',
|
|
138
|
+
with: { 'node-version': nodeVersion, 'cache': 'pnpm' },
|
|
139
|
+
},
|
|
140
|
+
{ name: 'Install', run: 'pnpm install --frozen-lockfile' },
|
|
141
|
+
{ name: 'Build', run: 'pnpm -r run build' },
|
|
142
|
+
];
|
|
143
|
+
if (options.runTestsInBuild ?? true) {
|
|
144
|
+
buildSteps.push({ name: 'Test', run: 'pnpm -r run test' });
|
|
145
|
+
}
|
|
146
|
+
// Path filter: only trigger builds when workspace package files change.
|
|
147
|
+
// Changes to specs or docs alone should not trigger a new build.
|
|
148
|
+
const workspacePackages = ws.packages ?? ['packages/*'];
|
|
149
|
+
const buildPaths = workspacePackages.map((pkg) => `${pkg}/**`);
|
|
150
|
+
this.prBuildWorkflow = new projen_1.github.GithubWorkflow(this.github, 'build');
|
|
151
|
+
this.prBuildWorkflow.on({
|
|
152
|
+
pullRequest: { paths: buildPaths },
|
|
153
|
+
push: { branches: ['main'], paths: buildPaths },
|
|
154
|
+
workflowDispatch: {},
|
|
155
|
+
});
|
|
156
|
+
this.prBuildWorkflow.addJob('build', {
|
|
157
|
+
runsOn: ['ubuntu-latest'],
|
|
158
|
+
permissions: { contents: projen_1.github.workflows.JobPermission.READ },
|
|
159
|
+
steps: buildSteps,
|
|
160
|
+
});
|
|
161
|
+
// AWS Amplify Hosting build spec. PNPM workspaces are not auto-detected by
|
|
162
|
+
// Amplify, so each app installs at the repo root, pre-builds its shared
|
|
163
|
+
// packages, then builds from its appRoot (see ADR-0002).
|
|
164
|
+
if (options.amplifyApps && options.amplifyApps.length > 0) {
|
|
165
|
+
this.amplifyFile = new projen_1.YamlFile(this, 'amplify.yml', {
|
|
166
|
+
obj: {
|
|
167
|
+
version: 1,
|
|
168
|
+
applications: options.amplifyApps.map((app) => this.renderAmplifyApp(app)),
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
renderAmplifyApp(app) {
|
|
174
|
+
const angular = app.framework === MonorepoAmplifyFramework.ANGULAR;
|
|
175
|
+
const preBuild = [
|
|
176
|
+
'corepack enable',
|
|
177
|
+
// Force pnpm's hoisted linker for the Amplify build only — Amplify's
|
|
178
|
+
// managed compute traces runtime deps from a flat node_modules.
|
|
179
|
+
'pnpm install --frozen-lockfile --node-linker hoisted',
|
|
180
|
+
...(app.preBuildFilters ?? []).map((f) => `pnpm --filter ${f} run build`),
|
|
181
|
+
];
|
|
182
|
+
// BUILD_ENV (dev|prod) is provided as an Amplify environment variable.
|
|
183
|
+
const buildCommand = app.buildCommand ?? (angular
|
|
184
|
+
? `pnpm --filter ${app.buildFilter} run build:\${BUILD_ENV}`
|
|
185
|
+
: `pnpm --filter ${app.buildFilter} run build`);
|
|
186
|
+
const baseDirectory = app.artifactBaseDirectory ?? (angular
|
|
187
|
+
? `${app.appRoot}/dist/${app.buildFilter}/browser`
|
|
188
|
+
: `${app.appRoot}/.next`);
|
|
189
|
+
const cachePaths = app.cachePaths ?? [
|
|
190
|
+
'node_modules/**/*',
|
|
191
|
+
angular ? `${app.appRoot}/.angular/cache/**/*` : `${app.appRoot}/.next/cache/**/*`,
|
|
192
|
+
];
|
|
193
|
+
return {
|
|
194
|
+
appRoot: app.appRoot,
|
|
195
|
+
frontend: {
|
|
196
|
+
// Install/build from the monorepo root so the workspace root
|
|
197
|
+
// package.json and pnpm-lock.yaml are available.
|
|
198
|
+
buildPath: '/',
|
|
199
|
+
phases: {
|
|
200
|
+
preBuild: { commands: preBuild },
|
|
201
|
+
build: { commands: [buildCommand] },
|
|
202
|
+
},
|
|
203
|
+
artifacts: { baseDirectory, files: ['**/*'] },
|
|
204
|
+
cache: { paths: cachePaths },
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
exports.MonorepoProject = MonorepoProject;
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvbW9ub3JlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFrRTtBQUNsRSx1REFBd0Q7QUFFeEQ7Ozs7O0dBS0c7QUFDSCxJQUFZLHdCQUtYO0FBTEQsV0FBWSx3QkFBd0I7SUFDbEMsNkVBQTZFO0lBQzdFLDZDQUFpQixDQUFBO0lBQ2pCLDJHQUEyRztJQUMzRywrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsd0JBQXdCLHdDQUF4Qix3QkFBd0IsUUFLbkM7QUE0TEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLG1CQUFVLENBQUMsaUJBQWlCOztJQUUvRCwyQ0FBMkM7SUFDM0IsYUFBYSxDQUFXO0lBRXhDLHFDQUFxQztJQUNyQixlQUFlLENBQXdCO0lBRXZELHdFQUF3RTtJQUN4RCxXQUFXLENBQVk7SUFFdkMsOENBQThDO0lBQzlCLGNBQWMsQ0FBd0I7SUFFdEQsWUFBWSxPQUErQjtRQUN6QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsb0JBQW9CLElBQUksU0FBUyxDQUFDO1FBRTlELEtBQUssQ0FBQztZQUNKLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFLEtBQUs7WUFDZCxXQUFXLEVBQUUsS0FBSztZQUNsQixxRUFBcUU7WUFDckUsSUFBSSxFQUFFLEtBQUs7WUFDWCxNQUFNLEVBQUUsS0FBSztZQUNiLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLDBFQUEwRTtZQUMxRSxhQUFhLEVBQUUsS0FBSztZQUNwQixHQUFHLE9BQU87WUFDVixvREFBb0Q7WUFDcEQsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSTtZQUNsRCxXQUFXO1lBQ1gsVUFBVSxFQUFFLElBQUk7WUFDaEIsTUFBTSxFQUFFLElBQUk7WUFDWixhQUFhLEVBQUU7Z0JBQ2IsaUJBQWlCLEVBQUUsZUFBTSxDQUFD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QUFDLE9BQU8sc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sbUJBQW1CO1NBQ25GLENBQUM7UUFDRixPQUFPO1lBQ0wsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1lBQ3BCLFFBQVEsRUFBRTtnQkFDUiw2REFBNkQ7Z0JBQzdELGlEQUFpRDtnQkFDakQsU0FBUyxFQUFFLEdBQUc7Z0JBQ2QsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7b0JBQ2hDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO2lCQUNwQztnQkFDRCxTQUFTLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzdDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7YUFDN0I7U0FDRixDQUFDO0lBQ0osQ0FBQzs7QUE1TEgsMENBNkxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2l0aHViLCBqYXZhc2NyaXB0LCB0eXBlc2NyaXB0LCBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBHaXRIdWJBc3NpZ25BcHByb3ZlciB9IGZyb20gJ3Byb2plbi1waXBlbGluZXMnO1xuXG4vKipcbiAqIFRoZSBmcm9udGVuZCBmcmFtZXdvcmsgYW4gQW1wbGlmeSBIb3N0aW5nIGFwcGxpY2F0aW9uIGlzIGJ1aWx0IHdpdGguXG4gKlxuICogU2VsZWN0cyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgdGhlIGJ1aWxkIGNvbW1hbmQsIGFydGlmYWN0IGRpcmVjdG9yeSBhbmRcbiAqIGNhY2hlIHBhdGhzIGluIHRoZSBnZW5lcmF0ZWQgYGFtcGxpZnkueW1sYC5cbiAqL1xuZXhwb3J0IGVudW0gTW9ub3JlcG9BbXBsaWZ5RnJhbWV3b3JrIHtcbiAgLyoqIEEgTmV4dC5qcyBhcHAg4oCUIGFydGlmYWN0cyBpbiBgPGFwcFJvb3Q+Ly5uZXh0YCwgYnVpbHQgdmlhIGBydW4gYnVpbGRgLiAqL1xuICBORVhUSlMgPSAnbmV4dGpzJyxcbiAgLyoqIEFuIEFuZ3VsYXIgYXBwIOKAlCBhcnRpZmFjdHMgaW4gYDxhcHBSb290Pi9kaXN0LzxmaWx0ZXI+L2Jyb3dzZXJgLCBidWlsdCB2aWEgYHJ1biBidWlsZDoke0JVSUxEX0VOVn1gLiAqL1xuICBBTkdVTEFSID0gJ2FuZ3VsYXInLFxufVxuXG4vKipcbiAqIE9uZSBBV1MgQW1wbGlmeSBIb3N0aW5nIGFwcGxpY2F0aW9uIHNlcnZlZCBmcm9tIGEgd29ya3NwYWNlIHBhY2thZ2UuXG4gKlxuICogUmVuZGVycyBhIHNpbmdsZSBlbnRyeSB1bmRlciBgYXBwbGljYXRpb25zOmAgaW4gdGhlIGdlbmVyYXRlZCBgYW1wbGlmeS55bWxgLlxuICogQW1wbGlmeSBkb2VzIG5vdCBhdXRvLWRldGVjdCBQTlBNIHdvcmtzcGFjZXMsIHNvIHRoZSBnZW5lcmF0ZWQgYnVpbGQgc3BlY1xuICogcnVucyBgY29yZXBhY2sgZW5hYmxlYCArIGEgcm9vdCBgcG5wbSBpbnN0YWxsYCBhbmQgcHJlLWJ1aWxkcyBhbnkgc2hhcmVkXG4gKiBwYWNrYWdlcyBiZWZvcmUgYnVpbGRpbmcgdGhlIGFwcCBmcm9tIGl0cyBgYXBwUm9vdGAgKHNlZSBBRFItMDAwMikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9ub3JlcG9BbXBsaWZ5QXBwIHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIHBhdGggdGhhdCBpcyB0aGUgQW1wbGlmeSBhcHAgcm9vdCwgZS5nLiBgcGFja2FnZXMvZnJvbnRlbmRgLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwUm9vdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJvbnRlbmQgZnJhbWV3b3JrLCB1c2VkIHRvIHBpY2sgYnVpbGQvYXJ0aWZhY3QvY2FjaGUgZGVmYXVsdHMuXG4gICAqL1xuICByZWFkb25seSBmcmFtZXdvcms6IE1vbm9yZXBvQW1wbGlmeUZyYW1ld29yaztcblxuICAvKipcbiAgICogVGhlIHBucG0gcGFja2FnZSBuYW1lIHRvIGJ1aWxkLCB1c2VkIGFzIHRoZSBgLS1maWx0ZXJgIHRhcmdldCxcbiAgICogZS5nLiBgZGVwbG95bW9uLWZyb250ZW5kYCBvciBgcmFkYmFsbC1kaWdpdGFsLXBvcnRhbGAuXG4gICAqL1xuICByZWFkb25seSBidWlsZEZpbHRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgcGFja2FnZXMgdG8gYnVpbGQgYmVmb3JlIHRoZSBhcHAsIGFzIGAtLWZpbHRlcmAgdGFyZ2V0cy5cbiAgICpcbiAgICogVHlwaWNhbGx5IHRoZSBzaGFyZWQgQVBJIHBhY2thZ2UgdGhlIGFwcCBjb25zdW1lcyB2aWEgYHdvcmtzcGFjZToqYCxcbiAgICogZS5nLiBgWydAdGFpbW9zL2RlcGxveW1vbi1hcGknXWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBwcmVCdWlsZEZpbHRlcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGJ1aWxkIGNvbW1hbmQgcnVuIGluIHRoZSBBbXBsaWZ5IGBidWlsZGAgcGhhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYHBucG0gLS1maWx0ZXIgPGJ1aWxkRmlsdGVyPiBydW4gYnVpbGRgIGZvciBOZXh0LmpzLCBvclxuICAgKiBgcG5wbSAtLWZpbHRlciA8YnVpbGRGaWx0ZXI+IHJ1biBidWlsZDoke0JVSUxEX0VOVn1gIGZvciBBbmd1bGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRDb21tYW5kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgYXJ0aWZhY3QgYmFzZSBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYDxhcHBSb290Pi8ubmV4dGAgZm9yIE5leHQuanMsIG9yXG4gICAqIGA8YXBwUm9vdD4vZGlzdC88YnVpbGRGaWx0ZXI+L2Jyb3dzZXJgIGZvciBBbmd1bGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJ0aWZhY3RCYXNlRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgQW1wbGlmeSBidWlsZCBjYWNoZSBwYXRocy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgbm9kZV9tb2R1bGVzLyoqYCBwbHVzIHRoZSBmcmFtZXdvcmsgYnVpbGQgY2FjaGVcbiAgICogKGA8YXBwUm9vdD4vLm5leHQvY2FjaGUvKipgIG9yIGA8YXBwUm9vdD4vLmFuZ3VsYXIvY2FjaGUvKipgKS5cbiAgICovXG4gIHJlYWRvbmx5IGNhY2hlUGF0aHM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQTlBNIHdvcmtzcGFjZSB0dW5pbmcgZm9yIHRoZSBnZW5lcmF0ZWQgYHBucG0td29ya3NwYWNlLnlhbWxgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvV29ya3NwYWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgd29ya3NwYWNlIHBhY2thZ2UgZ2xvYnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsncGFja2FnZXMvKiddXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG92ZXJyaWRlcyBmb3JjZWQgYWNyb3NzIHRoZSB3aG9sZSB3b3Jrc3BhY2VcbiAgICogKHRoZSBgb3ZlcnJpZGVzOmAgZmllbGQpLiBPbWl0dGVkIGZyb20gdGhlIGZpbGUgd2hlbiBlbXB0eS5cbiAgICpcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJyaWRlcz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBEZXBlbmRlbmNpZXMgYWxsb3dlZCB0byBydW4gaW5zdGFsbC9idWlsZCBzY3JpcHRzLiBwbnBtID49IDEwIGJsb2NrcyB0aGVzZVxuICAgKiBieSBkZWZhdWx0LiBUaGUgbGlzdCBwb3B1bGF0ZXMgYm90aCBgYWxsb3dCdWlsZHNgIGFuZFxuICAgKiBgb25seUJ1aWx0RGVwZW5kZW5jaWVzYCBzbyBwbnBtIGRvZXMgbm90IHRyZWF0IGBub2RlX21vZHVsZXNgIGFzIHN0YWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ0Bhd3MtYW1wbGlmeS9jbGknLCAnZXNidWlsZCcsICdzaGFycCcsICd1bnJzLXJlc29sdmVyJ11cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRCdWlsZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTWluaW11bSBhZ2UgaW4gbWludXRlcyBhIHB1Ymxpc2hlZCB2ZXJzaW9uIG11c3QgaGF2ZSBiZWZvcmUgaXQgbWF5IGJlXG4gICAqIGluc3RhbGxlZCAoYG1pbmltdW1SZWxlYXNlQWdlYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDI4ODAgLy8gMiBkYXlzXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUmVsZWFzZUFnZT86IG51bWJlcjtcblxuICAvKipcbiAgICogUGFja2FnZXMgZXhlbXB0IGZyb20gYG1pbmltdW1SZWxlYXNlQWdlYCBzbyBvdXIgb3duIHRvb2xpbmcgY2FuIHVwZGF0ZVxuICAgKiB3aXRob3V0IHRoZSBjb29sZG93bi5cbiAgICpcbiAgICogQGRlZmF1bHQgWydwcm9qZW4tcGlwZWxpbmVzJywgJ2Nkay1zZXJ2ZXJsZXNzJywgJ0B0YWltb3MvcHJvamVuJ11cbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZT86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9uZSBhdXRob3ItdG8tYXBwcm92ZXJzIHJvdXRpbmcgcnVsZSBmb3IgdGhlIFBSIGFwcHJvdmVyIGFzc2lnbm1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9ub3JlcG9BcHByb3Zlck1hcHBpbmcge1xuICAvKipcbiAgICogVGhlIEdpdEh1YiB1c2VybmFtZSBvcGVuaW5nIHRoZSBQUi5cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIHVzZXJuYW1lcyBhc3NpZ25lZCB0byByZXZpZXcgd2hlbiBgYXV0aG9yYCBvcGVucyBhIFBSLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwcm92ZXJzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb25vcmVwb1Byb2plY3RPcHRpb25zIGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHBucG0gdmVyc2lvbiBwaW5uZWQgZm9yIHRoZSB3b3Jrc3BhY2UgYW5kIENJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMTAuMzMuMCdcbiAgICovXG4gIHJlYWRvbmx5IHBucG1Xb3Jrc3BhY2VWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgTm9kZS5qcyB2ZXJzaW9uIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBidWlsZCB3b3JrZmxvdy5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIyJ1xuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBOUE0gd29ya3NwYWNlIHR1bmluZyBmb3IgdGhlIGdlbmVyYXRlZCBgcG5wbS13b3Jrc3BhY2UueWFtbGAuXG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VPcHRpb25zPzogTW9ub3JlcG9Xb3Jrc3BhY2VPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkZCBgY2RrLXNlcnZlcmxlc3NgIGFzIGEgd29ya3NwYWNlIGRldiBkZXBlbmRlbmN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2RrU2VydmVybGVzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXNzaWduIFBSIGFwcHJvdmVycyB2aWEgYEdpdEh1YkFzc2lnbkFwcHJvdmVyYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzaWduQXBwcm92ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBdXRob3ItdG8tYXBwcm92ZXJzIHJvdXRpbmcgZm9yIHRoZSBQUiBhcHByb3ZlciBhc3NpZ25tZW50LlxuICAgKiBPbmx5IHVzZWQgd2hlbiBgYXNzaWduQXBwcm92ZXJgIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaG9lZ2VydG4gYW5kIGhvZWdlcm1hIHJldmlldyBlYWNoIG90aGVyXG4gICAqL1xuICByZWFkb25seSBhcHByb3Zlck1hcHBpbmc/OiBNb25vcmVwb0FwcHJvdmVyTWFwcGluZ1tdO1xuXG4gIC8qKlxuICAgKiBBcHByb3ZlcnMgYXNzaWduZWQgd2hlbiBubyBhdXRob3Itc3BlY2lmaWMgbWFwcGluZyBtYXRjaGVzLlxuICAgKiBPbmx5IHVzZWQgd2hlbiBgYXNzaWduQXBwcm92ZXJgIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsnaG9lZ2VydG4nLCAnaG9lZ2VybWEnXVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEFwcHJvdmVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB1bmlmaWVkIGJ1aWxkIHdvcmtmbG93IGFsc28gcnVucyBgcG5wbSAtciBydW4gdGVzdGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJ1blRlc3RzSW5CdWlsZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEFXUyBBbXBsaWZ5IEhvc3RpbmcgYXBwbGljYXRpb25zLiBXaGVuIHNldCwgYW4gYGFtcGxpZnkueW1sYCBpcyBnZW5lcmF0ZWRcbiAgICogd2l0aCBvbmUgZW50cnkgcGVyIGFwcC4gV2hlbiBvbWl0dGVkLCBubyBgYW1wbGlmeS55bWxgIGlzIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBhbXBsaWZ5QXBwcz86IE1vbm9yZXBvQW1wbGlmeUFwcFtdO1xufVxuXG4vKipcbiAqIFByaXZhdGUgUE5QTS13b3Jrc3BhY2UgbW9ub3JlcG8gcm9vdCwgZm9sbG93aW5nIFRhaW1vcyBBRFItMDAwMi5cbiAqXG4gKiBUaGUgcm9vdCBvbmx5IG9yY2hlc3RyYXRlcyB0aGUgd29ya3NwYWNlIOKAlCBidWlsZGluZywgdGVzdGluZyBhbmQgbGludGluZyBhcmVcbiAqIGRlbGVnYXRlZCB0byB0aGUgd29ya3NwYWNlIHBhY2thZ2VzIHZpYSBgcG5wbSAtcmAuIFRoaXMgcHJvamVjdCBnZW5lcmF0ZXMgdGhlXG4gKiBgcG5wbS13b3Jrc3BhY2UueWFtbGAsIHRoZSByb290IGNvbnZlbmllbmNlIHNjcmlwdHMsIGEgdW5pZmllZCBQUiBidWlsZFxuICogd29ya2Zsb3cgYW5kIChvcHRpb25hbGx5KSBhbiBBbXBsaWZ5IEhvc3RpbmcgYnVpbGQgc3BlYy4gVGhlIHByb2plbi1tYW5hZ2VkXG4gKiBzdWItcHJvamVjdHMgKGFwaSwgYmFja2VuZCwgaW5mcmEpIGFyZSBhZGRlZCB3aXRoIHRoZSBgcGFyZW50YC9gb3V0ZGlyYFxuICogcGF0dGVybiBpbiB0aGUgY29uc3VtaW5nIGAucHJvamVucmMudHNgOyBwbGFpbiB3b3Jrc3BhY2UgcGFja2FnZXMgKGUuZy5cbiAqIE5leHQuanMgYXBwcykgYXJlIHBpY2tlZCB1cCBieSB0aGUgYHBhY2thZ2VzLypgIGdsb2IuXG4gKlxuICogQHBqaWQgdGFpbW9zLW1vbm9yZXBvXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25vcmVwb1Byb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IHtcblxuICAvKiogVGhlIGdlbmVyYXRlZCBgcG5wbS13b3Jrc3BhY2UueWFtbGAuICovXG4gIHB1YmxpYyByZWFkb25seSB3b3Jrc3BhY2VGaWxlOiBZYW1sRmlsZTtcblxuICAvKiogVGhlIHVuaWZpZWQgUFIgYnVpbGQgd29ya2Zsb3cuICovXG4gIHB1YmxpYyByZWFkb25seSBwckJ1aWxkV29ya2Zsb3c6IGdpdGh1Yi5HaXRodWJXb3JrZmxvdztcblxuICAvKiogVGhlIGdlbmVyYXRlZCBgYW1wbGlmeS55bWxgLCBpZiBhbnkgQW1wbGlmeSBhcHBzIHdlcmUgY29uZmlndXJlZC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGFtcGxpZnlGaWxlPzogWWFtbEZpbGU7XG5cbiAgLyoqIFRoZSBQUiBhcHByb3ZlciBhc3NpZ25tZW50LCBpZiBlbmFibGVkLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXNzaWduQXBwcm92ZXI/OiBHaXRIdWJBc3NpZ25BcHByb3ZlcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBNb25vcmVwb1Byb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgcG5wbVZlcnNpb24gPSBvcHRpb25zLnBucG1Xb3Jrc3BhY2VWZXJzaW9uID8/ICcxMC4zMy4wJztcblxuICAgIHN1cGVyKHtcbiAgICAgIGxpY2Vuc2VkOiBmYWxzZSxcbiAgICAgIHJlbGVhc2U6IGZhbHNlLFxuICAgICAgZGVwc1VwZ3JhZGU6IGZhbHNlLFxuICAgICAgLy8gVGhlIHJvb3Qgb25seSBvcmNoZXN0cmF0ZXMgdGhlIHdvcmtzcGFjZSDigJQgbm8gYXBwIGNvZGUgbGl2ZXMgaGVyZS5cbiAgICAgIGplc3Q6IGZhbHNlLFxuICAgICAgZXNsaW50OiBmYWxzZSxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuICAgICAgLy8gQ0kgaXMgdGhlIHNpbmdsZSBoYW5kLXJvbGxlZCB3b3JrZmxvdyBiZWxvdyB0aGF0IGRlbGVnYXRlcyB0byBwYWNrYWdlcy5cbiAgICAgIGJ1aWxkV29ya2Zsb3c6IGZhbHNlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC8vIEZvcmNlZCDigJQgZGVmaW5pbmcgd2hhdCBhIFRhaW1vcyBtb25vcmVwbyByb290IGlzLlxuICAgICAgcGFja2FnZU1hbmFnZXI6IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0sXG4gICAgICBwbnBtVmVyc2lvbixcbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICBnaXRodWI6IHRydWUsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbUFwcCgpLFxuICAgICAgICBtZXJnaWZ5OiBmYWxzZSxcbiAgICAgICAgbWVyZ2VRdWV1ZTogdHJ1ZSxcbiAgICAgICAgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zLFxuICAgICAgICBtZXJnZVF1ZXVlT3B0aW9uczoge1xuICAgICAgICAgIGF1dG9RdWV1ZTogdHJ1ZSxcbiAgICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnM/Lm1lcmdlUXVldWVPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICBwdWxsUmVxdWVzdExpbnRPcHRpb25zOiB7XG4gICAgICAgICAgLi4ub3B0aW9ucy5naXRodWJPcHRpb25zPy5wdWxsUmVxdWVzdExpbnRPcHRpb25zLFxuICAgICAgICAgIHNlbWFudGljVGl0bGVPcHRpb25zOiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnM/LnB1bGxSZXF1ZXN0TGludE9wdGlvbnM/LnNlbWFudGljVGl0bGVPcHRpb25zLFxuICAgICAgICAgICAgLy8gRml4ZWQgYWxsb3dlZCBQUiB0aXRsZSB0eXBlcyBmb3IgYSBUYWltb3MgbW9ub3JlcG8uXG4gICAgICAgICAgICB0eXBlczogWydmZWF0JywgJ2ZpeCcsICdjaG9yZScsICdkb2NzJywgJ3NwZWMnLCAnY2knXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRldkRlcHM6IFtcbiAgICAgICAgJ0B0YWltb3MvcHJvamVuJyxcbiAgICAgICAgJ3Byb2plbi1waXBlbGluZXMnLFxuICAgICAgICAuLi4ob3B0aW9ucy5jZGtTZXJ2ZXJsZXNzID8/IGZhbHNlID8gWydjZGstc2VydmVybGVzcyddIDogW10pLFxuICAgICAgICAuLi5vcHRpb25zLmRldkRlcHMgPz8gW10sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gUHJpdmF0ZSB3b3Jrc3BhY2Ugcm9vdCDigJQgbmV2ZXIgcHVibGlzaGVkLCByZXNvbHZlcyBwYWNrYWdlcyBsb2NhbGx5LlxuICAgIHRoaXMucGFja2FnZS5hZGRGaWVsZCgncHJpdmF0ZScsIHRydWUpO1xuXG4gICAgLy8gUFIgYXBwcm92ZXIgcm91dGluZy5cbiAgICBpZiAob3B0aW9ucy5hc3NpZ25BcHByb3ZlciA/PyB0cnVlKSB7XG4gICAgICB0aGlzLmFzc2lnbkFwcHJvdmVyID0gbmV3IEdpdEh1YkFzc2lnbkFwcHJvdmVyKHRoaXMsIHtcbiAgICAgICAgYXBwcm92ZXJNYXBwaW5nOiBvcHRpb25zLmFwcHJvdmVyTWFwcGluZyA/PyBbXG4gICAgICAgICAgeyBhdXRob3I6ICdob2VnZXJ0bicsIGFwcHJvdmVyczogWydob2VnZXJtYSddIH0sXG4gICAgICAgICAgeyBhdXRob3I6ICdob2VnZXJtYScsIGFwcHJvdmVyczogWydob2VnZXJ0biddIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGRlZmF1bHRBcHByb3ZlcnM6IG9wdGlvbnMuZGVmYXVsdEFwcHJvdmVycyA/PyBbJ2hvZWdlcnRuJywgJ2hvZWdlcm1hJ10sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBUaGUgcHJvamVucmMgaXMgc3BsaXQgaW50byBtb2R1bGVzIHVuZGVyIC5wcm9qZW4vIOKAlCBtYWtlIHRoZW0gcGFydCBvZiB0aGVcbiAgICAvLyBkZXYgdHNjb25maWcgc28gdGhlIElERSBhbmQgdHMtbm9kZSB0eXBlLWNoZWNrIHRoZW0uXG4gICAgdGhpcy50c2NvbmZpZ0Rldj8uYWRkSW5jbHVkZSgnLnByb2plbi8qLnRzJyk7XG5cbiAgICAvLyBwbnBtIHdvcmtzcGFjZSBkZWZpbml0aW9uLlxuICAgIGNvbnN0IHdzID0gb3B0aW9ucy53b3Jrc3BhY2VPcHRpb25zID8/IHt9O1xuICAgIGNvbnN0IGFsbG93ZWRCdWlsZHMgPSB3cy5hbGxvd2VkQnVpbGRzID8/IFsnQGF3cy1hbXBsaWZ5L2NsaScsICdlc2J1aWxkJywgJ3NoYXJwJywgJ3VucnMtcmVzb2x2ZXInXTtcbiAgICBjb25zdCBhbGxvd0J1aWxkczogeyBbbmFtZTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgZm9yIChjb25zdCBkZXAgb2YgYWxsb3dlZEJ1aWxkcykge1xuICAgICAgYWxsb3dCdWlsZHNbZGVwXSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMud29ya3NwYWNlRmlsZSA9IG5ldyBZYW1sRmlsZSh0aGlzLCAncG5wbS13b3Jrc3BhY2UueWFtbCcsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBwYWNrYWdlczogd3MucGFja2FnZXMgPz8gWydwYWNrYWdlcy8qJ10sXG4gICAgICAgIC8vIEFsbG93IG5hdGl2ZS9idWlsZC1zdGVwIHBhY2thZ2VzIHRvIHJ1biBpbnN0YWxsIHNjcmlwdHMgKHBucG0gPj0gMTBcbiAgICAgICAgLy8gYmxvY2tzIHRoZXNlIGJ5IGRlZmF1bHQpLCBzbyBwbnBtIGRvZXMgbm90IHRyZWF0IG5vZGVfbW9kdWxlcyBhcyBzdGFsZS5cbiAgICAgICAgYWxsb3dCdWlsZHMsXG4gICAgICAgIG9ubHlCdWlsdERlcGVuZGVuY2llczogYWxsb3dlZEJ1aWxkcyxcbiAgICAgICAgLi4uKHdzLm92ZXJyaWRlcyAmJiBPYmplY3Qua2V5cyh3cy5vdmVycmlkZXMpLmxlbmd0aCA+IDAgPyB7IG92ZXJyaWRlczogd3Mub3ZlcnJpZGVzIH0gOiB7fSksXG4gICAgICAgIG1pbmltdW1SZWxlYXNlQWdlOiB3cy5taW5pbXVtUmVsZWFzZUFnZSA/PyAyODgwLCAvLyAyIGRheXMgaW4gbWludXRlc1xuICAgICAgICBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGU6IHdzLm1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZSA/PyBbXG4gICAgICAgICAgJ3Byb2plbi1waXBlbGluZXMnLFxuICAgICAgICAgICdjZGstc2VydmVybGVzcycsXG4gICAgICAgICAgJ0B0YWltb3MvcHJvamVuJyxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBDb252ZW5pZW5jZSByb290IHNjcmlwdHMgZGVsZWdhdGUgdG8gdGhlIHdvcmtzcGFjZS5cbiAgICBjb25zdCByb290UGtnID0gdGhpcy50cnlGaW5kT2JqZWN0RmlsZSgncGFja2FnZS5qc29uJykhO1xuICAgIHJvb3RQa2cuYWRkT3ZlcnJpZGUoJ3NjcmlwdHMuYnVpbGQnLCAncG5wbSAtciBydW4gYnVpbGQnKTtcbiAgICByb290UGtnLmFkZE92ZXJyaWRlKCdzY3JpcHRzLnRlc3QnLCAncG5wbSAtciBydW4gdGVzdCcpO1xuICAgIHJvb3RQa2cuYWRkT3ZlcnJpZGUoJ3NjcmlwdHMubGludCcsICdwbnBtIC1yIHJ1biBlc2xpbnQnKTtcblxuICAgIC8vIFVuaWZpZWQgUFIgYnVpbGQgd29ya2Zsb3cg4oCUIGJ1aWxkcyAoYW5kIG9wdGlvbmFsbHkgdGVzdHMpIGV2ZXJ5IHdvcmtzcGFjZVxuICAgIC8vIHBhY2thZ2UgaW4gZGVwZW5kZW5jeSBvcmRlci5cbiAgICBjb25zdCBub2RlVmVyc2lvbiA9IG9wdGlvbnMubm9kZVZlcnNpb24gPz8gJzIyJztcbiAgICBjb25zdCBidWlsZFN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXSA9IFtcbiAgICAgIHsgbmFtZTogJ0NoZWNrb3V0JywgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjQnIH0sXG4gICAgICB7IG5hbWU6ICdTZXR1cCBwbnBtJywgdXNlczogJ3BucG0vYWN0aW9uLXNldHVwQHY0Jywgd2l0aDogeyB2ZXJzaW9uOiBwbnBtVmVyc2lvbiB9IH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2NCcsXG4gICAgICAgIHdpdGg6IHsgJ25vZGUtdmVyc2lvbic6IG5vZGVWZXJzaW9uLCAnY2FjaGUnOiAncG5wbScgfSxcbiAgICAgIH0sXG4gICAgICB7IG5hbWU6ICdJbnN0YWxsJywgcnVuOiAncG5wbSBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlJyB9LFxuICAgICAgeyBuYW1lOiAnQnVpbGQnLCBydW46ICdwbnBtIC1yIHJ1biBidWlsZCcgfSxcbiAgICBdO1xuICAgIGlmIChvcHRpb25zLnJ1blRlc3RzSW5CdWlsZCA/PyB0cnVlKSB7XG4gICAgICBidWlsZFN0ZXBzLnB1c2goeyBuYW1lOiAnVGVzdCcsIHJ1bjogJ3BucG0gLXIgcnVuIHRlc3QnIH0pO1xuICAgIH1cbiAgICAvLyBQYXRoIGZpbHRlcjogb25seSB0cmlnZ2VyIGJ1aWxkcyB3aGVuIHdvcmtzcGFjZSBwYWNrYWdlIGZpbGVzIGNoYW5nZS5cbiAgICAvLyBDaGFuZ2VzIHRvIHNwZWNzIG9yIGRvY3MgYWxvbmUgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgbmV3IGJ1aWxkLlxuICAgIGNvbnN0IHdvcmtzcGFjZVBhY2thZ2VzID0gd3MucGFja2FnZXMgPz8gWydwYWNrYWdlcy8qJ107XG4gICAgY29uc3QgYnVpbGRQYXRocyA9IHdvcmtzcGFjZVBhY2thZ2VzLm1hcCgocGtnKSA9PiBgJHtwa2d9LyoqYCk7XG5cbiAgICB0aGlzLnByQnVpbGRXb3JrZmxvdyA9IG5ldyBnaXRodWIuR2l0aHViV29ya2Zsb3codGhpcy5naXRodWIhLCAnYnVpbGQnKTtcbiAgICB0aGlzLnByQnVpbGRXb3JrZmxvdy5vbih7XG4gICAgICBwdWxsUmVxdWVzdDogeyBwYXRoczogYnVpbGRQYXRocyB9LFxuICAgICAgcHVzaDogeyBicmFuY2hlczogWydtYWluJ10sIHBhdGhzOiBidWlsZFBhdGhzIH0sXG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICB9KTtcbiAgICB0aGlzLnByQnVpbGRXb3JrZmxvdy5hZGRKb2IoJ2J1aWxkJywge1xuICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCB9LFxuICAgICAgc3RlcHM6IGJ1aWxkU3RlcHMsXG4gICAgfSk7XG5cbiAgICAvLyBBV1MgQW1wbGlmeSBIb3N0aW5nIGJ1aWxkIHNwZWMuIFBOUE0gd29ya3NwYWNlcyBhcmUgbm90IGF1dG8tZGV0ZWN0ZWQgYnlcbiAgICAvLyBBbXBsaWZ5LCBzbyBlYWNoIGFwcCBpbnN0YWxscyBhdCB0aGUgcmVwbyByb290LCBwcmUtYnVpbGRzIGl0cyBzaGFyZWRcbiAgICAvLyBwYWNrYWdlcywgdGhlbiBidWlsZHMgZnJvbSBpdHMgYXBwUm9vdCAoc2VlIEFEUi0wMDAyKS5cbiAgICBpZiAob3B0aW9ucy5hbXBsaWZ5QXBwcyAmJiBvcHRpb25zLmFtcGxpZnlBcHBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYW1wbGlmeUZpbGUgPSBuZXcgWWFtbEZpbGUodGhpcywgJ2FtcGxpZnkueW1sJywge1xuICAgICAgICBvYmo6IHtcbiAgICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgICAgIGFwcGxpY2F0aW9uczogb3B0aW9ucy5hbXBsaWZ5QXBwcy5tYXAoKGFwcCkgPT4gdGhpcy5yZW5kZXJBbXBsaWZ5QXBwKGFwcCkpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJBbXBsaWZ5QXBwKGFwcDogTW9ub3JlcG9BbXBsaWZ5QXBwKSB7XG4gICAgY29uc3QgYW5ndWxhciA9IGFwcC5mcmFtZXdvcmsgPT09IE1vbm9yZXBvQW1wbGlmeUZyYW1ld29yay5BTkdVTEFSO1xuICAgIGNvbnN0IHByZUJ1aWxkID0gW1xuICAgICAgJ2NvcmVwYWNrIGVuYWJsZScsXG4gICAgICAvLyBGb3JjZSBwbnBtJ3MgaG9pc3RlZCBsaW5rZXIgZm9yIHRoZSBBbXBsaWZ5IGJ1aWxkIG9ubHkg4oCUIEFtcGxpZnknc1xuICAgICAgLy8gbWFuYWdlZCBjb21wdXRlIHRyYWNlcyBydW50aW1lIGRlcHMgZnJvbSBhIGZsYXQgbm9kZV9tb2R1bGVzLlxuICAgICAgJ3BucG0gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZSAtLW5vZGUtbGlua2VyIGhvaXN0ZWQnLFxuICAgICAgLi4uKGFwcC5wcmVCdWlsZEZpbHRlcnMgPz8gW10pLm1hcCgoZikgPT4gYHBucG0gLS1maWx0ZXIgJHtmfSBydW4gYnVpbGRgKSxcbiAgICBdO1xuICAgIC8vIEJVSUxEX0VOViAoZGV2fHByb2QpIGlzIHByb3ZpZGVkIGFzIGFuIEFtcGxpZnkgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAgY29uc3QgYnVpbGRDb21tYW5kID0gYXBwLmJ1aWxkQ29tbWFuZCA/PyAoYW5ndWxhclxuICAgICAgPyBgcG5wbSAtLWZpbHRlciAke2FwcC5idWlsZEZpbHRlcn0gcnVuIGJ1aWxkOlxcJHtCVUlMRF9FTlZ9YFxuICAgICAgOiBgcG5wbSAtLWZpbHRlciAke2FwcC5idWlsZEZpbHRlcn0gcnVuIGJ1aWxkYCk7XG4gICAgY29uc3QgYmFzZURpcmVjdG9yeSA9IGFwcC5hcnRpZmFjdEJhc2VEaXJlY3RvcnkgPz8gKGFuZ3VsYXJcbiAgICAgID8gYCR7YXBwLmFwcFJvb3R9L2Rpc3QvJHthcHAuYnVpbGRGaWx0ZXJ9L2Jyb3dzZXJgXG4gICAgICA6IGAke2FwcC5hcHBSb290fS8ubmV4dGApO1xuICAgIGNvbnN0IGNhY2hlUGF0aHMgPSBhcHAuY2FjaGVQYXRocyA/PyBbXG4gICAgICAnbm9kZV9tb2R1bGVzLyoqLyonLFxuICAgICAgYW5ndWxhciA/IGAke2FwcC5hcHBSb290fS8uYW5ndWxhci9jYWNoZS8qKi8qYCA6IGAke2FwcC5hcHBSb290fS8ubmV4dC9jYWNoZS8qKi8qYCxcbiAgICBdO1xuICAgIHJldHVybiB7XG4gICAgICBhcHBSb290OiBhcHAuYXBwUm9vdCxcbiAgICAgIGZyb250ZW5kOiB7XG4gICAgICAgIC8vIEluc3RhbGwvYnVpbGQgZnJvbSB0aGUgbW9ub3JlcG8gcm9vdCBzbyB0aGUgd29ya3NwYWNlIHJvb3RcbiAgICAgICAgLy8gcGFja2FnZS5qc29uIGFuZCBwbnBtLWxvY2sueWFtbCBhcmUgYXZhaWxhYmxlLlxuICAgICAgICBidWlsZFBhdGg6ICcvJyxcbiAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgcHJlQnVpbGQ6IHsgY29tbWFuZHM6IHByZUJ1aWxkIH0sXG4gICAgICAgICAgYnVpbGQ6IHsgY29tbWFuZHM6IFtidWlsZENvbW1hbmRdIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFydGlmYWN0czogeyBiYXNlRGlyZWN0b3J5LCBmaWxlczogWycqKi8qJ10gfSxcbiAgICAgICAgY2FjaGU6IHsgcGF0aHM6IGNhY2hlUGF0aHMgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.PrivateTaimosCdkApp = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -11,6 +10,7 @@ const cdk_app_1 = require("./cdk-app");
|
|
|
11
10
|
* @pjid taimos-cdk-app-private
|
|
12
11
|
*/
|
|
13
12
|
class PrivateTaimosCdkApp extends cdk_app_1.TaimosCdkApp {
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.PrivateTaimosCdkApp", version: "0.1.65" };
|
|
14
14
|
constructor(options) {
|
|
15
15
|
super({
|
|
16
16
|
licensed: false,
|
|
@@ -22,6 +22,4 @@ class PrivateTaimosCdkApp extends cdk_app_1.TaimosCdkApp {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
exports.PrivateTaimosCdkApp = PrivateTaimosCdkApp;
|
|
25
|
-
|
|
26
|
-
PrivateTaimosCdkApp[_a] = { fqn: "@taimos/projen.PrivateTaimosCdkApp", version: "0.1.63" };
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS1jZGstYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzL3ByaXZhdGUtY2RrLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFvQztBQUNwQyx1Q0FBOEQ7QUFNOUQ7Ozs7R0FJRztBQUNILE1BQWEsbUJBQW9CLFNBQVEsc0JBQVk7SUFFbkQsWUFBWSxPQUFtQztRQUM3QyxLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsS0FBSztZQUNmLFNBQVMsRUFBRSxtQkFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVO1lBQzFDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDckMsQ0FBQzs7QUFYSCxrREFZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVGFpbW9zQ2RrQXBwLCBUYWltb3NDZGtBcHBPcHRpb25zIH0gZnJvbSAnLi9jZGstYXBwJztcblxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlVGFpbW9zQ2RrQXBwT3B0aW9ucyBleHRlbmRzIFRhaW1vc0Nka0FwcE9wdGlvbnMge1xuICAvL1xufVxuXG4vKipcbiAqIFByaXZhdGUgQVdTIENESyBhcHAgaW4gVHlwZVNjcmlwdFxuICpcbiAqIEBwamlkIHRhaW1vcy1jZGstYXBwLXByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFByaXZhdGVUYWltb3NDZGtBcHAgZXh0ZW5kcyBUYWltb3NDZGtBcHAge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFByaXZhdGVUYWltb3NDZGtBcHBPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgbGljZW5zZWQ6IGZhbHNlLFxuICAgICAgbnBtQWNjZXNzOiBqYXZhc2NyaXB0Lk5wbUFjY2Vzcy5SRVNUUklDVEVELFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRGV2RGVwcygnQHRhaW1vcy9wcm9qZW4nKTtcbiAgICB0aGlzLmFkZERlcHMoJ0B0YWltb3MvY29uc3RydWN0cycpO1xuICB9XG59Il19
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS1jZGstYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plY3RzL3ByaXZhdGUtY2RrLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQW9DO0FBQ3BDLHVDQUE4RDtBQU05RDs7OztHQUlHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxzQkFBWTs7SUFFbkQsWUFBWSxPQUFtQztRQUM3QyxLQUFLLENBQUM7WUFDSixRQUFRLEVBQUUsS0FBSztZQUNmLFNBQVMsRUFBRSxtQkFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVO1lBQzFDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDckMsQ0FBQzs7QUFYSCxrREFZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVGFpbW9zQ2RrQXBwLCBUYWltb3NDZGtBcHBPcHRpb25zIH0gZnJvbSAnLi9jZGstYXBwJztcblxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlVGFpbW9zQ2RrQXBwT3B0aW9ucyBleHRlbmRzIFRhaW1vc0Nka0FwcE9wdGlvbnMge1xuICAvL1xufVxuXG4vKipcbiAqIFByaXZhdGUgQVdTIENESyBhcHAgaW4gVHlwZVNjcmlwdFxuICpcbiAqIEBwamlkIHRhaW1vcy1jZGstYXBwLXByaXZhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIFByaXZhdGVUYWltb3NDZGtBcHAgZXh0ZW5kcyBUYWltb3NDZGtBcHAge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFByaXZhdGVUYWltb3NDZGtBcHBPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgbGljZW5zZWQ6IGZhbHNlLFxuICAgICAgbnBtQWNjZXNzOiBqYXZhc2NyaXB0Lk5wbUFjY2Vzcy5SRVNUUklDVEVELFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkRGV2RGVwcygnQHRhaW1vcy9wcm9qZW4nKTtcbiAgICB0aGlzLmFkZERlcHMoJ0B0YWltb3MvY29uc3RydWN0cycpO1xuICB9XG59Il19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.TaimosPrivateTypescriptLibrary = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -11,6 +10,7 @@ const ts_lib_1 = require("./ts-lib");
|
|
|
11
10
|
* @pjid taimos-ts-lib-private
|
|
12
11
|
*/
|
|
13
12
|
class TaimosPrivateTypescriptLibrary extends ts_lib_1.TaimosTypescriptLibrary {
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@taimos/projen.TaimosPrivateTypescriptLibrary", version: "0.1.65" };
|
|
14
14
|
constructor(options) {
|
|
15
15
|
super({
|
|
16
16
|
licensed: false,
|
|
@@ -20,6 +20,4 @@ class TaimosPrivateTypescriptLibrary extends ts_lib_1.TaimosTypescriptLibrary {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
exports.TaimosPrivateTypescriptLibrary = TaimosPrivateTypescriptLibrary;
|
|
23
|
-
|
|
24
|
-
TaimosPrivateTypescriptLibrary[_a] = { fqn: "@taimos/projen.TaimosPrivateTypescriptLibrary", version: "0.1.63" };
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS10cy1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvcHJpdmF0ZS10cy1saWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBb0M7QUFDcEMscUNBQW1GO0FBTW5GOzs7O0dBSUc7QUFDSCxNQUFhLDhCQUErQixTQUFRLGdDQUF1QjtJQUV6RSxZQUFZLE9BQThDO1FBQ3hELEtBQUssQ0FBQztZQUNKLFFBQVEsRUFBRSxLQUFLO1lBQ2YsU0FBUyxFQUFFLG1CQUFVLENBQUMsU0FBUyxDQUFDLFVBQVU7WUFDMUMsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFSSCx3RUFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVGFpbW9zVHlwZXNjcmlwdExpYnJhcnksIFRhaW1vc1R5cGVzY3JpcHRMaWJyYXJ5T3B0aW9ucyB9IGZyb20gJy4vdHMtbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWltb3NQcml2YXRlVHlwZXNjcmlwdExpYnJhcnlPcHRpb25zIGV4dGVuZHMgVGFpbW9zVHlwZXNjcmlwdExpYnJhcnlPcHRpb25zIHtcbiAgLy9cbn1cblxuLyoqXG4gKiBQcml2YXRlIFR5cGVTY3JpcHQgbGlicmFyeVxuICpcbiAqIEBwamlkIHRhaW1vcy10cy1saWItcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgVGFpbW9zUHJpdmF0ZVR5cGVzY3JpcHRMaWJyYXJ5IGV4dGVuZHMgVGFpbW9zVHlwZXNjcmlwdExpYnJhcnkge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRhaW1vc1ByaXZhdGVUeXBlc2NyaXB0TGlicmFyeU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICBsaWNlbnNlZDogZmFsc2UsXG4gICAgICBucG1BY2Nlc3M6IGphdmFzY3JpcHQuTnBtQWNjZXNzLlJFU1RSSUNURUQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS10cy1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvcHJpdmF0ZS10cy1saWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFvQztBQUNwQyxxQ0FBbUY7QUFNbkY7Ozs7R0FJRztBQUNILE1BQWEsOEJBQStCLFNBQVEsZ0NBQXVCOztJQUV6RSxZQUFZLE9BQThDO1FBQ3hELEtBQUssQ0FBQztZQUNKLFFBQVEsRUFBRSxLQUFLO1lBQ2YsU0FBUyxFQUFFLG1CQUFVLENBQUMsU0FBUyxDQUFDLFVBQVU7WUFDMUMsR0FBRyxPQUFPO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFSSCx3RUFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVGFpbW9zVHlwZXNjcmlwdExpYnJhcnksIFRhaW1vc1R5cGVzY3JpcHRMaWJyYXJ5T3B0aW9ucyB9IGZyb20gJy4vdHMtbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWltb3NQcml2YXRlVHlwZXNjcmlwdExpYnJhcnlPcHRpb25zIGV4dGVuZHMgVGFpbW9zVHlwZXNjcmlwdExpYnJhcnlPcHRpb25zIHtcbiAgLy9cbn1cblxuLyoqXG4gKiBQcml2YXRlIFR5cGVTY3JpcHQgbGlicmFyeVxuICpcbiAqIEBwamlkIHRhaW1vcy10cy1saWItcHJpdmF0ZVxuICovXG5leHBvcnQgY2xhc3MgVGFpbW9zUHJpdmF0ZVR5cGVzY3JpcHRMaWJyYXJ5IGV4dGVuZHMgVGFpbW9zVHlwZXNjcmlwdExpYnJhcnkge1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFRhaW1vc1ByaXZhdGVUeXBlc2NyaXB0TGlicmFyeU9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICBsaWNlbnNlZDogZmFsc2UsXG4gICAgICBucG1BY2Nlc3M6IGphdmFzY3JpcHQuTnBtQWNjZXNzLlJFU1RSSUNURUQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
|