@cxbuilder/flow-config 1.0.0 → 1.0.2
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 +3 -76
- package/CHANGELOG.md +4 -0
- package/dist/infrastructure/FlowConfigStack.js +3 -3
- package/dist/infrastructure/api/Api.d.ts +2 -2
- package/dist/infrastructure/api/Api.js +41 -42
- package/dist/infrastructure/createLambda.js +11 -6
- package/dist/infrastructure/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -4
package/.jsii
CHANGED
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"yaml": "^2.8.0"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@aws-solutions-constructs/aws-openapigateway-lambda": "^2.85.2",
|
|
24
23
|
"aws-cdk-lib": "2.194.0",
|
|
25
24
|
"constructs": "^10.0.0"
|
|
26
25
|
},
|
|
@@ -107,78 +106,6 @@
|
|
|
107
106
|
}
|
|
108
107
|
}
|
|
109
108
|
},
|
|
110
|
-
"@aws-solutions-constructs/aws-openapigateway-lambda": {
|
|
111
|
-
"targets": {
|
|
112
|
-
"dotnet": {
|
|
113
|
-
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
|
|
114
|
-
"namespace": "Amazon.SolutionsConstructs.AWS.OpenApiGatewayLambda",
|
|
115
|
-
"packageId": "Amazon.SolutionsConstructs.AWS.OpenApiGatewayLambda",
|
|
116
|
-
"signAssembly": true
|
|
117
|
-
},
|
|
118
|
-
"java": {
|
|
119
|
-
"maven": {
|
|
120
|
-
"artifactId": "openapigatewaylambda",
|
|
121
|
-
"groupId": "software.amazon.awsconstructs"
|
|
122
|
-
},
|
|
123
|
-
"package": "software.amazon.awsconstructs.services.openapigatewaylambda"
|
|
124
|
-
},
|
|
125
|
-
"js": {
|
|
126
|
-
"npm": "@aws-solutions-constructs/aws-openapigateway-lambda"
|
|
127
|
-
},
|
|
128
|
-
"python": {
|
|
129
|
-
"distName": "aws-solutions-constructs.aws-openapigateway-lambda",
|
|
130
|
-
"module": "aws_solutions_constructs.aws_openapigateway_lambda"
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
"@aws-solutions-constructs/core": {
|
|
135
|
-
"targets": {
|
|
136
|
-
"dotnet": {
|
|
137
|
-
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
|
|
138
|
-
"namespace": "Amazon.SolutionsConstructs.AWS.Core",
|
|
139
|
-
"packageId": "Amazon.SolutionsConstructs.AWS.Core",
|
|
140
|
-
"signAssembly": true
|
|
141
|
-
},
|
|
142
|
-
"java": {
|
|
143
|
-
"maven": {
|
|
144
|
-
"artifactId": "core",
|
|
145
|
-
"groupId": "software.amazon.awsconstructs"
|
|
146
|
-
},
|
|
147
|
-
"package": "software.amazon.awsconstructs.services.core"
|
|
148
|
-
},
|
|
149
|
-
"js": {
|
|
150
|
-
"npm": "@aws-solutions-constructs/core"
|
|
151
|
-
},
|
|
152
|
-
"python": {
|
|
153
|
-
"distName": "aws-solutions-constructs.core",
|
|
154
|
-
"module": "aws_solutions_constructs.core"
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
"@aws-solutions-constructs/resources": {
|
|
159
|
-
"targets": {
|
|
160
|
-
"dotnet": {
|
|
161
|
-
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
|
|
162
|
-
"namespace": "Amazon.SolutionsConstructs.AWS.Resources",
|
|
163
|
-
"packageId": "Amazon.SolutionsConstructs.AWS.Resources",
|
|
164
|
-
"signAssembly": true
|
|
165
|
-
},
|
|
166
|
-
"java": {
|
|
167
|
-
"maven": {
|
|
168
|
-
"artifactId": "resources",
|
|
169
|
-
"groupId": "software.amazon.awsconstructs"
|
|
170
|
-
},
|
|
171
|
-
"package": "software.amazon.awsconstructs.services.resources"
|
|
172
|
-
},
|
|
173
|
-
"js": {
|
|
174
|
-
"npm": "@aws-solutions-constructs/resources"
|
|
175
|
-
},
|
|
176
|
-
"python": {
|
|
177
|
-
"distName": "aws-solutions-constructs.resources",
|
|
178
|
-
"module": "aws_solutions_constructs.resources"
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
},
|
|
182
109
|
"aws-cdk-lib": {
|
|
183
110
|
"submodules": {
|
|
184
111
|
"aws-cdk-lib.alexa_ask": {
|
|
@@ -4061,7 +3988,7 @@
|
|
|
4061
3988
|
},
|
|
4062
3989
|
"repository": {
|
|
4063
3990
|
"type": "git",
|
|
4064
|
-
"url": "
|
|
3991
|
+
"url": "https://github.com/cxbuilder/flow-config.git"
|
|
4065
3992
|
},
|
|
4066
3993
|
"schema": "jsii/0.10.0",
|
|
4067
3994
|
"targets": {
|
|
@@ -4591,6 +4518,6 @@
|
|
|
4591
4518
|
"symbolId": "infrastructure/FlowConfigStack:VpcConfig"
|
|
4592
4519
|
}
|
|
4593
4520
|
},
|
|
4594
|
-
"version": "1.0.
|
|
4595
|
-
"fingerprint": "
|
|
4521
|
+
"version": "1.0.2",
|
|
4522
|
+
"fingerprint": "w9Ycg9k4gI4a60byR9Aq9YQSosFtZL/sCppEdcuzvDU="
|
|
4596
4523
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.2] - 2025-06-20
|
|
9
|
+
|
|
10
|
+
- Converted to `SpecRestApi` because `@aws-solutions-constructs/aws-openapigateway-lambda` is not compatible with `Role.customizeRoles`
|
|
11
|
+
|
|
8
12
|
## [1.0.0] - 2025-06-18
|
|
9
13
|
|
|
10
14
|
### Added
|
|
@@ -24,7 +24,7 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
24
24
|
}
|
|
25
25
|
get appUrl() {
|
|
26
26
|
const { region } = cdk.Stack.of(this);
|
|
27
|
-
return `https://${this.api.
|
|
27
|
+
return `https://${this.api.restApi.restApiId}.execute-api.${region}.amazonaws.com/prod`;
|
|
28
28
|
}
|
|
29
29
|
constructor(scope, id, props) {
|
|
30
30
|
const { prefix, cognito, alertEmails, prod = false, vpc, globalTable, } = props;
|
|
@@ -196,5 +196,5 @@ class FlowConfigStack extends cdk.Stack {
|
|
|
196
196
|
}
|
|
197
197
|
exports.FlowConfigStack = FlowConfigStack;
|
|
198
198
|
_a = JSII_RTTI_SYMBOL_1;
|
|
199
|
-
FlowConfigStack[_a] = { fqn: "@cxbuilder/flow-config.FlowConfigStack", version: "1.0.
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NvbmZpZ1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvRmxvd0NvbmZpZ1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlEQUtpQztBQUNqQyxxREFBcUQ7QUFFckQsMkNBQTJDO0FBRTNDLG1DQUFnQztBQUNoQyxpREFBNEM7QUFDNUMsNkVBQXNFO0FBQ3RFLHVFQUFvRTtBQUNwRSx5REFBb0U7QUFDcEUseUVBQWlFO0FBQ2pFLDJDQUF3QztBQW1HeEMsTUFBYSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBWTVDOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxnQkFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztJQUNyRyxDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ0gsS0FBMkI7UUFFbEMsTUFBTSxFQUNKLE1BQU0sRUFDTixPQUFPLEVBQ1AsV0FBVyxFQUNYLElBQUksR0FBRyxLQUFLLEVBQ1osR0FBRyxFQUNILFdBQVcsR0FDWixHQUFHLEtBQUssQ0FBQztRQUNWLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTTtZQUNwQyxXQUFXLEVBQ1QsS0FBSyxDQUFDLFdBQVc7Z0JBQ2pCLDJJQUEySTtZQUM3SSxxQkFBcUIsRUFBRSxJQUFJO1NBQzVCLENBQUMsQ0FBQztRQWpCSSxVQUFLLEdB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LGFBQWEsQ0FBQyxtQkFBbUIsQ0FDbkMsSUFBSSxFQUNKLHNCQUFzQixLQUFLLEVBQUUsRUFDN0IsSUFBSSxDQUNMLENBQ0YsQ0FBQztRQUVGLDBCQUEwQjtRQUMxQixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDOUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGdCQUFnQixLQUFLLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FDakUsQ0FBQztRQUVGLHVDQUF1QztRQUN2QyxNQUFNLHlCQUF5QixHQUFHLDJCQUEyQixDQUFDLEdBQUcsQ0FDL0QsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDZCxHQUFHLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUNuQyxJQUFJLEVBQ0osMkJBQTJCLEtBQUssRUFBRSxFQUNsQyxJQUFJLENBQ0wsQ0FDSixDQUFDO1FBRUYsT0FBTztZQUNMLEdBQUc7WUFDSCxvQkFBb0I7WUFDcEIsY0FBYztZQUNkLHlCQUF5QjtTQUMxQixDQUFDO0lBQ0osQ0FBQzs7QUFsUkgsMENBbVJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIElVc2VyUG9vbCxcbiAgVXNlclBvb2wsXG4gIFVzZXJQb29sQ2xpZW50LFxuICBVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBJVnBjLCBJU2VjdXJpdHlHcm91cCwgSVN1Ym5ldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBcGkgfSBmcm9tICcuL2FwaS9BcGknO1xuaW1wb3J0IHsgVG9waWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcbmltcG9ydCB7IEVtYWlsU3Vic2NyaXB0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucy1zdWJzY3JpcHRpb25zJztcbmltcG9ydCB7IFNlY3VyaXR5UHJvZmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9TZWN1cml0eVByb2ZpbGVQcm92aWRlcic7XG5pbXBvcnQgeyBDZm5JbnRlZ3JhdGlvbkFzc29jaWF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvbm5lY3QnO1xuaW1wb3J0IHsgQ2ZuQXBwbGljYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBwaW50ZWdyYXRpb25zJztcbmltcG9ydCB7IEdldENvbmZpZyB9IGZyb20gJy4vR2V0Q29uZmlnJztcblxuLyoqXG4gKiBDb2duaXRvIGNvbmZpZ3VyYXRpb24gZm9yIEZsb3dDb25maWcgc3RhY2tcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2duaXRvQ29uZmlnIHtcbiAgcmVhZG9ubHkgdXNlclBvb2xJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGdWxsIGRvbWFpbiBuYW1lXG4gICAqL1xuICByZWFkb25seSBkb21haW46IHN0cmluZztcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIGNsaWVudCB3aWxsIGF1dGggdG8gU1NPLiBPdGhlcndpc2Ugd2lsbCBhdXRoIHRvIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgc3NvUHJvdmlkZXJOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZQQyBjb25maWd1cmF0aW9uIGZvciBwcml2YXRlIGRlcGxveW1lbnQgdXNpbmcgc3RyaW5nIElEc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0NvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIElEIHRvIGRlcGxveSByZXNvdXJjZXMgaW50b1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFTZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpdmF0ZSBzdWJuZXQgSURzIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0SWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogU2VjdXJpdHkgZ3JvdXAgSURzIGZvciBWUEMgZW5kcG9pbnRzXG4gICAqL1xuICByZWFkb25seSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEdsb2JhbCB0YWJsZSBjb25maWd1cmF0aW9uIGZvciBtdWx0aS1yZWdpb24gZGVwbG95bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxUYWJsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgaXMgdGhlIHByaW1hcnkgcmVnaW9uIHRoYXQgY3JlYXRlcyB0aGUgZ2xvYmFsIHRhYmxlXG4gICAqL1xuICByZWFkb25seSBpc1ByaW1hcnlSZWdpb246IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgYWxsIHJlZ2lvbnMgdGhhdCBzaG91bGQgaGF2ZSByZXBsaWNhc1xuICAgKiBPbmx5IHVzZWQgYnkgdGhlIHByaW1hcnkgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhUmVnaW9ucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEludGVybmFsIGludGVyZmFjZSBmb3IgcmVzb2x2ZWQgVlBDIHJlc291cmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkVnBjQ29uZmlnIHtcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICByZWFkb25seSBsYW1iZGFTZWN1cml0eUdyb3VwczogSVNlY3VyaXR5R3JvdXBbXTtcbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHM6IElTdWJuZXRbXTtcbiAgcmVhZG9ubHkgdnBjRW5kcG9pbnRTZWN1cml0eUdyb3VwczogSVNlY3VyaXR5R3JvdXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q29uZmlnU3RhY2tQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHJlc291cmNlIG5hbWluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZ25pdG86IENvZ25pdG9Db25maWc7XG4gIHJlYWRvbmx5IGNvbm5lY3RJbnN0YW5jZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaG8gdG8gbm90aWZ5IGZvciB1bmhhbmRsZWQgZXhjZXB0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxlcnRFbWFpbHM6IHN0cmluZ1tdO1xuICByZWFkb25seSBwcm9kPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVlBDIGNvbmZpZ3VyYXRpb24gZm9yIHByaXZhdGUgZGVwbG95bWVudC5cbiAgICogSWYgcHJvdmlkZWQsIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGNvbmZpZ3VyZWQgZm9yIFZQQy1vbmx5IGFjY2Vzcy5cbiAgICogSWYgdW5kZWZpbmVkLCB1c2VzIHRoZSBjdXJyZW50IHB1YmxpYyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogVnBjQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBHbG9iYWwgdGFibGUgY29uZmlndXJhdGlvbiBmb3IgbXVsdGktcmVnaW9uIGRlcGxveW1lbnRzLlxuICAgKiBJZiBwcm92aWRlZCwgZW5hYmxlcyBnbG9iYWwgdGFibGUgc3VwcG9ydC5cbiAgICogSWYgdW5kZWZpbmVkLCBjcmVhdGVzIGEgc2luZ2xlLXJlZ2lvbiB0YWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGdsb2JhbFRhYmxlPzogR2xvYmFsVGFibGVDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBGbG93Q29uZmlnU3RhY2sgZXh0ZW5kcyBjZGsuU3RhY2sge1xuICB1c2VyUG9vbDogSVVzZXJQb29sO1xuICBwcml2YXRlIGFwaTogQXBpO1xuICB1c2VyUG9vbENsaWVudDogVXNlclBvb2xDbGllbnQ7XG4gIGFsZXJ0VG9waWM6IFRvcGljO1xuICB0YWJsZTogY2RrLmF3c19keW5hbW9kYi5JVGFibGU7XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIFZQQyBjb25maWd1cmF0aW9uIGlmIHByaXZhdGUgZGVwbG95bWVudCBpcyBlbmFibGVkXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXNvbHZlZFZwY0NvbmZpZz86IFJlc29sdmVkVnBjQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBHZXQgcmVzb2x2ZWQgVlBDIGNvbmZpZ3VyYXRpb24gZm9yIGNoaWxkIGNvbnN0cnVjdHNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX2dldFJlc29sdmVkVnBjQ29uZmlnKCk6IFJlc29sdmVkVnBjQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzb2x2ZWRWcGNDb25maWc7XG4gIH1cblxuICBnZXQgYXBwVXJsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyByZWdpb24gfSA9IGNkay5TdGFjay5vZih0aGlzKTtcbiAgICByZXR1cm4gYGh0dHBzOi8vJHt0aGlzLmFwaS5vcGVuQXBpLmFwaUdhdGV3YXkucmVzdEFwaUlkfS5leGVjdXRlLWFwaS4ke3JlZ2lvbn0uYW1hem9uYXdzLmNvbS9wcm9kYDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcHJvcHM6IEZsb3dDb25maWdTdGFja1Byb3BzXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGNvZ25pdG8sXG4gICAgICBhbGVydEVtYWlscyxcbiAgICAgIHByb2QgPSBmYWxzZSxcbiAgICAgIHZwYyxcbiAgICAgIGdsb2JhbFRhYmxlLFxuICAgIH0gPSBwcm9wcztcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zdGFja05hbWUgPz8gcHJlZml4LFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLmRlc2NyaXB0aW9uID8/XG4gICAgICAgICdXZWItYmFzZWQgaW50ZXJmYWNlIGZvciBtYW5hZ2luZyBmbG93IHZhcmlhYmxlcyBhbmQgcHJvbXB0cyB0aGF0IGFyZSBkeW5hbWljYWxseSByZXRyaWV2ZWQgYnkgQW1hem9uIENvbm5lY3QgZHVyaW5nIGN1c3RvbWVyIGludGVyYWN0aW9ucycsXG4gICAgICB0ZXJtaW5hdGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgfSk7XG5cbiAgICAvLyBSZXNvbHZlIFZQQyBjb25maWd1cmF0aW9uIGlmIHByb3ZpZGVkXG4gICAgdGhpcy5fcmVzb2x2ZWRWcGNDb25maWcgPSB2cGMgPyB0aGlzLnJlc29sdmVWcGNDb25maWcodnBjKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIER5bmFtb0RCIHRhYmxlIGZvciBzdG9yaW5nIGZsb3cgY29uZmlnc1xuICAgIHRoaXMudGFibGUgPSB0aGlzLmNyZWF0ZVRhYmxlKHByZWZpeCwgcHJvZCwgZ2xvYmFsVGFibGUpO1xuXG4gICAgdGhpcy5hbGVydFRvcGljID0gbmV3IFRvcGljKHRoaXMsICdBbGVydFRvcGljJywge1xuICAgICAgdG9waWNOYW1lOiBgJHtwcmVmaXh9LWVycm9yLWFsZXJ0c2AsXG4gICAgfSk7XG4gICAgYWxlcnRFbWFpbHMuZm9yRWFjaCgoZSkgPT5cbiAgICAgIHRoaXMuYWxlcnRUb3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IEVtYWlsU3Vic2NyaXB0aW9uKGUpKVxuICAgICk7XG5cbiAgICB0aGlzLnVzZXJQb29sID0gVXNlclBvb2wuZnJvbVVzZXJQb29sSWQoXG4gICAgICB0aGlzLFxuICAgICAgJ1VzZXJQb29sJyxcbiAgICAgIGNvZ25pdG8udXNlclBvb2xJZFxuICAgICk7XG5cbiAgICBjb25zdCBnZXRDb25maWcgPSBuZXcgR2V0Q29uZmlnKHRoaXMpO1xuICAgIHRoaXMuYXBpID0gbmV3IEFwaSh0aGlzKTtcblxuICAgIHRoaXMudXNlclBvb2xDbGllbnQgPSB0aGlzLmNyZWF0ZVVzZXJQb29sQ2xpZW50KCk7XG5cbiAgICB0aGlzLmFzc29jaWF0ZTNwQXBwKCk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBwVXJsJywge1xuICAgICAgdmFsdWU6IHRoaXMuYXBwVXJsLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIGFwcGxpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBpVXJsJywge1xuICAgICAgdmFsdWU6IGAke3RoaXMuYXBwVXJsfS9hcGlgLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIEFQSScsXG4gICAgfSk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ0dldENvbmZpZ0xhbWJkYU5hbWUnLCB7XG4gICAgICB2YWx1ZTogZ2V0Q29uZmlnLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnTGFtYmRhIGZ1bmN0aW9uIG5hbWUgZm9yIGFjY2Vzc2luZyBmbG93IGNvbmZpZ3MgZnJvbSBDb25uZWN0JyxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJQb29sQ2xpZW50KCk6IFVzZXJQb29sQ2xpZW50IHtcbiAgICBjb25zdCB7IHByZWZpeCwgY29nbml0byB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRvbWFpbnMgPSBbJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIHRoaXMuYXBwVXJsXTtcblxuICAgIGNvbnN0IG9BdXRoID0ge1xuICAgICAgY2FsbGJhY2tVcmxzOiBkb21haW5zLm1hcCgoeCkgPT4gYCR7eH0vcG9wdXAuaHRtbGApLFxuICAgICAgbG9nb3V0VXJsczogZG9tYWlucyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBVc2VyUG9vbENsaWVudCh0aGlzLCAnVXNlclBvb2xDbGllbnQnLCB7XG4gICAgICB1c2VyUG9vbENsaWVudE5hbWU6IHByZWZpeCxcbiAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgc3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnM6IGNvZ25pdG8uc3NvUHJvdmlkZXJOYW1lXG4gICAgICAgID8gW1VzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5jdXN0b20oY29nbml0by5zc29Qcm92aWRlck5hbWUpXVxuICAgICAgICA6IFtVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuQ09HTklUT10sXG4gICAgICBnZW5lcmF0ZVNlY3JldDogZmFsc2UsXG4gICAgICBvQXV0aCxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbENsaWVudElkJywge1xuICAgICAgdmFsdWU6IGNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgIH0pO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlZCBWb2ljZW1haWwgYXMgQWdlbnQgV29ya3NwYWNlIGFwcFxuICAgKi9cbiAgYXNzb2NpYXRlM3BBcHAoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHM6IHsgcHJlZml4LCBjb25uZWN0SW5zdGFuY2VBcm4gfSxcbiAgICAgIGFwcFVybDogdXJsLFxuICAgIH0gPSB0aGlzO1xuICAgIGxldCBuYW1lc3BhY2UgPSBgY3hidWlsZGVyLiR7cHJlZml4fWA7XG4gICAgaWYgKG5hbWVzcGFjZS5sZW5ndGggPiAzMiAmJiAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChuYW1lc3BhY2UpKSB7XG4gICAgICBuYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3Vic3RyaW5nKDAsIDMyKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2ZuQXBwbGljYXRpb24odGhpcywgJzNwQXBwJywge1xuICAgICAgbmFtZTogdGhpcy5wcm9wcy5wcmVmaXgsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0FnZW50IFdvcmtzcGFjZSBhcHAgZm9yIGNvbmZpZ3VyaW5nIGNvbnRhY3QgZmxvdyB2YXJpYWJsZXMgYW5kIHByb21wdHMnLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgYXBwbGljYXRpb25Tb3VyY2VDb25maWc6IHtcbiAgICAgICAgZXh0ZXJuYWxVcmxDb25maWc6IHtcbiAgICAgICAgICBhY2Nlc3NVcmw6IHVybCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyBkb2NzOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29ubmVjdC9sYXRlc3QvYWRtaW5ndWlkZS8zcC1hcHBzLWV2ZW50cy1yZXF1ZXN0cy5odG1sXG4gICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAnVXNlci5EZXRhaWxzLlZpZXcnLFxuICAgICAgICAnVXNlci5Db25maWd1cmF0aW9uLlZpZXcnLFxuICAgICAgICAnVXNlci5TdGF0dXMuVmlldycsXG4gICAgICAgICdDb250YWN0LkRldGFpbHMuVmlldycsXG4gICAgICAgICdDb250YWN0LkN1c3RvbWVyRGV0YWlscy5WaWV3JyxcbiAgICAgICAgJ0NvbnRhY3QuVmFyaWFibGVzLlZpZXcnLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFzc29jaWF0aW9uID0gbmV3IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgJzNwQXBwQXNzb2NpYXRpb24nLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZUlkOiBjb25uZWN0SW5zdGFuY2VBcm4sXG4gICAgICAgIGludGVncmF0aW9uVHlwZTogJ0FQUExJQ0FUSU9OJyxcbiAgICAgICAgaW50ZWdyYXRpb25Bcm46IGFwcC5hdHRyQXBwbGljYXRpb25Bcm4sXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFNlY3VyaXR5UHJvZmlsZVByb3ZpZGVyKFxuICAgICAgdGhpcyxcbiAgICAgICdTZWN1cml0eVByb2ZpbGVQcm92aWRlcicsXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RJbnN0YW5jZUFybixcbiAgICAgIH1cbiAgICApO1xuICAgIHByb3ZpZGVyLm5vZGUuYWRkRGVwZW5kZW5jeShhc3NvY2lhdGlvbik7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGFzc29jaWF0ZSB3aXRoIHNlY3VyaXR5IHByb2ZpbGVzXG4gICAgY29uc3Qgc2VjdXJpdHlQcm9maWxlcyA9IFsnQWRtaW4nXTtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGUgb2Ygc2VjdXJpdHlQcm9maWxlcykge1xuICAgICAgcHJvdmlkZXIuYWxsb3dBcHBsaWNhdGlvbihgQWxsb3cke3Byb2ZpbGV9YCwgcHJvZmlsZSwgbmFtZXNwYWNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER5bmFtb0RCIHRhYmxlIHdpdGggb3B0aW9uYWwgZ2xvYmFsIHRhYmxlIHN1cHBvcnRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVGFibGUoXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgcHJvZDogYm9vbGVhbixcbiAgICBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnXG4gICk6IGR5bmFtb2RiLklUYWJsZSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gcHJlZml4O1xuXG4gICAgaWYgKCFnbG9iYWxUYWJsZSkge1xuICAgICAgLy8gU2luZ2xlLXJlZ2lvbiB0YWJsZVxuICAgICAgcmV0dXJuIG5ldyBkeW5hbW9kYi5UYWJsZSh0aGlzLCAnRmxvd0NvbmZpZ3NUYWJsZScsIHtcbiAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICB9LFxuICAgICAgICBiaWxsaW5nTW9kZTogZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IHByb2RcbiAgICAgICAgICA/IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgICAgICAgIDogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChnbG9iYWxUYWJsZS5pc1ByaW1hcnlSZWdpb24pIHtcbiAgICAgIC8vIFByaW1hcnkgcmVnaW9uIGNyZWF0ZXMgZ2xvYmFsIHRhYmxlIHdpdGggcmVwbGljYXNcbiAgICAgIHJldHVybiBuZXcgZHluYW1vZGIuVGFibGUodGhpcywgJ0Zsb3dDb25maWdzVGFibGUnLCB7XG4gICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgfSxcbiAgICAgICAgYmlsbGluZ01vZGU6IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBBWV9QRVJfUkVRVUVTVCxcbiAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVwbGljYXRpb25SZWdpb25zOiBnbG9iYWxUYWJsZS5yZXBsaWNhUmVnaW9ucyB8fCBbXSxcbiAgICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBwcm9kLFxuICAgICAgICByZW1vdmFsUG9saWN5OiBwcm9kXG4gICAgICAgICAgPyBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICAgICAgICA6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2Vjb25kYXJ5IHJlZ2lvbiByZWZlcmVuY2VzIGV4aXN0aW5nIGdsb2JhbCB0YWJsZVxuICAgICAgcmV0dXJuIGR5bmFtb2RiLlRhYmxlLmZyb21UYWJsZUFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ0Zsb3dDb25maWdzVGFibGUnLFxuICAgICAgICBgYXJuOmF3czpkeW5hbW9kYjoke3RoaXMucmVnaW9ufToke3RoaXMuYWNjb3VudH06dGFibGUvJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBWUEMgY29uZmlndXJhdGlvbiBzdHJpbmcgSURzIHRvIENESyBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVWcGNDb25maWcodnBjQ29uZmlnOiBWcGNDb25maWcpOiBSZXNvbHZlZFZwY0NvbmZpZyB7XG4gICAgY29uc3Qge1xuICAgICAgdnBjSWQsXG4gICAgICBsYW1iZGFTZWN1cml0eUdyb3VwSWRzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldElkcyxcbiAgICAgIHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cElkcyxcbiAgICB9ID0gdnBjQ29uZmlnO1xuXG4gICAgLy8gUmVzb2x2ZSBWUENcbiAgICBjb25zdCB2cGMgPSBlYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1Jlc29sdmVkVnBjJywgeyB2cGNJZCB9KTtcblxuICAgIC8vIFJlc29sdmUgTGFtYmRhIHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IGxhbWJkYVNlY3VyaXR5R3JvdXBzID0gbGFtYmRhU2VjdXJpdHlHcm91cElkcy5tYXAoKHNnSWQsIGluZGV4KSA9PlxuICAgICAgZWMyLlNlY3VyaXR5R3JvdXAuZnJvbVNlY3VyaXR5R3JvdXBJZChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYExhbWJkYVNlY3VyaXR5R3JvdXAke2luZGV4fWAsXG4gICAgICAgIHNnSWRcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gUmVzb2x2ZSBwcml2YXRlIHN1Ym5ldHNcbiAgICBjb25zdCBwcml2YXRlU3VibmV0cyA9IHByaXZhdGVTdWJuZXRJZHMubWFwKChzdWJuZXRJZCwgaW5kZXgpID0+XG4gICAgICBlYzIuU3VibmV0LmZyb21TdWJuZXRJZCh0aGlzLCBgUHJpdmF0ZVN1Ym5ldCR7aW5kZXh9YCwgc3VibmV0SWQpXG4gICAgKTtcblxuICAgIC8vIFJlc29sdmUgVlBDIGVuZHBvaW50IHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cHMgPSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBJZHMubWFwKFxuICAgICAgKHNnSWQsIGluZGV4KSA9PlxuICAgICAgICBlYzIuU2VjdXJpdHlHcm91cC5mcm9tU2VjdXJpdHlHcm91cElkKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYFZwY0VuZHBvaW50U2VjdXJpdHlHcm91cCR7aW5kZXh9YCxcbiAgICAgICAgICBzZ0lkXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZwYyxcbiAgICAgIGxhbWJkYVNlY3VyaXR5R3JvdXBzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldHMsXG4gICAgICB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
199
|
+
FlowConfigStack[_a] = { fqn: "@cxbuilder/flow-config.FlowConfigStack", version: "1.0.2" };
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd0NvbmZpZ1N0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvRmxvd0NvbmZpZ1N0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLHlEQUtpQztBQUNqQyxxREFBcUQ7QUFFckQsMkNBQTJDO0FBRTNDLG1DQUFnQztBQUNoQyxpREFBNEM7QUFDNUMsNkVBQXNFO0FBQ3RFLHVFQUFvRTtBQUNwRSx5REFBb0U7QUFDcEUseUVBQWlFO0FBQ2pFLDJDQUF3QztBQW1HeEMsTUFBYSxlQUFnQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBWTVDOzs7T0FHRztJQUNJLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLGdCQUFnQixNQUFNLHFCQUFxQixDQUFDO0lBQzFGLENBQUM7SUFFRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDSCxLQUEyQjtRQUVsQyxNQUFNLEVBQ0osTUFBTSxFQUNOLE9BQU8sRUFDUCxXQUFXLEVBQ1gsSUFBSSxHQUFHLEtBQUssRUFDWixHQUFHLEVBQ0gsV0FBVyxHQUNaLEdBQUcsS0FBSyxDQUFDO1FBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNO1lBQ3BDLFdBQVcsRUFDVCxLQUFLLENBQUMsV0FBVztnQkFDakIsMklBQTJJO1lBQzdJLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQyxDQUFDO1FBakJJLFVBQUssR0FBTCxLQUFLLENB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LG1CQUFtQixDQUNuQyxJQUFJLEVBQ0osc0JBQXNCLEtBQUssRUFBRSxFQUM3QixJQUFJLENBQ0wsQ0FDRixDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM5RCxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEtBQUssRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUNqRSxDQUFDO1FBRUYsdUNBQXVDO1FBQ3ZDLE1BQU0seUJBQXlCLEdBQUcsMkJBQTJCLENBQUMsR0FBRyxDQUMvRCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNkLEdBQUcsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQ25DLElBQUksRUFDSiwyQkFBMkIsS0FBSyxFQUFFLEVBQ2xDLElBQUksQ0FDTCxDQUNKLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRztZQUNILG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QseUJBQXlCO1NBQzFCLENBQUM7SUFDSixDQUFDOztBQWxSSCwwQ0FtUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgSVVzZXJQb29sLFxuICBVc2VyUG9vbCxcbiAgVXNlclBvb2xDbGllbnQsXG4gIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlcixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZ25pdG8nO1xuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IElWcGMsIElTZWN1cml0eUdyb3VwLCBJU3VibmV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFwaSB9IGZyb20gJy4vYXBpL0FwaSc7XG5pbXBvcnQgeyBUb3BpYyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0IHsgRW1haWxTdWJzY3JpcHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zLXN1YnNjcmlwdGlvbnMnO1xuaW1wb3J0IHsgU2VjdXJpdHlQcm9maWxlUHJvdmlkZXIgfSBmcm9tICcuL1NlY3VyaXR5UHJvZmlsZVByb3ZpZGVyJztcbmltcG9ydCB7IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29ubmVjdCc7XG5pbXBvcnQgeyBDZm5BcHBsaWNhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcHBpbnRlZ3JhdGlvbnMnO1xuaW1wb3J0IHsgR2V0Q29uZmlnIH0gZnJvbSAnLi9HZXRDb25maWcnO1xuXG4vKipcbiAqIENvZ25pdG8gY29uZmlndXJhdGlvbiBmb3IgRmxvd0NvbmZpZyBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZ25pdG9Db25maWcge1xuICByZWFkb25seSB1c2VyUG9vbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZ1bGwgZG9tYWluIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBwcm92aWRlZCwgY2xpZW50IHdpbGwgYXV0aCB0byBTU08uIE90aGVyd2lzZSB3aWxsIGF1dGggdG8gdXNlciBwb29sXG4gICAqL1xuICByZWFkb25seSBzc29Qcm92aWRlck5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVlBDIGNvbmZpZ3VyYXRpb24gZm9yIHByaXZhdGUgZGVwbG95bWVudCB1c2luZyBzdHJpbmcgSURzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBWUEMgSUQgdG8gZGVwbG95IHJlc291cmNlcyBpbnRvXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBJRHMgZm9yIExhbWJkYSBmdW5jdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIHN1Ym5ldCBJRHMgZm9yIExhbWJkYSBmdW5jdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVTdWJuZXRJZHM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBncm91cCBJRHMgZm9yIFZQQyBlbmRwb2ludHNcbiAgICovXG4gIHJlYWRvbmx5IHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cElkczogc3RyaW5nW107XG59XG5cbi8qKlxuICogR2xvYmFsIHRhYmxlIGNvbmZpZ3VyYXRpb24gZm9yIG11bHRpLXJlZ2lvbiBkZXBsb3ltZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbFRhYmxlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyB0aGUgcHJpbWFyeSByZWdpb24gdGhhdCBjcmVhdGVzIHRoZSBnbG9iYWwgdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlzUHJpbWFyeVJlZ2lvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBhbGwgcmVnaW9ucyB0aGF0IHNob3VsZCBoYXZlIHJlcGxpY2FzXG4gICAqIE9ubHkgdXNlZCBieSB0aGUgcHJpbWFyeSByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FSZWdpb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogSW50ZXJuYWwgaW50ZXJmYWNlIGZvciByZXNvbHZlZCBWUEMgcmVzb3VyY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRWcGNDb25maWcge1xuICByZWFkb25seSB2cGM6IElWcGM7XG4gIHJlYWRvbmx5IGxhbWJkYVNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdO1xuICByZWFkb25seSBwcml2YXRlU3VibmV0czogSVN1Ym5ldFtdO1xuICByZWFkb25seSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDb25maWdTdGFja1Byb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVXNlZCBmb3IgcmVzb3VyY2UgbmFtaW5nXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgY29nbml0bzogQ29nbml0b0NvbmZpZztcbiAgcmVhZG9ubHkgY29ubmVjdEluc3RhbmNlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdobyB0byBub3RpZnkgZm9yIHVuaGFuZGxlZCBleGNlcHRpb25zXG4gICAqL1xuICByZWFkb25seSBhbGVydEVtYWlsczogc3RyaW5nW107XG4gIHJlYWRvbmx5IHByb2Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWUEMgY29uZmlndXJhdGlvbiBmb3IgcHJpdmF0ZSBkZXBsb3ltZW50LlxuICAgKiBJZiBwcm92aWRlZCwgdGhlIGFwcGxpY2F0aW9uIHdpbGwgYmUgY29uZmlndXJlZCBmb3IgVlBDLW9ubHkgYWNjZXNzLlxuICAgKiBJZiB1bmRlZmluZWQsIHVzZXMgdGhlIGN1cnJlbnQgcHVibGljIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBWcGNDb25maWc7XG5cbiAgLyoqXG4gICAqIEdsb2JhbCB0YWJsZSBjb25maWd1cmF0aW9uIGZvciBtdWx0aS1yZWdpb24gZGVwbG95bWVudHMuXG4gICAqIElmIHByb3ZpZGVkLCBlbmFibGVzIGdsb2JhbCB0YWJsZSBzdXBwb3J0LlxuICAgKiBJZiB1bmRlZmluZWQsIGNyZWF0ZXMgYSBzaW5nbGUtcmVnaW9uIHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2xvYmFsVGFibGU/OiBHbG9iYWxUYWJsZUNvbmZpZztcbn1cblxuZXhwb3J0IGNsYXNzIEZsb3dDb25maWdTdGFjayBleHRlbmRzIGNkay5TdGFjayB7XG4gIHVzZXJQb29sOiBJVXNlclBvb2w7XG4gIHByaXZhdGUgYXBpOiBBcGk7XG4gIHVzZXJQb29sQ2xpZW50OiBVc2VyUG9vbENsaWVudDtcbiAgYWxlcnRUb3BpYzogVG9waWM7XG4gIHRhYmxlOiBjZGsuYXdzX2R5bmFtb2RiLklUYWJsZTtcblxuICAvKipcbiAgICogUmVzb2x2ZWQgVlBDIGNvbmZpZ3VyYXRpb24gaWYgcHJpdmF0ZSBkZXBsb3ltZW50IGlzIGVuYWJsZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc29sdmVkVnBjQ29uZmlnPzogUmVzb2x2ZWRWcGNDb25maWc7XG5cbiAgLyoqXG4gICAqIEdldCByZXNvbHZlZCBWUEMgY29uZmlndXJhdGlvbiBmb3IgY2hpbGQgY29uc3RydWN0c1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfZ2V0UmVzb2x2ZWRWcGNDb25maWcoKTogUmVzb2x2ZWRWcGNDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9yZXNvbHZlZFZwY0NvbmZpZztcbiAgfVxuXG4gIGdldCBhcHBVcmwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHJlZ2lvbiB9ID0gY2RrLlN0YWNrLm9mKHRoaXMpO1xuICAgIHJldHVybiBgaHR0cHM6Ly8ke3RoaXMuYXBpLnJlc3RBcGkucmVzdEFwaUlkfS5leGVjdXRlLWFwaS4ke3JlZ2lvbn0uYW1hem9uYXdzLmNvbS9wcm9kYDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcHJvcHM6IEZsb3dDb25maWdTdGFja1Byb3BzXG4gICkge1xuICAgIGNvbnN0IHtcbiAgICAgIHByZWZpeCxcbiAgICAgIGNvZ25pdG8sXG4gICAgICBhbGVydEVtYWlscyxcbiAgICAgIHByb2QgPSBmYWxzZSxcbiAgICAgIHZwYyxcbiAgICAgIGdsb2JhbFRhYmxlLFxuICAgIH0gPSBwcm9wcztcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgc3RhY2tOYW1lOiBwcm9wcy5zdGFja05hbWUgPz8gcHJlZml4LFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLmRlc2NyaXB0aW9uID8/XG4gICAgICAgICdXZWItYmFzZWQgaW50ZXJmYWNlIGZvciBtYW5hZ2luZyBmbG93IHZhcmlhYmxlcyBhbmQgcHJvbXB0cyB0aGF0IGFyZSBkeW5hbWljYWxseSByZXRyaWV2ZWQgYnkgQW1hem9uIENvbm5lY3QgZHVyaW5nIGN1c3RvbWVyIGludGVyYWN0aW9ucycsXG4gICAgICB0ZXJtaW5hdGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgfSk7XG5cbiAgICAvLyBSZXNvbHZlIFZQQyBjb25maWd1cmF0aW9uIGlmIHByb3ZpZGVkXG4gICAgdGhpcy5fcmVzb2x2ZWRWcGNDb25maWcgPSB2cGMgPyB0aGlzLnJlc29sdmVWcGNDb25maWcodnBjKSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIER5bmFtb0RCIHRhYmxlIGZvciBzdG9yaW5nIGZsb3cgY29uZmlnc1xuICAgIHRoaXMudGFibGUgPSB0aGlzLmNyZWF0ZVRhYmxlKHByZWZpeCwgcHJvZCwgZ2xvYmFsVGFibGUpO1xuXG4gICAgdGhpcy5hbGVydFRvcGljID0gbmV3IFRvcGljKHRoaXMsICdBbGVydFRvcGljJywge1xuICAgICAgdG9waWNOYW1lOiBgJHtwcmVmaXh9LWVycm9yLWFsZXJ0c2AsXG4gICAgfSk7XG4gICAgYWxlcnRFbWFpbHMuZm9yRWFjaCgoZSkgPT5cbiAgICAgIHRoaXMuYWxlcnRUb3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IEVtYWlsU3Vic2NyaXB0aW9uKGUpKVxuICAgICk7XG5cbiAgICB0aGlzLnVzZXJQb29sID0gVXNlclBvb2wuZnJvbVVzZXJQb29sSWQoXG4gICAgICB0aGlzLFxuICAgICAgJ1VzZXJQb29sJyxcbiAgICAgIGNvZ25pdG8udXNlclBvb2xJZFxuICAgICk7XG5cbiAgICBjb25zdCBnZXRDb25maWcgPSBuZXcgR2V0Q29uZmlnKHRoaXMpO1xuICAgIHRoaXMuYXBpID0gbmV3IEFwaSh0aGlzKTtcblxuICAgIHRoaXMudXNlclBvb2xDbGllbnQgPSB0aGlzLmNyZWF0ZVVzZXJQb29sQ2xpZW50KCk7XG5cbiAgICB0aGlzLmFzc29jaWF0ZTNwQXBwKCk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBwVXJsJywge1xuICAgICAgdmFsdWU6IHRoaXMuYXBwVXJsLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIGFwcGxpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAnQXBpVXJsJywge1xuICAgICAgdmFsdWU6IGAke3RoaXMuYXBwVXJsfS9hcGlgLFxuICAgICAgZGVzY3JpcHRpb246ICdCYXNlIFVSTCBmb3IgdGhlIEZsb3cgQ29uZmlnIEFQSScsXG4gICAgfSk7XG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ0dldENvbmZpZ0xhbWJkYU5hbWUnLCB7XG4gICAgICB2YWx1ZTogZ2V0Q29uZmlnLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnTGFtYmRhIGZ1bmN0aW9uIG5hbWUgZm9yIGFjY2Vzc2luZyBmbG93IGNvbmZpZ3MgZnJvbSBDb25uZWN0JyxcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJQb29sQ2xpZW50KCk6IFVzZXJQb29sQ2xpZW50IHtcbiAgICBjb25zdCB7IHByZWZpeCwgY29nbml0byB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRvbWFpbnMgPSBbJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIHRoaXMuYXBwVXJsXTtcblxuICAgIGNvbnN0IG9BdXRoID0ge1xuICAgICAgY2FsbGJhY2tVcmxzOiBkb21haW5zLm1hcCgoeCkgPT4gYCR7eH0vcG9wdXAuaHRtbGApLFxuICAgICAgbG9nb3V0VXJsczogZG9tYWlucyxcbiAgICB9O1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBVc2VyUG9vbENsaWVudCh0aGlzLCAnVXNlclBvb2xDbGllbnQnLCB7XG4gICAgICB1c2VyUG9vbENsaWVudE5hbWU6IHByZWZpeCxcbiAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgc3VwcG9ydGVkSWRlbnRpdHlQcm92aWRlcnM6IGNvZ25pdG8uc3NvUHJvdmlkZXJOYW1lXG4gICAgICAgID8gW1VzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5jdXN0b20oY29nbml0by5zc29Qcm92aWRlck5hbWUpXVxuICAgICAgICA6IFtVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuQ09HTklUT10sXG4gICAgICBnZW5lcmF0ZVNlY3JldDogZmFsc2UsXG4gICAgICBvQXV0aCxcbiAgICB9KTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdVc2VyUG9vbENsaWVudElkJywge1xuICAgICAgdmFsdWU6IGNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgIH0pO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQXNzb2NpYXRlZCBWb2ljZW1haWwgYXMgQWdlbnQgV29ya3NwYWNlIGFwcFxuICAgKi9cbiAgYXNzb2NpYXRlM3BBcHAoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcHM6IHsgcHJlZml4LCBjb25uZWN0SW5zdGFuY2VBcm4gfSxcbiAgICAgIGFwcFVybDogdXJsLFxuICAgIH0gPSB0aGlzO1xuICAgIGxldCBuYW1lc3BhY2UgPSBgY3hidWlsZGVyLiR7cHJlZml4fWA7XG4gICAgaWYgKG5hbWVzcGFjZS5sZW5ndGggPiAzMiAmJiAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChuYW1lc3BhY2UpKSB7XG4gICAgICBuYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3Vic3RyaW5nKDAsIDMyKTtcbiAgICB9XG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2ZuQXBwbGljYXRpb24odGhpcywgJzNwQXBwJywge1xuICAgICAgbmFtZTogdGhpcy5wcm9wcy5wcmVmaXgsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0FnZW50IFdvcmtzcGFjZSBhcHAgZm9yIGNvbmZpZ3VyaW5nIGNvbnRhY3QgZmxvdyB2YXJpYWJsZXMgYW5kIHByb21wdHMnLFxuICAgICAgbmFtZXNwYWNlLFxuICAgICAgYXBwbGljYXRpb25Tb3VyY2VDb25maWc6IHtcbiAgICAgICAgZXh0ZXJuYWxVcmxDb25maWc6IHtcbiAgICAgICAgICBhY2Nlc3NVcmw6IHVybCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAvLyBkb2NzOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29ubmVjdC9sYXRlc3QvYWRtaW5ndWlkZS8zcC1hcHBzLWV2ZW50cy1yZXF1ZXN0cy5odG1sXG4gICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAnVXNlci5EZXRhaWxzLlZpZXcnLFxuICAgICAgICAnVXNlci5Db25maWd1cmF0aW9uLlZpZXcnLFxuICAgICAgICAnVXNlci5TdGF0dXMuVmlldycsXG4gICAgICAgICdDb250YWN0LkRldGFpbHMuVmlldycsXG4gICAgICAgICdDb250YWN0LkN1c3RvbWVyRGV0YWlscy5WaWV3JyxcbiAgICAgICAgJ0NvbnRhY3QuVmFyaWFibGVzLlZpZXcnLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFzc29jaWF0aW9uID0gbmV3IENmbkludGVncmF0aW9uQXNzb2NpYXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgJzNwQXBwQXNzb2NpYXRpb24nLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZUlkOiBjb25uZWN0SW5zdGFuY2VBcm4sXG4gICAgICAgIGludGVncmF0aW9uVHlwZTogJ0FQUExJQ0FUSU9OJyxcbiAgICAgICAgaW50ZWdyYXRpb25Bcm46IGFwcC5hdHRyQXBwbGljYXRpb25Bcm4sXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFNlY3VyaXR5UHJvZmlsZVByb3ZpZGVyKFxuICAgICAgdGhpcyxcbiAgICAgICdTZWN1cml0eVByb2ZpbGVQcm92aWRlcicsXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RJbnN0YW5jZUFybixcbiAgICAgIH1cbiAgICApO1xuICAgIHByb3ZpZGVyLm5vZGUuYWRkRGVwZW5kZW5jeShhc3NvY2lhdGlvbik7XG5cbiAgICAvLyBBdXRvbWF0aWNhbGx5IGFzc29jaWF0ZSB3aXRoIHNlY3VyaXR5IHByb2ZpbGVzXG4gICAgY29uc3Qgc2VjdXJpdHlQcm9maWxlcyA9IFsnQWRtaW4nXTtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGUgb2Ygc2VjdXJpdHlQcm9maWxlcykge1xuICAgICAgcHJvdmlkZXIuYWxsb3dBcHBsaWNhdGlvbihgQWxsb3cke3Byb2ZpbGV9YCwgcHJvZmlsZSwgbmFtZXNwYWNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIER5bmFtb0RCIHRhYmxlIHdpdGggb3B0aW9uYWwgZ2xvYmFsIHRhYmxlIHN1cHBvcnRcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVGFibGUoXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgcHJvZDogYm9vbGVhbixcbiAgICBnbG9iYWxUYWJsZT86IEdsb2JhbFRhYmxlQ29uZmlnXG4gICk6IGR5bmFtb2RiLklUYWJsZSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gcHJlZml4O1xuXG4gICAgaWYgKCFnbG9iYWxUYWJsZSkge1xuICAgICAgLy8gU2luZ2xlLXJlZ2lvbiB0YWJsZVxuICAgICAgcmV0dXJuIG5ldyBkeW5hbW9kYi5UYWJsZSh0aGlzLCAnRmxvd0NvbmZpZ3NUYWJsZScsIHtcbiAgICAgICAgdGFibGVOYW1lLFxuICAgICAgICBwYXJ0aXRpb25LZXk6IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IGR5bmFtb2RiLkF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICB9LFxuICAgICAgICBiaWxsaW5nTW9kZTogZHluYW1vZGIuQmlsbGluZ01vZGUuUEFZX1BFUl9SRVFVRVNULFxuICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5U3BlY2lmaWNhdGlvbjoge1xuICAgICAgICAgIHBvaW50SW5UaW1lUmVjb3ZlcnlFbmFibGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb2QsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IHByb2RcbiAgICAgICAgICA/IGNkay5SZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgICAgICAgIDogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChnbG9iYWxUYWJsZS5pc1ByaW1hcnlSZWdpb24pIHtcbiAgICAgIC8vIFByaW1hcnkgcmVnaW9uIGNyZWF0ZXMgZ2xvYmFsIHRhYmxlIHdpdGggcmVwbGljYXNcbiAgICAgIHJldHVybiBuZXcgZHluYW1vZGIuVGFibGUodGhpcywgJ0Zsb3dDb25maWdzVGFibGUnLCB7XG4gICAgICAgIHRhYmxlTmFtZSxcbiAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgfSxcbiAgICAgICAgYmlsbGluZ01vZGU6IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBBWV9QRVJfUkVRVUVTVCxcbiAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgICBwb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVwbGljYXRpb25SZWdpb25zOiBnbG9iYWxUYWJsZS5yZXBsaWNhUmVnaW9ucyB8fCBbXSxcbiAgICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBwcm9kLFxuICAgICAgICByZW1vdmFsUG9saWN5OiBwcm9kXG4gICAgICAgICAgPyBjZGsuUmVtb3ZhbFBvbGljeS5SRVRBSU5cbiAgICAgICAgICA6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2Vjb25kYXJ5IHJlZ2lvbiByZWZlcmVuY2VzIGV4aXN0aW5nIGdsb2JhbCB0YWJsZVxuICAgICAgcmV0dXJuIGR5bmFtb2RiLlRhYmxlLmZyb21UYWJsZUFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgJ0Zsb3dDb25maWdzVGFibGUnLFxuICAgICAgICBgYXJuOmF3czpkeW5hbW9kYjoke3RoaXMucmVnaW9ufToke3RoaXMuYWNjb3VudH06dGFibGUvJHt0YWJsZU5hbWV9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSBWUEMgY29uZmlndXJhdGlvbiBzdHJpbmcgSURzIHRvIENESyBvYmplY3RzXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVWcGNDb25maWcodnBjQ29uZmlnOiBWcGNDb25maWcpOiBSZXNvbHZlZFZwY0NvbmZpZyB7XG4gICAgY29uc3Qge1xuICAgICAgdnBjSWQsXG4gICAgICBsYW1iZGFTZWN1cml0eUdyb3VwSWRzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldElkcyxcbiAgICAgIHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cElkcyxcbiAgICB9ID0gdnBjQ29uZmlnO1xuXG4gICAgLy8gUmVzb2x2ZSBWUENcbiAgICBjb25zdCB2cGMgPSBlYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1Jlc29sdmVkVnBjJywgeyB2cGNJZCB9KTtcblxuICAgIC8vIFJlc29sdmUgTGFtYmRhIHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IGxhbWJkYVNlY3VyaXR5R3JvdXBzID0gbGFtYmRhU2VjdXJpdHlHcm91cElkcy5tYXAoKHNnSWQsIGluZGV4KSA9PlxuICAgICAgZWMyLlNlY3VyaXR5R3JvdXAuZnJvbVNlY3VyaXR5R3JvdXBJZChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYExhbWJkYVNlY3VyaXR5R3JvdXAke2luZGV4fWAsXG4gICAgICAgIHNnSWRcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gUmVzb2x2ZSBwcml2YXRlIHN1Ym5ldHNcbiAgICBjb25zdCBwcml2YXRlU3VibmV0cyA9IHByaXZhdGVTdWJuZXRJZHMubWFwKChzdWJuZXRJZCwgaW5kZXgpID0+XG4gICAgICBlYzIuU3VibmV0LmZyb21TdWJuZXRJZCh0aGlzLCBgUHJpdmF0ZVN1Ym5ldCR7aW5kZXh9YCwgc3VibmV0SWQpXG4gICAgKTtcblxuICAgIC8vIFJlc29sdmUgVlBDIGVuZHBvaW50IHNlY3VyaXR5IGdyb3Vwc1xuICAgIGNvbnN0IHZwY0VuZHBvaW50U2VjdXJpdHlHcm91cHMgPSB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBJZHMubWFwKFxuICAgICAgKHNnSWQsIGluZGV4KSA9PlxuICAgICAgICBlYzIuU2VjdXJpdHlHcm91cC5mcm9tU2VjdXJpdHlHcm91cElkKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYFZwY0VuZHBvaW50U2VjdXJpdHlHcm91cCR7aW5kZXh9YCxcbiAgICAgICAgICBzZ0lkXG4gICAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZwYyxcbiAgICAgIGxhbWJkYVNlY3VyaXR5R3JvdXBzLFxuICAgICAgcHJpdmF0ZVN1Ym5ldHMsXG4gICAgICB2cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
|
-
import {
|
|
2
|
+
import { SpecRestApi } from 'aws-cdk-lib/aws-apigateway';
|
|
3
3
|
import { FlowConfigStack } from '../FlowConfigStack';
|
|
4
4
|
import { Static } from './Static';
|
|
5
5
|
export declare class Api extends Construct {
|
|
6
6
|
stack: FlowConfigStack;
|
|
7
7
|
staticHosting: Static;
|
|
8
|
-
|
|
8
|
+
restApi: SpecRestApi;
|
|
9
9
|
constructor(stack: FlowConfigStack);
|
|
10
10
|
/**
|
|
11
11
|
* Create a resource policy for the VPC endpoint to restrict access to the specific VPC
|
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Api = void 0;
|
|
4
4
|
const constructs_1 = require("constructs");
|
|
5
|
-
const aws_s3_assets_1 = require("aws-cdk-lib/aws-s3-assets");
|
|
6
5
|
const path_1 = require("path");
|
|
7
|
-
const aws_openapigateway_lambda_1 = require("@aws-solutions-constructs/aws-openapigateway-lambda");
|
|
8
6
|
const aws_apigateway_1 = require("aws-cdk-lib/aws-apigateway");
|
|
9
7
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
10
8
|
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
@@ -19,20 +17,6 @@ class Api extends constructs_1.Construct {
|
|
|
19
17
|
constructor(stack) {
|
|
20
18
|
super(stack, 'Api');
|
|
21
19
|
this.stack = stack;
|
|
22
|
-
// Update Authorizer Provider ARN
|
|
23
|
-
const sourceFileName = (0, path_1.join)(__dirname, 'spec.yaml');
|
|
24
|
-
const outFileName = (0, path_1.join)(__dirname, 'spec.out.yaml');
|
|
25
|
-
const yml = (0, fs_1.readFileSync)(sourceFileName).toString();
|
|
26
|
-
const spec = (0, yaml_1.parse)(yml);
|
|
27
|
-
const authorizer = spec.components.securitySchemes.CognitoAuthorizer;
|
|
28
|
-
authorizer['x-amazon-apigateway-authorizer'].providerARNs = [
|
|
29
|
-
stack.userPool.userPoolArn,
|
|
30
|
-
];
|
|
31
|
-
(0, fs_1.writeFileSync)(outFileName, (0, yaml_1.stringify)(spec));
|
|
32
|
-
// Upload modified spec file
|
|
33
|
-
const apiDefinitionAsset = new aws_s3_assets_1.Asset(this, 'ApiSpecAsset', {
|
|
34
|
-
path: outFileName,
|
|
35
|
-
});
|
|
36
20
|
// Create static hosting construct first
|
|
37
21
|
this.staticHosting = new Static_1.Static(this);
|
|
38
22
|
// Configure API Gateway based on VPC settings
|
|
@@ -56,32 +40,47 @@ class Api extends constructs_1.Construct {
|
|
|
56
40
|
: {
|
|
57
41
|
restApiName: stack.props.prefix,
|
|
58
42
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
43
|
+
// Create Lambda functions
|
|
44
|
+
const initLambda = new Init_1.Init(this).lambda;
|
|
45
|
+
const usersLambda = new Users_1.Users(this).lambda;
|
|
46
|
+
const flowConfigLambda = new FlowConfig_1.FlowConfig(this).lambda;
|
|
47
|
+
const previewSpeechLambda = new PreviewSpeech_1.PreviewSpeech(this).lambda;
|
|
48
|
+
const staticLambda = this.staticHosting.handler;
|
|
49
|
+
// Update Authorizer Provider ARN
|
|
50
|
+
const sourceFileName = (0, path_1.join)(__dirname, 'spec.yaml');
|
|
51
|
+
const yml = (0, fs_1.readFileSync)(sourceFileName).toString();
|
|
52
|
+
const spec = (0, yaml_1.parse)(yml);
|
|
53
|
+
const authorizer = spec.components.securitySchemes.CognitoAuthorizer;
|
|
54
|
+
authorizer['x-amazon-apigateway-authorizer'].providerARNs = [
|
|
55
|
+
stack.userPool.userPoolArn,
|
|
56
|
+
];
|
|
57
|
+
// Helper function to set Lambda integration URI
|
|
58
|
+
const setLambdaIntegration = (path, method, lambda) => {
|
|
59
|
+
spec.paths[path][method]['x-amazon-apigateway-integration'].uri = `arn:aws:apigateway:${stack.region}:lambda:path/2015-03-31/functions/${lambda.functionArn}/invocations`;
|
|
60
|
+
};
|
|
61
|
+
// Update the spec to replace handler URIs with actual Lambda ARNs
|
|
62
|
+
setLambdaIntegration('/api/init', 'get', initLambda);
|
|
63
|
+
setLambdaIntegration('/api/users/{userId}', 'get', usersLambda);
|
|
64
|
+
setLambdaIntegration('/api/flow-config', 'get', flowConfigLambda);
|
|
65
|
+
setLambdaIntegration('/api/flow-config/{id}', 'get', flowConfigLambda);
|
|
66
|
+
setLambdaIntegration('/api/flow-config/{id}', 'post', flowConfigLambda);
|
|
67
|
+
setLambdaIntegration('/api/flow-config/{id}', 'delete', flowConfigLambda);
|
|
68
|
+
setLambdaIntegration('/api/flow-config/preview', 'post', flowConfigLambda);
|
|
69
|
+
setLambdaIntegration('/api/preview-speech', 'post', previewSpeechLambda);
|
|
70
|
+
setLambdaIntegration('/{proxy+}', 'get', staticLambda);
|
|
71
|
+
setLambdaIntegration('/', 'get', staticLambda);
|
|
72
|
+
// Create API Gateway from updated OpenAPI spec
|
|
73
|
+
this.restApi = new aws_apigateway_1.SpecRestApi(this, 'RestApi', {
|
|
74
|
+
...apiGatewayProps,
|
|
75
|
+
apiDefinition: aws_apigateway_1.ApiDefinition.fromInline(spec),
|
|
84
76
|
});
|
|
77
|
+
// Grant API Gateway permission to invoke Lambda functions
|
|
78
|
+
const apiGatewayPrincipal = new aws_iam_1.ServicePrincipal('apigateway.amazonaws.com');
|
|
79
|
+
initLambda.grantInvoke(apiGatewayPrincipal);
|
|
80
|
+
usersLambda.grantInvoke(apiGatewayPrincipal);
|
|
81
|
+
flowConfigLambda.grantInvoke(apiGatewayPrincipal);
|
|
82
|
+
previewSpeechLambda.grantInvoke(apiGatewayPrincipal);
|
|
83
|
+
staticLambda.grantInvoke(apiGatewayPrincipal);
|
|
85
84
|
}
|
|
86
85
|
/**
|
|
87
86
|
* Create a resource policy for the VPC endpoint to restrict access to the specific VPC
|
|
@@ -105,4 +104,4 @@ class Api extends constructs_1.Construct {
|
|
|
105
104
|
}
|
|
106
105
|
}
|
|
107
106
|
exports.Api = Api;
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvYXBpL0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsNkRBQWtEO0FBQ2xELCtCQUE0QjtBQUM1QixtR0FBNkY7QUFDN0YsK0RBQTRFO0FBQzVFLGlEQUs2QjtBQUM3QixpREFHNkI7QUFDN0IsaUNBQThCO0FBQzlCLDZDQUEwQztBQUMxQyxtREFBZ0Q7QUFDaEQsK0JBQXdDO0FBQ3hDLDJCQUFpRDtBQUVqRCxtQ0FBZ0M7QUFDaEMscUNBQWtDO0FBRWxDLE1BQWEsR0FBSSxTQUFRLHNCQUFTO0lBSWhDLFlBQW1CLEtBQXNCO1FBQ3ZDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFESCxVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUd2QyxpQ0FBaUM7UUFDakMsTUFBTSxjQUFjLEdBQUcsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sV0FBVyxHQUFHLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVyRCxNQUFNLEdBQUcsR0FBRyxJQUFBLGlCQUFZLEVBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEQsTUFBTSxJQUFJLEdBQUcsSUFBQSxZQUFLLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUM7UUFDckUsVUFBVSxDQUFDLGdDQUFnQyxDQUFDLENBQUMsWUFBWSxHQUFHO1lBQzFELEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVztTQUMzQixDQUFDO1FBRUYsSUFBQSxrQkFBYSxFQUFDLFdBQVcsRUFBRSxJQUFBLGdCQUFTLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU1Qyw0QkFBNEI7UUFDNUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHFCQUFLLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN6RCxJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFDLENBQUM7UUFFSCx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0Qyw4Q0FBOEM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDaEQsTUFBTSxlQUFlLEdBQXFCLFNBQVM7WUFDakQsQ0FBQyxDQUFDO2dCQUNFLFdBQVcsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU07Z0JBQy9CLHFCQUFxQixFQUFFO29CQUNyQixLQUFLLEVBQUUsQ0FBQyw2QkFBWSxDQUFDLE9BQU8sQ0FBQztvQkFDN0IsWUFBWSxFQUFFO3dCQUNaLElBQUksOEJBQW9CLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzRCQUMvQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUc7NEJBQ2xCLE9BQU8sRUFBRSx3Q0FBOEIsQ0FBQyxVQUFVOzRCQUNsRCxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLGNBQWMsRUFBRTs0QkFDOUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyx5QkFBeUI7eUJBQ3BELENBQUM7cUJBQ0g7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQzthQUMxRDtZQUNILENBQUMsQ0FBQztnQkFDRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNO2FBQ2hDLENBQUM7UUFFTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksa0RBQXNCLENBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFO1lBQ3hFLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIsZUFBZSxFQUFFO2dCQUNmO29CQUNFLEVBQUUsRUFBRSxhQUFhO29CQUNqQixpQkFBaUIsRUFBRSxJQUFJLFdBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNO2lCQUN6QztnQkFDRDtvQkFDRSxFQUFFLEVBQUUsY0FBYztvQkFDbEIsaUJBQWlCLEVBQUUsSUFBSSxhQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTTtpQkFDMUM7Z0JBQ0Q7b0JBQ0UsRUFBRSxFQUFFLG1CQUFtQjtvQkFDdkIsaUJBQWlCLEVBQUUsSUFBSSx1QkFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU07aUJBQy9DO2dCQUNEO29CQUNFLEVBQUUsRUFBRSxzQkFBc0I7b0JBQzFCLGlCQUFpQixFQUFFLElBQUksNkJBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNO2lCQUNsRDtnQkFDRDtvQkFDRSxFQUFFLEVBQUUsZUFBZTtvQkFDbkIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO2lCQUM5QzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssdUJBQXVCLENBQUMsS0FBYTtRQUMzQyxPQUFPLElBQUksd0JBQWMsQ0FBQztZQUN4QixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixVQUFVLEVBQUUsQ0FBQyxJQUFJLHNCQUFZLEVBQUUsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7b0JBQ2hCLFVBQVUsRUFBRTt3QkFDVixZQUFZLEVBQUU7NEJBQ1osZUFBZSxFQUFFLEtBQUs7eUJBQ3ZCO3FCQUNGO2lCQUNGLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQW5HRCxrQkFtR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBPcGVuQXBpR2F0ZXdheVRvTGFtYmRhIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9hd3Mtb3BlbmFwaWdhdGV3YXktbGFtYmRhJztcbmltcG9ydCB7IEVuZHBvaW50VHlwZSwgUmVzdEFwaUJhc2VQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5JztcbmltcG9ydCB7XG4gIFBvbGljeURvY3VtZW50LFxuICBQb2xpY3lTdGF0ZW1lbnQsXG4gIEVmZmVjdCxcbiAgQW55UHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEludGVyZmFjZVZwY0VuZHBvaW50LFxuICBJbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgSW5pdCB9IGZyb20gJy4vSW5pdCc7XG5pbXBvcnQgeyBGbG93Q29uZmlnIH0gZnJvbSAnLi9GbG93Q29uZmlnJztcbmltcG9ydCB7IFByZXZpZXdTcGVlY2ggfSBmcm9tICcuL1ByZXZpZXdTcGVlY2gnO1xuaW1wb3J0IHsgcGFyc2UsIHN0cmluZ2lmeSB9IGZyb20gJ3lhbWwnO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgRmxvd0NvbmZpZ1N0YWNrIH0gZnJvbSAnLi4vRmxvd0NvbmZpZ1N0YWNrJztcbmltcG9ydCB7IFVzZXJzIH0gZnJvbSAnLi9Vc2Vycyc7XG5pbXBvcnQgeyBTdGF0aWMgfSBmcm9tICcuL1N0YXRpYyc7XG5cbmV4cG9ydCBjbGFzcyBBcGkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBzdGF0aWNIb3N0aW5nOiBTdGF0aWM7XG4gIG9wZW5BcGk6IE9wZW5BcGlHYXRld2F5VG9MYW1iZGE7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHN0YWNrOiBGbG93Q29uZmlnU3RhY2spIHtcbiAgICBzdXBlcihzdGFjaywgJ0FwaScpO1xuXG4gICAgLy8gVXBkYXRlIEF1dGhvcml6ZXIgUHJvdmlkZXIgQVJOXG4gICAgY29uc3Qgc291cmNlRmlsZU5hbWUgPSBqb2luKF9fZGlybmFtZSwgJ3NwZWMueWFtbCcpO1xuICAgIGNvbnN0IG91dEZpbGVOYW1lID0gam9pbihfX2Rpcm5hbWUsICdzcGVjLm91dC55YW1sJyk7XG5cbiAgICBjb25zdCB5bWwgPSByZWFkRmlsZVN5bmMoc291cmNlRmlsZU5hbWUpLnRvU3RyaW5nKCk7XG4gICAgY29uc3Qgc3BlYyA9IHBhcnNlKHltbCk7XG5cbiAgICBjb25zdCBhdXRob3JpemVyID0gc3BlYy5jb21wb25lbnRzLnNlY3VyaXR5U2NoZW1lcy5Db2duaXRvQXV0aG9yaXplcjtcbiAgICBhdXRob3JpemVyWyd4LWFtYXpvbi1hcGlnYXRld2F5LWF1dGhvcml6ZXInXS5wcm92aWRlckFSTnMgPSBbXG4gICAgICBzdGFjay51c2VyUG9vbC51c2VyUG9vbEFybixcbiAgICBdO1xuXG4gICAgd3JpdGVGaWxlU3luYyhvdXRGaWxlTmFtZSwgc3RyaW5naWZ5KHNwZWMpKTtcblxuICAgIC8vIFVwbG9hZCBtb2RpZmllZCBzcGVjIGZpbGVcbiAgICBjb25zdCBhcGlEZWZpbml0aW9uQXNzZXQgPSBuZXcgQXNzZXQodGhpcywgJ0FwaVNwZWNBc3NldCcsIHtcbiAgICAgIHBhdGg6IG91dEZpbGVOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHN0YXRpYyBob3N0aW5nIGNvbnN0cnVjdCBmaXJzdFxuICAgIHRoaXMuc3RhdGljSG9zdGluZyA9IG5ldyBTdGF0aWModGhpcyk7XG5cbiAgICAvLyBDb25maWd1cmUgQVBJIEdhdGV3YXkgYmFzZWQgb24gVlBDIHNldHRpbmdzXG4gICAgY29uc3QgdnBjQ29uZmlnID0gc3RhY2suX2dldFJlc29sdmVkVnBjQ29uZmlnKCk7XG4gICAgY29uc3QgYXBpR2F0ZXdheVByb3BzOiBSZXN0QXBpQmFzZVByb3BzID0gdnBjQ29uZmlnXG4gICAgICA/IHtcbiAgICAgICAgICByZXN0QXBpTmFtZTogc3RhY2sucHJvcHMucHJlZml4LFxuICAgICAgICAgIGVuZHBvaW50Q29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgdHlwZXM6IFtFbmRwb2ludFR5cGUuUFJJVkFURV0sXG4gICAgICAgICAgICB2cGNFbmRwb2ludHM6IFtcbiAgICAgICAgICAgICAgbmV3IEludGVyZmFjZVZwY0VuZHBvaW50KHRoaXMsICdBcGlWcGNFbmRwb2ludCcsIHtcbiAgICAgICAgICAgICAgICB2cGM6IHZwY0NvbmZpZy52cGMsXG4gICAgICAgICAgICAgICAgc2VydmljZTogSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLkFQSUdBVEVXQVksXG4gICAgICAgICAgICAgICAgc3VibmV0czogeyBzdWJuZXRzOiB2cGNDb25maWcucHJpdmF0ZVN1Ym5ldHMgfSxcbiAgICAgICAgICAgICAgICBzZWN1cml0eUdyb3VwczogdnBjQ29uZmlnLnZwY0VuZHBvaW50U2VjdXJpdHlHcm91cHMsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBvbGljeTogdGhpcy5jcmVhdGVWcGNFbmRwb2ludFBvbGljeSh2cGNDb25maWcudnBjLnZwY0lkKSxcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgcmVzdEFwaU5hbWU6IHN0YWNrLnByb3BzLnByZWZpeCxcbiAgICAgICAgfTtcblxuICAgIHRoaXMub3BlbkFwaSA9IG5ldyBPcGVuQXBpR2F0ZXdheVRvTGFtYmRhKHRoaXMsICdPcGVuQXBpR2F0ZXdheVRvTGFtYmRhJywge1xuICAgICAgYXBpR2F0ZXdheVByb3BzLFxuICAgICAgYXBpRGVmaW5pdGlvbkFzc2V0LFxuICAgICAgYXBpSW50ZWdyYXRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ0luaXRIYW5kbGVyJyxcbiAgICAgICAgICBleGlzdGluZ0xhbWJkYU9iajogbmV3IEluaXQodGhpcykubGFtYmRhLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdVc2Vyc0hhbmRsZXInLFxuICAgICAgICAgIGV4aXN0aW5nTGFtYmRhT2JqOiBuZXcgVXNlcnModGhpcykubGFtYmRhLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdGbG93Q29uZmlnSGFuZGxlcicsXG4gICAgICAgICAgZXhpc3RpbmdMYW1iZGFPYmo6IG5ldyBGbG93Q29uZmlnKHRoaXMpLmxhbWJkYSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnUHJldmlld1NwZWVjaEhhbmRsZXInLFxuICAgICAgICAgIGV4aXN0aW5nTGFtYmRhT2JqOiBuZXcgUHJldmlld1NwZWVjaCh0aGlzKS5sYW1iZGEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ1N0YXRpY0hhbmRsZXInLFxuICAgICAgICAgIGV4aXN0aW5nTGFtYmRhT2JqOiB0aGlzLnN0YXRpY0hvc3RpbmcuaGFuZGxlcixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcmVzb3VyY2UgcG9saWN5IGZvciB0aGUgVlBDIGVuZHBvaW50IHRvIHJlc3RyaWN0IGFjY2VzcyB0byB0aGUgc3BlY2lmaWMgVlBDXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVZwY0VuZHBvaW50UG9saWN5KHZwY0lkOiBzdHJpbmcpOiBQb2xpY3lEb2N1bWVudCB7XG4gICAgcmV0dXJuIG5ldyBQb2xpY3lEb2N1bWVudCh7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIHByaW5jaXBhbHM6IFtuZXcgQW55UHJpbmNpcGFsKCldLFxuICAgICAgICAgIGFjdGlvbnM6IFsnZXhlY3V0ZS1hcGk6KiddLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdhd3M6U291cmNlVnBjJzogdnBjSWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvYXBpL0FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsK0JBQTRCO0FBQzVCLCtEQUtvQztBQUNwQyxpREFNNkI7QUFDN0IsaURBRzZCO0FBQzdCLGlDQUE4QjtBQUM5Qiw2Q0FBMEM7QUFDMUMsbURBQWdEO0FBQ2hELCtCQUE2QjtBQUM3QiwyQkFBa0M7QUFFbEMsbUNBQWdDO0FBQ2hDLHFDQUFrQztBQUVsQyxNQUFhLEdBQUksU0FBUSxzQkFBUztJQUloQyxZQUFtQixLQUFzQjtRQUN2QyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBREgsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFHdkMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsOENBQThDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFxQixTQUFTO1lBQ2pELENBQUMsQ0FBQztnQkFDRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUMvQixxQkFBcUIsRUFBRTtvQkFDckIsS0FBSyxFQUFFLENBQUMsNkJBQVksQ0FBQyxPQUFPLENBQUM7b0JBQzdCLFlBQVksRUFBRTt3QkFDWixJQUFJLDhCQUFvQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTs0QkFDL0MsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHOzRCQUNsQixPQUFPLEVBQUUsd0NBQThCLENBQUMsVUFBVTs0QkFDbEQsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxjQUFjLEVBQUU7NEJBQzlDLGNBQWMsRUFBRSxTQUFTLENBQUMseUJBQXlCO3lCQUNwRCxDQUFDO3FCQUNIO2lCQUNG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MEJBQTBCLENBQzNCLENBQUM7UUFDRixVQUFVLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDNUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JELFlBQVksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyx1QkFBdUIsQ0FBQyxLQUFhO1FBQzNDLE9BQU8sSUFBSSx3QkFBYyxDQUFDO1lBQ3hCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFVBQVUsRUFBRSxDQUFDLElBQUksc0JBQVksRUFBRSxDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDaEIsVUFBVSxFQUFFO3dCQUNWLFlBQVksRUFBRTs0QkFDWixlQUFlLEVBQUUsS0FBSzt5QkFDdkI7cUJBQ0Y7aUJBQ0YsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBN0dELGtCQTZHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgRW5kcG9pbnRUeXBlLFxuICBSZXN0QXBpQmFzZVByb3BzLFxuICBTcGVjUmVzdEFwaSxcbiAgQXBpRGVmaW5pdGlvbixcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0IHtcbiAgUG9saWN5RG9jdW1lbnQsXG4gIFBvbGljeVN0YXRlbWVudCxcbiAgRWZmZWN0LFxuICBBbnlQcmluY2lwYWwsXG4gIFNlcnZpY2VQcmluY2lwYWwsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHtcbiAgSW50ZXJmYWNlVnBjRW5kcG9pbnQsXG4gIEludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBJbml0IH0gZnJvbSAnLi9Jbml0JztcbmltcG9ydCB7IEZsb3dDb25maWcgfSBmcm9tICcuL0Zsb3dDb25maWcnO1xuaW1wb3J0IHsgUHJldmlld1NwZWVjaCB9IGZyb20gJy4vUHJldmlld1NwZWVjaCc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJ3lhbWwnO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgRmxvd0NvbmZpZ1N0YWNrIH0gZnJvbSAnLi4vRmxvd0NvbmZpZ1N0YWNrJztcbmltcG9ydCB7IFVzZXJzIH0gZnJvbSAnLi9Vc2Vycyc7XG5pbXBvcnQgeyBTdGF0aWMgfSBmcm9tICcuL1N0YXRpYyc7XG5cbmV4cG9ydCBjbGFzcyBBcGkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBzdGF0aWNIb3N0aW5nOiBTdGF0aWM7XG4gIHJlc3RBcGk6IFNwZWNSZXN0QXBpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzdGFjazogRmxvd0NvbmZpZ1N0YWNrKSB7XG4gICAgc3VwZXIoc3RhY2ssICdBcGknKTtcblxuICAgIC8vIENyZWF0ZSBzdGF0aWMgaG9zdGluZyBjb25zdHJ1Y3QgZmlyc3RcbiAgICB0aGlzLnN0YXRpY0hvc3RpbmcgPSBuZXcgU3RhdGljKHRoaXMpO1xuXG4gICAgLy8gQ29uZmlndXJlIEFQSSBHYXRld2F5IGJhc2VkIG9uIFZQQyBzZXR0aW5nc1xuICAgIGNvbnN0IHZwY0NvbmZpZyA9IHN0YWNrLl9nZXRSZXNvbHZlZFZwY0NvbmZpZygpO1xuICAgIGNvbnN0IGFwaUdhdGV3YXlQcm9wczogUmVzdEFwaUJhc2VQcm9wcyA9IHZwY0NvbmZpZ1xuICAgICAgPyB7XG4gICAgICAgICAgcmVzdEFwaU5hbWU6IHN0YWNrLnByb3BzLnByZWZpeCxcbiAgICAgICAgICBlbmRwb2ludENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIHR5cGVzOiBbRW5kcG9pbnRUeXBlLlBSSVZBVEVdLFxuICAgICAgICAgICAgdnBjRW5kcG9pbnRzOiBbXG4gICAgICAgICAgICAgIG5ldyBJbnRlcmZhY2VWcGNFbmRwb2ludCh0aGlzLCAnQXBpVnBjRW5kcG9pbnQnLCB7XG4gICAgICAgICAgICAgICAgdnBjOiB2cGNDb25maWcudnBjLFxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IEludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5BUElHQVRFV0FZLFxuICAgICAgICAgICAgICAgIHN1Ym5ldHM6IHsgc3VibmV0czogdnBjQ29uZmlnLnByaXZhdGVTdWJuZXRzIH0sXG4gICAgICAgICAgICAgICAgc2VjdXJpdHlHcm91cHM6IHZwY0NvbmZpZy52cGNFbmRwb2ludFNlY3VyaXR5R3JvdXBzLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwb2xpY3k6IHRoaXMuY3JlYXRlVnBjRW5kcG9pbnRQb2xpY3kodnBjQ29uZmlnLnZwYy52cGNJZCksXG4gICAgICAgIH1cbiAgICAgIDoge1xuICAgICAgICAgIHJlc3RBcGlOYW1lOiBzdGFjay5wcm9wcy5wcmVmaXgsXG4gICAgICAgIH07XG5cbiAgICAvLyBDcmVhdGUgTGFtYmRhIGZ1bmN0aW9uc1xuICAgIGNvbnN0IGluaXRMYW1iZGEgPSBuZXcgSW5pdCh0aGlzKS5sYW1iZGE7XG4gICAgY29uc3QgdXNlcnNMYW1iZGEgPSBuZXcgVXNlcnModGhpcykubGFtYmRhO1xuICAgIGNvbnN0IGZsb3dDb25maWdMYW1iZGEgPSBuZXcgRmxvd0NvbmZpZyh0aGlzKS5sYW1iZGE7XG4gICAgY29uc3QgcHJldmlld1NwZWVjaExhbWJkYSA9IG5ldyBQcmV2aWV3U3BlZWNoKHRoaXMpLmxhbWJkYTtcbiAgICBjb25zdCBzdGF0aWNMYW1iZGEgPSB0aGlzLnN0YXRpY0hvc3RpbmcuaGFuZGxlcjtcblxuICAgIC8vIFVwZGF0ZSBBdXRob3JpemVyIFByb3ZpZGVyIEFSTlxuICAgIGNvbnN0IHNvdXJjZUZpbGVOYW1lID0gam9pbihfX2Rpcm5hbWUsICdzcGVjLnlhbWwnKTtcbiAgICBjb25zdCB5bWwgPSByZWFkRmlsZVN5bmMoc291cmNlRmlsZU5hbWUpLnRvU3RyaW5nKCk7XG4gICAgY29uc3Qgc3BlYyA9IHBhcnNlKHltbCk7XG5cbiAgICBjb25zdCBhdXRob3JpemVyID0gc3BlYy5jb21wb25lbnRzLnNlY3VyaXR5U2NoZW1lcy5Db2duaXRvQXV0aG9yaXplcjtcbiAgICBhdXRob3JpemVyWyd4LWFtYXpvbi1hcGlnYXRld2F5LWF1dGhvcml6ZXInXS5wcm92aWRlckFSTnMgPSBbXG4gICAgICBzdGFjay51c2VyUG9vbC51c2VyUG9vbEFybixcbiAgICBdO1xuXG4gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHNldCBMYW1iZGEgaW50ZWdyYXRpb24gVVJJXG4gICAgY29uc3Qgc2V0TGFtYmRhSW50ZWdyYXRpb24gPSAoXG4gICAgICBwYXRoOiBzdHJpbmcsXG4gICAgICBtZXRob2Q6IHN0cmluZyxcbiAgICAgIGxhbWJkYTogYW55XG4gICAgKSA9PiB7XG4gICAgICBzcGVjLnBhdGhzW3BhdGhdW21ldGhvZF1bXG4gICAgICAgICd4LWFtYXpvbi1hcGlnYXRld2F5LWludGVncmF0aW9uJ1xuICAgICAgXS51cmkgPSBgYXJuOmF3czphcGlnYXRld2F5OiR7c3RhY2sucmVnaW9ufTpsYW1iZGE6cGF0aC8yMDE1LTAzLTMxL2Z1bmN0aW9ucy8ke2xhbWJkYS5mdW5jdGlvbkFybn0vaW52b2NhdGlvbnNgO1xuICAgIH07XG5cbiAgICAvLyBVcGRhdGUgdGhlIHNwZWMgdG8gcmVwbGFjZSBoYW5kbGVyIFVSSXMgd2l0aCBhY3R1YWwgTGFtYmRhIEFSTnNcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9pbml0JywgJ2dldCcsIGluaXRMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL3VzZXJzL3t1c2VySWR9JywgJ2dldCcsIHVzZXJzTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9mbG93LWNvbmZpZycsICdnZXQnLCBmbG93Q29uZmlnTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignL2FwaS9mbG93LWNvbmZpZy97aWR9JywgJ2dldCcsIGZsb3dDb25maWdMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL2Zsb3ctY29uZmlnL3tpZH0nLCAncG9zdCcsIGZsb3dDb25maWdMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcvYXBpL2Zsb3ctY29uZmlnL3tpZH0nLCAnZGVsZXRlJywgZmxvd0NvbmZpZ0xhbWJkYSk7XG4gICAgc2V0TGFtYmRhSW50ZWdyYXRpb24oJy9hcGkvZmxvdy1jb25maWcvcHJldmlldycsICdwb3N0JywgZmxvd0NvbmZpZ0xhbWJkYSk7XG4gICAgc2V0TGFtYmRhSW50ZWdyYXRpb24oJy9hcGkvcHJldmlldy1zcGVlY2gnLCAncG9zdCcsIHByZXZpZXdTcGVlY2hMYW1iZGEpO1xuICAgIHNldExhbWJkYUludGVncmF0aW9uKCcve3Byb3h5K30nLCAnZ2V0Jywgc3RhdGljTGFtYmRhKTtcbiAgICBzZXRMYW1iZGFJbnRlZ3JhdGlvbignLycsICdnZXQnLCBzdGF0aWNMYW1iZGEpO1xuXG4gICAgLy8gQ3JlYXRlIEFQSSBHYXRld2F5IGZyb20gdXBkYXRlZCBPcGVuQVBJIHNwZWNcbiAgICB0aGlzLnJlc3RBcGkgPSBuZXcgU3BlY1Jlc3RBcGkodGhpcywgJ1Jlc3RBcGknLCB7XG4gICAgICAuLi5hcGlHYXRld2F5UHJvcHMsXG4gICAgICBhcGlEZWZpbml0aW9uOiBBcGlEZWZpbml0aW9uLmZyb21JbmxpbmUoc3BlYyksXG4gICAgfSk7XG5cbiAgICAvLyBHcmFudCBBUEkgR2F0ZXdheSBwZXJtaXNzaW9uIHRvIGludm9rZSBMYW1iZGEgZnVuY3Rpb25zXG4gICAgY29uc3QgYXBpR2F0ZXdheVByaW5jaXBhbCA9IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFxuICAgICAgJ2FwaWdhdGV3YXkuYW1hem9uYXdzLmNvbSdcbiAgICApO1xuICAgIGluaXRMYW1iZGEuZ3JhbnRJbnZva2UoYXBpR2F0ZXdheVByaW5jaXBhbCk7XG4gICAgdXNlcnNMYW1iZGEuZ3JhbnRJbnZva2UoYXBpR2F0ZXdheVByaW5jaXBhbCk7XG4gICAgZmxvd0NvbmZpZ0xhbWJkYS5ncmFudEludm9rZShhcGlHYXRld2F5UHJpbmNpcGFsKTtcbiAgICBwcmV2aWV3U3BlZWNoTGFtYmRhLmdyYW50SW52b2tlKGFwaUdhdGV3YXlQcmluY2lwYWwpO1xuICAgIHN0YXRpY0xhbWJkYS5ncmFudEludm9rZShhcGlHYXRld2F5UHJpbmNpcGFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZXNvdXJjZSBwb2xpY3kgZm9yIHRoZSBWUEMgZW5kcG9pbnQgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHRoZSBzcGVjaWZpYyBWUENcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVnBjRW5kcG9pbnRQb2xpY3kodnBjSWQ6IHN0cmluZyk6IFBvbGljeURvY3VtZW50IHtcbiAgICByZXR1cm4gbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICAgICAgYWN0aW9uczogWydleGVjdXRlLWFwaToqJ10sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgJ2F3czpTb3VyY2VWcGMnOiB2cGNJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -15,12 +15,17 @@ function createLambda(scope, id, props) {
|
|
|
15
15
|
// Determine the code location based on logical ID
|
|
16
16
|
// If id is "Handler", use the parent construct's ID instead
|
|
17
17
|
const backendId = id === 'Handler' ? scope.node.id : id;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
// Verify the bundled Lambda code exists
|
|
18
|
+
let codeLocation = (0, path_1.resolve)(__dirname, '..', 'backend', backendId);
|
|
19
|
+
let expectedIndexFile = (0, path_1.resolve)(codeLocation, 'index.js');
|
|
20
|
+
// Verify the bundled Lambda code exists, try ../dist/backend if not found
|
|
21
21
|
if (!(0, fs_1.existsSync)(expectedIndexFile)) {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
// Try alternative location in ../dist/backend
|
|
23
|
+
codeLocation = (0, path_1.resolve)(__dirname, '..', 'dist', 'backend', backendId);
|
|
24
|
+
expectedIndexFile = (0, path_1.resolve)(codeLocation, 'index.js');
|
|
25
|
+
if (!(0, fs_1.existsSync)(expectedIndexFile)) {
|
|
26
|
+
throw new Error(`Lambda function ${backendId} bundled code not found at: ${expectedIndexFile} or ${(0, path_1.resolve)(__dirname, '..', 'backend', backendId, 'index.js')}. ` +
|
|
27
|
+
'Please run "npm run build:lambdas" to bundle the Lambda functions.');
|
|
28
|
+
}
|
|
24
29
|
}
|
|
25
30
|
console.log(`📦 Using Lambda code for ${backendId} (id=${id}) from: ${codeLocation}`);
|
|
26
31
|
// Get the current region for the Lambda Powertools layer
|
|
@@ -77,4 +82,4 @@ function createLambda(scope, id, props) {
|
|
|
77
82
|
});
|
|
78
83
|
return func;
|
|
79
84
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlTGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmFzdHJ1Y3R1cmUvY3JlYXRlTGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBK0JBLG9DQWdHQztBQS9IRCw2Q0FBNkQ7QUFDN0QsaURBQW9EO0FBQ3BELHVEQVFnQztBQUNoQyxtREFBK0Q7QUFHL0QsMkJBQWdDO0FBQ2hDLCtCQUErQjtBQVkvQjs7O0dBR0c7QUFDSCxTQUFnQixZQUFZLENBQzFCLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUE4QjtJQUU5QixrREFBa0Q7SUFDbEQsNERBQTREO0lBQzVELE1BQU0sU0FBUyxHQUFHLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEQsSUFBSSxZQUFZLEdBQUcsSUFBQSxjQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEUsSUFBSSxpQkFBaUIsR0FBRyxJQUFBLGNBQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFMUQsMEVBQTBFO0lBQzFFLElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDbkMsOENBQThDO1FBQzlDLFlBQVksR0FBRyxJQUFBLGNBQU8sRUFBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEUsaUJBQWlCLEdBQUcsSUFBQSxjQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsU0FBUywrQkFBK0IsaUJBQWlCLE9BQU8sSUFBQSxjQUFPLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxJQUFJO2dCQUMvSSxvRUFBb0UsQ0FDdkUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FDVCw0QkFBNEIsU0FBUyxRQUFRLEVBQUUsV0FBVyxZQUFZLEVBQUUsQ0FDekUsQ0FBQztJQUVGLHlEQUF5RDtJQUN6RCxNQUFNLE1BQU0sR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFdEMsa0NBQWtDO0lBQ2xDLDhFQUE4RTtJQUM5RSxNQUFNLGtCQUFrQixHQUFHLGtCQUFrQixNQUFNLHdEQUF3RCxDQUFDO0lBRTVHLGdFQUFnRTtJQUNoRSxNQUFNLEtBQUssR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQW9CLENBQUM7SUFDakQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1FBQ2hELGlCQUFpQjtRQUNqQixPQUFPLEVBQUUsZUFBZTtRQUN4QixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1FBQzVCLFlBQVksRUFBRSx5QkFBWSxDQUFDLE1BQU07UUFDakMsT0FBTyxFQUFFLG9CQUFPLENBQUMsTUFBTTtRQUN2QixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzdCLElBQUksRUFBRSxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7UUFDbEMsTUFBTSxFQUFFO1lBQ04seUJBQVksQ0FBQyxtQkFBbUIsQ0FDOUIsS0FBSyxFQUNMLEdBQUcsRUFBRSxpQkFBaUIsRUFDdEIsa0JBQWtCLENBQ25CO1NBQ0Y7UUFDRCxnQ0FBZ0M7UUFDaEMsR0FBRyxDQUFDLFNBQVMsSUFBSTtZQUNmLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRztZQUNsQixVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLGNBQWMsRUFBRTtZQUNqRCxjQUFjLEVBQUUsU0FBUyxDQUFDLG9CQUFvQjtTQUMvQyxDQUFDO1FBQ0Ysa0JBQWtCO1FBQ2xCLEdBQUcsS0FBSztRQUNSLCtEQUErRDtRQUMvRCxZQUFZLEVBQUUsU0FBUztRQUN2QixXQUFXLEVBQUU7WUFDWCw4RUFBOEU7WUFDOUUsWUFBWSxFQUFFLHNCQUFzQjtZQUNwQyx1RkFBdUY7WUFDdkYsb0JBQW9CLEVBQUUsT0FBTztZQUM3QixxQkFBcUI7WUFDckIsMkJBQTJCLEVBQUUsTUFBTTtZQUNuQyxlQUFlLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksS0FBSztZQUNwRCxHQUFHLEtBQUssQ0FBQyxXQUFXO1NBQ3JCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckMsc0hBQXNIO0lBQ3RILG1HQUFtRztJQUNuRyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUN6Qix1QkFBYSxDQUFDLHdCQUF3QixDQUNwQyxTQUFTO1FBQ1AsQ0FBQyxDQUFDLDhDQUE4QztRQUNoRCxDQUFDLENBQUMsMENBQTBDLENBQy9DLENBQ0YsQ0FBQztJQUVGLGtDQUFrQztJQUNsQyxJQUFJLG1CQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDbkMsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksd0JBQWEsQ0FBQyxTQUFTO1FBQ3hELFlBQVksRUFBRSxlQUFlLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDaEQsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztLQUNyQyxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBNYW5hZ2VkUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQge1xuICBBcmNoaXRlY3R1cmUsXG4gIFJ1bnRpbWUsXG4gIFRyYWNpbmcsXG4gIEZ1bmN0aW9uLFxuICBGdW5jdGlvblByb3BzLFxuICBDb2RlLFxuICBMYXllclZlcnNpb24sXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBJVG9waWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IEZsb3dDb25maWdTdGFjayB9IGZyb20gJy4vRmxvd0NvbmZpZ1N0YWNrJztcblxuaW50ZXJmYWNlIENyZWF0ZUxhbWJkYVByb3BzPFRFbnY+XG4gIGV4dGVuZHMgT21pdDxGdW5jdGlvblByb3BzLCAnaGFuZGxlcicgfCAnZW52aXJvbm1lbnQnIHwgJ2NvZGUnIHwgJ3J1bnRpbWUnPiB7XG4gIGVudmlyb25tZW50PzogVEVudjtcblxuICAvKipcbiAgICogTm90aWZ5IHNvbWVvbmUgd2hlbiB5b3VyIGxhbWJkYSBmYWlscyFcbiAgICovXG4gIGFsZXJ0VG9waWM/OiBJVG9waWM7XG59XG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIGNyZWF0aW5nIGEgbG9nIGdyb3VwIGFuZCBsYW1iZGEgd2l0aCBhcHAgZGVmYXVsdHMuXG4gKiBFbmZvcmNlcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdmlhIGdlbmVyaWMgcGFyYW1ldGVyIFRFbnZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxhbWJkYTxURW52PihcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgaWQ6IHN0cmluZyxcbiAgcHJvcHM6IENyZWF0ZUxhbWJkYVByb3BzPFRFbnY+XG4pIHtcbiAgLy8gRGV0ZXJtaW5lIHRoZSBjb2RlIGxvY2F0aW9uIGJhc2VkIG9uIGxvZ2ljYWwgSURcbiAgLy8gSWYgaWQgaXMgXCJIYW5kbGVyXCIsIHVzZSB0aGUgcGFyZW50IGNvbnN0cnVjdCdzIElEIGluc3RlYWRcbiAgY29uc3QgYmFja2VuZElkID0gaWQgPT09ICdIYW5kbGVyJyA/IHNjb3BlLm5vZGUuaWQgOiBpZDtcbiAgbGV0IGNvZGVMb2NhdGlvbiA9IHJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnYmFja2VuZCcsIGJhY2tlbmRJZCk7XG4gIGxldCBleHBlY3RlZEluZGV4RmlsZSA9IHJlc29sdmUoY29kZUxvY2F0aW9uLCAnaW5kZXguanMnKTtcblxuICAvLyBWZXJpZnkgdGhlIGJ1bmRsZWQgTGFtYmRhIGNvZGUgZXhpc3RzLCB0cnkgLi4vZGlzdC9iYWNrZW5kIGlmIG5vdCBmb3VuZFxuICBpZiAoIWV4aXN0c1N5bmMoZXhwZWN0ZWRJbmRleEZpbGUpKSB7XG4gICAgLy8gVHJ5IGFsdGVybmF0aXZlIGxvY2F0aW9uIGluIC4uL2Rpc3QvYmFja2VuZFxuICAgIGNvZGVMb2NhdGlvbiA9IHJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnZGlzdCcsICdiYWNrZW5kJywgYmFja2VuZElkKTtcbiAgICBleHBlY3RlZEluZGV4RmlsZSA9IHJlc29sdmUoY29kZUxvY2F0aW9uLCAnaW5kZXguanMnKTtcbiAgICBcbiAgICBpZiAoIWV4aXN0c1N5bmMoZXhwZWN0ZWRJbmRleEZpbGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBMYW1iZGEgZnVuY3Rpb24gJHtiYWNrZW5kSWR9IGJ1bmRsZWQgY29kZSBub3QgZm91bmQgYXQ6ICR7ZXhwZWN0ZWRJbmRleEZpbGV9IG9yICR7cmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICdiYWNrZW5kJywgYmFja2VuZElkLCAnaW5kZXguanMnKX0uIGAgK1xuICAgICAgICAgICdQbGVhc2UgcnVuIFwibnBtIHJ1biBidWlsZDpsYW1iZGFzXCIgdG8gYnVuZGxlIHRoZSBMYW1iZGEgZnVuY3Rpb25zLidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc29sZS5sb2coXG4gICAgYPCfk6YgVXNpbmcgTGFtYmRhIGNvZGUgZm9yICR7YmFja2VuZElkfSAoaWQ9JHtpZH0pIGZyb206ICR7Y29kZUxvY2F0aW9ufWBcbiAgKTtcblxuICAvLyBHZXQgdGhlIGN1cnJlbnQgcmVnaW9uIGZvciB0aGUgTGFtYmRhIFBvd2VydG9vbHMgbGF5ZXJcbiAgY29uc3QgcmVnaW9uID0gU3RhY2sub2Yoc2NvcGUpLnJlZ2lvbjtcblxuICAvLyBBV1MgTGFtYmRhIFBvd2VydG9vbHMgbGF5ZXIgQVJOXG4gIC8vIFNlZTogaHR0cHM6Ly9kb2NzLnBvd2VydG9vbHMuYXdzLmRldi9sYW1iZGEvdHlwZXNjcmlwdC9sYXRlc3QvI2xhbWJkYS1sYXllclxuICBjb25zdCBwb3dlcnRvb2xzTGF5ZXJBcm4gPSBgYXJuOmF3czpsYW1iZGE6JHtyZWdpb259OjA5NDI3NDEwNTkxNTpsYXllcjpBV1NMYW1iZGFQb3dlcnRvb2xzVHlwZVNjcmlwdFYyOjIyYDtcblxuICAvLyBDaGVjayBpZiB3ZSdyZSBpbiBhIEZsb3dDb25maWdTdGFjayBhbmQgZ2V0IFZQQyBjb25maWd1cmF0aW9uXG4gIGNvbnN0IHN0YWNrID0gU3RhY2sub2Yoc2NvcGUpIGFzIEZsb3dDb25maWdTdGFjaztcbiAgY29uc3QgdnBjQ29uZmlnID0gc3RhY2suX2dldFJlc29sdmVkVnBjQ29uZmlnKCk7XG5cbiAgY29uc3QgZnVuYyA9IG5ldyBGdW5jdGlvbihzY29wZSwgYCR7aWR9RnVuY3Rpb25gLCB7XG4gICAgLy8gQXBwbHkgZGVmYXVsdHNcbiAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjJfWCxcbiAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgY29kZTogQ29kZS5mcm9tQXNzZXQoY29kZUxvY2F0aW9uKSxcbiAgICBsYXllcnM6IFtcbiAgICAgIExheWVyVmVyc2lvbi5mcm9tTGF5ZXJWZXJzaW9uQXJuKFxuICAgICAgICBzY29wZSxcbiAgICAgICAgYCR7aWR9UG93ZXJ0b29sc0xheWVyYCxcbiAgICAgICAgcG93ZXJ0b29sc0xheWVyQXJuXG4gICAgICApLFxuICAgIF0sXG4gICAgLy8gVlBDIGNvbmZpZ3VyYXRpb24gaWYgcHJvdmlkZWRcbiAgICAuLi4odnBjQ29uZmlnICYmIHtcbiAgICAgIHZwYzogdnBjQ29uZmlnLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0czogdnBjQ29uZmlnLnByaXZhdGVTdWJuZXRzIH0sXG4gICAgICBzZWN1cml0eUdyb3VwczogdnBjQ29uZmlnLmxhbWJkYVNlY3VyaXR5R3JvdXBzLFxuICAgIH0pLFxuICAgIC8vIEFwcGx5IG92ZXJyaWRlc1xuICAgIC4uLnByb3BzLFxuICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBsb2cgcmV0ZW50aW9uIGN1c3RvbSByZXNvdXJjZSBpcyBub3QgY3JlYXRlZFxuICAgIGxvZ1JldGVudGlvbjogdW5kZWZpbmVkLFxuICAgIGVudmlyb25tZW50OiB7XG4gICAgICAvLyBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvdHlwZXNjcmlwdC1leGNlcHRpb25zLmh0bWxcbiAgICAgIE5PREVfT1BUSU9OUzogJy0tZW5hYmxlLXNvdXJjZS1tYXBzJyxcbiAgICAgIC8vIExvZyBsZXZlbC4gRG8gbm90IGVtaXQgREVCVUcgaW4gcHJvZCBlbnZpcm9ubWVudCBiZWNhdXNlIGl0IHdpbGwgYmxvYXQgeW91ciBDVyBjb3N0c1xuICAgICAgUE9XRVJUT09MU19MT0dfTEVWRUw6ICdERUJVRycsXG4gICAgICAvLyBMb2cgaW5jb21pbmcgZXZlbnRcbiAgICAgIFBPV0VSVE9PTFNfTE9HR0VSX0xPR19FVkVOVDogJ3RydWUnLFxuICAgICAgQUxFUlRfVE9QSUNfQVJOOiBwcm9wcy5hbGVydFRvcGljPy50b3BpY0FybiA/PyAnTi9BJyxcbiAgICAgIC4uLnByb3BzLmVudmlyb25tZW50LFxuICAgIH0sXG4gIH0pO1xuXG4gIHByb3BzLmFsZXJ0VG9waWM/LmdyYW50UHVibGlzaChmdW5jKTtcblxuICAvLyBOb3RlOiB3ZSBhcmUgdXNpbmcgdGhpcyBwb2xpY3kgaW5zdGVhZCBvZiBsb2cuZ3JhbnRXcml0ZShmdW5jKSBiZWNhdXNlIHRoZSBmdW5jLmZ1bmN0aW9uTmFtZSBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuXG4gIC8vIFRvIGNvbnN0cmFpbiBMb2dHcm91cCBwZXJtaXNzaW9ucyBmdXJ0aGVyLCB5b3UgY2FuIHVzZSBhIHN0YXRpYyBmdW5jdGlvbk5hbWUgd2l0aCBsb2cuZ3JhbnRXcml0ZVxuICBmdW5jLnJvbGU/LmFkZE1hbmFnZWRQb2xpY3koXG4gICAgTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICB2cGNDb25maWdcbiAgICAgICAgPyAnc2VydmljZS1yb2xlL0FXU0xhbWJkYVZQQ0FjY2Vzc0V4ZWN1dGlvblJvbGUnXG4gICAgICAgIDogJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnXG4gICAgKVxuICApO1xuXG4gIC8vIENyZWF0ZSBhIHNlbGYtbWFuYWdlZCBsb2cgZ3JvdXBcbiAgbmV3IExvZ0dyb3VwKHNjb3BlLCBgJHtpZH1Mb2dHcm91cGAsIHtcbiAgICByZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBSZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICBsb2dHcm91cE5hbWU6IGAvYXdzL2xhbWJkYS8ke2Z1bmMuZnVuY3Rpb25OYW1lfWAsXG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICB9KTtcbiAgcmV0dXJuIGZ1bmM7XG59XG4iXX0=
|