@sylvesterllc/aws-constructs 1.0.86 → 1.0.90
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/__tests__/app-config.test.ts +1 -1
- package/dist/config/AppConfig.js +1 -1
- package/dist/config/types/index.d.ts +6 -7
- package/dist/config/types/index.js +7 -8
- package/dist/constructs/DynamoDbSingleTable.d.ts +4 -0
- package/dist/constructs/DynamoDbSingleTable.js +15 -0
- package/dist/constructs/MicroService.d.ts +4 -0
- package/dist/constructs/MicroService.js +18 -4
- package/dist/constructs/index.d.ts +1 -0
- package/dist/constructs/index.js +4 -2
- package/dist/index.js +1 -1
- package/dist/interfaces/BaseResourceProps.d.ts +6 -0
- package/dist/interfaces/BaseResourceProps.js +3 -0
- package/dist/resources/base/tsgBaseResource.d.ts +9 -0
- package/dist/resources/base/tsgBaseResource.js +18 -0
- package/dist/resources/certificate/createCertificate.js +2 -2
- package/dist/resources/dynamodb/CreateDynamo.js +1 -1
- package/dist/resources/dynamodb/CreateDynamoSingleTableDesign.d.ts +12 -0
- package/dist/resources/dynamodb/CreateDynamoSingleTableDesign.js +102 -0
- package/dist/resources/ecr/CreateEcr.d.ts +9 -0
- package/dist/resources/ecr/CreateEcr.js +40 -0
- package/dist/resources/gateway/CreateApiAndAttachLambdas.js +5 -7
- package/dist/resources/gateway/createApi.js +1 -1
- package/dist/resources/gateway/createApiKey.js +1 -1
- package/dist/resources/helpers/createRoutes.js +1 -1
- package/dist/resources/index.d.ts +1 -0
- package/dist/resources/index.js +6 -0
- package/dist/resources/lambda/createLambda.js +2 -1
- package/dist/resources/lambda/lambdaHelper.d.ts +2 -1
- package/dist/resources/lambda/lambdaHelper.js +10 -10
- package/dist/resources/lambda-authorizer/TsgJwtTokenAuthorizer.js +1 -1
- package/dist/resources/lambda-authorizer/TsgRequestAuthorizer.d.ts +1 -1
- package/dist/resources/lambda-authorizer/TsgRequestAuthorizer.js +2 -2
- package/dist/resources/lambda-authorizer/createAuthorizerHelpers.js +1 -1
- package/dist/resources/layers/common/src/nodejs/logger/logger.js +1 -1
- package/package.json +4 -4
- package/src/config/types/index.ts +7 -7
- package/src/constructs/DynamoDbSingleTable.ts +13 -0
- package/src/constructs/MicroService.ts +23 -6
- package/src/constructs/index.ts +2 -1
- package/src/index.ts +1 -1
- package/src/interfaces/BaseResourceProps.ts +7 -0
- package/src/resources/base/tsgBaseResource.ts +22 -0
- package/src/resources/certificate/createCertificate.ts +1 -1
- package/src/resources/dynamodb/CreateDynamoSingleTableDesign.ts +112 -0
- package/src/resources/ecr/CreateEcr.ts +58 -0
- package/src/resources/gateway/CreateApiAndAttachLambdas.ts +10 -13
- package/src/resources/index.ts +1 -0
- package/src/resources/lambda/createLambda.ts +3 -1
- package/src/resources/lambda/lambdaHelper.ts +29 -28
- package/src/resources/lambda-authorizer/TsgRequestAuthorizer.ts +1 -1
package/dist/config/AppConfig.js
CHANGED
|
@@ -76,4 +76,4 @@ class AppConfig {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
exports.AppConfig = AppConfig;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9BcHBDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsTUFBYSxTQUFTO0lBRVgsR0FBRyxDQUFlO0lBQ2xCLE9BQU8sQ0FBa0I7SUFDekIsU0FBUyxDQUFvQjtJQUM3QixHQUFHLENBQW1CO0lBR3RCLGFBQWEsQ0FBa0I7SUFDL0IsYUFBYSxDQUFrQjtJQUV0QyxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzNFLENBQUM7SUFFRCxZQUFZLE1BQWtCO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxNQUFrQjtRQUMvQixJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUduQyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsTUFBa0I7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNYLEdBQUcsTUFBTSxDQUFDLE9BQU87U0FDcEIsQ0FBQztJQUNOLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUFrQjtRQUV4QyxJQUFJLE1BQU0sQ0FBQyxHQUFHO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRztnQkFDUCxHQUFHLE1BQU0sQ0FBQyxHQUFHO2FBQ2hCLENBQUM7SUFDVixDQUFDO0lBRU8saUJBQWlCLENBQUMsTUFBa0I7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRztZQUNiLEdBQUcsTUFBTSxDQUFDLFNBQVM7U0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHO1lBQ3BCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1NBQzdCLENBQUM7UUFFRixJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxHQUFHLEdBQUc7Z0JBQ1AsR0FBRyxNQUFNLENBQUMsR0FBSTthQUNqQixDQUFDO1FBQ04sQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRztnQkFDeEIsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVU7YUFDakMsQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUc7Z0JBQ2pCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHO2FBQzFCLENBQUM7UUFDTixDQUFDO0lBRUwsQ0FBQztJQUNELG1HQUFtRztJQUNuRywwR0FBMEc7SUFDMUcsSUFBSTtJQUVJLGVBQWUsQ0FBTyxNQUFXLEVBQUUsTUFBMEI7UUFFakUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFPLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sTUFBTSxDQUFDO0lBRWxCLENBQUM7SUFFTyxXQUFXLENBQU8sSUFBdUI7UUFFN0MsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGFBQWE7UUFDYixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sTUFBYSxDQUFDO0lBQ3pCLENBQUM7Q0FDSjtBQWhHRCw4QkFnR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tIFwicHJvY2Vzc1wiO1xuaW1wb3J0IHsgQXBpQXBwQ29uZmlnIH0gZnJvbSBcIi4vY3VzdG9tQ29uZmlncy9BcGlBcHBDb25maWdcIjtcbmltcG9ydCB7IEdsb2JhbEFwcENvbmZpZyB9IGZyb20gXCIuL2N1c3RvbUNvbmZpZ3MvR2xvYmFsQXBwQ29uZmlnXCI7XG5pbXBvcnQgeyBJQXBwQ29uZmlnIH0gZnJvbSBcIi4vY3VzdG9tQ29uZmlncy9JQXBwQ29uZmlnXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUFwcENvbmZpZyB9IGZyb20gXCIuL2N1c3RvbUNvbmZpZ3MvUmVzb3VyY2VBcHBDb25maWdcIjtcbmltcG9ydCB7IFRzZ0R5bmFtb1Byb3AgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgVHNnRG5zQXBwQ29uZmlnIH0gZnJvbSBcIi4vdHlwZXMvVHNnRG5zQ29uZmlnXCI7XG5pbXBvcnQgeyBUc2dMYW1iZGFOYW1lIH0gZnJvbSBcIi4vdHlwZXMvVHNnTGFtYmRhTmFtZVwiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcCB9IGZyb20gXCIuL3R5cGVzL1RzZ0xhbWJkYVByb3BcIjtcblxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZyBpbXBsZW1lbnRzIElBcHBDb25maWcge1xuXG4gICAgcHVibGljIEFQSTogQXBpQXBwQ29uZmlnO1xuICAgIHB1YmxpYyBHTE9CQUxTOiBHbG9iYWxBcHBDb25maWc7XG4gICAgcHVibGljIFJFU09VUkNFUzogUmVzb3VyY2VBcHBDb25maWc7XG4gICAgcHVibGljIEROUz86IFRzZ0Ruc0FwcENvbmZpZztcblxuXG4gICAgcHVibGljIGxhbWJkYUNvbmZpZ3M6IFRzZ0xhbWJkYVByb3BbXTtcbiAgICBwdWJsaWMgZHluYW1vQ29uZmlnczogVHNnRHluYW1vUHJvcFtdO1xuXG4gICAgZ2V0IEFwcE5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLkdMT0JBTFMubmFtZTtcbiAgICB9XG5cbiAgICBnZXQgQXBwUHJlZml4KCkge1xuICAgICAgICByZXR1cm4gKHRoaXMuR0xPQkFMUy5wcmVmaXgpID8gdGhpcy5HTE9CQUxTLnByZWZpeCA6IHRoaXMuR0xPQkFMUy5uYW1lO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogSUFwcENvbmZpZykge1xuICAgICAgICB0aGlzLnBvcHVsYXRlKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZShjb25maWc6IElBcHBDb25maWcpIHtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZUdsb2JhbENvbmZpZyhjb25maWcpO1xuICAgICAgICB0aGlzLnBvcHVsYXRlQXBpQ29uZmlnKGNvbmZpZyk7XG4gICAgICAgIHRoaXMucG9wdWxhdGVSZXNvdXJjZXMoY29uZmlnKTtcblxuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZUdsb2JhbENvbmZpZyhjb25maWc6IElBcHBDb25maWcpIHtcbiAgICAgICAgdGhpcy5HTE9CQUxTID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLkdMT0JBTFNcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvcHVsYXRlQXBpQ29uZmlnKGNvbmZpZzogSUFwcENvbmZpZykge1xuXG4gICAgICAgIGlmIChjb25maWcuQVBJKVxuICAgICAgICAgICAgdGhpcy5BUEkgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLkFQSVxuICAgICAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvcHVsYXRlUmVzb3VyY2VzKGNvbmZpZzogSUFwcENvbmZpZykge1xuICAgICAgICB0aGlzLlJFU09VUkNFUyA9IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZy5SRVNPVVJDRVNcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5SRVNPVVJDRVMuRFlOQU1PID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLlJFU09VUkNFUy5EWU5BTU9cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoY29uZmlnLkROUykge1xuICAgICAgICAgICAgdGhpcy5ETlMgPSB7XG4gICAgICAgICAgICAgICAgLi4uY29uZmlnLkROUyFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLlJFU09VUkNFUy5BVVRIT1JJWkVSKSB7XG4gICAgICAgICAgICB0aGlzLlJFU09VUkNFUy5BVVRIT1JJWkVSID0ge1xuICAgICAgICAgICAgICAgIC4uLmNvbmZpZy5SRVNPVVJDRVMuQVVUSE9SSVpFUlxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuUkVTT1VSQ0VTLkVDMikge1xuICAgICAgICAgICAgdGhpcy5SRVNPVVJDRVMuRUMyID0ge1xuICAgICAgICAgICAgICAgIC4uLmNvbmZpZy5SRVNPVVJDRVMuRUMyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICB9XG4gICAgLy8gICAgIHRoaXMubGFtYmRhQ29uZmlncyA9IHRoaXMuZXhwYW5kUHJvcHM8VHNnTGFtYmRhTmFtZSwgVHNnTGFtYmRhUHJvcD4odGhpcy5SRVNPVVJDRVMuTEFNQkRBISk7XG4gICAgLy8gICAgIHRoaXMuZHluYW1vQ29uZmlncyA9IHRoaXMuZXhwYW5kUHJvcHM8VHNnVGFibGVOYW1lLCBUc2dEeW5hbW9Qcm9wPih0aGlzLlJFU09VUkNFUy5EWU5BTU8/LlRBQkxFUyEpO1xuICAgIC8vIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVDb25maWdzPFQsIFI+KHJlc3VsdDogUltdLCByZWNvcmQ/OiBSZWNvcmQ8c3RyaW5nLCBSPikge1xuXG4gICAgICAgIGlmICghcmVjb3JkKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZXhwYW5kUHJvcHM8VCwgUj4ocmVjb3JkKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcblxuICAgIH1cblxuICAgIHByaXZhdGUgZXhwYW5kUHJvcHM8VCwgUj4oZGF0YTogUmVjb3JkPHN0cmluZywgUj4pIHtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhkYXRhKSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQgYXMgUltdO1xuICAgIH1cbn0iXX0=
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./TsgAuthorizerProp";
|
|
2
|
+
export * from "./TsgAuthorizerType";
|
|
2
3
|
export * from "./TsgCognitoConfig";
|
|
4
|
+
export * from "./TsgDynamoDbProp";
|
|
5
|
+
export * from "./TsgDynamoProp";
|
|
6
|
+
export * from "./TsgDynamoTableRef";
|
|
3
7
|
export * from "./TsgLambdaMap";
|
|
4
8
|
export * from "./TsgLambdaName";
|
|
5
9
|
export * from "./TsgLambdaNode";
|
|
6
|
-
export * from "./
|
|
7
|
-
export * from "./TsgDynamoTableRef";
|
|
8
|
-
export * from "./TsgDynamoDbProp";
|
|
9
|
-
export * from "./LogDuration";
|
|
10
|
-
export * from "./TsgAuthorizerProp";
|
|
11
|
-
export * from "./TsgAuthorizerType";
|
|
10
|
+
export * from "./TsgLambdaProp";
|
|
@@ -14,15 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./TsgAuthorizerProp"), exports);
|
|
18
|
+
__exportStar(require("./TsgAuthorizerType"), exports);
|
|
18
19
|
__exportStar(require("./TsgCognitoConfig"), exports);
|
|
20
|
+
__exportStar(require("./TsgDynamoDbProp"), exports);
|
|
21
|
+
__exportStar(require("./TsgDynamoProp"), exports);
|
|
22
|
+
__exportStar(require("./TsgDynamoTableRef"), exports);
|
|
19
23
|
__exportStar(require("./TsgLambdaMap"), exports);
|
|
20
24
|
__exportStar(require("./TsgLambdaName"), exports);
|
|
21
25
|
__exportStar(require("./TsgLambdaNode"), exports);
|
|
22
|
-
__exportStar(require("./
|
|
23
|
-
|
|
24
|
-
__exportStar(require("./TsgDynamoDbProp"), exports);
|
|
25
|
-
__exportStar(require("./LogDuration"), exports);
|
|
26
|
-
__exportStar(require("./TsgAuthorizerProp"), exports);
|
|
27
|
-
__exportStar(require("./TsgAuthorizerType"), exports);
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0M7QUFDaEMscURBQW1DO0FBQ25DLGlEQUErQjtBQUMvQixrREFBZ0M7QUFDaEMsa0RBQWdDO0FBQ2hDLGtEQUFnQztBQUNoQyxzREFBb0M7QUFDcEMsb0RBQWtDO0FBQ2xDLGdEQUE4QjtBQUM5QixzREFBb0M7QUFDcEMsc0RBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vVHNnTGFtYmRhUHJvcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnQ29nbml0b0NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnTGFtYmRhTWFwXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Uc2dMYW1iZGFOYW1lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Uc2dMYW1iZGFOb2RlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Uc2dEeW5hbW9Qcm9wXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Uc2dEeW5hbW9UYWJsZVJlZlwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnRHluYW1vRGJQcm9wXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Mb2dEdXJhdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnQXV0aG9yaXplclByb3BcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1RzZ0F1dGhvcml6ZXJUeXBlXCI7XG4iXX0=
|
|
26
|
+
__exportStar(require("./TsgLambdaProp"), exports);
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29uZmlnL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsc0RBQW9DO0FBQ3BDLHFEQUFtQztBQUNuQyxvREFBa0M7QUFDbEMsa0RBQWdDO0FBQ2hDLHNEQUFvQztBQUNwQyxpREFBK0I7QUFDL0Isa0RBQWdDO0FBQ2hDLGtEQUFnQztBQUNoQyxrREFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9Uc2dBdXRob3JpemVyUHJvcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnQXV0aG9yaXplclR5cGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1RzZ0NvZ25pdG9Db25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1RzZ0R5bmFtb0RiUHJvcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnRHluYW1vUHJvcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnRHluYW1vVGFibGVSZWZcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1RzZ0xhbWJkYU1hcFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnTGFtYmRhTmFtZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnTGFtYmRhTm9kZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHNnTGFtYmRhUHJvcFwiO1xuXG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamoDbSingleTable = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const CreateDynamoSingleTableDesign_1 = require("../resources/dynamodb/CreateDynamoSingleTableDesign");
|
|
6
|
+
class DynamoDbSingleTable extends constructs_1.Construct {
|
|
7
|
+
constructor(scope, id, tableName) {
|
|
8
|
+
super(scope, id);
|
|
9
|
+
{
|
|
10
|
+
new CreateDynamoSingleTableDesign_1.CreateDynamoSingleTableDesign(this, tableName);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.DynamoDbSingleTable = DynamoDbSingleTable;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1vRGJTaW5nbGVUYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdHJ1Y3RzL0R5bmFtb0RiU2luZ2xlVGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQXVDO0FBQ3ZDLHVHQUFvRztBQUVwRyxNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBRTlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsU0FBaUI7UUFDdkQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUFDLENBQUM7WUFFZixJQUFJLDZEQUE2QixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV2RCxDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBVEQsa0RBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ3JlYXRlRHluYW1vU2luZ2xlVGFibGVEZXNpZ24gfSBmcm9tIFwiLi4vcmVzb3VyY2VzL2R5bmFtb2RiL0NyZWF0ZUR5bmFtb1NpbmdsZVRhYmxlRGVzaWduXCI7XG5cbmV4cG9ydCBjbGFzcyBEeW5hbW9EYlNpbmdsZVRhYmxlIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7IHtcblxuICAgICAgICAgICAgbmV3IENyZWF0ZUR5bmFtb1NpbmdsZVRhYmxlRGVzaWduKHRoaXMsIHRhYmxlTmFtZSk7XG5cbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
|
|
@@ -6,6 +6,10 @@ export declare class MicroService extends Construct {
|
|
|
6
6
|
protected requireSeedDatabase: boolean;
|
|
7
7
|
protected readonly hasLambdaLayers: boolean;
|
|
8
8
|
protected appConfig: AppConfig;
|
|
9
|
+
private readonly api;
|
|
10
|
+
private readonly dynamoTables;
|
|
11
|
+
private readonly lambdaLayers;
|
|
12
|
+
private readonly secretManager;
|
|
9
13
|
constructor(scope: Construct, id: string, props: MicroserviceProps);
|
|
10
14
|
private onInit;
|
|
11
15
|
protected createTag(scope: Construct): void;
|
|
@@ -15,6 +15,10 @@ class MicroService extends constructs_1.Construct {
|
|
|
15
15
|
requireSeedDatabase = false;
|
|
16
16
|
hasLambdaLayers = false;
|
|
17
17
|
appConfig;
|
|
18
|
+
api;
|
|
19
|
+
dynamoTables;
|
|
20
|
+
lambdaLayers;
|
|
21
|
+
secretManager = null;
|
|
18
22
|
constructor(scope, id, props) {
|
|
19
23
|
super(scope, id);
|
|
20
24
|
this.appConfig = new AppConfig_1.AppConfig(props);
|
|
@@ -24,16 +28,21 @@ class MicroService extends constructs_1.Construct {
|
|
|
24
28
|
props.RESOURCES.DYNAMO.SEED_LAMBDA) ? true : false;
|
|
25
29
|
this.hasLambdaLayers = (props.RESOURCES.LAMBDA_LAYERS &&
|
|
26
30
|
props.RESOURCES.LAMBDA_LAYERS.length > 0) ? true : false;
|
|
27
|
-
this.onInit(scope);
|
|
31
|
+
const results = this.onInit(scope);
|
|
32
|
+
this.api = results.restApi;
|
|
33
|
+
this.dynamoTables = results.dynamoTables;
|
|
34
|
+
this.lambdaLayers = results.lambdaLayers;
|
|
35
|
+
this.secretManager = results.secretManager;
|
|
28
36
|
this.createTag(scope);
|
|
29
37
|
}
|
|
30
38
|
onInit(scope) {
|
|
39
|
+
let secretManager = null;
|
|
31
40
|
let tables = undefined;
|
|
32
41
|
let commonLayers = undefined;
|
|
33
42
|
if (process.env.SECRET_MANAGER_ARN) {
|
|
34
43
|
// throw new Error(`You must provide the ARN for the your Configuration Secret
|
|
35
44
|
// Manager`);
|
|
36
|
-
|
|
45
|
+
secretManager = (0, securityManager_1.getSecretManager)(scope, this.appConfig, process.env.SECRET_MANAGER_ARN);
|
|
37
46
|
}
|
|
38
47
|
if (this.hasLambdaLayers) {
|
|
39
48
|
commonLayers = (0, createCommonLayer_1.createCommonLayer)(scope, this.appConfig);
|
|
@@ -48,9 +57,14 @@ class MicroService extends constructs_1.Construct {
|
|
|
48
57
|
if (this.requireSeedDatabase) {
|
|
49
58
|
(0, createSeedDatabaseCustomResource_1.createSeedDatabaseCustomResource)(scope, this.appConfig, tables[0], layers);
|
|
50
59
|
}
|
|
51
|
-
console.log('myConfig', this.appConfig);
|
|
52
60
|
// CREATE API GATEWAY AND LAMBDA HERE
|
|
53
61
|
const apiGateway = new CreateApiAndAttachLambdas_1.CreateApiAndAttachLambdas(scope, this.appConfig, gateway[0], layers, tables);
|
|
62
|
+
return {
|
|
63
|
+
restApi: (gateway?.length > 0) ? gateway[0] : null,
|
|
64
|
+
lambdaLayers: layers || null,
|
|
65
|
+
dynamoTables: tables || null,
|
|
66
|
+
secretManager: secretManager,
|
|
67
|
+
};
|
|
54
68
|
}
|
|
55
69
|
createTag(scope) {
|
|
56
70
|
aws_cdk_lib_1.Tags.of(scope).add('App', this.appConfig.AppName);
|
|
@@ -58,4 +72,4 @@ class MicroService extends constructs_1.Construct {
|
|
|
58
72
|
}
|
|
59
73
|
}
|
|
60
74
|
exports.MicroService = MicroService;
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9TZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvTWljcm9TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJDQUF1QztBQUV2QyxxRUFBb0U7QUFDcEUsOERBQXFEO0FBQ3JELGtFQUFnRTtBQUNoRSw4RUFBMkU7QUFDM0UsbURBQWdEO0FBQ2hELDZDQUFtQztBQUVuQyw4RkFBMkY7QUFDM0YsbUhBQWdIO0FBR2hILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBRXBCLG1CQUFtQixDQUFVO0lBQ3RDLG1CQUFtQixHQUFZLEtBQUssQ0FBQztJQUM1QixlQUFlLEdBQVksS0FBSyxDQUFDO0lBQzFDLFNBQVMsQ0FBWTtJQUNkLEdBQUcsQ0FBVztJQUNkLFlBQVksQ0FBc0I7SUFDbEMsWUFBWSxDQUE2QjtJQUN6QyxhQUFhLEdBQW1CLElBQUksQ0FBQztJQUV0RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTTtZQUN0RCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUU3RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxpQkFBaUI7WUFDakUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRXZELElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWE7WUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUU3RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFhLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWMsQ0FBQztRQUU1QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBZ0I7UUFFM0IsSUFBSSxhQUFhLEdBQW1CLElBQUksQ0FBQztRQUN6QyxJQUFJLE1BQU0sR0FBd0IsU0FBUyxDQUFDO1FBQzVDLElBQUksWUFBWSxHQUErQixTQUFTLENBQUM7UUFFekQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDakMsK0VBQStFO1lBQy9FLHVCQUF1QjtZQUN0QixhQUFhLEdBQUcsSUFBQSxrQ0FBZ0IsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLFlBQVksR0FBRyxJQUFBLHFDQUFpQixFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksZUFBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXBELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQztRQUU1QixzQ0FBc0M7UUFDdEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLDZCQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV6RCxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFBLG1FQUFnQyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBRUQsc0NBQXNDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUkscURBQXlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBQyxNQUFNLENBQUMsQ0FBQztRQUVuRyxPQUFPO1lBQ0gsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2xELFlBQVksRUFBRSxNQUFNLElBQUksSUFBSTtZQUM1QixZQUFZLEVBQUUsTUFBTSxJQUFJLElBQUk7WUFDNUIsYUFBYSxFQUFFLGFBQWE7U0FFL0IsQ0FBQztJQUVOLENBQUM7SUFFUyxTQUFTLENBQUMsS0FBZ0I7UUFDaEMsa0JBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELGtCQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0o7QUFuRkQsb0NBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlUHJvcHMgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wc1wiO1xuaW1wb3J0IHsgQ3JlYXRlRHluYW1vRGIgfSBmcm9tIFwiLi4vcmVzb3VyY2VzL2R5bmFtb2RiL0NyZWF0ZUR5bmFtb1wiO1xuaW1wb3J0IHsgQXBpIH0gZnJvbSBcIi4uL3Jlc291cmNlcy9nYXRld2F5L2NyZWF0ZUFwaVwiO1xuaW1wb3J0IHsgZ2V0U2VjcmV0TWFuYWdlciB9IGZyb20gXCIuLi9yZXNvdXJjZXMvc2VjdXJpdHlNYW5hZ2VyXCI7XG5pbXBvcnQgeyBjcmVhdGVDb21tb25MYXllciB9IGZyb20gXCIuLi9yZXNvdXJjZXMvaGVscGVycy9jcmVhdGVDb21tb25MYXllclwiO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9BcHBDb25maWdcIjtcbmltcG9ydCB7IFRhZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IExheWVyVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBDcmVhdGVBcGlBbmRBdHRhY2hMYW1iZGFzIH0gZnJvbSBcIi4uL3Jlc291cmNlcy9nYXRld2F5L0NyZWF0ZUFwaUFuZEF0dGFjaExhbWJkYXNcIjtcbmltcG9ydCB7IGNyZWF0ZVNlZWREYXRhYmFzZUN1c3RvbVJlc291cmNlIH0gZnJvbSBcIi4uL3Jlc291cmNlcy9jdXN0b21SZXNvdXJjZS9jcmVhdGVTZWVkRGF0YWJhc2VDdXN0b21SZXNvdXJjZVwiO1xuaW1wb3J0IHsgSVJlc3RBcGkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXlcIjtcbmltcG9ydCB7IElTZWNyZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5leHBvcnQgY2xhc3MgTWljcm9TZXJ2aWNlIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSByZXF1aXJlRHluYW1vVGFibGVzOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCByZXF1aXJlU2VlZERhdGFiYXNlOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc0xhbWJkYUxheWVyczogYm9vbGVhbiA9IGZhbHNlOyAgXG4gICAgcHJvdGVjdGVkIGFwcENvbmZpZzogQXBwQ29uZmlnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBpOiBJUmVzdEFwaTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGR5bmFtb1RhYmxlczogVGFibGVbXSB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxhbWJkYUxheWVyczogTGF5ZXJWZXJzaW9uW10gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWNyZXRNYW5hZ2VyOiBJU2VjcmV0IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTWljcm9zZXJ2aWNlUHJvcHMpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgICB0aGlzLmFwcENvbmZpZyA9IG5ldyBBcHBDb25maWcocHJvcHMpOyAgXG4gICAgICAgICAgICAgICBcbiAgICAgICAgdGhpcy5yZXF1aXJlRHluYW1vVGFibGVzID0gKHByb3BzLlJFU09VUkNFUy5EWU5BTU8/LlRBQkxFUyAmJlxuICAgICAgICAgICAgcHJvcHMuUkVTT1VSQ0VTLkRZTkFNTy5UQUJMRVMubGVuZ3RoID4gMCkgPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgdGhpcy5yZXF1aXJlU2VlZERhdGFiYXNlID0gKHByb3BzLlJFU09VUkNFUy5EWU5BTU8/LlVTRV9TRUVEX0RBVEFCQVNFICYmIFxuICAgICAgICAgICAgcHJvcHMuUkVTT1VSQ0VTLkRZTkFNTy5TRUVEX0xBTUJEQSkgPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgdGhpcy5oYXNMYW1iZGFMYXllcnMgPSAocHJvcHMuUkVTT1VSQ0VTLkxBTUJEQV9MQVlFUlMgJiYgXG4gICAgICAgICAgICBwcm9wcy5SRVNPVVJDRVMuTEFNQkRBX0xBWUVSUy5sZW5ndGggPiAwKSA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5vbkluaXQoc2NvcGUpO1xuXG4gICAgICAgIHRoaXMuYXBpID0gcmVzdWx0cy5yZXN0QXBpITtcbiAgICAgICAgdGhpcy5keW5hbW9UYWJsZXMgPSByZXN1bHRzLmR5bmFtb1RhYmxlcyE7XG4gICAgICAgIHRoaXMubGFtYmRhTGF5ZXJzID0gcmVzdWx0cy5sYW1iZGFMYXllcnMhO1xuICAgICAgICB0aGlzLnNlY3JldE1hbmFnZXIgPSByZXN1bHRzLnNlY3JldE1hbmFnZXIhO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlVGFnKHNjb3BlKVxuICAgIH1cblxuICAgIHByaXZhdGUgb25Jbml0KHNjb3BlOiBDb25zdHJ1Y3QpIHtcblxuICAgICAgICBsZXQgc2VjcmV0TWFuYWdlcjogSVNlY3JldCB8IG51bGwgPSBudWxsO1xuICAgICAgICBsZXQgdGFibGVzOiBUYWJsZVtdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgY29tbW9uTGF5ZXJzOiBMYXllclZlcnNpb25bXSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuU0VDUkVUX01BTkFHRVJfQVJOKSB7XG4gICAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoYFlvdSBtdXN0IHByb3ZpZGUgdGhlIEFSTiBmb3IgdGhlIHlvdXIgQ29uZmlndXJhdGlvbiBTZWNyZXQgXG4gICAgICAgICAgICAvLyAgICAgTWFuYWdlcmApOyAgICAgIFxuICAgICAgICAgICAgIHNlY3JldE1hbmFnZXIgPSBnZXRTZWNyZXRNYW5hZ2VyKHNjb3BlLCB0aGlzLmFwcENvbmZpZywgcHJvY2Vzcy5lbnYuU0VDUkVUX01BTkFHRVJfQVJOKTsgICAgICAgICAgICBcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmhhc0xhbWJkYUxheWVycykge1xuICAgICAgICAgICAgY29tbW9uTGF5ZXJzID0gY3JlYXRlQ29tbW9uTGF5ZXIoc2NvcGUsIHRoaXMuYXBwQ29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGdhdGV3YXkgPSBuZXcgQXBpKHNjb3BlLCB0aGlzLmFwcENvbmZpZykuQVBJcztcblxuICAgICAgICBjb25zdCBsYXllcnMgPSBjb21tb25MYXllcnM7XG5cbiAgICAgICAgLy8gQ3JlYXRlcyBEeW5hbW9EYiBUYWJsZXMgaWYgcmVxdWlyZWRcbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZUR5bmFtb1RhYmxlcykge1xuICAgICAgICAgICAgY29uc3QgZHluYW1vID0gbmV3IENyZWF0ZUR5bmFtb0RiKHNjb3BlLCB0aGlzLmFwcENvbmZpZyk7XG5cbiAgICAgICAgICAgIHRhYmxlcyA9IGR5bmFtby5DcmVhdGVkVGFibGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZVNlZWREYXRhYmFzZSkge1xuICAgICAgICAgICAgY3JlYXRlU2VlZERhdGFiYXNlQ3VzdG9tUmVzb3VyY2Uoc2NvcGUsIHRoaXMuYXBwQ29uZmlnLCB0YWJsZXMhWzBdLCBsYXllcnMpO1xuICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgIC8vIENSRUFURSBBUEkgR0FURVdBWSBBTkQgTEFNQkRBIEhFUkUgXG4gICAgICAgIGNvbnN0IGFwaUdhdGV3YXkgPSBuZXcgQ3JlYXRlQXBpQW5kQXR0YWNoTGFtYmRhcyhzY29wZSwgdGhpcy5hcHBDb25maWcsIGdhdGV3YXlbMF0sIGxheWVycyx0YWJsZXMpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZXN0QXBpOiAoZ2F0ZXdheT8ubGVuZ3RoID4gMCkgPyBnYXRld2F5WzBdIDogbnVsbCxcbiAgICAgICAgICAgIGxhbWJkYUxheWVyczogbGF5ZXJzIHx8IG51bGwsXG4gICAgICAgICAgICBkeW5hbW9UYWJsZXM6IHRhYmxlcyB8fCBudWxsLFxuICAgICAgICAgICAgc2VjcmV0TWFuYWdlcjogc2VjcmV0TWFuYWdlcixcblxuICAgICAgICB9O1xuICAgICAgIFxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVUYWcoc2NvcGU6IENvbnN0cnVjdCkge1xuICAgICAgICBUYWdzLm9mKHNjb3BlKS5hZGQoJ0FwcCcsIHRoaXMuYXBwQ29uZmlnLkFwcE5hbWUpO1xuICAgICAgICBUYWdzLm9mKHNjb3BlKS5hZGQoJ1Jlc291Y2VQcmVmaXgnLCB0aGlzLmFwcENvbmZpZy5BcHBQcmVmaXgpO1xuICAgIH1cbn0iXX0=
|
package/dist/constructs/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TsgAuthorizerType = exports.MicroService = void 0;
|
|
3
|
+
exports.DynamoDbSingleTable = exports.TsgAuthorizerType = exports.MicroService = void 0;
|
|
4
4
|
var MicroService_1 = require("./MicroService");
|
|
5
5
|
Object.defineProperty(exports, "MicroService", { enumerable: true, get: function () { return MicroService_1.MicroService; } });
|
|
6
6
|
var TsgAuthorizerType_1 = require("../config/types/TsgAuthorizerType");
|
|
7
7
|
Object.defineProperty(exports, "TsgAuthorizerType", { enumerable: true, get: function () { return TsgAuthorizerType_1.TsgAuthorizerType; } });
|
|
8
|
-
|
|
8
|
+
var DynamoDbSingleTable_1 = require("./DynamoDbSingleTable");
|
|
9
|
+
Object.defineProperty(exports, "DynamoDbSingleTable", { enumerable: true, get: function () { return DynamoDbSingleTable_1.DynamoDbSingleTable; } });
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FBOEM7QUFBckMsNEdBQUEsWUFBWSxPQUFBO0FBQ3JCLHVFQUFzRTtBQUE3RCxzSEFBQSxpQkFBaUIsT0FBQTtBQUMxQiw2REFBNEQ7QUFBbkQsMEhBQUEsbUJBQW1CLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBNaWNyb1NlcnZpY2UgfSBmcm9tIFwiLi9NaWNyb1NlcnZpY2VcIjtcbmV4cG9ydCB7IFRzZ0F1dGhvcml6ZXJUeXBlIH0gZnJvbSBcIi4uL2NvbmZpZy90eXBlcy9Uc2dBdXRob3JpemVyVHlwZVwiO1xuZXhwb3J0IHsgRHluYW1vRGJTaW5nbGVUYWJsZSB9IGZyb20gXCIuL0R5bmFtb0RiU2luZ2xlVGFibGVcIjsiXX0=
|
package/dist/index.js
CHANGED
|
@@ -7,4 +7,4 @@ var MicroserviceAppConfig_1 = require("./config/MicroserviceAppConfig");
|
|
|
7
7
|
Object.defineProperty(exports, "MicroServiceAppConfig", { enumerable: true, get: function () { return MicroserviceAppConfig_1.MicroServiceAppConfig; } });
|
|
8
8
|
var TsgAuthorizerType_1 = require("./config/types/TsgAuthorizerType");
|
|
9
9
|
Object.defineProperty(exports, "TsgAuthorizerType", { enumerable: true, get: function () { return TsgAuthorizerType_1.TsgAuthorizerType; } });
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXlEO0FBQWhELDRHQUFBLFlBQVksT0FBQTtBQUdyQix3RUFBdUU7QUFBOUQsOEhBQUEscUJBQXFCLE9BQUE7QUFDOUIsc0VBQXFFO0FBQTVELHNIQUFBLGlCQUFpQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTWljcm9TZXJ2aWNlIH0gZnJvbSBcIi4vY29uc3RydWN0cy9NaWNyb1NlcnZpY2VcIjtcbmV4cG9ydCB7IE1pY3Jvc2VydmljZVByb3BzIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wc1wiO1xuZXhwb3J0IHsgSUFwcENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9jdXN0b21Db25maWdzL0lBcHBDb25maWdcIjtcbmV4cG9ydCB7IE1pY3JvU2VydmljZUFwcENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9NaWNyb3NlcnZpY2VBcHBDb25maWdcIjtcbmV4cG9ydCB7IFRzZ0F1dGhvcml6ZXJUeXBlIH0gZnJvbSBcIi4vY29uZmlnL3R5cGVzL1RzZ0F1dGhvcml6ZXJUeXBlXCI7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVJlc291cmNlUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJmYWNlcy9CYXNlUmVzb3VyY2VQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gXCIuLi9jb25maWcvQXBwQ29uZmlnXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZVJlc291cmNlUHJvcHMge1xuICAgIHNjb3BlOiBDb25zdHJ1Y3Q7XG4gICAgY29uZmlnOiBBcHBDb25maWdcbn0iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
export declare abstract class TsgBaseResource<T, R> {
|
|
3
|
+
protected scope: Construct;
|
|
4
|
+
protected config: R;
|
|
5
|
+
protected createdResource: T | null;
|
|
6
|
+
constructor(scope: Construct, config: R);
|
|
7
|
+
protected abstract createResource(scope: Construct): T | null;
|
|
8
|
+
protected abstract createOutput<T>(scope: Construct): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TsgBaseResource = void 0;
|
|
4
|
+
class TsgBaseResource {
|
|
5
|
+
scope;
|
|
6
|
+
config;
|
|
7
|
+
createdResource;
|
|
8
|
+
constructor(scope, config) {
|
|
9
|
+
this.scope = scope;
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.createdResource = this.createResource(scope);
|
|
12
|
+
if (this.createdResource) {
|
|
13
|
+
this.createOutput(scope);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.TsgBaseResource = TsgBaseResource;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNnQmFzZVJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9iYXNlL3RzZ0Jhc2VSZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxNQUFzQixlQUFlO0lBSVg7SUFBNEI7SUFGeEMsZUFBZSxDQUFXO0lBRXBDLFlBQXNCLEtBQWdCLEVBQVksTUFBUztRQUFyQyxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBRztRQUV2RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztDQU9KO0FBbEJELDBDQWtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRzZ0Jhc2VSZXNvdXJjZTxULCBSPiB7XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlZFJlc291cmNlOiBUIHwgbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzY29wZTogQ29uc3RydWN0LCBwcm90ZWN0ZWQgY29uZmlnOiBSKSB7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVkUmVzb3VyY2UgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHNjb3BlKTtcblxuICAgICAgICBpZiAodGhpcy5jcmVhdGVkUmVzb3VyY2UpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHNjb3BlKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVJlc291cmNlKHNjb3BlOiBDb25zdHJ1Y3QpOiBUIHwgbnVsbDtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVPdXRwdXQ8VD4oc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQ7XG5cbn0iXX0=
|
|
@@ -18,7 +18,7 @@ class CreateCertificate {
|
|
|
18
18
|
const appType = "spa-app";
|
|
19
19
|
const cert = new aws_certificatemanager_1.Certificate(scope, `${props.DNS?.ZoneNameWithoutPeriod}-${appType}-certificate`, {
|
|
20
20
|
domainName: `${props.API.DomainPrefix}.${props.DNS?.ZoneName}`,
|
|
21
|
-
subjectAlternativeNames: [`${props.API.DomainPrefix}.${props.DNS?.ZoneName}`],
|
|
21
|
+
// subjectAlternativeNames: [`${props.API.DomainPrefix}.${props.DNS?.ZoneName}`],
|
|
22
22
|
validation: aws_certificatemanager_1.CertificateValidation.fromDnsMultiZone({
|
|
23
23
|
[`${props.API.DomainPrefix}.${props.DNS?.ZoneName}`]: hostedZone,
|
|
24
24
|
}),
|
|
@@ -27,4 +27,4 @@ class CreateCertificate {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
exports.CreateCertificate = CreateCertificate;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQ2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2NlcnRpZmljYXRlL2NyZWF0ZUNlcnRpZmljYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1QywrRUFBK0g7QUFNL0gsTUFBYSxpQkFBaUI7SUFFbkIsV0FBVyxDQUFlO0lBRWpDLFlBQVksS0FBZ0IsRUFBRSxLQUF3QixFQUFFLFVBQXVCO1FBRTNFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQywyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRS9ELENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFnQixFQUFFLEtBQXdCLEVBQUUsVUFBdUI7UUFFbkYsOEdBQThHO1FBQzlHLHFFQUFxRTtRQUNyRSxrQkFBa0I7UUFDbEIsa0RBQWtEO1FBQ2xELFNBQVM7UUFFUCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFFMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUscUJBQXFCLElBQUksT0FBTyxjQUFjLEVBQUU7WUFDaEcsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUU7WUFDOUQsaUZBQWlGO1lBQ2pGLFVBQVUsRUFBRSw4Q0FBcUIsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDM0MsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRyxVQUFVO2FBQ3hFLENBQUM7U0FDSCxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQztJQUNsQixDQUFDO0NBQ0o7QUFoQ0QsOENBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ2VydGlmaWNhdGUsIENlcnRpZmljYXRlVmFsaWRhdGlvbiwgRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUsIElDZXJ0aWZpY2F0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQgeyBJSG9zdGVkWm9uZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE1pY3Jvc2VydmljZVByb3BzIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvTWljcm9zZXJ2aWNlUHJvcHNcIjtcblxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlQ2VydGlmaWNhdGUge1xuXG4gICAgcHVibGljIGNlcnRpZmljYXRlOiBJQ2VydGlmaWNhdGU7XG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcm9wczogTWljcm9zZXJ2aWNlUHJvcHMsIGhvc3RlZFpvbmU6IElIb3N0ZWRab25lKSB7XG5cbiAgICAgICAgdGhpcy5jZXJ0aWZpY2F0ZSA9IHRoaXMuZ2VuZXJhdGVDZXJ0aWZpY2F0ZShzY29wZSwgcHJvcHMsIGhvc3RlZFpvbmUpO1xuXG4gICAgICAgIHRoaXMuY2VydGlmaWNhdGUuYXBwbHlSZW1vdmFsUG9saWN5KFJlbW92YWxQb2xpY3kuREVTVFJPWSk7XG4gICAgICAgIFxuICAgIH1cblxuICAgIGdlbmVyYXRlQ2VydGlmaWNhdGUoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IE1pY3Jvc2VydmljZVByb3BzLCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZSkge1xuXG4gICAgICAgIC8vIGNvbnN0IGNlcnQgPSBuZXcgRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUoc2NvcGUsIGAke3Byb3BzLkROUy5ab25lTmFtZVdpdGhvdXRQZXJpb2R9LXNwYS1hcHAtY2VydGlmaWNhdGVgLCB7XG4gICAgICAgIC8vICAgICBkb21haW5OYW1lOiBgJHtwcm9wcy5BUEkuRG9tYWluUHJlZml4fS4ke3Byb3BzLkROUy5ab25lTmFtZX1gLFxuICAgICAgICAvLyAgICAgaG9zdGVkWm9uZSxcbiAgICAgICAgLy8gICAgIHJlZ2lvbjogcHJvcHMuR0xPQkFMUy5yZWdpb24gfHwgXCJ1cy1lYXN0LTFcIlxuICAgICAgICAvLyAgIH0pOyBcblxuICAgICAgICAgIGNvbnN0IGFwcFR5cGUgPSBcInNwYS1hcHBcIjtcblxuICAgICAgICAgIGNvbnN0IGNlcnQgPSBuZXcgQ2VydGlmaWNhdGUoc2NvcGUsIGAke3Byb3BzLkROUz8uWm9uZU5hbWVXaXRob3V0UGVyaW9kfS0ke2FwcFR5cGV9LWNlcnRpZmljYXRlYCwge1xuICAgICAgICAgICAgZG9tYWluTmFtZTogYCR7cHJvcHMuQVBJLkRvbWFpblByZWZpeH0uJHtwcm9wcy5ETlM/LlpvbmVOYW1lfWAsXG4gICAgICAgICAgICAvLyBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lczogW2Ake3Byb3BzLkFQSS5Eb21haW5QcmVmaXh9LiR7cHJvcHMuRE5TPy5ab25lTmFtZX1gXSxcbiAgICAgICAgICAgIHZhbGlkYXRpb246IENlcnRpZmljYXRlVmFsaWRhdGlvbi5mcm9tRG5zTXVsdGlab25lKHsgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIFtgJHtwcm9wcy5BUEkuRG9tYWluUHJlZml4fS4ke3Byb3BzLkROUz8uWm9uZU5hbWV9YF0gOiBob3N0ZWRab25lICwgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiBjZXJ0O1xuICAgIH1cbn0iXX0=
|
|
@@ -84,4 +84,4 @@ class CreateDynamoDb extends baseResource_1.BaseResource {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
exports.CreateDynamoDb = CreateDynamoDb;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlRHluYW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9keW5hbW9kYi9DcmVhdGVEeW5hbW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVEO0FBQ3ZELDJEQUF1RjtBQUd2Rix1REFBb0Q7QUFHcEQsTUFBYSxjQUFlLFNBQVEsMkJBQW1CO0lBcUI3QjtJQUE0QjtJQW5CbEQsTUFBTSxDQUFDLGdCQUFnQixHQUFhO1FBQ2hDLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsNkJBQTZCO1FBQzdCLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQiwyQkFBMkI7UUFDM0Isa0JBQWtCO1FBQ2xCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YscUJBQXFCO0tBQ3hCLENBQUM7SUFFRixJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBc0IsS0FBZ0IsRUFBWSxNQUFpQjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBREgsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUFZLFdBQU0sR0FBTixNQUFNLENBQVc7UUFHL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQjtRQUVqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFakMsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNsRCxHQUFHLElBQUk7Z0JBQ1AsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTzthQUV2QyxDQUFDLENBQUM7WUFJSCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUU1RCxNQUFNLFFBQVEsR0FBOEI7b0JBQ3hDLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztvQkFDeEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxZQUFZO29CQUM5QixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87b0JBQ3BCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztpQkFFckMsQ0FBQztnQkFFRixPQUFPLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUk1QixDQUFDO0lBR1MsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsSUFBSSxDQUFDLGdCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN0QyxJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3RDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUzthQUNyQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxXQUFXO1FBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUUzRCxNQUFNLElBQUksR0FBUSxFQUFFLENBQUM7WUFFckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHO2dCQUNoQixJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO2dCQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO2FBQzFCLENBQUM7WUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUM7WUFFakMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRztvQkFDWCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJO29CQUNwQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJO2lCQUN2QixDQUFBO1lBQ0wsQ0FBQztZQUNELE9BQU8sSUFBa0IsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxjQUFjLENBQUMsU0FBaUI7UUFDcEMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQ25ELENBQUM7O0FBdEdMLHdDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmbk91dHB1dCwgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgR2xvYmFsU2Vjb25kYXJ5SW5kZXhQcm9wcyxUYWJsZSwgVGFibGVQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUR5bmFtb0RiIGV4dGVuZHMgQmFzZVJlc291cmNlPFRhYmxlPiB7XG5cbiAgICBzdGF0aWMgUmVhZFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG4gICAgICAgIFwiZHluYW1vZGI6QmF0Y2hHZXRJdGVtXCIsXG4gICAgICAgIFwiZHluYW1vZGI6QmF0Y2hXcml0ZUl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpDb25kaXRpb25DaGVja0l0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpEZWxldGVJdGVtXCIsXG4gICAgICAgIFwiZHluYW1vZGI6RGVzY3JpYmVUYWJsZVwiLFxuICAgICAgICBcImR5bmFtb2RiOkdldEl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpHZXRSZWNvcmRzXCIsXG4gICAgICAgIFwiZHluYW1vZGI6R2V0U2hhcmRJdGVyYXRvclwiLFxuICAgICAgICBcImR5bmFtb2RiOlB1dEl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpRdWVyeVwiLFxuICAgICAgICBcImR5bmFtb2RiOlNjYW5cIixcbiAgICAgICAgXCJkeW5hbW9kYjpVcGRhdGVJdGVtXCIsXG4gICAgXTtcblxuICAgIGdldCBDcmVhdGVkVGFibGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVkUmVzb3VyY2VzO1xuICAgIH1cbiAgICBcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2NvcGU6IENvbnN0cnVjdCwgcHJvdGVjdGVkIGNvbmZpZzogQXBwQ29uZmlnKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBjb25maWcpO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyA9IHRoaXMuY3JlYXRlUmVzb3VyY2Uoc2NvcGUpO1xuXG4gICAgICAgIGlmICh0aGlzLmNyZWF0ZWRSZXNvdXJjZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHNjb3BlLCB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlKHNjb3BlOiBDb25zdHJ1Y3QpOiBUYWJsZVtdIHtcbiAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMuY3JlYXRlUHJvcHMoKTtcblxuICAgICAgICAgICAgY29uc3QgdGFibGVzID0gcHJvcHM/Lm1hcCgocHJvcDogYW55LCBpZHg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRiVGFibGUgPSBuZXcgVGFibGUoc2NvcGUsIGAke3Byb3AudGFibGVOYW1lfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJvcCxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuUkVTT1VSQ0VTLkRZTkFNTz8uVEFCTEVTPy5baWR4XS5pbmRleGVzLm1hcCgoZ3NpKSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3NpUHJvcHM6IEdsb2JhbFNlY29uZGFyeUluZGV4UHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleE5hbWU6IGdzaS5pbmRleE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aXRpb25LZXk6IGdzaS5wYXJ0aXRpb25LZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0S2V5OiBnc2kuc29ydEtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3Rpb25UeXBlOiBnc2kucHJvamVjdGlvblR5cGVcblxuICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgIGRiVGFibGUuYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXgoZ3NpUHJvcHMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYlRhYmxlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0YWJsZXMgPz8gW107XG4gICAgICAgXG5cbiAgICAgICBcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXQ8VD4oc2NvcGU6IENvbnN0cnVjdCwgY3JlYXRlZEFzc2V0czogVFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3JlYXRlZFJlc291cmNlcyEuZm9yRWFjaCgoeCwgaWR4KSA9PiB7XG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgZHluYW1vVGFibGUke2lkeH1gLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHgudGFibGVOYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVQcm9wcygpIHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmNvbmZpZy5SRVNPVVJDRVM/LkRZTkFNTz8uVEFCTEVTPy5tYXAoKHgpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgcHJvcDogYW55ID0ge307XG5cbiAgICAgICAgICAgIHByb3AudGFibGVOYW1lID0gdGhpcy5nZW5lcmF0ZURiTmFtZSh4LnRhYmxlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIHByb3AucGFydGl0aW9uS2V5ID0ge1xuICAgICAgICAgICAgICAgIG5hbWU6IHgucHJpbWFyeUtleS5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IHgucHJpbWFyeUtleS50eXBlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwcm9wLmJpbGxpbmdNb2RlID0geC5iaWxsaW5nTW9kZTtcblxuICAgICAgICAgICAgaWYgKHguc29ydEtleSkge1xuICAgICAgICAgICAgICAgIHByb3Auc29ydEtleSA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogeC5zb3J0S2V5Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IHguc29ydEtleS50eXBlLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwcm9wIGFzIFRhYmxlUHJvcHM7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwcm9wcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlbmVyYXRlRGJOYW1lKHRhYmxlTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7dGFibGVOYW1lfWA7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Table } from "aws-cdk-lib/aws-dynamodb";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { TsgBaseResource } from "../base/tsgBaseResource";
|
|
4
|
+
export declare class CreateDynamoSingleTableDesign extends TsgBaseResource<Table, string> {
|
|
5
|
+
protected scope: Construct;
|
|
6
|
+
protected tableName: string;
|
|
7
|
+
static ReadWriteActions: string[];
|
|
8
|
+
get CreatedTable(): Table | null;
|
|
9
|
+
constructor(scope: Construct, tableName: string);
|
|
10
|
+
protected createResource(scope: Construct): Table;
|
|
11
|
+
protected createOutput<T>(scope: Construct): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateDynamoSingleTableDesign = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_dynamodb_1 = require("aws-cdk-lib/aws-dynamodb");
|
|
6
|
+
const tsgBaseResource_1 = require("../base/tsgBaseResource");
|
|
7
|
+
class CreateDynamoSingleTableDesign extends tsgBaseResource_1.TsgBaseResource {
|
|
8
|
+
scope;
|
|
9
|
+
tableName;
|
|
10
|
+
static ReadWriteActions = [
|
|
11
|
+
"dynamodb:BatchGetItem",
|
|
12
|
+
"dynamodb:BatchWriteItem",
|
|
13
|
+
"dynamodb:ConditionCheckItem",
|
|
14
|
+
"dynamodb:DeleteItem",
|
|
15
|
+
"dynamodb:DescribeTable",
|
|
16
|
+
"dynamodb:GetItem",
|
|
17
|
+
"dynamodb:GetRecords",
|
|
18
|
+
"dynamodb:GetShardIterator",
|
|
19
|
+
"dynamodb:PutItem",
|
|
20
|
+
"dynamodb:Query",
|
|
21
|
+
"dynamodb:Scan",
|
|
22
|
+
"dynamodb:UpdateItem",
|
|
23
|
+
];
|
|
24
|
+
get CreatedTable() {
|
|
25
|
+
return this.createdResource;
|
|
26
|
+
}
|
|
27
|
+
constructor(scope, tableName) {
|
|
28
|
+
super(scope, tableName);
|
|
29
|
+
this.scope = scope;
|
|
30
|
+
this.tableName = tableName;
|
|
31
|
+
}
|
|
32
|
+
createResource(scope) {
|
|
33
|
+
const dbTable = new aws_dynamodb_1.Table(scope, `${this.tableName}`, {
|
|
34
|
+
tableName: this.tableName,
|
|
35
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
36
|
+
partitionKey: {
|
|
37
|
+
name: 'pk',
|
|
38
|
+
type: aws_dynamodb_1.AttributeType.STRING,
|
|
39
|
+
},
|
|
40
|
+
sortKey: {
|
|
41
|
+
name: 'sk',
|
|
42
|
+
type: aws_dynamodb_1.AttributeType.STRING,
|
|
43
|
+
},
|
|
44
|
+
billingMode: aws_dynamodb_1.BillingMode.PAY_PER_REQUEST,
|
|
45
|
+
});
|
|
46
|
+
const gsiIndexes = [
|
|
47
|
+
{
|
|
48
|
+
indexName: 'gsi1Index',
|
|
49
|
+
partitionKey: {
|
|
50
|
+
name: 'gsi1pk',
|
|
51
|
+
type: aws_dynamodb_1.AttributeType.STRING
|
|
52
|
+
},
|
|
53
|
+
sortKey: {
|
|
54
|
+
name: 'gsi1sk',
|
|
55
|
+
type: aws_dynamodb_1.AttributeType.STRING
|
|
56
|
+
},
|
|
57
|
+
projectionType: aws_dynamodb_1.ProjectionType.ALL
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
indexName: 'gsi2Index',
|
|
61
|
+
partitionKey: {
|
|
62
|
+
name: 'gsi2pk',
|
|
63
|
+
type: aws_dynamodb_1.AttributeType.STRING
|
|
64
|
+
},
|
|
65
|
+
sortKey: {
|
|
66
|
+
name: 'gsi2sk',
|
|
67
|
+
type: aws_dynamodb_1.AttributeType.STRING
|
|
68
|
+
},
|
|
69
|
+
projectionType: aws_dynamodb_1.ProjectionType.ALL
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
indexName: 'gsi3Index',
|
|
73
|
+
partitionKey: {
|
|
74
|
+
name: 'gsi3pk',
|
|
75
|
+
type: aws_dynamodb_1.AttributeType.STRING
|
|
76
|
+
},
|
|
77
|
+
sortKey: {
|
|
78
|
+
name: 'gsi3sk',
|
|
79
|
+
type: aws_dynamodb_1.AttributeType.STRING
|
|
80
|
+
},
|
|
81
|
+
projectionType: aws_dynamodb_1.ProjectionType.ALL
|
|
82
|
+
},
|
|
83
|
+
];
|
|
84
|
+
gsiIndexes.map((gsi) => {
|
|
85
|
+
const gsiProps = {
|
|
86
|
+
indexName: gsi.indexName,
|
|
87
|
+
partitionKey: gsi.partitionKey,
|
|
88
|
+
sortKey: gsi.sortKey,
|
|
89
|
+
projectionType: gsi.projectionType
|
|
90
|
+
};
|
|
91
|
+
dbTable.addGlobalSecondaryIndex(gsiProps);
|
|
92
|
+
});
|
|
93
|
+
return dbTable;
|
|
94
|
+
}
|
|
95
|
+
createOutput(scope) {
|
|
96
|
+
new aws_cdk_lib_1.CfnOutput(scope, `dynamoTable-${this.CreatedTable?.tableName}`, {
|
|
97
|
+
value: `Table Name: ${this.createdResource?.tableName}\t Table Arn: ${this.createdResource?.tableArn}`
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.CreateDynamoSingleTableDesign = CreateDynamoSingleTableDesign;
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlRHluYW1vU2luZ2xlVGFibGVEZXNpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2R5bmFtb2RiL0NyZWF0ZUR5bmFtb1NpbmdsZVRhYmxlRGVzaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1RDtBQUN2RCwyREFBb0k7QUFFcEksNkRBQTBEO0FBRzFELE1BQWEsNkJBQThCLFNBQVEsaUNBQThCO0lBcUJ2RDtJQUE0QjtJQW5CbEQsTUFBTSxDQUFDLGdCQUFnQixHQUFhO1FBQ2hDLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsNkJBQTZCO1FBQzdCLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQiwyQkFBMkI7UUFDM0Isa0JBQWtCO1FBQ2xCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YscUJBQXFCO0tBQ3hCLENBQUM7SUFFRixJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQXNCLEtBQWdCLEVBQVksU0FBaUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUROLFVBQUssR0FBTCxLQUFLLENBQVc7UUFBWSxjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRW5FLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBZ0I7UUFFckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBSyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNsRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztZQUVwQyxZQUFZLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsSUFBSSxFQUFFLDRCQUFhLENBQUMsTUFBTTthQUM3QjtZQUNELE9BQU8sRUFBRTtnQkFDTCxJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsNEJBQWEsQ0FBQyxNQUFNO2FBQzdCO1lBQ0QsV0FBVyxFQUFFLDBCQUFXLENBQUMsZUFBZTtTQUMzQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRztZQUNmO2dCQUNJLFNBQVMsRUFBRSxXQUFXO2dCQUN0QixZQUFZLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLDRCQUFhLENBQUMsTUFBTTtpQkFDN0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRSw0QkFBYSxDQUFDLE1BQU07aUJBQzdCO2dCQUNELGNBQWMsRUFBRSw2QkFBYyxDQUFDLEdBQUc7YUFDckM7WUFDRDtnQkFDSSxTQUFTLEVBQUUsV0FBVztnQkFDdEIsWUFBWSxFQUFFO29CQUNWLElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRSw0QkFBYSxDQUFDLE1BQU07aUJBQzdCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsNEJBQWEsQ0FBQyxNQUFNO2lCQUM3QjtnQkFDRCxjQUFjLEVBQUUsNkJBQWMsQ0FBQyxHQUFHO2FBQ3JDO1lBQ0Q7Z0JBQ0ksU0FBUyxFQUFFLFdBQVc7Z0JBQ3RCLFlBQVksRUFBRTtvQkFDVixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsNEJBQWEsQ0FBQyxNQUFNO2lCQUM3QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLDRCQUFhLENBQUMsTUFBTTtpQkFDN0I7Z0JBQ0QsY0FBYyxFQUFFLDZCQUFjLENBQUMsR0FBRzthQUNyQztTQUNKLENBQUM7UUFFRixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFFbkIsTUFBTSxRQUFRLEdBQThCO2dCQUN4QyxTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7Z0JBQ3hCLFlBQVksRUFBRSxHQUFHLENBQUMsWUFBWTtnQkFDOUIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2dCQUNwQixjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWM7YUFFckMsQ0FBQztZQUVGLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFHUyxZQUFZLENBQUksS0FBZ0I7UUFFdEMsSUFBSSx1QkFBUyxDQUFDLEtBQUssRUFBRSxlQUFlLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDaEUsS0FBSyxFQUFFLGVBQWUsSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLGlCQUFpQixJQUFJLENBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRTtTQUN6RyxDQUFDLENBQUM7SUFFUCxDQUFDOztBQXhHTCxzRUF5R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZVR5cGUsIEJpbGxpbmdNb2RlLCBHbG9iYWxTZWNvbmRhcnlJbmRleFByb3BzLCBQcm9qZWN0aW9uVHlwZSwgVGFibGUsIFRhYmxlUHJvcHMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVHNnQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvdHNnQmFzZVJlc291cmNlXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUR5bmFtb1NpbmdsZVRhYmxlRGVzaWduIGV4dGVuZHMgVHNnQmFzZVJlc291cmNlPFRhYmxlLCBzdHJpbmc+IHtcblxuICAgIHN0YXRpYyBSZWFkV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcbiAgICAgICAgXCJkeW5hbW9kYjpCYXRjaEdldEl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpCYXRjaFdyaXRlSXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOkNvbmRpdGlvbkNoZWNrSXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOkRlbGV0ZUl0ZW1cIixcbiAgICAgICAgXCJkeW5hbW9kYjpEZXNjcmliZVRhYmxlXCIsXG4gICAgICAgIFwiZHluYW1vZGI6R2V0SXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOkdldFJlY29yZHNcIixcbiAgICAgICAgXCJkeW5hbW9kYjpHZXRTaGFyZEl0ZXJhdG9yXCIsXG4gICAgICAgIFwiZHluYW1vZGI6UHV0SXRlbVwiLFxuICAgICAgICBcImR5bmFtb2RiOlF1ZXJ5XCIsXG4gICAgICAgIFwiZHluYW1vZGI6U2NhblwiLFxuICAgICAgICBcImR5bmFtb2RiOlVwZGF0ZUl0ZW1cIixcbiAgICBdO1xuXG4gICAgZ2V0IENyZWF0ZWRUYWJsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlZFJlc291cmNlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzY29wZTogQ29uc3RydWN0LCBwcm90ZWN0ZWQgdGFibGVOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIHRhYmxlTmFtZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlKHNjb3BlOiBDb25zdHJ1Y3QpOiBUYWJsZSB7XG5cbiAgICAgICAgY29uc3QgZGJUYWJsZSA9IG5ldyBUYWJsZShzY29wZSwgYCR7dGhpcy50YWJsZU5hbWV9YCwge1xuICAgICAgICAgICAgdGFibGVOYW1lOiB0aGlzLnRhYmxlTmFtZSxcbiAgICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcblxuICAgICAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3BrJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzb3J0S2V5OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3NrJyxcbiAgICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBiaWxsaW5nTW9kZTogQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBnc2lJbmRleGVzID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGluZGV4TmFtZTogJ2dzaTFJbmRleCcsXG4gICAgICAgICAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdnc2kxcGsnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklOR1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc29ydEtleToge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZ3NpMXNrJyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHByb2plY3Rpb25UeXBlOiBQcm9qZWN0aW9uVHlwZS5BTExcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaW5kZXhOYW1lOiAnZ3NpMkluZGV4JyxcbiAgICAgICAgICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2dzaTJwaycsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEF0dHJpYnV0ZVR5cGUuU1RSSU5HXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzb3J0S2V5OiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6ICdnc2kyc2snLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklOR1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcHJvamVjdGlvblR5cGU6IFByb2plY3Rpb25UeXBlLkFMTFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpbmRleE5hbWU6ICdnc2kzSW5kZXgnLFxuICAgICAgICAgICAgICAgIHBhcnRpdGlvbktleToge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZ3NpM3BrJyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNvcnRLZXk6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2dzaTNzaycsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IEF0dHJpYnV0ZVR5cGUuU1RSSU5HXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwcm9qZWN0aW9uVHlwZTogUHJvamVjdGlvblR5cGUuQUxMXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuXG4gICAgICAgIGdzaUluZGV4ZXMubWFwKChnc2kpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgZ3NpUHJvcHM6IEdsb2JhbFNlY29uZGFyeUluZGV4UHJvcHMgPSB7XG4gICAgICAgICAgICAgICAgaW5kZXhOYW1lOiBnc2kuaW5kZXhOYW1lLFxuICAgICAgICAgICAgICAgIHBhcnRpdGlvbktleTogZ3NpLnBhcnRpdGlvbktleSxcbiAgICAgICAgICAgICAgICBzb3J0S2V5OiBnc2kuc29ydEtleSxcbiAgICAgICAgICAgICAgICBwcm9qZWN0aW9uVHlwZTogZ3NpLnByb2plY3Rpb25UeXBlXG5cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGRiVGFibGUuYWRkR2xvYmFsU2Vjb25kYXJ5SW5kZXgoZ3NpUHJvcHMpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZGJUYWJsZTtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXQ8VD4oc2NvcGU6IENvbnN0cnVjdCk6IHZvaWQge1xuXG4gICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGBkeW5hbW9UYWJsZS0ke3RoaXMuQ3JlYXRlZFRhYmxlPy50YWJsZU5hbWV9YCwge1xuICAgICAgICAgICAgdmFsdWU6IGBUYWJsZSBOYW1lOiAke3RoaXMuY3JlYXRlZFJlc291cmNlPy50YWJsZU5hbWV9XFx0IFRhYmxlIEFybjogJHt0aGlzLmNyZWF0ZWRSZXNvdXJjZT8udGFibGVBcm59YFxuICAgICAgICB9KTtcblxuICAgIH1cbn0iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as ecr from "aws-cdk-lib/aws-ecr";
|
|
2
|
+
import { BaseResource } from "../base/baseResource";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
import { BaseResourceProps } from "../../interfaces/BaseResourceProps";
|
|
5
|
+
export declare class TsgECR extends BaseResource<ecr.Repository> {
|
|
6
|
+
constructor(props: BaseResourceProps);
|
|
7
|
+
protected createResource(scope: Construct): ecr.Repository[] | null;
|
|
8
|
+
protected createOutput<Repository>(scope: Construct, createdAssets: Repository[]): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TsgECR = void 0;
|
|
4
|
+
const ecr = require("aws-cdk-lib/aws-ecr");
|
|
5
|
+
const baseResource_1 = require("../base/baseResource");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
class TsgECR extends baseResource_1.BaseResource {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
super(props.scope, props.config);
|
|
10
|
+
const repos = this.createResource(props.scope);
|
|
11
|
+
this.createdResources = [...repos];
|
|
12
|
+
this.createOutput(props.scope, this.createdResources);
|
|
13
|
+
}
|
|
14
|
+
createResource(scope) {
|
|
15
|
+
const ecrRepo = new ecr.Repository(scope, `${this.config.AppName}-repository`, {
|
|
16
|
+
repositoryName: `${this.config.AppName}-repository`,
|
|
17
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
18
|
+
autoDeleteImages: true,
|
|
19
|
+
});
|
|
20
|
+
const rule = {
|
|
21
|
+
description: 'Image Rentention',
|
|
22
|
+
maxImageCount: 20
|
|
23
|
+
};
|
|
24
|
+
ecrRepo.addLifecycleRule(rule);
|
|
25
|
+
if (ecrRepo instanceof ecr.Repository) {
|
|
26
|
+
return [ecrRepo];
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
createOutput(scope, createdAssets) {
|
|
31
|
+
createdAssets.forEach((x, idx) => {
|
|
32
|
+
new aws_cdk_lib_1.CfnOutput(scope, `respository-${idx}`, {
|
|
33
|
+
value: `Name: ${x.repositoryName}\n
|
|
34
|
+
Url: ${x.repositoryUri}`
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.TsgECR = TsgECR;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlRWNyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9lY3IvQ3JlYXRlRWNyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUEyQztBQUMzQyx1REFBb0Q7QUFFcEQsNkNBQXVEO0FBR3ZELE1BQWEsTUFBTyxTQUFRLDJCQUE0QjtJQUVwRCxZQUFZLEtBQXdCO1FBRWhDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLEtBQVcsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWdCO1FBRXJDLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQ3BDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGFBQWEsRUFDbkM7WUFDSSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sYUFBYTtZQUNuRCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGdCQUFnQixFQUFFLElBQUk7U0FDekIsQ0FBQyxDQUFDO1FBRVAsTUFBTSxJQUFJLEdBQXNCO1lBQzVCLFdBQVcsRUFBRSxrQkFBa0I7WUFDL0IsYUFBYSxFQUFFLEVBQUU7U0FDcEIsQ0FBQztRQUVGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixJQUFJLE9BQU8sWUFBWSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRVMsWUFBWSxDQUFhLEtBQWdCLEVBQUUsYUFBMkI7UUFFNUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUU3QixJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLGVBQWUsR0FBRyxFQUFFLEVBQUU7Z0JBQ3ZDLEtBQUssRUFBRSxTQUFVLENBQW9CLENBQUMsY0FBYzt1QkFDNUMsQ0FBb0IsQ0FBQyxhQUFhLEVBQUU7YUFDL0MsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBS0o7QUFuREQsd0JBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZWNyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNyXCI7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tIFwiLi4vYmFzZS9iYXNlUmVzb3VyY2VcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBDZm5PdXRwdXQsIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEJhc2VSZXNvdXJjZVByb3BzIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvQmFzZVJlc291cmNlUHJvcHNcIjtcblxuZXhwb3J0IGNsYXNzIFRzZ0VDUiBleHRlbmRzIEJhc2VSZXNvdXJjZTxlY3IuUmVwb3NpdG9yeT4ge1xuXG4gICAgY29uc3RydWN0b3IocHJvcHM6IEJhc2VSZXNvdXJjZVByb3BzKSB7XG5cbiAgICAgICAgc3VwZXIocHJvcHMuc2NvcGUsIHByb3BzLmNvbmZpZyk7XG5cbiAgICAgICAgY29uc3QgcmVwb3MgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHByb3BzLnNjb3BlKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMgPSBbLi4ucmVwb3MgYXMgW11dO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHByb3BzLnNjb3BlLCB0aGlzLmNyZWF0ZWRSZXNvdXJjZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogZWNyLlJlcG9zaXRvcnlbXSB8IG51bGwge1xuXG4gICAgICAgIGNvbnN0IGVjclJlcG8gPSBuZXcgZWNyLlJlcG9zaXRvcnkoc2NvcGUsXG4gICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5BcHBOYW1lfS1yZXBvc2l0b3J5YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXBvc2l0b3J5TmFtZTogYCR7dGhpcy5jb25maWcuQXBwTmFtZX0tcmVwb3NpdG9yeWAsXG4gICAgICAgICAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICAgICAgICAgIGF1dG9EZWxldGVJbWFnZXM6IHRydWUsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBydWxlOiBlY3IuTGlmZWN5Y2xlUnVsZSA9IHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnSW1hZ2UgUmVudGVudGlvbicsXG4gICAgICAgICAgICBtYXhJbWFnZUNvdW50OiAyMFxuICAgICAgICB9O1xuXG4gICAgICAgIGVjclJlcG8uYWRkTGlmZWN5Y2xlUnVsZShydWxlKTtcblxuICAgICAgICBpZiAoZWNyUmVwbyBpbnN0YW5jZW9mIGVjci5SZXBvc2l0b3J5KSB7XG4gICAgICAgICAgICByZXR1cm4gW2VjclJlcG9dO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIFxuICAgIHByb3RlY3RlZCBjcmVhdGVPdXRwdXQ8UmVwb3NpdG9yeT4oc2NvcGU6IENvbnN0cnVjdCwgY3JlYXRlZEFzc2V0czogUmVwb3NpdG9yeVtdKTogdm9pZCB7XG4gICAgIFxuICAgICAgICBjcmVhdGVkQXNzZXRzLmZvckVhY2goKHgsIGlkeCkgPT4ge1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgcmVzcG9zaXRvcnktJHtpZHh9YCwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBgTmFtZTogJHsoeCBhcyBlY3IuUmVwb3NpdG9yeSkucmVwb3NpdG9yeU5hbWV9XFxuXG4gICAgICAgICAgICAgICAgVXJsOiAkeyh4IGFzIGVjci5SZXBvc2l0b3J5KS5yZXBvc2l0b3J5VXJpfWBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBcblxuXG59Il19
|