@taimos/projen 0.1.63 → 0.1.64
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 +206 -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.64" };
|
|
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.64" };
|
|
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,206 @@
|
|
|
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.64" };
|
|
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
|
+
this.prBuildWorkflow = new projen_1.github.GithubWorkflow(this.github, 'build');
|
|
147
|
+
this.prBuildWorkflow.on({
|
|
148
|
+
pullRequest: {},
|
|
149
|
+
push: { branches: ['main'] },
|
|
150
|
+
workflowDispatch: {},
|
|
151
|
+
});
|
|
152
|
+
this.prBuildWorkflow.addJob('build', {
|
|
153
|
+
runsOn: ['ubuntu-latest'],
|
|
154
|
+
permissions: { contents: projen_1.github.workflows.JobPermission.READ },
|
|
155
|
+
steps: buildSteps,
|
|
156
|
+
});
|
|
157
|
+
// AWS Amplify Hosting build spec. PNPM workspaces are not auto-detected by
|
|
158
|
+
// Amplify, so each app installs at the repo root, pre-builds its shared
|
|
159
|
+
// packages, then builds from its appRoot (see ADR-0002).
|
|
160
|
+
if (options.amplifyApps && options.amplifyApps.length > 0) {
|
|
161
|
+
this.amplifyFile = new projen_1.YamlFile(this, 'amplify.yml', {
|
|
162
|
+
obj: {
|
|
163
|
+
version: 1,
|
|
164
|
+
applications: options.amplifyApps.map((app) => this.renderAmplifyApp(app)),
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
renderAmplifyApp(app) {
|
|
170
|
+
const angular = app.framework === MonorepoAmplifyFramework.ANGULAR;
|
|
171
|
+
const preBuild = [
|
|
172
|
+
'corepack enable',
|
|
173
|
+
// Force pnpm's hoisted linker for the Amplify build only — Amplify's
|
|
174
|
+
// managed compute traces runtime deps from a flat node_modules.
|
|
175
|
+
'pnpm install --frozen-lockfile --node-linker hoisted',
|
|
176
|
+
...(app.preBuildFilters ?? []).map((f) => `pnpm --filter ${f} run build`),
|
|
177
|
+
];
|
|
178
|
+
// BUILD_ENV (dev|prod) is provided as an Amplify environment variable.
|
|
179
|
+
const buildCommand = app.buildCommand ?? (angular
|
|
180
|
+
? `pnpm --filter ${app.buildFilter} run build:\${BUILD_ENV}`
|
|
181
|
+
: `pnpm --filter ${app.buildFilter} run build`);
|
|
182
|
+
const baseDirectory = app.artifactBaseDirectory ?? (angular
|
|
183
|
+
? `${app.appRoot}/dist/${app.buildFilter}/browser`
|
|
184
|
+
: `${app.appRoot}/.next`);
|
|
185
|
+
const cachePaths = app.cachePaths ?? [
|
|
186
|
+
'node_modules/**/*',
|
|
187
|
+
angular ? `${app.appRoot}/.angular/cache/**/*` : `${app.appRoot}/.next/cache/**/*`,
|
|
188
|
+
];
|
|
189
|
+
return {
|
|
190
|
+
appRoot: app.appRoot,
|
|
191
|
+
frontend: {
|
|
192
|
+
// Install/build from the monorepo root so the workspace root
|
|
193
|
+
// package.json and pnpm-lock.yaml are available.
|
|
194
|
+
buildPath: '/',
|
|
195
|
+
phases: {
|
|
196
|
+
preBuild: { commands: preBuild },
|
|
197
|
+
build: { commands: [buildCommand] },
|
|
198
|
+
},
|
|
199
|
+
artifacts: { baseDirectory, files: ['**/*'] },
|
|
200
|
+
cache: { paths: cachePaths },
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.MonorepoProject = MonorepoProject;
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVjdHMvbW9ub3JlcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFrRTtBQUNsRSx1REFBd0Q7QUFFeEQ7Ozs7O0dBS0c7QUFDSCxJQUFZLHdCQUtYO0FBTEQsV0FBWSx3QkFBd0I7SUFDbEMsNkVBQTZFO0lBQzdFLDZDQUFpQixDQUFBO0lBQ2pCLDJHQUEyRztJQUMzRywrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsd0JBQXdCLHdDQUF4Qix3QkFBd0IsUUFLbkM7QUE0TEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLG1CQUFVLENBQUMsaUJBQWlCOztJQUUvRCwyQ0FBMkM7SUFDM0IsYUFBYSxDQUFXO0lBRXhDLHFDQUFxQztJQUNyQixlQUFlLENBQXdCO0lBRXZELHdFQUF3RTtJQUN4RCxXQUFXLENBQVk7SUFFdkMsOENBQThDO0lBQzlCLGNBQWMsQ0FBd0I7SUFFdEQsWUFBWSxPQUErQjtRQUN6QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsb0JBQW9CLElBQUksU0FBUyxDQUFDO1FBRTlELEtBQUssQ0FBQztZQUNKLFFBQVEsRUFBRSxLQUFLO1lBQ2YsT0FBTyxFQUFFLEtBQUs7WUFDZCxXQUFXLEVBQUUsS0FBSztZQUNsQixxRUFBcUU7WUFDckUsSUFBSSxFQUFFLEtBQUs7WUFDWCxNQUFNLEVBQUUsS0FBSztZQUNiLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLDBFQUEwRTtZQUMxRSxhQUFhLEVBQUUsS0FBSztZQUNwQixHQUFHLE9BQU87WUFDVixvREFBb0Q7WUFDcEQsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSTtZQUNsRCxXQUFXO1lBQ1gsVUFBVSxFQUFFLElBQUk7WUFDaEIsTUFBTSxFQUFFLElBQUk7WUFDWixhQUFhLEVBQUU7Z0JBQ2IsaUJBQWlCLEVBQUUsZUFBTSxDQUFD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QVEsRUFBRTtvQkFDaEMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7aUJBQ3BDO2dCQUNELFNBQVMsRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDN0MsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTthQUM3QjtTQUNGLENBQUM7SUFDSixDQUFDOztBQXZMSCwwQ0F3TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnaXRodWIsIGphdmFzY3JpcHQsIHR5cGVzY3JpcHQsIFlhbWxGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEdpdEh1YkFzc2lnbkFwcHJvdmVyIH0gZnJvbSAncHJvamVuLXBpcGVsaW5lcyc7XG5cbi8qKlxuICogVGhlIGZyb250ZW5kIGZyYW1ld29yayBhbiBBbXBsaWZ5IEhvc3RpbmcgYXBwbGljYXRpb24gaXMgYnVpbHQgd2l0aC5cbiAqXG4gKiBTZWxlY3RzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciB0aGUgYnVpbGQgY29tbWFuZCwgYXJ0aWZhY3QgZGlyZWN0b3J5IGFuZFxuICogY2FjaGUgcGF0aHMgaW4gdGhlIGdlbmVyYXRlZCBgYW1wbGlmeS55bWxgLlxuICovXG5leHBvcnQgZW51bSBNb25vcmVwb0FtcGxpZnlGcmFtZXdvcmsge1xuICAvKiogQSBOZXh0LmpzIGFwcCDigJQgYXJ0aWZhY3RzIGluIGA8YXBwUm9vdD4vLm5leHRgLCBidWlsdCB2aWEgYHJ1biBidWlsZGAuICovXG4gIE5FWFRKUyA9ICduZXh0anMnLFxuICAvKiogQW4gQW5ndWxhciBhcHAg4oCUIGFydGlmYWN0cyBpbiBgPGFwcFJvb3Q+L2Rpc3QvPGZpbHRlcj4vYnJvd3NlcmAsIGJ1aWx0IHZpYSBgcnVuIGJ1aWxkOiR7QlVJTERfRU5WfWAuICovXG4gIEFOR1VMQVIgPSAnYW5ndWxhcicsXG59XG5cbi8qKlxuICogT25lIEFXUyBBbXBsaWZ5IEhvc3RpbmcgYXBwbGljYXRpb24gc2VydmVkIGZyb20gYSB3b3Jrc3BhY2UgcGFja2FnZS5cbiAqXG4gKiBSZW5kZXJzIGEgc2luZ2xlIGVudHJ5IHVuZGVyIGBhcHBsaWNhdGlvbnM6YCBpbiB0aGUgZ2VuZXJhdGVkIGBhbXBsaWZ5LnltbGAuXG4gKiBBbXBsaWZ5IGRvZXMgbm90IGF1dG8tZGV0ZWN0IFBOUE0gd29ya3NwYWNlcywgc28gdGhlIGdlbmVyYXRlZCBidWlsZCBzcGVjXG4gKiBydW5zIGBjb3JlcGFjayBlbmFibGVgICsgYSByb290IGBwbnBtIGluc3RhbGxgIGFuZCBwcmUtYnVpbGRzIGFueSBzaGFyZWRcbiAqIHBhY2thZ2VzIGJlZm9yZSBidWlsZGluZyB0aGUgYXBwIGZyb20gaXRzIGBhcHBSb290YCAoc2VlIEFEUi0wMDAyKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25vcmVwb0FtcGxpZnlBcHAge1xuICAvKipcbiAgICogVGhlIHBhY2thZ2UgcGF0aCB0aGF0IGlzIHRoZSBBbXBsaWZ5IGFwcCByb290LCBlLmcuIGBwYWNrYWdlcy9mcm9udGVuZGAuXG4gICAqL1xuICByZWFkb25seSBhcHBSb290OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmcm9udGVuZCBmcmFtZXdvcmssIHVzZWQgdG8gcGljayBidWlsZC9hcnRpZmFjdC9jYWNoZSBkZWZhdWx0cy5cbiAgICovXG4gIHJlYWRvbmx5IGZyYW1ld29yazogTW9ub3JlcG9BbXBsaWZ5RnJhbWV3b3JrO1xuXG4gIC8qKlxuICAgKiBUaGUgcG5wbSBwYWNrYWdlIG5hbWUgdG8gYnVpbGQsIHVzZWQgYXMgdGhlIGAtLWZpbHRlcmAgdGFyZ2V0LFxuICAgKiBlLmcuIGBkZXBsb3ltb24tZnJvbnRlbmRgIG9yIGByYWRiYWxsLWRpZ2l0YWwtcG9ydGFsYC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkRmlsdGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtzcGFjZSBwYWNrYWdlcyB0byBidWlsZCBiZWZvcmUgdGhlIGFwcCwgYXMgYC0tZmlsdGVyYCB0YXJnZXRzLlxuICAgKlxuICAgKiBUeXBpY2FsbHkgdGhlIHNoYXJlZCBBUEkgcGFja2FnZSB0aGUgYXBwIGNvbnN1bWVzIHZpYSBgd29ya3NwYWNlOipgLFxuICAgKiBlLmcuIGBbJ0B0YWltb3MvZGVwbG95bW9uLWFwaSddYC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHByZUJ1aWxkRmlsdGVycz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgYnVpbGQgY29tbWFuZCBydW4gaW4gdGhlIEFtcGxpZnkgYGJ1aWxkYCBwaGFzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgcG5wbSAtLWZpbHRlciA8YnVpbGRGaWx0ZXI+IHJ1biBidWlsZGAgZm9yIE5leHQuanMsIG9yXG4gICAqIGBwbnBtIC0tZmlsdGVyIDxidWlsZEZpbHRlcj4gcnVuIGJ1aWxkOiR7QlVJTERfRU5WfWAgZm9yIEFuZ3VsYXIuXG4gICAqL1xuICByZWFkb25seSBidWlsZENvbW1hbmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBhcnRpZmFjdCBiYXNlIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgPGFwcFJvb3Q+Ly5uZXh0YCBmb3IgTmV4dC5qcywgb3JcbiAgICogYDxhcHBSb290Pi9kaXN0LzxidWlsZEZpbHRlcj4vYnJvd3NlcmAgZm9yIEFuZ3VsYXIuXG4gICAqL1xuICByZWFkb25seSBhcnRpZmFjdEJhc2VEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBBbXBsaWZ5IGJ1aWxkIGNhY2hlIHBhdGhzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGBub2RlX21vZHVsZXMvKipgIHBsdXMgdGhlIGZyYW1ld29yayBidWlsZCBjYWNoZVxuICAgKiAoYDxhcHBSb290Pi8ubmV4dC9jYWNoZS8qKmAgb3IgYDxhcHBSb290Pi8uYW5ndWxhci9jYWNoZS8qKmApLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FjaGVQYXRocz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFBOUE0gd29ya3NwYWNlIHR1bmluZyBmb3IgdGhlIGdlbmVyYXRlZCBgcG5wbS13b3Jrc3BhY2UueWFtbGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9ub3JlcG9Xb3Jrc3BhY2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB3b3Jrc3BhY2UgcGFja2FnZSBnbG9icy5cbiAgICpcbiAgICogQGRlZmF1bHQgWydwYWNrYWdlcy8qJ11cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb3ZlcnJpZGVzIGZvcmNlZCBhY3Jvc3MgdGhlIHdob2xlIHdvcmtzcGFjZVxuICAgKiAodGhlIGBvdmVycmlkZXM6YCBmaWVsZCkuIE9taXR0ZWQgZnJvbSB0aGUgZmlsZSB3aGVuIGVtcHR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIERlcGVuZGVuY2llcyBhbGxvd2VkIHRvIHJ1biBpbnN0YWxsL2J1aWxkIHNjcmlwdHMuIHBucG0gPj0gMTAgYmxvY2tzIHRoZXNlXG4gICAqIGJ5IGRlZmF1bHQuIFRoZSBsaXN0IHBvcHVsYXRlcyBib3RoIGBhbGxvd0J1aWxkc2AgYW5kXG4gICAqIGBvbmx5QnVpbHREZXBlbmRlbmNpZXNgIHNvIHBucG0gZG9lcyBub3QgdHJlYXQgYG5vZGVfbW9kdWxlc2AgYXMgc3RhbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IFsnQGF3cy1hbXBsaWZ5L2NsaScsICdlc2J1aWxkJywgJ3NoYXJwJywgJ3VucnMtcmVzb2x2ZXInXVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dlZEJ1aWxkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIGFnZSBpbiBtaW51dGVzIGEgcHVibGlzaGVkIHZlcnNpb24gbXVzdCBoYXZlIGJlZm9yZSBpdCBtYXkgYmVcbiAgICogaW5zdGFsbGVkIChgbWluaW11bVJlbGVhc2VBZ2VgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMjg4MCAvLyAyIGRheXNcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1SZWxlYXNlQWdlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQYWNrYWdlcyBleGVtcHQgZnJvbSBgbWluaW11bVJlbGVhc2VBZ2VgIHNvIG91ciBvd24gdG9vbGluZyBjYW4gdXBkYXRlXG4gICAqIHdpdGhvdXQgdGhlIGNvb2xkb3duLlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ3Byb2plbi1waXBlbGluZXMnLCAnY2RrLXNlcnZlcmxlc3MnLCAnQHRhaW1vcy9wcm9qZW4nXVxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogT25lIGF1dGhvci10by1hcHByb3ZlcnMgcm91dGluZyBydWxlIGZvciB0aGUgUFIgYXBwcm92ZXIgYXNzaWdubWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25vcmVwb0FwcHJvdmVyTWFwcGluZyB7XG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIHVzZXJuYW1lIG9wZW5pbmcgdGhlIFBSLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBHaXRIdWIgdXNlcm5hbWVzIGFzc2lnbmVkIHRvIHJldmlldyB3aGVuIGBhdXRob3JgIG9wZW5zIGEgUFIuXG4gICAqL1xuICByZWFkb25seSBhcHByb3ZlcnM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vbm9yZXBvUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcG5wbSB2ZXJzaW9uIHBpbm5lZCBmb3IgdGhlIHdvcmtzcGFjZSBhbmQgQ0kuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxMC4zMy4wJ1xuICAgKi9cbiAgcmVhZG9ubHkgcG5wbVdvcmtzcGFjZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBOb2RlLmpzIHZlcnNpb24gdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIGJ1aWxkIHdvcmtmbG93LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMjInXG4gICAqL1xuICByZWFkb25seSBub2RlVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUE5QTSB3b3Jrc3BhY2UgdHVuaW5nIGZvciB0aGUgZ2VuZXJhdGVkIGBwbnBtLXdvcmtzcGFjZS55YW1sYC5cbiAgICovXG4gIHJlYWRvbmx5IHdvcmtzcGFjZU9wdGlvbnM/OiBNb25vcmVwb1dvcmtzcGFjZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWRkIGBjZGstc2VydmVybGVzc2AgYXMgYSB3b3Jrc3BhY2UgZGV2IGRlcGVuZGVuY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjZGtTZXJ2ZXJsZXNzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhc3NpZ24gUFIgYXBwcm92ZXJzIHZpYSBgR2l0SHViQXNzaWduQXBwcm92ZXJgLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NpZ25BcHByb3Zlcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dGhvci10by1hcHByb3ZlcnMgcm91dGluZyBmb3IgdGhlIFBSIGFwcHJvdmVyIGFzc2lnbm1lbnQuXG4gICAqIE9ubHkgdXNlZCB3aGVuIGBhc3NpZ25BcHByb3ZlcmAgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBob2VnZXJ0biBhbmQgaG9lZ2VybWEgcmV2aWV3IGVhY2ggb3RoZXJcbiAgICovXG4gIHJlYWRvbmx5IGFwcHJvdmVyTWFwcGluZz86IE1vbm9yZXBvQXBwcm92ZXJNYXBwaW5nW107XG5cbiAgLyoqXG4gICAqIEFwcHJvdmVycyBhc3NpZ25lZCB3aGVuIG5vIGF1dGhvci1zcGVjaWZpYyBtYXBwaW5nIG1hdGNoZXMuXG4gICAqIE9ubHkgdXNlZCB3aGVuIGBhc3NpZ25BcHByb3ZlcmAgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgWydob2VnZXJ0bicsICdob2VnZXJtYSddXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QXBwcm92ZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHVuaWZpZWQgYnVpbGQgd29ya2Zsb3cgYWxzbyBydW5zIGBwbnBtIC1yIHJ1biB0ZXN0YC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcnVuVGVzdHNJbkJ1aWxkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQVdTIEFtcGxpZnkgSG9zdGluZyBhcHBsaWNhdGlvbnMuIFdoZW4gc2V0LCBhbiBgYW1wbGlmeS55bWxgIGlzIGdlbmVyYXRlZFxuICAgKiB3aXRoIG9uZSBlbnRyeSBwZXIgYXBwLiBXaGVuIG9taXR0ZWQsIG5vIGBhbXBsaWZ5LnltbGAgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGFtcGxpZnlBcHBzPzogTW9ub3JlcG9BbXBsaWZ5QXBwW107XG59XG5cbi8qKlxuICogUHJpdmF0ZSBQTlBNLXdvcmtzcGFjZSBtb25vcmVwbyByb290LCBmb2xsb3dpbmcgVGFpbW9zIEFEUi0wMDAyLlxuICpcbiAqIFRoZSByb290IG9ubHkgb3JjaGVzdHJhdGVzIHRoZSB3b3Jrc3BhY2Ug4oCUIGJ1aWxkaW5nLCB0ZXN0aW5nIGFuZCBsaW50aW5nIGFyZVxuICogZGVsZWdhdGVkIHRvIHRoZSB3b3Jrc3BhY2UgcGFja2FnZXMgdmlhIGBwbnBtIC1yYC4gVGhpcyBwcm9qZWN0IGdlbmVyYXRlcyB0aGVcbiAqIGBwbnBtLXdvcmtzcGFjZS55YW1sYCwgdGhlIHJvb3QgY29udmVuaWVuY2Ugc2NyaXB0cywgYSB1bmlmaWVkIFBSIGJ1aWxkXG4gKiB3b3JrZmxvdyBhbmQgKG9wdGlvbmFsbHkpIGFuIEFtcGxpZnkgSG9zdGluZyBidWlsZCBzcGVjLiBUaGUgcHJvamVuLW1hbmFnZWRcbiAqIHN1Yi1wcm9qZWN0cyAoYXBpLCBiYWNrZW5kLCBpbmZyYSkgYXJlIGFkZGVkIHdpdGggdGhlIGBwYXJlbnRgL2BvdXRkaXJgXG4gKiBwYXR0ZXJuIGluIHRoZSBjb25zdW1pbmcgYC5wcm9qZW5yYy50c2A7IHBsYWluIHdvcmtzcGFjZSBwYWNrYWdlcyAoZS5nLlxuICogTmV4dC5qcyBhcHBzKSBhcmUgcGlja2VkIHVwIGJ5IHRoZSBgcGFja2FnZXMvKmAgZ2xvYi5cbiAqXG4gKiBAcGppZCB0YWltb3MtbW9ub3JlcG9cbiAqL1xuZXhwb3J0IGNsYXNzIE1vbm9yZXBvUHJvamVjdCBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuXG4gIC8qKiBUaGUgZ2VuZXJhdGVkIGBwbnBtLXdvcmtzcGFjZS55YW1sYC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUZpbGU6IFlhbWxGaWxlO1xuXG4gIC8qKiBUaGUgdW5pZmllZCBQUiBidWlsZCB3b3JrZmxvdy4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHByQnVpbGRXb3JrZmxvdzogZ2l0aHViLkdpdGh1YldvcmtmbG93O1xuXG4gIC8qKiBUaGUgZ2VuZXJhdGVkIGBhbXBsaWZ5LnltbGAsIGlmIGFueSBBbXBsaWZ5IGFwcHMgd2VyZSBjb25maWd1cmVkLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYW1wbGlmeUZpbGU/OiBZYW1sRmlsZTtcblxuICAvKiogVGhlIFBSIGFwcHJvdmVyIGFzc2lnbm1lbnQsIGlmIGVuYWJsZWQuICovXG4gIHB1YmxpYyByZWFkb25seSBhc3NpZ25BcHByb3Zlcj86IEdpdEh1YkFzc2lnbkFwcHJvdmVyO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE1vbm9yZXBvUHJvamVjdE9wdGlvbnMpIHtcbiAgICBjb25zdCBwbnBtVmVyc2lvbiA9IG9wdGlvbnMucG5wbVdvcmtzcGFjZVZlcnNpb24gPz8gJzEwLjMzLjAnO1xuXG4gICAgc3VwZXIoe1xuICAgICAgbGljZW5zZWQ6IGZhbHNlLFxuICAgICAgcmVsZWFzZTogZmFsc2UsXG4gICAgICBkZXBzVXBncmFkZTogZmFsc2UsXG4gICAgICAvLyBUaGUgcm9vdCBvbmx5IG9yY2hlc3RyYXRlcyB0aGUgd29ya3NwYWNlIOKAlCBubyBhcHAgY29kZSBsaXZlcyBoZXJlLlxuICAgICAgamVzdDogZmFsc2UsXG4gICAgICBlc2xpbnQ6IGZhbHNlLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICAvLyBDSSBpcyB0aGUgc2luZ2xlIGhhbmQtcm9sbGVkIHdvcmtmbG93IGJlbG93IHRoYXQgZGVsZWdhdGVzIHRvIHBhY2thZ2VzLlxuICAgICAgYnVpbGRXb3JrZmxvdzogZmFsc2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgLy8gRm9yY2VkIOKAlCBkZWZpbmluZyB3aGF0IGEgVGFpbW9zIG1vbm9yZXBvIHJvb3QgaXMuXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuUE5QTSxcbiAgICAgIHBucG1WZXJzaW9uLFxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIGdpdGh1YjogdHJ1ZSxcbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHtcbiAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tQXBwKCksXG4gICAgICAgIG1lcmdpZnk6IGZhbHNlLFxuICAgICAgICBtZXJnZVF1ZXVlOiB0cnVlLFxuICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnMsXG4gICAgICAgIG1lcmdlUXVldWVPcHRpb25zOiB7XG4gICAgICAgICAgYXV0b1F1ZXVlOiB0cnVlLFxuICAgICAgICAgIC4uLm9wdGlvbnMuZ2l0aHViT3B0aW9ucz8ubWVyZ2VRdWV1ZU9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIHB1bGxSZXF1ZXN0TGludE9wdGlvbnM6IHtcbiAgICAgICAgICAuLi5vcHRpb25zLmdpdGh1Yk9wdGlvbnM/LnB1bGxSZXF1ZXN0TGludE9wdGlvbnMsXG4gICAgICAgICAgc2VtYW50aWNUaXRsZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuZ2l0aHViT3B0aW9ucz8ucHVsbFJlcXVlc3RMaW50T3B0aW9ucz8uc2VtYW50aWNUaXRsZU9wdGlvbnMsXG4gICAgICAgICAgICAvLyBGaXhlZCBhbGxvd2VkIFBSIHRpdGxlIHR5cGVzIGZvciBhIFRhaW1vcyBtb25vcmVwby5cbiAgICAgICAgICAgIHR5cGVzOiBbJ2ZlYXQnLCAnZml4JywgJ2Nob3JlJywgJ2RvY3MnLCAnc3BlYycsICdjaSddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGV2RGVwczogW1xuICAgICAgICAnQHRhaW1vcy9wcm9qZW4nLFxuICAgICAgICAncHJvamVuLXBpcGVsaW5lcycsXG4gICAgICAgIC4uLihvcHRpb25zLmNka1NlcnZlcmxlc3MgPz8gZmFsc2UgPyBbJ2Nkay1zZXJ2ZXJsZXNzJ10gOiBbXSksXG4gICAgICAgIC4uLm9wdGlvbnMuZGV2RGVwcyA/PyBbXSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBQcml2YXRlIHdvcmtzcGFjZSByb290IOKAlCBuZXZlciBwdWJsaXNoZWQsIHJlc29sdmVzIHBhY2thZ2VzIGxvY2FsbHkuXG4gICAgdGhpcy5wYWNrYWdlLmFkZEZpZWxkKCdwcml2YXRlJywgdHJ1ZSk7XG5cbiAgICAvLyBQUiBhcHByb3ZlciByb3V0aW5nLlxuICAgIGlmIChvcHRpb25zLmFzc2lnbkFwcHJvdmVyID8/IHRydWUpIHtcbiAgICAgIHRoaXMuYXNzaWduQXBwcm92ZXIgPSBuZXcgR2l0SHViQXNzaWduQXBwcm92ZXIodGhpcywge1xuICAgICAgICBhcHByb3Zlck1hcHBpbmc6IG9wdGlvbnMuYXBwcm92ZXJNYXBwaW5nID8/IFtcbiAgICAgICAgICB7IGF1dGhvcjogJ2hvZWdlcnRuJywgYXBwcm92ZXJzOiBbJ2hvZWdlcm1hJ10gfSxcbiAgICAgICAgICB7IGF1dGhvcjogJ2hvZWdlcm1hJywgYXBwcm92ZXJzOiBbJ2hvZWdlcnRuJ10gfSxcbiAgICAgICAgXSxcbiAgICAgICAgZGVmYXVsdEFwcHJvdmVyczogb3B0aW9ucy5kZWZhdWx0QXBwcm92ZXJzID8/IFsnaG9lZ2VydG4nLCAnaG9lZ2VybWEnXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFRoZSBwcm9qZW5yYyBpcyBzcGxpdCBpbnRvIG1vZHVsZXMgdW5kZXIgLnByb2plbi8g4oCUIG1ha2UgdGhlbSBwYXJ0IG9mIHRoZVxuICAgIC8vIGRldiB0c2NvbmZpZyBzbyB0aGUgSURFIGFuZCB0cy1ub2RlIHR5cGUtY2hlY2sgdGhlbS5cbiAgICB0aGlzLnRzY29uZmlnRGV2Py5hZGRJbmNsdWRlKCcucHJvamVuLyoudHMnKTtcblxuICAgIC8vIHBucG0gd29ya3NwYWNlIGRlZmluaXRpb24uXG4gICAgY29uc3Qgd3MgPSBvcHRpb25zLndvcmtzcGFjZU9wdGlvbnMgPz8ge307XG4gICAgY29uc3QgYWxsb3dlZEJ1aWxkcyA9IHdzLmFsbG93ZWRCdWlsZHMgPz8gWydAYXdzLWFtcGxpZnkvY2xpJywgJ2VzYnVpbGQnLCAnc2hhcnAnLCAndW5ycy1yZXNvbHZlciddO1xuICAgIGNvbnN0IGFsbG93QnVpbGRzOiB7IFtuYW1lOiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGRlcCBvZiBhbGxvd2VkQnVpbGRzKSB7XG4gICAgICBhbGxvd0J1aWxkc1tkZXBdID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy53b3Jrc3BhY2VGaWxlID0gbmV3IFlhbWxGaWxlKHRoaXMsICdwbnBtLXdvcmtzcGFjZS55YW1sJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIHBhY2thZ2VzOiB3cy5wYWNrYWdlcyA/PyBbJ3BhY2thZ2VzLyonXSxcbiAgICAgICAgLy8gQWxsb3cgbmF0aXZlL2J1aWxkLXN0ZXAgcGFja2FnZXMgdG8gcnVuIGluc3RhbGwgc2NyaXB0cyAocG5wbSA+PSAxMFxuICAgICAgICAvLyBibG9ja3MgdGhlc2UgYnkgZGVmYXVsdCksIHNvIHBucG0gZG9lcyBub3QgdHJlYXQgbm9kZV9tb2R1bGVzIGFzIHN0YWxlLlxuICAgICAgICBhbGxvd0J1aWxkcyxcbiAgICAgICAgb25seUJ1aWx0RGVwZW5kZW5jaWVzOiBhbGxvd2VkQnVpbGRzLFxuICAgICAgICAuLi4od3Mub3ZlcnJpZGVzICYmIE9iamVjdC5rZXlzKHdzLm92ZXJyaWRlcykubGVuZ3RoID4gMCA/IHsgb3ZlcnJpZGVzOiB3cy5vdmVycmlkZXMgfSA6IHt9KSxcbiAgICAgICAgbWluaW11bVJlbGVhc2VBZ2U6IHdzLm1pbmltdW1SZWxlYXNlQWdlID8/IDI4ODAsIC8vIDIgZGF5cyBpbiBtaW51dGVzXG4gICAgICAgIG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZTogd3MubWluaW11bVJlbGVhc2VBZ2VFeGNsdWRlID8/IFtcbiAgICAgICAgICAncHJvamVuLXBpcGVsaW5lcycsXG4gICAgICAgICAgJ2Nkay1zZXJ2ZXJsZXNzJyxcbiAgICAgICAgICAnQHRhaW1vcy9wcm9qZW4nLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvbnZlbmllbmNlIHJvb3Qgc2NyaXB0cyBkZWxlZ2F0ZSB0byB0aGUgd29ya3NwYWNlLlxuICAgIGNvbnN0IHJvb3RQa2cgPSB0aGlzLnRyeUZpbmRPYmplY3RGaWxlKCdwYWNrYWdlLmpzb24nKSE7XG4gICAgcm9vdFBrZy5hZGRPdmVycmlkZSgnc2NyaXB0cy5idWlsZCcsICdwbnBtIC1yIHJ1biBidWlsZCcpO1xuICAgIHJvb3RQa2cuYWRkT3ZlcnJpZGUoJ3NjcmlwdHMudGVzdCcsICdwbnBtIC1yIHJ1biB0ZXN0Jyk7XG4gICAgcm9vdFBrZy5hZGRPdmVycmlkZSgnc2NyaXB0cy5saW50JywgJ3BucG0gLXIgcnVuIGVzbGludCcpO1xuXG4gICAgLy8gVW5pZmllZCBQUiBidWlsZCB3b3JrZmxvdyDigJQgYnVpbGRzIChhbmQgb3B0aW9uYWxseSB0ZXN0cykgZXZlcnkgd29ya3NwYWNlXG4gICAgLy8gcGFja2FnZSBpbiBkZXBlbmRlbmN5IG9yZGVyLlxuICAgIGNvbnN0IG5vZGVWZXJzaW9uID0gb3B0aW9ucy5ub2RlVmVyc2lvbiA/PyAnMjInO1xuICAgIGNvbnN0IGJ1aWxkU3RlcHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iU3RlcFtdID0gW1xuICAgICAgeyBuYW1lOiAnQ2hlY2tvdXQnLCB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcgfSxcbiAgICAgIHsgbmFtZTogJ1NldHVwIHBucG0nLCB1c2VzOiAncG5wbS9hY3Rpb24tc2V0dXBAdjQnLCB3aXRoOiB7IHZlcnNpb246IHBucG1WZXJzaW9uIH0gfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY0JyxcbiAgICAgICAgd2l0aDogeyAnbm9kZS12ZXJzaW9uJzogbm9kZVZlcnNpb24sICdjYWNoZSc6ICdwbnBtJyB9LFxuICAgICAgfSxcbiAgICAgIHsgbmFtZTogJ0luc3RhbGwnLCBydW46ICdwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUnIH0sXG4gICAgICB7IG5hbWU6ICdCdWlsZCcsIHJ1bjogJ3BucG0gLXIgcnVuIGJ1aWxkJyB9LFxuICAgIF07XG4gICAgaWYgKG9wdGlvbnMucnVuVGVzdHNJbkJ1aWxkID8/IHRydWUpIHtcbiAgICAgIGJ1aWxkU3RlcHMucHVzaCh7IG5hbWU6ICdUZXN0JywgcnVuOiAncG5wbSAtciBydW4gdGVzdCcgfSk7XG4gICAgfVxuICAgIHRoaXMucHJCdWlsZFdvcmtmbG93ID0gbmV3IGdpdGh1Yi5HaXRodWJXb3JrZmxvdyh0aGlzLmdpdGh1YiEsICdidWlsZCcpO1xuICAgIHRoaXMucHJCdWlsZFdvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0OiB7fSxcbiAgICAgIHB1c2g6IHsgYnJhbmNoZXM6IFsnbWFpbiddIH0sXG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICB9KTtcbiAgICB0aGlzLnByQnVpbGRXb3JrZmxvdy5hZGRKb2IoJ2J1aWxkJywge1xuICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCB9LFxuICAgICAgc3RlcHM6IGJ1aWxkU3RlcHMsXG4gICAgfSk7XG5cbiAgICAvLyBBV1MgQW1wbGlmeSBIb3N0aW5nIGJ1aWxkIHNwZWMuIFBOUE0gd29ya3NwYWNlcyBhcmUgbm90IGF1dG8tZGV0ZWN0ZWQgYnlcbiAgICAvLyBBbXBsaWZ5LCBzbyBlYWNoIGFwcCBpbnN0YWxscyBhdCB0aGUgcmVwbyByb290LCBwcmUtYnVpbGRzIGl0cyBzaGFyZWRcbiAgICAvLyBwYWNrYWdlcywgdGhlbiBidWlsZHMgZnJvbSBpdHMgYXBwUm9vdCAoc2VlIEFEUi0wMDAyKS5cbiAgICBpZiAob3B0aW9ucy5hbXBsaWZ5QXBwcyAmJiBvcHRpb25zLmFtcGxpZnlBcHBzLmxlbmd0aCA+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.64" };
|
|
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.64" };
|
|
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==
|