@orcabus/platform-cdk-constructs 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +326 -2
- package/api-gateway/api-gateway.js +1 -1
- package/deployment-stack-pipeline/artifact-bucket.js +1 -1
- package/deployment-stack-pipeline/pipeline.js +4 -3
- package/dynamodb/index.js +2 -2
- package/ecs/index.js +1 -1
- package/index.d.ts +3 -0
- package/index.js +5 -2
- package/index.ts +4 -0
- package/jest.config.js +6 -0
- package/lambda/index.js +1 -1
- package/named-lambda-role/README.md +13 -0
- package/named-lambda-role/index.d.ts +26 -0
- package/named-lambda-role/index.js +21 -0
- package/package.json +7 -3
- package/provider-function/README.md +41 -0
- package/provider-function/index.d.ts +48 -0
- package/provider-function/index.js +53 -0
- package/shared-config/README.md +3 -0
- package/shared-config/file-manager.d.ts +10 -0
- package/shared-config/file-manager.js +44 -0
- package/shared-config/index.d.ts +1 -0
- package/shared-config/index.js +38 -0
- package/test/providerFunction.test.d.ts +1 -0
- package/test/providerFunction.test.js +121 -0
- package/utils/index.d.ts +9 -0
- package/utils/index.js +20 -2
package/.jsii
CHANGED
|
@@ -4058,6 +4058,43 @@
|
|
|
4058
4058
|
},
|
|
4059
4059
|
"symbolId": "lambda/index:"
|
|
4060
4060
|
},
|
|
4061
|
+
"@orcabus/platform-cdk-constructs.namedLambdaRole": {
|
|
4062
|
+
"locationInModule": {
|
|
4063
|
+
"filename": "index.ts",
|
|
4064
|
+
"line": 20
|
|
4065
|
+
},
|
|
4066
|
+
"readme": {
|
|
4067
|
+
"markdown": "# NamedLambdaRole\n\nA construct for naming a role that is assumed by a Lambda function.\n\nUsage example:\n\n```ts\n// This uses `lambda.amazonaws.com' as the `assumedBy` service principal.\nnew NamedLambdaRole(this, id, {\n name: \"role-name\",\n maxSessionDuration: Duration.hours(12),\n});\n```\n"
|
|
4068
|
+
},
|
|
4069
|
+
"symbolId": "named-lambda-role/index:"
|
|
4070
|
+
},
|
|
4071
|
+
"@orcabus/platform-cdk-constructs.provider": {
|
|
4072
|
+
"locationInModule": {
|
|
4073
|
+
"filename": "index.ts",
|
|
4074
|
+
"line": 19
|
|
4075
|
+
},
|
|
4076
|
+
"readme": {
|
|
4077
|
+
"markdown": "# ProviderFunction\n\nThe provider function invokes the provider framework:\nhttps://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources-readme.html#provider-framework.\n\nThis is useful for initiating custom actions that should fail a CloudFormation stack if they do not succeed, such\nas migrating databases.\n\nUsage example:\n\n```ts\n// Create a Lambda function which should conform the to provider framework:\n// https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources.Provider.html#example\nconst handler = new lambda.Function(this, \"Handler\", {\n runtime: lambda.Runtime.NODEJS_20_X,\n handler: \"index.handler\",\n code: lambda.Code.fromInline(`\n exports.handler = async (event, context) => {\n return {\n PhysicalResourceId: '1234',\n NoEcho: true,\n Data: {\n hello: 'world',\n },\n };\n };\n `),\n});\n\nconst vpc = Vpc.fromLookup(this, \"Vpc\", {\n vpcName: \"main-vpc\",\n tags: {\n Stack: \"networking\",\n },\n});\n\nnew ProviderFunction(this, \"ProviderFunction\", {\n vpc,\n function: handler,\n});\n```\n"
|
|
4078
|
+
},
|
|
4079
|
+
"symbolId": "provider-function/index:"
|
|
4080
|
+
},
|
|
4081
|
+
"@orcabus/platform-cdk-constructs.sharedConfig": {
|
|
4082
|
+
"locationInModule": {
|
|
4083
|
+
"filename": "index.ts",
|
|
4084
|
+
"line": 21
|
|
4085
|
+
},
|
|
4086
|
+
"readme": {
|
|
4087
|
+
"markdown": "### Shared config\n\nThis package contains the shared config like VPC settings, buckets, roles, etc used across OrcaBus microservices.\n"
|
|
4088
|
+
},
|
|
4089
|
+
"symbolId": "shared-config/index:"
|
|
4090
|
+
},
|
|
4091
|
+
"@orcabus/platform-cdk-constructs.sharedConfig.fileManager": {
|
|
4092
|
+
"locationInModule": {
|
|
4093
|
+
"filename": "shared-config/index.ts",
|
|
4094
|
+
"line": 1
|
|
4095
|
+
},
|
|
4096
|
+
"symbolId": "shared-config/file-manager:"
|
|
4097
|
+
},
|
|
4061
4098
|
"@orcabus/platform-cdk-constructs.utils": {
|
|
4062
4099
|
"locationInModule": {
|
|
4063
4100
|
"filename": "index.ts",
|
|
@@ -5849,8 +5886,295 @@
|
|
|
5849
5886
|
}
|
|
5850
5887
|
],
|
|
5851
5888
|
"symbolId": "lambda/index:PythonUvFunctionProps"
|
|
5889
|
+
},
|
|
5890
|
+
"@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole": {
|
|
5891
|
+
"assembly": "@orcabus/platform-cdk-constructs",
|
|
5892
|
+
"base": "aws-cdk-lib.aws_iam.Role",
|
|
5893
|
+
"docs": {
|
|
5894
|
+
"stability": "experimental",
|
|
5895
|
+
"summary": "A construct which represents a named role that a Lambda function can assume."
|
|
5896
|
+
},
|
|
5897
|
+
"fqn": "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole",
|
|
5898
|
+
"initializer": {
|
|
5899
|
+
"docs": {
|
|
5900
|
+
"stability": "experimental"
|
|
5901
|
+
},
|
|
5902
|
+
"locationInModule": {
|
|
5903
|
+
"filename": "named-lambda-role/index.ts",
|
|
5904
|
+
"line": 27
|
|
5905
|
+
},
|
|
5906
|
+
"parameters": [
|
|
5907
|
+
{
|
|
5908
|
+
"name": "scope",
|
|
5909
|
+
"type": {
|
|
5910
|
+
"fqn": "constructs.Construct"
|
|
5911
|
+
}
|
|
5912
|
+
},
|
|
5913
|
+
{
|
|
5914
|
+
"name": "id",
|
|
5915
|
+
"type": {
|
|
5916
|
+
"primitive": "string"
|
|
5917
|
+
}
|
|
5918
|
+
},
|
|
5919
|
+
{
|
|
5920
|
+
"name": "props",
|
|
5921
|
+
"optional": true,
|
|
5922
|
+
"type": {
|
|
5923
|
+
"fqn": "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRoleProps"
|
|
5924
|
+
}
|
|
5925
|
+
}
|
|
5926
|
+
]
|
|
5927
|
+
},
|
|
5928
|
+
"kind": "class",
|
|
5929
|
+
"locationInModule": {
|
|
5930
|
+
"filename": "named-lambda-role/index.ts",
|
|
5931
|
+
"line": 26
|
|
5932
|
+
},
|
|
5933
|
+
"name": "NamedLambdaRole",
|
|
5934
|
+
"namespace": "namedLambdaRole",
|
|
5935
|
+
"symbolId": "named-lambda-role/index:NamedLambdaRole"
|
|
5936
|
+
},
|
|
5937
|
+
"@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRoleProps": {
|
|
5938
|
+
"assembly": "@orcabus/platform-cdk-constructs",
|
|
5939
|
+
"datatype": true,
|
|
5940
|
+
"docs": {
|
|
5941
|
+
"stability": "experimental",
|
|
5942
|
+
"summary": "Props for the named lambda role construct."
|
|
5943
|
+
},
|
|
5944
|
+
"fqn": "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRoleProps",
|
|
5945
|
+
"kind": "interface",
|
|
5946
|
+
"locationInModule": {
|
|
5947
|
+
"filename": "named-lambda-role/index.ts",
|
|
5948
|
+
"line": 8
|
|
5949
|
+
},
|
|
5950
|
+
"name": "NamedLambdaRoleProps",
|
|
5951
|
+
"namespace": "namedLambdaRole",
|
|
5952
|
+
"properties": [
|
|
5953
|
+
{
|
|
5954
|
+
"abstract": true,
|
|
5955
|
+
"docs": {
|
|
5956
|
+
"stability": "experimental",
|
|
5957
|
+
"summary": "Description for the role."
|
|
5958
|
+
},
|
|
5959
|
+
"immutable": true,
|
|
5960
|
+
"locationInModule": {
|
|
5961
|
+
"filename": "named-lambda-role/index.ts",
|
|
5962
|
+
"line": 16
|
|
5963
|
+
},
|
|
5964
|
+
"name": "description",
|
|
5965
|
+
"optional": true,
|
|
5966
|
+
"type": {
|
|
5967
|
+
"primitive": "string"
|
|
5968
|
+
}
|
|
5969
|
+
},
|
|
5970
|
+
{
|
|
5971
|
+
"abstract": true,
|
|
5972
|
+
"docs": {
|
|
5973
|
+
"stability": "experimental",
|
|
5974
|
+
"summary": "Specify the maximum session duration."
|
|
5975
|
+
},
|
|
5976
|
+
"immutable": true,
|
|
5977
|
+
"locationInModule": {
|
|
5978
|
+
"filename": "named-lambda-role/index.ts",
|
|
5979
|
+
"line": 20
|
|
5980
|
+
},
|
|
5981
|
+
"name": "maxSessionDuration",
|
|
5982
|
+
"optional": true,
|
|
5983
|
+
"type": {
|
|
5984
|
+
"fqn": "aws-cdk-lib.Duration"
|
|
5985
|
+
}
|
|
5986
|
+
},
|
|
5987
|
+
{
|
|
5988
|
+
"abstract": true,
|
|
5989
|
+
"docs": {
|
|
5990
|
+
"stability": "experimental",
|
|
5991
|
+
"summary": "The name of the role, automatically generated if not specified."
|
|
5992
|
+
},
|
|
5993
|
+
"immutable": true,
|
|
5994
|
+
"locationInModule": {
|
|
5995
|
+
"filename": "named-lambda-role/index.ts",
|
|
5996
|
+
"line": 12
|
|
5997
|
+
},
|
|
5998
|
+
"name": "name",
|
|
5999
|
+
"optional": true,
|
|
6000
|
+
"type": {
|
|
6001
|
+
"primitive": "string"
|
|
6002
|
+
}
|
|
6003
|
+
}
|
|
6004
|
+
],
|
|
6005
|
+
"symbolId": "named-lambda-role/index:NamedLambdaRoleProps"
|
|
6006
|
+
},
|
|
6007
|
+
"@orcabus/platform-cdk-constructs.provider.ProviderFunction": {
|
|
6008
|
+
"assembly": "@orcabus/platform-cdk-constructs",
|
|
6009
|
+
"base": "constructs.Construct",
|
|
6010
|
+
"docs": {
|
|
6011
|
+
"remarks": "This is useful for performing database actions such as migrations during CloudFormation stack creation, where CDK\ndeployment will fail if the function fails. To use this construct the Lambda function must return values according\nto the provider framework.",
|
|
6012
|
+
"stability": "experimental",
|
|
6013
|
+
"summary": "A construct for invoking a Lambda function using the CDK provider framework: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources-readme.html#provider-framework."
|
|
6014
|
+
},
|
|
6015
|
+
"fqn": "@orcabus/platform-cdk-constructs.provider.ProviderFunction",
|
|
6016
|
+
"initializer": {
|
|
6017
|
+
"docs": {
|
|
6018
|
+
"stability": "experimental"
|
|
6019
|
+
},
|
|
6020
|
+
"locationInModule": {
|
|
6021
|
+
"filename": "provider-function/index.ts",
|
|
6022
|
+
"line": 45
|
|
6023
|
+
},
|
|
6024
|
+
"parameters": [
|
|
6025
|
+
{
|
|
6026
|
+
"name": "scope",
|
|
6027
|
+
"type": {
|
|
6028
|
+
"fqn": "constructs.Construct"
|
|
6029
|
+
}
|
|
6030
|
+
},
|
|
6031
|
+
{
|
|
6032
|
+
"name": "id",
|
|
6033
|
+
"type": {
|
|
6034
|
+
"primitive": "string"
|
|
6035
|
+
}
|
|
6036
|
+
},
|
|
6037
|
+
{
|
|
6038
|
+
"name": "props",
|
|
6039
|
+
"type": {
|
|
6040
|
+
"fqn": "@orcabus/platform-cdk-constructs.provider.ProviderFunctionProps"
|
|
6041
|
+
}
|
|
6042
|
+
}
|
|
6043
|
+
]
|
|
6044
|
+
},
|
|
6045
|
+
"kind": "class",
|
|
6046
|
+
"locationInModule": {
|
|
6047
|
+
"filename": "provider-function/index.ts",
|
|
6048
|
+
"line": 41
|
|
6049
|
+
},
|
|
6050
|
+
"name": "ProviderFunction",
|
|
6051
|
+
"namespace": "provider",
|
|
6052
|
+
"properties": [
|
|
6053
|
+
{
|
|
6054
|
+
"docs": {
|
|
6055
|
+
"stability": "experimental",
|
|
6056
|
+
"summary": "Get the function."
|
|
6057
|
+
},
|
|
6058
|
+
"immutable": true,
|
|
6059
|
+
"locationInModule": {
|
|
6060
|
+
"filename": "provider-function/index.ts",
|
|
6061
|
+
"line": 82
|
|
6062
|
+
},
|
|
6063
|
+
"name": "function",
|
|
6064
|
+
"type": {
|
|
6065
|
+
"fqn": "aws-cdk-lib.aws_lambda.IFunction"
|
|
6066
|
+
}
|
|
6067
|
+
},
|
|
6068
|
+
{
|
|
6069
|
+
"docs": {
|
|
6070
|
+
"stability": "experimental",
|
|
6071
|
+
"summary": "Get the response of the Lambda function."
|
|
6072
|
+
},
|
|
6073
|
+
"immutable": true,
|
|
6074
|
+
"locationInModule": {
|
|
6075
|
+
"filename": "provider-function/index.ts",
|
|
6076
|
+
"line": 75
|
|
6077
|
+
},
|
|
6078
|
+
"name": "response",
|
|
6079
|
+
"type": {
|
|
6080
|
+
"primitive": "string"
|
|
6081
|
+
}
|
|
6082
|
+
}
|
|
6083
|
+
],
|
|
6084
|
+
"symbolId": "provider-function/index:ProviderFunction"
|
|
6085
|
+
},
|
|
6086
|
+
"@orcabus/platform-cdk-constructs.provider.ProviderFunctionProps": {
|
|
6087
|
+
"assembly": "@orcabus/platform-cdk-constructs",
|
|
6088
|
+
"datatype": true,
|
|
6089
|
+
"docs": {
|
|
6090
|
+
"stability": "experimental",
|
|
6091
|
+
"summary": "Props for the resource invoke construct."
|
|
6092
|
+
},
|
|
6093
|
+
"fqn": "@orcabus/platform-cdk-constructs.provider.ProviderFunctionProps",
|
|
6094
|
+
"kind": "interface",
|
|
6095
|
+
"locationInModule": {
|
|
6096
|
+
"filename": "provider-function/index.ts",
|
|
6097
|
+
"line": 11
|
|
6098
|
+
},
|
|
6099
|
+
"name": "ProviderFunctionProps",
|
|
6100
|
+
"namespace": "provider",
|
|
6101
|
+
"properties": [
|
|
6102
|
+
{
|
|
6103
|
+
"abstract": true,
|
|
6104
|
+
"docs": {
|
|
6105
|
+
"stability": "experimental",
|
|
6106
|
+
"summary": "The provider function."
|
|
6107
|
+
},
|
|
6108
|
+
"immutable": true,
|
|
6109
|
+
"locationInModule": {
|
|
6110
|
+
"filename": "provider-function/index.ts",
|
|
6111
|
+
"line": 19
|
|
6112
|
+
},
|
|
6113
|
+
"name": "function",
|
|
6114
|
+
"type": {
|
|
6115
|
+
"fqn": "aws-cdk-lib.aws_lambda.IFunction"
|
|
6116
|
+
}
|
|
6117
|
+
},
|
|
6118
|
+
{
|
|
6119
|
+
"abstract": true,
|
|
6120
|
+
"docs": {
|
|
6121
|
+
"stability": "experimental",
|
|
6122
|
+
"summary": "Vpc for the function."
|
|
6123
|
+
},
|
|
6124
|
+
"immutable": true,
|
|
6125
|
+
"locationInModule": {
|
|
6126
|
+
"filename": "provider-function/index.ts",
|
|
6127
|
+
"line": 15
|
|
6128
|
+
},
|
|
6129
|
+
"name": "vpc",
|
|
6130
|
+
"type": {
|
|
6131
|
+
"fqn": "aws-cdk-lib.aws_ec2.IVpc"
|
|
6132
|
+
}
|
|
6133
|
+
},
|
|
6134
|
+
{
|
|
6135
|
+
"abstract": true,
|
|
6136
|
+
"docs": {
|
|
6137
|
+
"remarks": "By default,\nthis is the s3Key of the Lambda code asset, which is derived from the asset hash. This is used to ensure that\nthe custom resource is updated whenever the Lambda function changes, so that the function gets called again.\nAdd a constant value here to override this behaviour.",
|
|
6138
|
+
"stability": "experimental",
|
|
6139
|
+
"summary": "An additional hash property that can be used to determine if the custom resource should be updated."
|
|
6140
|
+
},
|
|
6141
|
+
"immutable": true,
|
|
6142
|
+
"locationInModule": {
|
|
6143
|
+
"filename": "provider-function/index.ts",
|
|
6144
|
+
"line": 30
|
|
6145
|
+
},
|
|
6146
|
+
"name": "additionalHash",
|
|
6147
|
+
"optional": true,
|
|
6148
|
+
"type": {
|
|
6149
|
+
"primitive": "string"
|
|
6150
|
+
}
|
|
6151
|
+
},
|
|
6152
|
+
{
|
|
6153
|
+
"abstract": true,
|
|
6154
|
+
"docs": {
|
|
6155
|
+
"stability": "experimental",
|
|
6156
|
+
"summary": "Properties that get defined in the template and passed to the Lambda function via `ResourceProperties`."
|
|
6157
|
+
},
|
|
6158
|
+
"immutable": true,
|
|
6159
|
+
"locationInModule": {
|
|
6160
|
+
"filename": "provider-function/index.ts",
|
|
6161
|
+
"line": 23
|
|
6162
|
+
},
|
|
6163
|
+
"name": "resourceProperties",
|
|
6164
|
+
"optional": true,
|
|
6165
|
+
"type": {
|
|
6166
|
+
"collection": {
|
|
6167
|
+
"elementtype": {
|
|
6168
|
+
"primitive": "any"
|
|
6169
|
+
},
|
|
6170
|
+
"kind": "map"
|
|
6171
|
+
}
|
|
6172
|
+
}
|
|
6173
|
+
}
|
|
6174
|
+
],
|
|
6175
|
+
"symbolId": "provider-function/index:ProviderFunctionProps"
|
|
5852
6176
|
}
|
|
5853
6177
|
},
|
|
5854
|
-
"version": "0.0.
|
|
5855
|
-
"fingerprint": "
|
|
6178
|
+
"version": "0.0.9",
|
|
6179
|
+
"fingerprint": "o1jZ9I/TYPYCUQsSHvuMBS2Y/wJxsz8tnR6u6HAaYcg="
|
|
5856
6180
|
}
|
|
@@ -15,7 +15,7 @@ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
|
15
15
|
const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
|
|
16
16
|
const config_1 = require("./config");
|
|
17
17
|
class OrcaBusApiGateway extends constructs_1.Construct {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.9" };
|
|
19
19
|
/**
|
|
20
20
|
* The AWS region where the API Gateway is deployed.
|
|
21
21
|
*/
|
|
@@ -13,7 +13,7 @@ exports.CROSS_DEPLOYMENT_ARTIFACT_BUCKET_NAME = "orcabus-cross-deployment-codepi
|
|
|
13
13
|
exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ALIAS = "orcabus-cross-deployment-codepipeline-artifact";
|
|
14
14
|
exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ARN_SSM_PARAMETER_NAME = "/orcabus/deployment-stack-pipeline/artifact-bucket/kms-key-arn";
|
|
15
15
|
class CrossDeploymentArtifactBucket extends constructs_1.Construct {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket", version: "0.0.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket", version: "0.0.9" };
|
|
17
17
|
/**
|
|
18
18
|
* The S3 bucket used to store artifacts for cross-deployment pipelines.
|
|
19
19
|
*/
|
|
@@ -31,7 +31,7 @@ exports.DEFAULT_SYNTH_STEP_PARTIAL_BUILD_SPEC = {
|
|
|
31
31
|
* before using this construct.
|
|
32
32
|
*/
|
|
33
33
|
class DeploymentStackPipeline extends constructs_1.Construct {
|
|
34
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.
|
|
34
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.9" };
|
|
35
35
|
/**
|
|
36
36
|
* The code pipeline construct that is created.
|
|
37
37
|
*/
|
|
@@ -45,7 +45,8 @@ class DeploymentStackPipeline extends constructs_1.Construct {
|
|
|
45
45
|
actionName: codeStarSourceActionName,
|
|
46
46
|
triggerOnPush: true,
|
|
47
47
|
});
|
|
48
|
-
const
|
|
48
|
+
const isReusingExistingArtifactBucket = props.reuseExistingArtifactBucket ?? true;
|
|
49
|
+
const artifactBucket = isReusingExistingArtifactBucket
|
|
49
50
|
? artifact_bucket_1.CrossDeploymentArtifactBucket.fromLookup(this).artifactBucket
|
|
50
51
|
: undefined;
|
|
51
52
|
this.pipeline = new aws_codepipeline_1.Pipeline(this, "DeploymentCodePipeline", {
|
|
@@ -146,4 +147,4 @@ class DeploymentStage extends aws_cdk_lib_1.Stage {
|
|
|
146
147
|
});
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUF1RTtBQUN2RSw2REFJbUM7QUFDbkMsaURBQXNEO0FBQ3RELHFEQUsrQjtBQUMvQixtRUFLc0M7QUFDdEMscUNBSWtCO0FBQ2xCLHlEQUFvRTtBQUNwRSxxRkFBbUU7QUFDbkUsdURBQWtFO0FBRWxFOztHQUVHO0FBQ1UsUUFBQSxxQ0FBcUMsR0FBRztJQUNuRCxNQUFNLEVBQUU7UUFDTixPQUFPLEVBQUU7WUFDUCxrQkFBa0IsRUFBRTtnQkFDbEIsTUFBTSxFQUFFLE1BQU07YUFDZjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBK0dGOzs7OztHQUtHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUzs7SUFDcEQ7O09BRUc7SUFDTSxRQUFRLENBQVc7SUFFNUIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFdBQVcsR0FBRyx5QkFBZSxDQUFDLHVCQUF1QixDQUN6RCxJQUFJLEVBQ0osOEJBQThCLENBQy9CLENBQUM7UUFDRixNQUFNLHdCQUF3QixHQUFHLGNBQWMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyw4QkFBa0IsQ0FBQyxVQUFVLENBQzlDLFdBQVcsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUM3QixLQUFLLENBQUMsWUFBWSxFQUNsQjtZQUNFLGFBQWEsRUFBRSxXQUFXO1lBQzFCLFVBQVUsRUFBRSx3QkFBd0I7WUFDcEMsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FDRixDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQywyQkFBMkI7WUFDeEQsQ0FBQyxDQUFDLCtDQUE2QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjO1lB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QyxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFNUMsSUFBSSxNQUFNLEdBQUcsOEJBQThCLFVBQVUsRUFBRSxDQUFDO1FBQ3hELElBQUksWUFBWSxLQUFLLFNBQVMsSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLFlBQVksRUFBRSxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzlCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFO2dCQUNKLG1CQUFtQixFQUFFLFNBQVM7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLG1CQUFtQixFQUFFLFNBQVM7Z0JBQzlCLGtCQUFrQixFQUFFLE1BQU07YUFDM0I7WUFDRCxHQUFHLGFBQWE7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEVudmlyb25tZW50LCBSZW1vdmFsUG9saWN5LCBTdGFjaywgU3RhZ2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIEJ1aWxkU3BlYyxcbiAgQ29tcHV0ZVR5cGUsXG4gIExpbnV4QXJtQnVpbGRJbWFnZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIjtcbmltcG9ydCB7IFN0cmluZ1BhcmFtZXRlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3NtXCI7XG5pbXBvcnQge1xuICBDb2RlQnVpbGRTdGVwLFxuICBDb2RlUGlwZWxpbmUsXG4gIENvZGVQaXBlbGluZVNvdXJjZSxcbiAgTWFudWFsQXBwcm92YWxTdGVwLFxufSBmcm9tIFwiYXdzLWNkay1saWIvcGlwZWxpbmVzXCI7XG5pbXBvcnQge1xuICBQaXBlbGluZSxcbiAgQ2ZuUGlwZWxpbmUsXG4gIFBpcGVsaW5lVHlwZSxcbiAgUGlwZWxpbmVOb3RpZmljYXRpb25FdmVudHMsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQge1xuICBCRVRBX0VOVklST05NRU5ULFxuICBHQU1NQV9FTlZJUk9OTUVOVCxcbiAgUFJPRF9FTlZJUk9OTUVOVCxcbn0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jaGF0Ym90XCI7XG5pbXBvcnQgeyBEZXRhaWxUeXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnNcIjtcbmltcG9ydCB7IENyb3NzRGVwbG95bWVudEFydGlmYWN0QnVja2V0IH0gZnJvbSBcIi4vYXJ0aWZhY3QtYnVja2V0XCI7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcGFydGlhbCBidWlsZCBzcGVjIGZvciB0aGUgc3ludGggc3RlcCBpbiB0aGUgcGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NZTlRIX1NURVBfUEFSVElBTF9CVUlMRF9TUEVDID0ge1xuICBwaGFzZXM6IHtcbiAgICBpbnN0YWxsOiB7XG4gICAgICBcInJ1bnRpbWUtdmVyc2lvbnNcIjoge1xuICAgICAgICBub2RlanM6IFwiMjIueFwiLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUVudlByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIGJldGEgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGJldGE6IEVudmlyb25tZW50O1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGZvciB0aGUgZ2FtbWEgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGdhbW1hOiBFbnZpcm9ubWVudDtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIHByb2Qgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IEVudmlyb25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQ29uZmlnUHJvcHMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBiZXRhIChkZXYpIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBiZXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnYW1tYSAoc3RnKSBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtbWE6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHByb2Qgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudFN0YWNrUGlwZWxpbmVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIGJyYW5jaCBuYW1lIHRoZSBwaXBlbGluZSB3aWxsIGxpc3RlbiB0by5cbiAgICogQXZvaWQgdXNpbmcgYnJhbmNoIG5hbWVzIHRoYXQgY29udGFpbiBzcGVjaWFsIGNoYXJhY3RlcnMgc3VjaCBhcyBwYXJlbnRoZXNlcy5cbiAgICogQWxsb3dlZCBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlOiBcIisgLSA9IC4gXyA6IC8gQFwiLlxuICAgKiBUaGlzIHJlc3RyaWN0aW9uIGlzIGR1ZSB0byBBV1MgcmVzb3VyY2UgdGFnZ2luZyByZXF1aXJlbWVudHMuXG4gICAqL1xuICByZWFkb25seSBnaXRodWJCcmFuY2g6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IG5hbWUgdGhhdCBleGlzdCBpbiB0aGUgJ09yY2FCdXMnIGdpdGh1YiBvcmdhbmlzYXRpb24uIGUuZy4gYGEtbWljcm8tc2VydmljZS1yZXBvYFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViUmVwbzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0YWNrIHRvIHdoaWNoIHRoZSBwaXBlbGluZSB3aWxsIGJlIGRlcGxveWluZyB0byBpdHMgcmVzcGVjdGl2ZSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSBzdGFjazogYW55O1xuICAvKipcbiAgICogVGhlIHN0YWNrIG5hbWUgKGluIGNsb3VkZm9ybWF0aW9uKSBmb3IgdGhlIHN0YWNrIGRlZmluZWQgaW4gYHN0YWNrYC4gVGhlIHN0YWNrIG5hbWUgd2lsbCBwcmVwZW5kIHdpdGggdGhlIHN0YWdlXG4gICAqIG5hbWUgZS5nLiBgT3JjYUJ1c0JldGEtPHN0YWNrTmFtZT5gLCBgT3JjYUJ1c0dhbW1hLTxzdGFja05hbWU+YCwgYE9yY2FCdXNQcm9kLTxzdGFja05hbWU+YFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgY29uZmlndXJhdGlvbi9jb25zdGFudHMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgc3RhY2sgcHJvcHMuXG4gICAqL1xuICByZWFkb25seSBzdGFja0NvbmZpZzogU3RhY2tDb25maWdQcm9wcztcbiAgLyoqXG4gICAqIFRoZSBwaXBlbGluZSBuYW1lIGluIHRoZSBiYXN0aW9uIGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmaWxlIHBhdGhzIHRvIHRyaWdnZXIgdGhlIHBpcGVsaW5lLiBlLmcuIFtcInN0YXRlbGVzcy8qKlwiXVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1jb2RlcGlwZWxpbmUtcGlwZWxpbmUtZ2l0ZmlsZXBhdGhmaWx0ZXJjcml0ZXJpYS5odG1sXG4gICAqXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHRvIHJ1biB0byBzeW50aCB0aGUgY2RrIHN0YWNrIHdoaWNoIGFsc28gaW5zdGFsbGluZyB0aGUgY2RrIGRlcGVuZGVuY2llcy4gZS5nLiBbXCJ5YXJuIGluc3RhbGwgLS1pbW11dGFibGVcIiwgXCJ5YXJuIGNkayBzeW50aFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgY2RrU3ludGhDbWQ6IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIHdoZXJlIHRoZSBjZGsgb3V0cHV0IHdpbGwgYmUgc3RvcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBjZGtPdXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBDb2RlQnVpbGQgc3RlcCBkdXJpbmcgdGhlIENESyBzeW50aCBwaGFzZS4gSXQgd2lsbCBwYXNzZWQgYXMgdGhlIGBwYXJ0aWFsQnVpbGRTcGVjYCB0byB0aGUgYENvZGVCdWlsZFN0ZXBgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBERUZBVUxUX1NZTlRIX1NURVBfUEFSVElBTF9CVUlMRF9TUEVDXG4gICAqL1xuICByZWFkb25seSBzeW50aEJ1aWxkU3BlYz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBUaGUgc3RhZ2UgZW52aXJvbm1lbnQgZm9yIHRoZSBkZXBsb3ltZW50IHN0YWNrXG4gICAqL1xuICByZWFkb25seSBzdGFnZUVudj86IFN0YWdlRW52UHJvcHM7XG4gIC8qKlxuICAgKiBFbmFibGUgbm90aWZpY2F0aW9uIHRvIHRoZSAnYWxlcnRzLWJ1aWxkJyBzbGFjayBjaGFubmVsLlxuICAgKiBAZGVmYXVsdCBUcnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVTbGFja05vdGlmaWNhdGlvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgcGlwZWxpbmUgbm90aWZpY2F0aW9uIGV2ZW50cyB0aGF0IHdpbGwgdHJpZ2dlciBhIFNsYWNrIGNoYW5uZWwgbm90aWZpY2F0aW9uLlxuICAgKiBPbmx5IGFwcGxpZXMgaWYgYGVuYWJsZVNsYWNrTm90aWZpY2F0aW9uYCBpcyBzZXQgdG8gdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgW1BpcGVsaW5lTm90aWZpY2F0aW9uRXZlbnRzLlBJUEVMSU5FX0VYRUNVVElPTl9GQUlMRURdIOKAk1xuICAgKiAgIE9ubHkgZmFpbGVkIHBpcGVsaW5lIGV4ZWN1dGlvbnMgd2lsbCB0cmlnZ2VyIGEgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uRXZlbnRzPzogUGlwZWxpbmVOb3RpZmljYXRpb25FdmVudHNbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXVzZSB0aGUgZXhpc3RpbmcgYXJ0aWZhY3QgYnVja2V0IGZvciBjcm9zcy1kZXBsb3ltZW50IHBpcGVsaW5lcy5cbiAgICogSWYgc2V0IHRvIHRydWUsIGl0IHdpbGwgbG9vayB1cCB0aGUgZXhpc3RpbmcgYXJ0aWZhY3QgYnVja2V0IGluIHRoZSBUT09MQ0hBSU4gYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgVHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmV1c2VFeGlzdGluZ0FydGlmYWN0QnVja2V0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIENESyBjb25zdHJ1Y3QgdGhhdCBjcmVhdGVzIGEgZGVwbG95bWVudCBwaXBlbGluZSBhY3Jvc3MgZW52aXJvbm1lbnRzIGZvciB0aGUgT3JjYUJ1cyBwcm9qZWN0LlxuICpcbiAqIFByZXJlcXVpc2l0ZTogRW5zdXJlIHRoYXQgdGhlIFwiQ3Jvc3NEZXBsb3ltZW50QXJ0aWZhY3RCdWNrZXRcIiBzdGFjayBpcyBkZXBsb3llZCBpbiB0aGUgVE9PTENIQUlOIGFjY291bnRcbiAqIGJlZm9yZSB1c2luZyB0aGlzIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIERlcGxveW1lbnRTdGFja1BpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBjb2RlIHBpcGVsaW5lIGNvbnN0cnVjdCB0aGF0IGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZTogUGlwZWxpbmU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBEZXBsb3ltZW50U3RhY2tQaXBlbGluZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY29kZVN0YXJBcm4gPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICB0aGlzLFxuICAgICAgXCIvb3JjYWJ1cy9jb2Rlc3Rhcl9naXRodWJfYXJuXCIsXG4gICAgKTtcbiAgICBjb25zdCBjb2RlU3RhclNvdXJjZUFjdGlvbk5hbWUgPSBcInBpcGVsaW5lLXNyY1wiO1xuICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihcbiAgICAgIGBPcmNhQnVzLyR7cHJvcHMuZ2l0aHViUmVwb31gLFxuICAgICAgcHJvcHMuZ2l0aHViQnJhbmNoLFxuICAgICAge1xuICAgICAgICBjb25uZWN0aW9uQXJuOiBjb2RlU3RhckFybixcbiAgICAgICAgYWN0aW9uTmFtZTogY29kZVN0YXJTb3VyY2VBY3Rpb25OYW1lLFxuICAgICAgICB0cmlnZ2VyT25QdXNoOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3QgYXJ0aWZhY3RCdWNrZXQgPSAhIXByb3BzLnJldXNlRXhpc3RpbmdBcnRpZmFjdEJ1Y2tldFxuICAgICAgPyBDcm9zc0RlcGxveW1lbnRBcnRpZmFjdEJ1Y2tldC5mcm9tTG9va3VwKHRoaXMpLmFydGlmYWN0QnVja2V0XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMucGlwZWxpbmUgPSBuZXcgUGlwZWxpbmUodGhpcywgXCJEZXBsb3ltZW50Q29kZVBpcGVsaW5lXCIsIHtcbiAgICAgIGFydGlmYWN0QnVja2V0OiBhcnRpZmFjdEJ1Y2tldCxcbiAgICAgIHBpcGVsaW5lVHlwZTogUGlwZWxpbmVUeXBlLlYyLFxuICAgICAgcGlwZWxpbmVOYW1lOiBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgICBjcm9zc0FjY291bnRLZXlzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmZpbGVQYXRocykge1xuICAgICAgLy8gQWRkIGV2ZW50IGZpbHRlciB0byBvbmx5IHRyaWdnZXIgaWYgdGhlIHB1c2ggZXZlbnQgaXMgZnJvbSBgZGVwbG95YCBkaXJlY3RvcnlcbiAgICAgIGNvbnN0IGNmblBpcGVsaW5lID0gdGhpcy5waXBlbGluZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5QaXBlbGluZTtcbiAgICAgIGNmblBpcGVsaW5lLmFkZFByb3BlcnR5T3ZlcnJpZGUoXCJUcmlnZ2Vyc1wiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBHaXRDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICBQdXNoOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBCcmFuY2hlczoge1xuICAgICAgICAgICAgICAgICAgSW5jbHVkZXM6IFtwcm9wcy5naXRodWJCcmFuY2hdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgRmlsZVBhdGhzOiB7XG4gICAgICAgICAgICAgICAgICBJbmNsdWRlczogcHJvcHMuZmlsZVBhdGhzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgU291cmNlQWN0aW9uTmFtZTogY29kZVN0YXJTb3VyY2VBY3Rpb25OYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgUHJvdmlkZXJUeXBlOiBcIkNvZGVTdGFyU291cmNlQ29ubmVjdGlvblwiLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBzeW50aEJ1aWxkU3BlYyA9IERFRkFVTFRfU1lOVEhfU1RFUF9QQVJUSUFMX0JVSUxEX1NQRUMgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNka1BpcGVsaW5lID0gbmV3IENvZGVQaXBlbGluZSh0aGlzLCBcIkNES0NvZGVQaXBlbGluZVwiLCB7XG4gICAgICBjb2RlUGlwZWxpbmU6IHRoaXMucGlwZWxpbmUsXG4gICAgICBzeW50aDogbmV3IENvZGVCdWlsZFN0ZXAoXCJDZGtTeW50aFwiLCB7XG4gICAgICAgIGluc3RhbGxDb21tYW5kczogW1xuICAgICAgICAgIFwibm9kZSAtdlwiLFxuICAgICAgICAgIFwibnBtIGluc3RhbGwgLS1nbG9iYWwgY29yZXBhY2tAbGF0ZXN0XCIsXG4gICAgICAgICAgXCJjb3JlcGFjayAtLXZlcnNpb25cIixcbiAgICAgICAgICBcImNvcmVwYWNrIGVuYWJsZVwiLFxuICAgICAgICBdLFxuICAgICAgICBjb21tYW5kczogcHJvcHMuY2RrU3ludGhDbWQsXG4gICAgICAgIGlucHV0OiBzb3VyY2VGaWxlLFxuICAgICAgICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiBwcm9wcy5jZGtPdXQgfHwgXCJjZGsub3V0XCIsXG4gICAgICAgIHBhcnRpYWxCdWlsZFNwZWM6IEJ1aWxkU3BlYy5mcm9tT2JqZWN0KHN5bnRoQnVpbGRTcGVjKSxcbiAgICAgIH0pLFxuICAgICAgc2VsZk11dGF0aW9uOiB0cnVlLFxuICAgICAgY29kZUJ1aWxkRGVmYXVsdHM6IHtcbiAgICAgICAgYnVpbGRFbnZpcm9ubWVudDoge1xuICAgICAgICAgIGNvbXB1dGVUeXBlOiBDb21wdXRlVHlwZS5MQVJHRSxcbiAgICAgICAgICBidWlsZEltYWdlOiBMaW51eEFybUJ1aWxkSW1hZ2UuQU1BWk9OX0xJTlVYXzJfU1RBTkRBUkRfM18wLFxuICAgICAgICAgIGVudmlyb25tZW50VmFyaWFibGVzOiB7XG4gICAgICAgICAgICBOT0RFX09QVElPTlM6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IFwiLS1tYXgtb2xkLXNwYWNlLXNpemU9ODE5MlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRTdGFnZUVudjogU3RhZ2VFbnZQcm9wcyA9IHtcbiAgICAgIGJldGE6IEJFVEFfRU5WSVJPTk1FTlQsXG4gICAgICBnYW1tYTogR0FNTUFfRU5WSVJPTk1FTlQsXG4gICAgICBwcm9kOiBQUk9EX0VOVklST05NRU5ULFxuICAgIH07XG4gICAgY29uc3Qgc3RhZ2VFbnYgPSBwcm9wcy5zdGFnZUVudiB8fCBkZWZhdWx0U3RhZ2VFbnY7XG5cbiAgICBjZGtQaXBlbGluZS5hZGRTdGFnZShcbiAgICAgIG5ldyBEZXBsb3ltZW50U3RhZ2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiT3JjYUJ1c0JldGFcIixcbiAgICAgICAgc3RhZ2VFbnYuYmV0YSxcbiAgICAgICAgcHJvcHMuc3RhY2tOYW1lLFxuICAgICAgICBwcm9wcy5zdGFjayxcbiAgICAgICAgcHJvcHMuc3RhY2tDb25maWcuYmV0YSxcbiAgICAgICAgcHJvcHMuZ2l0aHViUmVwbyxcbiAgICAgICAgcHJvcHMuZ2l0aHViQnJhbmNoLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgY2RrUGlwZWxpbmUuYWRkU3RhZ2UoXG4gICAgICBuZXcgRGVwbG95bWVudFN0YWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk9yY2FCdXNHYW1tYVwiLFxuICAgICAgICBzdGFnZUVudi5nYW1tYSxcbiAgICAgICAgcHJvcHMuc3RhY2tOYW1lLFxuICAgICAgICBwcm9wcy5zdGFjayxcbiAgICAgICAgcHJvcHMuc3RhY2tDb25maWcuZ2FtbWEsXG4gICAgICAgIHByb3BzLmdpdGh1YlJlcG8sXG4gICAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgICksXG4gICAgICB7IHBvc3Q6IFtuZXcgTWFudWFsQXBwcm92YWxTdGVwKFwiUHJvbW90ZVRvUHJvZFwiKV0gfSxcbiAgICApO1xuXG4gICAgY2RrUGlwZWxpbmUuYWRkU3RhZ2UoXG4gICAgICBuZXcgRGVwbG95bWVudFN0YWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk9yY2FCdXNQcm9kXCIsXG4gICAgICAgIHN0YWdlRW52LnByb2QsXG4gICAgICAgIHByb3BzLnN0YWNrTmFtZSxcbiAgICAgICAgcHJvcHMuc3RhY2ssXG4gICAgICAgIHByb3BzLnN0YWNrQ29uZmlnLnByb2QsXG4gICAgICAgIHByb3BzLmdpdGh1YlJlcG8sXG4gICAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgICksXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy5lbmFibGVTbGFja05vdGlmaWNhdGlvbiA/PyB0cnVlKSB7XG4gICAgICBjb25zdCBhbGVydHNCdWlsZFNsYWNrQ29uZmlnQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIi9jaGF0Ym90X2Fybi9zbGFjay9hbGVydHMtYnVpbGRcIixcbiAgICAgICk7XG4gICAgICBjb25zdCB0YXJnZXQgPSBTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uLmZyb21TbGFja0NoYW5uZWxDb25maWd1cmF0aW9uQXJuKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIlNsYWNrQ2hhbm5lbENvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgYWxlcnRzQnVpbGRTbGFja0NvbmZpZ0FybixcbiAgICAgICk7XG5cbiAgICAgIHRoaXMucGlwZWxpbmUubm90aWZ5T24oXCJQaXBlbGluZVNsYWNrTm90aWZpY2F0aW9uXCIsIHRhcmdldCwge1xuICAgICAgICBldmVudHM6IHByb3BzLm5vdGlmaWNhdGlvbkV2ZW50cyB8fCBbXG4gICAgICAgICAgUGlwZWxpbmVOb3RpZmljYXRpb25FdmVudHMuUElQRUxJTkVfRVhFQ1VUSU9OX0ZBSUxFRCxcbiAgICAgICAgXSxcbiAgICAgICAgZGV0YWlsVHlwZTogRGV0YWlsVHlwZS5GVUxMLFxuICAgICAgICBub3RpZmljYXRpb25SdWxlTmFtZTogYE9yY2FCdXMtJHtwcm9wcy5waXBlbGluZU5hbWV9YCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBEZXBsb3ltZW50U3RhZ2UgZXh0ZW5kcyBTdGFnZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgZW52aXJvbm1lbnROYW1lOiBzdHJpbmcsXG4gICAgZW52OiBFbnZpcm9ubWVudCxcbiAgICBzdGFja05hbWU6IHN0cmluZyxcbiAgICBzdGFja0NsYXNzOiBuZXcgKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBhbnkpID0+IFN0YWNrLFxuICAgIGFwcFN0YWNrUHJvcHM6IGFueSxcbiAgICBnaXRodWJSZXBvOiBzdHJpbmcsXG4gICAgZ2l0aHViQnJhbmNoPzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgZW52aXJvbm1lbnROYW1lLCB7IGVudjogZW52IH0pO1xuXG4gICAgbGV0IHNvdXJjZSA9IGBodHRwczovL2dpdGh1Yi5jb20vT3JjYUJ1cy8ke2dpdGh1YlJlcG99YDtcbiAgICBpZiAoZ2l0aHViQnJhbmNoICE9PSB1bmRlZmluZWQgJiYgZ2l0aHViQnJhbmNoICE9PSBcIm1haW5cIikge1xuICAgICAgc291cmNlID0gYCR7c291cmNlfS90cmVlLyR7Z2l0aHViQnJhbmNofWA7XG4gICAgfVxuXG4gICAgbmV3IHN0YWNrQ2xhc3ModGhpcywgc3RhY2tOYW1lLCB7XG4gICAgICBlbnY6IGVudixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgXCJ1bWNjci1vcmc6UHJvZHVjdFwiOiBcIk9yY2FCdXNcIixcbiAgICAgICAgXCJ1bWNjci1vcmc6Q3JlYXRvclwiOiBcIkNES1wiLFxuICAgICAgICBcInVtY2NyLW9yZzpTZXJ2aWNlXCI6IHN0YWNrTmFtZSxcbiAgICAgICAgXCJ1bWNjci1vcmc6U291cmNlXCI6IHNvdXJjZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcHBTdGFja1Byb3BzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXVDO0FBQ3ZDLDZDQUF1RTtBQUN2RSw2REFJbUM7QUFDbkMsaURBQXNEO0FBQ3RELHFEQUsrQjtBQUMvQixtRUFLc0M7QUFDdEMscUNBSWtCO0FBQ2xCLHlEQUFvRTtBQUNwRSxxRkFBbUU7QUFDbkUsdURBQWtFO0FBRWxFOztHQUVHO0FBQ1UsUUFBQSxxQ0FBcUMsR0FBRztJQUNuRCxNQUFNLEVBQUU7UUFDTixPQUFPLEVBQUU7WUFDUCxrQkFBa0IsRUFBRTtnQkFDbEIsTUFBTSxFQUFFLE1BQU07YUFDZjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBK0dGOzs7OztHQUtHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUzs7SUFDcEQ7O09BRUc7SUFDTSxRQUFRLENBQVc7SUFFNUIsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFdBQVcsR0FBRyx5QkFBZSxDQUFDLHVCQUF1QixDQUN6RCxJQUFJLEVBQ0osOEJBQThCLENBQy9CLENBQUM7UUFDRixNQUFNLHdCQUF3QixHQUFHLGNBQWMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyw4QkFBa0IsQ0FBQyxVQUFVLENBQzlDLFdBQVcsS0FBSyxDQUFDLFVBQVUsRUFBRSxFQUM3QixLQUFLLENBQUMsWUFBWSxFQUNsQjtZQUNFLGFBQWEsRUFBRSxXQUFXO1lBQzFCLFVBQVUsRUFBRSx3QkFBd0I7WUFDcEMsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FDRixDQUFDO1FBRUYsTUFBTSwrQkFBK0IsR0FDbkMsS0FBSyxDQUFDLDJCQUEyQixJQUFJLElBQUksQ0FBQztRQUM1QyxNQUFNLGNBQWMsR0FBRywrQkFBK0I7WUFDcEQsQ0FBQyxDQUFDLCtDQUE2QixD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Q2xCLFVBQWtCLEVBQ2xCLFlBQXFCO1FBRXJCLEtBQUssQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFFNUMsSUFBSSxNQUFNLEdBQUcsOEJBQThCLFVBQVUsRUFBRSxDQUFDO1FBQ3hELElBQUksWUFBWSxLQUFLLFNBQVMsSUFBSSxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLFlBQVksRUFBRSxDQUFDO1FBQzVDLENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzlCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFO2dCQUNKLG1CQUFtQixFQUFFLFNBQVM7Z0JBQzlCLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLG1CQUFtQixFQUFFLFNBQVM7Z0JBQzlCLGtCQUFrQixFQUFFLE1BQU07YUFDM0I7WUFDRCxHQUFHLGFBQWE7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEVudmlyb25tZW50LCBSZW1vdmFsUG9saWN5LCBTdGFjaywgU3RhZ2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIEJ1aWxkU3BlYyxcbiAgQ29tcHV0ZVR5cGUsXG4gIExpbnV4QXJtQnVpbGRJbWFnZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2RlYnVpbGRcIjtcbmltcG9ydCB7IFN0cmluZ1BhcmFtZXRlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3NtXCI7XG5pbXBvcnQge1xuICBDb2RlQnVpbGRTdGVwLFxuICBDb2RlUGlwZWxpbmUsXG4gIENvZGVQaXBlbGluZVNvdXJjZSxcbiAgTWFudWFsQXBwcm92YWxTdGVwLFxufSBmcm9tIFwiYXdzLWNkay1saWIvcGlwZWxpbmVzXCI7XG5pbXBvcnQge1xuICBQaXBlbGluZSxcbiAgQ2ZuUGlwZWxpbmUsXG4gIFBpcGVsaW5lVHlwZSxcbiAgUGlwZWxpbmVOb3RpZmljYXRpb25FdmVudHMsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lXCI7XG5pbXBvcnQge1xuICBCRVRBX0VOVklST05NRU5ULFxuICBHQU1NQV9FTlZJUk9OTUVOVCxcbiAgUFJPRF9FTlZJUk9OTUVOVCxcbn0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jaGF0Ym90XCI7XG5pbXBvcnQgeyBEZXRhaWxUeXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnNcIjtcbmltcG9ydCB7IENyb3NzRGVwbG95bWVudEFydGlmYWN0QnVja2V0IH0gZnJvbSBcIi4vYXJ0aWZhY3QtYnVja2V0XCI7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcGFydGlhbCBidWlsZCBzcGVjIGZvciB0aGUgc3ludGggc3RlcCBpbiB0aGUgcGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NZTlRIX1NURVBfUEFSVElBTF9CVUlMRF9TUEVDID0ge1xuICBwaGFzZXM6IHtcbiAgICBpbnN0YWxsOiB7XG4gICAgICBcInJ1bnRpbWUtdmVyc2lvbnNcIjoge1xuICAgICAgICBub2RlanM6IFwiMjIueFwiLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUVudlByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIGJldGEgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGJldGE6IEVudmlyb25tZW50O1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGZvciB0aGUgZ2FtbWEgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGdhbW1hOiBFbnZpcm9ubWVudDtcbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIHByb2Qgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IEVudmlyb25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQ29uZmlnUHJvcHMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBiZXRhIChkZXYpIHN0YWdlXG4gICAqL1xuICByZWFkb25seSBiZXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnYW1tYSAoc3RnKSBzdGFnZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2FtbWE6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHByb2Qgc3RhZ2VcbiAgICovXG4gIHJlYWRvbmx5IHByb2Q6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudFN0YWNrUGlwZWxpbmVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIGJyYW5jaCBuYW1lIHRoZSBwaXBlbGluZSB3aWxsIGxpc3RlbiB0by5cbiAgICogQXZvaWQgdXNpbmcgYnJhbmNoIG5hbWVzIHRoYXQgY29udGFpbiBzcGVjaWFsIGNoYXJhY3RlcnMgc3VjaCBhcyBwYXJlbnRoZXNlcy5cbiAgICogQWxsb3dlZCBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlOiBcIisgLSA9IC4gXyA6IC8gQFwiLlxuICAgKiBUaGlzIHJlc3RyaWN0aW9uIGlzIGR1ZSB0byBBV1MgcmVzb3VyY2UgdGFnZ2luZyByZXF1aXJlbWVudHMuXG4gICAqL1xuICByZWFkb25seSBnaXRodWJCcmFuY2g6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IG5hbWUgdGhhdCBleGlzdCBpbiB0aGUgJ09yY2FCdXMnIGdpdGh1YiBvcmdhbmlzYXRpb24uIGUuZy4gYGEtbWljcm8tc2VydmljZS1yZXBvYFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViUmVwbzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0YWNrIHRvIHdoaWNoIHRoZSBwaXBlbGluZSB3aWxsIGJlIGRlcGxveWluZyB0byBpdHMgcmVzcGVjdGl2ZSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSBzdGFjazogYW55O1xuICAvKipcbiAgICogVGhlIHN0YWNrIG5hbWUgKGluIGNsb3VkZm9ybWF0aW9uKSBmb3IgdGhlIHN0YWNrIGRlZmluZWQgaW4gYHN0YWNrYC4gVGhlIHN0YWNrIG5hbWUgd2lsbCBwcmVwZW5kIHdpdGggdGhlIHN0YWdlXG4gICAqIG5hbWUgZS5nLiBgT3JjYUJ1c0JldGEtPHN0YWNrTmFtZT5gLCBgT3JjYUJ1c0dhbW1hLTxzdGFja05hbWU+YCwgYE9yY2FCdXNQcm9kLTxzdGFja05hbWU+YFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgY29uZmlndXJhdGlvbi9jb25zdGFudHMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgc3RhY2sgcHJvcHMuXG4gICAqL1xuICByZWFkb25seSBzdGFja0NvbmZpZzogU3RhY2tDb25maWdQcm9wcztcbiAgLyoqXG4gICAqIFRoZSBwaXBlbGluZSBuYW1lIGluIHRoZSBiYXN0aW9uIGFjY291bnQuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmaWxlIHBhdGhzIHRvIHRyaWdnZXIgdGhlIHBpcGVsaW5lLiBlLmcuIFtcInN0YXRlbGVzcy8qKlwiXVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1jb2RlcGlwZWxpbmUtcGlwZWxpbmUtZ2l0ZmlsZXBhdGhmaWx0ZXJjcml0ZXJpYS5odG1sXG4gICAqXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHRvIHJ1biB0byBzeW50aCB0aGUgY2RrIHN0YWNrIHdoaWNoIGFsc28gaW5zdGFsbGluZyB0aGUgY2RrIGRlcGVuZGVuY2llcy4gZS5nLiBbXCJ5YXJuIGluc3RhbGwgLS1pbW11dGFibGVcIiwgXCJ5YXJuIGNkayBzeW50aFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgY2RrU3ludGhDbWQ6IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIHdoZXJlIHRoZSBjZGsgb3V0cHV0IHdpbGwgYmUgc3RvcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBjZGtPdXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBDb2RlQnVpbGQgc3RlcCBkdXJpbmcgdGhlIENESyBzeW50aCBwaGFzZS4gSXQgd2lsbCBwYXNzZWQgYXMgdGhlIGBwYXJ0aWFsQnVpbGRTcGVjYCB0byB0aGUgYENvZGVCdWlsZFN0ZXBgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBERUZBVUxUX1NZTlRIX1NURVBfUEFSVElBTF9CVUlMRF9TUEVDXG4gICAqL1xuICByZWFkb25seSBzeW50aEJ1aWxkU3BlYz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBUaGUgc3RhZ2UgZW52aXJvbm1lbnQgZm9yIHRoZSBkZXBsb3ltZW50IHN0YWNrXG4gICAqL1xuICByZWFkb25seSBzdGFnZUVudj86IFN0YWdlRW52UHJvcHM7XG4gIC8qKlxuICAgKiBFbmFibGUgbm90aWZpY2F0aW9uIHRvIHRoZSAnYWxlcnRzLWJ1aWxkJyBzbGFjayBjaGFubmVsLlxuICAgKiBAZGVmYXVsdCBUcnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVTbGFja05vdGlmaWNhdGlvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgcGlwZWxpbmUgbm90aWZpY2F0aW9uIGV2ZW50cyB0aGF0IHdpbGwgdHJpZ2dlciBhIFNsYWNrIGNoYW5uZWwgbm90aWZpY2F0aW9uLlxuICAgKiBPbmx5IGFwcGxpZXMgaWYgYGVuYWJsZVNsYWNrTm90aWZpY2F0aW9uYCBpcyBzZXQgdG8gdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgW1BpcGVsaW5lTm90aWZpY2F0aW9uRXZlbnRzLlBJUEVMSU5FX0VYRUNVVElPTl9GQUlMRURdIOKAk1xuICAgKiAgIE9ubHkgZmFpbGVkIHBpcGVsaW5lIGV4ZWN1dGlvbnMgd2lsbCB0cmlnZ2VyIGEgbm90aWZpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uRXZlbnRzPzogUGlwZWxpbmVOb3RpZmljYXRpb25FdmVudHNbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXVzZSB0aGUgZXhpc3RpbmcgYXJ0aWZhY3QgYnVja2V0IGZvciBjcm9zcy1kZXBsb3ltZW50IHBpcGVsaW5lcy5cbiAgICogSWYgc2V0IHRvIHRydWUsIGl0IHdpbGwgbG9vayB1cCB0aGUgZXhpc3RpbmcgYXJ0aWZhY3QgYnVja2V0IGluIHRoZSBUT09MQ0hBSU4gYWNjb3VudC5cbiAgICpcbiAgICogQGRlZmF1bHQgVHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcmV1c2VFeGlzdGluZ0FydGlmYWN0QnVja2V0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIENESyBjb25zdHJ1Y3QgdGhhdCBjcmVhdGVzIGEgZGVwbG95bWVudCBwaXBlbGluZSBhY3Jvc3MgZW52aXJvbm1lbnRzIGZvciB0aGUgT3JjYUJ1cyBwcm9qZWN0LlxuICpcbiAqIFByZXJlcXVpc2l0ZTogRW5zdXJlIHRoYXQgdGhlIFwiQ3Jvc3NEZXBsb3ltZW50QXJ0aWZhY3RCdWNrZXRcIiBzdGFjayBpcyBkZXBsb3llZCBpbiB0aGUgVE9PTENIQUlOIGFjY291bnRcbiAqIGJlZm9yZSB1c2luZyB0aGlzIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGNsYXNzIERlcGxveW1lbnRTdGFja1BpcGVsaW5lIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBjb2RlIHBpcGVsaW5lIGNvbnN0cnVjdCB0aGF0IGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBwaXBlbGluZTogUGlwZWxpbmU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBEZXBsb3ltZW50U3RhY2tQaXBlbGluZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY29kZVN0YXJBcm4gPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICB0aGlzLFxuICAgICAgXCIvb3JjYWJ1cy9jb2Rlc3Rhcl9naXRodWJfYXJuXCIsXG4gICAgKTtcbiAgICBjb25zdCBjb2RlU3RhclNvdXJjZUFjdGlvbk5hbWUgPSBcInBpcGVsaW5lLXNyY1wiO1xuICAgIGNvbnN0IHNvdXJjZUZpbGUgPSBDb2RlUGlwZWxpbmVTb3VyY2UuY29ubmVjdGlvbihcbiAgICAgIGBPcmNhQnVzLyR7cHJvcHMuZ2l0aHViUmVwb31gLFxuICAgICAgcHJvcHMuZ2l0aHViQnJhbmNoLFxuICAgICAge1xuICAgICAgICBjb25uZWN0aW9uQXJuOiBjb2RlU3RhckFybixcbiAgICAgICAgYWN0aW9uTmFtZTogY29kZVN0YXJTb3VyY2VBY3Rpb25OYW1lLFxuICAgICAgICB0cmlnZ2VyT25QdXNoOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3QgaXNSZXVzaW5nRXhpc3RpbmdBcnRpZmFjdEJ1Y2tldCA9XG4gICAgICBwcm9wcy5yZXVzZUV4aXN0aW5nQXJ0aWZhY3RCdWNrZXQgPz8gdHJ1ZTtcbiAgICBjb25zdCBhcnRpZmFjdEJ1Y2tldCA9IGlzUmV1c2luZ0V4aXN0aW5nQXJ0aWZhY3RCdWNrZXRcbiAgICAgID8gQ3Jvc3NEZXBsb3ltZW50QXJ0aWZhY3RCdWNrZXQuZnJvbUxvb2t1cCh0aGlzKS5hcnRpZmFjdEJ1Y2tldFxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnBpcGVsaW5lID0gbmV3IFBpcGVsaW5lKHRoaXMsIFwiRGVwbG95bWVudENvZGVQaXBlbGluZVwiLCB7XG4gICAgICBhcnRpZmFjdEJ1Y2tldDogYXJ0aWZhY3RCdWNrZXQsXG4gICAgICBwaXBlbGluZVR5cGU6IFBpcGVsaW5lVHlwZS5WMixcbiAgICAgIHBpcGVsaW5lTmFtZTogcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgICAgY3Jvc3NBY2NvdW50S2V5czogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5maWxlUGF0aHMpIHtcbiAgICAgIC8vIEFkZCBldmVudCBmaWx0ZXIgdG8gb25seSB0cmlnZ2VyIGlmIHRoZSBwdXNoIGV2ZW50IGlzIGZyb20gYGRlcGxveWAgZGlyZWN0b3J5XG4gICAgICBjb25zdCBjZm5QaXBlbGluZSA9IHRoaXMucGlwZWxpbmUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuUGlwZWxpbmU7XG4gICAgICBjZm5QaXBlbGluZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKFwiVHJpZ2dlcnNcIiwgW1xuICAgICAgICB7XG4gICAgICAgICAgR2l0Q29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgUHVzaDogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgQnJhbmNoZXM6IHtcbiAgICAgICAgICAgICAgICAgIEluY2x1ZGVzOiBbcHJvcHMuZ2l0aHViQnJhbmNoXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIEZpbGVQYXRoczoge1xuICAgICAgICAgICAgICAgICAgSW5jbHVkZXM6IHByb3BzLmZpbGVQYXRocyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIFNvdXJjZUFjdGlvbk5hbWU6IGNvZGVTdGFyU291cmNlQWN0aW9uTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIFByb3ZpZGVyVHlwZTogXCJDb2RlU3RhclNvdXJjZUNvbm5lY3Rpb25cIixcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGNvbnN0IHsgc3ludGhCdWlsZFNwZWMgPSBERUZBVUxUX1NZTlRIX1NURVBfUEFSVElBTF9CVUlMRF9TUEVDIH0gPSBwcm9wcztcbiAgICBjb25zdCBjZGtQaXBlbGluZSA9IG5ldyBDb2RlUGlwZWxpbmUodGhpcywgXCJDREtDb2RlUGlwZWxpbmVcIiwge1xuICAgICAgY29kZVBpcGVsaW5lOiB0aGlzLnBpcGVsaW5lLFxuICAgICAgc3ludGg6IG5ldyBDb2RlQnVpbGRTdGVwKFwiQ2RrU3ludGhcIiwge1xuICAgICAgICBpbnN0YWxsQ29tbWFuZHM6IFtcbiAgICAgICAgICBcIm5vZGUgLXZcIixcbiAgICAgICAgICBcIm5wbSBpbnN0YWxsIC0tZ2xvYmFsIGNvcmVwYWNrQGxhdGVzdFwiLFxuICAgICAgICAgIFwiY29yZXBhY2sgLS12ZXJzaW9uXCIsXG4gICAgICAgICAgXCJjb3JlcGFjayBlbmFibGVcIixcbiAgICAgICAgXSxcbiAgICAgICAgY29tbWFuZHM6IHByb3BzLmNka1N5bnRoQ21kLFxuICAgICAgICBpbnB1dDogc291cmNlRmlsZSxcbiAgICAgICAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogcHJvcHMuY2RrT3V0IHx8IFwiY2RrLm91dFwiLFxuICAgICAgICBwYXJ0aWFsQnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdChzeW50aEJ1aWxkU3BlYyksXG4gICAgICB9KSxcbiAgICAgIHNlbGZNdXRhdGlvbjogdHJ1ZSxcbiAgICAgIGNvZGVCdWlsZERlZmF1bHRzOiB7XG4gICAgICAgIGJ1aWxkRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjb21wdXRlVHlwZTogQ29tcHV0ZVR5cGUuTEFSR0UsXG4gICAgICAgICAgYnVpbGRJbWFnZTogTGludXhBcm1CdWlsZEltYWdlLkFNQVpPTl9MSU5VWF8yX1NUQU5EQVJEXzNfMCxcbiAgICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczoge1xuICAgICAgICAgICAgTk9ERV9PUFRJT05TOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiBcIi0tbWF4LW9sZC1zcGFjZS1zaXplPTgxOTJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWZhdWx0U3RhZ2VFbnY6IFN0YWdlRW52UHJvcHMgPSB7XG4gICAgICBiZXRhOiBCRVRBX0VOVklST05NRU5ULFxuICAgICAgZ2FtbWE6IEdBTU1BX0VOVklST05NRU5ULFxuICAgICAgcHJvZDogUFJPRF9FTlZJUk9OTUVOVCxcbiAgICB9O1xuICAgIGNvbnN0IHN0YWdlRW52ID0gcHJvcHMuc3RhZ2VFbnYgfHwgZGVmYXVsdFN0YWdlRW52O1xuXG4gICAgY2RrUGlwZWxpbmUuYWRkU3RhZ2UoXG4gICAgICBuZXcgRGVwbG95bWVudFN0YWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk9yY2FCdXNCZXRhXCIsXG4gICAgICAgIHN0YWdlRW52LmJldGEsXG4gICAgICAgIHByb3BzLnN0YWNrTmFtZSxcbiAgICAgICAgcHJvcHMuc3RhY2ssXG4gICAgICAgIHByb3BzLnN0YWNrQ29uZmlnLmJldGEsXG4gICAgICAgIHByb3BzLmdpdGh1YlJlcG8sXG4gICAgICAgIHByb3BzLmdpdGh1YkJyYW5jaCxcbiAgICAgICksXG4gICAgKTtcblxuICAgIGNka1BpcGVsaW5lLmFkZFN0YWdlKFxuICAgICAgbmV3IERlcGxveW1lbnRTdGFnZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJPcmNhQnVzR2FtbWFcIixcbiAgICAgICAgc3RhZ2VFbnYuZ2FtbWEsXG4gICAgICAgIHByb3BzLnN0YWNrTmFtZSxcbiAgICAgICAgcHJvcHMuc3RhY2ssXG4gICAgICAgIHByb3BzLnN0YWNrQ29uZmlnLmdhbW1hLFxuICAgICAgICBwcm9wcy5naXRodWJSZXBvLFxuICAgICAgICBwcm9wcy5naXRodWJCcmFuY2gsXG4gICAgICApLFxuICAgICAgeyBwb3N0OiBbbmV3IE1hbnVhbEFwcHJvdmFsU3RlcChcIlByb21vdGVUb1Byb2RcIildIH0sXG4gICAgKTtcblxuICAgIGNka1BpcGVsaW5lLmFkZFN0YWdlKFxuICAgICAgbmV3IERlcGxveW1lbnRTdGFnZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJPcmNhQnVzUHJvZFwiLFxuICAgICAgICBzdGFnZUVudi5wcm9kLFxuICAgICAgICBwcm9wcy5zdGFja05hbWUsXG4gICAgICAgIHByb3BzLnN0YWNrLFxuICAgICAgICBwcm9wcy5zdGFja0NvbmZpZy5wcm9kLFxuICAgICAgICBwcm9wcy5naXRodWJSZXBvLFxuICAgICAgICBwcm9wcy5naXRodWJCcmFuY2gsXG4gICAgICApLFxuICAgICk7XG5cbiAgICBpZiAocHJvcHMuZW5hYmxlU2xhY2tOb3RpZmljYXRpb24gPz8gdHJ1ZSkge1xuICAgICAgY29uc3QgYWxlcnRzQnVpbGRTbGFja0NvbmZpZ0FybiA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZvclN0cmluZ1BhcmFtZXRlcihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCIvY2hhdGJvdF9hcm4vc2xhY2svYWxlcnRzLWJ1aWxkXCIsXG4gICAgICApO1xuICAgICAgY29uc3QgdGFyZ2V0ID0gU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbi5mcm9tU2xhY2tDaGFubmVsQ29uZmlndXJhdGlvbkFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJTbGFja0NoYW5uZWxDb25maWd1cmF0aW9uXCIsXG4gICAgICAgIGFsZXJ0c0J1aWxkU2xhY2tDb25maWdBcm4sXG4gICAgICApO1xuXG4gICAgICB0aGlzLnBpcGVsaW5lLm5vdGlmeU9uKFwiUGlwZWxpbmVTbGFja05vdGlmaWNhdGlvblwiLCB0YXJnZXQsIHtcbiAgICAgICAgZXZlbnRzOiBwcm9wcy5ub3RpZmljYXRpb25FdmVudHMgfHwgW1xuICAgICAgICAgIFBpcGVsaW5lTm90aWZpY2F0aW9uRXZlbnRzLlBJUEVMSU5FX0VYRUNVVElPTl9GQUlMRUQsXG4gICAgICAgIF0sXG4gICAgICAgIGRldGFpbFR5cGU6IERldGFpbFR5cGUuRlVMTCxcbiAgICAgICAgbm90aWZpY2F0aW9uUnVsZU5hbWU6IGBPcmNhQnVzLSR7cHJvcHMucGlwZWxpbmVOYW1lfWAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgRGVwbG95bWVudFN0YWdlIGV4dGVuZHMgU3RhZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGVudmlyb25tZW50TmFtZTogc3RyaW5nLFxuICAgIGVudjogRW52aXJvbm1lbnQsXG4gICAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gICAgc3RhY2tDbGFzczogbmV3IChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogYW55KSA9PiBTdGFjayxcbiAgICBhcHBTdGFja1Byb3BzOiBhbnksXG4gICAgZ2l0aHViUmVwbzogc3RyaW5nLFxuICAgIGdpdGh1YkJyYW5jaD86IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGVudmlyb25tZW50TmFtZSwgeyBlbnY6IGVudiB9KTtcblxuICAgIGxldCBzb3VyY2UgPSBgaHR0cHM6Ly9naXRodWIuY29tL09yY2FCdXMvJHtnaXRodWJSZXBvfWA7XG4gICAgaWYgKGdpdGh1YkJyYW5jaCAhPT0gdW5kZWZpbmVkICYmIGdpdGh1YkJyYW5jaCAhPT0gXCJtYWluXCIpIHtcbiAgICAgIHNvdXJjZSA9IGAke3NvdXJjZX0vdHJlZS8ke2dpdGh1YkJyYW5jaH1gO1xuICAgIH1cblxuICAgIG5ldyBzdGFja0NsYXNzKHRoaXMsIHN0YWNrTmFtZSwge1xuICAgICAgZW52OiBlbnYsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIFwidW1jY3Itb3JnOlByb2R1Y3RcIjogXCJPcmNhQnVzXCIsXG4gICAgICAgIFwidW1jY3Itb3JnOkNyZWF0b3JcIjogXCJDREtcIixcbiAgICAgICAgXCJ1bWNjci1vcmc6U2VydmljZVwiOiBzdGFja05hbWUsXG4gICAgICAgIFwidW1jY3Itb3JnOlNvdXJjZVwiOiBzb3VyY2UsXG4gICAgICB9LFxuICAgICAgLi4uYXBwU3RhY2tQcm9wcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/dynamodb/index.js
CHANGED
|
@@ -40,7 +40,7 @@ const dynamodb = __importStar(require("aws-cdk-lib/aws-dynamodb"));
|
|
|
40
40
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
41
41
|
const config_1 = require("./config");
|
|
42
42
|
class DynamoDbPartitionedConstruct extends constructs_1.Construct {
|
|
43
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbPartitionedConstruct", version: "0.0.
|
|
43
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbPartitionedConstruct", version: "0.0.9" };
|
|
44
44
|
table;
|
|
45
45
|
constructor(scope, id, props) {
|
|
46
46
|
super(scope, id);
|
|
@@ -75,7 +75,7 @@ class DynamoDbPartitionedConstruct extends constructs_1.Construct {
|
|
|
75
75
|
}
|
|
76
76
|
exports.DynamoDbPartitionedConstruct = DynamoDbPartitionedConstruct;
|
|
77
77
|
class DynamoDbNonPartitionedConstruct extends constructs_1.Construct {
|
|
78
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbNonPartitionedConstruct", version: "0.0.
|
|
78
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbNonPartitionedConstruct", version: "0.0.9" };
|
|
79
79
|
table;
|
|
80
80
|
constructor(scope, id, props) {
|
|
81
81
|
super(scope, id);
|
package/ecs/index.js
CHANGED
|
@@ -52,7 +52,7 @@ exports.LAMBDA_ARCHITECTURE_MAP = {
|
|
|
52
52
|
['ARM64']: lambda.Architecture.ARM_64
|
|
53
53
|
};
|
|
54
54
|
class EcsFargateTaskConstruct extends constructs_1.Construct {
|
|
55
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.
|
|
55
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.9" };
|
|
56
56
|
cluster;
|
|
57
57
|
taskDefinition;
|
|
58
58
|
securityGroup;
|
package/index.d.ts
CHANGED
|
@@ -4,3 +4,6 @@ export * as apigateway from "./api-gateway";
|
|
|
4
4
|
export * as dynamodb from "./dynamodb";
|
|
5
5
|
export * as ecs from "./ecs";
|
|
6
6
|
export * as lambda from "./lambda";
|
|
7
|
+
export * as provider from "./provider-function";
|
|
8
|
+
export * as namedLambdaRole from "./named-lambda-role";
|
|
9
|
+
export * as sharedConfig from "./shared-config";
|
package/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.lambda = exports.ecs = exports.dynamodb = exports.apigateway = exports.deploymentPipeline = exports.utils = void 0;
|
|
36
|
+
exports.sharedConfig = exports.namedLambdaRole = exports.provider = exports.lambda = exports.ecs = exports.dynamodb = exports.apigateway = exports.deploymentPipeline = exports.utils = void 0;
|
|
37
37
|
// Get stage name
|
|
38
38
|
exports.utils = __importStar(require("./utils"));
|
|
39
39
|
// Deployment pipeline constructs
|
|
@@ -46,4 +46,7 @@ exports.dynamodb = __importStar(require("./dynamodb"));
|
|
|
46
46
|
exports.ecs = __importStar(require("./ecs"));
|
|
47
47
|
// Lambda Constructs
|
|
48
48
|
exports.lambda = __importStar(require("./lambda"));
|
|
49
|
-
|
|
49
|
+
exports.provider = __importStar(require("./provider-function"));
|
|
50
|
+
exports.namedLambdaRole = __importStar(require("./named-lambda-role"));
|
|
51
|
+
exports.sharedConfig = __importStar(require("./shared-config"));
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpQkFBaUI7QUFDakIsaURBQWlDO0FBRWpDLGlDQUFpQztBQUNqQyxrRkFBa0U7QUFFbEUseUJBQXlCO0FBQ3pCLDREQUE0QztBQUU1QyxzQkFBc0I7QUFDdEIsdURBQXVDO0FBRXZDLDJCQUEyQjtBQUMzQiw2Q0FBNkI7QUFFN0Isb0JBQW9CO0FBQ3BCLG1EQUFtQztBQUVuQyxnRUFBZ0Q7QUFDaEQsdUVBQXVEO0FBQ3ZELGdFQUFnRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdldCBzdGFnZSBuYW1lXG5leHBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi91dGlsc1wiO1xuXG4vLyBEZXBsb3ltZW50IHBpcGVsaW5lIGNvbnN0cnVjdHNcbmV4cG9ydCAqIGFzIGRlcGxveW1lbnRQaXBlbGluZSBmcm9tIFwiLi9kZXBsb3ltZW50LXN0YWNrLXBpcGVsaW5lXCI7XG5cbi8vIEFwaSBHYXRld2F5IGNvbnN0cnVjdHNcbmV4cG9ydCAqIGFzIGFwaWdhdGV3YXkgZnJvbSBcIi4vYXBpLWdhdGV3YXlcIjtcblxuLy8gRHluYW1vREIgQ29uc3RydWN0c1xuZXhwb3J0ICogYXMgZHluYW1vZGIgZnJvbSBcIi4vZHluYW1vZGJcIjtcblxuLy8gRUNTIC8gRmFyZ2F0ZSBDb25zdHJ1Y3RzXG5leHBvcnQgKiBhcyBlY3MgZnJvbSBcIi4vZWNzXCI7XG5cbi8vIExhbWJkYSBDb25zdHJ1Y3RzXG5leHBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcIi4vbGFtYmRhXCI7XG5cbmV4cG9ydCAqIGFzIHByb3ZpZGVyIGZyb20gXCIuL3Byb3ZpZGVyLWZ1bmN0aW9uXCI7XG5leHBvcnQgKiBhcyBuYW1lZExhbWJkYVJvbGUgZnJvbSBcIi4vbmFtZWQtbGFtYmRhLXJvbGVcIjtcbmV4cG9ydCAqIGFzIHNoYXJlZENvbmZpZyBmcm9tIFwiLi9zaGFyZWQtY29uZmlnXCI7XG4iXX0=
|
package/index.ts
CHANGED
package/jest.config.js
ADDED
package/lambda/index.js
CHANGED
|
@@ -54,7 +54,7 @@ function getPythonUvDockerImage() {
|
|
|
54
54
|
return aws_cdk_lib_1.DockerImage.fromBuild(path_1.default.join(__dirname, 'build_python'));
|
|
55
55
|
}
|
|
56
56
|
class PythonUvFunction extends aws_lambda_python_alpha_1.PythonFunction {
|
|
57
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.
|
|
57
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.9" };
|
|
58
58
|
// Class constructs, to be used for caching the layers
|
|
59
59
|
// This means that if there are multiple lambdas throughout the stack
|
|
60
60
|
// They will all use the same layer
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# NamedLambdaRole
|
|
2
|
+
|
|
3
|
+
A construct for naming a role that is assumed by a Lambda function.
|
|
4
|
+
|
|
5
|
+
Usage example:
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
// This uses `lambda.amazonaws.com' as the `assumedBy` service principal.
|
|
9
|
+
new NamedLambdaRole(this, id, {
|
|
10
|
+
name: "role-name",
|
|
11
|
+
maxSessionDuration: Duration.hours(12),
|
|
12
|
+
});
|
|
13
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { Role } from "aws-cdk-lib/aws-iam";
|
|
3
|
+
import { Duration } from "aws-cdk-lib";
|
|
4
|
+
/**
|
|
5
|
+
* Props for the named lambda role construct.
|
|
6
|
+
*/
|
|
7
|
+
export interface NamedLambdaRoleProps {
|
|
8
|
+
/**
|
|
9
|
+
* The name of the role, automatically generated if not specified.
|
|
10
|
+
*/
|
|
11
|
+
readonly name?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Description for the role.
|
|
14
|
+
*/
|
|
15
|
+
readonly description?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Specify the maximum session duration.
|
|
18
|
+
*/
|
|
19
|
+
readonly maxSessionDuration?: Duration;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A construct which represents a named role that a Lambda function can assume.
|
|
23
|
+
*/
|
|
24
|
+
export declare class NamedLambdaRole extends Role {
|
|
25
|
+
constructor(scope: Construct, id: string, props?: NamedLambdaRoleProps);
|
|
26
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NamedLambdaRole = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
6
|
+
/**
|
|
7
|
+
* A construct which represents a named role that a Lambda function can assume.
|
|
8
|
+
*/
|
|
9
|
+
class NamedLambdaRole extends aws_iam_1.Role {
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole", version: "0.0.9" };
|
|
11
|
+
constructor(scope, id, props) {
|
|
12
|
+
super(scope, id, {
|
|
13
|
+
assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
|
|
14
|
+
description: props?.description ?? "Lambda execution role",
|
|
15
|
+
roleName: props?.name,
|
|
16
|
+
maxSessionDuration: props?.maxSessionDuration,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.NamedLambdaRole = NamedLambdaRole;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsaURBQTZEO0FBcUI3RDs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxjQUFJOztJQUN2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsU0FBUyxFQUFFLElBQUksMEJBQWdCLENBQUMsc0JBQXNCLENBQUM7WUFDdkQsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLElBQUksdUJBQXVCO1lBQzFELFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSTtZQUNyQixrQkFBa0IsRUFBRSxLQUFLLEVBQUUsa0JBQWtCO1NBQzlDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBUkgsMENBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgUm9sZSwgU2VydmljZVByaW5jaXBhbCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgbmFtZWQgbGFtYmRhIHJvbGUgY29uc3RydWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVkTGFtYmRhUm9sZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByb2xlLCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBpZiBub3Qgc3BlY2lmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERlc2NyaXB0aW9uIGZvciB0aGUgcm9sZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmeSB0aGUgbWF4aW11bSBzZXNzaW9uIGR1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4U2Vzc2lvbkR1cmF0aW9uPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQSBjb25zdHJ1Y3Qgd2hpY2ggcmVwcmVzZW50cyBhIG5hbWVkIHJvbGUgdGhhdCBhIExhbWJkYSBmdW5jdGlvbiBjYW4gYXNzdW1lLlxuICovXG5leHBvcnQgY2xhc3MgTmFtZWRMYW1iZGFSb2xlIGV4dGVuZHMgUm9sZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogTmFtZWRMYW1iZGFSb2xlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJsYW1iZGEuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcz8uZGVzY3JpcHRpb24gPz8gXCJMYW1iZGEgZXhlY3V0aW9uIHJvbGVcIixcbiAgICAgIHJvbGVOYW1lOiBwcm9wcz8ubmFtZSxcbiAgICAgIG1heFNlc3Npb25EdXJhdGlvbjogcHJvcHM/Lm1heFNlc3Npb25EdXJhdGlvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orcabus/platform-cdk-constructs",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "CDK Package for OrcaBus infrastructure.",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"build": "jsii --tsconfig tsconfig.json --validate-tsconfig minimal",
|
|
9
9
|
"build:watch": "jsii --watch",
|
|
10
10
|
"package": "jsii-pacmak",
|
|
11
|
-
"generate-docs": "typedoc --plugin typedoc-plugin-markdown --out ./docs"
|
|
11
|
+
"generate-docs": "typedoc --gitRevision main --plugin typedoc-plugin-markdown --out ./docs",
|
|
12
|
+
"test": "pnpm jest"
|
|
12
13
|
},
|
|
13
14
|
"keywords": [],
|
|
14
15
|
"repository": {
|
|
@@ -31,7 +32,10 @@
|
|
|
31
32
|
"jsii-pacmak": "^1.110.0",
|
|
32
33
|
"publib": "^0.2.965",
|
|
33
34
|
"typedoc": "^0.28.2",
|
|
34
|
-
"typedoc-plugin-markdown": "^4.6.2"
|
|
35
|
+
"typedoc-plugin-markdown": "^4.6.2",
|
|
36
|
+
"@types/jest": "^29.5.14",
|
|
37
|
+
"jest": "^29.7.0",
|
|
38
|
+
"ts-jest": "^29.3.0"
|
|
35
39
|
},
|
|
36
40
|
"peerDependencies": {
|
|
37
41
|
"aws-cdk-lib": "^2.195.0",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# ProviderFunction
|
|
2
|
+
|
|
3
|
+
The provider function invokes the provider framework:
|
|
4
|
+
https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources-readme.html#provider-framework.
|
|
5
|
+
|
|
6
|
+
This is useful for initiating custom actions that should fail a CloudFormation stack if they do not succeed, such
|
|
7
|
+
as migrating databases.
|
|
8
|
+
|
|
9
|
+
Usage example:
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
// Create a Lambda function which should conform the to provider framework:
|
|
13
|
+
// https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources.Provider.html#example
|
|
14
|
+
const handler = new lambda.Function(this, "Handler", {
|
|
15
|
+
runtime: lambda.Runtime.NODEJS_20_X,
|
|
16
|
+
handler: "index.handler",
|
|
17
|
+
code: lambda.Code.fromInline(`
|
|
18
|
+
exports.handler = async (event, context) => {
|
|
19
|
+
return {
|
|
20
|
+
PhysicalResourceId: '1234',
|
|
21
|
+
NoEcho: true,
|
|
22
|
+
Data: {
|
|
23
|
+
hello: 'world',
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
`),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const vpc = Vpc.fromLookup(this, "Vpc", {
|
|
31
|
+
vpcName: "main-vpc",
|
|
32
|
+
tags: {
|
|
33
|
+
Stack: "networking",
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
new ProviderFunction(this, "ProviderFunction", {
|
|
38
|
+
vpc,
|
|
39
|
+
function: handler,
|
|
40
|
+
});
|
|
41
|
+
```
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { IVpc } from "aws-cdk-lib/aws-ec2";
|
|
3
|
+
import { IFunction } from "aws-cdk-lib/aws-lambda";
|
|
4
|
+
/**
|
|
5
|
+
* Props for the resource invoke construct.
|
|
6
|
+
*/
|
|
7
|
+
export interface ProviderFunctionProps {
|
|
8
|
+
/**
|
|
9
|
+
* Vpc for the function.
|
|
10
|
+
*/
|
|
11
|
+
readonly vpc: IVpc;
|
|
12
|
+
/**
|
|
13
|
+
* The provider function.
|
|
14
|
+
*/
|
|
15
|
+
readonly function: IFunction;
|
|
16
|
+
/**
|
|
17
|
+
* Properties that get defined in the template and passed to the Lambda function via `ResourceProperties`.
|
|
18
|
+
*/
|
|
19
|
+
readonly resourceProperties?: Record<string, unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* An additional hash property that can be used to determine if the custom resource should be updated. By default,
|
|
22
|
+
* this is the s3Key of the Lambda code asset, which is derived from the asset hash. This is used to ensure that
|
|
23
|
+
* the custom resource is updated whenever the Lambda function changes, so that the function gets called again.
|
|
24
|
+
* Add a constant value here to override this behaviour.
|
|
25
|
+
*/
|
|
26
|
+
readonly additionalHash?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A construct for invoking a Lambda function using the CDK provider framework:
|
|
30
|
+
* https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources-readme.html#provider-framework.
|
|
31
|
+
*
|
|
32
|
+
* This is useful for performing database actions such as migrations during CloudFormation stack creation, where CDK
|
|
33
|
+
* deployment will fail if the function fails. To use this construct the Lambda function must return values according
|
|
34
|
+
* to the provider framework.
|
|
35
|
+
*/
|
|
36
|
+
export declare class ProviderFunction extends Construct {
|
|
37
|
+
private readonly _function;
|
|
38
|
+
private readonly _response;
|
|
39
|
+
constructor(scope: Construct, id: string, props: ProviderFunctionProps);
|
|
40
|
+
/**
|
|
41
|
+
* Get the response of the Lambda function.
|
|
42
|
+
*/
|
|
43
|
+
get response(): string;
|
|
44
|
+
/**
|
|
45
|
+
* Get the function.
|
|
46
|
+
*/
|
|
47
|
+
get function(): IFunction;
|
|
48
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProviderFunction = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const constructs_1 = require("constructs");
|
|
6
|
+
const custom_resources_1 = require("aws-cdk-lib/custom-resources");
|
|
7
|
+
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
8
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
9
|
+
/**
|
|
10
|
+
* A construct for invoking a Lambda function using the CDK provider framework:
|
|
11
|
+
* https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources-readme.html#provider-framework.
|
|
12
|
+
*
|
|
13
|
+
* This is useful for performing database actions such as migrations during CloudFormation stack creation, where CDK
|
|
14
|
+
* deployment will fail if the function fails. To use this construct the Lambda function must return values according
|
|
15
|
+
* to the provider framework.
|
|
16
|
+
*/
|
|
17
|
+
class ProviderFunction extends constructs_1.Construct {
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.provider.ProviderFunction", version: "0.0.9" };
|
|
19
|
+
_function;
|
|
20
|
+
_response;
|
|
21
|
+
constructor(scope, id, props) {
|
|
22
|
+
super(scope, id);
|
|
23
|
+
this._function = props.function;
|
|
24
|
+
const provider = new custom_resources_1.Provider(this, "Provider", {
|
|
25
|
+
onEventHandler: props.function,
|
|
26
|
+
vpc: props.vpc,
|
|
27
|
+
vpcSubnets: { subnetType: aws_ec2_1.SubnetType.PRIVATE_WITH_EGRESS },
|
|
28
|
+
});
|
|
29
|
+
const customResource = new aws_cdk_lib_1.CustomResource(this, "CustomResource", {
|
|
30
|
+
serviceToken: provider.serviceToken,
|
|
31
|
+
properties: props.resourceProperties,
|
|
32
|
+
});
|
|
33
|
+
// Update the custom resource with an additional key.
|
|
34
|
+
customResource.node.defaultChild.addPropertyOverride("S3Key", props.additionalHash ??
|
|
35
|
+
this._function.node.defaultChild.code
|
|
36
|
+
.s3Key);
|
|
37
|
+
this._response = customResource.getAttString("Response");
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get the response of the Lambda function.
|
|
41
|
+
*/
|
|
42
|
+
get response() {
|
|
43
|
+
return this._response;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get the function.
|
|
47
|
+
*/
|
|
48
|
+
get function() {
|
|
49
|
+
return this._function;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.ProviderFunction = ProviderFunction;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXVDO0FBQ3ZDLG1FQUF3RDtBQUN4RCxpREFBdUQ7QUFFdkQsNkNBQTBEO0FBNEIxRDs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUzs7SUFDNUIsU0FBUyxDQUFZO0lBQ3JCLFNBQVMsQ0FBUztJQUVuQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBRWhDLE1BQU0sUUFBUSxHQUFHLElBQUksMkJBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzlDLGNBQWMsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUM5QixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsb0JBQVUsQ0FBQyxtQkFBbUIsRUFBRTtTQUMzRCxDQUFDLENBQUM7UUFFSCxNQUFNLGNBQWMsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ2hFLFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxVQUFVLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtTQUNyQyxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDcEQsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUE0QixDQUFDLG1CQUFtQixDQUNuRSxPQUFPLEVBQ1AsS0FBSyxDQUFDLGNBQWM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBNEIsQ0FBQyxJQUFxQjtpQkFDckUsS0FBSyxDQUNYLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOztBQTNDSCw0Q0E0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgSVZwYywgU3VibmV0VHlwZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBDZm5GdW5jdGlvbiwgSUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENmblJlc291cmNlLCBDdXN0b21SZXNvdXJjZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IENvZGVQcm9wZXJ0eSA9IENmbkZ1bmN0aW9uLkNvZGVQcm9wZXJ0eTtcblxuLyoqXG4gKiBQcm9wcyBmb3IgdGhlIHJlc291cmNlIGludm9rZSBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJGdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFZwYyBmb3IgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICAvKipcbiAgICogVGhlIHByb3ZpZGVyIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdGhhdCBnZXQgZGVmaW5lZCBpbiB0aGUgdGVtcGxhdGUgYW5kIHBhc3NlZCB0byB0aGUgTGFtYmRhIGZ1bmN0aW9uIHZpYSBgUmVzb3VyY2VQcm9wZXJ0aWVzYC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlUHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKipcbiAgICogQW4gYWRkaXRpb25hbCBoYXNoIHByb3BlcnR5IHRoYXQgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjdXN0b20gcmVzb3VyY2Ugc2hvdWxkIGJlIHVwZGF0ZWQuIEJ5IGRlZmF1bHQsXG4gICAqIHRoaXMgaXMgdGhlIHMzS2V5IG9mIHRoZSBMYW1iZGEgY29kZSBhc3NldCwgd2hpY2ggaXMgZGVyaXZlZCBmcm9tIHRoZSBhc3NldCBoYXNoLiBUaGlzIGlzIHVzZWQgdG8gZW5zdXJlIHRoYXRcbiAgICogdGhlIGN1c3RvbSByZXNvdXJjZSBpcyB1cGRhdGVkIHdoZW5ldmVyIHRoZSBMYW1iZGEgZnVuY3Rpb24gY2hhbmdlcywgc28gdGhhdCB0aGUgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgYWdhaW4uXG4gICAqIEFkZCBhIGNvbnN0YW50IHZhbHVlIGhlcmUgdG8gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvdXIuXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsSGFzaD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGNvbnN0cnVjdCBmb3IgaW52b2tpbmcgYSBMYW1iZGEgZnVuY3Rpb24gdXNpbmcgdGhlIENESyBwcm92aWRlciBmcmFtZXdvcms6XG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS92Mi9kb2NzL2F3cy1jZGstbGliLmN1c3RvbV9yZXNvdXJjZXMtcmVhZG1lLmh0bWwjcHJvdmlkZXItZnJhbWV3b3JrLlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIGZvciBwZXJmb3JtaW5nIGRhdGFiYXNlIGFjdGlvbnMgc3VjaCBhcyBtaWdyYXRpb25zIGR1cmluZyBDbG91ZEZvcm1hdGlvbiBzdGFjayBjcmVhdGlvbiwgd2hlcmUgQ0RLXG4gKiBkZXBsb3ltZW50IHdpbGwgZmFpbCBpZiB0aGUgZnVuY3Rpb24gZmFpbHMuIFRvIHVzZSB0aGlzIGNvbnN0cnVjdCB0aGUgTGFtYmRhIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHZhbHVlcyBhY2NvcmRpbmdcbiAqIHRvIHRoZSBwcm92aWRlciBmcmFtZXdvcmsuXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm92aWRlckZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZnVuY3Rpb246IElGdW5jdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzcG9uc2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvdmlkZXJGdW5jdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuX2Z1bmN0aW9uID0gcHJvcHMuZnVuY3Rpb247XG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBQcm92aWRlcih0aGlzLCBcIlByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBwcm9wcy5mdW5jdGlvbixcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgdnBjU3VibmV0czogeyBzdWJuZXRUeXBlOiBTdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGN1c3RvbVJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiQ3VzdG9tUmVzb3VyY2VcIiwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiBwcm9wcy5yZXNvdXJjZVByb3BlcnRpZXMsXG4gICAgfSk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIGN1c3RvbSByZXNvdXJjZSB3aXRoIGFuIGFkZGl0aW9uYWwga2V5LlxuICAgIChjdXN0b21SZXNvdXJjZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5SZXNvdXJjZSkuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUzNLZXlcIixcbiAgICAgIHByb3BzLmFkZGl0aW9uYWxIYXNoID8/XG4gICAgICAgICgodGhpcy5fZnVuY3Rpb24ubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuRnVuY3Rpb24pLmNvZGUgYXMgQ29kZVByb3BlcnR5KVxuICAgICAgICAgIC5zM0tleSxcbiAgICApO1xuXG4gICAgdGhpcy5fcmVzcG9uc2UgPSBjdXN0b21SZXNvdXJjZS5nZXRBdHRTdHJpbmcoXCJSZXNwb25zZVwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJlc3BvbnNlIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICBnZXQgcmVzcG9uc2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2U7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIGdldCBmdW5jdGlvbigpOiBJRnVuY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl9mdW5jdGlvbjtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared config for the FileManager.
|
|
3
|
+
*/
|
|
4
|
+
import { StageName } from "../utils/index";
|
|
5
|
+
export declare const fileManagerBuckets: Record<StageName, string[]>;
|
|
6
|
+
export declare const fileManagerCacheBuckets: Record<StageName, string[]>;
|
|
7
|
+
export declare const fileManagerPresignUserSecret = "orcabus/file-manager-presign-user";
|
|
8
|
+
export declare const accessKeySecretArn: Record<StageName, string>;
|
|
9
|
+
export declare const fileManagerIngestRoleName = "orcabus-file-manager-ingest-role";
|
|
10
|
+
export declare const fileManagerPresignUser = "orcabus-file-manager-presign-user";
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared config for the FileManager.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fileManagerPresignUser = exports.fileManagerIngestRoleName = exports.accessKeySecretArn = exports.fileManagerPresignUserSecret = exports.fileManagerCacheBuckets = exports.fileManagerBuckets = void 0;
|
|
7
|
+
const index_1 = require("../utils/index");
|
|
8
|
+
const deployment_stack_pipeline_1 = require("../deployment-stack-pipeline");
|
|
9
|
+
exports.fileManagerBuckets = {
|
|
10
|
+
["BETA"]: [
|
|
11
|
+
"umccr-temp-dev",
|
|
12
|
+
`ntsm-fingerprints-${deployment_stack_pipeline_1.BETA_ENVIRONMENT.account}-ap-southeast-2`,
|
|
13
|
+
`data-sharing-artifacts-${deployment_stack_pipeline_1.BETA_ENVIRONMENT.account}-ap-southeast-2`,
|
|
14
|
+
"filemanager-inventory-test",
|
|
15
|
+
],
|
|
16
|
+
["GAMMA"]: [
|
|
17
|
+
"umccr-temp-stg",
|
|
18
|
+
`ntsm-fingerprints-${deployment_stack_pipeline_1.GAMMA_ENVIRONMENT.account}-ap-southeast-2`,
|
|
19
|
+
`data-sharing-artifacts-${deployment_stack_pipeline_1.GAMMA_ENVIRONMENT.account}-ap-southeast-2`,
|
|
20
|
+
],
|
|
21
|
+
["PROD"]: [
|
|
22
|
+
"org.umccr.data.oncoanalyser",
|
|
23
|
+
"archive-prod-analysis-503977275616-ap-southeast-2",
|
|
24
|
+
"archive-prod-fastq-503977275616-ap-southeast-2",
|
|
25
|
+
`ntsm-fingerprints-${deployment_stack_pipeline_1.PROD_ENVIRONMENT.account}-ap-southeast-2`,
|
|
26
|
+
`data-sharing-artifacts-${deployment_stack_pipeline_1.PROD_ENVIRONMENT.account}-ap-southeast-2`,
|
|
27
|
+
"pipeline-montauk-977251586657-ap-southeast-2",
|
|
28
|
+
],
|
|
29
|
+
};
|
|
30
|
+
exports.fileManagerCacheBuckets = {
|
|
31
|
+
["BETA"]: ["pipeline-dev-cache-503977275616-ap-southeast-2"],
|
|
32
|
+
["GAMMA"]: ["pipeline-stg-cache-503977275616-ap-southeast-2"],
|
|
33
|
+
["PROD"]: ["pipeline-prod-cache-503977275616-ap-southeast-2"],
|
|
34
|
+
};
|
|
35
|
+
exports.fileManagerPresignUserSecret = "orcabus/file-manager-presign-user"; // pragma: allowlist secret
|
|
36
|
+
exports.accessKeySecretArn = {
|
|
37
|
+
["BETA"]: `arn:aws:secretsmanager:${deployment_stack_pipeline_1.BETA_ENVIRONMENT.region}:${deployment_stack_pipeline_1.BETA_ENVIRONMENT.account}:secret:${exports.fileManagerPresignUserSecret}`,
|
|
38
|
+
["GAMMA"]: `arn:aws:secretsmanager:${deployment_stack_pipeline_1.GAMMA_ENVIRONMENT.region}:${deployment_stack_pipeline_1.GAMMA_ENVIRONMENT.account}:secret:${exports.fileManagerPresignUserSecret}`,
|
|
39
|
+
["PROD"]: `arn:aws:secretsmanager:${deployment_stack_pipeline_1.PROD_ENVIRONMENT.region}:${deployment_stack_pipeline_1.PROD_ENVIRONMENT.account}:secret:${exports.fileManagerPresignUserSecret}`,
|
|
40
|
+
};
|
|
41
|
+
exports.fileManagerIngestRoleName = "orcabus-file-manager-ingest-role";
|
|
42
|
+
(0, index_1.validateSecretName)(exports.fileManagerPresignUserSecret);
|
|
43
|
+
exports.fileManagerPresignUser = "orcabus-file-manager-presign-user"; // pragma: allowlist secret
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmlsZS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsMENBQStEO0FBQy9ELDRFQUlzQztBQUV6QixRQUFBLGtCQUFrQixHQUFnQztJQUM3RCxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ1IsZ0JBQWdCO1FBQ2hCLHFCQUFxQiw0Q0FBZ0IsQ0FBQyxPQUFPLGlCQUFpQjtRQUM5RCwwQkFBMEIsNENBQWdCLENBQUMsT0FBTyxpQkFBaUI7UUFDbkUsNEJBQTRCO0tBQzdCO0lBQ0QsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNULGdCQUFnQjtRQUNoQixxQkFBcUIsNkNBQWlCLENBQUMsT0FBTyxpQkFBaUI7UUFDL0QsMEJBQTBCLDZDQUFpQixDQUFDLE9BQU8saUJBQWlCO0tBQ3JFO0lBQ0QsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNSLDZCQUE2QjtRQUM3QixtREFBbUQ7UUFDbkQsZ0RBQWdEO1FBQ2hELHFCQUFxQiw0Q0FBZ0IsQ0FBQyxPQUFPLGlCQUFpQjtRQUM5RCwwQkFBMEIsNENBQWdCLENBQUMsT0FBTyxpQkFBaUI7UUFDbkUsOENBQThDO0tBQy9DO0NBQ0YsQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQWdDO0lBQ2xFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnREFBZ0QsQ0FBQztJQUM1RCxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0RBQWdELENBQUM7SUFDN0QsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGlEQUFpRCxDQUFDO0NBQzlELENBQUM7QUFFVyxRQUFBLDRCQUE0QixHQUFHLG1DQUFtQyxDQUFDLENBQUMsMkJBQTJCO0FBQy9GLFFBQUEsa0JBQWtCLEdBQThCO0lBQzNELENBQUMsTUFBTSxDQUFDLEVBQUUsMEJBQTBCLDRDQUFnQixDQUFDLE1BQU0sSUFBSSw0Q0FBZ0IsQ0FBQyxPQUFPLFdBQVcsb0NBQTRCLEVBQUU7SUFDaEksQ0FBQyxPQUFPLENBQUMsRUFBRSwwQkFBMEIsNkNBQWlCLENBQUMsTUFBTSxJQUFJLDZDQUFpQixDQUFDLE9BQU8sV0FBVyxvQ0FBNEIsRUFBRTtJQUNuSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLDBCQUEwQiw0Q0FBZ0IsQ0FBQyxNQUFNLElBQUksNENBQWdCLENBQUMsT0FBTyxXQUFXLG9DQUE0QixFQUFFO0NBQ2pJLENBQUM7QUFFVyxRQUFBLHlCQUF5QixHQUFHLGtDQUFrQyxDQUFDO0FBQzVFLElBQUEsMEJBQWtCLEVBQUMsb0NBQTRCLENBQUMsQ0FBQztBQUVwQyxRQUFBLHNCQUFzQixHQUFHLG1DQUFtQyxDQUFDLENBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgY29uZmlnIGZvciB0aGUgRmlsZU1hbmFnZXIuXG4gKi9cblxuaW1wb3J0IHsgU3RhZ2VOYW1lLCB2YWxpZGF0ZVNlY3JldE5hbWUgfSBmcm9tIFwiLi4vdXRpbHMvaW5kZXhcIjtcbmltcG9ydCB7XG4gIEJFVEFfRU5WSVJPTk1FTlQsXG4gIEdBTU1BX0VOVklST05NRU5ULFxuICBQUk9EX0VOVklST05NRU5ULFxufSBmcm9tIFwiLi4vZGVwbG95bWVudC1zdGFjay1waXBlbGluZVwiO1xuXG5leHBvcnQgY29uc3QgZmlsZU1hbmFnZXJCdWNrZXRzOiBSZWNvcmQ8U3RhZ2VOYW1lLCBzdHJpbmdbXT4gPSB7XG4gIFtcIkJFVEFcIl06IFtcbiAgICBcInVtY2NyLXRlbXAtZGV2XCIsXG4gICAgYG50c20tZmluZ2VycHJpbnRzLSR7QkVUQV9FTlZJUk9OTUVOVC5hY2NvdW50fS1hcC1zb3V0aGVhc3QtMmAsXG4gICAgYGRhdGEtc2hhcmluZy1hcnRpZmFjdHMtJHtCRVRBX0VOVklST05NRU5ULmFjY291bnR9LWFwLXNvdXRoZWFzdC0yYCxcbiAgICBcImZpbGVtYW5hZ2VyLWludmVudG9yeS10ZXN0XCIsXG4gIF0sXG4gIFtcIkdBTU1BXCJdOiBbXG4gICAgXCJ1bWNjci10ZW1wLXN0Z1wiLFxuICAgIGBudHNtLWZpbmdlcnByaW50cy0ke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9LWFwLXNvdXRoZWFzdC0yYCxcbiAgICBgZGF0YS1zaGFyaW5nLWFydGlmYWN0cy0ke0dBTU1BX0VOVklST05NRU5ULmFjY291bnR9LWFwLXNvdXRoZWFzdC0yYCxcbiAgXSxcbiAgW1wiUFJPRFwiXTogW1xuICAgIFwib3JnLnVtY2NyLmRhdGEub25jb2FuYWx5c2VyXCIsXG4gICAgXCJhcmNoaXZlLXByb2QtYW5hbHlzaXMtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCIsXG4gICAgXCJhcmNoaXZlLXByb2QtZmFzdHEtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCIsXG4gICAgYG50c20tZmluZ2VycHJpbnRzLSR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fS1hcC1zb3V0aGVhc3QtMmAsXG4gICAgYGRhdGEtc2hhcmluZy1hcnRpZmFjdHMtJHtQUk9EX0VOVklST05NRU5ULmFjY291bnR9LWFwLXNvdXRoZWFzdC0yYCxcbiAgICBcInBpcGVsaW5lLW1vbnRhdWstOTc3MjUxNTg2NjU3LWFwLXNvdXRoZWFzdC0yXCIsXG4gIF0sXG59O1xuXG5leHBvcnQgY29uc3QgZmlsZU1hbmFnZXJDYWNoZUJ1Y2tldHM6IFJlY29yZDxTdGFnZU5hbWUsIHN0cmluZ1tdPiA9IHtcbiAgW1wiQkVUQVwiXTogW1wicGlwZWxpbmUtZGV2LWNhY2hlLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiXSxcbiAgW1wiR0FNTUFcIl06IFtcInBpcGVsaW5lLXN0Zy1jYWNoZS01MDM5NzcyNzU2MTYtYXAtc291dGhlYXN0LTJcIl0sXG4gIFtcIlBST0RcIl06IFtcInBpcGVsaW5lLXByb2QtY2FjaGUtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCJdLFxufTtcblxuZXhwb3J0IGNvbnN0IGZpbGVNYW5hZ2VyUHJlc2lnblVzZXJTZWNyZXQgPSBcIm9yY2FidXMvZmlsZS1tYW5hZ2VyLXByZXNpZ24tdXNlclwiOyAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbmV4cG9ydCBjb25zdCBhY2Nlc3NLZXlTZWNyZXRBcm46IFJlY29yZDxTdGFnZU5hbWUsIHN0cmluZz4gPSB7XG4gIFtcIkJFVEFcIl06IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7QkVUQV9FTlZJUk9OTUVOVC5yZWdpb259OiR7QkVUQV9FTlZJUk9OTUVOVC5hY2NvdW50fTpzZWNyZXQ6JHtmaWxlTWFuYWdlclByZXNpZ25Vc2VyU2VjcmV0fWAsXG4gIFtcIkdBTU1BXCJdOiBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjoke0dBTU1BX0VOVklST05NRU5ULnJlZ2lvbn06JHtHQU1NQV9FTlZJUk9OTUVOVC5hY2NvdW50fTpzZWNyZXQ6JHtmaWxlTWFuYWdlclByZXNpZ25Vc2VyU2VjcmV0fWAsXG4gIFtcIlBST0RcIl06IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7UFJPRF9FTlZJUk9OTUVOVC5yZWdpb259OiR7UFJPRF9FTlZJUk9OTUVOVC5hY2NvdW50fTpzZWNyZXQ6JHtmaWxlTWFuYWdlclByZXNpZ25Vc2VyU2VjcmV0fWAsXG59O1xuXG5leHBvcnQgY29uc3QgZmlsZU1hbmFnZXJJbmdlc3RSb2xlTmFtZSA9IFwib3JjYWJ1cy1maWxlLW1hbmFnZXItaW5nZXN0LXJvbGVcIjtcbnZhbGlkYXRlU2VjcmV0TmFtZShmaWxlTWFuYWdlclByZXNpZ25Vc2VyU2VjcmV0KTtcblxuZXhwb3J0IGNvbnN0IGZpbGVNYW5hZ2VyUHJlc2lnblVzZXIgPSBcIm9yY2FidXMtZmlsZS1tYW5hZ2VyLXByZXNpZ24tdXNlclwiOyAvLyBwcmFnbWE6IGFsbG93bGlzdCBzZWNyZXRcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * as fileManager from "./file-manager";
|
|
@@ -0,0 +1,38 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.fileManager = void 0;
|
|
37
|
+
exports.fileManager = __importStar(require("./file-manager"));
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4REFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBmaWxlTWFuYWdlciBmcm9tIFwiLi9maWxlLW1hbmFnZXJcIjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const cdk = __importStar(require("aws-cdk-lib"));
|
|
37
|
+
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
38
|
+
const ec2 = __importStar(require("aws-cdk-lib/aws-ec2"));
|
|
39
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
40
|
+
const aws_s3_1 = require("aws-cdk-lib/aws-s3");
|
|
41
|
+
const index_1 = require("../provider-function/index");
|
|
42
|
+
let stack;
|
|
43
|
+
let vpc;
|
|
44
|
+
beforeEach(() => {
|
|
45
|
+
stack = new cdk.Stack();
|
|
46
|
+
vpc = new ec2.Vpc(stack, 'MockExistingVPC', {
|
|
47
|
+
subnetConfiguration: [
|
|
48
|
+
{
|
|
49
|
+
cidrMask: 24,
|
|
50
|
+
name: 'publicSubnet',
|
|
51
|
+
subnetType: ec2.SubnetType.PUBLIC,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
cidrMask: 24,
|
|
55
|
+
name: 'privateWithEgressSubnet',
|
|
56
|
+
subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
function assert_common(template, key) {
|
|
62
|
+
// Contains the provider.
|
|
63
|
+
template.hasResourceProperties('AWS::Lambda::Function', {
|
|
64
|
+
Environment: {
|
|
65
|
+
Variables: {
|
|
66
|
+
USER_ON_EVENT_FUNCTION_ARN: {
|
|
67
|
+
'Fn::GetAtt': [assertions_1.Match.stringLikeRegexp('TestFunction*'), 'Arn'],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
// Contains the custom resource.
|
|
73
|
+
template.hasResourceProperties('AWS::CloudFormation::CustomResource', {
|
|
74
|
+
S3Key: key,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
test('Test ProviderFunction', () => {
|
|
78
|
+
const testFunction = new aws_lambda_1.Function(stack, 'TestFunction', {
|
|
79
|
+
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, 'TestBucket', { bucketName: 'bucket' }), 'key'),
|
|
80
|
+
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
81
|
+
handler: 'index.handler',
|
|
82
|
+
});
|
|
83
|
+
new index_1.ProviderFunction(stack, 'TestProviderFunction', {
|
|
84
|
+
function: testFunction,
|
|
85
|
+
vpc,
|
|
86
|
+
});
|
|
87
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
88
|
+
assert_common(template, 'key');
|
|
89
|
+
});
|
|
90
|
+
test('Test ProviderFunction additionalHash', () => {
|
|
91
|
+
const testFunction = new aws_lambda_1.Function(stack, 'TestFunction', {
|
|
92
|
+
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, 'TestBucket', { bucketName: 'bucket' }), 'key'),
|
|
93
|
+
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
94
|
+
handler: 'index.handler',
|
|
95
|
+
});
|
|
96
|
+
new index_1.ProviderFunction(stack, 'TestProviderFunction', {
|
|
97
|
+
function: testFunction,
|
|
98
|
+
vpc,
|
|
99
|
+
additionalHash: 'hash',
|
|
100
|
+
});
|
|
101
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
102
|
+
assert_common(template, 'hash');
|
|
103
|
+
});
|
|
104
|
+
test('Test ProviderFunction properties', () => {
|
|
105
|
+
const testFunction = new aws_lambda_1.Function(stack, 'TestFunction', {
|
|
106
|
+
code: new aws_lambda_1.S3Code(new aws_s3_1.Bucket(stack, 'TestBucket', { bucketName: 'bucket' }), 'key'),
|
|
107
|
+
runtime: aws_lambda_1.Runtime.NODEJS_20_X,
|
|
108
|
+
handler: 'index.handler',
|
|
109
|
+
});
|
|
110
|
+
new index_1.ProviderFunction(stack, 'TestProviderFunction', {
|
|
111
|
+
function: testFunction,
|
|
112
|
+
vpc,
|
|
113
|
+
resourceProperties: { Property: 'value' },
|
|
114
|
+
});
|
|
115
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
116
|
+
assert_common(template, 'key');
|
|
117
|
+
template.hasResourceProperties('AWS::CloudFormation::CustomResource', {
|
|
118
|
+
Property: 'value',
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJGdW5jdGlvbi50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJvdmlkZXJGdW5jdGlvbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW1DO0FBQ25DLHVEQUF5RDtBQUN6RCx5REFBMkM7QUFDM0MsdURBQW1FO0FBQ25FLCtDQUE0QztBQUM1QyxzREFBNEQ7QUFFNUQsSUFBSSxLQUFnQixDQUFDO0FBQ3JCLElBQUksR0FBWSxDQUFDO0FBRWpCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7SUFDZCxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7UUFDMUMsbUJBQW1CLEVBQUU7WUFDbkI7Z0JBQ0UsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU07YUFDbEM7WUFDRDtnQkFDRSxRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUseUJBQXlCO2dCQUMvQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUI7YUFDL0M7U0FDRjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsU0FBUyxhQUFhLENBQUMsUUFBa0IsRUFBRSxHQUFXO0lBQ3BELHlCQUF5QjtJQUN6QixRQUFRLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLEVBQUU7UUFDdEQsV0FBVyxFQUFFO1lBQ1gsU0FBUyxFQUFFO2dCQUNULDBCQUEwQixFQUFFO29CQUMxQixZQUFZLEVBQUUsQ0FBQyxrQkFBSyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssQ0FBQztpQkFDL0Q7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsZ0NBQWdDO0lBQ2hDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxxQ0FBcUMsRUFBRTtRQUNwRSxLQUFLLEVBQUUsR0FBRztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO0lBQ2pDLE1BQU0sWUFBWSxHQUFHLElBQUkscUJBQVEsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFO1FBQ3ZELElBQUksRUFBRSxJQUFJLG1CQUFNLENBQUMsSUFBSSxlQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUNsRixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1FBQzVCLE9BQU8sRUFBRSxlQUFlO0tBQ3pCLENBQUMsQ0FBQztJQUVILElBQUksd0JBQWdCLENBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFFO1FBQ2xELFFBQVEsRUFBRSxZQUFZO1FBQ3RCLEdBQUc7S0FDSixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLEdBQUcsRUFBRTtJQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLHFCQUFRLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtRQUN2RCxJQUFJLEVBQUUsSUFBSSxtQkFBTSxDQUFDLElBQUksZUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDbEYsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztRQUM1QixPQUFPLEVBQUUsZUFBZTtLQUN6QixDQUFDLENBQUM7SUFFSCxJQUFJLHdCQUFnQixDQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtRQUNsRCxRQUFRLEVBQUUsWUFBWTtRQUN0QixHQUFHO1FBQ0gsY0FBYyxFQUFFLE1BQU07S0FDdkIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsYUFBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7SUFDNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxxQkFBUSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7UUFDdkQsSUFBSSxFQUFFLElBQUksbUJBQU0sQ0FBQyxJQUFJLGVBQU0sQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQ2xGLE9BQU8sRUFBRSxvQkFBTyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLGVBQWU7S0FDekIsQ0FBQyxDQUFDO0lBRUgsSUFBSSx3QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7UUFDbEQsUUFBUSxFQUFFLFlBQVk7UUFDdEIsR0FBRztRQUNILGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtLQUMxQyxDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRS9CLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxxQ0FBcUMsRUFBRTtRQUNwRSxRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBNYXRjaCwgVGVtcGxhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hc3NlcnRpb25zJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IEZ1bmN0aW9uLCBSdW50aW1lLCBTM0NvZGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQge1Byb3ZpZGVyRnVuY3Rpb259IGZyb20gXCIuLi9wcm92aWRlci1mdW5jdGlvbi9pbmRleFwiO1xuXG5sZXQgc3RhY2s6IGNkay5TdGFjaztcbmxldCB2cGM6IGVjMi5WcGM7XG5cbmJlZm9yZUVhY2goKCkgPT4ge1xuICBzdGFjayA9IG5ldyBjZGsuU3RhY2soKTtcbiAgdnBjID0gbmV3IGVjMi5WcGMoc3RhY2ssICdNb2NrRXhpc3RpbmdWUEMnLCB7XG4gICAgc3VibmV0Q29uZmlndXJhdGlvbjogW1xuICAgICAge1xuICAgICAgICBjaWRyTWFzazogMjQsXG4gICAgICAgIG5hbWU6ICdwdWJsaWNTdWJuZXQnLFxuICAgICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjaWRyTWFzazogMjQsXG4gICAgICAgIG5hbWU6ICdwcml2YXRlV2l0aEVncmVzc1N1Ym5ldCcsXG4gICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1MsXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xufSk7XG5cbmZ1bmN0aW9uIGFzc2VydF9jb21tb24odGVtcGxhdGU6IFRlbXBsYXRlLCBrZXk6IHN0cmluZykge1xuICAvLyBDb250YWlucyB0aGUgcHJvdmlkZXIuXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIEVudmlyb25tZW50OiB7XG4gICAgICBWYXJpYWJsZXM6IHtcbiAgICAgICAgVVNFUl9PTl9FVkVOVF9GVU5DVElPTl9BUk46IHtcbiAgICAgICAgICAnRm46OkdldEF0dCc6IFtNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCdUZXN0RnVuY3Rpb24qJyksICdBcm4nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gQ29udGFpbnMgdGhlIGN1c3RvbSByZXNvdXJjZS5cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsIHtcbiAgICBTM0tleToga2V5LFxuICB9KTtcbn1cblxudGVzdCgnVGVzdCBQcm92aWRlckZ1bmN0aW9uJywgKCkgPT4ge1xuICBjb25zdCB0ZXN0RnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24oc3RhY2ssICdUZXN0RnVuY3Rpb24nLCB7XG4gICAgY29kZTogbmV3IFMzQ29kZShuZXcgQnVja2V0KHN0YWNrLCAnVGVzdEJ1Y2tldCcsIHsgYnVja2V0TmFtZTogJ2J1Y2tldCcgfSksICdrZXknKSxcbiAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yMF9YLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgfSk7XG5cbiAgbmV3IFByb3ZpZGVyRnVuY3Rpb24oc3RhY2ssICdUZXN0UHJvdmlkZXJGdW5jdGlvbicsIHtcbiAgICBmdW5jdGlvbjogdGVzdEZ1bmN0aW9uLFxuICAgIHZwYyxcbiAgfSk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICBhc3NlcnRfY29tbW9uKHRlbXBsYXRlLCAna2V5Jyk7XG59KTtcblxudGVzdCgnVGVzdCBQcm92aWRlckZ1bmN0aW9uIGFkZGl0aW9uYWxIYXNoJywgKCkgPT4ge1xuICBjb25zdCB0ZXN0RnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24oc3RhY2ssICdUZXN0RnVuY3Rpb24nLCB7XG4gICAgY29kZTogbmV3IFMzQ29kZShuZXcgQnVja2V0KHN0YWNrLCAnVGVzdEJ1Y2tldCcsIHsgYnVja2V0TmFtZTogJ2J1Y2tldCcgfSksICdrZXknKSxcbiAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yMF9YLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgfSk7XG5cbiAgbmV3IFByb3ZpZGVyRnVuY3Rpb24oc3RhY2ssICdUZXN0UHJvdmlkZXJGdW5jdGlvbicsIHtcbiAgICBmdW5jdGlvbjogdGVzdEZ1bmN0aW9uLFxuICAgIHZwYyxcbiAgICBhZGRpdGlvbmFsSGFzaDogJ2hhc2gnLFxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIGFzc2VydF9jb21tb24odGVtcGxhdGUsICdoYXNoJyk7XG59KTtcblxudGVzdCgnVGVzdCBQcm92aWRlckZ1bmN0aW9uIHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHRlc3RGdW5jdGlvbiA9IG5ldyBGdW5jdGlvbihzdGFjaywgJ1Rlc3RGdW5jdGlvbicsIHtcbiAgICBjb2RlOiBuZXcgUzNDb2RlKG5ldyBCdWNrZXQoc3RhY2ssICdUZXN0QnVja2V0JywgeyBidWNrZXROYW1lOiAnYnVja2V0JyB9KSwgJ2tleScpLFxuICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzIwX1gsXG4gICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICB9KTtcblxuICBuZXcgUHJvdmlkZXJGdW5jdGlvbihzdGFjaywgJ1Rlc3RQcm92aWRlckZ1bmN0aW9uJywge1xuICAgIGZ1bmN0aW9uOiB0ZXN0RnVuY3Rpb24sXG4gICAgdnBjLFxuICAgIHJlc291cmNlUHJvcGVydGllczogeyBQcm9wZXJ0eTogJ3ZhbHVlJyB9LFxuICB9KTtcblxuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIGFzc2VydF9jb21tb24odGVtcGxhdGUsICdrZXknKTtcblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJywge1xuICAgIFByb3BlcnR5OiAndmFsdWUnLFxuICB9KTtcbn0pO1xuIl19
|
package/utils/index.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { Construct } from "constructs";
|
|
2
|
+
import { SynthesisMessage } from 'aws-cdk-lib/cx-api';
|
|
2
3
|
export type StageName = "BETA" | "GAMMA" | "PROD";
|
|
3
4
|
export declare const region = "ap-southeast-2";
|
|
4
5
|
export declare const accountIdAlias: Record<StageName, string>;
|
|
5
6
|
export declare function resolveStageName(scope: Construct): StageName;
|
|
7
|
+
/**
|
|
8
|
+
* Stringify the message data.
|
|
9
|
+
*/
|
|
10
|
+
export declare function synthesisMessageToString(sm: SynthesisMessage): string;
|
|
11
|
+
/**
|
|
12
|
+
* Validate the secret name so that it doesn't end with 6 characters and a hyphen.
|
|
13
|
+
*/
|
|
14
|
+
export declare const validateSecretName: (secretName: string) => void;
|
package/utils/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.accountIdAlias = exports.region = void 0;
|
|
3
|
+
exports.validateSecretName = exports.accountIdAlias = exports.region = void 0;
|
|
4
4
|
exports.resolveStageName = resolveStageName;
|
|
5
|
+
exports.synthesisMessageToString = synthesisMessageToString;
|
|
5
6
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
7
|
exports.region = 'ap-southeast-2';
|
|
7
8
|
exports.accountIdAlias = {
|
|
@@ -19,4 +20,21 @@ function resolveStageName(scope) {
|
|
|
19
20
|
}
|
|
20
21
|
return match[0];
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Stringify the message data.
|
|
25
|
+
*/
|
|
26
|
+
function synthesisMessageToString(sm) {
|
|
27
|
+
return `${JSON.stringify(sm.entry.data)} [${sm.id}]`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate the secret name so that it doesn't end with 6 characters and a hyphen.
|
|
31
|
+
*/
|
|
32
|
+
const validateSecretName = (secretName) => {
|
|
33
|
+
// Note, this should not end with a hyphen and 6 characters, otherwise secrets manager won't be
|
|
34
|
+
// able to find the secret using a partial ARN.
|
|
35
|
+
if (/-(.){6}$/.test(secretName)) {
|
|
36
|
+
throw new Error('the secret name should not end with a hyphen and 6 characters');
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.validateSecretName = validateSecretName;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFlQSw0Q0FXQztBQUtELDREQUVDO0FBL0JELDZDQUFrQztBQUtyQixRQUFBLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQztBQUUxQixRQUFBLGNBQWMsR0FBOEI7SUFDdkQsSUFBSSxFQUFFLGNBQWMsRUFBRSxvQkFBb0I7SUFDMUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0I7SUFDdkMsSUFBSSxFQUFFLGNBQWMsRUFBRSxtQkFBbUI7Q0FDMUMsQ0FBQztBQUVGLFNBQWdCLGdCQUFnQixDQUFDLEtBQWdCO0lBQzdDLCtEQUErRDtJQUMvRCwrREFBK0Q7SUFDL0QscUZBQXFGO0lBQ3JGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFcEcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sOEJBQThCLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFjLENBQUM7QUFDakMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsRUFBb0I7SUFDekQsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUM7QUFDekQsQ0FBQztBQUVEOztHQUVHO0FBQ0ksTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBRTtJQUNyRCwrRkFBK0Y7SUFDL0YsK0NBQStDO0lBQy9DLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUNyRixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxrQkFBa0Isc0JBTTdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1N0YWNrfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFN5bnRoZXNpc01lc3NhZ2UgfSBmcm9tICdhd3MtY2RrLWxpYi9jeC1hcGknO1xuXG5leHBvcnQgdHlwZSBTdGFnZU5hbWUgPSBcIkJFVEFcIiB8IFwiR0FNTUFcIiB8IFwiUFJPRFwiO1xuXG5leHBvcnQgY29uc3QgcmVnaW9uID0gJ2FwLXNvdXRoZWFzdC0yJztcblxuZXhwb3J0IGNvbnN0IGFjY291bnRJZEFsaWFzOiBSZWNvcmQ8U3RhZ2VOYW1lLCBzdHJpbmc+ID0ge1xuICBCRVRBOiAnODQzNDA3OTE2NTcwJywgLy8gdW1jY3JfZGV2ZWxvcG1lbnRcbiAgR0FNTUE6ICc0NTU2MzQzNDU0NDYnLCAvLyB1bWNjcl9zdGFnaW5nXG4gIFBST0Q6ICc0NzIwNTc1MDM4MTQnLCAvLyB1bWNjcl9wcm9kdWN0aW9uXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVN0YWdlTmFtZShzY29wZTogQ29uc3RydWN0KTogU3RhZ2VOYW1lIHtcbiAgICAvLyBTZWUgZGlzY3Vzc2lvbiBpbiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE3NTRcbiAgICAvLyBVc2UgU3RhY2sub2Yoc2NvcGUpLmFjY291bnQgdG8gZ2V0IHRoZSBhY2NvdW50IElEIGluc3RlYWQgb2ZcbiAgICAvLyBjZGsuQXdzLkFDQ09VTlRfSUQsIHdoaWNoIG1heSBub3QgYmUgYXZhaWxhYmxlIGF0IHRoaXMgcG9pbnQgaW4gdGhlIENESyBsaWZlY3ljbGUuXG4gICAgY29uc3QgbWF0Y2ggPSBPYmplY3QuZW50cmllcyhhY2NvdW50SWRBbGlhcykuZmluZCgoW18sIHZhbHVlXSkgPT4gdmFsdWUgPT09IFN0YWNrLm9mKHNjb3BlKS5hY2NvdW50KVxuXG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFjY291bnQgSUQgJHtTdGFjay5vZihzY29wZSkuYWNjb3VudH0gbm90IGZvdW5kIGluIGFjY291bnRJZEFsaWFzYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoWzBdIGFzIFN0YWdlTmFtZTtcbn1cblxuLyoqXG4gKiBTdHJpbmdpZnkgdGhlIG1lc3NhZ2UgZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN5bnRoZXNpc01lc3NhZ2VUb1N0cmluZyhzbTogU3ludGhlc2lzTWVzc2FnZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke0pTT04uc3RyaW5naWZ5KHNtLmVudHJ5LmRhdGEpfSBbJHtzbS5pZH1dYDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGUgc2VjcmV0IG5hbWUgc28gdGhhdCBpdCBkb2Vzbid0IGVuZCB3aXRoIDYgY2hhcmFjdGVycyBhbmQgYSBoeXBoZW4uXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNlY3JldE5hbWUgPSAoc2VjcmV0TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgLy8gTm90ZSwgdGhpcyBzaG91bGQgbm90IGVuZCB3aXRoIGEgaHlwaGVuIGFuZCA2IGNoYXJhY3RlcnMsIG90aGVyd2lzZSBzZWNyZXRzIG1hbmFnZXIgd29uJ3QgYmVcbiAgICAvLyBhYmxlIHRvIGZpbmQgdGhlIHNlY3JldCB1c2luZyBhIHBhcnRpYWwgQVJOLlxuICAgIGlmICgvLSguKXs2fSQvLnRlc3Qoc2VjcmV0TmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0aGUgc2VjcmV0IG5hbWUgc2hvdWxkIG5vdCBlbmQgd2l0aCBhIGh5cGhlbiBhbmQgNiBjaGFyYWN0ZXJzJyk7XG4gICAgfVxufTtcbiJdfQ==
|