@sylvesterllc/aws-constructs 1.0.0
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/.github/workflows/publish.yml +36 -0
- package/dist/config/AppConfig.d.ts +24 -0
- package/dist/config/AppConfig.js +62 -0
- package/dist/config/Constants.d.ts +26 -0
- package/dist/config/Constants.js +30 -0
- package/dist/config/Environments.d.ts +2 -0
- package/dist/config/Environments.js +3 -0
- package/dist/config/MicroserviceAppConfig.d.ts +5 -0
- package/dist/config/MicroserviceAppConfig.js +11 -0
- package/dist/config/bishopConfig.d.ts +2 -0
- package/dist/config/bishopConfig.js +81 -0
- package/dist/config/customConfigs/ApiAppConfig.d.ts +5 -0
- package/dist/config/customConfigs/ApiAppConfig.js +4 -0
- package/dist/config/customConfigs/GlobalAppConfig.d.ts +8 -0
- package/dist/config/customConfigs/GlobalAppConfig.js +3 -0
- package/dist/config/customConfigs/IAppConfig.d.ts +10 -0
- package/dist/config/customConfigs/IAppConfig.js +3 -0
- package/dist/config/customConfigs/ResourceAppConfig.d.ts +8 -0
- package/dist/config/customConfigs/ResourceAppConfig.js +3 -0
- package/dist/config/microServiceConfig.d.ts +2 -0
- package/dist/config/microServiceConfig.js +82 -0
- package/dist/config/types/TsgCdkConfigType.d.ts +3 -0
- package/dist/config/types/TsgCdkConfigType.js +3 -0
- package/dist/config/types/TsgCognitoConfig.d.ts +5 -0
- package/dist/config/types/TsgCognitoConfig.js +3 -0
- package/dist/config/types/TsgDnsConfig.d.ts +9 -0
- package/dist/config/types/TsgDnsConfig.js +3 -0
- package/dist/config/types/TsgDynamoDbProp.d.ts +6 -0
- package/dist/config/types/TsgDynamoDbProp.js +3 -0
- package/dist/config/types/TsgDynamoIndex.d.ts +13 -0
- package/dist/config/types/TsgDynamoIndex.js +3 -0
- package/dist/config/types/TsgDynamoProp.d.ts +15 -0
- package/dist/config/types/TsgDynamoProp.js +3 -0
- package/dist/config/types/TsgDynamoTable.d.ts +4 -0
- package/dist/config/types/TsgDynamoTable.js +3 -0
- package/dist/config/types/TsgDynamoTableRef.d.ts +4 -0
- package/dist/config/types/TsgDynamoTableRef.js +3 -0
- package/dist/config/types/TsgLambda.d.ts +4 -0
- package/dist/config/types/TsgLambda.js +3 -0
- package/dist/config/types/TsgLambdaLayerProp.d.ts +5 -0
- package/dist/config/types/TsgLambdaLayerProp.js +3 -0
- package/dist/config/types/TsgLambdaMap.d.ts +3 -0
- package/dist/config/types/TsgLambdaMap.js +3 -0
- package/dist/config/types/TsgLambdaName.d.ts +1 -0
- package/dist/config/types/TsgLambdaName.js +3 -0
- package/dist/config/types/TsgLambdaNode.d.ts +3 -0
- package/dist/config/types/TsgLambdaNode.js +3 -0
- package/dist/config/types/TsgLambdaProp.d.ts +16 -0
- package/dist/config/types/TsgLambdaProp.js +3 -0
- package/dist/config/types/TsgLambdaProps.d.ts +16 -0
- package/dist/config/types/TsgLambdaProps.js +3 -0
- package/dist/config/types/TsgLambdaRoutable.d.ts +6 -0
- package/dist/config/types/TsgLambdaRoutable.js +3 -0
- package/dist/config/types/index.d.ts +8 -0
- package/dist/config/types/index.js +25 -0
- package/dist/constructs/MicroService.d.ts +12 -0
- package/dist/constructs/MicroService.js +47 -0
- package/dist/constructs/index.d.ts +1 -0
- package/dist/constructs/index.js +6 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8 -0
- package/dist/interfaces/CreateLambdaFunctionInput.d.ts +10 -0
- package/dist/interfaces/CreateLambdaFunctionInput.js +3 -0
- package/dist/interfaces/MicroserviceProps.d.ts +10 -0
- package/dist/interfaces/MicroserviceProps.js +3 -0
- package/dist/resources/base/baseResource.d.ts +10 -0
- package/dist/resources/base/baseResource.js +11 -0
- package/dist/resources/certificate/createCertificate.d.ts +9 -0
- package/dist/resources/certificate/createCertificate.js +29 -0
- package/dist/resources/cognito/createCognito.d.ts +7 -0
- package/dist/resources/cognito/createCognito.js +35 -0
- package/dist/resources/cognito/createCognitoProps.d.ts +2 -0
- package/dist/resources/cognito/createCognitoProps.js +47 -0
- package/dist/resources/dynamodb/CreateDynamo.d.ts +15 -0
- package/dist/resources/dynamodb/CreateDynamo.js +87 -0
- package/dist/resources/gateway/createApi.d.ts +19 -0
- package/dist/resources/gateway/createApi.js +104 -0
- package/dist/resources/gateway/createMicroServiceBundle.d.ts +25 -0
- package/dist/resources/gateway/createMicroServiceBundle.js +126 -0
- package/dist/resources/helpers/createAuthorizer.d.ts +15 -0
- package/dist/resources/helpers/createAuthorizer.js +80 -0
- package/dist/resources/helpers/createCommonLayer.d.ts +3 -0
- package/dist/resources/helpers/createCommonLayer.js +15 -0
- package/dist/resources/helpers/createRoutes.d.ts +8 -0
- package/dist/resources/helpers/createRoutes.js +30 -0
- package/dist/resources/lambda/createLambda.d.ts +20 -0
- package/dist/resources/lambda/createLambda.js +135 -0
- package/dist/resources/lambda-layer/createLambdaLayer.d.ts +5 -0
- package/dist/resources/lambda-layer/createLambdaLayer.js +31 -0
- package/dist/resources/layers/common/src/nodejs/api-response/index.d.ts +1 -0
- package/dist/resources/layers/common/src/nodejs/api-response/index.js +18 -0
- package/dist/resources/layers/common/src/nodejs/api-response/responses.d.ts +24 -0
- package/dist/resources/layers/common/src/nodejs/api-response/responses.js +43 -0
- package/dist/resources/layers/common/src/nodejs/index.d.ts +2 -0
- package/dist/resources/layers/common/src/nodejs/index.js +19 -0
- package/dist/resources/layers/common/src/nodejs/logger/IContext.d.ts +5 -0
- package/dist/resources/layers/common/src/nodejs/logger/IContext.js +3 -0
- package/dist/resources/layers/common/src/nodejs/logger/index.d.ts +2 -0
- package/dist/resources/layers/common/src/nodejs/logger/index.js +19 -0
- package/dist/resources/layers/common/src/nodejs/logger/logger.d.ts +2 -0
- package/dist/resources/layers/common/src/nodejs/logger/logger.js +12 -0
- package/dist/resources/resources/iam/policyDocuments/cognitoPolicy.d.ts +4 -0
- package/dist/resources/resources/iam/policyDocuments/cognitoPolicy.js +52 -0
- package/dist/resources/resources/iam/roles/createRole.d.ts +4 -0
- package/dist/resources/resources/iam/roles/createRole.js +22 -0
- package/dist/resources/route53/CreateZone.d.ts +0 -0
- package/dist/resources/route53/CreateZone.js +47 -0
- package/dist/resources/route53/create-zones.d.ts +0 -0
- package/dist/resources/route53/create-zones.js +30 -0
- package/dist/resources/securityManager/index.d.ts +4 -0
- package/dist/resources/securityManager/index.js +18 -0
- package/docs/lambda-config.md +1 -0
- package/package.json +48 -0
- package/readme.md +147 -0
- package/src/config/AppConfig.ts +93 -0
- package/src/config/Constants.ts +27 -0
- package/src/config/Environments.ts +2 -0
- package/src/config/MicroserviceAppConfig.ts +9 -0
- package/src/config/bishopConfig.ts +83 -0
- package/src/config/customConfigs/ApiAppConfig.ts +6 -0
- package/src/config/customConfigs/GlobalAppConfig.ts +11 -0
- package/src/config/customConfigs/IAppConfig.ts +13 -0
- package/src/config/customConfigs/ResourceAppConfig.ts +12 -0
- package/src/config/microServiceConfig.ts +85 -0
- package/src/config/types/TsgCdkConfigType.ts +3 -0
- package/src/config/types/TsgCognitoConfig.ts +6 -0
- package/src/config/types/TsgDnsConfig.ts +9 -0
- package/src/config/types/TsgDynamoDbProp.ts +7 -0
- package/src/config/types/TsgDynamoIndex.ts +16 -0
- package/src/config/types/TsgDynamoProp.ts +17 -0
- package/src/config/types/TsgDynamoTable.ts +5 -0
- package/src/config/types/TsgDynamoTableRef.ts +4 -0
- package/src/config/types/TsgLambda.ts +6 -0
- package/src/config/types/TsgLambdaLayerProp.ts +5 -0
- package/src/config/types/TsgLambdaMap.ts +4 -0
- package/src/config/types/TsgLambdaName.ts +4 -0
- package/src/config/types/TsgLambdaNode.ts +4 -0
- package/src/config/types/TsgLambdaProp.ts +16 -0
- package/src/config/types/TsgLambdaProps.ts +19 -0
- package/src/config/types/TsgLambdaRoutable.ts +6 -0
- package/src/config/types/index.ts +9 -0
- package/src/constructs/MicroService.ts +68 -0
- package/src/constructs/index.ts +1 -0
- package/src/index.ts +4 -0
- package/src/interfaces/CreateLambdaFunctionInput.ts +11 -0
- package/src/interfaces/MicroserviceProps.ts +11 -0
- package/src/resources/.gitkeep +0 -0
- package/src/resources/base/baseResource.ts +15 -0
- package/src/resources/certificate/createCertificate.ts +40 -0
- package/src/resources/cicd/.gitkeep +0 -0
- package/src/resources/cognito/.gitkeep +0 -0
- package/src/resources/cognito/createCognito.ts +47 -0
- package/src/resources/cognito/createCognitoProps.ts +46 -0
- package/src/resources/dynamodb/CreateDynamo.ts +111 -0
- package/src/resources/gateway/createApi.ts +138 -0
- package/src/resources/gateway/createMicroServiceBundle.ts +183 -0
- package/src/resources/helpers/createAuthorizer.ts +106 -0
- package/src/resources/helpers/createCommonLayer.ts +18 -0
- package/src/resources/helpers/createRoutes.ts +43 -0
- package/src/resources/lambda/createLambda.ts +184 -0
- package/src/resources/lambda-layer/createLambdaLayer.ts +40 -0
- package/src/resources/layers/common/package.json +22 -0
- package/src/resources/layers/common/src/nodejs/api-response/index.ts +1 -0
- package/src/resources/layers/common/src/nodejs/api-response/responses.ts +41 -0
- package/src/resources/layers/common/src/nodejs/index.ts +3 -0
- package/src/resources/layers/common/src/nodejs/logger/IContext.ts +7 -0
- package/src/resources/layers/common/src/nodejs/logger/index.ts +2 -0
- package/src/resources/layers/common/src/nodejs/logger/logger.ts +11 -0
- package/src/resources/layers/common/tsconfig.json +7 -0
- package/src/resources/resources/iam/policyDocuments/cognitoPolicy.ts +55 -0
- package/src/resources/resources/iam/roles/createRole.ts +30 -0
- package/src/resources/route53/CreateZone.ts +62 -0
- package/src/resources/route53/create-zones.ts +41 -0
- package/src/resources/securityManager/index.ts +24 -0
- package/tsconfig.json +40 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateLambda = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
6
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
7
|
+
const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs");
|
|
8
|
+
const path = require("path");
|
|
9
|
+
const baseResource_1 = require("../base/baseResource");
|
|
10
|
+
class CreateLambda extends baseResource_1.BaseResource {
|
|
11
|
+
constructor(props, config) {
|
|
12
|
+
super(props.scope, config);
|
|
13
|
+
this.props = props;
|
|
14
|
+
this.Lambdas = [];
|
|
15
|
+
const resources = this.createResource(props.scope);
|
|
16
|
+
this.Lambdas = [...resources];
|
|
17
|
+
this.createAlarmsForLambdas(this.Lambdas);
|
|
18
|
+
this.createOutput(props.scope, resources);
|
|
19
|
+
}
|
|
20
|
+
createResource(scope) {
|
|
21
|
+
const result = this.createLambdas(this.props);
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
createOutput(scope, createdAssets) {
|
|
25
|
+
createdAssets.forEach((x, idx) => {
|
|
26
|
+
new aws_cdk_lib_1.CfnOutput(scope, `lambda-${idx}`, {
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
value: x.functionName
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
createLambdas(props) {
|
|
33
|
+
const createdLambdas = this.createLambdaFunctions(this.scope, props.role, props.layers);
|
|
34
|
+
return createdLambdas;
|
|
35
|
+
}
|
|
36
|
+
createLambdaFunctions(scope, role, layers) {
|
|
37
|
+
//console.log("ENTER createLambdaFunctions");
|
|
38
|
+
const createdLambdas = this.props.prop.RESOURCES.LAMBDA.map((config) => {
|
|
39
|
+
//console.log("ENTER createLambdaFunctions.map for " + config.name);
|
|
40
|
+
let lambdaProps = this.createLambdaProps(config, role, layers);
|
|
41
|
+
const lambdaId = CreateLambda.getIdForLambda(config);
|
|
42
|
+
let fctn = new aws_lambda_nodejs_1.NodejsFunction(scope, lambdaId, lambdaProps);
|
|
43
|
+
// If we have managed policies, we add them.
|
|
44
|
+
if (config.managedPolicies && config.managedPolicies?.length > 0) {
|
|
45
|
+
this.assignManagedPolicies(fctn, config.managedPolicies);
|
|
46
|
+
}
|
|
47
|
+
return fctn;
|
|
48
|
+
});
|
|
49
|
+
return createdLambdas || [];
|
|
50
|
+
}
|
|
51
|
+
createLambdaProps(prop, role, layers, props) {
|
|
52
|
+
return this.createLambdaFunctionProps({
|
|
53
|
+
prop,
|
|
54
|
+
role,
|
|
55
|
+
layers,
|
|
56
|
+
props
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
createLambdaFunctionProps(props) {
|
|
60
|
+
const { prop, role, layers } = props;
|
|
61
|
+
const lambdaProp = {
|
|
62
|
+
entry: path.join(prop.codePath),
|
|
63
|
+
functionName: `${this.props.appConfig.AppPrefix}-${prop.name}`,
|
|
64
|
+
handler: prop.handler,
|
|
65
|
+
runtime: prop.runtime || this.config.GLOBALS.stackRuntime,
|
|
66
|
+
timeout: prop.duration || aws_cdk_lib_1.Duration.minutes(2),
|
|
67
|
+
memorySize: prop.memory || 512,
|
|
68
|
+
environment: {
|
|
69
|
+
"VERBOSE_LOGGING": "true",
|
|
70
|
+
...prop.environment
|
|
71
|
+
},
|
|
72
|
+
bundling: {
|
|
73
|
+
minify: false,
|
|
74
|
+
target: 'es2020',
|
|
75
|
+
sourceMap: true,
|
|
76
|
+
sourceMapMode: aws_lambda_nodejs_1.SourceMapMode.INLINE,
|
|
77
|
+
environment: prop.environment || prop.environment,
|
|
78
|
+
},
|
|
79
|
+
role,
|
|
80
|
+
layers
|
|
81
|
+
};
|
|
82
|
+
return lambdaProp;
|
|
83
|
+
}
|
|
84
|
+
;
|
|
85
|
+
assignManagedPolicies(lambda, managedPolicyNames) {
|
|
86
|
+
managedPolicyNames.forEach((managedPolicyName) => {
|
|
87
|
+
let policy = aws_iam_1.ManagedPolicy.fromAwsManagedPolicyName(managedPolicyName);
|
|
88
|
+
lambda.role?.addManagedPolicy(policy);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
createAlarmsForLambdas(lambdas) {
|
|
92
|
+
lambdas.forEach((lambda, idx) => {
|
|
93
|
+
const errorMetric = lambda.metricErrors({
|
|
94
|
+
period: aws_cdk_lib_1.Duration.minutes(3),
|
|
95
|
+
});
|
|
96
|
+
const durationMetric = lambda.metricDuration({
|
|
97
|
+
period: aws_cdk_lib_1.Duration.minutes(3),
|
|
98
|
+
});
|
|
99
|
+
const invocationMetric = lambda.metricInvocations({
|
|
100
|
+
period: aws_cdk_lib_1.Duration.minutes(3),
|
|
101
|
+
});
|
|
102
|
+
new aws_cloudwatch_1.Alarm(this.props.scope, `${this.config.AppPrefix}-${idx}-error-alarm`, {
|
|
103
|
+
metric: errorMetric,
|
|
104
|
+
threshold: 5,
|
|
105
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
|
|
106
|
+
evaluationPeriods: 3,
|
|
107
|
+
alarmDescription: `${this.config.AppPrefix}-${idx} errors over 3 min period`,
|
|
108
|
+
alarmName: `${this.config.AppPrefix}-${idx}-error-alarm`
|
|
109
|
+
});
|
|
110
|
+
new aws_cloudwatch_1.Alarm(this.props.scope, `${this.config.AppPrefix}-${idx}-duration-alarm`, {
|
|
111
|
+
metric: durationMetric,
|
|
112
|
+
threshold: 1,
|
|
113
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
|
|
114
|
+
evaluationPeriods: 3,
|
|
115
|
+
alarmDescription: `${this.config.AppPrefix}-${idx} duration errors over 3 min period`,
|
|
116
|
+
alarmName: `${this.config.AppPrefix}-${idx}-duration-alarm`
|
|
117
|
+
});
|
|
118
|
+
const invocationAlarm = new aws_cloudwatch_1.Alarm(this.props.scope, `${this.config.AppPrefix}-${idx}-invocation-alarm`, {
|
|
119
|
+
metric: errorMetric,
|
|
120
|
+
threshold: 1000,
|
|
121
|
+
comparisonOperator: aws_cloudwatch_1.ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD,
|
|
122
|
+
evaluationPeriods: 3,
|
|
123
|
+
alarmDescription: `${this.config.AppPrefix}-${idx} errors over 3 min period`,
|
|
124
|
+
alarmName: `${this.config.AppPrefix}-${idx}-invocation-Metric-alarm`
|
|
125
|
+
});
|
|
126
|
+
// const alarmAction: IAlarmAction = {};
|
|
127
|
+
// invocationAlarm.addAlarmAction(alarmAction);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
static getIdForLambda(lambdaProp) {
|
|
131
|
+
return `${lambdaProp.name}`.toLowerCase();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.CreateLambda = CreateLambda;
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9sYW1iZGEvY3JlYXRlTGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFrRDtBQUVsRCwrREFBcUY7QUFDckYsaURBQTJEO0FBRTNELHFFQUFtRztBQUVuRyw2QkFBNkI7QUFNN0IsdURBQW9EO0FBR3BELE1BQWEsWUFBYSxTQUFRLDJCQUE0QjtJQUsxRCxZQUFvQixLQUFxQixFQUFFLE1BQWlCO1FBQ3hELEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRFgsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFIbEMsWUFBTyxHQUFxQixFQUFFLENBQUM7UUFNbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQjtRQUVyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRVMsWUFBWSxDQUFJLEtBQWdCLEVBQUUsYUFBa0I7UUFDMUQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUU3QixJQUFJLHVCQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxFQUFFLEVBQUU7Z0JBQ2xDLGFBQWE7Z0JBQ2IsS0FB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Q0FBQztJQUM5QyxDQUFDO0NBQ0o7QUF2S0Qsb0NBdUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgVG9rZW5BdXRob3JpemVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5XCI7XG5pbXBvcnQgeyBBbGFybSwgQ29tcGFyaXNvbk9wZXJhdG9yLCBJQWxhcm1BY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7IElSb2xlLCBNYW5hZ2VkUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IExheWVyVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiwgTm9kZWpzRnVuY3Rpb25Qcm9wcywgU291cmNlTWFwTW9kZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLW5vZGVqc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tIFwiLi4vLi4vY29uZmlnL0FwcENvbmZpZ1wiO1xuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcCB9IGZyb20gXCIuLi8uLi9jb25maWcvdHlwZXNcIjtcblxuaW1wb3J0IHsgVHNnTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vLi4vY29uZmlnL3R5cGVzL1RzZ0xhbWJkYVByb3BzXCI7XG5pbXBvcnQgeyBDcmVhdGVMYW1iZGFGdW5jdGlvbklucHV0IH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dFwiO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvYmFzZVJlc291cmNlXCI7XG5cblxuZXhwb3J0IGNsYXNzIENyZWF0ZUxhbWJkYSBleHRlbmRzIEJhc2VSZXNvdXJjZTxOb2RlanNGdW5jdGlvbj4ge1xuXG4gICAgcHVibGljIExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSBbXTtcbiAgICBcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJvcHM6IFRzZ0xhbWJkYVByb3BzLCBjb25maWc6IEFwcENvbmZpZykge1xuICAgICAgICBzdXBlcihwcm9wcy5zY29wZSwgY29uZmlnKTtcblxuICAgICAgICBjb25zdCByZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlKHByb3BzLnNjb3BlKTtcblxuICAgICAgICB0aGlzLkxhbWJkYXMgPSBbLi4ucmVzb3VyY2VzXTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUFsYXJtc0ZvckxhbWJkYXModGhpcy5MYW1iZGFzKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0KHByb3BzLnNjb3BlLCByZXNvdXJjZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZShzY29wZTogQ29uc3RydWN0KTogTm9kZWpzRnVuY3Rpb25bXSB7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVMYW1iZGFzKHRoaXMucHJvcHMpO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0PFQ+KHNjb3BlOiBDb25zdHJ1Y3QsIGNyZWF0ZWRBc3NldHM6IFRbXSk6IHZvaWQge1xuICAgICAgICBjcmVhdGVkQXNzZXRzLmZvckVhY2goKHgsIGlkeCkgPT4ge1xuXG4gICAgICAgICAgICBuZXcgQ2ZuT3V0cHV0KHNjb3BlLCBgbGFtYmRhLSR7aWR4fWAsIHtcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgdmFsdWU6IHguZnVuY3Rpb25OYW1lXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVMYW1iZGFzKHByb3BzOiBUc2dMYW1iZGFQcm9wcyk6IE5vZGVqc0Z1bmN0aW9uW10ge1xuICAgICAgICBcbiAgICAgICAgY29uc3QgY3JlYXRlZExhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10gPSB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyh0aGlzLnNjb3BlLCBwcm9wcy5yb2xlLCBwcm9wcy5sYXllcnMpO1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVkTGFtYmRhcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxhbWJkYUZ1bmN0aW9ucyhzY29wZTogQ29uc3RydWN0LCByb2xlPzogSVJvbGUsIGxheWVycz86IExheWVyVmVyc2lvbltdKSB7XG5cbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIkVOVEVSIGNyZWF0ZUxhbWJkYUZ1bmN0aW9uc1wiKTtcbiAgICAgICAgY29uc3QgY3JlYXRlZExhbWJkYXMgPSB0aGlzLnByb3BzLnByb3AuUkVTT1VSQ0VTLkxBTUJEQS5tYXAoKGNvbmZpZzpUc2dMYW1iZGFQcm9wKSA9PiB7XG5cbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCJFTlRFUiBjcmVhdGVMYW1iZGFGdW5jdGlvbnMubWFwIGZvciBcIiArIGNvbmZpZy5uYW1lKTtcbiAgICAgICAgICAgIGxldCBsYW1iZGFQcm9wcyA9IHRoaXMuY3JlYXRlTGFtYmRhUHJvcHMoY29uZmlnLCByb2xlLCBsYXllcnMpO1xuXG4gICAgICAgICAgICBjb25zdCBsYW1iZGFJZCA9IENyZWF0ZUxhbWJkYS5nZXRJZEZvckxhbWJkYShjb25maWcpO1xuICAgICAgICAgICAgbGV0IGZjdG4gPSBuZXcgTm9kZWpzRnVuY3Rpb24oc2NvcGUsIGxhbWJkYUlkLCBsYW1iZGFQcm9wcyk7XG5cbiAgICAgICAgICAgIC8vICBJZiB3ZSBoYXZlIG1hbmFnZWQgcG9saWNpZXMsIHdlIGFkZCB0aGVtLlxuICAgICAgICAgICAgaWYgKGNvbmZpZy5tYW5hZ2VkUG9saWNpZXMgJiYgY29uZmlnLm1hbmFnZWRQb2xpY2llcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMuYXNzaWduTWFuYWdlZFBvbGljaWVzKGZjdG4sIGNvbmZpZy5tYW5hZ2VkUG9saWNpZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmN0bjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRMYW1iZGFzIHx8IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTGFtYmRhUHJvcHMocHJvcDogVHNnTGFtYmRhUHJvcCwgcm9sZT86IElSb2xlLCBsYXllcnM/OiBMYXllclZlcnNpb25bXSwgcHJvcHM/OiBUc2dMYW1iZGFQcm9wcykge1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9uUHJvcHMoe1xuICAgICAgICAgICAgcHJvcCwgXG4gICAgICAgICAgICByb2xlLFxuICAgICAgICAgICAgbGF5ZXJzLCBcbiAgICAgICAgICAgIHByb3BzXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTGFtYmRhRnVuY3Rpb25Qcm9wcyhwcm9wczogQ3JlYXRlTGFtYmRhRnVuY3Rpb25JbnB1dCkge1xuICAgICAgICBjb25zdCB7IHByb3AsIHJvbGUsIGxheWVycyB9ID0gcHJvcHM7XG5cbiAgICAgICAgY29uc3QgbGFtYmRhUHJvcDogTm9kZWpzRnVuY3Rpb25Qcm9wcyA9IHtcbiAgICAgICAgICAgIGVudHJ5OiBwYXRoLmpvaW4ocHJvcC5jb2RlUGF0aCksXG4gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IGAke3RoaXMucHJvcHMuYXBwQ29uZmlnLkFwcFByZWZpeH0tJHtwcm9wLm5hbWV9YCxcbiAgICAgICAgICAgIGhhbmRsZXI6IHByb3AuaGFuZGxlcixcbiAgICAgICAgICAgIHJ1bnRpbWU6IHByb3AucnVudGltZSB8fCB0aGlzLmNvbmZpZy5HTE9CQUxTLnN0YWNrUnVudGltZSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IHByb3AuZHVyYXRpb24gfHwgRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgICAgICAgIG1lbW9yeVNpemU6IHByb3AubWVtb3J5IHx8IDUxMixcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAgICAgXCJWRVJCT1NFX0xPR0dJTkdcIjogXCJ0cnVlXCIsICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC4uLnByb3AuZW52aXJvbm1lbnRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgICAgICAgIG1pbmlmeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiAnZXMyMDIwJyxcbiAgICAgICAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgICAgICAgc291cmNlTWFwTW9kZTogU291cmNlTWFwTW9kZS5JTkxJTkUsXG4gICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHByb3AuZW52aXJvbm1lbnQgfHwgcHJvcC5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByb2xlLFxuICAgICAgICAgICAgbGF5ZXJzXG5cbiAgICAgICAgfVxuXG4gICAgICAgIFxuICAgICAgICByZXR1cm4gbGFtYmRhUHJvcDtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBhc3NpZ25NYW5hZ2VkUG9saWNpZXMobGFtYmRhOiBOb2RlanNGdW5jdGlvbiwgbWFuYWdlZFBvbGljeU5hbWVzOiBzdHJpbmdbXSkge1xuXG4gICAgICAgIG1hbmFnZWRQb2xpY3lOYW1lcy5mb3JFYWNoKChtYW5hZ2VkUG9saWN5TmFtZTogc3RyaW5nKSA9PiB7XG5cbiAgICAgICAgICAgIGxldCBwb2xpY3kgPSBNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShtYW5hZ2VkUG9saWN5TmFtZSk7XG5cbiAgICAgICAgICAgIGxhbWJkYS5yb2xlPy5hZGRNYW5hZ2VkUG9saWN5KHBvbGljeSk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBbGFybXNGb3JMYW1iZGFzKGxhbWJkYXM6IE5vZGVqc0Z1bmN0aW9uW10pIHsgICAgICAgIFxuXG4gICAgICAgIGxhbWJkYXMuZm9yRWFjaCgobGFtYmRhLCBpZHgpID0+IHtcblxuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXRyaWMgPSBsYW1iZGEubWV0cmljRXJyb3JzKHtcbiAgICAgICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMyksXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgZHVyYXRpb25NZXRyaWMgPSBsYW1iZGEubWV0cmljRHVyYXRpb24oe1xuICAgICAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygzKSwgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgaW52b2NhdGlvbk1ldHJpYyA9IGxhbWJkYS5tZXRyaWNJbnZvY2F0aW9ucyh7XG4gICAgICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDMpLCAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBuZXcgQWxhcm0odGhpcy5wcm9wcy5zY29wZSwgYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0tZXJyb3ItYWxhcm1gLCB7XG4gICAgICAgICAgICAgICAgbWV0cmljOiBlcnJvck1ldHJpYywgXG4gICAgICAgICAgICAgICAgdGhyZXNob2xkOiA1LFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgICAgICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0gZXJyb3JzIG92ZXIgMyBtaW4gcGVyaW9kYCxcbiAgICAgICAgICAgICAgICBhbGFybU5hbWU6IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWVycm9yLWFsYXJtYFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ldyBBbGFybSh0aGlzLnByb3BzLnNjb3BlLCBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fS1kdXJhdGlvbi1hbGFybWAsIHtcbiAgICAgICAgICAgICAgICBtZXRyaWM6IGR1cmF0aW9uTWV0cmljLCBcbiAgICAgICAgICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgICAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICAgICAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBgJHt0aGlzLmNvbmZpZy5BcHBQcmVmaXh9LSR7aWR4fSBkdXJhdGlvbiBlcnJvcnMgb3ZlciAzIG1pbiBwZXJpb2RgLFxuICAgICAgICAgICAgICAgIGFsYXJtTmFtZTogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0tZHVyYXRpb24tYWxhcm1gXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgaW52b2NhdGlvbkFsYXJtID0gbmV3IEFsYXJtKHRoaXMucHJvcHMuc2NvcGUsIGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWludm9jYXRpb24tYWxhcm1gLCB7XG4gICAgICAgICAgICAgICAgbWV0cmljOiBlcnJvck1ldHJpYywgXG4gICAgICAgICAgICAgICAgdGhyZXNob2xkOiAxMDAwLFxuICAgICAgICAgICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDMsXG4gICAgICAgICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYCR7dGhpcy5jb25maWcuQXBwUHJlZml4fS0ke2lkeH0gZXJyb3JzIG92ZXIgMyBtaW4gcGVyaW9kYCxcbiAgICAgICAgICAgICAgICBhbGFybU5hbWU6IGAke3RoaXMuY29uZmlnLkFwcFByZWZpeH0tJHtpZHh9LWludm9jYXRpb24tTWV0cmljLWFsYXJtYFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIGNvbnN0IGFsYXJtQWN0aW9uOiBJQWxhcm1BY3Rpb24gPSB7fTtcbiAgICAgICAgICAgIC8vIGludm9jYXRpb25BbGFybS5hZGRBbGFybUFjdGlvbihhbGFybUFjdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0SWRGb3JMYW1iZGEobGFtYmRhUHJvcDogVHNnTGFtYmRhUHJvcCkgeyAgICAgICBcbiAgICAgICAgcmV0dXJuIGAke2xhbWJkYVByb3AubmFtZX1gLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { TsgLambdaLayerProp } from "../../config/types/TsgLambdaLayerProp";
|
|
4
|
+
import { MicroserviceProps } from "../../interfaces/MicroserviceProps";
|
|
5
|
+
export declare const createLambdaLayer: (scope: Construct, globalProps: MicroserviceProps, prop: TsgLambdaLayerProp) => LayerVersion;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createLambdaLayer = void 0;
|
|
4
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const createLambdaLayer = (scope, globalProps, prop) => {
|
|
7
|
+
const propResult = createLambdaLayerProps(prop, globalProps);
|
|
8
|
+
const layer = new aws_lambda_1.LayerVersion(scope, `${globalProps.GLOBALS.name}-common-layer`, propResult);
|
|
9
|
+
return layer;
|
|
10
|
+
};
|
|
11
|
+
exports.createLambdaLayer = createLambdaLayer;
|
|
12
|
+
const createLambdaLayerProps = (prop, props) => {
|
|
13
|
+
const baseProps = baseLayerProps(props, prop.description);
|
|
14
|
+
const baseLayer = {
|
|
15
|
+
...baseProps,
|
|
16
|
+
code: aws_lambda_1.Code.fromAsset(path.join(prop.codePath)),
|
|
17
|
+
description: prop.description,
|
|
18
|
+
layerVersionName: `${prop.name}`
|
|
19
|
+
};
|
|
20
|
+
return baseLayer;
|
|
21
|
+
};
|
|
22
|
+
const baseLayerProps = (prop, desc) => {
|
|
23
|
+
const baseLayerProps = {
|
|
24
|
+
code: aws_lambda_1.Code.fromAsset(path.join('')),
|
|
25
|
+
compatibleRuntimes: [prop.GLOBALS.stackRuntime],
|
|
26
|
+
license: 'Apache-2.0',
|
|
27
|
+
description: desc,
|
|
28
|
+
};
|
|
29
|
+
return baseLayerProps;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGFtYmRhTGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xhbWJkYS1sYXllci9jcmVhdGVMYW1iZGFMYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBd0Y7QUFJeEYsNkJBQTZCO0FBRXRCLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFnQixFQUFFLFdBQThCLEVBQUUsSUFBd0IsRUFBRSxFQUFFO0lBRTVHLE1BQU0sVUFBVSxHQUFHLHNCQUFzQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU3RCxNQUFNLEtBQUssR0FBRyxJQUFJLHlCQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUU5RixPQUFPLEtBQUssQ0FBQztBQUVqQixDQUFDLENBQUM7QUFSVyxRQUFBLGlCQUFpQixxQkFRNUI7QUFFRixNQUFNLHNCQUFzQixHQUFHLENBQUMsSUFBd0IsRUFBRSxLQUF3QixFQUFFLEVBQUU7SUFFbEYsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFMUQsTUFBTSxTQUFTLEdBQXNCO1FBQ2pDLEdBQUcsU0FBUztRQUNaLElBQUksRUFBRSxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBRTtRQUMvQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7UUFDN0IsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFO0tBQ25DLENBQUM7SUFDRixPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBRyxDQUFDLElBQXVCLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFFN0QsTUFBTSxjQUFjLEdBQXNCO1FBQ3RDLElBQUksRUFBRSxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFFO1FBQ3BDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDL0MsT0FBTyxFQUFFLFlBQVk7UUFDckIsV0FBVyxFQUFFLElBQUk7S0FDcEIsQ0FBQztJQUVGLE9BQU8sY0FBYyxDQUFDO0FBQzFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGUsIExheWVyVmVyc2lvbiwgTGF5ZXJWZXJzaW9uUHJvcHMsIFJ1bnRpbWUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRzZ0xhbWJkYUxheWVyUHJvcCB9IGZyb20gXCIuLi8uLi9jb25maWcvdHlwZXMvVHNnTGFtYmRhTGF5ZXJQcm9wXCI7XG5pbXBvcnQgeyBNaWNyb3NlcnZpY2VQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVMYW1iZGFMYXllciA9IChzY29wZTogQ29uc3RydWN0LCBnbG9iYWxQcm9wczogTWljcm9zZXJ2aWNlUHJvcHMsIHByb3A6IFRzZ0xhbWJkYUxheWVyUHJvcCkgPT4ge1xuXG4gICAgY29uc3QgcHJvcFJlc3VsdCA9IGNyZWF0ZUxhbWJkYUxheWVyUHJvcHMocHJvcCwgZ2xvYmFsUHJvcHMpO1xuXG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgTGF5ZXJWZXJzaW9uKHNjb3BlLCBgJHtnbG9iYWxQcm9wcy5HTE9CQUxTLm5hbWV9LWNvbW1vbi1sYXllcmAsIHByb3BSZXN1bHQpO1xuXG4gICAgcmV0dXJuIGxheWVyO1xuXG59O1xuXG5jb25zdCBjcmVhdGVMYW1iZGFMYXllclByb3BzID0gKHByb3A6IFRzZ0xhbWJkYUxheWVyUHJvcCwgcHJvcHM6IE1pY3Jvc2VydmljZVByb3BzKSA9PiB7XG5cbiAgICBjb25zdCBiYXNlUHJvcHMgPSBiYXNlTGF5ZXJQcm9wcyhwcm9wcywgcHJvcC5kZXNjcmlwdGlvbik7XG5cbiAgICBjb25zdCBiYXNlTGF5ZXI6IExheWVyVmVyc2lvblByb3BzID0ge1xuICAgICAgICAuLi5iYXNlUHJvcHMsXG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihwcm9wLmNvZGVQYXRoKSwpLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcC5kZXNjcmlwdGlvbixcbiAgICAgICAgbGF5ZXJWZXJzaW9uTmFtZTogYCR7cHJvcC5uYW1lfWBcbiAgICB9O1xuICAgIHJldHVybiBiYXNlTGF5ZXI7XG59O1xuXG5jb25zdCBiYXNlTGF5ZXJQcm9wcyA9IChwcm9wOiBNaWNyb3NlcnZpY2VQcm9wcywgZGVzYzogc3RyaW5nKSA9PiB7XG5cbiAgICBjb25zdCBiYXNlTGF5ZXJQcm9wczogTGF5ZXJWZXJzaW9uUHJvcHMgPSB7XG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbignJyksKSxcbiAgICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbcHJvcC5HTE9CQUxTLnN0YWNrUnVudGltZV0sXG4gICAgICAgIGxpY2Vuc2U6ICdBcGFjaGUtMi4wJyxcbiAgICAgICAgZGVzY3JpcHRpb246IGRlc2MsXG4gICAgfTtcblxuICAgIHJldHVybiBiYXNlTGF5ZXJQcm9wcztcbn07Il19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./responses";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./responses"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xheWVycy9jb21tb24vc3JjL25vZGVqcy9hcGktcmVzcG9uc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3Jlc3BvbnNlc1wiOyJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const badResponse: (errorMessage: string) => {
|
|
2
|
+
statusCode: number;
|
|
3
|
+
body: string;
|
|
4
|
+
headers: {
|
|
5
|
+
"Access-Control-Allow-Origin": string;
|
|
6
|
+
"Access-Control-Allow-Credentials": boolean;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export declare const okResponse: (data: Object) => {
|
|
10
|
+
statusCode: number;
|
|
11
|
+
body: string;
|
|
12
|
+
headers: {
|
|
13
|
+
"Access-Control-Allow-Origin": string;
|
|
14
|
+
"Access-Control-Allow-Credentials": boolean;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export declare const unauthorizedResponse: (data: object) => {
|
|
18
|
+
statusCode: number;
|
|
19
|
+
body: string;
|
|
20
|
+
headers: {
|
|
21
|
+
"Access-Control-Allow-Origin": string;
|
|
22
|
+
"Access-Control-Allow-Credentials": boolean;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unauthorizedResponse = exports.okResponse = exports.badResponse = void 0;
|
|
4
|
+
const badResponse = (errorMessage) => {
|
|
5
|
+
return {
|
|
6
|
+
statusCode: 400,
|
|
7
|
+
body: JSON.stringify({
|
|
8
|
+
message: errorMessage
|
|
9
|
+
}),
|
|
10
|
+
headers: {
|
|
11
|
+
"Access-Control-Allow-Origin": "*",
|
|
12
|
+
"Access-Control-Allow-Credentials": true,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
exports.badResponse = badResponse;
|
|
17
|
+
const okResponse = (data) => {
|
|
18
|
+
return {
|
|
19
|
+
statusCode: 200,
|
|
20
|
+
body: JSON.stringify({
|
|
21
|
+
data
|
|
22
|
+
}),
|
|
23
|
+
headers: {
|
|
24
|
+
"Access-Control-Allow-Origin": "*",
|
|
25
|
+
"Access-Control-Allow-Credentials": true,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
exports.okResponse = okResponse;
|
|
30
|
+
const unauthorizedResponse = (data) => {
|
|
31
|
+
return {
|
|
32
|
+
statusCode: 401,
|
|
33
|
+
body: JSON.stringify({
|
|
34
|
+
data
|
|
35
|
+
}),
|
|
36
|
+
headers: {
|
|
37
|
+
"Access-Control-Allow-Origin": "*",
|
|
38
|
+
"Access-Control-Allow-Credentials": true,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
exports.unauthorizedResponse = unauthorizedResponse;
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9sYXllcnMvY29tbW9uL3NyYy9ub2RlanMvYXBpLXJlc3BvbnNlL3Jlc3BvbnNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBTyxNQUFNLFdBQVcsR0FBRyxDQUFDLFlBQW9CLEVBQUUsRUFBRTtJQUNoRCxPQUFPO1FBQ0gsVUFBVSxFQUFFLEdBQUc7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNqQixPQUFPLEVBQUUsWUFBWTtTQUN4QixDQUFDO1FBQ0YsT0FBTyxFQUFFO1lBQ0wsNkJBQTZCLEVBQUUsR0FBRztZQUNsQyxrQ0FBa0MsRUFBRSxJQUFJO1NBQzNDO0tBQ0osQ0FBQztBQUVOLENBQUMsQ0FBQztBQVpXLFFBQUEsV0FBVyxlQVl0QjtBQUVLLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDdkMsT0FBTztRQUNILFVBQVUsRUFBRSxHQUFHO1FBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDakIsSUFBSTtTQUNQLENBQUM7UUFDRixPQUFPLEVBQUU7WUFDTCw2QkFBNkIsRUFBRSxHQUFHO1lBQ2xDLGtDQUFrQyxFQUFFLElBQUk7U0FDM0M7S0FDSixDQUFDO0FBRU4sQ0FBQyxDQUFDO0FBWlcsUUFBQSxVQUFVLGNBWXJCO0FBRUssTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ2pELE9BQU87UUFDSCxVQUFVLEVBQUUsR0FBRztRQUNmLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2pCLElBQUk7U0FDUCxDQUFDO1FBQ0YsT0FBTyxFQUFFO1lBQ0wsNkJBQTZCLEVBQUUsR0FBRztZQUNsQyxrQ0FBa0MsRUFBRSxJQUFJO1NBQzNDO0tBQ0osQ0FBQztBQUVOLENBQUMsQ0FBQztBQVpXLFFBQUEsb0JBQW9CLHdCQVkvQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBiYWRSZXNwb25zZSA9IChlcnJvck1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1c0NvZGU6IDQwMCxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlXG4gICAgICAgIH0pLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblwiOiBcIipcIixcbiAgICAgICAgICAgIFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHNcIjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICB9O1xuXG59O1xuXG5leHBvcnQgY29uc3Qgb2tSZXNwb25zZSA9IChkYXRhOiBPYmplY3QpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXNDb2RlOiAyMDAsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGRhdGFcbiAgICAgICAgfSksXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCI6IFwiKlwiLFxuICAgICAgICAgICAgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFsc1wiOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH07XG5cbn07XG5cbmV4cG9ydCBjb25zdCB1bmF1dGhvcml6ZWRSZXNwb25zZSA9IChkYXRhOiBvYmplY3QpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBzdGF0dXNDb2RlOiA0MDEsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGRhdGFcbiAgICAgICAgfSksXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCI6IFwiKlwiLFxuICAgICAgICAgICAgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFsc1wiOiB0cnVlLFxuICAgICAgICB9LFxuICAgIH07XG5cbn07XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./logger/index"), exports);
|
|
18
|
+
__exportStar(require("./api-response/index"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xheWVycy9jb21tb24vc3JjL25vZGVqcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQStCO0FBQy9CLHVEQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xvZ2dlci9pbmRleFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vYXBpLXJlc3BvbnNlL2luZGV4XCI7XG5cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xheWVycy9jb21tb24vc3JjL25vZGVqcy9sb2dnZXIvSUNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUxvZ2dlckNvbnRleHQge1xuXG4gICAgZnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG5cbn0iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./IContext"), exports);
|
|
18
|
+
__exportStar(require("./logger"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xheWVycy9jb21tb24vc3JjL25vZGVqcy9sb2dnZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9JQ29udGV4dFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbG9nZ2VyXCI7Il19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logger = void 0;
|
|
4
|
+
function logger(context) {
|
|
5
|
+
const showLogs = Boolean(process.env.VERBOSE_LOGGING || false);
|
|
6
|
+
if (showLogs) {
|
|
7
|
+
console.log(`### ${(context.functionName) ? `${context.functionName} :: ` : ''} ${(context.name) ? `${context.name} :: ` : ''} ${(context.message) ? `${context.message} :: ` : ''}`);
|
|
8
|
+
}
|
|
9
|
+
// ### run() ::
|
|
10
|
+
}
|
|
11
|
+
exports.logger = logger;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9sYXllcnMvY29tbW9uL3NyYy9ub2RlanMvbG9nZ2VyL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixNQUFNLENBQUMsT0FBdUI7SUFFMUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBRS9ELElBQUksUUFBUSxFQUFFO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM3TDtJQUNELGdCQUFnQjtBQUNwQixDQUFDO0FBUkQsd0JBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTG9nZ2VyQ29udGV4dCB9IGZyb20gXCIuL0lDb250ZXh0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dnZXIoY29udGV4dDogSUxvZ2dlckNvbnRleHQpIHtcblxuICAgIGNvbnN0IHNob3dMb2dzID0gQm9vbGVhbihwcm9jZXNzLmVudi5WRVJCT1NFX0xPR0dJTkcgfHwgZmFsc2UpO1xuXG4gICAgaWYgKHNob3dMb2dzKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAjIyMgJHsoY29udGV4dC5mdW5jdGlvbk5hbWUpID8gYCR7Y29udGV4dC5mdW5jdGlvbk5hbWV9IDo6ICBgIDogJyd9ICR7KGNvbnRleHQubmFtZSkgPyBgJHtjb250ZXh0Lm5hbWV9IDo6ICBgIDogJyd9ICAkeyhjb250ZXh0Lm1lc3NhZ2UpID8gYCR7Y29udGV4dC5tZXNzYWdlfSA6OiAgYCA6ICcnfWApO1xuICAgIH1cbiAgICAvLyAjIyMgcnVuKCkgOjogXG59Il19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IUserPool } from "aws-cdk-lib/aws-cognito";
|
|
2
|
+
import { PolicyDocument } from "aws-cdk-lib/aws-iam";
|
|
3
|
+
import { MicroserviceProps } from "../../../../interfaces/MicroserviceProps";
|
|
4
|
+
export declare const cognitoPolicyDocument: (userPool: IUserPool, config: MicroserviceProps) => PolicyDocument;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cognitoPolicyDocument = void 0;
|
|
4
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
5
|
+
const cognitoPolicyDocument = (userPool, config) => {
|
|
6
|
+
const cpd = new aws_iam_1.PolicyDocument({
|
|
7
|
+
statements: [
|
|
8
|
+
new aws_iam_1.PolicyStatement({
|
|
9
|
+
resources: [userPool.userPoolArn],
|
|
10
|
+
actions: [
|
|
11
|
+
"cognito:*",
|
|
12
|
+
"cognito-idp:ListUsers"
|
|
13
|
+
],
|
|
14
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
15
|
+
}),
|
|
16
|
+
new aws_iam_1.PolicyStatement({
|
|
17
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
18
|
+
actions: [
|
|
19
|
+
"logs:CreateLogGroup",
|
|
20
|
+
"logs:CreateLogStream",
|
|
21
|
+
"logs:DescribeLogGroups",
|
|
22
|
+
"logs:DescribeLogStreams",
|
|
23
|
+
"logs:PutLogEvents",
|
|
24
|
+
"logs:GetLogEvents",
|
|
25
|
+
"logs:FilterLogEvents"
|
|
26
|
+
],
|
|
27
|
+
resources: ["*"]
|
|
28
|
+
}),
|
|
29
|
+
new aws_iam_1.PolicyStatement({
|
|
30
|
+
resources: [`arn:aws:dynamodb:${config.GLOBALS.region}:${config.GLOBALS.accountNumber}:table/*`],
|
|
31
|
+
actions: [
|
|
32
|
+
"dynamodb:BatchGetItem",
|
|
33
|
+
"dynamodb:BatchWriteItem",
|
|
34
|
+
"dynamodb:ConditionCheckItem",
|
|
35
|
+
"dynamodb:DeleteItem",
|
|
36
|
+
"dynamodb:DescribeTable",
|
|
37
|
+
"dynamodb:GetItem",
|
|
38
|
+
"dynamodb:GetRecords",
|
|
39
|
+
"dynamodb:GetShardIterator",
|
|
40
|
+
"dynamodb:PutItem",
|
|
41
|
+
"dynamodb:Query",
|
|
42
|
+
"dynamodb:Scan",
|
|
43
|
+
"dynamodb:UpdateItem",
|
|
44
|
+
],
|
|
45
|
+
effect: aws_iam_1.Effect.ALLOW,
|
|
46
|
+
}),
|
|
47
|
+
],
|
|
48
|
+
});
|
|
49
|
+
return cpd;
|
|
50
|
+
};
|
|
51
|
+
exports.cognitoPolicyDocument = cognitoPolicyDocument;
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nbml0b1BvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvcmVzb3VyY2VzL2lhbS9wb2xpY3lEb2N1bWVudHMvY29nbml0b1BvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBOEU7QUFJdkUsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFFBQW1CLEVBQUUsTUFBeUIsRUFBRSxFQUFFO0lBRXRGLE1BQU0sR0FBRyxHQUFtQixJQUFJLHdCQUFjLENBQUM7UUFFN0MsVUFBVSxFQUFFO1lBQ1YsSUFBSSx5QkFBZSxDQUFDO2dCQUNsQixTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUNqQyxPQUFPLEVBQUU7b0JBQ1AsV0FBVztvQkFDWCx1QkFBdUI7aUJBQ3hCO2dCQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7YUFDckIsQ0FBQztZQUNGLElBQUkseUJBQWUsQ0FBQztnQkFDbEIsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztnQkFDcEIsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtvQkFDckIsc0JBQXNCO29CQUN0Qix3QkFBd0I7b0JBQ3hCLHlCQUF5QjtvQkFDekIsbUJBQW1CO29CQUNuQixtQkFBbUI7b0JBQ25CLHNCQUFzQjtpQkFDdkI7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO2FBQ2pCLENBQUM7WUFDRixJQUFJLHlCQUFlLENBQUM7Z0JBQ2xCLFNBQVMsRUFBRSxDQUFDLG9CQUFvQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsVUFBVSxDQUFDO2dCQUNoRyxPQUFPLEVBQUU7b0JBQ1AsdUJBQXVCO29CQUN2Qix5QkFBeUI7b0JBQ3pCLDZCQUE2QjtvQkFDN0IscUJBQXFCO29CQUNyQix3QkFBd0I7b0JBQ3hCLGtCQUFrQjtvQkFDbEIscUJBQXFCO29CQUNyQiwyQkFBMkI7b0JBQzNCLGtCQUFrQjtvQkFDbEIsZ0JBQWdCO29CQUNoQixlQUFlO29CQUNmLHFCQUFxQjtpQkFFdEI7Z0JBQ0QsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSzthQUNyQixDQUFDO1NBQ0g7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQWpEVyxRQUFBLHFCQUFxQix5QkFpRGhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVVzZXJQb29sIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCI7XG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeURvY3VtZW50LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlUHJvcHMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wc1wiO1xuXG5cbmV4cG9ydCBjb25zdCBjb2duaXRvUG9saWN5RG9jdW1lbnQgPSAodXNlclBvb2w6IElVc2VyUG9vbCwgY29uZmlnOiBNaWNyb3NlcnZpY2VQcm9wcykgPT4ge1xuXG4gIGNvbnN0IGNwZDogUG9saWN5RG9jdW1lbnQgPSBuZXcgUG9saWN5RG9jdW1lbnQoe1xuXG4gICAgc3RhdGVtZW50czogW1xuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogW3VzZXJQb29sLnVzZXJQb29sQXJuXSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiY29nbml0bzoqXCIsXG4gICAgICAgICAgXCJjb2duaXRvLWlkcDpMaXN0VXNlcnNcIlxuICAgICAgICBdLFxuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgIH0pLFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJsb2dzOkNyZWF0ZUxvZ0dyb3VwXCIsXG4gICAgICAgICAgXCJsb2dzOkNyZWF0ZUxvZ1N0cmVhbVwiLFxuICAgICAgICAgIFwibG9nczpEZXNjcmliZUxvZ0dyb3Vwc1wiLFxuICAgICAgICAgIFwibG9nczpEZXNjcmliZUxvZ1N0cmVhbXNcIixcbiAgICAgICAgICBcImxvZ3M6UHV0TG9nRXZlbnRzXCIsXG4gICAgICAgICAgXCJsb2dzOkdldExvZ0V2ZW50c1wiLFxuICAgICAgICAgIFwibG9nczpGaWx0ZXJMb2dFdmVudHNcIlxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgIH0pLFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogW2Bhcm46YXdzOmR5bmFtb2RiOiR7Y29uZmlnLkdMT0JBTFMucmVnaW9ufToke2NvbmZpZy5HTE9CQUxTLmFjY291bnROdW1iZXJ9OnRhYmxlLypgXSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiZHluYW1vZGI6QmF0Y2hHZXRJdGVtXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpCYXRjaFdyaXRlSXRlbVwiLFxuICAgICAgICAgIFwiZHluYW1vZGI6Q29uZGl0aW9uQ2hlY2tJdGVtXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpEZWxldGVJdGVtXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpEZXNjcmliZVRhYmxlXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpHZXRJdGVtXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpHZXRSZWNvcmRzXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpHZXRTaGFyZEl0ZXJhdG9yXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpQdXRJdGVtXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpRdWVyeVwiLFxuICAgICAgICAgIFwiZHluYW1vZGI6U2NhblwiLFxuICAgICAgICAgIFwiZHluYW1vZGI6VXBkYXRlSXRlbVwiLFxuXG4gICAgICAgIF0sXG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgfSksXG4gICAgXSxcbiAgfSk7XG5cbiAgcmV0dXJuIGNwZDtcbn07Il19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PolicyDocument, Role, RoleProps, ServicePrincipal } from "aws-cdk-lib/aws-iam";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
export declare const createRole: (scope: Construct, roleName: string, desc: string, policyDocument: PolicyDocument, servicePrincipal: ServicePrincipal) => Role;
|
|
4
|
+
export declare const createRoleProps: (roleName: string, desc: string, policyDocument: PolicyDocument, servicePrincipal: ServicePrincipal) => RoleProps;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRoleProps = exports.createRole = void 0;
|
|
4
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
5
|
+
const createRole = (scope, roleName, desc, policyDocument, servicePrincipal) => {
|
|
6
|
+
const role = new aws_iam_1.Role(scope, `${roleName}-role`, (0, exports.createRoleProps)(roleName, desc, policyDocument, servicePrincipal));
|
|
7
|
+
return role;
|
|
8
|
+
};
|
|
9
|
+
exports.createRole = createRole;
|
|
10
|
+
const createRoleProps = (roleName, desc, policyDocument, servicePrincipal) => {
|
|
11
|
+
const roleProp = {
|
|
12
|
+
roleName,
|
|
13
|
+
description: 'Allows access to DynamoDb Client Table',
|
|
14
|
+
inlinePolicies: {
|
|
15
|
+
policyDocument
|
|
16
|
+
},
|
|
17
|
+
assumedBy: new aws_iam_1.CompositePrincipal(servicePrincipal)
|
|
18
|
+
};
|
|
19
|
+
return roleProp;
|
|
20
|
+
};
|
|
21
|
+
exports.createRoleProps = createRoleProps;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvcmVzb3VyY2VzL2lhbS9yb2xlcy9jcmVhdGVSb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUE0RztBQUlyRyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWdCLEVBQUUsUUFBZ0IsRUFBRSxJQUFZLEVBQUUsY0FBOEIsRUFDdkcsZ0JBQWtDLEVBQUUsRUFBRTtJQUV0QyxNQUFNLElBQUksR0FBRyxJQUFJLGNBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxRQUFRLE9BQU8sRUFBRSxJQUFBLHVCQUFlLEVBQUMsUUFBUSxFQUFFLElBQUksRUFDM0UsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUV2QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFQVyxRQUFBLFVBQVUsY0FPckI7QUFFSyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWdCLEVBQUUsSUFBWSxFQUFFLGNBQThCLEVBQzFGLGdCQUFrQyxFQUFFLEVBQUU7SUFFdEMsTUFBTSxRQUFRLEdBQWM7UUFDeEIsUUFBUTtRQUNSLFdBQVcsRUFBRSx3Q0FBd0M7UUFDckQsY0FBYyxFQUFFO1lBQ2QsY0FBYztTQUNmO1FBQ0QsU0FBUyxFQUFFLElBQUksNEJBQWtCLENBQy9CLGdCQUFnQixDQUNqQjtLQUVGLENBQUM7SUFFTCxPQUFPLFFBQVEsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFoQlcsUUFBQSxlQUFlLG1CQWdCMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGVQcmluY2lwYWwsIFBvbGljeURvY3VtZW50LCBSb2xlLCBSb2xlUHJvcHMsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuXG5leHBvcnQgY29uc3QgY3JlYXRlUm9sZSA9IChzY29wZTogQ29uc3RydWN0LCByb2xlTmFtZTogc3RyaW5nLCBkZXNjOiBzdHJpbmcsIHBvbGljeURvY3VtZW50OiBQb2xpY3lEb2N1bWVudCwgXG4gICAgc2VydmljZVByaW5jaXBhbDogU2VydmljZVByaW5jaXBhbCkgPT4ge1xuXG4gICAgY29uc3Qgcm9sZSA9IG5ldyBSb2xlKHNjb3BlLCBgJHtyb2xlTmFtZX0tcm9sZWAsIGNyZWF0ZVJvbGVQcm9wcyhyb2xlTmFtZSwgZGVzYywgXG4gICAgICAgIHBvbGljeURvY3VtZW50LCBzZXJ2aWNlUHJpbmNpcGFsKSk7XG4gICAgXG4gICAgcmV0dXJuIHJvbGU7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUm9sZVByb3BzID0gKHJvbGVOYW1lOiBzdHJpbmcsIGRlc2M6IHN0cmluZywgcG9saWN5RG9jdW1lbnQ6IFBvbGljeURvY3VtZW50LCBcbiAgICBzZXJ2aWNlUHJpbmNpcGFsOiBTZXJ2aWNlUHJpbmNpcGFsKSA9PiB7XG5cbiAgICBjb25zdCByb2xlUHJvcDogUm9sZVByb3BzID0ge1xuICAgICAgICByb2xlTmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdBbGxvd3MgYWNjZXNzIHRvIER5bmFtb0RiIENsaWVudCBUYWJsZScsXG4gICAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgICAgcG9saWN5RG9jdW1lbnRcbiAgICAgICAgfSxcbiAgICAgICAgYXNzdW1lZEJ5OiBuZXcgQ29tcG9zaXRlUHJpbmNpcGFsKFxuICAgICAgICAgIHNlcnZpY2VQcmluY2lwYWwsXG4gICAgICAgIClcbiAgXG4gICAgICB9O1xuICBcbiAgIHJldHVybiByb2xlUHJvcDtcbn07Il19
|
|
File without changes
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import { CfnOutput } from "aws-cdk-lib";
|
|
3
|
+
// import { HostedZoneProps, IHostedZone, IPublicHostedZone, PublicHostedZone } from "aws-cdk-lib/aws-route53";
|
|
4
|
+
// import { Construct } from "constructs";
|
|
5
|
+
// import { BaseResource } from "../base/BaseResource";
|
|
6
|
+
// export class CreateHostedZone extends BaseResource {
|
|
7
|
+
// public createdPublicZones: IPublicHostedZone[] = [];
|
|
8
|
+
// constructor(scope: Construct) {
|
|
9
|
+
// super(scope);
|
|
10
|
+
// this.createZone();
|
|
11
|
+
// }
|
|
12
|
+
// public createZone() {
|
|
13
|
+
// const props: HostedZoneProps = {
|
|
14
|
+
// zoneName: this.appConfig.DNS.ZoneName
|
|
15
|
+
// };
|
|
16
|
+
// let zone: IPublicHostedZone;
|
|
17
|
+
// if (!this.appConfig.DNS.ZoneExist) {
|
|
18
|
+
// zone = new PublicHostedZone(this.scope, `${this.appConfig.DNS.ZoneNameWithoutPeriod}-hosted-zone`, props);
|
|
19
|
+
// } else {
|
|
20
|
+
// if (!this.appConfig.DNS.ZoneName || !this.appConfig.DNS.ZoneId) {
|
|
21
|
+
// throw new Error("You must provide a Zone Name and Zone Id");
|
|
22
|
+
// }
|
|
23
|
+
// zone = PublicHostedZone.fromHostedZoneAttributes(this.scope, `${this.appConfig.DNS.ZoneNameWithoutPeriod}-hosted-zone`, {
|
|
24
|
+
// zoneName: this.appConfig.DNS.ZoneName,
|
|
25
|
+
// hostedZoneId: this.appConfig.DNS.ZoneId
|
|
26
|
+
// });
|
|
27
|
+
// }
|
|
28
|
+
// this.createdPublicZones.push(zone);
|
|
29
|
+
// this.createOutput(this.scope, this.createdPublicZones);
|
|
30
|
+
// }
|
|
31
|
+
// protected createOutput<HostedZone>(scope: Construct, createdAssets: HostedZone[]): void {
|
|
32
|
+
// let nameServers = '';
|
|
33
|
+
// this.createdPublicZones.forEach((zone, index) => {
|
|
34
|
+
// console.log('Name Servers:', zone.hostedZoneNameServers);
|
|
35
|
+
// zone.hostedZoneNameServers?.forEach((server, idx) => {
|
|
36
|
+
// console.log(nameServers);
|
|
37
|
+
// nameServers = `${nameServers} - ${idx}: ${server}`;
|
|
38
|
+
// }, '');
|
|
39
|
+
// new CfnOutput(scope, `zone-output-${index}`, {
|
|
40
|
+
// value: zone.hostedZoneId,
|
|
41
|
+
// exportName: 'hosted-zone-id'
|
|
42
|
+
// });
|
|
43
|
+
// nameServers = '';
|
|
44
|
+
// });
|
|
45
|
+
// }
|
|
46
|
+
// }
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvcm91dGU1My9DcmVhdGVab25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyQ0FBMkM7QUFDM0MsK0dBQStHO0FBQy9HLDBDQUEwQztBQUMxQyx1REFBdUQ7QUFFdkQsd0RBQXdEO0FBRXhELDJEQUEyRDtBQUUzRCxzQ0FBc0M7QUFDdEMsd0JBQXdCO0FBRXhCLDZCQUE2QjtBQUU3QixRQUFRO0FBRVIsNEJBQTRCO0FBQzVCLDJDQUEyQztBQUMzQyxvREFBb0Q7QUFDcEQsYUFBYTtBQUViLHVDQUF1QztBQUV2QywrQ0FBK0M7QUFDL0MseUhBQXlIO0FBQ3pILG1CQUFtQjtBQUNuQixnRkFBZ0Y7QUFDaEYsK0ZBQStGO0FBQy9GLGdCQUFnQjtBQUNoQix3SUFBd0k7QUFDeEkseURBQXlEO0FBQ3pELDBEQUEwRDtBQUMxRCxrQkFBa0I7QUFDbEIsWUFBWTtBQUVaLDhDQUE4QztBQUU5QyxrRUFBa0U7QUFDbEUsUUFBUTtBQUVSLGdHQUFnRztBQUVoRyxnQ0FBZ0M7QUFFaEMsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUU1RSxzRUFBc0U7QUFDdEUsNENBQTRDO0FBQzVDLHNFQUFzRTtBQUN0RSxzQkFBc0I7QUFFdEIsNkRBQTZEO0FBQzdELDRDQUE0QztBQUM1QywrQ0FBK0M7QUFDL0Msa0JBQWtCO0FBRWxCLGdDQUFnQztBQUNoQyxjQUFjO0FBQ2QsUUFBUTtBQUVSLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBpbXBvcnQgeyBDZm5PdXRwdXQgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbi8vIGltcG9ydCB7IEhvc3RlZFpvbmVQcm9wcywgSUhvc3RlZFpvbmUsIElQdWJsaWNIb3N0ZWRab25lLCBQdWJsaWNIb3N0ZWRab25lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG4vLyBpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuLy8gaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSBcIi4uL2Jhc2UvQmFzZVJlc291cmNlXCI7XG5cbi8vIGV4cG9ydCBjbGFzcyBDcmVhdGVIb3N0ZWRab25lIGV4dGVuZHMgQmFzZVJlc291cmNlICB7XG4gICAgXG4vLyAgICAgcHVibGljIGNyZWF0ZWRQdWJsaWNab25lczogSVB1YmxpY0hvc3RlZFpvbmVbXSA9IFtdO1xuICAgIFxuLy8gICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QpIHtcbi8vICAgICAgICAgc3VwZXIoc2NvcGUpO1xuXG4vLyAgICAgICAgIHRoaXMuY3JlYXRlWm9uZSgpO1xuICAgICAgICBcbi8vICAgICB9XG5cbi8vICAgICBwdWJsaWMgY3JlYXRlWm9uZSgpIHtcbi8vICAgICAgICAgY29uc3QgcHJvcHM6IEhvc3RlZFpvbmVQcm9wcyA9IHtcbi8vICAgICAgICAgICAgIHpvbmVOYW1lOiB0aGlzLmFwcENvbmZpZy5ETlMuWm9uZU5hbWVcbi8vICAgICAgICAgfTtcbiAgICBcbi8vICAgICAgICAgbGV0IHpvbmU6IElQdWJsaWNIb3N0ZWRab25lO1xuXG4vLyAgICAgICAgIGlmICghdGhpcy5hcHBDb25maWcuRE5TLlpvbmVFeGlzdCkge1xuLy8gICAgICAgICAgICAgem9uZSA9IG5ldyBQdWJsaWNIb3N0ZWRab25lKHRoaXMuc2NvcGUsIGAke3RoaXMuYXBwQ29uZmlnLkROUy5ab25lTmFtZVdpdGhvdXRQZXJpb2R9LWhvc3RlZC16b25lYCwgcHJvcHMpO1xuLy8gICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgICAgaWYgKCF0aGlzLmFwcENvbmZpZy5ETlMuWm9uZU5hbWUgfHwgIXRoaXMuYXBwQ29uZmlnLkROUy5ab25lSWQpIHtcbi8vICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgbXVzdCBwcm92aWRlIGEgWm9uZSBOYW1lIGFuZCBab25lIElkXCIpOyAgICAgICAgICAgICAgICBcbi8vICAgICAgICAgICAgIH1cbi8vICAgICAgICAgICAgIHpvbmUgPSBQdWJsaWNIb3N0ZWRab25lLmZyb21Ib3N0ZWRab25lQXR0cmlidXRlcyh0aGlzLnNjb3BlLCBgJHt0aGlzLmFwcENvbmZpZy5ETlMuWm9uZU5hbWVXaXRob3V0UGVyaW9kfS1ob3N0ZWQtem9uZWAsIHtcbi8vICAgICAgICAgICAgICAgICB6b25lTmFtZTogdGhpcy5hcHBDb25maWcuRE5TLlpvbmVOYW1lLFxuLy8gICAgICAgICAgICAgICAgIGhvc3RlZFpvbmVJZDogdGhpcy5hcHBDb25maWcuRE5TLlpvbmVJZFxuLy8gICAgICAgICAgICAgfSk7XG4vLyAgICAgICAgIH1cblxuLy8gICAgICAgICB0aGlzLmNyZWF0ZWRQdWJsaWNab25lcy5wdXNoKHpvbmUpO1xuICAgIFxuLy8gICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dCh0aGlzLnNjb3BlLCB0aGlzLmNyZWF0ZWRQdWJsaWNab25lcyk7XG4vLyAgICAgfVxuXG4vLyAgICAgcHJvdGVjdGVkIGNyZWF0ZU91dHB1dDxIb3N0ZWRab25lPihzY29wZTogQ29uc3RydWN0LCBjcmVhdGVkQXNzZXRzOiBIb3N0ZWRab25lW10pOiB2b2lkIHtcbiAgICAgICAgXG4vLyAgICAgICAgIGxldCBuYW1lU2VydmVycyA9ICcnO1xuICAgICAgICBcbi8vICAgICAgICAgdGhpcy5jcmVhdGVkUHVibGljWm9uZXMuZm9yRWFjaCgoem9uZSwgaW5kZXgpID0+IHtcbi8vICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdOYW1lIFNlcnZlcnM6Jywgem9uZS5ob3N0ZWRab25lTmFtZVNlcnZlcnMpOyAgICBcbiAgICAgICAgICAgIFxuLy8gICAgICAgICAgICAgem9uZS5ob3N0ZWRab25lTmFtZVNlcnZlcnM/LmZvckVhY2goKHNlcnZlciwgaWR4KSA9PiB7IFxuLy8gICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5hbWVTZXJ2ZXJzKTtcbi8vICAgICAgICAgICAgICAgICBuYW1lU2VydmVycyA9IGAke25hbWVTZXJ2ZXJzfSAtICR7aWR4fTogJHtzZXJ2ZXJ9YDtcbi8vICAgICAgICAgICAgIH0sICcnKTtcbiAgICBcbi8vICAgICAgICAgICAgIG5ldyBDZm5PdXRwdXQoc2NvcGUsIGB6b25lLW91dHB1dC0ke2luZGV4fWAsIHtcbi8vICAgICAgICAgICAgICAgICB2YWx1ZTogem9uZS5ob3N0ZWRab25lSWQsXG4vLyAgICAgICAgICAgICAgICAgZXhwb3J0TmFtZTogJ2hvc3RlZC16b25lLWlkJ1xuLy8gICAgICAgICAgICAgfSk7XG4gICAgXG4vLyAgICAgICAgICAgICBuYW1lU2VydmVycyA9ICcnO1xuLy8gICAgICAgICB9KTtcbi8vICAgICB9XG5cbi8vIH0iXX0=
|
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import { CfnOutput, Token } from "aws-cdk-lib";
|
|
3
|
+
// import { HostedZoneProps, PublicHostedZone, ZoneDelegationRecord } from "aws-cdk-lib/aws-route53";
|
|
4
|
+
// import { Construct } from "constructs";
|
|
5
|
+
// import { MicroserviceProps } from "../../interfaces/MicroserviceProps";
|
|
6
|
+
// export const createZones = (scope: Construct, appConfig: MicroserviceProps) => {
|
|
7
|
+
// const createdPublicZones: PublicHostedZone[] = [];
|
|
8
|
+
// const props: HostedZoneProps = {
|
|
9
|
+
// zoneName: appConfig.DNS.ZoneName
|
|
10
|
+
// };
|
|
11
|
+
// const createdZone = new PublicHostedZone(scope, `${appConfig.DNS.ZoneNameWithoutPeriod}-hosted-zone`, props);
|
|
12
|
+
// createdPublicZones.push(createdZone);
|
|
13
|
+
// zoneOutput(scope, createdPublicZones);
|
|
14
|
+
// };
|
|
15
|
+
// const zoneOutput = (scope: Construct, publicZones: PublicHostedZone[]) => {
|
|
16
|
+
// let nameServers = '';
|
|
17
|
+
// publicZones.forEach((zone, index) => {
|
|
18
|
+
// console.log('Name Servers:', zone.hostedZoneNameServers);
|
|
19
|
+
// zone.hostedZoneNameServers?.forEach((server, idx) => {
|
|
20
|
+
// console.log(nameServers);
|
|
21
|
+
// nameServers = `${nameServers} - ${idx}: ${server}`;
|
|
22
|
+
// }, '');
|
|
23
|
+
// new CfnOutput(scope, `zone-output-${index}`, {
|
|
24
|
+
// value: zone.hostedZoneId,
|
|
25
|
+
// exportName: 'hosted-zone-id'
|
|
26
|
+
// });
|
|
27
|
+
// nameServers = '';
|
|
28
|
+
// });
|
|
29
|
+
// };
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXpvbmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Jlc291cmNlcy9yb3V0ZTUzL2NyZWF0ZS16b25lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsa0RBQWtEO0FBQ2xELHFHQUFxRztBQUNyRywwQ0FBMEM7QUFDMUMsMEVBQTBFO0FBRzFFLG1GQUFtRjtBQUVuRix5REFBeUQ7QUFFekQsdUNBQXVDO0FBQ3ZDLDJDQUEyQztBQUMzQyxTQUFTO0FBRVQsb0hBQW9IO0FBRXBILDRDQUE0QztBQUU1Qyw2Q0FBNkM7QUFDN0MsS0FBSztBQUVMLDhFQUE4RTtBQUc5RSw0QkFBNEI7QUFDNUIsNkNBQTZDO0FBQzdDLHdFQUF3RTtBQUN4RSxrRUFBa0U7QUFDbEUsd0NBQXdDO0FBQ3hDLGtFQUFrRTtBQUNsRSxrQkFBa0I7QUFFbEIseURBQXlEO0FBQ3pELHdDQUF3QztBQUN4QywyQ0FBMkM7QUFDM0MsY0FBYztBQUVkLDRCQUE0QjtBQUM1QixVQUFVO0FBRVYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IENmbk91dHB1dCwgVG9rZW4gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbi8vIGltcG9ydCB7IEhvc3RlZFpvbmVQcm9wcywgUHVibGljSG9zdGVkWm9uZSwgWm9uZURlbGVnYXRpb25SZWNvcmQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbi8vIGltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG4vLyBpbXBvcnQgeyBNaWNyb3NlcnZpY2VQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL01pY3Jvc2VydmljZVByb3BzXCI7XG5cblxuLy8gZXhwb3J0IGNvbnN0IGNyZWF0ZVpvbmVzID0gKHNjb3BlOiBDb25zdHJ1Y3QsIGFwcENvbmZpZzogTWljcm9zZXJ2aWNlUHJvcHMpID0+IHtcblxuLy8gICAgIGNvbnN0IGNyZWF0ZWRQdWJsaWNab25lczogUHVibGljSG9zdGVkWm9uZVtdID0gW107XG5cbi8vICAgICBjb25zdCBwcm9wczogSG9zdGVkWm9uZVByb3BzID0ge1xuLy8gICAgICAgICB6b25lTmFtZTogYXBwQ29uZmlnLkROUy5ab25lTmFtZVxuLy8gICAgIH07XG5cbi8vICAgICBjb25zdCBjcmVhdGVkWm9uZSA9IG5ldyBQdWJsaWNIb3N0ZWRab25lKHNjb3BlLCBgJHthcHBDb25maWcuRE5TLlpvbmVOYW1lV2l0aG91dFBlcmlvZH0taG9zdGVkLXpvbmVgLCBwcm9wcyk7XG5cbi8vICAgICBjcmVhdGVkUHVibGljWm9uZXMucHVzaChjcmVhdGVkWm9uZSk7XG5cbi8vICAgICB6b25lT3V0cHV0KHNjb3BlLCBjcmVhdGVkUHVibGljWm9uZXMpO1xuLy8gfTtcblxuLy8gY29uc3Qgem9uZU91dHB1dCA9IChzY29wZTogQ29uc3RydWN0LCBwdWJsaWNab25lczogUHVibGljSG9zdGVkWm9uZVtdKSA9PiB7XG5cbiAgICBcbi8vICAgICBsZXQgbmFtZVNlcnZlcnMgPSAnJztcbi8vICAgICBwdWJsaWNab25lcy5mb3JFYWNoKCh6b25lLCBpbmRleCkgPT4ge1xuLy8gICAgICAgICBjb25zb2xlLmxvZygnTmFtZSBTZXJ2ZXJzOicsIHpvbmUuaG9zdGVkWm9uZU5hbWVTZXJ2ZXJzKTsgICAgXG4vLyAgICAgICAgIHpvbmUuaG9zdGVkWm9uZU5hbWVTZXJ2ZXJzPy5mb3JFYWNoKChzZXJ2ZXIsIGlkeCkgPT4geyBcbi8vICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5hbWVTZXJ2ZXJzKTtcbi8vICAgICAgICAgICAgIG5hbWVTZXJ2ZXJzID0gYCR7bmFtZVNlcnZlcnN9IC0gJHtpZHh9OiAke3NlcnZlcn1gO1xuLy8gICAgICAgICB9LCAnJyk7XG5cbi8vICAgICAgICAgbmV3IENmbk91dHB1dChzY29wZSwgYHpvbmUtb3V0cHV0LSR7aW5kZXh9YCwge1xuLy8gICAgICAgICAgICAgdmFsdWU6IHpvbmUuaG9zdGVkWm9uZUlkLFxuLy8gICAgICAgICAgICAgZXhwb3J0TmFtZTogJ2hvc3RlZC16b25lLWlkJ1xuLy8gICAgICAgICB9KTtcblxuLy8gICAgICAgICBuYW1lU2VydmVycyA9ICcnO1xuLy8gICAgIH0pO1xuXG4vLyB9OyJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { MicroserviceProps } from "../../interfaces/MicroserviceProps";
|
|
3
|
+
export declare const createSecretManager: (scope: Construct) => void;
|
|
4
|
+
export declare const getSecretManager: (scope: Construct, prop: MicroserviceProps, secretManagerARN: string) => import("aws-cdk-lib/aws-secretsmanager").ISecret;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSecretManager = exports.createSecretManager = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
|
|
6
|
+
const createSecretManager = (scope) => {
|
|
7
|
+
const secureMgr = new aws_secretsmanager_1.Secret(scope, 'TemplatedSecret', {
|
|
8
|
+
secretName: 'GITHUB_TOKEN',
|
|
9
|
+
secretStringValue: aws_cdk_lib_1.SecretValue.unsafePlainText(process.env.GITHUB_TOKEN),
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
exports.createSecretManager = createSecretManager;
|
|
13
|
+
const getSecretManager = (scope, prop, secretManagerARN) => {
|
|
14
|
+
const secretMgr = aws_secretsmanager_1.Secret.fromSecretCompleteArn(scope, `${prop.GLOBALS.name}-secret-manager`, secretManagerARN);
|
|
15
|
+
return secretMgr;
|
|
16
|
+
};
|
|
17
|
+
exports.getSecretManager = getSecretManager;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL3NlY3VyaXR5TWFuYWdlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMEM7QUFDMUMsdUVBQXdEO0FBSWpELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQUU7SUFFdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSwyQkFBTSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtRQUNyRCxVQUFVLEVBQUUsY0FBYztRQUMxQixpQkFBaUIsRUFBRSx5QkFBVyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQWEsQ0FBQztLQUMxRSxDQUFDLENBQUM7QUFJTCxDQUFDLENBQUM7QUFUVyxRQUFBLG1CQUFtQix1QkFTOUI7QUFFSyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBZ0IsRUFBRSxJQUF1QixFQUN4RSxnQkFBd0IsRUFBRSxFQUFFO0lBRTVCLE1BQU0sU0FBUyxHQUFHLDJCQUFNLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGlCQUFpQixFQUN6RixnQkFBZ0IsQ0FBQyxDQUFDO0lBRXBCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQVBXLFFBQUEsZ0JBQWdCLG9CQU8zQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlY3JldFZhbHVlIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlUHJvcHMgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9NaWNyb3NlcnZpY2VQcm9wc1wiO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlU2VjcmV0TWFuYWdlciA9IChzY29wZTogQ29uc3RydWN0KSA9PiB7XG5cbiAgY29uc3Qgc2VjdXJlTWdyID0gbmV3IFNlY3JldChzY29wZSwgJ1RlbXBsYXRlZFNlY3JldCcsIHtcbiAgICBzZWNyZXROYW1lOiAnR0lUSFVCX1RPS0VOJyxcbiAgICBzZWNyZXRTdHJpbmdWYWx1ZTogU2VjcmV0VmFsdWUudW5zYWZlUGxhaW5UZXh0KHByb2Nlc3MuZW52LkdJVEhVQl9UT0tFTiEpLFxuICB9KTtcblxuXG5cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWNyZXRNYW5hZ2VyID0gKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3A6IE1pY3Jvc2VydmljZVByb3BzLFxuICBzZWNyZXRNYW5hZ2VyQVJOOiBzdHJpbmcpID0+IHtcblxuICBjb25zdCBzZWNyZXRNZ3IgPSBTZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHNjb3BlLCBgJHtwcm9wLkdMT0JBTFMubmFtZX0tc2VjcmV0LW1hbmFnZXJgLFxuICAgIHNlY3JldE1hbmFnZXJBUk4pO1xuXG4gIHJldHVybiBzZWNyZXRNZ3I7XG59OyJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#
|