@aws-solutions-constructs/core 2.96.0 → 2.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +7645 -2766
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/lib/constructs-feature-flags.js +3 -3
- package/lib/glue-job-helper.js +2 -2
- package/lib/textract-helper.d.ts +63 -0
- package/lib/textract-helper.js +220 -0
- package/lib/vpc-helper.d.ts +2 -1
- package/lib/vpc-helper.js +7 -1
- package/package.json +3 -3
- package/test/constructs-feature-flags.test.js +28 -4
- package/test/textract-helper.test.d.ts +13 -0
- package/test/textract-helper.test.js +857 -0
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -92,5 +92,6 @@ __exportStar(require("./lib/pipes-defaults"), exports);
|
|
|
92
92
|
__exportStar(require("./lib/pipes-helper"), exports);
|
|
93
93
|
__exportStar(require("./lib/bedrock-inference-helper"), exports);
|
|
94
94
|
__exportStar(require("./lib/translate-helper"), exports);
|
|
95
|
+
__exportStar(require("./lib/textract-helper"), exports);
|
|
95
96
|
__exportStar(require("./lib/constructs-feature-flags"), exports);
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxxREFBbUM7QUFDbkMsbURBQWlDO0FBQ2pDLDREQUEwQztBQUMxQywwREFBd0M7QUFDeEMsZ0VBQThDO0FBQzlDLDZEQUEyQztBQUMzQywyREFBeUM7QUFDekMseURBQXVDO0FBQ3ZDLHVEQUFxQztBQUNyQyxnRUFBOEM7QUFDOUMsbUVBQWlEO0FBQ2pELGlFQUErQztBQUMvQyxpRUFBK0M7QUFDL0MsK0RBQTZDO0FBQzdDLHFFQUFtRDtBQUNuRCw2RUFBMkQ7QUFDM0QscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyx3REFBc0M7QUFDdEMsc0RBQW9DO0FBQ3BDLDJEQUF5QztBQUN6Qyx5REFBdUM7QUFDdkMsZ0VBQThDO0FBQzlDLDhEQUE0QztBQUM1Qyw4REFBNEM7QUFDNUMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyxzREFBb0M7QUFDcEMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyx1RUFBcUQ7QUFDckQseUVBQXVEO0FBQ3ZELDhDQUE0QjtBQUM1Qiw2REFBMkM7QUFDM0MseURBQXVDO0FBQ3ZDLHVEQUFxQztBQUNyQywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MsOERBQTRDO0FBQzVDLHFEQUFtQztBQUNuQyxtREFBaUM7QUFDakMsMkRBQXlDO0FBQ3pDLHlEQUF1QztBQUN2QyxvRUFBa0Q7QUFDbEQsMERBQXdDO0FBQ3hDLHdEQUFzQztBQUN0Qyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLCtEQUE2QztBQUM3Qyw2REFBMkM7QUFDM0MscURBQW1DO0FBQ25DLG9FQUFrRDtBQUNsRCwyREFBeUM7QUFDekMscURBQW1DO0FBQ25DLG1EQUFpQztBQUNqQyw0REFBMEM7QUFDMUMsMERBQXdDO0FBQ3hDLHNEQUFvQztBQUNwQywrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLHVEQUFxQztBQUNyQyxxREFBbUM7QUFDbkMsaUVBQStDO0FBQy9DLHlEQUF1QztBQUN2Qyx3REFBc0M7QUFDdEMsaUVBQStDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWxiLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FsYi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpZ2F0ZXdheS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlnYXRld2F5LWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9keW5hbW9kYi10YWJsZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGFzdGljYWNoZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGFzdGljYWNoZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmFyZ2F0ZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mYXJnYXRlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pb3QtdG9waWMtcnVsZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9raW5lc2lzLWFuYWx5dGljcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9raW5lc2lzLWFuYWx5dGljcy1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1zdHJlYW1zLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tpbmVzaXMtc3RyZWFtcy1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva2luZXNpcy1maXJlaG9zZS1zMy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYW1iZGEtZXZlbnQtc291cmNlLW1hcHBpbmctZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIva21zLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ttcy1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGFtYmRhLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xhbWJkYS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvczMtYnVja2V0LWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3MzLWJ1Y2tldC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VjcmV0c21hbmFnZXItZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VjcmV0c21hbmFnZXItaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlY3VyaXR5LWdyb3VwLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zbnMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc25zLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zMy1vYWMtb3JpZ2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Nxcy1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcXMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ldmVudHMtcnVsZS1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb2duaXRvLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvZ25pdG8taGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsYXN0aWNzZWFyY2gtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxhc3RpY3NlYXJjaC1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RlcC1mdW5jdGlvbi1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGVwLWZ1bmN0aW9uLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9keW5hbW9kYi10YWJsZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdnBjLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZwYy1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2FnZW1ha2VyLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NhZ2VtYWtlci1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xvdWR3YXRjaC1sb2ctZ3JvdXAtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsdWUtam9iLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsdWUtam9iLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHVlLXRhYmxlLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsdWUtdGFibGUtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dsdWUtZGF0YWJhc2UtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x1ZS1kYXRhYmFzZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi90ZXN0L3Rlc3QtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzbS1zdHJpbmctcGFyYW1ldGVyLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ldmVudGJyaWRnZS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2FmLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dhZi1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvb3BlbnNlYXJjaC1kZWZhdWx0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcGVuc2VhcmNoLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9rZW5kcmEtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dlYnNvY2tldC1hcGktZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvd2Vic29ja2V0LWFwaS1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMtZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JlZHJvY2staW5mZXJlbmNlLWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2xhdGUtaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RleHRyYWN0LWhlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdHJ1Y3RzLWZlYXR1cmUtZmxhZ3MnO1xuIl19
|
|
@@ -26,8 +26,8 @@ const QUEUE_USE_SSE = "@aws-solutions-constructs/aws-sqs:QueueUseSse";
|
|
|
26
26
|
*/
|
|
27
27
|
class ConstructsFeatureFlagsReport extends constructs_1.Construct {
|
|
28
28
|
static ensure(scope) {
|
|
29
|
-
const app =
|
|
30
|
-
if (!app) {
|
|
29
|
+
const app = scope.node.root;
|
|
30
|
+
if (!app || !aws_cdk_lib_1.App.isApp(app)) {
|
|
31
31
|
throw new Error('Invalid scope provided to ConstructsFeatureFlagsReport');
|
|
32
32
|
}
|
|
33
33
|
const id = 'AwsSolutionsFeatureFlagsReport';
|
|
@@ -60,4 +60,4 @@ class ConstructsFeatureFlagsReport extends constructs_1.Construct {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
exports.ConstructsFeatureFlagsReport = ConstructsFeatureFlagsReport;
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0cy1mZWF0dXJlLWZsYWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RydWN0cy1mZWF0dXJlLWZsYWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7OztHQUdHO0FBRUgsMkNBQXVDO0FBQ3ZDLDZDQUE0RTtBQUM1RSwwRUFBMkU7QUFFM0UsTUFBTSxhQUFhLEdBQUcsK0NBQStDLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxNQUFhLDRCQUE2QixTQUFRLHNCQUFTO0lBRWxELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBZ0I7UUFDbkMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxNQUFNLEVBQUUsR0FBRyxnQ0FBZ0MsQ0FBQztRQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLDRCQUE0QixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW9CLEtBQWdCLEVBQUUsRUFBVTtRQUM5QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUEsbUNBQXFCLEVBQUMsSUFBSSxFQUFFO1lBQzFCLFlBQVksRUFBRSxDQUFDLE9BQTBCLEVBQUUsRUFBRTtnQkFDM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsK0NBQStDLEVBQUU7b0JBQzVFLElBQUksRUFBRSxvQ0FBWSxDQUFDLG1CQUFtQjtvQkFDdEMsVUFBVSxFQUFFO3dCQUNWLE1BQU0sRUFBRSwyQkFBMkI7d0JBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7cUJBQ2pDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLE9BQU87WUFDTCxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUNmLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLFdBQVcsRUFBRSx1R0FBdUc7Z0JBQ3BILFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7YUFDbEQ7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNKO0FBdENELG9FQXNDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBcHAsIGF0dGFjaEN1c3RvbVN5bnRoZXNpcywgSVN5bnRoZXNpc1Nlc3Npb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBBcnRpZmFjdFR5cGUsIEZlYXR1cmVGbGFnIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcblxuY29uc3QgUVVFVUVfVVNFX1NTRSA9IFwiQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9hd3Mtc3FzOlF1ZXVlVXNlU3NlXCI7XG5cbi8qKlxuICogQSBDREsgTDMgY29uc3RydWN0IHRoYXQgY3JlYXRlcyByZXNvdXJjZXMgZm9yIFNvbHV0aW9ucyBGZWF0dXJlIEZsYWdzIHJlcG9ydGluZ1xuICovXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0c0ZlYXR1cmVGbGFnc1JlcG9ydCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgcHVibGljIHN0YXRpYyBlbnN1cmUoc2NvcGU6IENvbnN0cnVjdCkge1xuICAgIGNvbnN0IGFwcCA9IHNjb3BlLm5vZGUucm9vdDtcbiAgICBpZiAoIWFwcCB8fCAhQXBwLmlzQXBwKGFwcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzY29wZSBwcm92aWRlZCB0byBDb25zdHJ1Y3RzRmVhdHVyZUZsYWdzUmVwb3J0Jyk7XG4gICAgfVxuICAgIGNvbnN0IGlkID0gJ0F3c1NvbHV0aW9uc0ZlYXR1cmVGbGFnc1JlcG9ydCc7XG4gICAgaWYgKCFhcHAubm9kZS50cnlGaW5kQ2hpbGQoaWQpKSB7XG4gICAgICBuZXcgQ29uc3RydWN0c0ZlYXR1cmVGbGFnc1JlcG9ydChhcHAsIGlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgYXR0YWNoQ3VzdG9tU3ludGhlc2lzKHRoaXMsIHtcbiAgICAgIG9uU3ludGhlc2l6ZTogKHNlc3Npb246IElTeW50aGVzaXNTZXNzaW9uKSA9PiB7XG4gICAgICAgIHNlc3Npb24uYXNzZW1ibHkuYWRkQXJ0aWZhY3QoXCJAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2ZlYXR1cmUtZmxhZy1yZXBvcnRcIiwge1xuICAgICAgICAgIHR5cGU6IEFydGlmYWN0VHlwZS5GRUFUVVJFX0ZMQUdfUkVQT1JULFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIG1vZHVsZTogJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMnLFxuICAgICAgICAgICAgZmxhZ3M6IHRoaXMuR2V0RmxhZ0RlZmluaXRpb25zKClcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBHZXRGbGFnRGVmaW5pdGlvbnMoKTogUmVjb3JkIDwgc3RyaW5nLCBGZWF0dXJlRmxhZyA+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtRVUVVRV9VU0VfU1NFXToge1xuICAgICAgICAgIHJlY29tbWVuZGVkVmFsdWU6IHRydWUsXG4gICAgICAgICAgZXhwbGFuYXRpb246IFwiQ2hhbmdlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciB0aGUgY29uc3RydWN0IHRvIGVuY3J5cHQgdGhlIHF1ZXVlIHVzaW5nIFNlcnZlciBTaWRlIEVuY3J5cHRpb24gKFNTRSlcIixcbiAgICAgICAgICB1c2VyVmFsdWU6IHRoaXMubm9kZS50cnlHZXRDb250ZXh0KFFVRVVFX1VTRV9TU0UpXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxufVxuIl19
|
package/lib/glue-job-helper.js
CHANGED
|
@@ -98,7 +98,7 @@ function deployGlueJob(scope, glueJobProps, database, table, outputDataStore, et
|
|
|
98
98
|
]
|
|
99
99
|
});
|
|
100
100
|
const jobRole = glueJobProps.role ?
|
|
101
|
-
aws_iam_1.Role.fromRoleArn(scope, 'JobRole', glueJobProps.role) :
|
|
101
|
+
aws_iam_1.Role.fromRoleArn(scope, 'JobRole', (typeof glueJobProps.role === "string") ? glueJobProps.role : glueJobProps.role.roleArn) :
|
|
102
102
|
defaults.createGlueJobRole(scope);
|
|
103
103
|
glueJobPolicy.attachToRole(jobRole);
|
|
104
104
|
let outputLocation;
|
|
@@ -207,4 +207,4 @@ function isJobCommandProperty(command) {
|
|
|
207
207
|
return false;
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1qb2ItaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2x1ZS1qb2ItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBNkZILG9DQTBCQztBQVlELHNDQXFGQztBQVVELDhDQUtDO0FBT0QsMENBSUM7QUFXRCxnREFJQztBQXpQRCw2Q0FBNkM7QUFDN0MsaURBQXFHO0FBQ3JHLCtDQUFrRTtBQUNsRSw2Q0FBK0M7QUFFL0MsZ0NBQWdDO0FBQ2hDLG1DQUF3QztBQUd4Qzs7O0dBR0c7QUFDSCxJQUFZLGFBRVg7QUFGRCxXQUFZLGFBQWE7SUFDdkIsMEJBQVMsQ0FBQTtBQUNYLENBQUMsRUFGVyxhQUFhLDZCQUFiLGFBQWEsUUFFeEI7QUFtRUQ7O0dBRUc7QUFDSCxTQUFnQixZQUFZLENBQUMsS0FBZ0IsRUFBRSxLQUF3QjtJQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQy9FLE1BQU0sS0FBSyxDQUFDLG1HQUFtRztvQkFDL0csMEdBQTBHLENBQUMsQ0FBQztZQUM5RyxDQUFDO1lBRUQsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDNUcsTUFBTSxLQUFLLENBQUMscUdBQXFHO29CQUNqSCw2REFBNkQsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFFRCxNQUFNLHFCQUFxQixHQUN6QixhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFB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QUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgZ2x1ZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgeyBFZmZlY3QsIElSb2xlLCBQb2xpY3ksIFBvbGljeVN0YXRlbWVudCwgUm9sZSwgU2VydmljZVByaW5jaXBhbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQnVja2V0LCBCdWNrZXRQcm9wcywgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBBd3MsIElSZXNvbHZhYmxlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgczNhc3NldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1hc3NldHNcIjtcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJy4uLyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCdWlsZFMzQnVja2V0UmVzcG9uc2UgfSBmcm9tICcuLi8nO1xuXG4vKipcbiAqIEVudW1lcmF0aW9uIG9mIGRhdGEgc3RvcmUgdHlwZXMgdGhhdCBjb3VsZCBpbmNsdWRlIFMzLCBEeW5hbW9EQiwgRG9jdW1lbnREQiwgUkRTIG9yIFJlZHNoaWZ0LiBDdXJyZW50XG4gKiBjb25zdHJ1Y3QgaW1wbGVtZW50YXRpb24gb25seSBzdXBwb3J0cyBTMywgYnV0IHBvdGVudGlhbCB0byBhZGQgb3RoZXIgb3V0cHV0IHR5cGVzIGluIHRoZSBmdXR1cmVcbiAqL1xuZXhwb3J0IGVudW0gU2lua1N0b3JlVHlwZSB7XG4gIFMzID0gJ1MzJ1xufVxuXG4vKipcbiAqIEludGVyZmFjZSB0byBkZWZpbmUgcG90ZW50aWFsIG91dHB1dHMgdG8gYWxsb3cgdGhlIGNvbnN0cnVjdCBkZWZpbmUgYWRkaXRpb25hbCBvdXRwdXQgZGVzdGluYXRpb25zIGZvciBFVExcbiAqIHRyYW5zZm9ybWF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lua0RhdGFTdG9yZVByb3BzIHtcbiAgLyoqXG4gICAqIFNpbmsgZGF0YSBzdG9yZSB0eXBlXG4gICAqL1xuICByZWFkb25seSBkYXRhc3RvcmVUeXBlOiBTaW5rU3RvcmVUeXBlO1xuICAvKipcbiAgICogVGhlIG91dHB1dCBTMyBsb2NhdGlvbiB3aGVyZSB0aGUgZGF0YSBzaG91bGQgYmUgd3JpdHRlbi4gVGhlIHByb3ZpZGVkIFMzIGJ1Y2tldCB3aWxsIGJlIHVzZWQgdG8gcGFzc1xuICAgKiB0aGUgb3V0cHV0IGxvY2F0aW9uIHRvIHRoZSBldGwgc2NyaXB0IGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBBV1MgR2x1ZSBqb2IuXG4gICAqXG4gICAqIElmIG5vIGxvY2F0aW9uIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGNoZWNrIGlmIEBvdXRwdXRCdWNrZXRQcm9wcyBhcmUgcHJvdmlkZWQuIElmIG5vdCBpdCB3aWxsIGNyZWF0ZSBhIG5ld1xuICAgKiBidWNrZXQgaWYgdGhlIEBkYXRhc3RvcmVUeXBlIGlzIFMzLlxuICAgKlxuICAgKiBUaGUgYXJndW1lbnQga2V5IGlzIGBvdXRwdXRfcGF0aGAuIFRoZSB2YWx1ZSBvZiB0aGUgYXJndW1lbnQgY2FuIGJlIHJldHJpZXZlIGluIHRoZSBweXRob24gc2NyaXB0XG4gICAqIGFzIGZvbGxvd3M6XG4gICAqICBnZXRSZXNvbHZlZE9wdGlvbnMoc3lzLmFyZ3YsIFtcIkpPQl9OQU1FXCIsIFwib3V0cHV0X3BhdGhcIiwgPG90aGVyIGFyZ3VtZW50cyB0aGF0IGFyZSBwYXNzZWQ+IF0pXG4gICAqICBvdXRwdXRfcGF0aCA9IGFyZ3NbXCJvdXRwdXRfcGF0aFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdTM091dHB1dEJ1Y2tldD86IEJ1Y2tldFxuICAvKipcbiAgICogSWYgQGV4aXN0aW5nUzNPdXRwdXRCVWNrZXQgaXMgcHJvdmlkZWQsIHRoaXMgcGFyYW1ldGVyIGlzIGlnbm9yZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBwcm92aWRlZCxcbiAgICogdGhlIGNvbnN0cnVjdCB3aWxsIGNyZWF0ZSBhIG5ldyBidWNrZXQgaWYgdGhlIEBkYXRhc3RvcmVUeXBlIGlzIFMzLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0QnVja2V0UHJvcHM/OiBCdWNrZXRQcm9wcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZEdsdWVKb2JQcm9wcyB7XG4gIC8qKlxuICAgKiBHbHVlIEVUTCBqb2IgcHJvcGVydGllcy5cbiAgICovXG4gIHJlYWRvbmx5IGdsdWVKb2JQcm9wcz86IGdsdWUuQ2ZuSm9iUHJvcHMgfCBhbnlcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIHRoZSBTMyBidWNrZXQgb2JqZWN0LCBpZiB0aGlzIGlzIHNldCB0aGVuIHRoZSBzY3JpcHQgbG9jYXRpb24gaXMgaWdub3JlZC5cbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nQ2ZuSm9iPzogZ2x1ZS5DZm5Kb2I7XG4gIC8qKlxuICAgKiBBV1MgR2x1ZSB0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGU6IGdsdWUuQ2ZuVGFibGU7XG4gIC8qKlxuICAgKiBBV1MgR2x1ZSBkYXRhYmFzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2U6IGdsdWUuQ2ZuRGF0YWJhc2U7XG4gIC8qKlxuICAgKiBPdXRwdXQgc3RvcmFnZSBvcHRpb25zXG4gICAqL1xuICByZWFkb25seSBvdXRwdXREYXRhU3RvcmU/OiBTaW5rRGF0YVN0b3JlUHJvcHNcbiAgLyoqXG4gICAqIEFzc2V0IGluc3RhbmNlIGZvciB0aGUgRVRMIGNvZGUgdGhhdCBwZXJmb3JtcyBHbHVlIEpvYiB0cmFuc2Zvcm1hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gICByZWFkb25seSBldGxDb2RlQXNzZXQ/OiBzM2Fzc2V0cy5Bc3NldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZEdsdWVKb2JSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGpvYjogZ2x1ZS5DZm5Kb2IsXG4gIHJlYWRvbmx5IHJvbGU6IElSb2xlLFxuICByZWFkb25seSBidWNrZXQ/OiBCdWNrZXQsXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBCdWNrZXQsXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR2x1ZUpvYihzY29wZTogQ29uc3RydWN0LCBwcm9wczogQnVpbGRHbHVlSm9iUHJvcHMpOiBCdWlsZEdsdWVKb2JSZXNwb25zZSB7XG4gIGlmICghcHJvcHMuZXhpc3RpbmdDZm5Kb2IpIHtcbiAgICBpZiAocHJvcHMuZ2x1ZUpvYlByb3BzKSB7XG4gICAgICBpZiAocHJvcHMuZ2x1ZUpvYlByb3BzLmdsdWVWZXJzaW9uID09PSAnMi4wJyAmJiBwcm9wcy5nbHVlSm9iUHJvcHMubWF4Q2FwYWNpdHkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0Nhbm5vdCBzZXQgXCJNYXhDYXBhY2l0eVwiIHdpdGggR2x1ZVZlcnNpb24gMi4wIG9yIGhpZ2hlci4gVXNlIFwiTnVtYmVyT2ZXb3JrZXJzXCIgYW5kIFwiV29ya2VyVHlwZVwiLiAnICtcbiAgICAgICAgJ1JlZmVyIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3Qvd2ViYXBpL0FQSV9Kb2IuaHRtbCBmb3IgbW9yZSBkZXRhaWxzJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wcy5nbHVlSm9iUHJvcHMubWF4Q2FwYWNpdHkgJiYgKHByb3BzLmdsdWVKb2JQcm9wcy5udW1iZXJPZldvcmtlcnMgfHwgcHJvcHMuZ2x1ZUpvYlByb3BzLndvcmtlclR5cGUpKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdDYW5ub3Qgc2V0IE1heENhcGFjaXR5IGFuZCBcIldvcmtlclR5cGVcIiBvciAgXCJOdW1iZXJPZldvcmtlcnNcIi4gSWYgdXNpbmcgZ2x1ZVZlcnNpb24gMi4wIG9yIGJleW9uZCwgJyArXG4gICAgICAgICdpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgXCJXb3JrZXJUeXBlXCIgb3IgIFwiTnVtYmVyT2ZXb3JrZXJzXCInKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVwbG95R2x1ZUpvYlJlc3BvbnNlID1cbiAgICAgICAgZGVwbG95R2x1ZUpvYihzY29wZSwgcHJvcHMuZ2x1ZUpvYlByb3BzLCBwcm9wcy5kYXRhYmFzZSwgcHJvcHMudGFibGUsIHByb3BzLm91dHB1dERhdGFTdG9yZSEsIHByb3BzLmV0bENvZGVBc3NldCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBqb2I6IGRlcGxveUdsdWVKb2JSZXNwb25zZS5qb2IsXG4gICAgICAgIHJvbGU6IGRlcGxveUdsdWVKb2JSZXNwb25zZS5yb2xlLFxuICAgICAgICBidWNrZXQ6IGRlcGxveUdsdWVKb2JSZXNwb25zZS5idWNrZXQsXG4gICAgICAgIGxvZ2dpbmdCdWNrZXQ6IGRlcGxveUdsdWVKb2JSZXNwb25zZS5sb2dnaW5nQnVja2V0IH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKCdFaXRoZXIgZ2x1ZUpvYlByb3BzIG9yIGV4aXN0aW5nQ2ZuSm9iIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IGpvYjogcHJvcHMuZXhpc3RpbmdDZm5Kb2IsIHJvbGU6IFJvbGUuZnJvbVJvbGVBcm4oc2NvcGUsICdFeGlzdGluZ1JvbGUnLCBwcm9wcy5leGlzdGluZ0NmbkpvYi5yb2xlKX07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lHbHVlSm9iUmVzcG9uc2Uge1xuICByZWFkb25seSBqb2I6IGdsdWUuQ2ZuSm9iLFxuICByZWFkb25seSByb2xlOiBJUm9sZSxcbiAgcmVhZG9ubHkgYnVja2V0PzogQnVja2V0LFxuICByZWFkb25seSBsb2dnaW5nQnVja2V0PzogQnVja2V0LFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXBsb3lHbHVlSm9iKHNjb3BlOiBDb25zdHJ1Y3QsIGdsdWVKb2JQcm9wczogZ2x1ZS5DZm5Kb2JQcm9wcywgZGF0YWJhc2U6IGdsdWUuQ2ZuRGF0YWJhc2UsIHRhYmxlOiBnbHVlLkNmblRhYmxlLFxuICBvdXRwdXREYXRhU3RvcmU6IFNpbmtEYXRhU3RvcmVQcm9wcywgZXRsQ29kZUFzc2V0PzogczNhc3NldHMuQXNzZXQpOiBEZXBsb3lHbHVlSm9iUmVzcG9uc2Uge1xuXG4gIGxldCBnbHVlU2VjdXJpdHlDb25maWdOYW1lOiBzdHJpbmc7XG5cbiAgaWYgKGdsdWVKb2JQcm9wcy5zZWN1cml0eUNvbmZpZ3VyYXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgIGdsdWVTZWN1cml0eUNvbmZpZ05hbWUgPSBgRVRMSm9iU2VjdXJpdHlDb25maWcke0F3cy5TVEFDS19JRH1gO1xuICAgIGNvbnN0IGdsdWVLTVNLZXkgPSBgYXJuOiR7QXdzLlBBUlRJVElPTn06a21zOiR7QXdzLlJFR0lPTn06JHtBd3MuQUNDT1VOVF9JRH06YWxpYXMvYXdzL2dsdWVgO1xuXG4gICAgY29uc3Qgc2VjdXJpdHlDb25maWd1cmF0aW9uUHJvcHM6IGdsdWUuQ2ZuU2VjdXJpdHlDb25maWd1cmF0aW9uUHJvcHMgPSB7XG4gICAgICBuYW1lOiBnbHVlU2VjdXJpdHlDb25maWdOYW1lLFxuICAgICAgZW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgam9iQm9va21hcmtzRW5jcnlwdGlvbjoge1xuICAgICAgICAgIGpvYkJvb2ttYXJrc0VuY3J5cHRpb25Nb2RlOiAnQ1NFLUtNUycsXG4gICAgICAgICAga21zS2V5QXJuOiBnbHVlS01TS2V5XG4gICAgICAgIH0sXG4gICAgICAgIHMzRW5jcnlwdGlvbnM6IFt7XG4gICAgICAgICAgczNFbmNyeXB0aW9uTW9kZTogJ1NTRS1TMydcbiAgICAgICAgfV1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gQmVmb3JlIHR1cm5pbmcgb2ZmIFNvbmFyUXViZSBmb3IgdGhlIGxpbmUsIHJlZHVjZSB0aGUgbGluZSB0byBpdCdzIG1pbmltdW1cbiAgICBuZXcgZ2x1ZS5DZm5TZWN1cml0eUNvbmZpZ3VyYXRpb24oc2NvcGUsICdHbHVlU2VjdXJpdHlDb25maWcnLCBzZWN1cml0eUNvbmZpZ3VyYXRpb25Qcm9wcyk7ICAvLyBOT1NPTkFSXG5cbiAgfSBlbHNlIHtcbiAgICBnbHVlU2VjdXJpdHlDb25maWdOYW1lID0gZ2x1ZUpvYlByb3BzLnNlY3VyaXR5Q29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIGNvbnN0IGdsdWVKb2JQb2xpY3kgPSBuZXcgUG9saWN5KHNjb3BlLCAnTG9nUG9saWN5Jywge1xuICAgIHN0YXRlbWVudHM6IFtcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWyAnbG9nczpDcmVhdGVMb2dHcm91cCcsICdsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsICdsb2dzOlB1dExvZ0V2ZW50cycgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbIGBhcm46JHtBd3MuUEFSVElUSU9OfTpsb2dzOiR7QXdzLlJFR0lPTn06JHtBd3MuQUNDT1VOVF9JRH06bG9nLWdyb3VwOi9hd3MtZ2x1ZS8qYCBdXG4gICAgICB9KVxuICAgIF1cbiAgfSk7XG5cbiAgY29uc3Qgam9iUm9sZSA9IGdsdWVKb2JQcm9wcy5yb2xlID9cbiAgICBSb2xlLmZyb21Sb2xlQXJuKHNjb3BlLCAnSm9iUm9sZScsIGdsdWVKb2JQcm9wcy5yb2xlKSA6XG4gICAgZGVmYXVsdHMuY3JlYXRlR2x1ZUpvYlJvbGUoc2NvcGUpO1xuXG4gIGdsdWVKb2JQb2xpY3kuYXR0YWNoVG9Sb2xlKGpvYlJvbGUpO1xuXG4gIGxldCBvdXRwdXRMb2NhdGlvbjogQnVpbGRTM0J1Y2tldFJlc3BvbnNlO1xuICBpZiAob3V0cHV0RGF0YVN0b3JlICE9PSB1bmRlZmluZWQgJiYgb3V0cHV0RGF0YVN0b3JlLmRhdGFzdG9yZVR5cGUgPT09IFNpbmtTdG9yZVR5cGUuUzMpIHtcbiAgICBpZiAob3V0cHV0RGF0YVN0b3JlLmV4aXN0aW5nUzNPdXRwdXRCdWNrZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3V0cHV0TG9jYXRpb24gPSB7IGJ1Y2tldDogb3V0cHV0RGF0YVN0b3JlLmV4aXN0aW5nUzNPdXRwdXRCdWNrZXQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0TG9jYXRpb24gPSBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHNjb3BlLCB7IGJ1Y2tldFByb3BzOiBvdXRwdXREYXRhU3RvcmUub3V0cHV0QnVja2V0UHJvcHMgfSApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvdXRwdXRMb2NhdGlvbiA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc2NvcGUsIHt9KTtcbiAgfVxuXG4gIG91dHB1dExvY2F0aW9uLmJ1Y2tldC5ncmFudFJlYWRXcml0ZShqb2JSb2xlKTtcblxuICBjb25zdCBqb2JBcmd1bWVudHNMaXN0ID0ge1xuICAgIFwiLS1lbmFibGUtbWV0cmljc1wiIDogdHJ1ZSxcbiAgICBcIi0tZW5hYmxlLWNvbnRpbnVvdXMtY2xvdWR3YXRjaC1sb2dcIiA6IHRydWUsXG4gICAgXCItLWRhdGFiYXNlX25hbWVcIjogZGF0YWJhc2UucmVmLFxuICAgIFwiLS10YWJsZV9uYW1lXCI6IHRhYmxlLnJlZixcbiAgICAuLi4oKG91dHB1dERhdGFTdG9yZSA9PT0gdW5kZWZpbmVkIHx8IChvdXRwdXREYXRhU3RvcmUgJiYgb3V0cHV0RGF0YVN0b3JlLmRhdGFzdG9yZVR5cGUgPT09IFNpbmtTdG9yZVR5cGUuUzMpKSAmJlxuICAgICAgeyAnLS1vdXRwdXRfcGF0aCcgOiBgczNhOi8vJHtvdXRwdXRMb2NhdGlvbi5idWNrZXQuYnVja2V0TmFtZX0vb3V0cHV0L2AgfSksXG4gICAgLi4uZ2x1ZUpvYlByb3BzLmRlZmF1bHRBcmd1bWVudHNcbiAgfTtcblxuICBjb25zdCBuZXdHbHVlSm9iUHJvcHM6IGdsdWUuQ2ZuSm9iUHJvcHMgPSBvdmVycmlkZVByb3BzKGRlZmF1bHRzLkRlZmF1bHRHbHVlSm9iUHJvcHMoam9iUm9sZSwgZ2x1ZUpvYlByb3BzLFxuICAgIGdsdWVTZWN1cml0eUNvbmZpZ05hbWUsIGpvYkFyZ3VtZW50c0xpc3QsIGV0bENvZGVBc3NldCksIGdsdWVKb2JQcm9wcyk7XG4gIGlmIChldGxDb2RlQXNzZXQpIHtcbiAgICBldGxDb2RlQXNzZXQuZ3JhbnRSZWFkKGpvYlJvbGUpO1xuICB9IGVsc2Uge1xuICAgIC8vIGNyZWF0ZSBDREsgQnVja2V0IGluc3RhbmNlIGZyb20gUzMgdXJsIGFuZCBncmFudCByZWFkIGFjY2VzcyB0byBHbHVlIEpvYidzIHNlcnZpY2UgcHJpbmNpcGFsXG4gICAgaWYgKGlzSm9iQ29tbWFuZFByb3BlcnR5KG5ld0dsdWVKb2JQcm9wcy5jb21tYW5kKSkge1xuICAgICAgY29uc3Qgc2NyaXB0TG9jYXRpb24gPSBuZXdHbHVlSm9iUHJvcHMuY29tbWFuZC5zY3JpcHRMb2NhdGlvbjtcblxuICAgICAgLy8gSW5jb21pbmcgUHJvcHMsIGluY2x1ZGluZyBzY3JpcHRMb2NhdGlvbiwgYXJlIGNoZWNrZWQgdXBzdHJlYW0gaW4gQ2hlY2tHbHVlUHJvcHMoKVxuICAgICAgY29uc3Qgc2NyaXB0QnVja2V0TG9jYXRpb246IElCdWNrZXQgPSBCdWNrZXQuZnJvbUJ1Y2tldEFybihzY29wZSwgJ1NjcmlwdExvY2F0aW9uJywgZ2V0UzNBcm5mcm9tUzNVcmwoc2NyaXB0TG9jYXRpb24hKSk7XG4gICAgICBzY3JpcHRCdWNrZXRMb2NhdGlvbi5ncmFudFJlYWQoam9iUm9sZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2x1ZUpvYjogZ2x1ZS5DZm5Kb2IgPSBuZXcgZ2x1ZS5DZm5Kb2Ioc2NvcGUsICdLaW5lc2lzRVRMSm9iJywgbmV3R2x1ZUpvYlByb3BzKTtcbiAgcmV0dXJuICB7IGpvYjogZ2x1ZUpvYiwgcm9sZTogam9iUm9sZSwgYnVja2V0OiBvdXRwdXRMb2NhdGlvbi5idWNrZXQsIGxvZ2dpbmdCdWNrZXQ6IG91dHB1dExvY2F0aW9uLmxvZ2dpbmdCdWNrZXQgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIFRoaXMgaXMgYSBoZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSB0aGUgUm9sZSByZXF1aXJlZCBmb3IgdGhlIEdsdWUgSm9iLiBJZiBhIHJvbGUgaXMgYWxyZWFkeSBjcmVhdGVkIHRoZW4gdGhpc1xuICogbWV0aG9kIGlzIG5vdCByZXF1aXJlZCB0byBiZSBjYWxsZWQuXG4gKlxuICogQHBhcmFtIHNjb3BlIC0gVGhlIEFXUyBDb25zdHJ1Y3QgdW5kZXIgd2hpY2ggdGhlIHJvbGUgaXMgdG8gYmUgY3JlYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR2x1ZUpvYlJvbGUoc2NvcGU6IENvbnN0cnVjdCk6IFJvbGUge1xuICByZXR1cm4gbmV3IFJvbGUoc2NvcGUsICdKb2JSb2xlJywge1xuICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2dsdWUuYW1hem9uYXdzLmNvbScpLFxuICAgIGRlc2NyaXB0aW9uOiAnU2VydmljZSByb2xlIHRoYXQgR2x1ZSBjdXN0b20gRVRMIGpvYnMgd2lsbCBhc3N1bWUgZm9yIGV4ZWN1dGlvbicsXG4gIH0pO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKlxuICogVGhpcyBtZXRob2QgY3JlYXRlcyBhbiBBV1MgR2x1ZSB0YWJsZS4gVGhlIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiBhbiBleGlzdGluZyBHbHVlIHRhYmxlIGlzIG5vdCBwcm92aWRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR2x1ZVRhYmxlKHNjb3BlOiBDb25zdHJ1Y3QsIGRhdGFiYXNlOiBnbHVlLkNmbkRhdGFiYXNlLCB0YWJsZVByb3BzPzogZ2x1ZS5DZm5UYWJsZVByb3BzLFxuICBmaWVsZFNjaGVtYT86IGdsdWUuQ2ZuVGFibGUuQ29sdW1uUHJvcGVydHkgW10sIHNvdXJjZVR5cGU/OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkpOiBnbHVlLkNmblRhYmxlIHtcbiAgcmV0dXJuIGRlZmF1bHRzLkRlZmF1bHRHbHVlVGFibGUoc2NvcGUsIHRhYmxlUHJvcHMgIT09IHVuZGVmaW5lZCA/IHRhYmxlUHJvcHMgOlxuICAgIGRlZmF1bHRzLkRlZmF1bHRHbHVlVGFibGVQcm9wcyhkYXRhYmFzZSwgZmllbGRTY2hlbWEhLCBzb3VyY2VUeXBlLCBwYXJhbWV0ZXJzKSk7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGFuIEFXUyBHbHVlIGRhdGFiYXNlLiBUaGUgbWV0aG9kIGlzIG9ubHkgY2FsbGVkIHdpdGggYW4gZXhpc3RpbmcgR2x1ZSBkYXRhYmFzZSB0eXBlIGlzIG5vdCBwcm92aWRlZC5cbiAqIFRoZSBtZXRob2QgdXNlcyB0aGUgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIEdsdWUgZGF0YWJhc2VcbiAqXG4gKiBAcGFyYW0gc2NvcGVcbiAqIEBwYXJhbSBkYXRhYmFzZVByb3BzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHbHVlRGF0YWJhc2Uoc2NvcGU6IENvbnN0cnVjdCwgIGRhdGFiYXNlUHJvcHM/OiBnbHVlLkNmbkRhdGFiYXNlUHJvcHMpOiBnbHVlLkNmbkRhdGFiYXNlIHtcbiAgY29uc3QgbWVyZ2VkREJQcm9wczogZ2x1ZS5DZm5EYXRhYmFzZVByb3BzID0gKGRhdGFiYXNlUHJvcHMgIT09IHVuZGVmaW5lZCkgPyBvdmVycmlkZVByb3BzKGRlZmF1bHRzLkRlZmF1bHRHbHVlRGF0YWJhc2VQcm9wcygpLCBkYXRhYmFzZVByb3BzKSA6XG4gICAgZGVmYXVsdHMuRGVmYXVsdEdsdWVEYXRhYmFzZVByb3BzKCk7XG4gIHJldHVybiBkZWZhdWx0cy5EZWZhdWx0R2x1ZURhdGFiYXNlKHNjb3BlLCBtZXJnZWREQlByb3BzKTtcbn1cblxuLyoqXG4gKiBBIHV0aWxpdHkgbWV0aG9kIHRvIGdlbmVyYXRlIHRoZSBTMyBBcm4gZnJvbSBhbiBTMyBVcmwuXG4gKlxuICogQHBhcmFtIHMzVXJsXG4gKi9cbmZ1bmN0aW9uIGdldFMzQXJuZnJvbVMzVXJsKHMzVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoczNVcmwgJiYgczNVcmwuc3RhcnRzV2l0aCgnczM6Ly8nKSkge1xuICAgIGNvbnN0IHNwbGl0U3RyaW5nOiBzdHJpbmcgPSBzM1VybC5zbGljZSgnczM6Ly8nLmxlbmd0aCk7XG4gICAgcmV0dXJuIGBhcm46JHtBd3MuUEFSVElUSU9OfTpzMzo6OiR7c3BsaXRTdHJpbmd9YDtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBFcnJvcihgUmVjZWl2ZWQgUzNVUkwgYXMgJHtzM1VybH0uIFRoZSBTMyB1cmwgc3RyaW5nIGRvZXMgbm90IGJlZ2luIHdpdGggczM6Ly8uIFRoaXMgaXMgbm90IGEgc3RhbmRhcmQgUzMgdXJsYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHV0aWxpdHkgbWV0aG9kIHRvIHR5cGUgY2hlY2sgQ2ZuSm9iLkpvYkNvbW1hbmRQcm9wZXJ0eSB0eXBlLiBGb3IgdGhlIGNvbnN0cnVjdCB0byB3b3JrIGZvciBzdHJlYW1pbmcgRVRMIGZyb20gS2luZXNpcyBEYXRhXG4gKiBTdHJlYW1zLCBhbGwgdGhyZWUgYXR0cmlidXRlcyBvZiB0aGUgSm9iQ29tbWFuZFByb3BlcnR5IGFyZSByZXF1aXJlZCwgZXZlbiB0aG91Z2ggdGhleSBtYXkgYmUgb3B0aW9uYWwgZm9yIG90aGVyIHVzZSBjYXNlcy5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZFxuICovXG5mdW5jdGlvbiBpc0pvYkNvbW1hbmRQcm9wZXJ0eShjb21tYW5kOiBnbHVlLkNmbkpvYi5Kb2JDb21tYW5kUHJvcGVydHkgfCBJUmVzb2x2YWJsZSk6IGNvbW1hbmQgaXMgZ2x1ZS5DZm5Kb2IuSm9iQ29tbWFuZFByb3BlcnR5IHtcbiAgaWYgKChjb21tYW5kIGFzIGdsdWUuQ2ZuSm9iLkpvYkNvbW1hbmRQcm9wZXJ0eSkubmFtZSAmJlxuICAgIChjb21tYW5kIGFzIGdsdWUuQ2ZuSm9iLkpvYkNvbW1hbmRQcm9wZXJ0eSkucHl0aG9uVmVyc2lvbiAmJlxuICAgIChjb21tYW5kIGFzIGdsdWUuQ2ZuSm9iLkpvYkNvbW1hbmRQcm9wZXJ0eSkuc2NyaXB0TG9jYXRpb24pIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBkZWZhdWx0cy5wcmludFdhcm5pbmcoJ2NvbW1hbmQgbm90IG9mIHR5cGUgSm9iQ29tbWFuZFByb3BlcnR5IHR5cGUnKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS1qb2ItaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2x1ZS1qb2ItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBNkZILG9DQTBCQztBQVlELHNDQXFGQztBQVVELDhDQUtDO0FBT0QsMENBSUM7QUFXRCxnREFJQztBQXpQRCw2Q0FBNkM7QUFDN0MsaURBQXFHO0FBQ3JHLCtDQUFrRTtBQUNsRSw2Q0FBK0M7QUFFL0MsZ0NBQWdDO0FBQ2hDLG1DQUF3QztBQUd4Qzs7O0dBR0c7QUFDSCxJQUFZLGFBRVg7QUFGRCxXQUFZLGFBQWE7SUFDdkIsMEJBQVMsQ0FBQTtBQUNYLENBQUMsRUFGVyxhQUFhLDZCQUFiLGFBQWEsUUFFeEI7QUFtRUQ7O0dBRUc7QUFDSCxTQUFnQixZQUFZLENBQUMsS0FBZ0IsRUFBRSxLQUF3QjtJQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQy9FLE1BQU0sS0FBSyxDQUFDLG1HQUFtRztvQkFDL0csMEdBQTBHLENBQUMsQ0FBQztZQUM5RyxDQUFDO1lBRUQsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDNUcsTUFBTSxLQUFLLENBQUMscUdBQXFHO29CQUNqSCw2REFBNkQsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFFRCxNQUFNLHFCQUFxQixHQUN6QixhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFB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O0lBQ2QsQ0FBQztTQUFNLENBQUM7UUFDTixRQUFRLENBQUMsWUFBWSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDckUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBnbHVlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1nbHVlJztcbmltcG9ydCB7IEVmZmVjdCwgSVJvbGUsIFBvbGljeSwgUG9saWN5U3RhdGVtZW50LCBSb2xlLCBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBCdWNrZXQsIEJ1Y2tldFByb3BzLCBJQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IEF3cywgSVJlc29sdmFibGUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBzM2Fzc2V0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0c1wiO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSAnLi4vJztcbmltcG9ydCB7IG92ZXJyaWRlUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJ1aWxkUzNCdWNrZXRSZXNwb25zZSB9IGZyb20gJy4uLyc7XG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgZGF0YSBzdG9yZSB0eXBlcyB0aGF0IGNvdWxkIGluY2x1ZGUgUzMsIER5bmFtb0RCLCBEb2N1bWVudERCLCBSRFMgb3IgUmVkc2hpZnQuIEN1cnJlbnRcbiAqIGNvbnN0cnVjdCBpbXBsZW1lbnRhdGlvbiBvbmx5IHN1cHBvcnRzIFMzLCBidXQgcG90ZW50aWFsIHRvIGFkZCBvdGhlciBvdXRwdXQgdHlwZXMgaW4gdGhlIGZ1dHVyZVxuICovXG5leHBvcnQgZW51bSBTaW5rU3RvcmVUeXBlIHtcbiAgUzMgPSAnUzMnXG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHRvIGRlZmluZSBwb3RlbnRpYWwgb3V0cHV0cyB0byBhbGxvdyB0aGUgY29uc3RydWN0IGRlZmluZSBhZGRpdGlvbmFsIG91dHB1dCBkZXN0aW5hdGlvbnMgZm9yIEVUTFxuICogdHJhbnNmb3JtYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaW5rRGF0YVN0b3JlUHJvcHMge1xuICAvKipcbiAgICogU2luayBkYXRhIHN0b3JlIHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFzdG9yZVR5cGU6IFNpbmtTdG9yZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IFMzIGxvY2F0aW9uIHdoZXJlIHRoZSBkYXRhIHNob3VsZCBiZSB3cml0dGVuLiBUaGUgcHJvdmlkZWQgUzMgYnVja2V0IHdpbGwgYmUgdXNlZCB0byBwYXNzXG4gICAqIHRoZSBvdXRwdXQgbG9jYXRpb24gdG8gdGhlIGV0bCBzY3JpcHQgYXMgYW4gYXJndW1lbnQgdG8gdGhlIEFXUyBHbHVlIGpvYi5cbiAgICpcbiAgICogSWYgbm8gbG9jYXRpb24gaXMgcHJvdmlkZWQsIGl0IHdpbGwgY2hlY2sgaWYgQG91dHB1dEJ1Y2tldFByb3BzIGFyZSBwcm92aWRlZC4gSWYgbm90IGl0IHdpbGwgY3JlYXRlIGEgbmV3XG4gICAqIGJ1Y2tldCBpZiB0aGUgQGRhdGFzdG9yZVR5cGUgaXMgUzMuXG4gICAqXG4gICAqIFRoZSBhcmd1bWVudCBrZXkgaXMgYG91dHB1dF9wYXRoYC4gVGhlIHZhbHVlIG9mIHRoZSBhcmd1bWVudCBjYW4gYmUgcmV0cmlldmUgaW4gdGhlIHB5dGhvbiBzY3JpcHRcbiAgICogYXMgZm9sbG93czpcbiAgICogIGdldFJlc29sdmVkT3B0aW9ucyhzeXMuYXJndiwgW1wiSk9CX05BTUVcIiwgXCJvdXRwdXRfcGF0aFwiLCA8b3RoZXIgYXJndW1lbnRzIHRoYXQgYXJlIHBhc3NlZD4gXSlcbiAgICogIG91dHB1dF9wYXRoID0gYXJnc1tcIm91dHB1dF9wYXRoXCJdXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ1MzT3V0cHV0QnVja2V0PzogQnVja2V0XG4gIC8qKlxuICAgKiBJZiBAZXhpc3RpbmdTM091dHB1dEJVY2tldCBpcyBwcm92aWRlZCwgdGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHByb3ZpZGVkLFxuICAgKiB0aGUgY29uc3RydWN0IHdpbGwgY3JlYXRlIGEgbmV3IGJ1Y2tldCBpZiB0aGUgQGRhdGFzdG9yZVR5cGUgaXMgUzMuXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRCdWNrZXRQcm9wcz86IEJ1Y2tldFByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkR2x1ZUpvYlByb3BzIHtcbiAgLyoqXG4gICAqIEdsdWUgRVRMIGpvYiBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2x1ZUpvYlByb3BzPzogZ2x1ZS5DZm5Kb2JQcm9wcyB8IGFueVxuICAvKipcbiAgICogRXhpc3RpbmcgaW5zdGFuY2Ugb2YgdGhlIFMzIGJ1Y2tldCBvYmplY3QsIGlmIHRoaXMgaXMgc2V0IHRoZW4gdGhlIHNjcmlwdCBsb2NhdGlvbiBpcyBpZ25vcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdDZm5Kb2I/OiBnbHVlLkNmbkpvYjtcbiAgLyoqXG4gICAqIEFXUyBHbHVlIHRhYmxlXG4gICAqL1xuICByZWFkb25seSB0YWJsZTogZ2x1ZS5DZm5UYWJsZTtcbiAgLyoqXG4gICAqIEFXUyBHbHVlIGRhdGFiYXNlXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZTogZ2x1ZS5DZm5EYXRhYmFzZTtcbiAgLyoqXG4gICAqIE91dHB1dCBzdG9yYWdlIG9wdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dERhdGFTdG9yZT86IFNpbmtEYXRhU3RvcmVQcm9wc1xuICAvKipcbiAgICogQXNzZXQgaW5zdGFuY2UgZm9yIHRoZSBFVEwgY29kZSB0aGF0IHBlcmZvcm1zIEdsdWUgSm9iIHRyYW5zZm9ybWF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgIHJlYWRvbmx5IGV0bENvZGVBc3NldD86IHMzYXNzZXRzLkFzc2V0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkR2x1ZUpvYlJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgam9iOiBnbHVlLkNmbkpvYixcbiAgcmVhZG9ubHkgcm9sZTogSVJvbGUsXG4gIHJlYWRvbmx5IGJ1Y2tldD86IEJ1Y2tldCxcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldD86IEJ1Y2tldCxcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHbHVlSm9iKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBCdWlsZEdsdWVKb2JQcm9wcyk6IEJ1aWxkR2x1ZUpvYlJlc3BvbnNlIHtcbiAgaWYgKCFwcm9wcy5leGlzdGluZ0NmbkpvYikge1xuICAgIGlmIChwcm9wcy5nbHVlSm9iUHJvcHMpIHtcbiAgICAgIGlmIChwcm9wcy5nbHVlSm9iUHJvcHMuZ2x1ZVZlcnNpb24gPT09ICcyLjAnICYmIHByb3BzLmdsdWVKb2JQcm9wcy5tYXhDYXBhY2l0eSkge1xuICAgICAgICB0aHJvdyBFcnJvcignQ2Fubm90IHNldCBcIk1heENhcGFjaXR5XCIgd2l0aCBHbHVlVmVyc2lvbiAyLjAgb3IgaGlnaGVyLiBVc2UgXCJOdW1iZXJPZldvcmtlcnNcIiBhbmQgXCJXb3JrZXJUeXBlXCIuICcgK1xuICAgICAgICAnUmVmZXIgdGhlIEFQSSBkb2N1bWVudGF0aW9uIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC93ZWJhcGkvQVBJX0pvYi5odG1sIGZvciBtb3JlIGRldGFpbHMnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLmdsdWVKb2JQcm9wcy5tYXhDYXBhY2l0eSAmJiAocHJvcHMuZ2x1ZUpvYlByb3BzLm51bWJlck9mV29ya2VycyB8fCBwcm9wcy5nbHVlSm9iUHJvcHMud29ya2VyVHlwZSkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0Nhbm5vdCBzZXQgTWF4Q2FwYWNpdHkgYW5kIFwiV29ya2VyVHlwZVwiIG9yICBcIk51bWJlck9mV29ya2Vyc1wiLiBJZiB1c2luZyBnbHVlVmVyc2lvbiAyLjAgb3IgYmV5b25kLCAnICtcbiAgICAgICAgJ2l0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBcIldvcmtlclR5cGVcIiBvciAgXCJOdW1iZXJPZldvcmtlcnNcIicpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZXBsb3lHbHVlSm9iUmVzcG9uc2UgPVxuICAgICAgICBkZXBsb3lHbHVlSm9iKHNjb3BlLCBwcm9wcy5nbHVlSm9iUHJvcHMsIHByb3BzLmRhdGFiYXNlLCBwcm9wcy50YWJsZSwgcHJvcHMub3V0cHV0RGF0YVN0b3JlISwgcHJvcHMuZXRsQ29kZUFzc2V0KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGpvYjogZGVwbG95R2x1ZUpvYlJlc3BvbnNlLmpvYixcbiAgICAgICAgcm9sZTogZGVwbG95R2x1ZUpvYlJlc3BvbnNlLnJvbGUsXG4gICAgICAgIGJ1Y2tldDogZGVwbG95R2x1ZUpvYlJlc3BvbnNlLmJ1Y2tldCxcbiAgICAgICAgbG9nZ2luZ0J1Y2tldDogZGVwbG95R2x1ZUpvYlJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoJ0VpdGhlciBnbHVlSm9iUHJvcHMgb3IgZXhpc3RpbmdDZm5Kb2IgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgam9iOiBwcm9wcy5leGlzdGluZ0NmbkpvYiwgcm9sZTogUm9sZS5mcm9tUm9sZUFybihzY29wZSwgJ0V4aXN0aW5nUm9sZScsIHByb3BzLmV4aXN0aW5nQ2ZuSm9iLnJvbGUpfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveUdsdWVKb2JSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGpvYjogZ2x1ZS5DZm5Kb2IsXG4gIHJlYWRvbmx5IHJvbGU6IElSb2xlLFxuICByZWFkb25seSBidWNrZXQ/OiBCdWNrZXQsXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBCdWNrZXQsXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlcGxveUdsdWVKb2Ioc2NvcGU6IENvbnN0cnVjdCwgZ2x1ZUpvYlByb3BzOiBnbHVlLkNmbkpvYlByb3BzLCBkYXRhYmFzZTogZ2x1ZS5DZm5EYXRhYmFzZSwgdGFibGU6IGdsdWUuQ2ZuVGFibGUsXG4gIG91dHB1dERhdGFTdG9yZTogU2lua0RhdGFTdG9yZVByb3BzLCBldGxDb2RlQXNzZXQ/OiBzM2Fzc2V0cy5Bc3NldCk6IERlcGxveUdsdWVKb2JSZXNwb25zZSB7XG5cbiAgbGV0IGdsdWVTZWN1cml0eUNvbmZpZ05hbWU6IHN0cmluZztcblxuICBpZiAoZ2x1ZUpvYlByb3BzLnNlY3VyaXR5Q29uZmlndXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZ2x1ZVNlY3VyaXR5Q29uZmlnTmFtZSA9IGBFVExKb2JTZWN1cml0eUNvbmZpZyR7QXdzLlNUQUNLX0lEfWA7XG4gICAgY29uc3QgZ2x1ZUtNU0tleSA9IGBhcm46JHtBd3MuUEFSVElUSU9OfTprbXM6JHtBd3MuUkVHSU9OfToke0F3cy5BQ0NPVU5UX0lEfTphbGlhcy9hd3MvZ2x1ZWA7XG5cbiAgICBjb25zdCBzZWN1cml0eUNvbmZpZ3VyYXRpb25Qcm9wczogZ2x1ZS5DZm5TZWN1cml0eUNvbmZpZ3VyYXRpb25Qcm9wcyA9IHtcbiAgICAgIG5hbWU6IGdsdWVTZWN1cml0eUNvbmZpZ05hbWUsXG4gICAgICBlbmNyeXB0aW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBqb2JCb29rbWFya3NFbmNyeXB0aW9uOiB7XG4gICAgICAgICAgam9iQm9va21hcmtzRW5jcnlwdGlvbk1vZGU6ICdDU0UtS01TJyxcbiAgICAgICAgICBrbXNLZXlBcm46IGdsdWVLTVNLZXlcbiAgICAgICAgfSxcbiAgICAgICAgczNFbmNyeXB0aW9uczogW3tcbiAgICAgICAgICBzM0VuY3J5cHRpb25Nb2RlOiAnU1NFLVMzJ1xuICAgICAgICB9XVxuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBCZWZvcmUgdHVybmluZyBvZmYgU29uYXJRdWJlIGZvciB0aGUgbGluZSwgcmVkdWNlIHRoZSBsaW5lIHRvIGl0J3MgbWluaW11bVxuICAgIG5ldyBnbHVlLkNmblNlY3VyaXR5Q29uZmlndXJhdGlvbihzY29wZSwgJ0dsdWVTZWN1cml0eUNvbmZpZycsIHNlY3VyaXR5Q29uZmlndXJhdGlvblByb3BzKTsgIC8vIE5PU09OQVJcblxuICB9IGVsc2Uge1xuICAgIGdsdWVTZWN1cml0eUNvbmZpZ05hbWUgPSBnbHVlSm9iUHJvcHMuc2VjdXJpdHlDb25maWd1cmF0aW9uO1xuICB9XG5cbiAgY29uc3QgZ2x1ZUpvYlBvbGljeSA9IG5ldyBQb2xpY3koc2NvcGUsICdMb2dQb2xpY3knLCB7XG4gICAgc3RhdGVtZW50czogW1xuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbICdsb2dzOkNyZWF0ZUxvZ0dyb3VwJywgJ2xvZ3M6Q3JlYXRlTG9nU3RyZWFtJywgJ2xvZ3M6UHV0TG9nRXZlbnRzJyBdLFxuICAgICAgICByZXNvdXJjZXM6IFsgYGFybjoke0F3cy5QQVJUSVRJT059OmxvZ3M6JHtBd3MuUkVHSU9OfToke0F3cy5BQ0NPVU5UX0lEfTpsb2ctZ3JvdXA6L2F3cy1nbHVlLypgIF1cbiAgICAgIH0pXG4gICAgXVxuICB9KTtcblxuICBjb25zdCBqb2JSb2xlID0gZ2x1ZUpvYlByb3BzLnJvbGUgP1xuICAgIFJvbGUuZnJvbVJvbGVBcm4oc2NvcGUsICdKb2JSb2xlJywgKHR5cGVvZiBnbHVlSm9iUHJvcHMucm9sZSA9PT0gXCJzdHJpbmdcIikgPyBnbHVlSm9iUHJvcHMucm9sZSA6IChnbHVlSm9iUHJvcHMucm9sZSBhcyBSb2xlKS5yb2xlQXJuKSA6XG4gICAgZGVmYXVsdHMuY3JlYXRlR2x1ZUpvYlJvbGUoc2NvcGUpO1xuXG4gIGdsdWVKb2JQb2xpY3kuYXR0YWNoVG9Sb2xlKGpvYlJvbGUpO1xuXG4gIGxldCBvdXRwdXRMb2NhdGlvbjogQnVpbGRTM0J1Y2tldFJlc3BvbnNlO1xuICBpZiAob3V0cHV0RGF0YVN0b3JlICE9PSB1bmRlZmluZWQgJiYgb3V0cHV0RGF0YVN0b3JlLmRhdGFzdG9yZVR5cGUgPT09IFNpbmtTdG9yZVR5cGUuUzMpIHtcbiAgICBpZiAob3V0cHV0RGF0YVN0b3JlLmV4aXN0aW5nUzNPdXRwdXRCdWNrZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3V0cHV0TG9jYXRpb24gPSB7IGJ1Y2tldDogb3V0cHV0RGF0YVN0b3JlLmV4aXN0aW5nUzNPdXRwdXRCdWNrZXQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0cHV0TG9jYXRpb24gPSBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHNjb3BlLCB7IGJ1Y2tldFByb3BzOiBvdXRwdXREYXRhU3RvcmUub3V0cHV0QnVja2V0UHJvcHMgfSApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvdXRwdXRMb2NhdGlvbiA9IGRlZmF1bHRzLmJ1aWxkUzNCdWNrZXQoc2NvcGUsIHt9KTtcbiAgfVxuXG4gIG91dHB1dExvY2F0aW9uLmJ1Y2tldC5ncmFudFJlYWRXcml0ZShqb2JSb2xlKTtcblxuICBjb25zdCBqb2JBcmd1bWVudHNMaXN0ID0ge1xuICAgIFwiLS1lbmFibGUtbWV0cmljc1wiIDogdHJ1ZSxcbiAgICBcIi0tZW5hYmxlLWNvbnRpbnVvdXMtY2xvdWR3YXRjaC1sb2dcIiA6IHRydWUsXG4gICAgXCItLWRhdGFiYXNlX25hbWVcIjogZGF0YWJhc2UucmVmLFxuICAgIFwiLS10YWJsZV9uYW1lXCI6IHRhYmxlLnJlZixcbiAgICAuLi4oKG91dHB1dERhdGFTdG9yZSA9PT0gdW5kZWZpbmVkIHx8IChvdXRwdXREYXRhU3RvcmUgJiYgb3V0cHV0RGF0YVN0b3JlLmRhdGFzdG9yZVR5cGUgPT09IFNpbmtTdG9yZVR5cGUuUzMpKSAmJlxuICAgICAgeyAnLS1vdXRwdXRfcGF0aCcgOiBgczNhOi8vJHtvdXRwdXRMb2NhdGlvbi5idWNrZXQuYnVja2V0TmFtZX0vb3V0cHV0L2AgfSksXG4gICAgLi4uZ2x1ZUpvYlByb3BzLmRlZmF1bHRBcmd1bWVudHNcbiAgfTtcblxuICBjb25zdCBuZXdHbHVlSm9iUHJvcHM6IGdsdWUuQ2ZuSm9iUHJvcHMgPSBvdmVycmlkZVByb3BzKGRlZmF1bHRzLkRlZmF1bHRHbHVlSm9iUHJvcHMoam9iUm9sZSwgZ2x1ZUpvYlByb3BzLFxuICAgIGdsdWVTZWN1cml0eUNvbmZpZ05hbWUsIGpvYkFyZ3VtZW50c0xpc3QsIGV0bENvZGVBc3NldCksIGdsdWVKb2JQcm9wcyk7XG4gIGlmIChldGxDb2RlQXNzZXQpIHtcbiAgICBldGxDb2RlQXNzZXQuZ3JhbnRSZWFkKGpvYlJvbGUpO1xuICB9IGVsc2Uge1xuICAgIC8vIGNyZWF0ZSBDREsgQnVja2V0IGluc3RhbmNlIGZyb20gUzMgdXJsIGFuZCBncmFudCByZWFkIGFjY2VzcyB0byBHbHVlIEpvYidzIHNlcnZpY2UgcHJpbmNpcGFsXG4gICAgaWYgKGlzSm9iQ29tbWFuZFByb3BlcnR5KG5ld0dsdWVKb2JQcm9wcy5jb21tYW5kKSkge1xuICAgICAgY29uc3Qgc2NyaXB0TG9jYXRpb24gPSBuZXdHbHVlSm9iUHJvcHMuY29tbWFuZC5zY3JpcHRMb2NhdGlvbjtcblxuICAgICAgLy8gSW5jb21pbmcgUHJvcHMsIGluY2x1ZGluZyBzY3JpcHRMb2NhdGlvbiwgYXJlIGNoZWNrZWQgdXBzdHJlYW0gaW4gQ2hlY2tHbHVlUHJvcHMoKVxuICAgICAgY29uc3Qgc2NyaXB0QnVja2V0TG9jYXRpb246IElCdWNrZXQgPSBCdWNrZXQuZnJvbUJ1Y2tldEFybihzY29wZSwgJ1NjcmlwdExvY2F0aW9uJywgZ2V0UzNBcm5mcm9tUzNVcmwoc2NyaXB0TG9jYXRpb24hKSk7XG4gICAgICBzY3JpcHRCdWNrZXRMb2NhdGlvbi5ncmFudFJlYWQoam9iUm9sZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ2x1ZUpvYjogZ2x1ZS5DZm5Kb2IgPSBuZXcgZ2x1ZS5DZm5Kb2Ioc2NvcGUsICdLaW5lc2lzRVRMSm9iJywgbmV3R2x1ZUpvYlByb3BzKTtcbiAgcmV0dXJuICB7IGpvYjogZ2x1ZUpvYiwgcm9sZTogam9iUm9sZSwgYnVja2V0OiBvdXRwdXRMb2NhdGlvbi5idWNrZXQsIGxvZ2dpbmdCdWNrZXQ6IG91dHB1dExvY2F0aW9uLmxvZ2dpbmdCdWNrZXQgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIFRoaXMgaXMgYSBoZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSB0aGUgUm9sZSByZXF1aXJlZCBmb3IgdGhlIEdsdWUgSm9iLiBJZiBhIHJvbGUgaXMgYWxyZWFkeSBjcmVhdGVkIHRoZW4gdGhpc1xuICogbWV0aG9kIGlzIG5vdCByZXF1aXJlZCB0byBiZSBjYWxsZWQuXG4gKlxuICogQHBhcmFtIHNjb3BlIC0gVGhlIEFXUyBDb25zdHJ1Y3QgdW5kZXIgd2hpY2ggdGhlIHJvbGUgaXMgdG8gYmUgY3JlYXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR2x1ZUpvYlJvbGUoc2NvcGU6IENvbnN0cnVjdCk6IFJvbGUge1xuICByZXR1cm4gbmV3IFJvbGUoc2NvcGUsICdKb2JSb2xlJywge1xuICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2dsdWUuYW1hem9uYXdzLmNvbScpLFxuICAgIGRlc2NyaXB0aW9uOiAnU2VydmljZSByb2xlIHRoYXQgR2x1ZSBjdXN0b20gRVRMIGpvYnMgd2lsbCBhc3N1bWUgZm9yIGV4ZWN1dGlvbicsXG4gIH0pO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKlxuICogVGhpcyBtZXRob2QgY3JlYXRlcyBhbiBBV1MgR2x1ZSB0YWJsZS4gVGhlIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiBhbiBleGlzdGluZyBHbHVlIHRhYmxlIGlzIG5vdCBwcm92aWRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR2x1ZVRhYmxlKHNjb3BlOiBDb25zdHJ1Y3QsIGRhdGFiYXNlOiBnbHVlLkNmbkRhdGFiYXNlLCB0YWJsZVByb3BzPzogZ2x1ZS5DZm5UYWJsZVByb3BzLFxuICBmaWVsZFNjaGVtYT86IGdsdWUuQ2ZuVGFibGUuQ29sdW1uUHJvcGVydHkgW10sIHNvdXJjZVR5cGU/OiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkpOiBnbHVlLkNmblRhYmxlIHtcbiAgcmV0dXJuIGRlZmF1bHRzLkRlZmF1bHRHbHVlVGFibGUoc2NvcGUsIHRhYmxlUHJvcHMgIT09IHVuZGVmaW5lZCA/IHRhYmxlUHJvcHMgOlxuICAgIGRlZmF1bHRzLkRlZmF1bHRHbHVlVGFibGVQcm9wcyhkYXRhYmFzZSwgZmllbGRTY2hlbWEhLCBzb3VyY2VUeXBlLCBwYXJhbWV0ZXJzKSk7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGFuIEFXUyBHbHVlIGRhdGFiYXNlLiBUaGUgbWV0aG9kIGlzIG9ubHkgY2FsbGVkIHdpdGggYW4gZXhpc3RpbmcgR2x1ZSBkYXRhYmFzZSB0eXBlIGlzIG5vdCBwcm92aWRlZC5cbiAqIFRoZSBtZXRob2QgdXNlcyB0aGUgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIEdsdWUgZGF0YWJhc2VcbiAqXG4gKiBAcGFyYW0gc2NvcGVcbiAqIEBwYXJhbSBkYXRhYmFzZVByb3BzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHbHVlRGF0YWJhc2Uoc2NvcGU6IENvbnN0cnVjdCwgIGRhdGFiYXNlUHJvcHM/OiBnbHVlLkNmbkRhdGFiYXNlUHJvcHMpOiBnbHVlLkNmbkRhdGFiYXNlIHtcbiAgY29uc3QgbWVyZ2VkREJQcm9wczogZ2x1ZS5DZm5EYXRhYmFzZVByb3BzID0gKGRhdGFiYXNlUHJvcHMgIT09IHVuZGVmaW5lZCkgPyBvdmVycmlkZVByb3BzKGRlZmF1bHRzLkRlZmF1bHRHbHVlRGF0YWJhc2VQcm9wcygpLCBkYXRhYmFzZVByb3BzKSA6XG4gICAgZGVmYXVsdHMuRGVmYXVsdEdsdWVEYXRhYmFzZVByb3BzKCk7XG4gIHJldHVybiBkZWZhdWx0cy5EZWZhdWx0R2x1ZURhdGFiYXNlKHNjb3BlLCBtZXJnZWREQlByb3BzKTtcbn1cblxuLyoqXG4gKiBBIHV0aWxpdHkgbWV0aG9kIHRvIGdlbmVyYXRlIHRoZSBTMyBBcm4gZnJvbSBhbiBTMyBVcmwuXG4gKlxuICogQHBhcmFtIHMzVXJsXG4gKi9cbmZ1bmN0aW9uIGdldFMzQXJuZnJvbVMzVXJsKHMzVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoczNVcmwgJiYgczNVcmwuc3RhcnRzV2l0aCgnczM6Ly8nKSkge1xuICAgIGNvbnN0IHNwbGl0U3RyaW5nOiBzdHJpbmcgPSBzM1VybC5zbGljZSgnczM6Ly8nLmxlbmd0aCk7XG4gICAgcmV0dXJuIGBhcm46JHtBd3MuUEFSVElUSU9OfTpzMzo6OiR7c3BsaXRTdHJpbmd9YDtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBFcnJvcihgUmVjZWl2ZWQgUzNVUkwgYXMgJHtzM1VybH0uIFRoZSBTMyB1cmwgc3RyaW5nIGRvZXMgbm90IGJlZ2luIHdpdGggczM6Ly8uIFRoaXMgaXMgbm90IGEgc3RhbmRhcmQgUzMgdXJsYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHV0aWxpdHkgbWV0aG9kIHRvIHR5cGUgY2hlY2sgQ2ZuSm9iLkpvYkNvbW1hbmRQcm9wZXJ0eSB0eXBlLiBGb3IgdGhlIGNvbnN0cnVjdCB0byB3b3JrIGZvciBzdHJlYW1pbmcgRVRMIGZyb20gS2luZXNpcyBEYXRhXG4gKiBTdHJlYW1zLCBhbGwgdGhyZWUgYXR0cmlidXRlcyBvZiB0aGUgSm9iQ29tbWFuZFByb3BlcnR5IGFyZSByZXF1aXJlZCwgZXZlbiB0aG91Z2ggdGhleSBtYXkgYmUgb3B0aW9uYWwgZm9yIG90aGVyIHVzZSBjYXNlcy5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZFxuICovXG5mdW5jdGlvbiBpc0pvYkNvbW1hbmRQcm9wZXJ0eShjb21tYW5kOiBnbHVlLkNmbkpvYi5Kb2JDb21tYW5kUHJvcGVydHkgfCBJUmVzb2x2YWJsZSk6IGNvbW1hbmQgaXMgZ2x1ZS5DZm5Kb2IuSm9iQ29tbWFuZFByb3BlcnR5IHtcbiAgaWYgKChjb21tYW5kIGFzIGdsdWUuQ2ZuSm9iLkpvYkNvbW1hbmRQcm9wZXJ0eSkubmFtZSAmJlxuICAgIChjb21tYW5kIGFzIGdsdWUuQ2ZuSm9iLkpvYkNvbW1hbmRQcm9wZXJ0eSkucHl0aG9uVmVyc2lvbiAmJlxuICAgIChjb21tYW5kIGFzIGdsdWUuQ2ZuSm9iLkpvYkNvbW1hbmRQcm9wZXJ0eSkuc2NyaXB0TG9jYXRpb24pIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICBkZWZhdWx0cy5wcmludFdhcm5pbmcoJ2NvbW1hbmQgbm90IG9mIHR5cGUgSm9iQ29tbWFuZFByb3BlcnR5IHR5cGUnKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
5
|
+
* with the License. A copy of the License is located at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
10
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
|
+
* and limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
14
|
+
import { Construct } from 'constructs';
|
|
15
|
+
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
16
|
+
import * as kms from 'aws-cdk-lib/aws-kms';
|
|
17
|
+
import * as sns from 'aws-cdk-lib/aws-sns';
|
|
18
|
+
export interface TextractProps {
|
|
19
|
+
readonly asyncJobs?: boolean;
|
|
20
|
+
readonly existingSourceBucketObj?: s3.IBucket;
|
|
21
|
+
readonly sourceBucketProps?: s3.BucketProps;
|
|
22
|
+
readonly existingDestinationBucketObj?: s3.IBucket;
|
|
23
|
+
readonly destinationBucketProps?: s3.BucketProps;
|
|
24
|
+
readonly useSameBucket?: boolean;
|
|
25
|
+
readonly createCustomerManagedOutputBucket?: boolean;
|
|
26
|
+
readonly sourceLoggingBucketProps?: s3.BucketProps;
|
|
27
|
+
readonly destinationLoggingBucketProps?: s3.BucketProps;
|
|
28
|
+
readonly logSourceS3AccessLogs?: boolean;
|
|
29
|
+
readonly logDestinationS3AccessLogs?: boolean;
|
|
30
|
+
readonly sourceBucketEnvironmentVariableName?: string;
|
|
31
|
+
readonly destinationBucketEnvironmentVariableName?: string;
|
|
32
|
+
readonly dataAccessRoleArnEnvironmentVariableName?: string;
|
|
33
|
+
readonly snsNotificationTopicArnEnvironmentVariableName?: string;
|
|
34
|
+
readonly existingNotificationTopicObj?: sns.Topic;
|
|
35
|
+
readonly existingNotificationTopicEncryptionKey?: kms.Key;
|
|
36
|
+
readonly notificationTopicProps?: sns.TopicProps;
|
|
37
|
+
readonly enableNotificationTopicEncryptionWithCustomerManagedKey?: boolean;
|
|
38
|
+
readonly notificationTopicEncryptionKey?: kms.Key;
|
|
39
|
+
readonly notificationTopicEncryptionKeyProps?: kms.KeyProps;
|
|
40
|
+
}
|
|
41
|
+
export interface TextractBucketDetails {
|
|
42
|
+
readonly bucket?: s3.Bucket;
|
|
43
|
+
readonly bucketInterface: s3.IBucket;
|
|
44
|
+
readonly loggingBucket?: s3.Bucket;
|
|
45
|
+
}
|
|
46
|
+
export interface TextractConfiguration {
|
|
47
|
+
readonly textractRole?: iam.Role;
|
|
48
|
+
readonly lambdaIamActionsRequired: string[];
|
|
49
|
+
readonly sourceBucket?: TextractBucketDetails;
|
|
50
|
+
readonly destinationBucket?: TextractBucketDetails;
|
|
51
|
+
readonly snsNotificationTopic?: sns.Topic;
|
|
52
|
+
readonly notificationTopicEncryptionKey?: kms.Key;
|
|
53
|
+
}
|
|
54
|
+
export declare function ConfigureTextractSupport(scope: Construct, id: string, props: TextractProps): TextractConfiguration;
|
|
55
|
+
export declare function CheckTextractProps(props: TextractProps): void;
|
|
56
|
+
export interface TextractSnsProps {
|
|
57
|
+
readonly notificationTopicProps?: sns.TopicProps;
|
|
58
|
+
readonly existingNotificationTopicObj?: sns.Topic;
|
|
59
|
+
readonly existingNotificationTopicObject?: sns.Topic;
|
|
60
|
+
readonly notificationTopicEncryptionKey?: kms.Key;
|
|
61
|
+
readonly notificationTopicEncryptionKeyProps?: kms.KeyProps;
|
|
62
|
+
}
|
|
63
|
+
export declare function CheckTextractSnsProps(propsObject: TextractSnsProps | any): void;
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
6
|
+
* with the License. A copy of the License is located at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
11
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
12
|
+
* and limitations under the License.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ConfigureTextractSupport = ConfigureTextractSupport;
|
|
16
|
+
exports.CheckTextractProps = CheckTextractProps;
|
|
17
|
+
exports.CheckTextractSnsProps = CheckTextractSnsProps;
|
|
18
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
19
|
+
const s3_bucket_helper_1 = require("./s3-bucket-helper");
|
|
20
|
+
const sns_helper_1 = require("./sns-helper");
|
|
21
|
+
const utils_1 = require("./utils");
|
|
22
|
+
const syncPermissions = [
|
|
23
|
+
'textract:DetectDocumentText',
|
|
24
|
+
'textract:AnalyzeDocument',
|
|
25
|
+
'textract:AnalyzeExpense',
|
|
26
|
+
'textract:AnalyzeID'
|
|
27
|
+
];
|
|
28
|
+
const asyncPermissions = [
|
|
29
|
+
'textract:StartDocumentTextDetection',
|
|
30
|
+
'textract:GetDocumentTextDetection',
|
|
31
|
+
'textract:StartDocumentAnalysis',
|
|
32
|
+
'textract:GetDocumentAnalysis',
|
|
33
|
+
'textract:StartExpenseAnalysis',
|
|
34
|
+
'textract:GetExpenseAnalysis',
|
|
35
|
+
'textract:StartLendingAnalysis',
|
|
36
|
+
'textract:GetLendingAnalysis'
|
|
37
|
+
];
|
|
38
|
+
function ConfigureTextractSupport(scope, id, props) {
|
|
39
|
+
let configuration = {
|
|
40
|
+
lambdaIamActionsRequired: [...syncPermissions],
|
|
41
|
+
};
|
|
42
|
+
if (props.asyncJobs) {
|
|
43
|
+
const buildTopicResponse = (0, sns_helper_1.buildTopic)(scope, id, {
|
|
44
|
+
existingTopicObj: props.existingNotificationTopicObj,
|
|
45
|
+
existingTopicEncryptionKey: props.existingNotificationTopicEncryptionKey,
|
|
46
|
+
topicProps: props.notificationTopicProps,
|
|
47
|
+
enableEncryptionWithCustomerManagedKey: props.enableNotificationTopicEncryptionWithCustomerManagedKey,
|
|
48
|
+
encryptionKey: props.notificationTopicEncryptionKey,
|
|
49
|
+
encryptionKeyProps: props.notificationTopicEncryptionKeyProps
|
|
50
|
+
});
|
|
51
|
+
// Setup notification topic
|
|
52
|
+
configuration = (0, utils_1.overrideProps)(configuration, {
|
|
53
|
+
snsNotificationTopic: buildTopicResponse.topic,
|
|
54
|
+
});
|
|
55
|
+
if (buildTopicResponse.key) {
|
|
56
|
+
configuration = (0, utils_1.overrideProps)(configuration, { notificationTopicEncryptionKey: buildTopicResponse.key });
|
|
57
|
+
}
|
|
58
|
+
// Setup source S3 Bucket
|
|
59
|
+
if (props.existingSourceBucketObj) {
|
|
60
|
+
configuration = (0, utils_1.overrideProps)(configuration, {
|
|
61
|
+
sourceBucket: {
|
|
62
|
+
bucketInterface: props.existingSourceBucketObj
|
|
63
|
+
}
|
|
64
|
+
}, false);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const buildSourceBucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(scope, {
|
|
68
|
+
bucketProps: props.sourceBucketProps,
|
|
69
|
+
loggingBucketProps: props.sourceLoggingBucketProps,
|
|
70
|
+
logS3AccessLogs: props.logSourceS3AccessLogs
|
|
71
|
+
}, `${id}-source-bucket`);
|
|
72
|
+
configuration = (0, utils_1.overrideProps)(configuration, {
|
|
73
|
+
sourceBucket: {
|
|
74
|
+
bucket: buildSourceBucketResponse.bucket,
|
|
75
|
+
loggingBucket: buildSourceBucketResponse.loggingBucket,
|
|
76
|
+
bucketInterface: buildSourceBucketResponse.bucket,
|
|
77
|
+
}
|
|
78
|
+
}, false);
|
|
79
|
+
}
|
|
80
|
+
if (props.createCustomerManagedOutputBucket !== false) {
|
|
81
|
+
// Setup destination S3 Bucket
|
|
82
|
+
if (props.useSameBucket) {
|
|
83
|
+
configuration = (0, utils_1.overrideProps)(configuration, {
|
|
84
|
+
destinationBucket: {
|
|
85
|
+
bucketInterface: configuration.sourceBucket?.bucketInterface,
|
|
86
|
+
bucket: configuration.sourceBucket?.bucket,
|
|
87
|
+
loggingBucket: configuration.sourceBucket?.loggingBucket,
|
|
88
|
+
}
|
|
89
|
+
}, false);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (props.existingDestinationBucketObj) {
|
|
93
|
+
configuration = (0, utils_1.overrideProps)(configuration, {
|
|
94
|
+
destinationBucket: {
|
|
95
|
+
bucketInterface: props.existingDestinationBucketObj
|
|
96
|
+
}
|
|
97
|
+
}, false);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const buildDestinationBucketResponse = (0, s3_bucket_helper_1.buildS3Bucket)(scope, {
|
|
101
|
+
bucketProps: props.destinationBucketProps,
|
|
102
|
+
loggingBucketProps: props.destinationLoggingBucketProps,
|
|
103
|
+
logS3AccessLogs: props.logDestinationS3AccessLogs
|
|
104
|
+
}, `${id}-destination-bucket`);
|
|
105
|
+
configuration = (0, utils_1.overrideProps)(configuration, {
|
|
106
|
+
destinationBucket: {
|
|
107
|
+
bucket: buildDestinationBucketResponse.bucket,
|
|
108
|
+
loggingBucket: buildDestinationBucketResponse.loggingBucket,
|
|
109
|
+
bucketInterface: buildDestinationBucketResponse.bucket,
|
|
110
|
+
}
|
|
111
|
+
}, false);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Set up role that is sent to the Textract service
|
|
116
|
+
const textractServiceRole = new iam.Role(scope, `${id}-textract-service-role`, {
|
|
117
|
+
assumedBy: new iam.ServicePrincipal('textract.amazonaws.com'),
|
|
118
|
+
});
|
|
119
|
+
configuration.snsNotificationTopic.grantPublish(textractServiceRole);
|
|
120
|
+
configuration = (0, utils_1.overrideProps)(configuration, {
|
|
121
|
+
textractRole: textractServiceRole
|
|
122
|
+
}, false);
|
|
123
|
+
// Give the Lambda function additional permissions
|
|
124
|
+
asyncPermissions.forEach((permission) => {
|
|
125
|
+
configuration.lambdaIamActionsRequired.push(permission);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
return configuration;
|
|
129
|
+
}
|
|
130
|
+
function CheckTextractProps(props) {
|
|
131
|
+
let errorMessages = '';
|
|
132
|
+
let errorFound = false;
|
|
133
|
+
if (props.asyncJobs) {
|
|
134
|
+
// Check source bucket props
|
|
135
|
+
const sourceS3Props = {
|
|
136
|
+
existingBucketObj: props.existingSourceBucketObj,
|
|
137
|
+
bucketProps: props.sourceBucketProps,
|
|
138
|
+
loggingBucketProps: props.sourceLoggingBucketProps,
|
|
139
|
+
logS3AccessLogs: props.logSourceS3AccessLogs
|
|
140
|
+
};
|
|
141
|
+
(0, s3_bucket_helper_1.CheckS3Props)(sourceS3Props);
|
|
142
|
+
// Check destination bucket props (only if not using same bucket)
|
|
143
|
+
if (!props.useSameBucket) {
|
|
144
|
+
const destinationS3Props = {
|
|
145
|
+
existingBucketObj: props.existingDestinationBucketObj,
|
|
146
|
+
bucketProps: props.destinationBucketProps,
|
|
147
|
+
loggingBucketProps: props.destinationLoggingBucketProps,
|
|
148
|
+
logS3AccessLogs: props.logDestinationS3AccessLogs
|
|
149
|
+
};
|
|
150
|
+
(0, s3_bucket_helper_1.CheckS3Props)(destinationS3Props);
|
|
151
|
+
}
|
|
152
|
+
// Check SNS topic props
|
|
153
|
+
CheckTextractSnsProps(props);
|
|
154
|
+
}
|
|
155
|
+
// If asyncJobs is false, no S3 bucket props should be provided
|
|
156
|
+
if (!props.asyncJobs) {
|
|
157
|
+
if (props.existingSourceBucketObj || props.sourceBucketProps ||
|
|
158
|
+
props.existingDestinationBucketObj || props.destinationBucketProps ||
|
|
159
|
+
props.sourceLoggingBucketProps || props.destinationLoggingBucketProps ||
|
|
160
|
+
props.logSourceS3AccessLogs !== undefined || props.logDestinationS3AccessLogs !== undefined ||
|
|
161
|
+
props.sourceBucketEnvironmentVariableName || props.destinationBucketEnvironmentVariableName ||
|
|
162
|
+
props.dataAccessRoleArnEnvironmentVariableName || props.useSameBucket) {
|
|
163
|
+
errorMessages += 'S3 bucket properties can only be provided when asyncJobs is true\n';
|
|
164
|
+
errorFound = true;
|
|
165
|
+
}
|
|
166
|
+
// Check SNS topic props separately for clearer error message
|
|
167
|
+
if (props.existingNotificationTopicObj || props.notificationTopicProps || props.existingNotificationTopicEncryptionKey ||
|
|
168
|
+
props.enableNotificationTopicEncryptionWithCustomerManagedKey !== undefined || props.notificationTopicEncryptionKey ||
|
|
169
|
+
props.notificationTopicEncryptionKeyProps) {
|
|
170
|
+
errorMessages += 'SNS topic properties can only be provided when asyncJobs is true';
|
|
171
|
+
errorFound = true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// If useSameBucket is true, no destination bucket props should be provided
|
|
175
|
+
if (props.useSameBucket) {
|
|
176
|
+
if (props.existingDestinationBucketObj || props.destinationBucketProps ||
|
|
177
|
+
props.destinationLoggingBucketProps || props.logDestinationS3AccessLogs !== undefined) {
|
|
178
|
+
errorMessages += 'Destination bucket properties cannot be provided when useSameBucket is true\n';
|
|
179
|
+
errorFound = true;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// If createCustomerManagedOutputBucket is explicitly false, no output bucket properties should be provided
|
|
183
|
+
if (props.createCustomerManagedOutputBucket === false) {
|
|
184
|
+
if (props.existingDestinationBucketObj || props.destinationBucketProps ||
|
|
185
|
+
props.destinationLoggingBucketProps || props.logDestinationS3AccessLogs !== undefined ||
|
|
186
|
+
props.useSameBucket) {
|
|
187
|
+
errorMessages += 'Output bucket properties cannot be provided when createCustomerManagedOutputBucket is false';
|
|
188
|
+
errorFound = true;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (errorFound) {
|
|
192
|
+
throw new Error(errorMessages);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function CheckTextractSnsProps(propsObject) {
|
|
196
|
+
let errorMessages = '';
|
|
197
|
+
let errorFound = false;
|
|
198
|
+
// FargateToSns used TopicObject instead of TopicObj - to fix would be a breaking change, so we
|
|
199
|
+
// must look for both here.
|
|
200
|
+
if (propsObject.notificationTopicProps && (propsObject.existingNotificationTopicObj || propsObject.existingNotificationTopicObject)) {
|
|
201
|
+
errorMessages += 'Error - Either provide notificationTopicProps or existingNotificationTopicObj, but not both.\n';
|
|
202
|
+
errorFound = true;
|
|
203
|
+
}
|
|
204
|
+
if (propsObject.notificationTopicProps?.masterKey && propsObject.notificationTopicEncryptionKey) {
|
|
205
|
+
errorMessages += 'Error - Either provide notificationTopicProps.masterKey or notificationTopicEncryptionKey, but not both.\n';
|
|
206
|
+
errorFound = true;
|
|
207
|
+
}
|
|
208
|
+
if (propsObject.notificationTopicProps?.masterKey && propsObject.notificationTopicEncryptionKeyProps) {
|
|
209
|
+
errorMessages += 'Error - Either provide notificationTopicProps.masterKey or notificationTopicEncryptionKeyProps, but not both.\n';
|
|
210
|
+
errorFound = true;
|
|
211
|
+
}
|
|
212
|
+
if (propsObject.notificationTopicEncryptionKey && propsObject.notificationTopicEncryptionKeyProps) {
|
|
213
|
+
errorMessages += 'Error - Either provide notificationTopicEncryptionKey or notificationTopicEncryptionKeyProps, but not both.\n';
|
|
214
|
+
errorFound = true;
|
|
215
|
+
}
|
|
216
|
+
if (errorFound) {
|
|
217
|
+
throw new Error(errorMessages);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHJhY3QtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGV4dHJhY3QtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFvRUgsNERBK0ZDO0FBRUQsZ0RBeUVDO0FBb0JELHNEQTZCQztBQTNSRCwyQ0FBMkM7QUFFM0MseURBQWlFO0FBQ2pFLDZDQUEwQztBQUMxQyxtQ0FBd0M7QUEwQ3hDLE1BQU0sZUFBZSxHQUFHO0lBQ3RCLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLG9CQUFvQjtDQUNyQixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixxQ0FBcUM7SUFDckMsbUNBQW1DO0lBQ25DLGdDQUFnQztJQUNoQyw4QkFBOEI7SUFDOUIsK0JBQStCO0lBQy9CLDZCQUE2QjtJQUM3QiwrQkFBK0I7SUFDL0IsNkJBQTZCO0NBQzlCLENBQUM7QUFFRixTQUFnQix3QkFBd0IsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFvQjtJQUV6RixJQUFJLGFBQWEsR0FBMEI7UUFDekMsd0JBQXdCLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQztLQUMvQyxDQUFDO0lBRUYsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEIsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHVCQUFVLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMvQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsNEJBQTRCO1lBQ3BELDBCQUEwQixFQUFFLEtBQUssQ0FBQyxzQ0FBc0M7WUFDeEUsVUFBVSxFQUFFLEtBQUssQ0FBQyxzQkFBc0I7WUFDeEMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLHVEQUF1RDtZQUNyRyxhQUFhLEVBQUUsS0FBSyxDQUFDLDhCQUE4QjtZQUNuRCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsbUNBQW1DO1NBQzlELENBQUMsQ0FBQztRQUNILDJCQUEyQjtRQUMz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LFdBQVcsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ2hHLGFBQWEsSUFBSSw0R0FBNEcsQ0FBQztRQUM5SCxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxTQUFTLElBQUksV0FBVyxDQUFDLG1DQUFtQyxFQUFFLENBQUM7UUFDckcsYUFBYSxJQUFJLGlIQUFpSCxDQUFDO1FBQ25JLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLDhCQUE4QixJQUFJLFdBQVcsQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ2xHLGFBQWEsSUFBSSwrR0FBK0csQ0FBQztRQUNqSSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IENoZWNrUzNQcm9wcywgYnVpbGRTM0J1Y2tldCB9IGZyb20gJy4vczMtYnVja2V0LWhlbHBlcic7XG5pbXBvcnQgeyBidWlsZFRvcGljIH0gZnJvbSAnLi9zbnMtaGVscGVyJztcbmltcG9ydCB7IG92ZXJyaWRlUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIHNucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0cmFjdFByb3BzIHtcbiAgcmVhZG9ubHkgYXN5bmNKb2JzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZXhpc3RpbmdTb3VyY2VCdWNrZXRPYmo/OiBzMy5JQnVja2V0O1xuICByZWFkb25seSBzb3VyY2VCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzO1xuICByZWFkb25seSBleGlzdGluZ0Rlc3RpbmF0aW9uQnVja2V0T2JqPzogczMuSUJ1Y2tldDtcbiAgcmVhZG9ubHkgZGVzdGluYXRpb25CdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzO1xuICByZWFkb25seSB1c2VTYW1lQnVja2V0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY3JlYXRlQ3VzdG9tZXJNYW5hZ2VkT3V0cHV0QnVja2V0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc291cmNlTG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHM7XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uTG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHM7XG4gIHJlYWRvbmx5IGxvZ1NvdXJjZVMzQWNjZXNzTG9ncz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGxvZ0Rlc3RpbmF0aW9uUzNBY2Nlc3NMb2dzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc291cmNlQnVja2V0RW52aXJvbm1lbnRWYXJpYWJsZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uQnVja2V0RW52aXJvbm1lbnRWYXJpYWJsZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRhdGFBY2Nlc3NSb2xlQXJuRW52aXJvbm1lbnRWYXJpYWJsZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNuc05vdGlmaWNhdGlvblRvcGljQXJuRW52aXJvbm1lbnRWYXJpYWJsZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV4aXN0aW5nTm90aWZpY2F0aW9uVG9waWNPYmo/OiBzbnMuVG9waWM7XG4gIHJlYWRvbmx5IGV4aXN0aW5nTm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uS2V5Pzoga21zLktleTtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uVG9waWNQcm9wcz86IHNucy5Ub3BpY1Byb3BzO1xuICByZWFkb25seSBlbmFibGVOb3RpZmljYXRpb25Ub3BpY0VuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uS2V5Pzoga21zLktleTtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uS2V5UHJvcHM/OiBrbXMuS2V5UHJvcHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dHJhY3RCdWNrZXREZXRhaWxzIHtcbiAgcmVhZG9ubHkgYnVja2V0PzogczMuQnVja2V0LFxuICByZWFkb25seSBidWNrZXRJbnRlcmZhY2U6IHMzLklCdWNrZXQsXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0cmFjdENvbmZpZ3VyYXRpb24ge1xuICByZWFkb25seSB0ZXh0cmFjdFJvbGU/OiBpYW0uUm9sZSxcbiAgcmVhZG9ubHkgbGFtYmRhSWFtQWN0aW9uc1JlcXVpcmVkOiBzdHJpbmdbXSxcbiAgcmVhZG9ubHkgc291cmNlQnVja2V0PzogVGV4dHJhY3RCdWNrZXREZXRhaWxzLFxuICByZWFkb25seSBkZXN0aW5hdGlvbkJ1Y2tldD86IFRleHRyYWN0QnVja2V0RGV0YWlscyxcbiAgcmVhZG9ubHkgc25zTm90aWZpY2F0aW9uVG9waWM/OiBzbnMuVG9waWMsXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleT86IGttcy5LZXksXG59XG5cbmNvbnN0IHN5bmNQZXJtaXNzaW9ucyA9IFtcbiAgJ3RleHRyYWN0OkRldGVjdERvY3VtZW50VGV4dCcsXG4gICd0ZXh0cmFjdDpBbmFseXplRG9jdW1lbnQnLFxuICAndGV4dHJhY3Q6QW5hbHl6ZUV4cGVuc2UnLFxuICAndGV4dHJhY3Q6QW5hbHl6ZUlEJ1xuXTtcblxuY29uc3QgYXN5bmNQZXJtaXNzaW9ucyA9IFtcbiAgJ3RleHRyYWN0OlN0YXJ0RG9jdW1lbnRUZXh0RGV0ZWN0aW9uJyxcbiAgJ3RleHRyYWN0OkdldERvY3VtZW50VGV4dERldGVjdGlvbicsXG4gICd0ZXh0cmFjdDpTdGFydERvY3VtZW50QW5hbHlzaXMnLFxuICAndGV4dHJhY3Q6R2V0RG9jdW1lbnRBbmFseXNpcycsXG4gICd0ZXh0cmFjdDpTdGFydEV4cGVuc2VBbmFseXNpcycsXG4gICd0ZXh0cmFjdDpHZXRFeHBlbnNlQW5hbHlzaXMnLFxuICAndGV4dHJhY3Q6U3RhcnRMZW5kaW5nQW5hbHlzaXMnLFxuICAndGV4dHJhY3Q6R2V0TGVuZGluZ0FuYWx5c2lzJ1xuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbmZpZ3VyZVRleHRyYWN0U3VwcG9ydChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVGV4dHJhY3RQcm9wcyk6IFRleHRyYWN0Q29uZmlndXJhdGlvbiB7XG5cbiAgbGV0IGNvbmZpZ3VyYXRpb246IFRleHRyYWN0Q29uZmlndXJhdGlvbiA9IHtcbiAgICBsYW1iZGFJYW1BY3Rpb25zUmVxdWlyZWQ6IFsuLi5zeW5jUGVybWlzc2lvbnNdLFxuICB9O1xuXG4gIGlmIChwcm9wcy5hc3luY0pvYnMpIHtcbiAgICBjb25zdCBidWlsZFRvcGljUmVzcG9uc2UgPSBidWlsZFRvcGljKHNjb3BlLCBpZCwge1xuICAgICAgZXhpc3RpbmdUb3BpY09iajogcHJvcHMuZXhpc3RpbmdOb3RpZmljYXRpb25Ub3BpY09iaixcbiAgICAgIGV4aXN0aW5nVG9waWNFbmNyeXB0aW9uS2V5OiBwcm9wcy5leGlzdGluZ05vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleSxcbiAgICAgIHRvcGljUHJvcHM6IHByb3BzLm5vdGlmaWNhdGlvblRvcGljUHJvcHMsXG4gICAgICBlbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleTogcHJvcHMuZW5hYmxlTm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleSxcbiAgICAgIGVuY3J5cHRpb25LZXk6IHByb3BzLm5vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleSxcbiAgICAgIGVuY3J5cHRpb25LZXlQcm9wczogcHJvcHMubm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uS2V5UHJvcHNcbiAgICB9KTtcbiAgICAvLyBTZXR1cCBub3RpZmljYXRpb24gdG9waWNcbiAgICBjb25maWd1cmF0aW9uID0gb3ZlcnJpZGVQcm9wcyhjb25maWd1cmF0aW9uLCB7XG4gICAgICBzbnNOb3RpZmljYXRpb25Ub3BpYzogYnVpbGRUb3BpY1Jlc3BvbnNlLnRvcGljLFxuICAgIH0pO1xuICAgIGlmIChidWlsZFRvcGljUmVzcG9uc2Uua2V5KSB7XG4gICAgICBjb25maWd1cmF0aW9uID0gb3ZlcnJpZGVQcm9wcyhjb25maWd1cmF0aW9uLCB7IG5vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleTogYnVpbGRUb3BpY1Jlc3BvbnNlLmtleSB9KTtcbiAgICB9XG5cbiAgICAvLyBTZXR1cCBzb3VyY2UgUzMgQnVja2V0XG4gICAgaWYgKHByb3BzLmV4aXN0aW5nU291cmNlQnVja2V0T2JqKSB7XG4gICAgICBjb25maWd1cmF0aW9uID0gb3ZlcnJpZGVQcm9wcyhjb25maWd1cmF0aW9uLCB7XG4gICAgICAgIHNvdXJjZUJ1Y2tldDoge1xuICAgICAgICAgIGJ1Y2tldEludGVyZmFjZTogcHJvcHMuZXhpc3RpbmdTb3VyY2VCdWNrZXRPYmpcbiAgICAgICAgfVxuICAgICAgfSwgZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBidWlsZFNvdXJjZUJ1Y2tldFJlc3BvbnNlID0gYnVpbGRTM0J1Y2tldChzY29wZSwge1xuICAgICAgICBidWNrZXRQcm9wczogcHJvcHMuc291cmNlQnVja2V0UHJvcHMsXG4gICAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wczogcHJvcHMuc291cmNlTG9nZ2luZ0J1Y2tldFByb3BzLFxuICAgICAgICBsb2dTM0FjY2Vzc0xvZ3M6IHByb3BzLmxvZ1NvdXJjZVMzQWNjZXNzTG9nc1xuICAgICAgfSwgYCR7aWR9LXNvdXJjZS1idWNrZXRgKTtcbiAgICAgIGNvbmZpZ3VyYXRpb24gPSBvdmVycmlkZVByb3BzKGNvbmZpZ3VyYXRpb24sIHtcbiAgICAgICAgc291cmNlQnVja2V0OiB7XG4gICAgICAgICAgYnVja2V0OiBidWlsZFNvdXJjZUJ1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICAgICAgICBsb2dnaW5nQnVja2V0OiBidWlsZFNvdXJjZUJ1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQsXG4gICAgICAgICAgYnVja2V0SW50ZXJmYWNlOiBidWlsZFNvdXJjZUJ1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICAgICAgfVxuICAgICAgfSwgZmFsc2UpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5jcmVhdGVDdXN0b21lck1hbmFnZWRPdXRwdXRCdWNrZXQgIT09IGZhbHNlKSB7XG4gICAgICAvLyBTZXR1cCBkZXN0aW5hdGlvbiBTMyBCdWNrZXRcbiAgICAgIGlmIChwcm9wcy51c2VTYW1lQnVja2V0KSB7XG4gICAgICAgIGNvbmZpZ3VyYXRpb24gPSBvdmVycmlkZVByb3BzKGNvbmZpZ3VyYXRpb24sIHtcbiAgICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDoge1xuICAgICAgICAgICAgYnVja2V0SW50ZXJmYWNlOiBjb25maWd1cmF0aW9uLnNvdXJjZUJ1Y2tldD8uYnVja2V0SW50ZXJmYWNlLFxuICAgICAgICAgICAgYnVja2V0OiBjb25maWd1cmF0aW9uLnNvdXJjZUJ1Y2tldD8uYnVja2V0LFxuICAgICAgICAgICAgbG9nZ2luZ0J1Y2tldDogY29uZmlndXJhdGlvbi5zb3VyY2VCdWNrZXQ/LmxvZ2dpbmdCdWNrZXQsXG4gICAgICAgICAgfVxuICAgICAgICB9LCBmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvcHMuZXhpc3RpbmdEZXN0aW5hdGlvbkJ1Y2tldE9iaikge1xuICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBvdmVycmlkZVByb3BzKGNvbmZpZ3VyYXRpb24sIHtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB7XG4gICAgICAgICAgICAgIGJ1Y2tldEludGVyZmFjZTogcHJvcHMuZXhpc3RpbmdEZXN0aW5hdGlvbkJ1Y2tldE9ialxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBidWlsZERlc3RpbmF0aW9uQnVja2V0UmVzcG9uc2UgPSBidWlsZFMzQnVja2V0KHNjb3BlLCB7XG4gICAgICAgICAgICBidWNrZXRQcm9wczogcHJvcHMuZGVzdGluYXRpb25CdWNrZXRQcm9wcyxcbiAgICAgICAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wczogcHJvcHMuZGVzdGluYXRpb25Mb2dnaW5nQnVja2V0UHJvcHMsXG4gICAgICAgICAgICBsb2dTM0FjY2Vzc0xvZ3M6IHByb3BzLmxvZ0Rlc3RpbmF0aW9uUzNBY2Nlc3NMb2dzXG4gICAgICAgICAgfSwgYCR7aWR9LWRlc3RpbmF0aW9uLWJ1Y2tldGApO1xuICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBvdmVycmlkZVByb3BzKGNvbmZpZ3VyYXRpb24sIHtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB7XG4gICAgICAgICAgICAgIGJ1Y2tldDogYnVpbGREZXN0aW5hdGlvbkJ1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICAgICAgICAgICAgbG9nZ2luZ0J1Y2tldDogYnVpbGREZXN0aW5hdGlvbkJ1Y2tldFJlc3BvbnNlLmxvZ2dpbmdCdWNrZXQsXG4gICAgICAgICAgICAgIGJ1Y2tldEludGVyZmFjZTogYnVpbGREZXN0aW5hdGlvbkJ1Y2tldFJlc3BvbnNlLmJ1Y2tldCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXQgdXAgcm9sZSB0aGF0IGlzIHNlbnQgdG8gdGhlIFRleHRyYWN0IHNlcnZpY2VcbiAgICBjb25zdCB0ZXh0cmFjdFNlcnZpY2VSb2xlID0gbmV3IGlhbS5Sb2xlKHNjb3BlLCBgJHtpZH0tdGV4dHJhY3Qtc2VydmljZS1yb2xlYCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ3RleHRyYWN0LmFtYXpvbmF3cy5jb20nKSxcbiAgICB9KTtcbiAgICBjb25maWd1cmF0aW9uLnNuc05vdGlmaWNhdGlvblRvcGljIS5ncmFudFB1Ymxpc2godGV4dHJhY3RTZXJ2aWNlUm9sZSk7XG4gICAgY29uZmlndXJhdGlvbiA9IG92ZXJyaWRlUHJvcHMoY29uZmlndXJhdGlvbiwge1xuICAgICAgdGV4dHJhY3RSb2xlOiB0ZXh0cmFjdFNlcnZpY2VSb2xlXG4gICAgfSwgZmFsc2UpO1xuXG4gICAgLy8gR2l2ZSB0aGUgTGFtYmRhIGZ1bmN0aW9uIGFkZGl0aW9uYWwgcGVybWlzc2lvbnNcbiAgICBhc3luY1Blcm1pc3Npb25zLmZvckVhY2goKHBlcm1pc3Npb24pID0+IHtcbiAgICAgIGNvbmZpZ3VyYXRpb24ubGFtYmRhSWFtQWN0aW9uc1JlcXVpcmVkLnB1c2gocGVybWlzc2lvbik7XG4gICAgfSk7XG5cbiAgfVxuICByZXR1cm4gY29uZmlndXJhdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrVGV4dHJhY3RQcm9wcyhwcm9wczogVGV4dHJhY3RQcm9wcyk6IHZvaWQge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIGlmIChwcm9wcy5hc3luY0pvYnMpIHtcblxuICAgIC8vIENoZWNrIHNvdXJjZSBidWNrZXQgcHJvcHNcbiAgICBjb25zdCBzb3VyY2VTM1Byb3BzID0ge1xuICAgICAgZXhpc3RpbmdCdWNrZXRPYmo6IHByb3BzLmV4aXN0aW5nU291cmNlQnVja2V0T2JqLFxuICAgICAgYnVja2V0UHJvcHM6IHByb3BzLnNvdXJjZUJ1Y2tldFByb3BzLFxuICAgICAgbG9nZ2luZ0J1Y2tldFByb3BzOiBwcm9wcy5zb3VyY2VMb2dnaW5nQnVja2V0UHJvcHMsXG4gICAgICBsb2dTM0FjY2Vzc0xvZ3M6IHByb3BzLmxvZ1NvdXJjZVMzQWNjZXNzTG9nc1xuICAgIH07XG4gICAgQ2hlY2tTM1Byb3BzKHNvdXJjZVMzUHJvcHMpO1xuXG4gICAgLy8gQ2hlY2sgZGVzdGluYXRpb24gYnVja2V0IHByb3BzIChvbmx5IGlmIG5vdCB1c2luZyBzYW1lIGJ1Y2tldClcbiAgICBpZiAoIXByb3BzLnVzZVNhbWVCdWNrZXQpIHtcbiAgICAgIGNvbnN0IGRlc3RpbmF0aW9uUzNQcm9wcyA9IHtcbiAgICAgICAgZXhpc3RpbmdCdWNrZXRPYmo6IHByb3BzLmV4aXN0aW5nRGVzdGluYXRpb25CdWNrZXRPYmosXG4gICAgICAgIGJ1Y2tldFByb3BzOiBwcm9wcy5kZXN0aW5hdGlvbkJ1Y2tldFByb3BzLFxuICAgICAgICBsb2dnaW5nQnVja2V0UHJvcHM6IHByb3BzLmRlc3RpbmF0aW9uTG9nZ2luZ0J1Y2tldFByb3BzLFxuICAgICAgICBsb2dTM0FjY2Vzc0xvZ3M6IHByb3BzLmxvZ0Rlc3RpbmF0aW9uUzNBY2Nlc3NMb2dzXG4gICAgICB9O1xuICAgICAgQ2hlY2tTM1Byb3BzKGRlc3RpbmF0aW9uUzNQcm9wcyk7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgU05TIHRvcGljIHByb3BzXG4gICAgQ2hlY2tUZXh0cmFjdFNuc1Byb3BzKHByb3BzKTtcbiAgfVxuXG4gIC8vIElmIGFzeW5jSm9icyBpcyBmYWxzZSwgbm8gUzMgYnVja2V0IHByb3BzIHNob3VsZCBiZSBwcm92aWRlZFxuICBpZiAoIXByb3BzLmFzeW5jSm9icykge1xuICAgIGlmIChwcm9wcy5leGlzdGluZ1NvdXJjZUJ1Y2tldE9iaiB8fCBwcm9wcy5zb3VyY2VCdWNrZXRQcm9wcyB8fFxuICAgICAgcHJvcHMuZXhpc3RpbmdEZXN0aW5hdGlvbkJ1Y2tldE9iaiB8fCBwcm9wcy5kZXN0aW5hdGlvbkJ1Y2tldFByb3BzIHx8XG4gICAgICBwcm9wcy5zb3VyY2VMb2dnaW5nQnVja2V0UHJvcHMgfHwgcHJvcHMuZGVzdGluYXRpb25Mb2dnaW5nQnVja2V0UHJvcHMgfHxcbiAgICAgIHByb3BzLmxvZ1NvdXJjZVMzQWNjZXNzTG9ncyAhPT0gdW5kZWZpbmVkIHx8IHByb3BzLmxvZ0Rlc3RpbmF0aW9uUzNBY2Nlc3NMb2dzICE9PSB1bmRlZmluZWQgfHxcbiAgICAgIHByb3BzLnNvdXJjZUJ1Y2tldEVudmlyb25tZW50VmFyaWFibGVOYW1lIHx8IHByb3BzLmRlc3RpbmF0aW9uQnVja2V0RW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgfHxcbiAgICAgIHByb3BzLmRhdGFBY2Nlc3NSb2xlQXJuRW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgfHwgcHJvcHMudXNlU2FtZUJ1Y2tldCkge1xuICAgICAgZXJyb3JNZXNzYWdlcyArPSAnUzMgYnVja2V0IHByb3BlcnRpZXMgY2FuIG9ubHkgYmUgcHJvdmlkZWQgd2hlbiBhc3luY0pvYnMgaXMgdHJ1ZVxcbic7XG4gICAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBTTlMgdG9waWMgcHJvcHMgc2VwYXJhdGVseSBmb3IgY2xlYXJlciBlcnJvciBtZXNzYWdlXG4gICAgaWYgKHByb3BzLmV4aXN0aW5nTm90aWZpY2F0aW9uVG9waWNPYmogfHwgcHJvcHMubm90aWZpY2F0aW9uVG9waWNQcm9wcyB8fCBwcm9wcy5leGlzdGluZ05vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleSB8fFxuICAgICAgcHJvcHMuZW5hYmxlTm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleSAhPT0gdW5kZWZpbmVkIHx8IHByb3BzLm5vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleSB8fFxuICAgICAgcHJvcHMubm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uS2V5UHJvcHMpIHtcbiAgICAgIGVycm9yTWVzc2FnZXMgKz0gJ1NOUyB0b3BpYyBwcm9wZXJ0aWVzIGNhbiBvbmx5IGJlIHByb3ZpZGVkIHdoZW4gYXN5bmNKb2JzIGlzIHRydWUnO1xuICAgICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdXNlU2FtZUJ1Y2tldCBpcyB0cnVlLCBubyBkZXN0aW5hdGlvbiBidWNrZXQgcHJvcHMgc2hvdWxkIGJlIHByb3ZpZGVkXG4gIGlmIChwcm9wcy51c2VTYW1lQnVja2V0KSB7XG4gICAgaWYgKHByb3BzLmV4aXN0aW5nRGVzdGluYXRpb25CdWNrZXRPYmogfHwgcHJvcHMuZGVzdGluYXRpb25CdWNrZXRQcm9wcyB8fFxuICAgICAgcHJvcHMuZGVzdGluYXRpb25Mb2dnaW5nQnVja2V0UHJvcHMgfHwgcHJvcHMubG9nRGVzdGluYXRpb25TM0FjY2Vzc0xvZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3JNZXNzYWdlcyArPSAnRGVzdGluYXRpb24gYnVja2V0IHByb3BlcnRpZXMgY2Fubm90IGJlIHByb3ZpZGVkIHdoZW4gdXNlU2FtZUJ1Y2tldCBpcyB0cnVlXFxuJztcbiAgICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIGNyZWF0ZUN1c3RvbWVyTWFuYWdlZE91dHB1dEJ1Y2tldCBpcyBleHBsaWNpdGx5IGZhbHNlLCBubyBvdXRwdXQgYnVja2V0IHByb3BlcnRpZXMgc2hvdWxkIGJlIHByb3ZpZGVkXG4gIGlmIChwcm9wcy5jcmVhdGVDdXN0b21lck1hbmFnZWRPdXRwdXRCdWNrZXQgPT09IGZhbHNlKSB7XG4gICAgaWYgKHByb3BzLmV4aXN0aW5nRGVzdGluYXRpb25CdWNrZXRPYmogfHwgcHJvcHMuZGVzdGluYXRpb25CdWNrZXRQcm9wcyB8fFxuICAgICAgcHJvcHMuZGVzdGluYXRpb25Mb2dnaW5nQnVja2V0UHJvcHMgfHwgcHJvcHMubG9nRGVzdGluYXRpb25TM0FjY2Vzc0xvZ3MgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgcHJvcHMudXNlU2FtZUJ1Y2tldCkge1xuICAgICAgZXJyb3JNZXNzYWdlcyArPSAnT3V0cHV0IGJ1Y2tldCBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBwcm92aWRlZCB3aGVuIGNyZWF0ZUN1c3RvbWVyTWFuYWdlZE91dHB1dEJ1Y2tldCBpcyBmYWxzZSc7XG4gICAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuXG4vKlxuICogQmVjYXVzZSB0aGUgbm90aWZpY2F0aW9uIHRvcGljIGlzIGEgc2Vjb25kYXJ5IHJlc291cmNlXG4gKiBmb3IgdGV4dHJhY3QgY29uZmlndXJhdGlvbnMsIHRoZSBwcm9wIG5hbWVzIGFyZSBkaWZmZXJlbnRcbiAqIHRoYW4gd2hlbiBTTlMgaXMgcHJpbWFyeSByZXNvdXJjZS4gQ2hlY2tUZXh0cmFjdFNuc1Byb3BzKCkgaXNcbiAqIGEgY2xvbmUgb2YgdGhlIENoZWNrU25zUHJvcHMoKSBpbiBzbnMtaGVscGVyLnRzIHVzaW5nIHRoZVxuICogVGV4dHJhY3Qgbm90aWZpY2F0aW9uIHRvcGljIHNwZWNpZmljIG5hbWVzLiBUaGlzIGhhcyBhIHJpc2sgb2ZcbiAqIGdldHRpbmcgb3V0IG9mIHN5bmMgZ29pbmcgZm9yd2FyZCAtIGJ1dCB0aGlzIHNlZW1lZCBhIGJldHRlclxuICogc29sdXRpb24gdGhhbiBDaGVja1Nuc1Byb3BzIHRocm93aW5nIGVycm9yIG1lc3NhZ2VzIHdpdGggdGhlXG4gKiB3cm9uZyBwcm9wZXJ0eSBuYW1lcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0cmFjdFNuc1Byb3BzIHtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uVG9waWNQcm9wcz86IHNucy5Ub3BpY1Byb3BzLFxuICByZWFkb25seSBleGlzdGluZ05vdGlmaWNhdGlvblRvcGljT2JqPzogc25zLlRvcGljLFxuICByZWFkb25seSBleGlzdGluZ05vdGlmaWNhdGlvblRvcGljT2JqZWN0Pzogc25zLlRvcGljLFxuICByZWFkb25seSBub3RpZmljYXRpb25Ub3BpY0VuY3J5cHRpb25LZXk/OiBrbXMuS2V5LFxuICByZWFkb25seSBub3RpZmljYXRpb25Ub3BpY0VuY3J5cHRpb25LZXlQcm9wcz86IGttcy5LZXlQcm9wc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tUZXh0cmFjdFNuc1Byb3BzKHByb3BzT2JqZWN0OiBUZXh0cmFjdFNuc1Byb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgLy8gRmFyZ2F0ZVRvU25zIHVzZWQgVG9waWNPYmplY3QgaW5zdGVhZCBvZiBUb3BpY09iaiAtIHRvIGZpeCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSwgc28gd2VcbiAgLy8gbXVzdCBsb29rIGZvciBib3RoIGhlcmUuXG4gIGlmIChwcm9wc09iamVjdC5ub3RpZmljYXRpb25Ub3BpY1Byb3BzICYmIChwcm9wc09iamVjdC5leGlzdGluZ05vdGlmaWNhdGlvblRvcGljT2JqIHx8IHByb3BzT2JqZWN0LmV4aXN0aW5nTm90aWZpY2F0aW9uVG9waWNPYmplY3QpKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBub3RpZmljYXRpb25Ub3BpY1Byb3BzIG9yIGV4aXN0aW5nTm90aWZpY2F0aW9uVG9waWNPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0Lm5vdGlmaWNhdGlvblRvcGljUHJvcHM/Lm1hc3RlcktleSAmJiBwcm9wc09iamVjdC5ub3RpZmljYXRpb25Ub3BpY0VuY3J5cHRpb25LZXkpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIG5vdGlmaWNhdGlvblRvcGljUHJvcHMubWFzdGVyS2V5IG9yIG5vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleSwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3Qubm90aWZpY2F0aW9uVG9waWNQcm9wcz8ubWFzdGVyS2V5ICYmIHByb3BzT2JqZWN0Lm5vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleVByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBub3RpZmljYXRpb25Ub3BpY1Byb3BzLm1hc3RlcktleSBvciBub3RpZmljYXRpb25Ub3BpY0VuY3J5cHRpb25LZXlQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3Qubm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uS2V5ICYmIHByb3BzT2JqZWN0Lm5vdGlmaWNhdGlvblRvcGljRW5jcnlwdGlvbktleVByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBub3RpZmljYXRpb25Ub3BpY0VuY3J5cHRpb25LZXkgb3Igbm90aWZpY2F0aW9uVG9waWNFbmNyeXB0aW9uS2V5UHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/vpc-helper.d.ts
CHANGED
|
@@ -56,7 +56,8 @@ export declare enum ServiceEndpointTypes {
|
|
|
56
56
|
BEDROCK_RUNTIME = "BEDROCK_RUNTIME",
|
|
57
57
|
KENDRA = "KENDRA",
|
|
58
58
|
TRANSCRIBE = "TRANSCRIBE",
|
|
59
|
-
TRANSLATE = "TRANSLATE"
|
|
59
|
+
TRANSLATE = "TRANSLATE",
|
|
60
|
+
TEXTRACT = "TEXTRACT"
|
|
60
61
|
}
|
|
61
62
|
/**
|
|
62
63
|
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
|