@aws-cdk/toolkit-lib 0.3.7 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -51
- package/api-extractor.json +1 -1
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/deploy/index.d.ts +106 -34
- package/lib/actions/deploy/index.js +2 -17
- package/lib/actions/deploy/private/deploy-options.d.ts +1 -90
- package/lib/actions/deploy/private/deploy-options.js +1 -1
- package/lib/actions/deploy/private/helpers.d.ts +1 -6
- package/lib/actions/deploy/private/helpers.js +1 -9
- package/lib/actions/diff/index.d.ts +1 -9
- package/lib/actions/diff/index.js +1 -1
- package/lib/actions/diff/private/helpers.d.ts +2 -1
- package/lib/actions/diff/private/helpers.js +6 -6
- package/lib/actions/drift/index.d.ts +52 -0
- package/lib/actions/drift/index.js +3 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +2 -1
- package/lib/actions/watch/index.d.ts +7 -1
- package/lib/actions/watch/index.js +1 -1
- package/lib/api/aws-auth/awscli-compatible.d.ts +4 -4
- package/lib/api/aws-auth/awscli-compatible.js +7 -9
- package/lib/api/aws-auth/base-credentials.d.ts +109 -0
- package/lib/api/aws-auth/base-credentials.js +79 -0
- package/lib/api/aws-auth/credential-plugins.js +3 -3
- package/lib/api/aws-auth/index.d.ts +1 -0
- package/lib/api/aws-auth/index.js +2 -1
- package/lib/api/aws-auth/private/index.d.ts +0 -1
- package/lib/api/aws-auth/private/index.js +1 -2
- package/lib/api/aws-auth/sdk-provider.d.ts +23 -27
- package/lib/api/aws-auth/sdk-provider.js +19 -16
- package/lib/api/aws-auth/sdk.d.ts +9 -5
- package/lib/api/aws-auth/sdk.js +6 -3
- package/lib/api/aws-auth/types.d.ts +7 -87
- package/lib/api/aws-auth/types.js +1 -74
- package/lib/api/bootstrap/bootstrap-environment.d.ts +1 -1
- package/lib/api/bootstrap/bootstrap-environment.js +8 -9
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +1 -1
- package/lib/api/bootstrap/deploy-bootstrap.js +4 -5
- package/lib/api/cloud-assembly/context-store.d.ts +78 -0
- package/lib/api/cloud-assembly/context-store.js +160 -0
- package/lib/api/cloud-assembly/environment.d.ts +19 -16
- package/lib/api/cloud-assembly/environment.js +21 -12
- package/lib/api/cloud-assembly/index.d.ts +1 -0
- package/lib/api/cloud-assembly/index.js +2 -1
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +3 -10
- package/lib/api/cloud-assembly/private/context-aware-source.js +6 -11
- package/lib/api/cloud-assembly/private/exec.d.ts +1 -1
- package/lib/api/cloud-assembly/private/exec.js +2 -5
- package/lib/api/cloud-assembly/private/helpers.d.ts +9 -0
- package/lib/api/cloud-assembly/private/helpers.js +44 -0
- package/lib/api/cloud-assembly/private/index.d.ts +0 -1
- package/lib/api/cloud-assembly/private/index.js +1 -2
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +27 -16
- package/lib/api/cloud-assembly/private/prepare-source.js +49 -46
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/private/stack-assembly.js +1 -1
- package/lib/api/cloud-assembly/source-builder.d.ts +142 -14
- package/lib/api/cloud-assembly/source-builder.js +307 -1
- package/lib/api/cloud-assembly/stack-assembly.js +3 -4
- package/lib/api/cloudformation/template-body-parameter.d.ts +1 -1
- package/lib/api/cloudformation/template-body-parameter.js +4 -5
- package/lib/api/context.d.ts +1 -1
- package/lib/api/context.js +1 -1
- package/lib/api/deployments/asset-publishing.js +15 -16
- package/lib/api/deployments/assets.d.ts +1 -1
- package/lib/api/deployments/assets.js +4 -5
- package/lib/api/deployments/cfn-api.d.ts +1 -1
- package/lib/api/deployments/cfn-api.js +14 -15
- package/lib/api/deployments/checks.d.ts +1 -1
- package/lib/api/deployments/checks.js +3 -4
- package/lib/api/deployments/deploy-stack.d.ts +14 -3
- package/lib/api/deployments/deploy-stack.js +73 -49
- package/lib/api/deployments/deployments.d.ts +13 -2
- package/lib/api/deployments/deployments.js +10 -9
- package/lib/api/deployments/index.d.ts +0 -1
- package/lib/api/deployments/index.js +1 -2
- package/lib/api/diff/diff-formatter.d.ts +3 -3
- package/lib/api/diff/diff-formatter.js +6 -6
- package/lib/api/drift/drift-formatter.d.ts +81 -0
- package/lib/api/drift/drift-formatter.js +201 -0
- package/lib/api/drift/drift.d.ts +12 -0
- package/lib/api/drift/drift.js +63 -0
- package/lib/api/drift/index.d.ts +2 -0
- package/lib/api/drift/index.js +19 -0
- package/lib/api/environment/environment-access.d.ts +1 -1
- package/lib/api/environment/environment-access.js +3 -4
- package/lib/api/environment/environment-resources.d.ts +1 -1
- package/lib/api/environment/environment-resources.js +5 -6
- package/lib/api/garbage-collection/garbage-collector.js +44 -35
- package/lib/api/garbage-collection/progress-printer.d.ts +1 -1
- package/lib/api/garbage-collection/progress-printer.js +3 -4
- package/lib/api/garbage-collection/stack-refresh.d.ts +1 -1
- package/lib/api/garbage-collection/stack-refresh.js +3 -4
- package/lib/api/hotswap/common.d.ts +9 -4
- package/lib/api/hotswap/common.js +11 -4
- package/lib/api/hotswap/ecs-services.js +2 -2
- package/lib/api/hotswap/hotswap-deployments.js +3 -3
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/io/io-host.d.ts +15 -1
- package/lib/api/io/io-host.js +1 -1
- package/lib/api/io/io-message.d.ts +7 -10
- package/lib/api/io/io-message.js +1 -1
- package/lib/api/io/private/io-default-messages.d.ts +7 -3
- package/lib/api/io/private/io-default-messages.js +23 -21
- package/lib/api/io/private/io-helper.d.ts +4 -4
- package/lib/api/io/private/io-helper.js +18 -14
- package/lib/api/io/private/messages.d.ts +18 -14
- package/lib/api/io/private/messages.js +52 -54
- package/lib/api/io/private/span.d.ts +18 -11
- package/lib/api/io/private/span.js +60 -42
- package/lib/api/io/toolkit-action.d.ts +1 -1
- package/lib/api/io/toolkit-action.js +1 -1
- package/lib/api/logs-monitor/find-cloudwatch-logs.js +2 -3
- package/lib/api/notices/cached-data-source.js +2 -1
- package/lib/api/notices/filter.d.ts +1 -1
- package/lib/api/notices/filter.js +2 -3
- package/lib/api/notices/notices.d.ts +17 -4
- package/lib/api/notices/notices.js +2 -2
- package/lib/api/notices/web-data-source.d.ts +30 -3
- package/lib/api/notices/web-data-source.js +37 -10
- package/lib/api/refactoring/cloudformation.d.ts +7 -5
- package/lib/api/refactoring/cloudformation.js +1 -1
- package/lib/api/refactoring/digest.d.ts +2 -2
- package/lib/api/refactoring/digest.js +25 -61
- package/lib/api/refactoring/execution.d.ts +1 -1
- package/lib/api/refactoring/execution.js +50 -25
- package/lib/api/refactoring/graph.d.ts +15 -0
- package/lib/api/refactoring/graph.js +108 -0
- package/lib/api/refactoring/index.js +12 -6
- package/lib/api/resource-import/importer.d.ts +2 -1
- package/lib/api/resource-import/importer.js +28 -28
- package/lib/api/resource-import/migrator.js +4 -4
- package/lib/api/toolkit-info.d.ts +1 -1
- package/lib/api/toolkit-info.js +3 -4
- package/lib/api/work-graph/work-graph.d.ts +1 -1
- package/lib/api/work-graph/work-graph.js +4 -5
- package/lib/context-providers/index.d.ts +1 -2
- package/lib/context-providers/index.js +6 -4
- package/lib/index_bg.wasm +0 -0
- package/lib/payloads/context.d.ts +0 -1
- package/lib/payloads/context.js +1 -1
- package/lib/payloads/deploy.d.ts +2 -2
- package/lib/payloads/deploy.js +1 -1
- package/lib/payloads/destroy.d.ts +3 -3
- package/lib/payloads/destroy.js +1 -1
- package/lib/payloads/diff.d.ts +46 -5
- package/lib/payloads/diff.js +1 -1
- package/lib/payloads/drift.d.ts +12 -0
- package/lib/payloads/drift.js +3 -0
- package/lib/payloads/gc.d.ts +12 -0
- package/lib/payloads/gc.js +3 -0
- package/lib/payloads/import.d.ts +45 -0
- package/lib/payloads/import.js +3 -0
- package/lib/payloads/index.d.ts +3 -0
- package/lib/payloads/index.js +4 -1
- package/lib/payloads/rollback.d.ts +2 -2
- package/lib/payloads/rollback.js +1 -1
- package/lib/payloads/stack-activity.d.ts +2 -2
- package/lib/payloads/stack-activity.js +1 -1
- package/lib/payloads/types.d.ts +10 -0
- package/lib/payloads/types.js +1 -1
- package/lib/toolkit/non-interactive-io-host.js +2 -2
- package/lib/toolkit/private/index.d.ts +2 -1
- package/lib/toolkit/private/index.js +1 -1
- package/lib/toolkit/toolkit.d.ts +9 -2
- package/lib/toolkit/toolkit.js +169 -92
- package/lib/util/objects.d.ts +4 -0
- package/lib/util/objects.js +8 -1
- package/package.json +13 -16
- package/lib/actions/import/index.d.ts +0 -21
- package/lib/actions/import/index.js +0 -3
- package/lib/api/aws-auth/proxy-agent.d.ts +0 -13
- package/lib/api/aws-auth/proxy-agent.js +0 -54
- package/lib/api/cloud-assembly/private/source-builder.d.ts +0 -52
- package/lib/api/cloud-assembly/private/source-builder.js +0 -262
- package/lib/api/deployments/deployment-method.d.ts +0 -24
- package/lib/api/deployments/deployment-method.js +0 -3
- package/lib/api/shared-private.d.ts +0 -8
- package/lib/api/shared-private.js +0 -32
|
@@ -55,7 +55,7 @@ export declare class DiffMethod {
|
|
|
55
55
|
private constructor();
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* Options for the diff method
|
|
59
59
|
*/
|
|
60
60
|
export interface DiffOptions {
|
|
61
61
|
/**
|
|
@@ -92,12 +92,4 @@ export interface DiffOptions {
|
|
|
92
92
|
* @default 3
|
|
93
93
|
*/
|
|
94
94
|
readonly contextLines?: number;
|
|
95
|
-
/**
|
|
96
|
-
* Only include broadened security changes in the diff
|
|
97
|
-
*
|
|
98
|
-
* @default false
|
|
99
|
-
*
|
|
100
|
-
* @deprecated implement in IoHost
|
|
101
|
-
*/
|
|
102
|
-
readonly securityOnly?: boolean;
|
|
103
95
|
}
|
|
@@ -45,4 +45,4 @@ class DiffMethod {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
exports.DiffMethod = DiffMethod;
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0EsTUFBYSxVQUFVO0lBd0NIO0lBQ0E7SUF4Q2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBbUI7WUFDbkQsWUFBbUIsSUFBMEI7Z0JBQzNDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUNrQixNQUFxRCxFQUNyRCxPQUFnRjtRQURoRixXQUFNLEdBQU4sTUFBTSxDQUErQztRQUNyRCxZQUFPLEdBQVAsT0FBTyxDQUF5RTtJQUVsRyxDQUFDO0NBQ0Y7QUE1Q0QsZ0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBkaWZmIGFnYWluc3QgdGhlIHRlbXBsYXRlIGFmdGVyIHRoZSBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm1zIGluc2lkZSBpdCBoYXZlIGJlZW4gZXhlY3V0ZWRcbiAgICogKGFzIG9wcG9zZWQgdG8gdGhlIG9yaWdpbmFsIHRlbXBsYXRlLCB0aGUgZGVmYXVsdCwgd2hpY2ggY29udGFpbnMgdGhlIHVucHJvY2Vzc2VkIFRyYW5zZm9ybXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGlmZk9wdGlvbnMgZXh0ZW5kcyBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmYWxsaW5nIGJhY2sgdG8gdGVtcGxhdGUtYmFzZWQgZGlmZiBpbiBjYXNlIGNyZWF0aW5nIHRoZSBjaGFuZ2VzZXQgaXMgbm90IHBvc3NpYmxlIG9yIHJlc3VsdHMgaW4gYW4gZXJyb3IuXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIGZvciBzdGFja3MgY29udGFpbmluZyBuZXN0ZWQgc3RhY2tzIG9yIHdoZW4gY2hhbmdlIHNldCBwZXJtaXNzaW9ucyBhcmVuJ3QgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja1RvVGVtcGxhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBkaWZmIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjaGFuZ2Ugc2V0IGltcG9ydHMgcmVzb3VyY2VzIHRoYXQgYWxyZWFkeSBleGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM/
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0EsTUFBYSxVQUFVO0lBd0NIO0lBQ0E7SUF4Q2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBbUI7WUFDbkQsWUFBbUIsSUFBMEI7Z0JBQzNDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxZQUNrQixNQUFxRCxFQUNyRCxPQUFnRjtRQURoRixXQUFNLEdBQU4sTUFBTSxDQUErQztRQUNyRCxZQUFPLEdBQVAsT0FBTyxDQUF5RTtJQUVsRyxDQUFDO0NBQ0Y7QUE1Q0QsZ0NBNENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBkaWZmIGFnYWluc3QgdGhlIHRlbXBsYXRlIGFmdGVyIHRoZSBDbG91ZEZvcm1hdGlvbiBUcmFuc2Zvcm1zIGluc2lkZSBpdCBoYXZlIGJlZW4gZXhlY3V0ZWRcbiAgICogKGFzIG9wcG9zZWQgdG8gdGhlIG9yaWdpbmFsIHRlbXBsYXRlLCB0aGUgZGVmYXVsdCwgd2hpY2ggY29udGFpbnMgdGhlIHVucHJvY2Vzc2VkIFRyYW5zZm9ybXMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGlmZk9wdGlvbnMgZXh0ZW5kcyBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBmYWxsaW5nIGJhY2sgdG8gdGVtcGxhdGUtYmFzZWQgZGlmZiBpbiBjYXNlIGNyZWF0aW5nIHRoZSBjaGFuZ2VzZXQgaXMgbm90IHBvc3NpYmxlIG9yIHJlc3VsdHMgaW4gYW4gZXJyb3IuXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIGZvciBzdGFja3MgY29udGFpbmluZyBuZXN0ZWQgc3RhY2tzIG9yIHdoZW4gY2hhbmdlIHNldCBwZXJtaXNzaW9ucyBhcmVuJ3QgYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBmYWxsYmFja1RvVGVtcGxhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHdoZW4gY3JlYXRpbmcgYSBkaWZmIGNoYW5nZSBzZXRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjaGFuZ2Ugc2V0IGltcG9ydHMgcmVzb3VyY2VzIHRoYXQgYWxyZWFkeSBleGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1wb3J0RXhpc3RpbmdSZXNvdXJjZXM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsRmlsZURpZmZPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGxvY2FsIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmTWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBhIGNoYW5nZXNldCB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgY3JlYXRlLCBhbmFseXplLCBhbmQgc3Vic2VxdWVudGx5IGRlbGV0ZSBhIGNoYW5nZXNldCBhZ2FpbnN0IHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQ2hhbmdlU2V0KG9wdGlvbnM6IENoYW5nZVNldERpZmZPcHRpb25zID0ge30pOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2hhbmdlU2V0RGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2NoYW5nZS1zZXQnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBUZW1wbGF0ZU9ubHkob3B0aW9uczogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyA9IHt9KTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucykge1xuICAgICAgICBzdXBlcigndGVtcGxhdGUtb25seScsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICAgICAgfVxuICAgIH0ob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgbG9jYWwgdGVtcGxhdGUgZmlsZSB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBMb2NhbEZpbGUocGF0aDogc3RyaW5nKTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IHsgcGF0aDogc3RyaW5nIH07XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogTG9jYWxGaWxlRGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2xvY2FsLWZpbGUnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KHsgcGF0aCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogJ2NoYW5nZS1zZXQnIHwgJ3RlbXBsYXRlLW9ubHknIHwgJ2xvY2FsLWZpbGUnLFxuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBDaGFuZ2VTZXREaWZmT3B0aW9ucyB8IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnMgfCBMb2NhbEZpbGVEaWZmT3B0aW9ucyxcbiAgKSB7XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgZGlmZiBtZXRob2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHN0YWNrc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gY3JlYXRlIGEgc3RhY2sgZGlmZi5cbiAgICpcbiAgICogVXNlIGNoYW5nZXNldCBkaWZmIGZvciB0aGUgaGlnaGVzdCBmaWRlbGl0eSwgaW5jbHVkaW5nIGFuYWx5emUgcmVzb3VyY2UgcmVwbGFjZW1lbnRzLlxuICAgKiBJbiB0aGlzIG1ldGhvZCwgZGlmZiB3aWxsIHVzZSB0aGUgZGVwbG95IHJvbGUgaW5zdGVhZCBvZiB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIFVzZSB0ZW1wbGF0ZS1vbmx5IGRpZmYgZm9yIGEgZmFzdGVyLCBsZXNzIGFjY3VyYXRlIGRpZmYgdGhhdCBkb2Vzbid0IHJlcXVpcmVcbiAgICogcGVybWlzc2lvbnMgdG8gY3JlYXRlIGEgY2hhbmdlLXNldC5cbiAgICpcbiAgICogVXNlIGxvY2FsLXRlbXBsYXRlIGRpZmYgZm9yIGEgZmFzdCwgbG9jYWwtb25seSBkaWZmIHRoYXQgZG9lc24ndCByZXF1aXJlXG4gICAqIGFueSBwZXJtaXNzaW9ucyBvciBpbnRlcm5ldCBhY2Nlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IERpZmZNZXRob2QuQ2hhbmdlU2V0XG4gICAqL1xuICByZWFkb25seSBtZXRob2Q/OiBEaWZmTWV0aG9kO1xuXG4gIC8qKlxuICAgKiBTdHJpY3QgZGlmZiBtb2RlXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIG5vdCBmaWx0ZXIgb3V0IEFXUzo6Q0RLOjpNZXRhZGF0YSByZXNvdXJjZXMsIG1hbmdsZWQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIG9yIHRoZSBDaGVja0Jvb3RzdHJhcFZlcnNpb25SdWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgbGluZXMgb2YgY29udGV4dCB0byBzaG93IGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRMaW5lcz86IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { DiffOptions } from '..';
|
|
2
|
+
import type { SdkProvider } from '../../../api/aws-auth/private';
|
|
2
3
|
import type { StackCollection } from '../../../api/cloud-assembly/stack-collection';
|
|
3
4
|
import type { Deployments } from '../../../api/deployments';
|
|
4
5
|
import type { TemplateInfo } from '../../../api/diff';
|
|
5
|
-
import type { IoHelper
|
|
6
|
+
import type { IoHelper } from '../../../api/io/private';
|
|
6
7
|
export declare function prepareDiff(ioHelper: IoHelper, stacks: StackCollection, deployments: Deployments, sdkProvider: SdkProvider, options: DiffOptions): Promise<TemplateInfo[]>;
|
|
7
8
|
/**
|
|
8
9
|
* Appends all properties from obj2 to obj1.
|
|
@@ -5,8 +5,8 @@ exports.appendObject = appendObject;
|
|
|
5
5
|
const fs = require("fs-extra");
|
|
6
6
|
const uuid = require("uuid");
|
|
7
7
|
const __1 = require("..");
|
|
8
|
+
const cfnApi = require("../../../api/deployments/cfn-api");
|
|
8
9
|
const resource_import_1 = require("../../../api/resource-import");
|
|
9
|
-
const shared_private_1 = require("../../../api/shared-private");
|
|
10
10
|
const toolkit_error_1 = require("../../../toolkit/toolkit-error");
|
|
11
11
|
const util_1 = require("../../../util");
|
|
12
12
|
function prepareDiff(ioHelper, stacks, deployments, sdkProvider, options) {
|
|
@@ -74,12 +74,12 @@ async function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resource
|
|
|
74
74
|
if (!fallBackToTemplate) {
|
|
75
75
|
throw new toolkit_error_1.ToolkitError(`describeStacks call failed with ${e} for ${stack.stackName}, set fallBackToTemplate to true or use DiffMethod.templateOnly to base the diff on template differences.`);
|
|
76
76
|
}
|
|
77
|
-
await ioHelper.
|
|
78
|
-
await ioHelper.
|
|
77
|
+
await ioHelper.defaults.debug(`Checking if the stack ${stack.stackName} exists before creating the changeset has failed, will base the diff on template differences.\n`);
|
|
78
|
+
await ioHelper.defaults.debug((0, util_1.formatErrorMessage)(e));
|
|
79
79
|
stackExists = false;
|
|
80
80
|
}
|
|
81
81
|
if (stackExists) {
|
|
82
|
-
return
|
|
82
|
+
return cfnApi.createDiffChangeSet(ioHelper, {
|
|
83
83
|
stack,
|
|
84
84
|
uuid: uuid.v4(),
|
|
85
85
|
deployments,
|
|
@@ -95,7 +95,7 @@ async function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resource
|
|
|
95
95
|
if (!fallBackToTemplate) {
|
|
96
96
|
throw new toolkit_error_1.ToolkitError(`the stack '${stack.stackName}' has not been deployed to CloudFormation, set fallBackToTemplate to true or use DiffMethod.templateOnly to base the diff on template differences.`);
|
|
97
97
|
}
|
|
98
|
-
await ioHelper.
|
|
98
|
+
await ioHelper.defaults.debug(`the stack '${stack.stackName}' has not been deployed to CloudFormation, skipping changeset creation.`);
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
101
|
}
|
|
@@ -116,4 +116,4 @@ function appendObject(obj1, obj2) {
|
|
|
116
116
|
// Return the modified obj1
|
|
117
117
|
return obj1;
|
|
118
118
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSxrQ0FpQkM7QUFvSUQsb0NBV0M7QUE5S0QsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUU3QiwwQkFBZ0M7QUFLaEMsa0VBQTBGO0FBRTFGLGdFQUF5RDtBQUN6RCxrRUFBOEQ7QUFDOUQsd0NBQXlFO0FBRXpFLFNBQWdCLFdBQVcsQ0FDekIsUUFBa0IsRUFDbEIsTUFBdUIsRUFDdkIsV0FBd0IsRUFDeEIsV0FBd0IsRUFDeEIsT0FBb0I7SUFFcEIsUUFBUSxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxjQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEUsS0FBSyxZQUFZO1lBQ2YsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLEtBQUssZUFBZTtZQUNsQixPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdFLEtBQUssWUFBWTtZQUNmLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUU7WUFDRSxNQUFNLElBQUksNEJBQVksQ0FBQyxJQUFBLHlCQUFrQixFQUFDLHVCQUF1QixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWEsQ0FBQyxNQUF1QixFQUFFLE9BQW9CO0lBQ3hFLE1BQU0sYUFBYSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxDQUF5QixDQUFDO0lBRTlFLDhDQUE4QztJQUM5QyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsTUFBTSxJQUFJLDRCQUFZLENBQ3BCLG1IQUFtSCxDQUNwSCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSw0QkFBWSxDQUFDLHVCQUF1QixhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUQsTUFBTSxRQUFRLEdBQUcsSUFBQSwyQkFBb0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUU1QyxPQUFPLENBQUM7WUFDTixXQUFXLEVBQUUsUUFBUTtZQUNyQixXQUFXLEVBQUUsTUFBTSxDQUFDLFVBQVU7U0FDL0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELEtBQUssVUFBVSxPQUFPLENBQ3BCLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLFdBQXdCLEVBQ3hCLE9BQW9CLEVBQ3BCLFdBQXdCLEVBQ3hCLGdCQUF5QjtJQUV6QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDekIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQXlCLENBQUM7SUFFOUUsOENBQThDO0lBQzlDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxXQUFXLENBQUMsbUNBQW1DLENBQ3BGLEtBQUssRUFDTCxhQUFhLENBQUMsK0JBQStCLENBQzlDLENBQUM7UUFDRixNQUFNLGVBQWUsR0FBRyx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUN0RSxNQUFNLFlBQVksR0FBRyx3QkFBd0IsQ0FBQyxZQUFZLENBQUM7UUFFM0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQ0FBZ0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLElBQUEsMENBQXdCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLGFBQWEsQ0FDdEQsUUFBUSxFQUNSLFdBQVcsRUFDWCxLQUFLLEVBQ0wsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixhQUFhLENBQUMsVUFBVSxFQUN4QixhQUFhLENBQUMsa0JBQWtCLEVBQ2hDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FDdEMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsYUFBYSxDQUFDLElBQUksQ0FBQztZQUNqQixXQUFXLEVBQUUsZUFBZTtZQUM1QixXQUFXLEVBQUUsS0FBSztZQUNsQixRQUFRLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtZQUM3QixZQUFZO1lBQ1osU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWEsQ0FDMUIsUUFBa0IsRUFDbEIsV0FBd0IsRUFDeEIsS0FBd0MsRUFDeEMsV0FBd0IsRUFDeEIsaUJBQXFDLEVBQ3JDLGFBQXFELEVBQUUsRUFDdkQscUJBQThCLElBQUksRUFDbEMsMEJBQW1DLEtBQUs7SUFFeEMsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLElBQUksQ0FBQztRQUNILFdBQVcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxXQUFXLENBQUM7WUFDMUMsS0FBSztZQUNMLFVBQVUsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMzQixhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksNEJBQVksQ0FBQyxtQ0FBbUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxTQUFTLDJHQUEyRyxDQUFDLENBQUM7UUFDak0sQ0FBQztRQUVELE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxtQkFBRSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsS0FBSyxDQUFDLFNBQVMsaUdBQWlHLENBQUMsQ0FBQyxDQUFDO1FBQy9MLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxtQkFBRSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFBLHlCQUFrQixFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sdUJBQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7WUFDMUMsS0FBSztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ2YsV0FBVztZQUNYLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFdBQVc7WUFDWCxVQUFVLEVBQUUsVUFBVTtZQUN0QixpQkFBaUI7WUFDakIsV0FBVyxFQUFFLENBQUMsa0JBQWtCO1lBQ2hDLHVCQUF1QjtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLGNBQWMsS0FBSyxDQUFDLFNBQVMsb0pBQW9KLENBQUMsQ0FBQztRQUM1TSxDQUFDO1FBRUQsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLG1CQUFFLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLGNBQWMsS0FBSyxDQUFDLFNBQVMseUVBQXlFLENBQUMsQ0FBQyxDQUFDO1FBQzVKLE9BQU87SUFDVCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixJQUEyQixFQUMzQixJQUEyQjtJQUUzQiwwREFBMEQ7SUFDMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGlmZk9wdGlvbnMsIERpZmZPcHRpb25zLCBMb2NhbEZpbGVEaWZmT3B0aW9ucyB9IGZyb20gJy4uJztcbmltcG9ydCB7IERpZmZNZXRob2QgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2FwaS9jbG91ZC1hc3NlbWJseS9zdGFjay1jb2xsZWN0aW9uJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZUluZm8gfSBmcm9tICcuLi8uLi8uLi9hcGkvZGlmZic7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlc1RvSW1wb3J0IH0gZnJvbSAnLi4vLi4vLi4vYXBpL3Jlc291cmNlLWltcG9ydCc7XG5pbXBvcnQgeyByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMsIFJlc291cmNlTWlncmF0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvcmVzb3VyY2UtaW1wb3J0JztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIsIFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IElPLCBjZm5BcGkgfSBmcm9tICcuLi8uLi8uLi9hcGkvc2hhcmVkLXByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGRlc2VyaWFsaXplU3RydWN0dXJlLCBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi91dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVEaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIHN3aXRjaCAob3B0aW9ucy5tZXRob2Q/Lm1ldGhvZCA/PyBEaWZmTWV0aG9kLkNoYW5nZVNldCgpLm1ldGhvZCkge1xuICAgIGNhc2UgJ2xvY2FsLWZpbGUnOlxuICAgICAgcmV0dXJuIGxvY2FsRmlsZURpZmYoc3RhY2tzLCBvcHRpb25zKTtcbiAgICBjYXNlICd0ZW1wbGF0ZS1vbmx5JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgZmFsc2UpO1xuICAgIGNhc2UgJ2NoYW5nZS1zZXQnOlxuICAgICAgcmV0dXJuIGNmbkRpZmYoaW9IZWxwZXIsIHN0YWNrcywgZGVwbG95bWVudHMsIG9wdGlvbnMsIHNka1Byb3ZpZGVyLCB0cnVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihmb3JtYXRFcnJvck1lc3NhZ2UoYFVua25vd24gZGlmZiBtZXRob2QgJHtvcHRpb25zLm1ldGhvZH1gKSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9jYWxGaWxlRGlmZihzdGFja3M6IFN0YWNrQ29sbGVjdGlvbiwgb3B0aW9uczogRGlmZk9wdGlvbnMpOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSAob3B0aW9ucy5tZXRob2Q/Lm9wdGlvbnMgPz8ge30pIGFzIExvY2FsRmlsZURpZmZPcHRpb25zO1xuXG4gIC8vIENvbXBhcmUgc2luZ2xlIHN0YWNrIGFnYWluc3QgZml4ZWQgdGVtcGxhdGVcbiAgaWYgKHN0YWNrcy5zdGFja0NvdW50ICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICdDYW4gb25seSBzZWxlY3Qgb25lIHN0YWNrIHdoZW4gY29tcGFyaW5nIHRvIGZpeGVkIHRlbXBsYXRlLiBVc2UgLS1leGNsdXNpdmVseSB0byBhdm9pZCBzZWxlY3RpbmcgbXVsdGlwbGUgc3RhY2tzLicsXG4gICAgKTtcbiAgfVxuXG4gIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMobWV0aG9kT3B0aW9ucy5wYXRoKSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBUaGVyZSBpcyBubyBmaWxlIGF0ICR7bWV0aG9kT3B0aW9ucy5wYXRofWApO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IGZzLnJlYWRGaWxlU3luYyhtZXRob2RPcHRpb25zLnBhdGgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gZGVzZXJpYWxpemVTdHJ1Y3R1cmUoZmlsZSk7XG5cbiAgcmV0dXJuIFt7XG4gICAgb2xkVGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgIG5ld1RlbXBsYXRlOiBzdGFja3MuZmlyc3RTdGFjayxcbiAgfV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNmbkRpZmYoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW5jbHVkZUNoYW5nZVNldDogYm9vbGVhbixcbik6IFByb21pc2U8VGVtcGxhdGVJbmZvW10+IHtcbiAgY29uc3QgdGVtcGxhdGVJbmZvcyA9IFtdO1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBDaGFuZ2VTZXREaWZmT3B0aW9ucztcblxuICAvLyBDb21wYXJlIE4gc3RhY2tzIGFnYWluc3QgZGVwbG95ZWQgdGVtcGxhdGVzXG4gIGZvciAoY29uc3Qgc3RhY2sgb2Ygc3RhY2tzLnN0YWNrQXJ0aWZhY3RzKSB7XG4gICAgY29uc3QgdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzID0gYXdhaXQgZGVwbG95bWVudHMucmVhZEN1cnJlbnRUZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MoXG4gICAgICBzdGFjayxcbiAgICAgIG1ldGhvZE9wdGlvbnMuY29tcGFyZUFnYWluc3RQcm9jZXNzZWRUZW1wbGF0ZSxcbiAgICApO1xuICAgIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZSA9IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcy5kZXBsb3llZFJvb3RUZW1wbGF0ZTtcbiAgICBjb25zdCBuZXN0ZWRTdGFja3MgPSB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MubmVzdGVkU3RhY2tzO1xuXG4gICAgY29uc3QgbWlncmF0b3IgPSBuZXcgUmVzb3VyY2VNaWdyYXRvcih7IGRlcGxveW1lbnRzLCBpb0hlbHBlciB9KTtcbiAgICBjb25zdCByZXNvdXJjZXNUb0ltcG9ydCA9IGF3YWl0IG1pZ3JhdG9yLnRyeUdldFJlc291cmNlcyhhd2FpdCBkZXBsb3ltZW50cy5yZXNvbHZlRW52aXJvbm1lbnQoc3RhY2spKTtcbiAgICBpZiAocmVzb3VyY2VzVG9JbXBvcnQpIHtcbiAgICAgIHJlbW92ZU5vbkltcG9ydFJlc291cmNlcyhzdGFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgY2hhbmdlU2V0ID0gaW5jbHVkZUNoYW5nZVNldCA/IGF3YWl0IGNoYW5nZVNldERpZmYoXG4gICAgICBpb0hlbHBlcixcbiAgICAgIGRlcGxveW1lbnRzLFxuICAgICAgc3RhY2ssXG4gICAgICBzZGtQcm92aWRlcixcbiAgICAgIHJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgbWV0aG9kT3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgICAgbWV0aG9kT3B0aW9ucy5mYWxsYmFja1RvVGVtcGxhdGUsXG4gICAgICBtZXRob2RPcHRpb25zLmltcG9ydEV4aXN0aW5nUmVzb3VyY2VzLFxuICAgICkgOiB1bmRlZmluZWQ7XG5cbiAgICB0ZW1wbGF0ZUluZm9zLnB1c2goe1xuICAgICAgb2xkVGVtcGxhdGU6IGN1cnJlbnRUZW1wbGF0ZSxcbiAgICAgIG5ld1RlbXBsYXRlOiBzdGFjayxcbiAgICAgIGlzSW1wb3J0OiAhIXJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgbmVzdGVkU3RhY2tzLFxuICAgICAgY2hhbmdlU2V0LFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRlbXBsYXRlSW5mb3M7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNoYW5nZVNldERpZmYoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzLFxuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIHJlc291cmNlc1RvSW1wb3J0PzogUmVzb3VyY2VzVG9JbXBvcnQsXG4gIHBhcmFtZXRlcnM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9ID0ge30sXG4gIGZhbGxCYWNrVG9UZW1wbGF0ZTogYm9vbGVhbiA9IHRydWUsXG4gIGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzOiBib29sZWFuID0gZmFsc2UsXG4pOiBQcm9taXNlPGFueSB8IHVuZGVmaW5lZD4ge1xuICBsZXQgc3RhY2tFeGlzdHMgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICBzdGFja0V4aXN0cyA9IGF3YWl0IGRlcGxveW1lbnRzLnN0YWNrRXhpc3RzKHtcbiAgICAgIHN0YWNrLFxuICAgICAgZGVwbG95TmFtZTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgdHJ5TG9va3VwUm9sZTogdHJ1ZSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgaWYgKCFmYWxsQmFja1RvVGVtcGxhdGUpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYGRlc2NyaWJlU3RhY2tzIGNhbGwgZmFpbGVkIHdpdGggJHtlfSBmb3IgJHtzdGFjay5zdGFja05hbWV9LCBzZXQgZmFsbEJhY2tUb1RlbXBsYXRlIHRvIHRydWUgb3IgdXNlIERpZmZNZXRob2QudGVtcGxhdGVPbmx5IHRvIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMuYCk7XG4gICAgfVxuXG4gICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfVE9PTEtJVF9ERUJVRy5tc2coYENoZWNraW5nIGlmIHRoZSBzdGFjayAke3N0YWNrLnN0YWNrTmFtZX0gZXhpc3RzIGJlZm9yZSBjcmVhdGluZyB0aGUgY2hhbmdlc2V0IGhhcyBmYWlsZWQsIHdpbGwgYmFzZSB0aGUgZGlmZiBvbiB0ZW1wbGF0ZSBkaWZmZXJlbmNlcy5cXG5gKSk7XG4gICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfVE9PTEtJVF9ERUJVRy5tc2coZm9ybWF0RXJyb3JNZXNzYWdlKGUpKSk7XG4gICAgc3RhY2tFeGlzdHMgPSBmYWxzZTtcbiAgfVxuXG4gIGlmIChzdGFja0V4aXN0cykge1xuICAgIHJldHVybiBjZm5BcGkuY3JlYXRlRGlmZkNoYW5nZVNldChpb0hlbHBlciwge1xuICAgICAgc3RhY2ssXG4gICAgICB1dWlkOiB1dWlkLnY0KCksXG4gICAgICBkZXBsb3ltZW50cyxcbiAgICAgIHdpbGxFeGVjdXRlOiBmYWxzZSxcbiAgICAgIHNka1Byb3ZpZGVyLFxuICAgICAgcGFyYW1ldGVyczogcGFyYW1ldGVycyxcbiAgICAgIHJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgZmFpbE9uRXJyb3I6ICFmYWxsQmFja1RvVGVtcGxhdGUsXG4gICAgICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoIWZhbGxCYWNrVG9UZW1wbGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgdGhlIHN0YWNrICcke3N0YWNrLnN0YWNrTmFtZX0nIGhhcyBub3QgYmVlbiBkZXBsb3llZCB0byBDbG91ZEZvcm1hdGlvbiwgc2V0IGZhbGxCYWNrVG9UZW1wbGF0ZSB0byB0cnVlIG9yIHVzZSBEaWZmTWV0aG9kLnRlbXBsYXRlT25seSB0byBiYXNlIHRoZSBkaWZmIG9uIHRlbXBsYXRlIGRpZmZlcmVuY2VzLmApO1xuICAgIH1cblxuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcubXNnKGB0aGUgc3RhY2sgJyR7c3RhY2suc3RhY2tOYW1lfScgaGFzIG5vdCBiZWVuIGRlcGxveWVkIHRvIENsb3VkRm9ybWF0aW9uLCBza2lwcGluZyBjaGFuZ2VzZXQgY3JlYXRpb24uYCkpO1xuICAgIHJldHVybjtcbiAgfVxufVxuXG4vKipcbiAqIEFwcGVuZHMgYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyIHRvIG9iajEuXG4gKiBvYmoyIHZhbHVlcyB0YWtlIHByaW9yaXR5IGluIHRoZSBjYXNlIG9mIGNvbGxpc2lvbnMuXG4gKlxuICogQHBhcmFtIG9iajEgVGhlIG9iamVjdCB0byBtb2RpZnlcbiAqIEBwYXJhbSBvYmoyIFRoZSBvYmplY3QgdG8gY29uc3VtZVxuICpcbiAqIEByZXR1cm5zIG9iajEgd2l0aCBhbGwgcHJvcGVydGllcyBmcm9tIG9iajJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZE9iamVjdDxUPihcbiAgb2JqMTogeyBbbmFtZTogc3RyaW5nXTogVCB9LFxuICBvYmoyOiB7IFtuYW1lOiBzdHJpbmddOiBUIH0sXG4pOiB7IFtuYW1lOiBzdHJpbmddOiBUIH0ge1xuICAvLyBEaXJlY3RseSBtb2RpZnkgb2JqMSBieSBhZGRpbmcgYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyXG4gIGZvciAoY29uc3Qga2V5IGluIG9iajIpIHtcbiAgICBvYmoxW2tleV0gPSBvYmoyW2tleV07XG4gIH1cblxuICAvLyBSZXR1cm4gdGhlIG1vZGlmaWVkIG9iajFcbiAgcmV0dXJuIG9iajE7XG59XG4iXX0=
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsa0NBaUJDO0FBb0lELG9DQVdDO0FBL0tELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFFN0IsMEJBQWdDO0FBSWhDLDJEQUEyRDtBQUkzRCxrRUFBMEY7QUFDMUYsa0VBQThEO0FBQzlELHdDQUF5RTtBQUV6RSxTQUFnQixXQUFXLENBQ3pCLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLE9BQW9CO0lBRXBCLFFBQVEsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksY0FBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hFLEtBQUssWUFBWTtZQUNmLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QyxLQUFLLGVBQWU7WUFDbEIsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RSxLQUFLLFlBQVk7WUFDZixPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVFO1lBQ0UsTUFBTSxJQUFJLDRCQUFZLENBQUMsSUFBQSx5QkFBa0IsRUFBQyx1QkFBdUIsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxhQUFhLENBQUMsTUFBdUIsRUFBRSxPQUFvQjtJQUN4RSxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBeUIsQ0FBQztJQUU5RSw4Q0FBOEM7SUFDOUMsSUFBSSxNQUFNLENBQUMsVUFB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QUEyQjtJQUUzQiwwREFBMEQ7SUFDMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGlmZk9wdGlvbnMsIERpZmZPcHRpb25zLCBMb2NhbEZpbGVEaWZmT3B0aW9ucyB9IGZyb20gJy4uJztcbmltcG9ydCB7IERpZmZNZXRob2QgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2RlcGxveW1lbnRzJztcbmltcG9ydCAqIGFzIGNmbkFwaSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMvY2ZuLWFwaSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJy4uLy4uLy4uL2FwaS9kaWZmJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlc1RvSW1wb3J0IH0gZnJvbSAnLi4vLi4vLi4vYXBpL3Jlc291cmNlLWltcG9ydCc7XG5pbXBvcnQgeyByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMsIFJlc291cmNlTWlncmF0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvcmVzb3VyY2UtaW1wb3J0JztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVN0cnVjdHVyZSwgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlRGlmZihcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFja3M6IFN0YWNrQ29sbGVjdGlvbixcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIG9wdGlvbnM6IERpZmZPcHRpb25zLFxuKTogUHJvbWlzZTxUZW1wbGF0ZUluZm9bXT4ge1xuICBzd2l0Y2ggKG9wdGlvbnMubWV0aG9kPy5tZXRob2QgPz8gRGlmZk1ldGhvZC5DaGFuZ2VTZXQoKS5tZXRob2QpIHtcbiAgICBjYXNlICdsb2NhbC1maWxlJzpcbiAgICAgIHJldHVybiBsb2NhbEZpbGVEaWZmKHN0YWNrcywgb3B0aW9ucyk7XG4gICAgY2FzZSAndGVtcGxhdGUtb25seSc6XG4gICAgICByZXR1cm4gY2ZuRGlmZihpb0hlbHBlciwgc3RhY2tzLCBkZXBsb3ltZW50cywgb3B0aW9ucywgc2RrUHJvdmlkZXIsIGZhbHNlKTtcbiAgICBjYXNlICdjaGFuZ2Utc2V0JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgdHJ1ZSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoZm9ybWF0RXJyb3JNZXNzYWdlKGBVbmtub3duIGRpZmYgbWV0aG9kICR7b3B0aW9ucy5tZXRob2R9YCkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvY2FsRmlsZURpZmYoc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sIG9wdGlvbnM6IERpZmZPcHRpb25zKTogUHJvbWlzZTxUZW1wbGF0ZUluZm9bXT4ge1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBMb2NhbEZpbGVEaWZmT3B0aW9ucztcblxuICAvLyBDb21wYXJlIHNpbmdsZSBzdGFjayBhZ2FpbnN0IGZpeGVkIHRlbXBsYXRlXG4gIGlmIChzdGFja3Muc3RhY2tDb3VudCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAnQ2FuIG9ubHkgc2VsZWN0IG9uZSBzdGFjayB3aGVuIGNvbXBhcmluZyB0byBmaXhlZCB0ZW1wbGF0ZS4gVXNlIC0tZXhjbHVzaXZlbHkgdG8gYXZvaWQgc2VsZWN0aW5nIG11bHRpcGxlIHN0YWNrcy4nLFxuICAgICk7XG4gIH1cblxuICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKG1ldGhvZE9wdGlvbnMucGF0aCkpKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgVGhlcmUgaXMgbm8gZmlsZSBhdCAke21ldGhvZE9wdGlvbnMucGF0aH1gKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGUgPSBmcy5yZWFkRmlsZVN5bmMobWV0aG9kT3B0aW9ucy5wYXRoKS50b1N0cmluZygpO1xuICBjb25zdCB0ZW1wbGF0ZSA9IGRlc2VyaWFsaXplU3RydWN0dXJlKGZpbGUpO1xuXG4gIHJldHVybiBbe1xuICAgIG9sZFRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICBuZXdUZW1wbGF0ZTogc3RhY2tzLmZpcnN0U3RhY2ssXG4gIH1dO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjZm5EaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIG9wdGlvbnM6IERpZmZPcHRpb25zLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGluY2x1ZGVDaGFuZ2VTZXQ6IGJvb2xlYW4sXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IHRlbXBsYXRlSW5mb3MgPSBbXTtcbiAgY29uc3QgbWV0aG9kT3B0aW9ucyA9IChvcHRpb25zLm1ldGhvZD8ub3B0aW9ucyA/PyB7fSkgYXMgQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG5cbiAgLy8gQ29tcGFyZSBOIHN0YWNrcyBhZ2FpbnN0IGRlcGxveWVkIHRlbXBsYXRlc1xuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcy5zdGFja0FydGlmYWN0cykge1xuICAgIGNvbnN0IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyA9IGF3YWl0IGRlcGxveW1lbnRzLnJlYWRDdXJyZW50VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzKFxuICAgICAgc3RhY2ssXG4gICAgICBtZXRob2RPcHRpb25zLmNvbXBhcmVBZ2FpbnN0UHJvY2Vzc2VkVGVtcGxhdGUsXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50VGVtcGxhdGUgPSB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MuZGVwbG95ZWRSb290VGVtcGxhdGU7XG4gICAgY29uc3QgbmVzdGVkU3RhY2tzID0gdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLm5lc3RlZFN0YWNrcztcblxuICAgIGNvbnN0IG1pZ3JhdG9yID0gbmV3IFJlc291cmNlTWlncmF0b3IoeyBkZXBsb3ltZW50cywgaW9IZWxwZXIgfSk7XG4gICAgY29uc3QgcmVzb3VyY2VzVG9JbXBvcnQgPSBhd2FpdCBtaWdyYXRvci50cnlHZXRSZXNvdXJjZXMoYXdhaXQgZGVwbG95bWVudHMucmVzb2x2ZUVudmlyb25tZW50KHN0YWNrKSk7XG4gICAgaWYgKHJlc291cmNlc1RvSW1wb3J0KSB7XG4gICAgICByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMoc3RhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGNoYW5nZVNldCA9IGluY2x1ZGVDaGFuZ2VTZXQgPyBhd2FpdCBjaGFuZ2VTZXREaWZmKFxuICAgICAgaW9IZWxwZXIsXG4gICAgICBkZXBsb3ltZW50cyxcbiAgICAgIHN0YWNrLFxuICAgICAgc2RrUHJvdmlkZXIsXG4gICAgICByZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIG1ldGhvZE9wdGlvbnMucGFyYW1ldGVycyxcbiAgICAgIG1ldGhvZE9wdGlvbnMuZmFsbGJhY2tUb1RlbXBsYXRlLFxuICAgICAgbWV0aG9kT3B0aW9ucy5pbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgICApIDogdW5kZWZpbmVkO1xuXG4gICAgdGVtcGxhdGVJbmZvcy5wdXNoKHtcbiAgICAgIG9sZFRlbXBsYXRlOiBjdXJyZW50VGVtcGxhdGUsXG4gICAgICBuZXdUZW1wbGF0ZTogc3RhY2ssXG4gICAgICBpc0ltcG9ydDogISFyZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIG5lc3RlZFN0YWNrcyxcbiAgICAgIGNoYW5nZVNldCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wbGF0ZUluZm9zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaGFuZ2VTZXREaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICByZXNvdXJjZXNUb0ltcG9ydD86IFJlc291cmNlc1RvSW1wb3J0LFxuICBwYXJhbWV0ZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHt9LFxuICBmYWxsQmFja1RvVGVtcGxhdGU6IGJvb2xlYW4gPSB0cnVlLFxuICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlczogYm9vbGVhbiA9IGZhbHNlLFxuKTogUHJvbWlzZTxhbnkgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IHN0YWNrRXhpc3RzID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgc3RhY2tFeGlzdHMgPSBhd2FpdCBkZXBsb3ltZW50cy5zdGFja0V4aXN0cyh7XG4gICAgICBzdGFjayxcbiAgICAgIGRlcGxveU5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgIHRyeUxvb2t1cFJvbGU6IHRydWUsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmICghZmFsbEJhY2tUb1RlbXBsYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBkZXNjcmliZVN0YWNrcyBjYWxsIGZhaWxlZCB3aXRoICR7ZX0gZm9yICR7c3RhY2suc3RhY2tOYW1lfSwgc2V0IGZhbGxCYWNrVG9UZW1wbGF0ZSB0byB0cnVlIG9yIHVzZSBEaWZmTWV0aG9kLnRlbXBsYXRlT25seSB0byBiYXNlIHRoZSBkaWZmIG9uIHRlbXBsYXRlIGRpZmZlcmVuY2VzLmApO1xuICAgIH1cblxuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBDaGVja2luZyBpZiB0aGUgc3RhY2sgJHtzdGFjay5zdGFja05hbWV9IGV4aXN0cyBiZWZvcmUgY3JlYXRpbmcgdGhlIGNoYW5nZXNldCBoYXMgZmFpbGVkLCB3aWxsIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMuXFxuYCk7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0RXJyb3JNZXNzYWdlKGUpKTtcbiAgICBzdGFja0V4aXN0cyA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHN0YWNrRXhpc3RzKSB7XG4gICAgcmV0dXJuIGNmbkFwaS5jcmVhdGVEaWZmQ2hhbmdlU2V0KGlvSGVscGVyLCB7XG4gICAgICBzdGFjayxcbiAgICAgIHV1aWQ6IHV1aWQudjQoKSxcbiAgICAgIGRlcGxveW1lbnRzLFxuICAgICAgd2lsbEV4ZWN1dGU6IGZhbHNlLFxuICAgICAgc2RrUHJvdmlkZXIsXG4gICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzLFxuICAgICAgcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICBmYWlsT25FcnJvcjogIWZhbGxCYWNrVG9UZW1wbGF0ZSxcbiAgICAgIGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzLFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGlmICghZmFsbEJhY2tUb1RlbXBsYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB0aGUgc3RhY2sgJyR7c3RhY2suc3RhY2tOYW1lfScgaGFzIG5vdCBiZWVuIGRlcGxveWVkIHRvIENsb3VkRm9ybWF0aW9uLCBzZXQgZmFsbEJhY2tUb1RlbXBsYXRlIHRvIHRydWUgb3IgdXNlIERpZmZNZXRob2QudGVtcGxhdGVPbmx5IHRvIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMuYCk7XG4gICAgfVxuXG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYHRoZSBzdGFjayAnJHtzdGFjay5zdGFja05hbWV9JyBoYXMgbm90IGJlZW4gZGVwbG95ZWQgdG8gQ2xvdWRGb3JtYXRpb24sIHNraXBwaW5nIGNoYW5nZXNldCBjcmVhdGlvbi5gKTtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBlbmRzIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMiB0byBvYmoxLlxuICogb2JqMiB2YWx1ZXMgdGFrZSBwcmlvcml0eSBpbiB0aGUgY2FzZSBvZiBjb2xsaXNpb25zLlxuICpcbiAqIEBwYXJhbSBvYmoxIFRoZSBvYmplY3QgdG8gbW9kaWZ5XG4gKiBAcGFyYW0gb2JqMiBUaGUgb2JqZWN0IHRvIGNvbnN1bWVcbiAqXG4gKiBAcmV0dXJucyBvYmoxIHdpdGggYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRPYmplY3Q8VD4oXG4gIG9iajE6IHsgW25hbWU6IHN0cmluZ106IFQgfSxcbiAgb2JqMjogeyBbbmFtZTogc3RyaW5nXTogVCB9LFxuKTogeyBbbmFtZTogc3RyaW5nXTogVCB9IHtcbiAgLy8gRGlyZWN0bHkgbW9kaWZ5IG9iajEgYnkgYWRkaW5nIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMlxuICBmb3IgKGNvbnN0IGtleSBpbiBvYmoyKSB7XG4gICAgb2JqMVtrZXldID0gb2JqMltrZXldO1xuICB9XG5cbiAgLy8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmoxXG4gIHJldHVybiBvYmoxO1xufVxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { StackSelector } from '../../api/cloud-assembly';
|
|
2
|
+
export interface DriftOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Select stacks to check for drift
|
|
5
|
+
*
|
|
6
|
+
* @default - all stacks
|
|
7
|
+
*/
|
|
8
|
+
readonly stacks?: StackSelector;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The different types of drift as formatted drift output
|
|
12
|
+
*
|
|
13
|
+
* A missing type implies no drift of this type.
|
|
14
|
+
* If no drift was detected at all, all will be missing.
|
|
15
|
+
*/
|
|
16
|
+
export interface FormattedDrift {
|
|
17
|
+
/**
|
|
18
|
+
* Resources that have not changed
|
|
19
|
+
*/
|
|
20
|
+
readonly unchanged?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Resources that were not checked for drift
|
|
23
|
+
*/
|
|
24
|
+
readonly unchecked?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Resources with drift
|
|
27
|
+
*/
|
|
28
|
+
readonly modified?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Resources that have been deleted (drift)
|
|
31
|
+
*/
|
|
32
|
+
readonly deleted?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Combined drift for selected stacks of the app
|
|
36
|
+
*/
|
|
37
|
+
export interface DriftResult {
|
|
38
|
+
/**
|
|
39
|
+
* Number of resources with drift. If undefined, then an error occurred
|
|
40
|
+
* and resources were not properly checked for drift.
|
|
41
|
+
*/
|
|
42
|
+
readonly numResourcesWithDrift: number;
|
|
43
|
+
/**
|
|
44
|
+
* How many resources were not checked for drift. If undefined, then an
|
|
45
|
+
* error occurred and resources were not properly checked for drift.
|
|
46
|
+
*/
|
|
47
|
+
readonly numResourcesUnchecked: number;
|
|
48
|
+
/**
|
|
49
|
+
* Complete formatted drift
|
|
50
|
+
*/
|
|
51
|
+
readonly formattedDrift: FormattedDrift;
|
|
52
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEcmlmdE9wdGlvbnMge1xuICAvKipcbiAgICogU2VsZWN0IHN0YWNrcyB0byBjaGVjayBmb3IgZHJpZnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xufVxuXG4vKipcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZHJpZnQgYXMgZm9ybWF0dGVkIGRyaWZ0IG91dHB1dFxuICpcbiAqIEEgbWlzc2luZyB0eXBlIGltcGxpZXMgbm8gZHJpZnQgb2YgdGhpcyB0eXBlLlxuICogSWYgbm8gZHJpZnQgd2FzIGRldGVjdGVkIGF0IGFsbCwgYWxsIHdpbGwgYmUgbWlzc2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXR0ZWREcmlmdCB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCBoYXZlIG5vdCBjaGFuZ2VkXG4gICAqL1xuICByZWFkb25seSB1bmNoYW5nZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlcyB0aGF0IHdlcmUgbm90IGNoZWNrZWQgZm9yIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSB1bmNoZWNrZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlcyB3aXRoIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSBtb2RpZmllZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQgKGRyaWZ0KVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21iaW5lZCBkcmlmdCBmb3Igc2VsZWN0ZWQgc3RhY2tzIG9mIHRoZSBhcHBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcmlmdFJlc3VsdCB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcmVzb3VyY2VzIHdpdGggZHJpZnQuIElmIHVuZGVmaW5lZCwgdGhlbiBhbiBlcnJvciBvY2N1cnJlZFxuICAgKiBhbmQgcmVzb3VyY2VzIHdlcmUgbm90IHByb3Blcmx5IGNoZWNrZWQgZm9yIGRyaWZ0LlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtUmVzb3VyY2VzV2l0aERyaWZ0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IHJlc291cmNlcyB3ZXJlIG5vdCBjaGVja2VkIGZvciBkcmlmdC4gSWYgdW5kZWZpbmVkLCB0aGVuIGFuXG4gICAqIGVycm9yIG9jY3VycmVkIGFuZCByZXNvdXJjZXMgd2VyZSBub3QgcHJvcGVybHkgY2hlY2tlZCBmb3IgZHJpZnQuXG4gICAqL1xuICByZWFkb25seSBudW1SZXNvdXJjZXNVbmNoZWNrZWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQ29tcGxldGUgZm9ybWF0dGVkIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSBmb3JtYXR0ZWREcmlmdDogRm9ybWF0dGVkRHJpZnQ7XG59XG4iXX0=
|
package/lib/actions/index.d.ts
CHANGED
package/lib/actions/index.js
CHANGED
|
@@ -18,9 +18,10 @@ __exportStar(require("./bootstrap"), exports);
|
|
|
18
18
|
__exportStar(require("./deploy"), exports);
|
|
19
19
|
__exportStar(require("./destroy"), exports);
|
|
20
20
|
__exportStar(require("./diff"), exports);
|
|
21
|
+
__exportStar(require("./drift"), exports);
|
|
21
22
|
__exportStar(require("./list"), exports);
|
|
22
23
|
__exportStar(require("./refactor"), exports);
|
|
23
24
|
__exportStar(require("./rollback"), exports);
|
|
24
25
|
__exportStar(require("./synth"), exports);
|
|
25
26
|
__exportStar(require("./watch"), exports);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIseUNBQXVCO0FBQ3ZCLDBDQUF3QjtBQUN4Qix5Q0FBdUI7QUFDdkIsNkNBQTJCO0FBQzNCLDZDQUEyQjtBQUMzQiwwQ0FBd0I7QUFDeEIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ib290c3RyYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXBsb3knO1xuZXhwb3J0ICogZnJvbSAnLi9kZXN0cm95JztcbmV4cG9ydCAqIGZyb20gJy4vZGlmZic7XG5leHBvcnQgKiBmcm9tICcuL2RyaWZ0JztcbmV4cG9ydCAqIGZyb20gJy4vbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZmFjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcm9sbGJhY2snO1xuZXhwb3J0ICogZnJvbSAnLi9zeW50aCc7XG5leHBvcnQgKiBmcm9tICcuL3dhdGNoJztcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BaseDeployOptions } from '../deploy
|
|
1
|
+
import type { DeploymentMethod, BaseDeployOptions } from '../deploy';
|
|
2
2
|
export interface WatchOptions extends BaseDeployOptions {
|
|
3
3
|
/**
|
|
4
4
|
* Watch the files in this list
|
|
@@ -18,4 +18,10 @@ export interface WatchOptions extends BaseDeployOptions {
|
|
|
18
18
|
* @default process.cwd()
|
|
19
19
|
*/
|
|
20
20
|
readonly watchDir?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Deployment method
|
|
23
|
+
*
|
|
24
|
+
* @default HotswapDeployment
|
|
25
|
+
*/
|
|
26
|
+
readonly deploymentMethod?: DeploymentMethod;
|
|
21
27
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50TWV0aG9kLCBCYXNlRGVwbG95T3B0aW9ucyB9IGZyb20gJy4uL2RlcGxveSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hPcHRpb25zIGV4dGVuZHMgQmFzZURlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogV2F0Y2ggdGhlIGZpbGVzIGluIHRoaXMgbGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFtdXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElnbm9yZSB3YXRjaGluZyB0aGUgZmlsZXMgaW4gdGhpcyBsaXN0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gW11cbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHJvb3QgZGlyZWN0b3J5IHVzZWQgZm9yIHdhdGNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBwcm9jZXNzLmN3ZCgpXG4gICAqL1xuICByZWFkb25seSB3YXRjaERpcj86IHN0cmluZztcblxuICAvKipcbiAgICogRGVwbG95bWVudCBtZXRob2RcbiAgICpcbiAgICogQGRlZmF1bHQgSG90c3dhcERlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kO1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { Agent } from 'node:https';
|
|
1
2
|
import type { SDKv3CompatibleCredentialProvider } from '@aws-cdk/cli-plugin-contract';
|
|
2
|
-
import type {
|
|
3
|
+
import type { RequestHandlerSettings } from './base-credentials';
|
|
3
4
|
import type { ISdkLogger } from './sdk-logger';
|
|
4
|
-
import type { SdkHttpOptions } from './types';
|
|
5
5
|
import { type IoHelper } from '../io/private';
|
|
6
6
|
/**
|
|
7
7
|
* Behaviors to match AWS CLI
|
|
@@ -15,7 +15,7 @@ export declare class AwsCliCompatible {
|
|
|
15
15
|
private readonly ioHelper;
|
|
16
16
|
private readonly requestHandler;
|
|
17
17
|
private readonly logger?;
|
|
18
|
-
constructor(ioHelper: IoHelper, requestHandler:
|
|
18
|
+
constructor(ioHelper: IoHelper, requestHandler: RequestHandlerSettings, logger?: ISdkLogger);
|
|
19
19
|
baseConfig(profile?: string): Promise<{
|
|
20
20
|
credentialProvider: SDKv3CompatibleCredentialProvider;
|
|
21
21
|
defaultRegion: string;
|
|
@@ -68,4 +68,4 @@ export interface CredentialChainOptions {
|
|
|
68
68
|
readonly profile?: string;
|
|
69
69
|
readonly logger?: ISdkLogger;
|
|
70
70
|
}
|
|
71
|
-
export declare function
|
|
71
|
+
export declare function sdkRequestHandler(agent?: Agent): RequestHandlerSettings;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AwsCliCompatible = void 0;
|
|
4
|
-
exports.
|
|
4
|
+
exports.sdkRequestHandler = sdkRequestHandler;
|
|
5
5
|
const node_util_1 = require("node:util");
|
|
6
6
|
const credential_providers_1 = require("@aws-sdk/credential-providers");
|
|
7
7
|
const ec2_metadata_service_1 = require("@aws-sdk/ec2-metadata-service");
|
|
8
8
|
const shared_ini_file_loader_1 = require("@smithy/shared-ini-file-loader");
|
|
9
9
|
const provider_caching_1 = require("./provider-caching");
|
|
10
|
-
const proxy_agent_1 = require("./proxy-agent");
|
|
11
10
|
const toolkit_error_1 = require("../../toolkit/toolkit-error");
|
|
12
11
|
const private_1 = require("../io/private");
|
|
13
12
|
const DEFAULT_CONNECTION_TIMEOUT = 10000;
|
|
@@ -141,7 +140,7 @@ class AwsCliCompatible {
|
|
|
141
140
|
(await this.regionFromMetadataService());
|
|
142
141
|
if (!region) {
|
|
143
142
|
const usedProfile = !profile ? '' : ` (profile: "${profile}")`;
|
|
144
|
-
await this.ioHelper.
|
|
143
|
+
await this.ioHelper.defaults.debug(`Unable to determine AWS region from environment or AWS configuration${usedProfile}, defaulting to '${defaultRegion}'`);
|
|
145
144
|
return defaultRegion;
|
|
146
145
|
}
|
|
147
146
|
return region;
|
|
@@ -154,7 +153,7 @@ class AwsCliCompatible {
|
|
|
154
153
|
* @returns The region for the instance identity
|
|
155
154
|
*/
|
|
156
155
|
async regionFromMetadataService() {
|
|
157
|
-
await this.ioHelper.
|
|
156
|
+
await this.ioHelper.defaults.debug('Looking up AWS region in the EC2 Instance Metadata Service (IMDS).');
|
|
158
157
|
try {
|
|
159
158
|
const metadataService = new ec2_metadata_service_1.MetadataService({
|
|
160
159
|
httpOptions: {
|
|
@@ -166,7 +165,7 @@ class AwsCliCompatible {
|
|
|
166
165
|
return JSON.parse(document).region;
|
|
167
166
|
}
|
|
168
167
|
catch (e) {
|
|
169
|
-
await this.ioHelper.
|
|
168
|
+
await this.ioHelper.defaults.debug(`Unable to retrieve AWS region from IMDS: ${e}`);
|
|
170
169
|
}
|
|
171
170
|
}
|
|
172
171
|
/**
|
|
@@ -199,7 +198,7 @@ class AwsCliCompatible {
|
|
|
199
198
|
* Result is send to callback function for SDK to authorize the request
|
|
200
199
|
*/
|
|
201
200
|
async tokenCodeFn(deviceArn) {
|
|
202
|
-
const debugFn = (msg, ...args) => this.ioHelper.
|
|
201
|
+
const debugFn = (msg, ...args) => this.ioHelper.defaults.debug((0, node_util_1.format)(msg, ...args));
|
|
203
202
|
await debugFn('Require MFA token from MFA device with ARN', deviceArn);
|
|
204
203
|
try {
|
|
205
204
|
const token = await this.ioHelper.requestResponse(private_1.IO.CDK_SDK_I1100.req(`MFA token for ${deviceArn}`, {
|
|
@@ -236,8 +235,7 @@ function shouldPrioritizeEnv() {
|
|
|
236
235
|
}
|
|
237
236
|
return false;
|
|
238
237
|
}
|
|
239
|
-
|
|
240
|
-
const agent = await new proxy_agent_1.ProxyAgentProvider(ioHelper).create(options);
|
|
238
|
+
function sdkRequestHandler(agent) {
|
|
241
239
|
return {
|
|
242
240
|
connectionTimeout: DEFAULT_CONNECTION_TIMEOUT,
|
|
243
241
|
requestTimeout: DEFAULT_TIMEOUT,
|
|
@@ -245,4 +243,4 @@ async function makeRequestHandler(ioHelper, options = {}) {
|
|
|
245
243
|
httpAgent: agent,
|
|
246
244
|
};
|
|
247
245
|
}
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2xpLWNvbXBhdGlibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3NjbGktY29tcGF0aWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnUkEsZ0RBU0M7QUF6UkQseUNBQW1DO0FBRW5DLHdFQUErRztBQUMvRyx3RUFBZ0U7QUFFaEUsMkVBQXVFO0FBQ3ZFLHlEQUF5RDtBQUN6RCwrQ0FBbUQ7QUFHbkQsK0RBQWtFO0FBQ2xFLDJDQUFrRDtBQUVsRCxNQUFNLDBCQUEwQixHQUFHLEtBQUssQ0FBQztBQUN6QyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUM7QUFFL0I7Ozs7Ozs7R0FPRztBQUNILE1BQWEsZ0JBQWdCO0lBQ1YsUUFBUSxDQUFXO0lBQ25CLGNBQWMsQ0FBeUI7SUFDdkMsTUFBTSxDQUFjO0lBRXJDLFlBQW1CLFFBQWtCLEVBQUUsY0FBc0MsRUFBRSxNQUFtQjtRQUNoRyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFnQjtRQUN0QyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDO1lBQzNELE9BQU87WUFDUCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxzQkFBc0IsQ0FDakMsVUFBa0MsRUFBRTtRQUVwQyxNQUFNLFlBQVksR0FBRztZQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFD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QUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIH0gZnJvbSAnQGF3cy1jZGsvY2xpLXBsdWdpbi1jb250cmFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDcmVkZW50aWFsQ2hhaW4sIGZyb21FbnYsIGZyb21JbmksIGZyb21Ob2RlUHJvdmlkZXJDaGFpbiB9IGZyb20gJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzJztcbmltcG9ydCB7IE1ldGFkYXRhU2VydmljZSB9IGZyb20gJ0Bhd3Mtc2RrL2VjMi1tZXRhZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgTm9kZUh0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gJ0BzbWl0aHkvbm9kZS1odHRwLWhhbmRsZXInO1xuaW1wb3J0IHsgbG9hZFNoYXJlZENvbmZpZ0ZpbGVzIH0gZnJvbSAnQHNtaXRoeS9zaGFyZWQtaW5pLWZpbGUtbG9hZGVyJztcbmltcG9ydCB7IG1ha2VDYWNoaW5nUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVyLWNhY2hpbmcnO1xuaW1wb3J0IHsgUHJveHlBZ2VudFByb3ZpZGVyIH0gZnJvbSAnLi9wcm94eS1hZ2VudCc7XG5pbXBvcnQgdHlwZSB7IElTZGtMb2dnZXIgfSBmcm9tICcuL3Nkay1sb2dnZXInO1xuaW1wb3J0IHR5cGUgeyBTZGtIdHRwT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25FcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBJTywgdHlwZSBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG5jb25zdCBERUZBVUxUX0NPTk5FQ1RJT05fVElNRU9VVCA9IDEwMDAwO1xuY29uc3QgREVGQVVMVF9USU1FT1VUID0gMzAwMDAwO1xuXG4vKipcbiAqIEJlaGF2aW9ycyB0byBtYXRjaCBBV1MgQ0xJXG4gKlxuICogU2VlIHRoZXNlIGxpbmtzOlxuICpcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3RvcGljL2NvbmZpZy12YXJzLmh0bWxcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3VzZXJndWlkZS9jbGktY29uZmlndXJlLWVudnZhcnMuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgQXdzQ2xpQ29tcGF0aWJsZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RIYW5kbGVyOiBOb2RlSHR0cEhhbmRsZXJPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcj86IElTZGtMb2dnZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlciwgcmVxdWVzdEhhbmRsZXI6IE5vZGVIdHRwSGFuZGxlck9wdGlvbnMsIGxvZ2dlcj86IElTZGtMb2dnZXIpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlciA9IHJlcXVlc3RIYW5kbGVyO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJhc2VDb25maWcocHJvZmlsZT86IHN0cmluZyk6IFByb21pc2U8eyBjcmVkZW50aWFsUHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcjsgZGVmYXVsdFJlZ2lvbjogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjcmVkZW50aWFsUHJvdmlkZXIgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxDaGFpbkJ1aWxkZXIoe1xuICAgICAgcHJvZmlsZSxcbiAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgfSk7XG4gICAgY29uc3QgZGVmYXVsdFJlZ2lvbiA9IGF3YWl0IHRoaXMucmVnaW9uKHByb2ZpbGUpO1xuICAgIHJldHVybiB7IGNyZWRlbnRpYWxQcm92aWRlciwgZGVmYXVsdFJlZ2lvbiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIEFXUyBDTEktY29tcGF0aWJsZSBjcmVkZW50aWFsIGNoYWluIHByb3ZpZGVyXG4gICAqXG4gICAqIFRoZSBjcmVkZW50aWFsIGNoYWluIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gaXMgYWx3YXlzIGNhY2hpbmcuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlZGVudGlhbENoYWluQnVpbGRlcihcbiAgICBvcHRpb25zOiBDcmVkZW50aWFsQ2hhaW5PcHRpb25zID0ge30sXG4gICk6IFByb21pc2U8U0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyPiB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnID0ge1xuICAgICAgcmVxdWVzdEhhbmRsZXI6IHRoaXMucmVxdWVzdEhhbmRsZXIsXG4gICAgICBjdXN0b21Vc2VyQWdlbnQ6ICdhd3MtY2RrJyxcbiAgICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgfTtcblxuICAgIC8vIFN1cGVyIGhhY2t5IHNvbHV0aW9uIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMzI1MTAsIHByb3Bvc2VkIGJ5IHRoZSBTREsgdGVhbS5cbiAgICAvL1xuICAgIC8vIFN1bW1hcnkgb2YgdGhlIHByb2JsZW06IHdlIHdlcmUgcmVhZGluZyB0aGUgcmVnaW9uIGZyb20gdGhlIGNvbmZpZyBmaWxlIGFuZCBwYXNzaW5nIGl0IHRvXG4gICAgLy8gdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXJzLiBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBTU08sIHRoaXMgbWFrZXMgdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICAvLyB1c2UgdGhhdCByZWdpb24gdG8gZG8gdGhlIFNTTyBmbG93LCB3aGljaCBpcyBpbmNvcnJlY3QuIFRoZSByZWdpb24gdGhhdCBzaG91bGQgYmUgdXNlZCBmb3JcbiAgICAvLyB0aGF0IGlzIHRoZSBvbmUgc2V0IGluIHRoZSBzc29fc2Vzc2lvbiBzZWN0aW9uIG9mIHRoZSBjb25maWcgZmlsZS5cbiAgICAvL1xuICAgIC8vIFRoZSBpZGVhIGhlcmU6IHRoZSBcImNsaWVudENvbmZpZ1wiIGlzIGZvciBjb25maWd1cmluZyB0aGUgaW5uZXIgYXV0aCBjbGllbnQgZGlyZWN0bHksXG4gICAgLy8gYW5kIGhhcyB0aGUgaGlnaGVzdCBwcmlvcml0eSwgd2hlcmVhcyBcInBhcmVudENsaWVudENvbmZpZ1wiIGlzIHRoZSB1cHBlciBkYXRhIGNsaWVudFxuICAgIC8vIGFuZCBoYXMgbG93ZXIgcHJpb3JpdHkgdGhhbiB0aGUgc3NvX3JlZ2lvbiBidXQgc3RpbGwgaGlnaGVyIHByaW9yaXR5IHRoYW4gU1RTIGdsb2JhbCByZWdpb24uXG4gICAgY29uc3QgcGFyZW50Q2xpZW50Q29uZmlnID0ge1xuICAgICAgcmVnaW9uOiBhd2FpdCB0aGlzLnJlZ2lvbihvcHRpb25zLnByb2ZpbGUpLFxuICAgIH07XG4gICAgLyoqXG4gICAgICogVGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIG1hdGNoZWQgQVdTIENMSSBiZWhhdmlvcjpcbiAgICAgKlxuICAgICAqIElmIGEgcHJvZmlsZSBpcyBleHBsaWNpdGx5IHNldCB1c2luZyBgLS1wcm9maWxlYCxcbiAgICAgKiB3ZSB1c2UgdGhhdCB0byB0aGUgZXhjbHVzaW9uIG9mIGV2ZXJ5dGhpbmcgZWxzZS5cbiAgICAgKlxuICAgICAqIE5vdGU6IHRoaXMgZG9lcyBub3QgYXBwbHkgdG8gQVdTX1BST0ZJTEUsXG4gICAgICogZW52aXJvbm1lbnQgY3JlZGVudGlhbHMgc3RpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgQVdTX1BST0ZJTEVcbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy5wcm9maWxlKSB7XG4gICAgICByZXR1cm4gbWFrZUNhY2hpbmdQcm92aWRlcihmcm9tSW5pKHtcbiAgICAgICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICAgICAgICBpZ25vcmVDYWNoZTogdHJ1ZSxcbiAgICAgICAgbWZhQ29kZVByb3ZpZGVyOiB0aGlzLnRva2VuQ29kZUZuLmJpbmQodGhpcyksXG4gICAgICAgIGNsaWVudENvbmZpZyxcbiAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnLFxuICAgICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudlByb2ZpbGUgPSBwcm9jZXNzLmVudi5BV1NfUFJPRklMRSB8fCBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9QUk9GSUxFO1xuXG4gICAgLyoqXG4gICAgICogRW52IEFXUyAtIEVudmlyb25tZW50Q3JlZGVudGlhbHMgd2l0aCBzdHJpbmcgQVdTXG4gICAgICogRW52IEFtYXpvbiAtIEVudmlyb25tZW50Q3JlZGVudGlhbHMgd2l0aCBzdHJpbmcgQU1BWk9OXG4gICAgICogUHJvZmlsZSBDcmVkZW50aWFscyAtIFBhdGNoZWRTaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlLCBjcmVkZW50aWFscyBmaWxlLCBodHRwIG9wdGlvbnMsIGFuZCB0b2tlbiBmblxuICAgICAqICAgIFNTTyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgb25seVxuICAgICAqICAgIFNoYXJlZEluaUZpbGVDcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgYW5kIHByZWZlclN0YXRpY0NyZWRlbnRpYWxzIHRydWUgKHByb2ZpbGUgd2l0aCBzb3VyY2VfcHJvZmlsZSlcbiAgICAgKiAgICBTaGFyZWQgQ3JlZGVudGlhbCBmaWxlIHRoYXQgcG9pbnRzIHRvIEVudmlyb25tZW50IENyZWRlbnRpYWxzIHdpdGggQVdTIHByZWZpeFxuICAgICAqICAgIFNoYXJlZCBDcmVkZW50aWFsIGZpbGUgdGhhdCBwb2ludHMgdG8gRUMyIE1ldGFkYXRhXG4gICAgICogICAgU2hhcmVkIENyZWRlbnRpYWwgZmlsZSB0aGF0IHBvaW50cyB0byBFQ1MgQ3JlZGVudGlhbHNcbiAgICAgKiBTU08gQ3JlZGVudGlhbHMgLSBTc29DcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgYW5kIGh0dHAgb3B0aW9uc1xuICAgICAqIFByb2Nlc3NDcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGVcbiAgICAgKiBFQ1MgQ3JlZGVudGlhbHMgLSBFQ1NDcmVkZW50aWFscyB3aXRoIG5vIGlucHV0IE9SIFdlYiBJZGVudGl0eSAtIFRva2VuRmlsZVdlYklkZW50aXR5Q3JlZGVudGlhbHMgd2l0aCBubyBpbnB1dCBPUiBFQzIgTWV0YWRhdGEgLSBFQzJNZXRhZGF0YUNyZWRlbnRpYWxzIHdpdGggbm8gaW5wdXRcbiAgICAgKlxuICAgICAqIFRoZXNlIHRyYW5zbGF0ZSB0bzpcbiAgICAgKiBmcm9tRW52KClcbiAgICAgKiBmcm9tU1NPKCkvZnJvbUluaSgpXG4gICAgICogZnJvbVByb2Nlc3MoKVxuICAgICAqIGZyb21Db250YWluZXJNZXRhZGF0YSgpXG4gICAgICogZnJvbVRva2VuRmlsZSgpXG4gICAgICogZnJvbUluc3RhbmNlTWV0YWRhdGEoKVxuICAgICAqXG4gICAgICogVGhlIE5vZGVQcm92aWRlckNoYWluIGlzIGFscmVhZHkgY2FjaGVkLlxuICAgICAqL1xuICAgIGNvbnN0IG5vZGVQcm92aWRlckNoYWluID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IGVudlByb2ZpbGUsXG4gICAgICBjbGllbnRDb25maWcsXG4gICAgICBwYXJlbnRDbGllbnRDb25maWcsXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgbWZhQ29kZVByb3ZpZGVyOiB0aGlzLnRva2VuQ29kZUZuLmJpbmQodGhpcyksXG4gICAgICBpZ25vcmVDYWNoZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzaG91bGRQcmlvcml0aXplRW52KClcbiAgICAgID8gY3JlYXRlQ3JlZGVudGlhbENoYWluKGZyb21FbnYoKSwgbm9kZVByb3ZpZGVyQ2hhaW4pLmV4cGlyZUFmdGVyKDYwICogNjBfMDAwKVxuICAgICAgOiBub2RlUHJvdmlkZXJDaGFpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBnZXQgdGhlIHJlZ2lvbiBmcm9tIGEgbnVtYmVyIG9mIHNvdXJjZXMgYW5kIGZhbGxzIGJhY2sgdG8gdXMtZWFzdC0xIGlmIG5vIHJlZ2lvbiBjYW4gYmUgZm91bmQsXG4gICAqIGFzIGlzIGRvbmUgaW4gdGhlIEFXUyBDTEkuXG4gICAqXG4gICAqIFRoZSBvcmRlciBvZiBwcmlvcml0eSBpcyB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiAxLiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgc3BlY2lmeWluZyByZWdpb24sIHdpdGggYm90aCBhbiBBV1MgcHJlZml4IGFuZCBBTUFaT04gcHJlZml4XG4gICAqICAgIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBhbmQgd2l0aG91dCBgREVGQVVMVGAgaW4gdGhlIG5hbWUgYmVjYXVzZVxuICAgKiAgICBMYW1iZGEgYW5kIENvZGVCdWlsZCBzZXQgdGhlICRBV1NfUkVHSU9OIHZhcmlhYmxlLlxuICAgKiAyLiBSZWdpb25zIGxpc3RlZCBpbiB0aGUgU2hhcmVkIEluaSBGaWxlcyAtIEZpcnN0IGNoZWNraW5nIGZvciB0aGUgcHJvZmlsZSBwcm92aWRlZFxuICAgKiAgICBhbmQgdGhlbiBjaGVja2luZyBmb3IgdGhlIGRlZmF1bHQgcHJvZmlsZS5cbiAgICogMy4gSU1EUyBpbnN0YW5jZSBpZGVudGl0eSByZWdpb24gZnJvbSB0aGUgTWV0YWRhdGEgU2VydmljZS5cbiAgICogNC4gdXMtZWFzdC0xXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaW9uKG1heWJlUHJvZmlsZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGVmYXVsdFJlZ2lvbiA9ICd1cy1lYXN0LTEnO1xuICAgIGNvbnN0IHByb2ZpbGUgPSBtYXliZVByb2ZpbGUgfHwgcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUFJPRklMRSB8fCAnZGVmYXVsdCc7XG5cbiAgICBjb25zdCByZWdpb24gPVxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQU1BWk9OX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OIHx8XG4gICAgICBwcm9jZXNzLmVudi5BTUFaT05fREVGQVVMVF9SRUdJT04gfHxcbiAgICAgIChhd2FpdCB0aGlzLmdldFJlZ2lvbkZyb21JbmkocHJvZmlsZSkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy5yZWdpb25Gcm9tTWV0YWRhdGFTZXJ2aWNlKCkpO1xuXG4gICAgaWYgKCFyZWdpb24pIHtcbiAgICAgIGNvbnN0IHVzZWRQcm9maWxlID0gIXByb2ZpbGUgPyAnJyA6IGAgKHByb2ZpbGU6IFwiJHtwcm9maWxlfVwiKWA7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1NES19ERUJVRy5tc2coXG4gICAgICAgIGBVbmFibGUgdG8gZGV0ZXJtaW5lIEFXUyByZWdpb24gZnJvbSBlbnZpcm9ubWVudCBvciBBV1MgY29uZmlndXJhdGlvbiR7dXNlZFByb2ZpbGV9LCBkZWZhdWx0aW5nIHRvICcke2RlZmF1bHRSZWdpb259J2AsXG4gICAgICApKTtcbiAgICAgIHJldHVybiBkZWZhdWx0UmVnaW9uO1xuICAgIH1cblxuICAgIHJldHVybiByZWdpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIE1ldGFkYXRhU2VydmljZSBjbGFzcyB3aWxsIGF0dGVtcHQgdG8gZmV0Y2ggdGhlIGluc3RhbmNlIGlkZW50aXR5IGRvY3VtZW50IGZyb21cbiAgICogSU1EU3YyIGZpcnN0LCBhbmQgdGhlbiB3aWxsIGF0dGVtcHQgdjEgYXMgYSBmYWxsYmFjay5cbiAgICpcbiAgICogSWYgdGhpcyBmYWlscywgd2Ugd2lsbCB1c2UgdXMtZWFzdC0xIGFzIHRoZSByZWdpb24gc28gbm8gZXJyb3Igc2hvdWxkIGJlIHRocm93bi5cbiAgICogQHJldHVybnMgVGhlIHJlZ2lvbiBmb3IgdGhlIGluc3RhbmNlIGlkZW50aXR5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlZ2lvbkZyb21NZXRhZGF0YVNlcnZpY2UoKSB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9TREtfREVCVUcubXNnKCdMb29raW5nIHVwIEFXUyByZWdpb24gaW4gdGhlIEVDMiBJbnN0YW5jZSBNZXRhZGF0YSBTZXJ2aWNlIChJTURTKS4nKSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhU2VydmljZSA9IG5ldyBNZXRhZGF0YVNlcnZpY2Uoe1xuICAgICAgICBodHRwT3B0aW9uczoge1xuICAgICAgICAgIHRpbWVvdXQ6IDEwMDAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWV0YWRhdGFTZXJ2aWNlLmZldGNoTWV0YWRhdGFUb2tlbigpO1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBhd2FpdCBtZXRhZGF0YVNlcnZpY2UucmVxdWVzdCgnL2xhdGVzdC9keW5hbWljL2luc3RhbmNlLWlkZW50aXR5L2RvY3VtZW50Jywge30pO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZG9jdW1lbnQpLnJlZ2lvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1NES19ERUJVRy5tc2coYFVuYWJsZSB0byByZXRyaWV2ZSBBV1MgcmVnaW9uIGZyb20gSU1EUzogJHtlfWApKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgdXAgdGhlIHJlZ2lvbiBvZiB0aGUgcHJvdmlkZWQgcHJvZmlsZS4gSWYgbm8gcmVnaW9uIGlzIHByZXNlbnQsXG4gICAqIGl0IHdpbGwgYXR0ZW1wdCB0byBsb29rdXAgdGhlIGRlZmF1bHQgcmVnaW9uLlxuICAgKiBAcGFyYW0gcHJvZmlsZSBUaGUgcHJvZmlsZSB0byB1c2UgdG8gbG9va3VwIHRoZSByZWdpb25cbiAgICogQHJldHVybnMgVGhlIHJlZ2lvbiBmb3IgdGhlIHByb2ZpbGUgb3IgZGVmYXVsdCBwcm9maWxlLCBpZiBwcmVzZW50LiBPdGhlcndpc2UgcmV0dXJucyB1bmRlZmluZWQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldFJlZ2lvbkZyb21JbmkocHJvZmlsZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzaGFyZWRGaWxlcyA9IGF3YWl0IGxvYWRTaGFyZWRDb25maWdGaWxlcyh7IGlnbm9yZUNhY2hlOiB0cnVlIH0pO1xuXG4gICAgLy8gUHJpb3JpdHk6XG4gICAgLy9cbiAgICAvLyBjcmVkZW50aWFscyBjb21lIGJlZm9yZSBjb25maWcgYmVjYXVzZSBhd3MtY2xpIHYxIGJlaGF2ZXMgbGlrZSB0aGF0LlxuICAgIC8vXG4gICAgLy8gMS4gcHJvZmlsZS1yZWdpb24taW4tY3JlZGVudGlhbHNcbiAgICAvLyAyLiBwcm9maWxlLXJlZ2lvbi1pbi1jb25maWdcbiAgICAvLyAzLiBkZWZhdWx0LXJlZ2lvbi1pbi1jcmVkZW50aWFsc1xuICAgIC8vIDQuIGRlZmF1bHQtcmVnaW9uLWluLWNvbmZpZ1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZSwgc2hhcmVkRmlsZXMuY3JlZGVudGlhbHNGaWxlKVxuICAgID8/IHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZSwgc2hhcmVkRmlsZXMuY29uZmlnRmlsZSlcbiAgICA/PyB0aGlzLmdldFJlZ2lvbkZyb21JbmlGaWxlKCdkZWZhdWx0Jywgc2hhcmVkRmlsZXMuY3JlZGVudGlhbHNGaWxlKVxuICAgID8/IHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUoJ2RlZmF1bHQnLCBzaGFyZWRGaWxlcy5jb25maWdGaWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZTogc3RyaW5nLCBkYXRhPzogYW55KSB7XG4gICAgcmV0dXJuIGRhdGE/Lltwcm9maWxlXT8ucmVnaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzayB1c2VyIGZvciBNRkEgdG9rZW4gZm9yIGdpdmVuIE1GQSBkZXZpY2VcbiAgICpcbiAgICogUmVzdWx0IGlzIHNlbmQgdG8gY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFNESyB0byBhdXRob3JpemUgdGhlIHJlcXVlc3RcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdG9rZW5Db2RlRm4oZGV2aWNlQXJuOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRlYnVnRm4gPSAobXNnOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1NES19ERUJVRy5tc2coZm9ybWF0KG1zZywgLi4uYXJncykpKTtcbiAgICBhd2FpdCBkZWJ1Z0ZuKCdSZXF1aXJlIE1GQSB0b2tlbiBmcm9tIE1GQSBkZXZpY2Ugd2l0aCBBUk4nLCBkZXZpY2VBcm4pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b2tlbjogc3RyaW5nID0gYXdhaXQgdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1NES19JMTEwMC5yZXEoYE1GQSB0b2tlbiBmb3IgJHtkZXZpY2VBcm59YCwge1xuICAgICAgICBkZXZpY2VBcm4sXG4gICAgICB9LCAnJykpO1xuXG4gICAgICBhd2FpdCBkZWJ1Z0ZuKCdTdWNjZXNzZnVsbHkgZ290IE1GQSB0b2tlbiBmcm9tIHVzZXInKTtcbiAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgYXdhaXQgZGVidWdGbignRmFpbGVkIHRvIGdldCBNRkEgdG9rZW4nLCBlcnIpO1xuICAgICAgY29uc3QgZSA9IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKGBFcnJvciBmZXRjaGluZyBNRkEgdG9rZW46ICR7ZXJyLm1lc3NhZ2UgPz8gZXJyfWApO1xuICAgICAgZS5uYW1lID0gJ1NoYXJlZEluaUZpbGVDcmVkZW50aWFsc1Byb3ZpZGVyRmFpbHVyZSc7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFdlIHVzZWQgdG8gc3VwcG9ydCBib3RoIEFXUyBhbmQgQU1BWk9OIHByZWZpeGVzIGZvciB0aGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKlxuICogQWRkaW5nIHRoaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByaW9yaXRpemVFbnYoKSB7XG4gIGNvbnN0IGlkID0gcHJvY2Vzcy5lbnYuQVdTX0FDQ0VTU19LRVlfSUQgfHwgcHJvY2Vzcy5lbnYuQU1BWk9OX0FDQ0VTU19LRVlfSUQ7XG4gIGNvbnN0IGtleSA9IHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSB8fCBwcm9jZXNzLmVudi5BTUFaT05fU0VDUkVUX0FDQ0VTU19LRVk7XG5cbiAgaWYgKCEhaWQgJiYgISFrZXkpIHtcbiAgICBwcm9jZXNzLmVudi5BV1NfQUNDRVNTX0tFWV9JRCA9IGlkO1xuICAgIHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSA9IGtleTtcblxuICAgIGNvbnN0IHNlc3Npb25Ub2tlbiA9IHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOID8/IHByb2Nlc3MuZW52LkFNQVpPTl9TRVNTSU9OX1RPS0VOO1xuICAgIGlmIChzZXNzaW9uVG9rZW4pIHtcbiAgICAgIHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOID0gc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWRlbnRpYWxDaGFpbk9wdGlvbnMge1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuICByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFrZVJlcXVlc3RIYW5kbGVyKGlvSGVscGVyOiBJb0hlbHBlciwgb3B0aW9uczogU2RrSHR0cE9wdGlvbnMgPSB7fSk6IFByb21pc2U8Tm9kZUh0dHBIYW5kbGVyT3B0aW9ucz4ge1xuICBjb25zdCBhZ2VudCA9IGF3YWl0IG5ldyBQcm94eUFnZW50UHJvdmlkZXIoaW9IZWxwZXIpLmNyZWF0ZShvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBERUZBVUxUX0NPTk5FQ1RJT05fVElNRU9VVCxcbiAgICByZXF1ZXN0VGltZW91dDogREVGQVVMVF9USU1FT1VULFxuICAgIGh0dHBzQWdlbnQ6IGFnZW50LFxuICAgIGh0dHBBZ2VudDogYWdlbnQsXG4gIH07XG59XG4iXX0=
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzY2xpLWNvbXBhdGlibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3NjbGktY29tcGF0aWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErUUEsOENBT0M7QUFyUkQseUNBQW1DO0FBRW5DLHdFQUErRztBQUMvRyx3RUFBZ0U7QUFDaEUsMkVBQXVFO0FBRXZFLHlEQUF5RDtBQUV6RCwrREFBa0U7QUFDbEUsMkNBQWtEO0FBRWxELE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0FBQ3pDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQztBQUUvQjs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxnQkFBZ0I7SUFDVixRQUFRLENBQVc7SUFDbkIsY0FBYyxDQUF5QjtJQUN2QyxNQUFNLENBQWM7SUFFckMsWUFBbUIsUUFBa0IsRUFBRSxjQUFzQyxFQUFFLE1BQW1CO1FBQ2hHLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWdCO1FBQ3RDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDM0QsT0FBTztZQUNQLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7UUFDSCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLHNCQUFzQixDQUNqQyxVQUFrQyxFQUFFO1FBRXBDLE1BQU0sWUFBWSxHQUFHO1lBQ25CLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztZQUNuQyxlQUFlLEVBQUUs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RUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztJQUM3RSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7SUFFdEYsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUV4QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUM7UUFDdkYsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLFlBQVksQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBT0QsU0FBZ0IsaUJBQWlCLENBQUMsS0FBYTtJQUM3QyxPQUFPO1FBQ0wsaUJBQWlCLEVBQUUsMEJBQTBCO1FBQzdDLGNBQWMsRUFBRSxlQUFlO1FBQy9CLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLFNBQVMsRUFBRSxLQUFLO0tBQ2pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBZ2VudCB9IGZyb20gJ25vZGU6aHR0cHMnO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyIH0gZnJvbSAnQGF3cy1jZGsvY2xpLXBsdWdpbi1jb250cmFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDcmVkZW50aWFsQ2hhaW4sIGZyb21FbnYsIGZyb21JbmksIGZyb21Ob2RlUHJvdmlkZXJDaGFpbiB9IGZyb20gJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzJztcbmltcG9ydCB7IE1ldGFkYXRhU2VydmljZSB9IGZyb20gJ0Bhd3Mtc2RrL2VjMi1tZXRhZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IGxvYWRTaGFyZWRDb25maWdGaWxlcyB9IGZyb20gJ0BzbWl0aHkvc2hhcmVkLWluaS1maWxlLWxvYWRlcic7XG5pbXBvcnQgdHlwZSB7IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3MgfSBmcm9tICcuL2Jhc2UtY3JlZGVudGlhbHMnO1xuaW1wb3J0IHsgbWFrZUNhY2hpbmdQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXItY2FjaGluZyc7XG5pbXBvcnQgdHlwZSB7IElTZGtMb2dnZXIgfSBmcm9tICcuL3Nkay1sb2dnZXInO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25FcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBJTywgdHlwZSBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG5jb25zdCBERUZBVUxUX0NPTk5FQ1RJT05fVElNRU9VVCA9IDEwMDAwO1xuY29uc3QgREVGQVVMVF9USU1FT1VUID0gMzAwMDAwO1xuXG4vKipcbiAqIEJlaGF2aW9ycyB0byBtYXRjaCBBV1MgQ0xJXG4gKlxuICogU2VlIHRoZXNlIGxpbmtzOlxuICpcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3RvcGljL2NvbmZpZy12YXJzLmh0bWxcbiAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3VzZXJndWlkZS9jbGktY29uZmlndXJlLWVudnZhcnMuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgQXdzQ2xpQ29tcGF0aWJsZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlclNldHRpbmdzO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcj86IElTZGtMb2dnZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlciwgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3MsIGxvZ2dlcj86IElTZGtMb2dnZXIpIHtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlciA9IHJlcXVlc3RIYW5kbGVyO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGJhc2VDb25maWcocHJvZmlsZT86IHN0cmluZyk6IFByb21pc2U8eyBjcmVkZW50aWFsUHJvdmlkZXI6IFNES3YzQ29tcGF0aWJsZUNyZWRlbnRpYWxQcm92aWRlcjsgZGVmYXVsdFJlZ2lvbjogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjcmVkZW50aWFsUHJvdmlkZXIgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxDaGFpbkJ1aWxkZXIoe1xuICAgICAgcHJvZmlsZSxcbiAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIsXG4gICAgfSk7XG4gICAgY29uc3QgZGVmYXVsdFJlZ2lvbiA9IGF3YWl0IHRoaXMucmVnaW9uKHByb2ZpbGUpO1xuICAgIHJldHVybiB7IGNyZWRlbnRpYWxQcm92aWRlciwgZGVmYXVsdFJlZ2lvbiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIEFXUyBDTEktY29tcGF0aWJsZSBjcmVkZW50aWFsIGNoYWluIHByb3ZpZGVyXG4gICAqXG4gICAqIFRoZSBjcmVkZW50aWFsIGNoYWluIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gaXMgYWx3YXlzIGNhY2hpbmcuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlZGVudGlhbENoYWluQnVpbGRlcihcbiAgICBvcHRpb25zOiBDcmVkZW50aWFsQ2hhaW5PcHRpb25zID0ge30sXG4gICk6IFByb21pc2U8U0RLdjNDb21wYXRpYmxlQ3JlZGVudGlhbFByb3ZpZGVyPiB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnID0ge1xuICAgICAgcmVxdWVzdEhhbmRsZXI6IHRoaXMucmVxdWVzdEhhbmRsZXIsXG4gICAgICBjdXN0b21Vc2VyQWdlbnQ6ICdhd3MtY2RrJyxcbiAgICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgfTtcblxuICAgIC8vIFN1cGVyIGhhY2t5IHNvbHV0aW9uIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMzI1MTAsIHByb3Bvc2VkIGJ5IHRoZSBTREsgdGVhbS5cbiAgICAvL1xuICAgIC8vIFN1bW1hcnkgb2YgdGhlIHByb2JsZW06IHdlIHdlcmUgcmVhZGluZyB0aGUgcmVnaW9uIGZyb20gdGhlIGNvbmZpZyBmaWxlIGFuZCBwYXNzaW5nIGl0IHRvXG4gICAgLy8gdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXJzLiBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBTU08sIHRoaXMgbWFrZXMgdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXJcbiAgICAvLyB1c2UgdGhhdCByZWdpb24gdG8gZG8gdGhlIFNTTyBmbG93LCB3aGljaCBpcyBpbmNvcnJlY3QuIFRoZSByZWdpb24gdGhhdCBzaG91bGQgYmUgdXNlZCBmb3JcbiAgICAvLyB0aGF0IGlzIHRoZSBvbmUgc2V0IGluIHRoZSBzc29fc2Vzc2lvbiBzZWN0aW9uIG9mIHRoZSBjb25maWcgZmlsZS5cbiAgICAvL1xuICAgIC8vIFRoZSBpZGVhIGhlcmU6IHRoZSBcImNsaWVudENvbmZpZ1wiIGlzIGZvciBjb25maWd1cmluZyB0aGUgaW5uZXIgYXV0aCBjbGllbnQgZGlyZWN0bHksXG4gICAgLy8gYW5kIGhhcyB0aGUgaGlnaGVzdCBwcmlvcml0eSwgd2hlcmVhcyBcInBhcmVudENsaWVudENvbmZpZ1wiIGlzIHRoZSB1cHBlciBkYXRhIGNsaWVudFxuICAgIC8vIGFuZCBoYXMgbG93ZXIgcHJpb3JpdHkgdGhhbiB0aGUgc3NvX3JlZ2lvbiBidXQgc3RpbGwgaGlnaGVyIHByaW9yaXR5IHRoYW4gU1RTIGdsb2JhbCByZWdpb24uXG4gICAgY29uc3QgcGFyZW50Q2xpZW50Q29uZmlnID0ge1xuICAgICAgcmVnaW9uOiBhd2FpdCB0aGlzLnJlZ2lvbihvcHRpb25zLnByb2ZpbGUpLFxuICAgIH07XG4gICAgLyoqXG4gICAgICogVGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIG1hdGNoZWQgQVdTIENMSSBiZWhhdmlvcjpcbiAgICAgKlxuICAgICAqIElmIGEgcHJvZmlsZSBpcyBleHBsaWNpdGx5IHNldCB1c2luZyBgLS1wcm9maWxlYCxcbiAgICAgKiB3ZSB1c2UgdGhhdCB0byB0aGUgZXhjbHVzaW9uIG9mIGV2ZXJ5dGhpbmcgZWxzZS5cbiAgICAgKlxuICAgICAqIE5vdGU6IHRoaXMgZG9lcyBub3QgYXBwbHkgdG8gQVdTX1BST0ZJTEUsXG4gICAgICogZW52aXJvbm1lbnQgY3JlZGVudGlhbHMgc3RpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgQVdTX1BST0ZJTEVcbiAgICAgKi9cbiAgICBpZiAob3B0aW9ucy5wcm9maWxlKSB7XG4gICAgICByZXR1cm4gbWFrZUNhY2hpbmdQcm92aWRlcihmcm9tSW5pKHtcbiAgICAgICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICAgICAgICBpZ25vcmVDYWNoZTogdHJ1ZSxcbiAgICAgICAgbWZhQ29kZVByb3ZpZGVyOiB0aGlzLnRva2VuQ29kZUZuLmJpbmQodGhpcyksXG4gICAgICAgIGNsaWVudENvbmZpZyxcbiAgICAgICAgcGFyZW50Q2xpZW50Q29uZmlnLFxuICAgICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudlByb2ZpbGUgPSBwcm9jZXNzLmVudi5BV1NfUFJPRklMRSB8fCBwcm9jZXNzLmVudi5BV1NfREVGQVVMVF9QUk9GSUxFO1xuXG4gICAgLyoqXG4gICAgICogRW52IEFXUyAtIEVudmlyb25tZW50Q3JlZGVudGlhbHMgd2l0aCBzdHJpbmcgQVdTXG4gICAgICogRW52IEFtYXpvbiAtIEVudmlyb25tZW50Q3JlZGVudGlhbHMgd2l0aCBzdHJpbmcgQU1BWk9OXG4gICAgICogUHJvZmlsZSBDcmVkZW50aWFscyAtIFBhdGNoZWRTaGFyZWRJbmlGaWxlQ3JlZGVudGlhbHMgd2l0aCBpbXBsaWNpdCBwcm9maWxlLCBjcmVkZW50aWFscyBmaWxlLCBodHRwIG9wdGlvbnMsIGFuZCB0b2tlbiBmblxuICAgICAqICAgIFNTTyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgb25seVxuICAgICAqICAgIFNoYXJlZEluaUZpbGVDcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgYW5kIHByZWZlclN0YXRpY0NyZWRlbnRpYWxzIHRydWUgKHByb2ZpbGUgd2l0aCBzb3VyY2VfcHJvZmlsZSlcbiAgICAgKiAgICBTaGFyZWQgQ3JlZGVudGlhbCBmaWxlIHRoYXQgcG9pbnRzIHRvIEVudmlyb25tZW50IENyZWRlbnRpYWxzIHdpdGggQVdTIHByZWZpeFxuICAgICAqICAgIFNoYXJlZCBDcmVkZW50aWFsIGZpbGUgdGhhdCBwb2ludHMgdG8gRUMyIE1ldGFkYXRhXG4gICAgICogICAgU2hhcmVkIENyZWRlbnRpYWwgZmlsZSB0aGF0IHBvaW50cyB0byBFQ1MgQ3JlZGVudGlhbHNcbiAgICAgKiBTU08gQ3JlZGVudGlhbHMgLSBTc29DcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGUgYW5kIGh0dHAgb3B0aW9uc1xuICAgICAqIFByb2Nlc3NDcmVkZW50aWFscyB3aXRoIGltcGxpY2l0IHByb2ZpbGVcbiAgICAgKiBFQ1MgQ3JlZGVudGlhbHMgLSBFQ1NDcmVkZW50aWFscyB3aXRoIG5vIGlucHV0IE9SIFdlYiBJZGVudGl0eSAtIFRva2VuRmlsZVdlYklkZW50aXR5Q3JlZGVudGlhbHMgd2l0aCBubyBpbnB1dCBPUiBFQzIgTWV0YWRhdGEgLSBFQzJNZXRhZGF0YUNyZWRlbnRpYWxzIHdpdGggbm8gaW5wdXRcbiAgICAgKlxuICAgICAqIFRoZXNlIHRyYW5zbGF0ZSB0bzpcbiAgICAgKiBmcm9tRW52KClcbiAgICAgKiBmcm9tU1NPKCkvZnJvbUluaSgpXG4gICAgICogZnJvbVByb2Nlc3MoKVxuICAgICAqIGZyb21Db250YWluZXJNZXRhZGF0YSgpXG4gICAgICogZnJvbVRva2VuRmlsZSgpXG4gICAgICogZnJvbUluc3RhbmNlTWV0YWRhdGEoKVxuICAgICAqXG4gICAgICogVGhlIE5vZGVQcm92aWRlckNoYWluIGlzIGFscmVhZHkgY2FjaGVkLlxuICAgICAqL1xuICAgIGNvbnN0IG5vZGVQcm92aWRlckNoYWluID0gZnJvbU5vZGVQcm92aWRlckNoYWluKHtcbiAgICAgIHByb2ZpbGU6IGVudlByb2ZpbGUsXG4gICAgICBjbGllbnRDb25maWcsXG4gICAgICBwYXJlbnRDbGllbnRDb25maWcsXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxuICAgICAgbWZhQ29kZVByb3ZpZGVyOiB0aGlzLnRva2VuQ29kZUZuLmJpbmQodGhpcyksXG4gICAgICBpZ25vcmVDYWNoZTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzaG91bGRQcmlvcml0aXplRW52KClcbiAgICAgID8gY3JlYXRlQ3JlZGVudGlhbENoYWluKGZyb21FbnYoKSwgbm9kZVByb3ZpZGVyQ2hhaW4pLmV4cGlyZUFmdGVyKDYwICogNjBfMDAwKVxuICAgICAgOiBub2RlUHJvdmlkZXJDaGFpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBnZXQgdGhlIHJlZ2lvbiBmcm9tIGEgbnVtYmVyIG9mIHNvdXJjZXMgYW5kIGZhbGxzIGJhY2sgdG8gdXMtZWFzdC0xIGlmIG5vIHJlZ2lvbiBjYW4gYmUgZm91bmQsXG4gICAqIGFzIGlzIGRvbmUgaW4gdGhlIEFXUyBDTEkuXG4gICAqXG4gICAqIFRoZSBvcmRlciBvZiBwcmlvcml0eSBpcyB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiAxLiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgc3BlY2lmeWluZyByZWdpb24sIHdpdGggYm90aCBhbiBBV1MgcHJlZml4IGFuZCBBTUFaT04gcHJlZml4XG4gICAqICAgIHRvIG1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBhbmQgd2l0aG91dCBgREVGQVVMVGAgaW4gdGhlIG5hbWUgYmVjYXVzZVxuICAgKiAgICBMYW1iZGEgYW5kIENvZGVCdWlsZCBzZXQgdGhlICRBV1NfUkVHSU9OIHZhcmlhYmxlLlxuICAgKiAyLiBSZWdpb25zIGxpc3RlZCBpbiB0aGUgU2hhcmVkIEluaSBGaWxlcyAtIEZpcnN0IGNoZWNraW5nIGZvciB0aGUgcHJvZmlsZSBwcm92aWRlZFxuICAgKiAgICBhbmQgdGhlbiBjaGVja2luZyBmb3IgdGhlIGRlZmF1bHQgcHJvZmlsZS5cbiAgICogMy4gSU1EUyBpbnN0YW5jZSBpZGVudGl0eSByZWdpb24gZnJvbSB0aGUgTWV0YWRhdGEgU2VydmljZS5cbiAgICogNC4gdXMtZWFzdC0xXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVnaW9uKG1heWJlUHJvZmlsZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGVmYXVsdFJlZ2lvbiA9ICd1cy1lYXN0LTEnO1xuICAgIGNvbnN0IHByb2ZpbGUgPSBtYXliZVByb2ZpbGUgfHwgcHJvY2Vzcy5lbnYuQVdTX1BST0ZJTEUgfHwgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUFJPRklMRSB8fCAnZGVmYXVsdCc7XG5cbiAgICBjb25zdCByZWdpb24gPVxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQU1BWk9OX1JFR0lPTiB8fFxuICAgICAgcHJvY2Vzcy5lbnYuQVdTX0RFRkFVTFRfUkVHSU9OIHx8XG4gICAgICBwcm9jZXNzLmVudi5BTUFaT05fREVGQVVMVF9SRUdJT04gfHxcbiAgICAgIChhd2FpdCB0aGlzLmdldFJlZ2lvbkZyb21JbmkocHJvZmlsZSkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy5yZWdpb25Gcm9tTWV0YWRhdGFTZXJ2aWNlKCkpO1xuXG4gICAgaWYgKCFyZWdpb24pIHtcbiAgICAgIGNvbnN0IHVzZWRQcm9maWxlID0gIXByb2ZpbGUgPyAnJyA6IGAgKHByb2ZpbGU6IFwiJHtwcm9maWxlfVwiKWA7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKFxuICAgICAgICBgVW5hYmxlIHRvIGRldGVybWluZSBBV1MgcmVnaW9uIGZyb20gZW52aXJvbm1lbnQgb3IgQVdTIGNvbmZpZ3VyYXRpb24ke3VzZWRQcm9maWxlfSwgZGVmYXVsdGluZyB0byAnJHtkZWZhdWx0UmVnaW9ufSdgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBkZWZhdWx0UmVnaW9uO1xuICAgIH1cblxuICAgIHJldHVybiByZWdpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIE1ldGFkYXRhU2VydmljZSBjbGFzcyB3aWxsIGF0dGVtcHQgdG8gZmV0Y2ggdGhlIGluc3RhbmNlIGlkZW50aXR5IGRvY3VtZW50IGZyb21cbiAgICogSU1EU3YyIGZpcnN0LCBhbmQgdGhlbiB3aWxsIGF0dGVtcHQgdjEgYXMgYSBmYWxsYmFjay5cbiAgICpcbiAgICogSWYgdGhpcyBmYWlscywgd2Ugd2lsbCB1c2UgdXMtZWFzdC0xIGFzIHRoZSByZWdpb24gc28gbm8gZXJyb3Igc2hvdWxkIGJlIHRocm93bi5cbiAgICogQHJldHVybnMgVGhlIHJlZ2lvbiBmb3IgdGhlIGluc3RhbmNlIGlkZW50aXR5XG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlZ2lvbkZyb21NZXRhZGF0YVNlcnZpY2UoKSB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZygnTG9va2luZyB1cCBBV1MgcmVnaW9uIGluIHRoZSBFQzIgSW5zdGFuY2UgTWV0YWRhdGEgU2VydmljZSAoSU1EUykuJyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhU2VydmljZSA9IG5ldyBNZXRhZGF0YVNlcnZpY2Uoe1xuICAgICAgICBodHRwT3B0aW9uczoge1xuICAgICAgICAgIHRpbWVvdXQ6IDEwMDAsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgbWV0YWRhdGFTZXJ2aWNlLmZldGNoTWV0YWRhdGFUb2tlbigpO1xuICAgICAgY29uc3QgZG9jdW1lbnQgPSBhd2FpdCBtZXRhZGF0YVNlcnZpY2UucmVxdWVzdCgnL2xhdGVzdC9keW5hbWljL2luc3RhbmNlLWlkZW50aXR5L2RvY3VtZW50Jywge30pO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZG9jdW1lbnQpLnJlZ2lvbjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBVbmFibGUgdG8gcmV0cmlldmUgQVdTIHJlZ2lvbiBmcm9tIElNRFM6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9va3MgdXAgdGhlIHJlZ2lvbiBvZiB0aGUgcHJvdmlkZWQgcHJvZmlsZS4gSWYgbm8gcmVnaW9uIGlzIHByZXNlbnQsXG4gICAqIGl0IHdpbGwgYXR0ZW1wdCB0byBsb29rdXAgdGhlIGRlZmF1bHQgcmVnaW9uLlxuICAgKiBAcGFyYW0gcHJvZmlsZSBUaGUgcHJvZmlsZSB0byB1c2UgdG8gbG9va3VwIHRoZSByZWdpb25cbiAgICogQHJldHVybnMgVGhlIHJlZ2lvbiBmb3IgdGhlIHByb2ZpbGUgb3IgZGVmYXVsdCBwcm9maWxlLCBpZiBwcmVzZW50LiBPdGhlcndpc2UgcmV0dXJucyB1bmRlZmluZWQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGdldFJlZ2lvbkZyb21JbmkocHJvZmlsZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzaGFyZWRGaWxlcyA9IGF3YWl0IGxvYWRTaGFyZWRDb25maWdGaWxlcyh7IGlnbm9yZUNhY2hlOiB0cnVlIH0pO1xuXG4gICAgLy8gUHJpb3JpdHk6XG4gICAgLy9cbiAgICAvLyBjcmVkZW50aWFscyBjb21lIGJlZm9yZSBjb25maWcgYmVjYXVzZSBhd3MtY2xpIHYxIGJlaGF2ZXMgbGlrZSB0aGF0LlxuICAgIC8vXG4gICAgLy8gMS4gcHJvZmlsZS1yZWdpb24taW4tY3JlZGVudGlhbHNcbiAgICAvLyAyLiBwcm9maWxlLXJlZ2lvbi1pbi1jb25maWdcbiAgICAvLyAzLiBkZWZhdWx0LXJlZ2lvbi1pbi1jcmVkZW50aWFsc1xuICAgIC8vIDQuIGRlZmF1bHQtcmVnaW9uLWluLWNvbmZpZ1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZSwgc2hhcmVkRmlsZXMuY3JlZGVudGlhbHNGaWxlKVxuICAgID8/IHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZSwgc2hhcmVkRmlsZXMuY29uZmlnRmlsZSlcbiAgICA/PyB0aGlzLmdldFJlZ2lvbkZyb21JbmlGaWxlKCdkZWZhdWx0Jywgc2hhcmVkRmlsZXMuY3JlZGVudGlhbHNGaWxlKVxuICAgID8/IHRoaXMuZ2V0UmVnaW9uRnJvbUluaUZpbGUoJ2RlZmF1bHQnLCBzaGFyZWRGaWxlcy5jb25maWdGaWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVnaW9uRnJvbUluaUZpbGUocHJvZmlsZTogc3RyaW5nLCBkYXRhPzogYW55KSB7XG4gICAgcmV0dXJuIGRhdGE/Lltwcm9maWxlXT8ucmVnaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzayB1c2VyIGZvciBNRkEgdG9rZW4gZm9yIGdpdmVuIE1GQSBkZXZpY2VcbiAgICpcbiAgICogUmVzdWx0IGlzIHNlbmQgdG8gY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFNESyB0byBhdXRob3JpemUgdGhlIHJlcXVlc3RcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdG9rZW5Db2RlRm4oZGV2aWNlQXJuOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRlYnVnRm4gPSAobXNnOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGZvcm1hdChtc2csIC4uLmFyZ3MpKTtcbiAgICBhd2FpdCBkZWJ1Z0ZuKCdSZXF1aXJlIE1GQSB0b2tlbiBmcm9tIE1GQSBkZXZpY2Ugd2l0aCBBUk4nLCBkZXZpY2VBcm4pO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b2tlbjogc3RyaW5nID0gYXdhaXQgdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2UoSU8uQ0RLX1NES19JMTEwMC5yZXEoYE1GQSB0b2tlbiBmb3IgJHtkZXZpY2VBcm59YCwge1xuICAgICAgICBkZXZpY2VBcm4sXG4gICAgICB9LCAnJykpO1xuXG4gICAgICBhd2FpdCBkZWJ1Z0ZuKCdTdWNjZXNzZnVsbHkgZ290IE1GQSB0b2tlbiBmcm9tIHVzZXInKTtcbiAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgYXdhaXQgZGVidWdGbignRmFpbGVkIHRvIGdldCBNRkEgdG9rZW4nLCBlcnIpO1xuICAgICAgY29uc3QgZSA9IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKGBFcnJvciBmZXRjaGluZyBNRkEgdG9rZW46ICR7ZXJyLm1lc3NhZ2UgPz8gZXJyfWApO1xuICAgICAgZS5uYW1lID0gJ1NoYXJlZEluaUZpbGVDcmVkZW50aWFsc1Byb3ZpZGVyRmFpbHVyZSc7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFdlIHVzZWQgdG8gc3VwcG9ydCBib3RoIEFXUyBhbmQgQU1BWk9OIHByZWZpeGVzIGZvciB0aGVzZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gKlxuICogQWRkaW5nIHRoaXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByaW9yaXRpemVFbnYoKSB7XG4gIGNvbnN0IGlkID0gcHJvY2Vzcy5lbnYuQVdTX0FDQ0VTU19LRVlfSUQgfHwgcHJvY2Vzcy5lbnYuQU1BWk9OX0FDQ0VTU19LRVlfSUQ7XG4gIGNvbnN0IGtleSA9IHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSB8fCBwcm9jZXNzLmVudi5BTUFaT05fU0VDUkVUX0FDQ0VTU19LRVk7XG5cbiAgaWYgKCEhaWQgJiYgISFrZXkpIHtcbiAgICBwcm9jZXNzLmVudi5BV1NfQUNDRVNTX0tFWV9JRCA9IGlkO1xuICAgIHByb2Nlc3MuZW52LkFXU19TRUNSRVRfQUNDRVNTX0tFWSA9IGtleTtcblxuICAgIGNvbnN0IHNlc3Npb25Ub2tlbiA9IHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOID8/IHByb2Nlc3MuZW52LkFNQVpPTl9TRVNTSU9OX1RPS0VOO1xuICAgIGlmIChzZXNzaW9uVG9rZW4pIHtcbiAgICAgIHByb2Nlc3MuZW52LkFXU19TRVNTSU9OX1RPS0VOID0gc2Vzc2lvblRva2VuO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWRlbnRpYWxDaGFpbk9wdGlvbnMge1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuICByZWFkb25seSBsb2dnZXI/OiBJU2RrTG9nZ2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2RrUmVxdWVzdEhhbmRsZXIoYWdlbnQ/OiBBZ2VudCk6IFJlcXVlc3RIYW5kbGVyU2V0dGluZ3Mge1xuICByZXR1cm4ge1xuICAgIGNvbm5lY3Rpb25UaW1lb3V0OiBERUZBVUxUX0NPTk5FQ1RJT05fVElNRU9VVCxcbiAgICByZXF1ZXN0VGltZW91dDogREVGQVVMVF9USU1FT1VULFxuICAgIGh0dHBzQWdlbnQ6IGFnZW50LFxuICAgIGh0dHBBZ2VudDogYWdlbnQsXG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type * as http from 'node:http';
|
|
2
|
+
import type * as https from 'node:https';
|
|
3
|
+
import type { SDKv3CompatibleCredentialProvider } from '@aws-cdk/cli-plugin-contract';
|
|
4
|
+
import type { IActionAwareIoHost } from '../io';
|
|
5
|
+
/**
|
|
6
|
+
* Settings for the request handle
|
|
7
|
+
*/
|
|
8
|
+
export interface RequestHandlerSettings {
|
|
9
|
+
/**
|
|
10
|
+
* The maximum time in milliseconds that the connection phase of a request
|
|
11
|
+
* may take before the connection attempt is abandoned.
|
|
12
|
+
*
|
|
13
|
+
* Defaults to 0, which disables the timeout.
|
|
14
|
+
*/
|
|
15
|
+
connectionTimeout?: number;
|
|
16
|
+
/**
|
|
17
|
+
* The number of milliseconds a request can take before automatically being terminated.
|
|
18
|
+
* Defaults to 0, which disables the timeout.
|
|
19
|
+
*/
|
|
20
|
+
requestTimeout?: number;
|
|
21
|
+
/**
|
|
22
|
+
* An http.Agent to be used
|
|
23
|
+
*/
|
|
24
|
+
httpAgent?: http.Agent;
|
|
25
|
+
/**
|
|
26
|
+
* An https.Agent to be used
|
|
27
|
+
*/
|
|
28
|
+
httpsAgent?: https.Agent;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* An SDK config that
|
|
32
|
+
*/
|
|
33
|
+
export interface SdkBaseConfig {
|
|
34
|
+
/**
|
|
35
|
+
* The credential provider to use for SDK calls.
|
|
36
|
+
*/
|
|
37
|
+
readonly credentialProvider: SDKv3CompatibleCredentialProvider;
|
|
38
|
+
/**
|
|
39
|
+
* The default region to use for SDK calls.
|
|
40
|
+
*/
|
|
41
|
+
readonly defaultRegion?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface SdkBaseClientConfig {
|
|
44
|
+
requestHandler?: RequestHandlerSettings;
|
|
45
|
+
}
|
|
46
|
+
export interface IBaseCredentialsProvider {
|
|
47
|
+
sdkBaseConfig(ioHost: IActionAwareIoHost, clientConfig: SdkBaseClientConfig): Promise<SdkBaseConfig>;
|
|
48
|
+
}
|
|
49
|
+
export declare class BaseCredentials {
|
|
50
|
+
/**
|
|
51
|
+
* Use no base credentials
|
|
52
|
+
*
|
|
53
|
+
* There will be no current account and no current region during synthesis. To
|
|
54
|
+
* successfully deploy with this set of base credentials:
|
|
55
|
+
*
|
|
56
|
+
* - The CDK app must provide concrete accounts and regions during synthesis
|
|
57
|
+
* - Credential plugins must be installed to provide credentials for those
|
|
58
|
+
* accounts.
|
|
59
|
+
*/
|
|
60
|
+
static none(): IBaseCredentialsProvider;
|
|
61
|
+
/**
|
|
62
|
+
* Obtain base credentials and base region the same way the AWS CLI would
|
|
63
|
+
*
|
|
64
|
+
* Credentials and region will be read from the environment first, falling back
|
|
65
|
+
* to INI files or other sources if available.
|
|
66
|
+
*
|
|
67
|
+
* The profile name is configurable.
|
|
68
|
+
*/
|
|
69
|
+
static awsCliCompatible(options?: AwsCliCompatibleOptions): IBaseCredentialsProvider;
|
|
70
|
+
/**
|
|
71
|
+
* Use a custom SDK identity provider for the base credentials
|
|
72
|
+
*
|
|
73
|
+
* If your provider uses STS calls to obtain base credentials, you must make
|
|
74
|
+
* sure to also configure the necessary HTTP options (like proxy and user
|
|
75
|
+
* agent) and the region on the STS client directly; the toolkit code cannot
|
|
76
|
+
* do this for you.
|
|
77
|
+
*/
|
|
78
|
+
static custom(options: CustomBaseCredentialsOption): IBaseCredentialsProvider;
|
|
79
|
+
}
|
|
80
|
+
export interface AwsCliCompatibleOptions {
|
|
81
|
+
/**
|
|
82
|
+
* The profile to read from `~/.aws/credentials`.
|
|
83
|
+
*
|
|
84
|
+
* If not supplied the environment variable AWS_PROFILE will be used.
|
|
85
|
+
*
|
|
86
|
+
* @default - Use environment variable if set.
|
|
87
|
+
*/
|
|
88
|
+
readonly profile?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface CustomBaseCredentialsOption {
|
|
91
|
+
/**
|
|
92
|
+
* The credentials provider to use to obtain base credentials
|
|
93
|
+
*
|
|
94
|
+
* If your provider uses STS calls to obtain base credentials, you must make
|
|
95
|
+
* sure to also configure the necessary HTTP options (like proxy and user
|
|
96
|
+
* agent) on the STS client directly; the toolkit code cannot do this for you.
|
|
97
|
+
*/
|
|
98
|
+
readonly provider: SDKv3CompatibleCredentialProvider;
|
|
99
|
+
/**
|
|
100
|
+
* The default region to synthesize for
|
|
101
|
+
*
|
|
102
|
+
* CDK applications can override this region. NOTE: this region will *not*
|
|
103
|
+
* affect any STS calls made by the given provider, if any. You need to configure
|
|
104
|
+
* your credential provider separately.
|
|
105
|
+
*
|
|
106
|
+
* @default 'us-east-1'
|
|
107
|
+
*/
|
|
108
|
+
readonly region?: string;
|
|
109
|
+
}
|