@aws-cdk/toolkit-lib 0.1.1 → 0.1.3
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/CODE_REGISTRY.md +35 -0
- package/README.md +18 -18
- package/build-info.json +2 -2
- package/lib/actions/deploy/index.d.ts +4 -4
- package/lib/actions/deploy/index.js +1 -1
- package/lib/actions/diff/private/helpers.js +3 -3
- package/lib/api/aws-cdk.d.ts +0 -1
- package/lib/api/aws-cdk.js +1676 -1318
- package/lib/api/aws-cdk.js.map +4 -4
- package/lib/api/cloud-assembly/private/context-aware-source.js +5 -5
- package/lib/api/cloud-assembly/private/exec.js +3 -3
- package/lib/api/cloud-assembly/private/prepare-source.js +4 -4
- package/lib/api/cloud-assembly/private/source-builder.d.ts +2 -2
- package/lib/api/cloud-assembly/private/source-builder.js +5 -5
- package/lib/api/cloud-assembly/private/stack-assembly.js +7 -7
- package/lib/api/io/io-message.d.ts +1 -1
- package/lib/api/io/io-message.js +1 -1
- package/lib/api/io/private/codes.d.ts +59 -29
- package/lib/api/io/private/codes.js +167 -28
- package/lib/api/io/private/messages.d.ts +14 -20
- package/lib/api/io/private/messages.js +19 -15
- package/lib/api/io/private/timer.js +6 -5
- package/lib/api/shared-public.d.ts +1 -0
- package/lib/api/shared-public.js +100 -0
- package/lib/api/shared-public.js.map +7 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/toolkit/index.d.ts +1 -0
- package/lib/toolkit/index.js +2 -1
- package/lib/toolkit/toolkit.js +29 -35
- package/lib/toolkit/types.d.ts +76 -0
- package/lib/toolkit/types.js +3 -0
- package/package.json +26 -24
- package/lib/api/errors.d.ts +0 -44
- package/lib/api/errors.js +0 -82
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { SuccessfulDeployStackResult as _SuccessfulDeployStackResult } from '../api/aws-cdk';
|
|
2
|
+
/**
|
|
3
|
+
* Assembly data returned in the payload of an IO Message.
|
|
4
|
+
*/
|
|
5
|
+
export interface AssemblyData {
|
|
6
|
+
/**
|
|
7
|
+
* The path to the assembly directory
|
|
8
|
+
*/
|
|
9
|
+
readonly assemblyDirectory: string;
|
|
10
|
+
/**
|
|
11
|
+
* The number of stacks actioned on
|
|
12
|
+
*/
|
|
13
|
+
readonly stacksCount: number;
|
|
14
|
+
/**
|
|
15
|
+
* The stack IDs
|
|
16
|
+
*/
|
|
17
|
+
readonly stackIds: string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A successful deploy stack result. Intentionally exposed in toolkit-lib so documentation
|
|
21
|
+
* can be generated from this interface.
|
|
22
|
+
*/
|
|
23
|
+
export interface SuccessfulDeployStackResult extends _SuccessfulDeployStackResult {
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Stack data returned in the payload of an IO Message.
|
|
27
|
+
*/
|
|
28
|
+
export interface StackData {
|
|
29
|
+
/**
|
|
30
|
+
* The stack name
|
|
31
|
+
*/
|
|
32
|
+
readonly stackName: string;
|
|
33
|
+
/**
|
|
34
|
+
* The stack ID
|
|
35
|
+
*/
|
|
36
|
+
readonly hierarchicalId: string;
|
|
37
|
+
/**
|
|
38
|
+
* The stack template
|
|
39
|
+
*/
|
|
40
|
+
readonly template: any;
|
|
41
|
+
/**
|
|
42
|
+
* The stack template converted to JSON format
|
|
43
|
+
*/
|
|
44
|
+
readonly stringifiedJson: string;
|
|
45
|
+
/**
|
|
46
|
+
* The stack template converted to YAML format
|
|
47
|
+
*/
|
|
48
|
+
readonly stringifiedYaml: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Stack data returned in the payload of an IO Message.
|
|
52
|
+
*/
|
|
53
|
+
export interface StackAndAssemblyData extends AssemblyData {
|
|
54
|
+
/**
|
|
55
|
+
* Stack Data
|
|
56
|
+
*/
|
|
57
|
+
readonly stack: StackData;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Duration information returned in the payload of an IO Message.
|
|
61
|
+
*/
|
|
62
|
+
export interface Duration {
|
|
63
|
+
/**
|
|
64
|
+
* The duration of the action.
|
|
65
|
+
*/
|
|
66
|
+
readonly duration: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Generic payload of error IoMessages that pass on an instance of `Error`
|
|
70
|
+
*/
|
|
71
|
+
export interface ErrorPayload {
|
|
72
|
+
/**
|
|
73
|
+
* The error that occurred
|
|
74
|
+
*/
|
|
75
|
+
readonly error: Error;
|
|
76
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IGFzIF9TdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi9hcGkvYXdzLWNkayc7XG5cbi8qKlxuICogQXNzZW1ibHkgZGF0YSByZXR1cm5lZCBpbiB0aGUgcGF5bG9hZCBvZiBhbiBJTyBNZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5RGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgYXNzZW1ibHkgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSBhc3NlbWJseURpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHN0YWNrcyBhY3Rpb25lZCBvblxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzQ291bnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHN0YWNrIElEc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tJZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgc3VjY2Vzc2Z1bCBkZXBsb3kgc3RhY2sgcmVzdWx0LiBJbnRlbnRpb25hbGx5IGV4cG9zZWQgaW4gdG9vbGtpdC1saWIgc28gZG9jdW1lbnRhdGlvblxuICogY2FuIGJlIGdlbmVyYXRlZCBmcm9tIHRoaXMgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCBleHRlbmRzIF9TdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQge1xufVxuXG4vKipcbiAqIFN0YWNrIGRhdGEgcmV0dXJuZWQgaW4gdGhlIHBheWxvYWQgb2YgYW4gSU8gTWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFja0RhdGEge1xuICAvKipcbiAgICogVGhlIHN0YWNrIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgSURcbiAgICovXG4gIHJlYWRvbmx5IGhpZXJhcmNoaWNhbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0ZW1wbGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGU6IGFueTtcblxuICAvKipcbiAgICogVGhlIHN0YWNrIHRlbXBsYXRlIGNvbnZlcnRlZCB0byBKU09OIGZvcm1hdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaW5naWZpZWRKc29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0ZW1wbGF0ZSBjb252ZXJ0ZWQgdG8gWUFNTCBmb3JtYXRcbiAgICovXG4gIHJlYWRvbmx5IHN0cmluZ2lmaWVkWWFtbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFN0YWNrIGRhdGEgcmV0dXJuZWQgaW4gdGhlIHBheWxvYWQgb2YgYW4gSU8gTWVzc2FnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFja0FuZEFzc2VtYmx5RGF0YSBleHRlbmRzIEFzc2VtYmx5RGF0YSB7XG4gIC8qKlxuICAgKiBTdGFjayBEYXRhXG4gICAqL1xuICByZWFkb25seSBzdGFjazogU3RhY2tEYXRhO1xufVxuXG4vKipcbiAqIER1cmF0aW9uIGluZm9ybWF0aW9uIHJldHVybmVkIGluIHRoZSBwYXlsb2FkIG9mIGFuIElPIE1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHVyYXRpb24ge1xuICAvKipcbiAgICogVGhlIGR1cmF0aW9uIG9mIHRoZSBhY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBkdXJhdGlvbjogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdlbmVyaWMgcGF5bG9hZCBvZiBlcnJvciBJb01lc3NhZ2VzIHRoYXQgcGFzcyBvbiBhbiBpbnN0YW5jZSBvZiBgRXJyb3JgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JQYXlsb2FkIHtcbiAgLyoqXG4gICAqIFRoZSBlcnJvciB0aGF0IG9jY3VycmVkXG4gICAqL1xuICByZWFkb25seSBlcnJvcjogRXJyb3I7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@aws-cdk/cdk-build-tools": "^0.0.0",
|
|
37
|
+
"@aws-cdk/tmp-toolkit-helpers": "^0.0.0",
|
|
37
38
|
"@cdklabs/eslint-plugin": "^1.3.2",
|
|
38
39
|
"@smithy/types": "^4.1.0",
|
|
39
40
|
"@stylistic/eslint-plugin": "^3.1.0",
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
"@types/split2": "^4.2.3",
|
|
44
45
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
45
46
|
"@typescript-eslint/parser": "^8",
|
|
46
|
-
"aws-cdk": "^2.
|
|
47
|
+
"aws-cdk": "^2.1002.0",
|
|
47
48
|
"aws-cdk-lib": "^2.180.0",
|
|
48
49
|
"aws-sdk-client-mock": "^4.1.0",
|
|
49
50
|
"commit-and-tag-version": "^12",
|
|
@@ -66,30 +67,31 @@
|
|
|
66
67
|
"typescript": "5.6"
|
|
67
68
|
},
|
|
68
69
|
"dependencies": {
|
|
69
|
-
"@aws-cdk/cloud-assembly-schema": "^40.
|
|
70
|
+
"@aws-cdk/cloud-assembly-schema": "^40.7.0",
|
|
70
71
|
"@aws-cdk/cloudformation-diff": "^2.179.0",
|
|
71
72
|
"@aws-cdk/cx-api": "^2.180.0",
|
|
72
73
|
"@aws-cdk/region-info": "^2.180.0",
|
|
73
|
-
"@aws-sdk/client-appsync": "3
|
|
74
|
-
"@aws-sdk/client-
|
|
75
|
-
"@aws-sdk/client-
|
|
76
|
-
"@aws-sdk/client-
|
|
77
|
-
"@aws-sdk/client-
|
|
78
|
-
"@aws-sdk/client-
|
|
79
|
-
"@aws-sdk/client-
|
|
80
|
-
"@aws-sdk/client-
|
|
81
|
-
"@aws-sdk/client-
|
|
82
|
-
"@aws-sdk/client-
|
|
83
|
-
"@aws-sdk/client-
|
|
84
|
-
"@aws-sdk/client-
|
|
85
|
-
"@aws-sdk/client-
|
|
86
|
-
"@aws-sdk/client-
|
|
87
|
-
"@aws-sdk/client-
|
|
88
|
-
"@aws-sdk/client-
|
|
89
|
-
"@aws-sdk/client-
|
|
90
|
-
"@aws-sdk/
|
|
91
|
-
"@aws-sdk/
|
|
92
|
-
"@aws-sdk/
|
|
74
|
+
"@aws-sdk/client-appsync": "^3",
|
|
75
|
+
"@aws-sdk/client-cloudcontrol": "^3",
|
|
76
|
+
"@aws-sdk/client-cloudformation": "^3",
|
|
77
|
+
"@aws-sdk/client-cloudwatch-logs": "^3",
|
|
78
|
+
"@aws-sdk/client-codebuild": "^3",
|
|
79
|
+
"@aws-sdk/client-ec2": "^3",
|
|
80
|
+
"@aws-sdk/client-ecr": "^3",
|
|
81
|
+
"@aws-sdk/client-ecs": "^3",
|
|
82
|
+
"@aws-sdk/client-elastic-load-balancing-v2": "^3",
|
|
83
|
+
"@aws-sdk/client-iam": "^3",
|
|
84
|
+
"@aws-sdk/client-kms": "^3",
|
|
85
|
+
"@aws-sdk/client-lambda": "^3",
|
|
86
|
+
"@aws-sdk/client-route-53": "^3",
|
|
87
|
+
"@aws-sdk/client-s3": "^3",
|
|
88
|
+
"@aws-sdk/client-secrets-manager": "^3",
|
|
89
|
+
"@aws-sdk/client-sfn": "^3",
|
|
90
|
+
"@aws-sdk/client-ssm": "^3",
|
|
91
|
+
"@aws-sdk/client-sts": "^3",
|
|
92
|
+
"@aws-sdk/credential-providers": "^3",
|
|
93
|
+
"@aws-sdk/ec2-metadata-service": "^3",
|
|
94
|
+
"@aws-sdk/lib-storage": "^3",
|
|
93
95
|
"@jsii/check-node": "^1.108.0",
|
|
94
96
|
"@smithy/middleware-endpoint": "^4.0.6",
|
|
95
97
|
"@smithy/node-http-handler": "^4.0.3",
|
|
@@ -100,7 +102,7 @@
|
|
|
100
102
|
"@smithy/util-waiter": "^4.0.2",
|
|
101
103
|
"archiver": "^7.0.1",
|
|
102
104
|
"camelcase": "^6",
|
|
103
|
-
"cdk-assets": "^3.0.0
|
|
105
|
+
"cdk-assets": "^3.0.0",
|
|
104
106
|
"cdk-from-cfn": "^0.191.0",
|
|
105
107
|
"chalk": "^4",
|
|
106
108
|
"chokidar": "^3",
|
|
@@ -134,7 +136,7 @@
|
|
|
134
136
|
"publishConfig": {
|
|
135
137
|
"access": "public"
|
|
136
138
|
},
|
|
137
|
-
"version": "0.1.
|
|
139
|
+
"version": "0.1.3",
|
|
138
140
|
"types": "lib/index.d.ts",
|
|
139
141
|
"exports": {
|
|
140
142
|
".": {
|
package/lib/api/errors.d.ts
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Represents a general toolkit error in the AWS CDK Toolkit.
|
|
3
|
-
*/
|
|
4
|
-
export declare class ToolkitError extends Error {
|
|
5
|
-
/**
|
|
6
|
-
* Determines if a given error is an instance of ToolkitError.
|
|
7
|
-
*/
|
|
8
|
-
static isToolkitError(x: any): x is ToolkitError;
|
|
9
|
-
/**
|
|
10
|
-
* Determines if a given error is an instance of AuthenticationError.
|
|
11
|
-
*/
|
|
12
|
-
static isAuthenticationError(x: any): x is AuthenticationError;
|
|
13
|
-
/**
|
|
14
|
-
* Determines if a given error is an instance of AssemblyError.
|
|
15
|
-
*/
|
|
16
|
-
static isAssemblyError(x: any): x is AssemblyError;
|
|
17
|
-
/**
|
|
18
|
-
* Determines if a given error is an instance of AssemblyError.
|
|
19
|
-
*/
|
|
20
|
-
static isContextProviderError(x: any): x is ContextProviderError;
|
|
21
|
-
/**
|
|
22
|
-
* The type of the error, defaults to "toolkit".
|
|
23
|
-
*/
|
|
24
|
-
readonly type: string;
|
|
25
|
-
constructor(message: string, type?: string);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Represents an authentication-specific error in the AWS CDK Toolkit.
|
|
29
|
-
*/
|
|
30
|
-
export declare class AuthenticationError extends ToolkitError {
|
|
31
|
-
constructor(message: string);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Represents an authentication-specific error in the AWS CDK Toolkit.
|
|
35
|
-
*/
|
|
36
|
-
export declare class AssemblyError extends ToolkitError {
|
|
37
|
-
constructor(message: string);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Represents an error originating from a Context Provider
|
|
41
|
-
*/
|
|
42
|
-
export declare class ContextProviderError extends ToolkitError {
|
|
43
|
-
constructor(message: string);
|
|
44
|
-
}
|
package/lib/api/errors.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ContextProviderError = exports.AssemblyError = exports.AuthenticationError = exports.ToolkitError = void 0;
|
|
4
|
-
const TOOLKIT_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit.ToolkitError');
|
|
5
|
-
const AUTHENTICATION_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit.AuthenticationError');
|
|
6
|
-
const ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit.AssemblyError');
|
|
7
|
-
const CONTEXT_PROVIDER_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit.ContextProviderError');
|
|
8
|
-
/**
|
|
9
|
-
* Represents a general toolkit error in the AWS CDK Toolkit.
|
|
10
|
-
*/
|
|
11
|
-
class ToolkitError extends Error {
|
|
12
|
-
/**
|
|
13
|
-
* Determines if a given error is an instance of ToolkitError.
|
|
14
|
-
*/
|
|
15
|
-
static isToolkitError(x) {
|
|
16
|
-
return x !== null && typeof (x) === 'object' && TOOLKIT_ERROR_SYMBOL in x;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Determines if a given error is an instance of AuthenticationError.
|
|
20
|
-
*/
|
|
21
|
-
static isAuthenticationError(x) {
|
|
22
|
-
return this.isToolkitError(x) && AUTHENTICATION_ERROR_SYMBOL in x;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Determines if a given error is an instance of AssemblyError.
|
|
26
|
-
*/
|
|
27
|
-
static isAssemblyError(x) {
|
|
28
|
-
return this.isToolkitError(x) && ASSEMBLY_ERROR_SYMBOL in x;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Determines if a given error is an instance of AssemblyError.
|
|
32
|
-
*/
|
|
33
|
-
static isContextProviderError(x) {
|
|
34
|
-
return this.isToolkitError(x) && CONTEXT_PROVIDER_ERROR_SYMBOL in x;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* The type of the error, defaults to "toolkit".
|
|
38
|
-
*/
|
|
39
|
-
type;
|
|
40
|
-
constructor(message, type = 'toolkit') {
|
|
41
|
-
super(message);
|
|
42
|
-
Object.setPrototypeOf(this, ToolkitError.prototype);
|
|
43
|
-
Object.defineProperty(this, TOOLKIT_ERROR_SYMBOL, { value: true });
|
|
44
|
-
this.name = new.target.name;
|
|
45
|
-
this.type = type;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.ToolkitError = ToolkitError;
|
|
49
|
-
/**
|
|
50
|
-
* Represents an authentication-specific error in the AWS CDK Toolkit.
|
|
51
|
-
*/
|
|
52
|
-
class AuthenticationError extends ToolkitError {
|
|
53
|
-
constructor(message) {
|
|
54
|
-
super(message, 'authentication');
|
|
55
|
-
Object.setPrototypeOf(this, AuthenticationError.prototype);
|
|
56
|
-
Object.defineProperty(this, AUTHENTICATION_ERROR_SYMBOL, { value: true });
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.AuthenticationError = AuthenticationError;
|
|
60
|
-
/**
|
|
61
|
-
* Represents an authentication-specific error in the AWS CDK Toolkit.
|
|
62
|
-
*/
|
|
63
|
-
class AssemblyError extends ToolkitError {
|
|
64
|
-
constructor(message) {
|
|
65
|
-
super(message, 'assembly');
|
|
66
|
-
Object.setPrototypeOf(this, AssemblyError.prototype);
|
|
67
|
-
Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
exports.AssemblyError = AssemblyError;
|
|
71
|
-
/**
|
|
72
|
-
* Represents an error originating from a Context Provider
|
|
73
|
-
*/
|
|
74
|
-
class ContextProviderError extends ToolkitError {
|
|
75
|
-
constructor(message) {
|
|
76
|
-
super(message, 'context-provider');
|
|
77
|
-
Object.setPrototypeOf(this, ContextProviderError.prototype);
|
|
78
|
-
Object.defineProperty(this, CONTEXT_PROVIDER_ERROR_SYMBOL, { value: true });
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.ContextProviderError = ContextProviderError;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBQ3pFLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0FBQ3ZGLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0FBQzNFLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRTFGOztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsS0FBSztJQUNyQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBTTtRQUNqQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxvQkFBb0IsSUFBSSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQU07UUFDeEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUEyQixJQUFJLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQU07UUFDbEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLHFCQUFxQixJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBTTtRQUN6QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksNkJBQTZCLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7T0FFRztJQUNhLElBQUksQ0FBUztJQUU3QixZQUFZLE9BQWUsRUFBRSxPQUFlLFNBQVM7UUFDbkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUF6Q0Qsb0NBeUNDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG1CQUFvQixTQUFRLFlBQVk7SUFDbkQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSwyQkFBMkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7Q0FDRjtBQU5ELGtEQU1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSxZQUFZO0lBQzdDLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRjtBQU5ELHNDQU1DO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLFlBQVk7SUFDcEQsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNuQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSw2QkFBNkIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQU5ELG9EQU1DIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVE9PTEtJVF9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LlRvb2xraXRFcnJvcicpO1xuY29uc3QgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC5BdXRoZW50aWNhdGlvbkVycm9yJyk7XG5jb25zdCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LkFzc2VtYmx5RXJyb3InKTtcbmNvbnN0IENPTlRFWFRfUFJPVklERVJfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC5Db250ZXh0UHJvdmlkZXJFcnJvcicpO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmFsIHRvb2xraXQgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRvb2xraXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBUb29sa2l0RXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVG9vbGtpdEVycm9yKHg6IGFueSk6IHggaXMgVG9vbGtpdEVycm9yIHtcbiAgICByZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YoeCkgPT09ICdvYmplY3QnICYmIFRPT0xLSVRfRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIEF1dGhlbnRpY2F0aW9uRXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQXV0aGVudGljYXRpb25FcnJvcih4OiBhbnkpOiB4IGlzIEF1dGhlbnRpY2F0aW9uRXJyb3Ige1xuICAgIHJldHVybiB0aGlzLmlzVG9vbGtpdEVycm9yKHgpICYmIEFVVEhFTlRJQ0FUSU9OX0VSUk9SX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBBc3NlbWJseUVycm9yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0Fzc2VtYmx5RXJyb3IoeDogYW55KTogeCBpcyBBc3NlbWJseUVycm9yIHtcbiAgICByZXR1cm4gdGhpcy5pc1Rvb2xraXRFcnJvcih4KSAmJiBBU1NFTUJMWV9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQXNzZW1ibHlFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNDb250ZXh0UHJvdmlkZXJFcnJvcih4OiBhbnkpOiB4IGlzIENvbnRleHRQcm92aWRlckVycm9yIHtcbiAgICByZXR1cm4gdGhpcy5pc1Rvb2xraXRFcnJvcih4KSAmJiBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBlcnJvciwgZGVmYXVsdHMgdG8gXCJ0b29sa2l0XCIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ3Rvb2xraXQnKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIFRvb2xraXRFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBUT09MS0lUX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLm5hbWUgPSBuZXcudGFyZ2V0Lm5hbWU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXV0aGVudGljYXRpb24tc3BlY2lmaWMgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlLCAnYXV0aGVudGljYXRpb24nKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXV0aGVudGljYXRpb25FcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBVVRIRU5USUNBVElPTl9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGF1dGhlbnRpY2F0aW9uLXNwZWNpZmljIGVycm9yIGluIHRoZSBBV1MgQ0RLIFRvb2xraXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NlbWJseUVycm9yIGV4dGVuZHMgVG9vbGtpdEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgJ2Fzc2VtYmx5Jyk7XG4gICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsIEFzc2VtYmx5RXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgQVNTRU1CTFlfRVJST1JfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBlcnJvciBvcmlnaW5hdGluZyBmcm9tIGEgQ29udGV4dCBQcm92aWRlclxuICovXG5leHBvcnQgY2xhc3MgQ29udGV4dFByb3ZpZGVyRXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlLCAnY29udGV4dC1wcm92aWRlcicpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBDb250ZXh0UHJvdmlkZXJFcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxufVxuIl19
|