@aws-cdk/cloud-assembly-schema 54.7.0 → 54.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +26 -25
- package/cli-version.json +1 -1
- package/lib/cloud-assembly/validation-report-schema.d.ts +5 -0
- package/lib/cloud-assembly/validation-report-schema.js +1 -1
- package/lib/manifest.js +39 -8
- package/node_modules/semver/classes/range.js +6 -2
- package/node_modules/semver/package.json +1 -1
- package/package.json +12 -17
package/.jsii
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
"bundled": {
|
|
11
11
|
"jsonschema": "^1.5.0",
|
|
12
|
-
"semver": "^7.8.
|
|
12
|
+
"semver": "^7.8.5"
|
|
13
13
|
},
|
|
14
14
|
"description": "Schema for the protocol between CDK framework and CDK CLI",
|
|
15
15
|
"docs": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"hasDefaultInterfaces": true
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
-
"tscRootDir": "lib"
|
|
31
|
+
"tscRootDir": "/home/runner/work/aws-cdk-cli/aws-cdk-cli/packages/@aws-cdk/cloud-assembly-schema/lib"
|
|
32
32
|
},
|
|
33
33
|
"name": "@aws-cdk/cloud-assembly-schema",
|
|
34
34
|
"readme": {
|
|
@@ -1660,7 +1660,7 @@
|
|
|
1660
1660
|
"kind": "interface",
|
|
1661
1661
|
"locationInModule": {
|
|
1662
1662
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
1663
|
-
"line":
|
|
1663
|
+
"line": 261
|
|
1664
1664
|
},
|
|
1665
1665
|
"name": "CloudFormationResourceJson",
|
|
1666
1666
|
"properties": [
|
|
@@ -1673,7 +1673,7 @@
|
|
|
1673
1673
|
"immutable": true,
|
|
1674
1674
|
"locationInModule": {
|
|
1675
1675
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
1676
|
-
"line":
|
|
1676
|
+
"line": 270
|
|
1677
1677
|
},
|
|
1678
1678
|
"name": "logicalId",
|
|
1679
1679
|
"type": {
|
|
@@ -1689,7 +1689,7 @@
|
|
|
1689
1689
|
"immutable": true,
|
|
1690
1690
|
"locationInModule": {
|
|
1691
1691
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
1692
|
-
"line":
|
|
1692
|
+
"line": 265
|
|
1693
1693
|
},
|
|
1694
1694
|
"name": "templatePath",
|
|
1695
1695
|
"type": {
|
|
@@ -1707,7 +1707,7 @@
|
|
|
1707
1707
|
"immutable": true,
|
|
1708
1708
|
"locationInModule": {
|
|
1709
1709
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
1710
|
-
"line":
|
|
1710
|
+
"line": 280
|
|
1711
1711
|
},
|
|
1712
1712
|
"name": "propertyPaths",
|
|
1713
1713
|
"optional": true,
|
|
@@ -5999,7 +5999,7 @@
|
|
|
5999
5999
|
"immutable": true,
|
|
6000
6000
|
"locationInModule": {
|
|
6001
6001
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6002
|
-
"line":
|
|
6002
|
+
"line": 126
|
|
6003
6003
|
},
|
|
6004
6004
|
"name": "description",
|
|
6005
6005
|
"type": {
|
|
@@ -6009,13 +6009,14 @@
|
|
|
6009
6009
|
{
|
|
6010
6010
|
"abstract": true,
|
|
6011
6011
|
"docs": {
|
|
6012
|
+
"remarks": "This may include a namespace: `'<namespace>::<rule-name>'`. If it does not,\nthe plugin name will be used as the namespace.\n\nThe namespace must be included when acknowledging the violation.",
|
|
6012
6013
|
"stability": "stable",
|
|
6013
6014
|
"summary": "The name of the rule that was violated."
|
|
6014
6015
|
},
|
|
6015
6016
|
"immutable": true,
|
|
6016
6017
|
"locationInModule": {
|
|
6017
6018
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6018
|
-
"line":
|
|
6019
|
+
"line": 121
|
|
6019
6020
|
},
|
|
6020
6021
|
"name": "ruleName",
|
|
6021
6022
|
"type": {
|
|
@@ -6031,7 +6032,7 @@
|
|
|
6031
6032
|
"immutable": true,
|
|
6032
6033
|
"locationInModule": {
|
|
6033
6034
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6034
|
-
"line":
|
|
6035
|
+
"line": 138
|
|
6035
6036
|
},
|
|
6036
6037
|
"name": "severity",
|
|
6037
6038
|
"type": {
|
|
@@ -6047,7 +6048,7 @@
|
|
|
6047
6048
|
"immutable": true,
|
|
6048
6049
|
"locationInModule": {
|
|
6049
6050
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6050
|
-
"line":
|
|
6051
|
+
"line": 155
|
|
6051
6052
|
},
|
|
6052
6053
|
"name": "violatingConstructs",
|
|
6053
6054
|
"type": {
|
|
@@ -6068,7 +6069,7 @@
|
|
|
6068
6069
|
"immutable": true,
|
|
6069
6070
|
"locationInModule": {
|
|
6070
6071
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6071
|
-
"line":
|
|
6072
|
+
"line": 143
|
|
6072
6073
|
},
|
|
6073
6074
|
"name": "customSeverity",
|
|
6074
6075
|
"optional": true,
|
|
@@ -6086,7 +6087,7 @@
|
|
|
6086
6087
|
"immutable": true,
|
|
6087
6088
|
"locationInModule": {
|
|
6088
6089
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6089
|
-
"line":
|
|
6090
|
+
"line": 150
|
|
6090
6091
|
},
|
|
6091
6092
|
"name": "ruleMetadata",
|
|
6092
6093
|
"optional": true,
|
|
@@ -6109,7 +6110,7 @@
|
|
|
6109
6110
|
"immutable": true,
|
|
6110
6111
|
"locationInModule": {
|
|
6111
6112
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6112
|
-
"line":
|
|
6113
|
+
"line": 133
|
|
6113
6114
|
},
|
|
6114
6115
|
"name": "suggestedFix",
|
|
6115
6116
|
"optional": true,
|
|
@@ -6395,7 +6396,7 @@
|
|
|
6395
6396
|
"kind": "interface",
|
|
6396
6397
|
"locationInModule": {
|
|
6397
6398
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6398
|
-
"line":
|
|
6399
|
+
"line": 226
|
|
6399
6400
|
},
|
|
6400
6401
|
"name": "SuppressedViolationJson",
|
|
6401
6402
|
"properties": [
|
|
@@ -6409,7 +6410,7 @@
|
|
|
6409
6410
|
"immutable": true,
|
|
6410
6411
|
"locationInModule": {
|
|
6411
6412
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6412
|
-
"line":
|
|
6413
|
+
"line": 232
|
|
6413
6414
|
},
|
|
6414
6415
|
"name": "acknowledgedId",
|
|
6415
6416
|
"type": {
|
|
@@ -6426,7 +6427,7 @@
|
|
|
6426
6427
|
"immutable": true,
|
|
6427
6428
|
"locationInModule": {
|
|
6428
6429
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6429
|
-
"line":
|
|
6430
|
+
"line": 246
|
|
6430
6431
|
},
|
|
6431
6432
|
"name": "acknowledgedAt",
|
|
6432
6433
|
"optional": true,
|
|
@@ -6445,7 +6446,7 @@
|
|
|
6445
6446
|
"immutable": true,
|
|
6446
6447
|
"locationInModule": {
|
|
6447
6448
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6448
|
-
"line":
|
|
6449
|
+
"line": 255
|
|
6449
6450
|
},
|
|
6450
6451
|
"name": "acknowledgedStackTrace",
|
|
6451
6452
|
"optional": true,
|
|
@@ -6463,7 +6464,7 @@
|
|
|
6463
6464
|
"immutable": true,
|
|
6464
6465
|
"locationInModule": {
|
|
6465
6466
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6466
|
-
"line":
|
|
6467
|
+
"line": 239
|
|
6467
6468
|
},
|
|
6468
6469
|
"name": "reason",
|
|
6469
6470
|
"optional": true,
|
|
@@ -6887,7 +6888,7 @@
|
|
|
6887
6888
|
"kind": "interface",
|
|
6888
6889
|
"locationInModule": {
|
|
6889
6890
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6890
|
-
"line":
|
|
6891
|
+
"line": 169
|
|
6891
6892
|
},
|
|
6892
6893
|
"name": "ViolatingConstructJson",
|
|
6893
6894
|
"properties": [
|
|
@@ -6901,7 +6902,7 @@
|
|
|
6901
6902
|
"immutable": true,
|
|
6902
6903
|
"locationInModule": {
|
|
6903
6904
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6904
|
-
"line":
|
|
6905
|
+
"line": 175
|
|
6905
6906
|
},
|
|
6906
6907
|
"name": "constructPath",
|
|
6907
6908
|
"type": {
|
|
@@ -6917,7 +6918,7 @@
|
|
|
6917
6918
|
"immutable": true,
|
|
6918
6919
|
"locationInModule": {
|
|
6919
6920
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6920
|
-
"line":
|
|
6921
|
+
"line": 196
|
|
6921
6922
|
},
|
|
6922
6923
|
"name": "cloudFormationResource",
|
|
6923
6924
|
"optional": true,
|
|
@@ -6935,7 +6936,7 @@
|
|
|
6935
6936
|
"immutable": true,
|
|
6936
6937
|
"locationInModule": {
|
|
6937
6938
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6938
|
-
"line":
|
|
6939
|
+
"line": 182
|
|
6939
6940
|
},
|
|
6940
6941
|
"name": "constructFqn",
|
|
6941
6942
|
"optional": true,
|
|
@@ -6954,7 +6955,7 @@
|
|
|
6954
6955
|
"immutable": true,
|
|
6955
6956
|
"locationInModule": {
|
|
6956
6957
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6957
|
-
"line":
|
|
6958
|
+
"line": 191
|
|
6958
6959
|
},
|
|
6959
6960
|
"name": "libraryVersion",
|
|
6960
6961
|
"optional": true,
|
|
@@ -6973,7 +6974,7 @@
|
|
|
6973
6974
|
"immutable": true,
|
|
6974
6975
|
"locationInModule": {
|
|
6975
6976
|
"filename": "lib/cloud-assembly/validation-report-schema.ts",
|
|
6976
|
-
"line":
|
|
6977
|
+
"line": 208
|
|
6977
6978
|
},
|
|
6978
6979
|
"name": "stackTraces",
|
|
6979
6980
|
"optional": true,
|
|
@@ -7094,6 +7095,6 @@
|
|
|
7094
7095
|
"symbolId": "lib/cloud-assembly/context-queries:VpcContextQuery"
|
|
7095
7096
|
}
|
|
7096
7097
|
},
|
|
7097
|
-
"version": "54.
|
|
7098
|
+
"version": "54.9.0",
|
|
7098
7099
|
"fingerprint": "**********"
|
|
7099
7100
|
}
|
package/cli-version.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"2.
|
|
1
|
+
{"version":"2.1130.0"}
|
|
@@ -103,6 +103,11 @@ export type PolicyValidationReportConclusion = 'success' | 'failure';
|
|
|
103
103
|
export interface PolicyViolationJson {
|
|
104
104
|
/**
|
|
105
105
|
* The name of the rule that was violated.
|
|
106
|
+
*
|
|
107
|
+
* This may include a namespace: `'<namespace>::<rule-name>'`. If it does not,
|
|
108
|
+
* the plugin name will be used as the namespace.
|
|
109
|
+
*
|
|
110
|
+
* The namespace must be included when acknowledging the violation.
|
|
106
111
|
*/
|
|
107
112
|
readonly ruleName: string;
|
|
108
113
|
/**
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* during synthesis and consumed by the CDK CLI's validate command.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1yZXBvcnQtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGlvbi1yZXBvcnQtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSlNPTiBzY2hlbWEgZm9yIHZhbGlkYXRpb24tcmVwb3J0Lmpzb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgd3JpdHRlbiB0byB0aGUgY2xvdWQgYXNzZW1ibHkgZGlyZWN0b3J5IGJ5IGF3cy1jZGstbGliXG4gKiBkdXJpbmcgc3ludGhlc2lzIGFuZCBjb25zdW1lZCBieSB0aGUgQ0RLIENMSSdzIHZhbGlkYXRlIGNvbW1hbmQuXG4gKi9cblxuLyoqXG4gKiBUaGUgdG9wLWxldmVsIHN0cnVjdHVyZSBvZiB0aGUgcG9saWN5IHZhbGlkYXRpb24gcmVwb3J0IGZpbGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IFBvbGljeVZhbGlkYXRpb25SZXBvcnRKc29uIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbiAqXG4gKiBjb25zdCByZXBvcnQ6IFBvbGljeVZhbGlkYXRpb25SZXBvcnRKc29uID0ge1xuICogICB2ZXJzaW9uOiAnMS4wJyxcbiAqICAgcGx1Z2luUmVwb3J0czogW3tcbiAqICAgICBwbHVnaW5OYW1lOiAnbXktcGx1Z2luJyxcbiAqICAgICBjb25jbHVzaW9uOiAnc3VjY2VzcycsXG4gKiAgICAgdmlvbGF0aW9uczogW10sXG4gKiAgIH1dLFxuICogfTtcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lWYWxpZGF0aW9uUmVwb3J0SnNvbiB7XG4gIC8qKlxuICAgKiBQcm90b2NvbCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcG9ydCB0aXRsZSwgaWYgcHJlc2VudC5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXBvcnRzIGZyb20gYWxsIHZhbGlkYXRpb24gcGx1Z2lucyB0aGF0IHJhbiBkdXJpbmcgc3ludGhlc2lzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luUmVwb3J0czogUGx1Z2luUmVwb3J0SnNvbltdO1xufVxuXG4vKipcbiAqIEEgcmVwb3J0IGZyb20gYSBzaW5nbGUgdmFsaWRhdGlvbiBwbHVnaW4uXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IFBsdWdpblJlcG9ydEpzb24gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuICpcbiAqIGNvbnN0IHJlcG9ydDogUGx1Z2luUmVwb3J0SnNvbiA9IHtcbiAqICAgcGx1Z2luTmFtZTogJ215LXBsdWdpbicsXG4gKiAgIGNvbmNsdXNpb246ICdzdWNjZXNzJyxcbiAqICAgdmlvbGF0aW9uczogW10sXG4gKiB9O1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJlcG9ydEpzb24ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiB0aGF0IHByb2R1Y2VkIHRoaXMgcmVwb3J0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBwbHVnaW4gdGhhdCBwcm9kdWNlZCB0aGlzIHJlcG9ydC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5WZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwbHVnaW4ncyB2YWxpZGF0aW9uIHBhc3NlZCBvciBmYWlsZWQuXG4gICAqL1xuICByZWFkb25seSBjb25jbHVzaW9uOiBQb2xpY3lWYWxpZGF0aW9uUmVwb3J0Q29uY2x1c2lvbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwbHVnaW4tc3BlY2lmaWMgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVmlvbGF0aW9ucyBmb3VuZCBieSB0aGlzIHBsdWdpbi5cbiAgICovXG4gIHJlYWRvbmx5IHZpb2xhdGlvbnM6IFBvbGljeVZpb2xhdGlvbkpzb25bXTtcblxuICAvKipcbiAgICogVmlvbGF0aW9ucyB0aGF0IHdlcmUgc3VwcHJlc3NlZCB2aWEgYWNrbm93bGVkZ2VtZW50LlxuICAgKlxuICAgKiBUaGVzZSB2aW9sYXRpb25zIG1hdGNoZWQgYW4gYWNrbm93bGVkZ2VkIHJ1bGUgSUQgYW5kIHdlcmUgZXhjbHVkZWRcbiAgICogZnJvbSB0aGUgYWN0aXZlIHZpb2xhdGlvbnMgbGlzdC4gVGhleSBhcmUgcmV0YWluZWQgZm9yIGF1ZGl0XG4gICAqIHRyYWlsIGFuZCByZXBvcnRpbmcgcHVycG9zZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3VwcHJlc3NlZCB2aW9sYXRpb25zXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc2VkVmlvbGF0aW9ucz86IFN1cHByZXNzZWRWaW9sYXRpb25Kc29uW107XG59XG5cbi8qKlxuICogVGhlIGZpbmFsIGNvbmNsdXNpb24gb2YgYSB2YWxpZGF0aW9uIHJlcG9ydC5cbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5VmFsaWRhdGlvblJlcG9ydENvbmNsdXNpb24gPSAnc3VjY2VzcycgfCAnZmFpbHVyZSc7XG5cbi8qKlxuICogQSBzaW5nbGUgcG9saWN5IHZpb2xhdGlvbiBmb3VuZCBieSBhIHZhbGlkYXRpb24gcGx1Z2luLlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBQb2xpY3lWaW9sYXRpb25Kc29uIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbiAqXG4gKiBjb25zdCB2aW9sYXRpb246IFBvbGljeVZpb2xhdGlvbkpzb24gPSB7XG4gKiAgIHJ1bGVOYW1lOiAnbm8tcHVibGljLWFjY2VzcycsXG4gKiAgIGRlc2NyaXB0aW9uOiAnUzMgYnVja2V0IHNob3VsZCBub3QgYWxsb3cgcHVibGljIGFjY2VzcycsXG4gKiAgIHNldmVyaXR5OiAnZXJyb3InLFxuICogICB2aW9sYXRpbmdDb25zdHJ1Y3RzOiBbeyBjb25zdHJ1Y3RQYXRoOiAnTXlTdGFjay9NeUJ1Y2tldCcgfV0sXG4gKiB9O1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeVZpb2xhdGlvbkpzb24ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJ1bGUgdGhhdCB3YXMgdmlvbGF0ZWQuXG4gICAqXG4gICAqIFRoaXMgbWF5IGluY2x1ZGUgYSBuYW1lc3BhY2U6IGAnPG5hbWVzcGFjZT46OjxydWxlLW5hbWU+J2AuIElmIGl0IGRvZXMgbm90LFxuICAgKiB0aGUgcGx1Z2luIG5hbWUgd2lsbCBiZSB1c2VkIGFzIHRoZSBuYW1lc3BhY2UuXG4gICAqXG4gICAqIFRoZSBuYW1lc3BhY2UgbXVzdCBiZSBpbmNsdWRlZCB3aGVuIGFja25vd2xlZGdpbmcgdGhlIHZpb2xhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIHZpb2xhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvdyB0byBmaXggdGhlIHZpb2xhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBmaXggcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1Z2dlc3RlZEZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNldmVyaXR5IG9mIHRoZSB2aW9sYXRpb24uXG4gICAqL1xuICByZWFkb25seSBzZXZlcml0eTogUG9saWN5VmlvbGF0aW9uU2V2ZXJpdHk7XG5cbiAgLyoqXG4gICAqIElmIHRoZSBwbHVnaW4gd2FudHMgdG8gcmVwb3J0IHVzaW5nIGEgbm9uLXN0YW5kYXJkIHNldmVyaXR5LCBwdXQgaXQgaGVyZVxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tU2V2ZXJpdHk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgcnVsZS1zcGVjaWZpYyBtZXRhZGF0YS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgcnVsZU1ldGFkYXRhPzogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyB0aGF0IHZpb2xhdGVkIHRoZSBydWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmlvbGF0aW5nQ29uc3RydWN0czogVmlvbGF0aW5nQ29uc3RydWN0SnNvbltdO1xufVxuXG4vKipcbiAqIFRoZSBzZXZlcml0eSBvZiBhIHBvbGljeSB2aW9sYXRpb24uXG4gKlxuICogSWYgeW91IG5lZWQgdG8gdXNlIGEgc2V2ZXJpdHkgbGV2ZWwgdGhhdCBkb2Vzbid0IGV4aXN0IGFzIGEgc3RhdGljIG1lbWJlcixcbiAqIHVzZSBgY3VzdG9tYC5cbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5VmlvbGF0aW9uU2V2ZXJpdHkgPSAnZmF0YWwnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJyB8ICdjdXN0b20nO1xuXG4vKipcbiAqIEEgY29uc3RydWN0IHRoYXQgdmlvbGF0ZWQgYSBwb2xpY3kgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaW9sYXRpbmdDb25zdHJ1Y3RKc29uIHtcbiAgLyoqXG4gICAqIFRoZSBjb25zdHJ1Y3QgcGF0aCBhcyBkZWZpbmVkIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb25zdHJ1Y3QgcGF0aFxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGNvbnN0cnVjdCBjbGFzcyAoaW5jbHVkZXMgdGhlIGxpYnJhcnkgbmFtZSlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb25zdHJ1Y3QgaW5mb1xuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RydWN0RnFuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSB0aGF0IGNvbnRhaW5zIHRoaXMgY29uc3RydWN0LlxuICAgKlxuICAgKiBUaGUgbGlicmFyeSBuYW1lIGlzIHRoZSBmaXJzdCBjb21wb25lbnQgb2YgdGhlIGNvbnN0cnVjdCBGUU4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdmVyc2lvbiBpbmZvXG4gICAqL1xuICByZWFkb25seSBsaWJyYXJ5VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgdGhpcyBjb25zdHJ1Y3QgdmlvbGF0aW9uIHJlZ2FyZHMgYSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSwgYSByZWZlcmVuY2UgdG8gdGhlIHJlc291cmNlIGRldGFpbHNcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uUmVzb3VyY2U/OiBDbG91ZEZvcm1hdGlvblJlc291cmNlSnNvbjtcblxuICAvKipcbiAgICogU3RhY2sgdHJhY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHZpb2xhdGlvblxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSBhbGwgdGhlIHN0YWNrIHRyYWNlcyB3aGVyZSBhIHZpb2xhdGluZyBwcm9wZXJ0eSBnb3QgaXRzIHZhbHVlLFxuICAgKiBvciBqdXN0IHRoZSBjb25zdHJ1Y3QgY3JlYXRpb24gc3RhY2sgdHJhY2UuXG4gICAqXG4gICAqIEV2ZXJ5IGVsZW1lbnQgb2YgdGhlIGFycmF5IGlzIGEgc3RhY2sgdHJhY2UsIHdoZXJlIGVhY2ggc3RhY2sgdHJhY2UgaXMgYSBgXFxuYC1kZWxpbWl0ZWQgc3RyaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHN0YWNrIHRyYWNlc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIHZpb2xhdGlvbiB0aGF0IHdhcyBhY2tub3dsZWRnZWQvc3VwcHJlc3NlZCBhbmQgZXhjbHVkZWQgZnJvbSB0aGVcbiAqIGFjdGl2ZSB2aW9sYXRpb24gc2V0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBTdXBwcmVzc2VkVmlvbGF0aW9uSnNvbiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG4gKlxuICogY29uc3Qgc3VwcHJlc3NlZDogU3VwcHJlc3NlZFZpb2xhdGlvbkpzb24gPSB7XG4gKiAgIHJ1bGVOYW1lOiAnbm8tcHVibGljLWFjY2VzcycsXG4gKiAgIGRlc2NyaXB0aW9uOiAnUzMgYnVja2V0IHNob3VsZCBub3QgYWxsb3cgcHVibGljIGFjY2VzcycsXG4gKiAgIHNldmVyaXR5OiAnd2FybmluZycsXG4gKiAgIHZpb2xhdGluZ0NvbnN0cnVjdHM6IFt7IGNvbnN0cnVjdFBhdGg6ICdNeVN0YWNrL015QnVja2V0JyB9XSxcbiAqICAgYWNrbm93bGVkZ2VkSWQ6ICdteS1wbHVnaW46Om5vLXB1YmxpYy1hY2Nlc3MnLFxuICogfTtcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdXBwcmVzc2VkVmlvbGF0aW9uSnNvbiBleHRlbmRzIFBvbGljeVZpb2xhdGlvbkpzb24ge1xuICAvKipcbiAgICogVGhlIGFja25vd2xlZGdlbWVudCBJRCB0aGF0IGNhdXNlZCB0aGlzIHZpb2xhdGlvbiB0byBiZSBzdXBwcmVzc2VkLlxuICAgKlxuICAgKiBGb3JtYXQ6IGA8cGx1Z2luLW5hbWU+Ojo8cnVsZS1uYW1lPmAgKHNwYWNlcyByZXBsYWNlZCB3aXRoIGh5cGhlbnMpLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNrbm93bGVkZ2VkSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlYXNvbiBnaXZlbiBmb3IgdGhlIGFja25vd2xlZGdlbWVudCwgaWYgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcmVhc29uIGdpdmVuXG4gICAqL1xuICByZWFkb25seSByZWFzb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zdHJ1Y3QgcGF0aCB3aGVyZSB0aGUgYWNrbm93bGVkZ2VtZW50IHdhcyBkZWNsYXJlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1bmtub3duXG4gICAqL1xuICByZWFkb25seSBhY2tub3dsZWRnZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogU3RhY2sgdHJhY2Ugc2hvd2luZyB3aGVyZSB0aGUgYWNrbm93bGVkZ2VtZW50IHdhcyBkZWNsYXJlZC5cbiAgICpcbiAgICogQSBgXFxuYC1kZWxpbWl0ZWQgc3RyaW5nIG9mIHN0YWNrIGZyYW1lcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBzdGFjayB0cmFjZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNrbm93bGVkZ2VkU3RhY2tUcmFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG5vZGUgaW4gdGhlIGNvbnN0cnVjdCBjcmVhdGlvbiBzdGFjayB0cmFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZvcm1hdGlvblJlc291cmNlSnNvbiB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB0byB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgY29udGFpbmluZyB0aGlzIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVtcGxhdGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2dpY2FsIElEIG9mIHRoZSByZXNvdXJjZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUuXG4gICAqL1xuICByZWFkb25seSBsb2dpY2FsSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGVydGllcyB3aXRoaW4gdGhlIGNvbnN0cnVjdCB3aGVyZSB0aGUgdmlvbGF0aW9uIHdhcyBkZXRlY3RlZC5cbiAgICpcbiAgICogRWl0aGVyIGEgc2luZ2xlIGNvbXBvbmVudCwgaW4gd2hpY2ggY2FzZSBpdCByZWdhcmRzIGEgdG9wLWxldmVsIHByb3BlcnR5XG4gICAqIG5hbWUsIG9yIGEgSlNPTiBwYXRoIChzdGFydGluZyB3aXRoIGAkLmApIHRvIGluZGljYXRlIGEgZGVlcGVyIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxvY2F0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydHlQYXRocz86IHN0cmluZ1tdO1xufVxuIl19
|
package/lib/manifest.js
CHANGED
|
@@ -1,12 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
3
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
36
|
exports.Manifest = exports.VERSION_MISMATCH = void 0;
|
|
5
37
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
-
const fs = require("fs");
|
|
7
|
-
const jsonschema = require("jsonschema");
|
|
8
|
-
const semver = require("semver");
|
|
9
|
-
const assembly = require("./cloud-assembly");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const jsonschema = __importStar(require("jsonschema"));
|
|
40
|
+
const semver = __importStar(require("semver"));
|
|
41
|
+
const assembly = __importStar(require("./cloud-assembly"));
|
|
10
42
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
11
43
|
/* eslint-disable @typescript-eslint/no-require-imports */
|
|
12
44
|
// this prefix is used by the CLI to identify this specific error.
|
|
@@ -33,6 +65,7 @@ const SCHEMA_VERSION = require("../schema/version.json");
|
|
|
33
65
|
* Protocol utility class.
|
|
34
66
|
*/
|
|
35
67
|
class Manifest {
|
|
68
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "54.9.0" };
|
|
36
69
|
/**
|
|
37
70
|
* Validates and saves the cloud assembly manifest to file.
|
|
38
71
|
*
|
|
@@ -266,9 +299,7 @@ class Manifest {
|
|
|
266
299
|
}
|
|
267
300
|
}
|
|
268
301
|
exports.Manifest = Manifest;
|
|
269
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
270
|
-
Manifest[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "54.7.0" };
|
|
271
302
|
function stripEnumErrors(errors) {
|
|
272
303
|
return errors.filter((e) => typeof e.schema === 'string' || !('enum' in e.schema));
|
|
273
304
|
}
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qix5Q0FBeUM7QUFDekMsaUNBQWlDO0FBRWpDLDZDQUE2QztBQUk3Qyx1REFBdUQ7QUFDdkQsMERBQTBEO0FBRTFELGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsNkJBQTZCO0FBQ2hCLFFBQUEsZ0JBQWdCLEdBQVcsd0NBQXdDLENBQUM7QUFFakY7Ozs7OztHQU1HO0FBQ0gsbURBQW9EO0FBRXBELDhEQUErRDtBQUUvRCx3RUFBeUU7QUFFekUsNERBQTZEO0FBRTdELG9GQUFxRjtBQUVyRjs7R0FFRztBQUNILHlEQUEwRDtBQWdEMUQ7O0dBRUc7QUFDSCxNQUFzQixRQUFRO0lBQzVCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQW1DLEVBQUUsUUFBZ0I7UUFDdEYsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLG9CQUFvQixDQUNoQyxRQUFnQixFQUNoQixPQUE2QjtRQUU3QixPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQThCLEVBQUUsUUFBZ0I7UUFDOUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQWdCO1FBQzlDLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsYUFBYSxD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QUFDO1lBQzFDLHNGQUFzRjtZQUN0RixnSEFBZ0g7WUFDaEgsNEdBQTRHO1lBQzVHLGdEQUFnRDtZQUNoRCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksaUJBQWlCLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDOztBQTNSSCw0QkE0UkM7OztBQUVELFNBQVMsZUFBZSxDQUFDLE1BQW9DO0lBQzNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3JGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBqc29uc2NoZW1hIGZyb20gJ2pzb25zY2hlbWEnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgdHlwZSAqIGFzIGFzc2V0cyBmcm9tICcuL2Fzc2V0cyc7XG5pbXBvcnQgKiBhcyBhc3NlbWJseSBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlICogYXMgdmFsaWRhdGlvbiBmcm9tICcuL2Nsb3VkLWFzc2VtYmx5L3ZhbGlkYXRpb24tcmVwb3J0LXNjaGVtYSc7XG5pbXBvcnQgdHlwZSAqIGFzIGludGVnIGZyb20gJy4vaW50ZWctdGVzdHMnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5cbi8vIHRoaXMgcHJlZml4IGlzIHVzZWQgYnkgdGhlIENMSSB0byBpZGVudGlmeSB0aGlzIHNwZWNpZmljIGVycm9yLlxuLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIGluc3RydWN0IHRoZSB1c2VyIHRvIHVwZ3JhZGUgaGlzIENMSS5cbi8vIHNlZSBleGVjLnRzI2NyZWF0ZUFzc2VtYmx5XG5leHBvcnQgY29uc3QgVkVSU0lPTl9NSVNNQVRDSDogc3RyaW5nID0gJ0Nsb3VkIGFzc2VtYmx5IHNjaGVtYSB2ZXJzaW9uIG1pc21hdGNoJztcblxuLyoqXG4gKiBDTEkgdmVyc2lvbiBpcyBjcmVhdGVkIGF0IGJ1aWxkIGFuZCByZWxlYXNlIHRpbWVcbiAqXG4gKiBJdCBuZWVkcyB0byBiZSAuZ2l0aWdub3JlJ2QsIG90aGVyd2lzZSB0aGUgcHJvamVuICdubyB1bmNvbW1pdHRlZFxuICogY2hhbmdlcycgc2VsZi1jaGVjayB3aWxsIGZhaWwsIHdoaWNoIG1lYW5zIGl0IG5lZWRzIHRvIGJlIGdlbmVyYXRlZFxuICogYXQgYnVpbGQgdGltZSBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QuXG4gKi9cbmltcG9ydCBDTElfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2NsaS12ZXJzaW9uLmpzb24nKTtcblxuaW1wb3J0IEFTU0VUU19TQ0hFTUEgPSByZXF1aXJlKCcuLi9zY2hlbWEvYXNzZXRzLnNjaGVtYS5qc29uJyk7XG5cbmltcG9ydCBBU1NFTUJMWV9TQ0hFTUEgPSByZXF1aXJlKCcuLi9zY2hlbWEvY2xvdWQtYXNzZW1ibHkuc2NoZW1hLmpzb24nKTtcblxuaW1wb3J0IElOVEVHX1NDSEVNQSA9IHJlcXVpcmUoJy4uL3NjaGVtYS9pbnRlZy5zY2hlbWEuanNvbicpO1xuXG5pbXBvcnQgVkFMSURBVElPTl9SRVBPUlRfU0NIRU1BID0gcmVxdWlyZSgnLi4vc2NoZW1hL3ZhbGlkYXRpb24tcmVwb3J0LnNjaGVtYS5qc29uJyk7XG5cbi8qKlxuICogVmVyc2lvbiBpcyBzaGFyZWQgZm9yIGJvdGggbWFuaWZlc3RzXG4gKi9cbmltcG9ydCBTQ0hFTUFfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL3NjaGVtYS92ZXJzaW9uLmpzb24nKTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgbG9hZE1hbmlmZXN0IG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvYWRNYW5pZmVzdE9wdGlvbnMge1xuICAvKipcbiAgICogU2tpcCB0aGUgdmVyc2lvbiBjaGVja1xuICAgKlxuICAgKiBUaGlzIG1lYW5zIHlvdSBtYXkgcmVhZCBhIG5ld2VyIGNsb3VkIGFzc2VtYmx5IHRoYW4gdGhlIENYIEFQSSBpcyBkZXNpZ25lZFxuICAgKiB0byBzdXBwb3J0LCBhbmQgeW91ciBhcHBsaWNhdGlvbiBtYXkgbm90IGJlIGF3YXJlIG9mIGFsbCBmZWF0dXJlcyB0aGF0IGluIHVzZVxuICAgKiBpbiB0aGUgQ2xvdWQgQXNzZW1ibHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBza2lwVmVyc2lvbkNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2tpcCBlbnVtIGNoZWNrc1xuICAgKlxuICAgKiBUaGlzIG1lYW5zIHlvdSBtYXkgcmVhZCBlbnVtIHZhbHVlcyB5b3UgZG9uJ3Qga25vdyBhYm91dCB5ZXQuIE1ha2Ugc3VyZSB0byBhbHdheXNcbiAgICogY2hlY2sgdGhlIHZhbHVlcyBvZiBlbnVtcyB5b3UgZW5jb3VudGVyIGluIHRoZSBtYW5pZmVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNraXBFbnVtQ2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUb3BvbG9naWNhbGx5IHNvcnQgYWxsIGFydGlmYWN0c1xuICAgKlxuICAgKiBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHJlc3BlY3RlZCBieSB0aGUgY29uc3RydWN0b3Igb2YgYENsb3VkQXNzZW1ibHlgLiBUaGVcbiAgICogcHJvcGVydHkgbGl2ZXMgaGVyZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9wb1NvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGUgZmlsZSBhY2NvcmRpbmcgdG8gdGhlIGRlY2xhcmVkIEpTT04gU2NoZW1hXG4gICAqXG4gICAqIEJlIGF3YXJlIHRoYXQgSlNPTiBTY2hlbWEgdmFsaWRhdGlvbiBoYXMgYSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBjb3N0XG4gICAqIChhYm91dCAxMHggb3ZlciBub3QgdmFsaWRhdGluZykuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlLCB1bmxlc3MgJFRFU1RJTkdfQ0RLIGlzIHNldCB0byAnMSdcbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRlU2NoZW1hPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm90b2NvbCB1dGlsaXR5IGNsYXNzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTWFuaWZlc3Qge1xuICAvKipcbiAgICogVmFsaWRhdGVzIGFuZCBzYXZlcyB0aGUgY2xvdWQgYXNzZW1ibHkgbWFuaWZlc3QgdG8gZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIG1hbmlmZXN0IC0gbWFuaWZlc3QuXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIG91dHB1dCBmaWxlIHBhdGguXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNhdmVBc3NlbWJseU1hbmlmZXN0KG1hbmlmZXN0OiBhc3NlbWJseS5Bc3NlbWJseU1hbmlmZXN0LCBmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgTWFuaWZlc3Quc2F2ZU1hbmlmZXN0KG1hbmlmZXN0LCBmaWxlUGF0aCwgQVNTRU1CTFlfU0NIRU1BKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGFuZCB2YWxpZGF0ZXMgdGhlIGNsb3VkIGFzc2VtYmx5IG1hbmlmZXN0IGZyb20gZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gcGF0aCB0byB0aGUgbWFuaWZlc3QgZmlsZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbG9hZEFzc2VtYmx5TWFuaWZlc3QoXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgICBvcHRpb25zPzogTG9hZE1hbmlmZXN0T3B0aW9ucyxcbiAgKTogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCB7XG4gICAgcmV0dXJuIE1hbmlmZXN0LmxvYWRNYW5pZmVzdChmaWxlUGF0aCwgQVNTRU1CTFlfU0NIRU1BLCBNYW5pZmVzdC5wYXRjaFN0YWNrVGFnc09uUmVhZCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFuZCBzYXZlcyB0aGUgYXNzZXQgbWFuaWZlc3QgdG8gZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIG1hbmlmZXN0IC0gbWFuaWZlc3QuXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIG91dHB1dCBmaWxlIHBhdGguXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNhdmVBc3NldE1hbmlmZXN0KG1hbmlmZXN0OiBhc3NldHMuQXNzZXRNYW5pZmVzdCwgZmlsZVBhdGg6IHN0cmluZykge1xuICAgIE1hbmlmZXN0LnNhdmVNYW5pZmVzdChtYW5pZmVzdCwgZmlsZVBhdGgsIEFTU0VUU19TQ0hFTUEpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYW5kIHZhbGlkYXRlcyB0aGUgYXNzZXQgbWFuaWZlc3QgZnJvbSBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBwYXRoIHRvIHRoZSBtYW5pZmVzdCBmaWxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsb2FkQXNzZXRNYW5pZmVzdChmaWxlUGF0aDogc3RyaW5nKTogYXNzZXRzLkFzc2V0TWFuaWZlc3Qge1xuICAgIHJldHVybiBNYW5pZmVzdC5sb2FkTWFuaWZlc3QoZmlsZVBhdGgsIEFTU0VUU19TQ0hFTUEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbmQgc2F2ZXMgdGhlIGludGVnIG1hbmlmZXN0IHRvIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBvdXRwdXQgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlSW50ZWdNYW5pZmVzdChtYW5pZmVzdDogaW50ZWcuSW50ZWdNYW5pZmVzdCwgZmlsZVBhdGg6IHN0cmluZykge1xuICAgIE1hbmlmZXN0LnNhdmVNYW5pZmVzdChtYW5pZmVzdCwgZmlsZVBhdGgsIElOVEVHX1NDSEVNQSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhbmQgdmFsaWRhdGVzIHRoZSBpbnRlZyBtYW5pZmVzdCBmcm9tIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIHBhdGggdG8gdGhlIG1hbmlmZXN0IGZpbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxvYWRJbnRlZ01hbmlmZXN0KGZpbGVQYXRoOiBzdHJpbmcpOiBpbnRlZy5JbnRlZ01hbmlmZXN0IHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IHRoaXMubG9hZE1hbmlmZXN0KGZpbGVQYXRoLCBJTlRFR19TQ0hFTUEpO1xuXG4gICAgLy8gQWRkaW5nIHR5cGluZyB0byBgdmFsaWRhdGUoKWAgbGVkIHRvIGBsb2FkTWFuaWZlc3QoKWAgdG8gcHJvcGVybHkgaW5mZXJcbiAgICAvLyBpdHMgcmV0dXJuIHR5cGUsIHdoaWNoIGluZGljYXRlZCB0aGF0IHRoZSByZXR1cm4gdHlwZSBvZiB0aGlzXG4gICAgLy8gZnVuY3Rpb24gbWF5IGJlIGEgbGllLiBJIGNvdWxkIGNoYW5nZSB0aGUgc2NoZW1hIHRvIG1ha2UgYHRlc3RDYXNlc2BcbiAgICAvLyBvcHRpb25hbCwgYnV0IHRoYXQgd2lsbCBidW1wIHRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZSBhbmQgSVxuICAgIC8vIGRvbid0IHdhbnQgdG8gZG8gdGhhdC4gU28gaW5zdGVhZCwganVzdCBtYWtlIHN1cmUgYHRlc3RDYXNlc2AgaXMgYWx3YXlzIHRoZXJlLlxuICAgIHJldHVybiB7XG4gICAgICAuLi5tYW5pZmVzdCxcbiAgICAgIHRlc3RDYXNlczogKG1hbmlmZXN0IGFzIGFueSkudGVzdENhc2VzID8/IFtdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhbmQgdmFsaWRhdGUgdGhlIHBvbGljeSB2YWxpZGF0aW9uIHJlcG9ydCBmcm9tIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIHBhdGggdG8gdGhlIHZhbGlkYXRpb24gcmVwb3J0IGZpbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxvYWRWYWxpZGF0aW9uUmVwb3J0KGZpbGVQYXRoOiBzdHJpbmcpOiB2YWxpZGF0aW9uLlBvbGljeVZhbGlkYXRpb25SZXBvcnRKc29uIHtcbiAgICByZXR1cm4gTWFuaWZlc3QubG9hZE1hbmlmZXN0KGZpbGVQYXRoLCBWQUxJREFUSU9OX1JFUE9SVF9TQ0hFTUEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIHRoZSBjdXJyZW50IHNjaGVtYSB2ZXJzaW9uIG51bWJlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtTQ0hFTUFfVkVSU0lPTi5yZXZpc2lvbn0uMC4wYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIENMSSB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgdGhpcyBDbG91ZCBBc3NlbWJseSBTY2hlbWEgdmVyc2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjbGlWZXJzaW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdmVyc2lvbiA9IENMSV9WRVJTSU9OLnZlcnNpb247XG4gICAgcmV0dXJuIHZlcnNpb24gPyB2ZXJzaW9uIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWRcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBzYXZlQXNzZW1ibHlNYW5pZmVzdCgpYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlKG1hbmlmZXN0OiBhc3NlbWJseS5Bc3NlbWJseU1hbmlmZXN0LCBmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZUFzc2VtYmx5TWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXByZWNhdGVkXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgbG9hZEFzc2VtYmx5TWFuaWZlc3QoKWBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbG9hZChmaWxlUGF0aDogc3RyaW5nKTogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCB7XG4gICAgcmV0dXJuIHRoaXMubG9hZEFzc2VtYmx5TWFuaWZlc3QoZmlsZVBhdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGUoXG4gICAgbWFuaWZlc3Q6IGFueSxcbiAgICBzY2hlbWE6IGpzb25zY2hlbWEuU2NoZW1hLFxuICAgIG9wdGlvbnM/OiBMb2FkTWFuaWZlc3RPcHRpb25zLFxuICApOiB2b2lkIHtcbiAgICBmdW5jdGlvbiBwYXJzZVZlcnNpb24odmVyc2lvbjogc3RyaW5nKSB7XG4gICAgICBjb25zdCB2ZXIgPSBzZW12ZXIudmFsaWQodmVyc2lvbik7XG4gICAgICBpZiAoIXZlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2VtdmVyIHN0cmluZzogXCIke3ZlcnNpb259XCJgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2ZXI7XG4gICAgfVxuXG4gICAgY29uc3QgbWF4U3VwcG9ydGVkID0gc2VtdmVyLm1ham9yKHBhcnNlVmVyc2lvbihNYW5pZmVzdC52ZXJzaW9uKCkpKTtcbiAgICBjb25zdCBhY3R1YWwgPSBwYXJzZVZlcnNpb24obWFuaWZlc3QudmVyc2lvbik7XG5cbiAgICAvLyBmaXJzdCB2YWxpZGF0ZSB0aGUgdmVyc2lvbiBzaG91bGQgYmUgYWNjZXB0ZWQuIGFsbCB2ZXJzaW9ucyB3aXRoaW4gdGhlIHNhbWUgbWlub3IgdmVyc2lvbiBhcmUgZmluZVxuICAgIGlmIChtYXhTdXBwb3J0ZWQgPCBzZW12ZXIubWFqb3IoYWN0dWFsKSAmJiAhb3B0aW9ucz8uc2tpcFZlcnNpb25DaGVjaykge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBhIG1vcmUgc3BlY2lmaWMgZXJyb3IgdG8gdGhyb3cgdGhhbiB0aGUgZ2VuZXJpYyBvbmUgYmVsb3csIG1ha2Ugc3VyZSB0byBhZGQgdGhhdCBpbmZvLlxuICAgICAgY29uc3QgY2xpVmVyc2lvbiA9IChtYW5pZmVzdCBhcyBhc3NlbWJseS5Bc3NlbWJseU1hbmlmZXN0KS5taW5pbXVtQ2xpVmVyc2lvbjtcbiAgICAgIGxldCBjbGlXYXJuaW5nID0gJyc7XG4gICAgICBpZiAoY2xpVmVyc2lvbikge1xuICAgICAgICBjbGlXYXJuaW5nID0gYC4gWW91IG5lZWQgYXQgbGVhc3QgQ0xJIHZlcnNpb24gJHtjbGlWZXJzaW9ufSB0byByZWFkIHRoaXMgbWFuaWZlc3QuYDtcbiAgICAgIH1cblxuICAgICAgLy8gd2UgdXNlIGEgd2VsbCBrbm93biBlcnJvciBwcmVmaXggc28gdGhhdCB0aGUgQ0xJIGNhbiBpZGVudGlmeSB0aGlzIHNwZWNpZmljIGVycm9yXG4gICAgICAvLyBhbmQgcHJpbnQgc29tZSBtb3JlIGNvbnRleHQgdG8gdGhlIHVzZXIuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGAke1ZFUlNJT05fTUlTTUFUQ0h9OiBNYXhpbXVtIHNjaGVtYSB2ZXJzaW9uIHN1cHBvcnRlZCBpcyAke21heFN1cHBvcnRlZH0ueC54LCBidXQgZm91bmQgJHthY3R1YWx9JHtjbGlXYXJuaW5nfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zPy52YWxpZGF0ZVNjaGVtYSA/PyAocHJvY2Vzcy5lbnYuVEVTVElOR19DREsgPT09ICcxJykpIHtcbiAgICAgIC8vIG5vdyB2YWxpZGF0ZSB0aGUgZm9ybWF0IGlzIGdvb2QuXG4gICAgICBjb25zdCB2YWxpZGF0b3IgPSBuZXcganNvbnNjaGVtYS5WYWxpZGF0b3IoKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRvci52YWxpZGF0ZShtYW5pZmVzdCwgc2NoZW1hLCB7XG4gICAgICAgIG5lc3RlZEVycm9yczogdHJ1ZSxcbiAgICAgICAgYWxsb3dVbmtub3duQXR0cmlidXRlczogZmFsc2UsXG4gICAgICAgIHByZVZhbGlkYXRlUHJvcGVydHk6IE1hbmlmZXN0LnZhbGlkYXRlQXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zLFxuICAgICAgfSk7XG5cbiAgICAgIGxldCBlcnJvcnMgPSByZXN1bHQuZXJyb3JzO1xuICAgICAgaWYgKG9wdGlvbnM/LnNraXBFbnVtQ2hlY2spIHtcbiAgICAgICAgLy8gRW51bSB2YWxpZGF0aW9ucyBhcmVuJ3QgdXNlZnVsIHdoZW5cbiAgICAgICAgZXJyb3JzID0gc3RyaXBFbnVtRXJyb3JzKGVycm9ycyk7XG4gICAgICB9XG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFzc2VtYmx5IG1hbmlmZXN0OlxcbiR7ZXJyb3JzLm1hcCgoZSkgPT4gZS5zdGFjaykuam9pbignXFxuJyl9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc2F2ZU1hbmlmZXN0KFxuICAgIG1hbmlmZXN0OiBhbnksXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgICBzY2hlbWE6IGpzb25zY2hlbWEuU2NoZW1hLFxuICAgIHByZXByb2Nlc3M/OiAob2JqOiBhbnkpID0+IGFueSxcbiAgKSB7XG4gICAgbGV0IHdpdGhWZXJzaW9uID0ge1xuICAgICAgLi4ubWFuaWZlc3QsXG4gICAgICB2ZXJzaW9uOiBNYW5pZmVzdC52ZXJzaW9uKCksXG4gICAgICBtaW5pbXVtQ2xpVmVyc2lvbjogTWFuaWZlc3QuY2xpVmVyc2lvbigpLFxuICAgIH0gc2F0aXNmaWVzIGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3Q7XG5cbiAgICBNYW5pZmVzdC52YWxpZGF0ZSh3aXRoVmVyc2lvbiwgc2NoZW1hKTtcblxuICAgIGlmIChwcmVwcm9jZXNzKSB7XG4gICAgICB3aXRoVmVyc2lvbiA9IHByZXByb2Nlc3Mod2l0aFZlcnNpb24pO1xuICAgIH1cbiAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeSh3aXRoVmVyc2lvbiwgdW5kZWZpbmVkLCAyKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBsb2FkTWFuaWZlc3QoXG4gICAgZmlsZVBhdGg6IHN0cmluZyxcbiAgICBzY2hlbWE6IGpzb25zY2hlbWEuU2NoZW1hLFxuICAgIHByZXByb2Nlc3M/OiAob2JqOiBhbnkpID0+IGFueSxcbiAgICBvcHRpb25zPzogTG9hZE1hbmlmZXN0T3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3QgY29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG4gICAgbGV0IG9iajtcbiAgICB0cnkge1xuICAgICAgb2JqID0gSlNPTi5wYXJzZShjb250ZW50cyk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZS5tZXNzYWdlfSwgd2hpbGUgcGFyc2luZyAke0pTT04uc3RyaW5naWZ5KGNvbnRlbnRzKX1gKTtcbiAgICB9XG4gICAgaWYgKHByZXByb2Nlc3MpIHtcbiAgICAgIG9iaiA9IHByZXByb2Nlc3Mob2JqKTtcbiAgICB9XG4gICAgTWFuaWZlc3QudmFsaWRhdGUob2JqLCBzY2hlbWEsIG9wdGlvbnMpO1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICAvKipcbiAgICogRml4IHRoZSBjYXNpbmcgb2Ygc3RhY2sgdGFncyBlbnRyaWVzXG4gICAqXG4gICAqIEF0IHRoZSB2ZXJ5IGJlZ2lubmluZyBvZiB0aGUgQ0RLIHdlIHVzZWQgdG8gZW1pdCBzdGFjayB0YWdzIGFzIGFuIG9iamVjdCB3aXRoXG4gICAqIGB7IEtleSwgVmFsdWUgfWAga2V5czsgdGhpcyBoYWQgdGhlIFwiYWR2YW50YWdlXCIgdGhhdCB3ZSBjb3VsZCBzdGljayB0aG9zZVxuICAgKiB0YWdzIGRpcmVjdGx5IGludG8gdGhlIGBDcmVhdGVDaGFuZ2VTZXRgIGNhbGwuXG4gICAqXG4gICAqIFRoZW4gd2UgbGF0ZXIgb24gdXNlZCBqc2lpIG9uIHRoZSBhc3NlbWJseSBzY2hlbWEgYW5kIHdlIHdlcmUgZm9yY2VkIHRvIHR5cGVcbiAgICogdGhlIGluLW1lbW9yeSBvYmplY3RzIGFzIGB7IGtleSwgdmFsdWUgfWAgd2l0aCBsb3dlcmNhc2UgbGV0dGVycy4gTm93IHRoZVxuICAgKiBvYmplY3RzIGhhdmUgYSBkaWZmZXJlbnQgb24tZGlzayBhbmQgaW4tbWVtb3J5IGZvcm1hdCwgYW5kIHdlIG5lZWQgdG8gY29udmVydFxuICAgKiBiZXR3ZWVuIHRoZW0uXG4gICAqXG4gICAqIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLCB3ZSB1c2VkIHRvIGNvbnZlcnQgbG93ZXJjYXNlIGluLW1lbW9yeVxuICAgKiB0byB1cHBlcmNhc2Ugb24tZGlzayB2YXJpYW50IHVudGlsIHZlcnkgcmVjZW50bHkuIFRoaXMgaXMgbm93IHVubmVjZXNzYXJ5LFxuICAgKiBzaW5jZSBubyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBDREsgdG9vbHMgcmVhZCB0aGUgc3RhY2sgdGFncyBmcm9tIHRoZVxuICAgKiBtZXRhZGF0YTsgdGhlIENMSSBhbmQgdG9vbGtpdCBsaWJyYXJ5IHJlYWQgc3RhY2sgdGFncyBmcm9tIHRoZSBhcnRpZmFjdFxuICAgKiBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBTbyBhbHRob3VnaCB3ZSBkb24ndCBlbWl0IHVwcGVyY2FzZSBzdGFjayB0YWcgb2JqZWN0cyBhbnltb3JlLCB3ZSBtaWdodCBzdGlsbCByZWFkXG4gICAqIG1hbmlmZXN0cyB0aGF0IGhhdmUgdGhlbS4gQmVjYXVzZSB0aGUgbWFuaWZlc3Qgd2UgcmVhZCBtdXN0IHBhc3MgSlNPTiBTY2hlbWFcbiAgICogdmFsaWRhdGlvbiAod2hpY2ggZXhwZWN0cyBsb3dlcmNhc2UgdGFnIG9iamVjdHMpLCB3ZSBoYXZlIHRvIGZpeCB0aGUgY2FzaW5nXG4gICAqIG9mIHRoZXNlIG9iamVjdHMgYWZ0ZXIgcmVhZGluZyBmcm9tIGRpc2sgYW5kIGJlZm9yZSB2YWxpZGF0aW5nLlxuICAgKlxuICAgKiBUaGF0J3Mgd2hhdCB0aGlzIGZ1bmN0aW9uIGRvZXMuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBwYXRjaFN0YWNrVGFnc09uUmVhZCh0aGlzOiB2b2lkLCBtYW5pZmVzdDogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCkge1xuICAgIGNvbnN0IGFydGlmYWN0cyA9IE9iamVjdC52YWx1ZXMobWFuaWZlc3QuYXJ0aWZhY3RzID8/IHt9KVxuICAgICAgLmZpbHRlcihhcnRpZmFjdCA9PiBhcnRpZmFjdC50eXBlID09PSBhc3NlbWJseS5BcnRpZmFjdFR5cGUuQVdTX0NMT1VERk9STUFUSU9OX1NUQUNLKTtcblxuICAgIGZvciAoY29uc3QgYXJ0aWZhY3Qgb2YgYXJ0aWZhY3RzKSB7XG4gICAgICBjb25zdCB0YWdNZXRhZGF0YSA9IE9iamVjdC52YWx1ZXMoYXJ0aWZhY3QubWV0YWRhdGEgPz8ge30pXG4gICAgICAgIC5mbGF0TWFwKHggPT4geClcbiAgICAgICAgLmZpbHRlcihlbnRyeSA9PiBlbnRyeS50eXBlID09PSBhc3NlbWJseS5BcnRpZmFjdE1ldGFkYXRhRW50cnlUeXBlLlNUQUNLX1RBR1MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRhZ01ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSBlbnRyeS5kYXRhIGFzIHVua25vd24gYXMgYXNzZW1ibHkuU3RhY2tUYWdzTWV0YWRhdGFFbnRyeVtdIHwgdW5kZWZpbmVkO1xuICAgICAgICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzID8/IFtdKSB7XG4gICAgICAgICAgY29uc3QgdDogYW55ID0gdGFnO1xuICAgICAgICAgIGlmICgnS2V5JyBpbiB0KSB7XG4gICAgICAgICAgICB0LmtleSA9IHQuS2V5O1xuICAgICAgICAgICAgZGVsZXRlIHQuS2V5O1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJ1ZhbHVlJyBpbiB0KSB7XG4gICAgICAgICAgICB0LnZhbHVlID0gdC5WYWx1ZTtcbiAgICAgICAgICAgIGRlbGV0ZSB0LlZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYW5pZmVzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhhdCBgYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zYCBkb2Vzbid0IGNvbnRhaW4gbm9yIGBFeHRlcm5hbElkYCBuZWl0aGVyIGBSb2xlQXJuYCwgYXMgdGhleVxuICAgKiBzaG91bGQgaGF2ZSBkZWRpY2F0ZWQgcHJvcGVydGllcyBwcmVjZWRpbmcgdGhpcyAoZS5nIGBhc3N1bWVSb2xlQXJuYCBhbmQgYGFzc3VtZVJvbGVFeHRlcm5hbElkYCkuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyhcbiAgICB0aGlzOiB2b2lkLFxuICAgIGluc3RhbmNlOiBhbnksXG4gICAga2V5OiBzdHJpbmcsXG4gICAgX3NjaGVtYToganNvbnNjaGVtYS5TY2hlbWEsXG4gICAgX29wdGlvbnM6IGpzb25zY2hlbWEuT3B0aW9ucyxcbiAgICBfY3R4OiBqc29uc2NoZW1hLlNjaGVtYUNvbnRleHQsXG4gICkge1xuICAgIGlmIChrZXkgIT09ICdhc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMnKSB7XG4gICAgICAvLyBub3RlIHRoYXQgdGhpcyBtZWFucyB0aGF0IGlmIHdlIGhhcHBlbiB0byBoYXZlIGEgcHJvcGVydHkgbmFtZWQgbGlrZSB0aGlzLCBidXQgdGhhdFxuICAgICAgLy8gZG9lcyB3YW50IHRvIGFsbG93ICdSb2xlQXJuJyBvciAnRXh0ZXJuYWxJZCcsIHRoaXMgY29kZSB3aWxsIGhhdmUgdG8gY2hhbmdlIHRvIGNvbnNpZGVyIHRoZSBmdWxsIHNjaGVtYSBwYXRoLlxuICAgICAgLy8gSSBkZWNpZGVkIHRvIG1ha2UgdGhpcyBsZXNzIGdyYW51bGFyIGZvciBub3cgb24gcHVycG9zZSBiZWNhdXNlIGl0IGZpdHMgb3VyIG5lZWRzIGFuZCBhdm9pZHMgaGF2aW5nIG1lc3N5XG4gICAgICAvLyB2YWxpZGF0aW9uIGxvZ2ljIGR1ZSB0byB2YXJpb3VzIHNjaGVtYSBwYXRocy5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhc3N1bWVSb2xlT3B0aW9ucyA9IGluc3RhbmNlW2tleV07XG4gICAgaWYgKGFzc3VtZVJvbGVPcHRpb25zPy5Sb2xlQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvbGVBcm4gaXMgbm90IGFsbG93ZWQgaW5zaWRlICcke2tleX0nYCk7XG4gICAgfVxuICAgIGlmIChhc3N1bWVSb2xlT3B0aW9ucz8uRXh0ZXJuYWxJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHRlcm5hbElkIGlzIG5vdCBhbGxvd2VkIGluc2lkZSAnJHtrZXl9J2ApO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdHJpcEVudW1FcnJvcnMoZXJyb3JzOiBqc29uc2NoZW1hLlZhbGlkYXRpb25FcnJvcltdKSB7XG4gIHJldHVybiBlcnJvcnMuZmlsdGVyKChlKSA9PiB0eXBlb2YgZS5zY2hlbWEgPT09ICdzdHJpbmcnIHx8ICEoJ2VudW0nIGluIGUuc2NoZW1hKSk7XG59XG4iXX0=
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYW5pZmVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLHVEQUF5QztBQUN6QywrQ0FBaUM7QUFFakMsMkRBQTZDO0FBSTdDLHVEQUF1RDtBQUN2RCwwREFBMEQ7QUFFMUQsa0VBQWtFO0FBQ2xFLGlFQUFpRTtBQUNqRSw2QkFBNkI7QUFDaEIsUUFBQSxnQkFBZ0IsR0FBVyx3Q0FBd0MsQ0FBQztBQUVqRjs7Ozs7O0dBTUc7QUFDSCxtREFBb0Q7QUFFcEQsOERBQStEO0FBRS9ELHdFQUF5RTtBQUV6RSw0REFBNkQ7QUFFN0Qsb0ZBQXFGO0FBRXJGOztHQUVHO0FBQ0gseURBQTBEO0FBZ0QxRDs7R0FFRztBQUNILE1BQXNCLFFBQVE7O0lBQzVCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQW1DLEVBQUUsUUFBZ0I7UUFDdEYsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLG9CQUFvQixDQUNoQyxRQUFnQixFQUNoQixPQUE2QjtRQUU3QixPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQThCLEVBQUUsUUFBZ0I7UUFDOUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQWdCO1FBQzlDLE9BQU8sUUFB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QUU5QixJQUFJLEdBQUcsS0FBSyw2QkFBNkIsRUFBRSxDQUFDO1lBQzFDLHNGQUFzRjtZQUN0RixnSEFBZ0g7WUFDaEgsNEdBQTRHO1lBQzVHLGdEQUFnRDtZQUNoRCxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksaUJBQWlCLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDOztBQTNSSCw0QkE0UkM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxNQUFvQztJQUMzRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNyRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMganNvbnNjaGVtYSBmcm9tICdqc29uc2NoZW1hJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBhc3NldHMgZnJvbSAnLi9hc3NldHMnO1xuaW1wb3J0ICogYXMgYXNzZW1ibHkgZnJvbSAnLi9jbG91ZC1hc3NlbWJseSc7XG5pbXBvcnQgdHlwZSAqIGFzIHZhbGlkYXRpb24gZnJvbSAnLi9jbG91ZC1hc3NlbWJseS92YWxpZGF0aW9uLXJlcG9ydC1zY2hlbWEnO1xuaW1wb3J0IHR5cGUgKiBhcyBpbnRlZyBmcm9tICcuL2ludGVnLXRlc3RzJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuXG4vLyB0aGlzIHByZWZpeCBpcyB1c2VkIGJ5IHRoZSBDTEkgdG8gaWRlbnRpZnkgdGhpcyBzcGVjaWZpYyBlcnJvci5cbi8vIGluIHdoaWNoIGNhc2Ugd2Ugd2FudCB0byBpbnN0cnVjdCB0aGUgdXNlciB0byB1cGdyYWRlIGhpcyBDTEkuXG4vLyBzZWUgZXhlYy50cyNjcmVhdGVBc3NlbWJseVxuZXhwb3J0IGNvbnN0IFZFUlNJT05fTUlTTUFUQ0g6IHN0cmluZyA9ICdDbG91ZCBhc3NlbWJseSBzY2hlbWEgdmVyc2lvbiBtaXNtYXRjaCc7XG5cbi8qKlxuICogQ0xJIHZlcnNpb24gaXMgY3JlYXRlZCBhdCBidWlsZCBhbmQgcmVsZWFzZSB0aW1lXG4gKlxuICogSXQgbmVlZHMgdG8gYmUgLmdpdGlnbm9yZSdkLCBvdGhlcndpc2UgdGhlIHByb2plbiAnbm8gdW5jb21taXR0ZWRcbiAqIGNoYW5nZXMnIHNlbGYtY2hlY2sgd2lsbCBmYWlsLCB3aGljaCBtZWFucyBpdCBuZWVkcyB0byBiZSBnZW5lcmF0ZWRcbiAqIGF0IGJ1aWxkIHRpbWUgaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0LlxuICovXG5pbXBvcnQgQ0xJX1ZFUlNJT04gPSByZXF1aXJlKCcuLi9jbGktdmVyc2lvbi5qc29uJyk7XG5cbmltcG9ydCBBU1NFVFNfU0NIRU1BID0gcmVxdWlyZSgnLi4vc2NoZW1hL2Fzc2V0cy5zY2hlbWEuanNvbicpO1xuXG5pbXBvcnQgQVNTRU1CTFlfU0NIRU1BID0gcmVxdWlyZSgnLi4vc2NoZW1hL2Nsb3VkLWFzc2VtYmx5LnNjaGVtYS5qc29uJyk7XG5cbmltcG9ydCBJTlRFR19TQ0hFTUEgPSByZXF1aXJlKCcuLi9zY2hlbWEvaW50ZWcuc2NoZW1hLmpzb24nKTtcblxuaW1wb3J0IFZBTElEQVRJT05fUkVQT1JUX1NDSEVNQSA9IHJlcXVpcmUoJy4uL3NjaGVtYS92YWxpZGF0aW9uLXJlcG9ydC5zY2hlbWEuanNvbicpO1xuXG4vKipcbiAqIFZlcnNpb24gaXMgc2hhcmVkIGZvciBib3RoIG1hbmlmZXN0c1xuICovXG5pbXBvcnQgU0NIRU1BX1ZFUlNJT04gPSByZXF1aXJlKCcuLi9zY2hlbWEvdmVyc2lvbi5qc29uJyk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGxvYWRNYW5pZmVzdCBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2FkTWFuaWZlc3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNraXAgdGhlIHZlcnNpb24gY2hlY2tcbiAgICpcbiAgICogVGhpcyBtZWFucyB5b3UgbWF5IHJlYWQgYSBuZXdlciBjbG91ZCBhc3NlbWJseSB0aGFuIHRoZSBDWCBBUEkgaXMgZGVzaWduZWRcbiAgICogdG8gc3VwcG9ydCwgYW5kIHlvdXIgYXBwbGljYXRpb24gbWF5IG5vdCBiZSBhd2FyZSBvZiBhbGwgZmVhdHVyZXMgdGhhdCBpbiB1c2VcbiAgICogaW4gdGhlIENsb3VkIEFzc2VtYmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFZlcnNpb25DaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNraXAgZW51bSBjaGVja3NcbiAgICpcbiAgICogVGhpcyBtZWFucyB5b3UgbWF5IHJlYWQgZW51bSB2YWx1ZXMgeW91IGRvbid0IGtub3cgYWJvdXQgeWV0LiBNYWtlIHN1cmUgdG8gYWx3YXlzXG4gICAqIGNoZWNrIHRoZSB2YWx1ZXMgb2YgZW51bXMgeW91IGVuY291bnRlciBpbiB0aGUgbWFuaWZlc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBza2lwRW51bUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVG9wb2xvZ2ljYWxseSBzb3J0IGFsbCBhcnRpZmFjdHNcbiAgICpcbiAgICogVGhpcyBwYXJhbWV0ZXIgaXMgb25seSByZXNwZWN0ZWQgYnkgdGhlIGNvbnN0cnVjdG9yIG9mIGBDbG91ZEFzc2VtYmx5YC4gVGhlXG4gICAqIHByb3BlcnR5IGxpdmVzIGhlcmUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRvcG9Tb3J0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIGZpbGUgYWNjb3JkaW5nIHRvIHRoZSBkZWNsYXJlZCBKU09OIFNjaGVtYVxuICAgKlxuICAgKiBCZSBhd2FyZSB0aGF0IEpTT04gU2NoZW1hIHZhbGlkYXRpb24gaGFzIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgY29zdFxuICAgKiAoYWJvdXQgMTB4IG92ZXIgbm90IHZhbGlkYXRpbmcpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSwgdW5sZXNzICRURVNUSU5HX0NESyBpcyBzZXQgdG8gJzEnXG4gICAqL1xuICByZWFkb25seSB2YWxpZGF0ZVNjaGVtYT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUHJvdG9jb2wgdXRpbGl0eSBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbmQgc2F2ZXMgdGhlIGNsb3VkIGFzc2VtYmx5IG1hbmlmZXN0IHRvIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBvdXRwdXQgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlQXNzZW1ibHlNYW5pZmVzdChtYW5pZmVzdDogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCwgZmlsZVBhdGg6IHN0cmluZykge1xuICAgIE1hbmlmZXN0LnNhdmVNYW5pZmVzdChtYW5pZmVzdCwgZmlsZVBhdGgsIEFTU0VNQkxZX1NDSEVNQSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhbmQgdmFsaWRhdGVzIHRoZSBjbG91ZCBhc3NlbWJseSBtYW5pZmVzdCBmcm9tIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIHBhdGggdG8gdGhlIG1hbmlmZXN0IGZpbGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxvYWRBc3NlbWJseU1hbmlmZXN0KFxuICAgIGZpbGVQYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IExvYWRNYW5pZmVzdE9wdGlvbnMsXG4gICk6IGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3Qge1xuICAgIHJldHVybiBNYW5pZmVzdC5sb2FkTWFuaWZlc3QoZmlsZVBhdGgsIEFTU0VNQkxZX1NDSEVNQSwgTWFuaWZlc3QucGF0Y2hTdGFja1RhZ3NPblJlYWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbmQgc2F2ZXMgdGhlIGFzc2V0IG1hbmlmZXN0IHRvIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBtYW5pZmVzdCAtIG1hbmlmZXN0LlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBvdXRwdXQgZmlsZSBwYXRoLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXZlQXNzZXRNYW5pZmVzdChtYW5pZmVzdDogYXNzZXRzLkFzc2V0TWFuaWZlc3QsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBNYW5pZmVzdC5zYXZlTWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoLCBBU1NFVFNfU0NIRU1BKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGFuZCB2YWxpZGF0ZXMgdGhlIGFzc2V0IG1hbmlmZXN0IGZyb20gZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gcGF0aCB0byB0aGUgbWFuaWZlc3QgZmlsZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbG9hZEFzc2V0TWFuaWZlc3QoZmlsZVBhdGg6IHN0cmluZyk6IGFzc2V0cy5Bc3NldE1hbmlmZXN0IHtcbiAgICByZXR1cm4gTWFuaWZlc3QubG9hZE1hbmlmZXN0KGZpbGVQYXRoLCBBU1NFVFNfU0NIRU1BKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYW5kIHNhdmVzIHRoZSBpbnRlZyBtYW5pZmVzdCB0byBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gbWFuaWZlc3QgLSBtYW5pZmVzdC5cbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gb3V0cHV0IGZpbGUgcGF0aC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2F2ZUludGVnTWFuaWZlc3QobWFuaWZlc3Q6IGludGVnLkludGVnTWFuaWZlc3QsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBNYW5pZmVzdC5zYXZlTWFuaWZlc3QobWFuaWZlc3QsIGZpbGVQYXRoLCBJTlRFR19TQ0hFTUEpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYW5kIHZhbGlkYXRlcyB0aGUgaW50ZWcgbWFuaWZlc3QgZnJvbSBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBwYXRoIHRvIHRoZSBtYW5pZmVzdCBmaWxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsb2FkSW50ZWdNYW5pZmVzdChmaWxlUGF0aDogc3RyaW5nKTogaW50ZWcuSW50ZWdNYW5pZmVzdCB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSB0aGlzLmxvYWRNYW5pZmVzdChmaWxlUGF0aCwgSU5URUdfU0NIRU1BKTtcblxuICAgIC8vIEFkZGluZyB0eXBpbmcgdG8gYHZhbGlkYXRlKClgIGxlZCB0byBgbG9hZE1hbmlmZXN0KClgIHRvIHByb3Blcmx5IGluZmVyXG4gICAgLy8gaXRzIHJldHVybiB0eXBlLCB3aGljaCBpbmRpY2F0ZWQgdGhhdCB0aGUgcmV0dXJuIHR5cGUgb2YgdGhpc1xuICAgIC8vIGZ1bmN0aW9uIG1heSBiZSBhIGxpZS4gSSBjb3VsZCBjaGFuZ2UgdGhlIHNjaGVtYSB0byBtYWtlIGB0ZXN0Q2FzZXNgXG4gICAgLy8gb3B0aW9uYWwsIGJ1dCB0aGF0IHdpbGwgYnVtcCB0aGUgbWFqb3IgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UgYW5kIElcbiAgICAvLyBkb24ndCB3YW50IHRvIGRvIHRoYXQuIFNvIGluc3RlYWQsIGp1c3QgbWFrZSBzdXJlIGB0ZXN0Q2FzZXNgIGlzIGFsd2F5cyB0aGVyZS5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubWFuaWZlc3QsXG4gICAgICB0ZXN0Q2FzZXM6IChtYW5pZmVzdCBhcyBhbnkpLnRlc3RDYXNlcyA/PyBbXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYW5kIHZhbGlkYXRlIHRoZSBwb2xpY3kgdmFsaWRhdGlvbiByZXBvcnQgZnJvbSBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZVBhdGggLSBwYXRoIHRvIHRoZSB2YWxpZGF0aW9uIHJlcG9ydCBmaWxlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsb2FkVmFsaWRhdGlvblJlcG9ydChmaWxlUGF0aDogc3RyaW5nKTogdmFsaWRhdGlvbi5Qb2xpY3lWYWxpZGF0aW9uUmVwb3J0SnNvbiB7XG4gICAgcmV0dXJuIE1hbmlmZXN0LmxvYWRNYW5pZmVzdChmaWxlUGF0aCwgVkFMSURBVElPTl9SRVBPUlRfU0NIRU1BKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB0aGUgY3VycmVudCBzY2hlbWEgdmVyc2lvbiBudW1iZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7U0NIRU1BX1ZFUlNJT04ucmV2aXNpb259LjAuMGA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBDTEkgdmVyc2lvbiB0aGF0IHN1cHBvcnRzIHRoaXMgQ2xvdWQgQXNzZW1ibHkgU2NoZW1hIHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY2xpVmVyc2lvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHZlcnNpb24gPSBDTElfVkVSU0lPTi52ZXJzaW9uO1xuICAgIHJldHVybiB2ZXJzaW9uID8gdmVyc2lvbiA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXByZWNhdGVkXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgc2F2ZUFzc2VtYmx5TWFuaWZlc3QoKWBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc2F2ZShtYW5pZmVzdDogYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCwgZmlsZVBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnNhdmVBc3NlbWJseU1hbmlmZXN0KG1hbmlmZXN0LCBmaWxlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogRGVwcmVjYXRlZFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYGxvYWRBc3NlbWJseU1hbmlmZXN0KClgXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxvYWQoZmlsZVBhdGg6IHN0cmluZyk6IGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3Qge1xuICAgIHJldHVybiB0aGlzLmxvYWRBc3NlbWJseU1hbmlmZXN0KGZpbGVQYXRoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlKFxuICAgIG1hbmlmZXN0OiBhbnksXG4gICAgc2NoZW1hOiBqc29uc2NoZW1hLlNjaGVtYSxcbiAgICBvcHRpb25zPzogTG9hZE1hbmlmZXN0T3B0aW9ucyxcbiAgKTogdm9pZCB7XG4gICAgZnVuY3Rpb24gcGFyc2VWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgICAgY29uc3QgdmVyID0gc2VtdmVyLnZhbGlkKHZlcnNpb24pO1xuICAgICAgaWYgKCF2ZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNlbXZlciBzdHJpbmc6IFwiJHt2ZXJzaW9ufVwiYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmVyO1xuICAgIH1cblxuICAgIGNvbnN0IG1heFN1cHBvcnRlZCA9IHNlbXZlci5tYWpvcihwYXJzZVZlcnNpb24oTWFuaWZlc3QudmVyc2lvbigpKSk7XG4gICAgY29uc3QgYWN0dWFsID0gcGFyc2VWZXJzaW9uKG1hbmlmZXN0LnZlcnNpb24pO1xuXG4gICAgLy8gZmlyc3QgdmFsaWRhdGUgdGhlIHZlcnNpb24gc2hvdWxkIGJlIGFjY2VwdGVkLiBhbGwgdmVyc2lvbnMgd2l0aGluIHRoZSBzYW1lIG1pbm9yIHZlcnNpb24gYXJlIGZpbmVcbiAgICBpZiAobWF4U3VwcG9ydGVkIDwgc2VtdmVyLm1ham9yKGFjdHVhbCkgJiYgIW9wdGlvbnM/LnNraXBWZXJzaW9uQ2hlY2spIHtcbiAgICAgIC8vIElmIHdlIGhhdmUgYSBtb3JlIHNwZWNpZmljIGVycm9yIHRvIHRocm93IHRoYW4gdGhlIGdlbmVyaWMgb25lIGJlbG93LCBtYWtlIHN1cmUgdG8gYWRkIHRoYXQgaW5mby5cbiAgICAgIGNvbnN0IGNsaVZlcnNpb24gPSAobWFuaWZlc3QgYXMgYXNzZW1ibHkuQXNzZW1ibHlNYW5pZmVzdCkubWluaW11bUNsaVZlcnNpb247XG4gICAgICBsZXQgY2xpV2FybmluZyA9ICcnO1xuICAgICAgaWYgKGNsaVZlcnNpb24pIHtcbiAgICAgICAgY2xpV2FybmluZyA9IGAuIFlvdSBuZWVkIGF0IGxlYXN0IENMSSB2ZXJzaW9uICR7Y2xpVmVyc2lvbn0gdG8gcmVhZCB0aGlzIG1hbmlmZXN0LmA7XG4gICAgICB9XG5cbiAgICAgIC8vIHdlIHVzZSBhIHdlbGwga25vd24gZXJyb3IgcHJlZml4IHNvIHRoYXQgdGhlIENMSSBjYW4gaWRlbnRpZnkgdGhpcyBzcGVjaWZpYyBlcnJvclxuICAgICAgLy8gYW5kIHByaW50IHNvbWUgbW9yZSBjb250ZXh0IHRvIHRoZSB1c2VyLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHtWRVJTSU9OX01JU01BVENIfTogTWF4aW11bSBzY2hlbWEgdmVyc2lvbiBzdXBwb3J0ZWQgaXMgJHttYXhTdXBwb3J0ZWR9LngueCwgYnV0IGZvdW5kICR7YWN0dWFsfSR7Y2xpV2FybmluZ31gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8udmFsaWRhdGVTY2hlbWEgPz8gKHByb2Nlc3MuZW52LlRFU1RJTkdfQ0RLID09PSAnMScpKSB7XG4gICAgICAvLyBub3cgdmFsaWRhdGUgdGhlIGZvcm1hdCBpcyBnb29kLlxuICAgICAgY29uc3QgdmFsaWRhdG9yID0gbmV3IGpzb25zY2hlbWEuVmFsaWRhdG9yKCk7XG4gICAgICBjb25zdCByZXN1bHQgPSB2YWxpZGF0b3IudmFsaWRhdGUobWFuaWZlc3QsIHNjaGVtYSwge1xuICAgICAgICBuZXN0ZWRFcnJvcnM6IHRydWUsXG4gICAgICAgIGFsbG93VW5rbm93bkF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgICAgICBwcmVWYWxpZGF0ZVByb3BlcnR5OiBNYW5pZmVzdC52YWxpZGF0ZUFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyxcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgZXJyb3JzID0gcmVzdWx0LmVycm9ycztcbiAgICAgIGlmIChvcHRpb25zPy5za2lwRW51bUNoZWNrKSB7XG4gICAgICAgIC8vIEVudW0gdmFsaWRhdGlvbnMgYXJlbid0IHVzZWZ1bCB3aGVuXG4gICAgICAgIGVycm9ycyA9IHN0cmlwRW51bUVycm9ycyhlcnJvcnMpO1xuICAgICAgfVxuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhc3NlbWJseSBtYW5pZmVzdDpcXG4ke2Vycm9ycy5tYXAoKGUpID0+IGUuc3RhY2spLmpvaW4oJ1xcbicpfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNhdmVNYW5pZmVzdChcbiAgICBtYW5pZmVzdDogYW55LFxuICAgIGZpbGVQYXRoOiBzdHJpbmcsXG4gICAgc2NoZW1hOiBqc29uc2NoZW1hLlNjaGVtYSxcbiAgICBwcmVwcm9jZXNzPzogKG9iajogYW55KSA9PiBhbnksXG4gICkge1xuICAgIGxldCB3aXRoVmVyc2lvbiA9IHtcbiAgICAgIC4uLm1hbmlmZXN0LFxuICAgICAgdmVyc2lvbjogTWFuaWZlc3QudmVyc2lvbigpLFxuICAgICAgbWluaW11bUNsaVZlcnNpb246IE1hbmlmZXN0LmNsaVZlcnNpb24oKSxcbiAgICB9IHNhdGlzZmllcyBhc3NlbWJseS5Bc3NlbWJseU1hbmlmZXN0O1xuXG4gICAgTWFuaWZlc3QudmFsaWRhdGUod2l0aFZlcnNpb24sIHNjaGVtYSk7XG5cbiAgICBpZiAocHJlcHJvY2Vzcykge1xuICAgICAgd2l0aFZlcnNpb24gPSBwcmVwcm9jZXNzKHdpdGhWZXJzaW9uKTtcbiAgICB9XG4gICAgZnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkod2l0aFZlcnNpb24sIHVuZGVmaW5lZCwgMikpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbG9hZE1hbmlmZXN0KFxuICAgIGZpbGVQYXRoOiBzdHJpbmcsXG4gICAgc2NoZW1hOiBqc29uc2NoZW1hLlNjaGVtYSxcbiAgICBwcmVwcm9jZXNzPzogKG9iajogYW55KSA9PiBhbnksXG4gICAgb3B0aW9ucz86IExvYWRNYW5pZmVzdE9wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IGNvbnRlbnRzID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICAgIGxldCBvYmo7XG4gICAgdHJ5IHtcbiAgICAgIG9iaiA9IEpTT04ucGFyc2UoY29udGVudHMpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2UubWVzc2FnZX0sIHdoaWxlIHBhcnNpbmcgJHtKU09OLnN0cmluZ2lmeShjb250ZW50cyl9YCk7XG4gICAgfVxuICAgIGlmIChwcmVwcm9jZXNzKSB7XG4gICAgICBvYmogPSBwcmVwcm9jZXNzKG9iaik7XG4gICAgfVxuICAgIE1hbmlmZXN0LnZhbGlkYXRlKG9iaiwgc2NoZW1hLCBvcHRpb25zKTtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpeCB0aGUgY2FzaW5nIG9mIHN0YWNrIHRhZ3MgZW50cmllc1xuICAgKlxuICAgKiBBdCB0aGUgdmVyeSBiZWdpbm5pbmcgb2YgdGhlIENESyB3ZSB1c2VkIHRvIGVtaXQgc3RhY2sgdGFncyBhcyBhbiBvYmplY3Qgd2l0aFxuICAgKiBgeyBLZXksIFZhbHVlIH1gIGtleXM7IHRoaXMgaGFkIHRoZSBcImFkdmFudGFnZVwiIHRoYXQgd2UgY291bGQgc3RpY2sgdGhvc2VcbiAgICogdGFncyBkaXJlY3RseSBpbnRvIHRoZSBgQ3JlYXRlQ2hhbmdlU2V0YCBjYWxsLlxuICAgKlxuICAgKiBUaGVuIHdlIGxhdGVyIG9uIHVzZWQganNpaSBvbiB0aGUgYXNzZW1ibHkgc2NoZW1hIGFuZCB3ZSB3ZXJlIGZvcmNlZCB0byB0eXBlXG4gICAqIHRoZSBpbi1tZW1vcnkgb2JqZWN0cyBhcyBgeyBrZXksIHZhbHVlIH1gIHdpdGggbG93ZXJjYXNlIGxldHRlcnMuIE5vdyB0aGVcbiAgICogb2JqZWN0cyBoYXZlIGEgZGlmZmVyZW50IG9uLWRpc2sgYW5kIGluLW1lbW9yeSBmb3JtYXQsIGFuZCB3ZSBuZWVkIHRvIGNvbnZlcnRcbiAgICogYmV0d2VlbiB0aGVtLlxuICAgKlxuICAgKiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucywgd2UgdXNlZCB0byBjb252ZXJ0IGxvd2VyY2FzZSBpbi1tZW1vcnlcbiAgICogdG8gdXBwZXJjYXNlIG9uLWRpc2sgdmFyaWFudCB1bnRpbCB2ZXJ5IHJlY2VudGx5LiBUaGlzIGlzIG5vdyB1bm5lY2Vzc2FyeSxcbiAgICogc2luY2Ugbm8gb2ZmaWNpYWxseSBzdXBwb3J0ZWQgQ0RLIHRvb2xzIHJlYWQgdGhlIHN0YWNrIHRhZ3MgZnJvbSB0aGVcbiAgICogbWV0YWRhdGE7IHRoZSBDTEkgYW5kIHRvb2xraXQgbGlicmFyeSByZWFkIHN0YWNrIHRhZ3MgZnJvbSB0aGUgYXJ0aWZhY3RcbiAgICogcHJvcGVydGllcy5cbiAgICpcbiAgICogU28gYWx0aG91Z2ggd2UgZG9uJ3QgZW1pdCB1cHBlcmNhc2Ugc3RhY2sgdGFnIG9iamVjdHMgYW55bW9yZSwgd2UgbWlnaHQgc3RpbGwgcmVhZFxuICAgKiBtYW5pZmVzdHMgdGhhdCBoYXZlIHRoZW0uIEJlY2F1c2UgdGhlIG1hbmlmZXN0IHdlIHJlYWQgbXVzdCBwYXNzIEpTT04gU2NoZW1hXG4gICAqIHZhbGlkYXRpb24gKHdoaWNoIGV4cGVjdHMgbG93ZXJjYXNlIHRhZyBvYmplY3RzKSwgd2UgaGF2ZSB0byBmaXggdGhlIGNhc2luZ1xuICAgKiBvZiB0aGVzZSBvYmplY3RzIGFmdGVyIHJlYWRpbmcgZnJvbSBkaXNrIGFuZCBiZWZvcmUgdmFsaWRhdGluZy5cbiAgICpcbiAgICogVGhhdCdzIHdoYXQgdGhpcyBmdW5jdGlvbiBkb2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcGF0Y2hTdGFja1RhZ3NPblJlYWQodGhpczogdm9pZCwgbWFuaWZlc3Q6IGFzc2VtYmx5LkFzc2VtYmx5TWFuaWZlc3QpIHtcbiAgICBjb25zdCBhcnRpZmFjdHMgPSBPYmplY3QudmFsdWVzKG1hbmlmZXN0LmFydGlmYWN0cyA/PyB7fSlcbiAgICAgIC5maWx0ZXIoYXJ0aWZhY3QgPT4gYXJ0aWZhY3QudHlwZSA9PT0gYXNzZW1ibHkuQXJ0aWZhY3RUeXBlLkFXU19DTE9VREZPUk1BVElPTl9TVEFDSyk7XG5cbiAgICBmb3IgKGNvbnN0IGFydGlmYWN0IG9mIGFydGlmYWN0cykge1xuICAgICAgY29uc3QgdGFnTWV0YWRhdGEgPSBPYmplY3QudmFsdWVzKGFydGlmYWN0Lm1ldGFkYXRhID8/IHt9KVxuICAgICAgICAuZmxhdE1hcCh4ID0+IHgpXG4gICAgICAgIC5maWx0ZXIoZW50cnkgPT4gZW50cnkudHlwZSA9PT0gYXNzZW1ibHkuQXJ0aWZhY3RNZXRhZGF0YUVudHJ5VHlwZS5TVEFDS19UQUdTKTtcblxuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiB0YWdNZXRhZGF0YSkge1xuICAgICAgICBjb25zdCB0YWdzID0gZW50cnkuZGF0YSBhcyB1bmtub3duIGFzIGFzc2VtYmx5LlN0YWNrVGFnc01ldGFkYXRhRW50cnlbXSB8IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgdGFncyA/PyBbXSkge1xuICAgICAgICAgIGNvbnN0IHQ6IGFueSA9IHRhZztcbiAgICAgICAgICBpZiAoJ0tleScgaW4gdCkge1xuICAgICAgICAgICAgdC5rZXkgPSB0LktleTtcbiAgICAgICAgICAgIGRlbGV0ZSB0LktleTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCdWYWx1ZScgaW4gdCkge1xuICAgICAgICAgICAgdC52YWx1ZSA9IHQuVmFsdWU7XG4gICAgICAgICAgICBkZWxldGUgdC5WYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWFuaWZlc3Q7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoYXQgYGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uc2AgZG9lc24ndCBjb250YWluIG5vciBgRXh0ZXJuYWxJZGAgbmVpdGhlciBgUm9sZUFybmAsIGFzIHRoZXlcbiAgICogc2hvdWxkIGhhdmUgZGVkaWNhdGVkIHByb3BlcnRpZXMgcHJlY2VkaW5nIHRoaXMgKGUuZyBgYXNzdW1lUm9sZUFybmAgYW5kIGBhc3N1bWVSb2xlRXh0ZXJuYWxJZGApLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGVBc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMoXG4gICAgdGhpczogdm9pZCxcbiAgICBpbnN0YW5jZTogYW55LFxuICAgIGtleTogc3RyaW5nLFxuICAgIF9zY2hlbWE6IGpzb25zY2hlbWEuU2NoZW1hLFxuICAgIF9vcHRpb25zOiBqc29uc2NoZW1hLk9wdGlvbnMsXG4gICAgX2N0eDoganNvbnNjaGVtYS5TY2hlbWFDb250ZXh0LFxuICApIHtcbiAgICBpZiAoa2V5ICE9PSAnYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zJykge1xuICAgICAgLy8gbm90ZSB0aGF0IHRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBoYXBwZW4gdG8gaGF2ZSBhIHByb3BlcnR5IG5hbWVkIGxpa2UgdGhpcywgYnV0IHRoYXRcbiAgICAgIC8vIGRvZXMgd2FudCB0byBhbGxvdyAnUm9sZUFybicgb3IgJ0V4dGVybmFsSWQnLCB0aGlzIGNvZGUgd2lsbCBoYXZlIHRvIGNoYW5nZSB0byBjb25zaWRlciB0aGUgZnVsbCBzY2hlbWEgcGF0aC5cbiAgICAgIC8vIEkgZGVjaWRlZCB0byBtYWtlIHRoaXMgbGVzcyBncmFudWxhciBmb3Igbm93IG9uIHB1cnBvc2UgYmVjYXVzZSBpdCBmaXRzIG91ciBuZWVkcyBhbmQgYXZvaWRzIGhhdmluZyBtZXNzeVxuICAgICAgLy8gdmFsaWRhdGlvbiBsb2dpYyBkdWUgdG8gdmFyaW91cyBzY2hlbWEgcGF0aHMuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYXNzdW1lUm9sZU9wdGlvbnMgPSBpbnN0YW5jZVtrZXldO1xuICAgIGlmIChhc3N1bWVSb2xlT3B0aW9ucz8uUm9sZUFybikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSb2xlQXJuIGlzIG5vdCBhbGxvd2VkIGluc2lkZSAnJHtrZXl9J2ApO1xuICAgIH1cbiAgICBpZiAoYXNzdW1lUm9sZU9wdGlvbnM/LkV4dGVybmFsSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXh0ZXJuYWxJZCBpcyBub3QgYWxsb3dlZCBpbnNpZGUgJyR7a2V5fSdgKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RyaXBFbnVtRXJyb3JzKGVycm9yczoganNvbnNjaGVtYS5WYWxpZGF0aW9uRXJyb3JbXSkge1xuICByZXR1cm4gZXJyb3JzLmZpbHRlcigoZSkgPT4gdHlwZW9mIGUuc2NoZW1hID09PSAnc3RyaW5nJyB8fCAhKCdlbnVtJyBpbiBlLnNjaGVtYSkpO1xufVxuIl19
|
|
@@ -299,6 +299,10 @@ const replaceTildes = (comp, options) => {
|
|
|
299
299
|
|
|
300
300
|
const replaceTilde = (comp, options) => {
|
|
301
301
|
const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
|
|
302
|
+
// if we're including prereleases in the match, then the lower bound is
|
|
303
|
+
// -0, the lowest possible prerelease value, just like x-ranges and carets.
|
|
304
|
+
// this keeps `~1.2` equivalent to the `1.2.x` x-range it's documented as.
|
|
305
|
+
const z = options.includePrerelease ? '-0' : ''
|
|
302
306
|
return comp.replace(r, (_, M, m, p, pr) => {
|
|
303
307
|
debug('tilde', comp, _, M, m, p, pr)
|
|
304
308
|
let ret
|
|
@@ -306,10 +310,10 @@ const replaceTilde = (comp, options) => {
|
|
|
306
310
|
if (isX(M)) {
|
|
307
311
|
ret = ''
|
|
308
312
|
} else if (isX(m)) {
|
|
309
|
-
ret = `>=${M}.0.0 <${+M + 1}.0.0-0`
|
|
313
|
+
ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`
|
|
310
314
|
} else if (isX(p)) {
|
|
311
315
|
// ~1.2 == >=1.2.0 <1.3.0-0
|
|
312
|
-
ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`
|
|
316
|
+
ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`
|
|
313
317
|
} else if (pr) {
|
|
314
318
|
debug('replaceTilde pr', pr)
|
|
315
319
|
ret = `>=${M}.${m}.${p}-${pr
|
package/package.json
CHANGED
|
@@ -39,34 +39,34 @@
|
|
|
39
39
|
"organization": true
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@cdklabs/eslint-plugin": "^2.0.
|
|
42
|
+
"@cdklabs/eslint-plugin": "^2.0.11",
|
|
43
43
|
"@stylistic/eslint-plugin": "^3",
|
|
44
44
|
"@types/jest": "^29.5.14",
|
|
45
45
|
"@types/node": "^20",
|
|
46
46
|
"@types/semver": "^7.7.1",
|
|
47
47
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
48
48
|
"@typescript-eslint/parser": "^8",
|
|
49
|
-
"cdk-generate-synthetic-examples": "^0.2.
|
|
49
|
+
"cdk-generate-synthetic-examples": "^0.2.53",
|
|
50
50
|
"commit-and-tag-version": "^12",
|
|
51
51
|
"constructs": "^10.0.0",
|
|
52
52
|
"eslint": "^9",
|
|
53
53
|
"eslint-config-prettier": "^10.1.8",
|
|
54
54
|
"eslint-import-resolver-typescript": "^4.4.5",
|
|
55
55
|
"eslint-plugin-import": "^2.32.0",
|
|
56
|
-
"eslint-plugin-jest": "^29.15.
|
|
56
|
+
"eslint-plugin-jest": "^29.15.3",
|
|
57
57
|
"eslint-plugin-jsdoc": "^62.9.0",
|
|
58
58
|
"eslint-plugin-prettier": "^4.2.5",
|
|
59
59
|
"jest": "^29.7.0",
|
|
60
60
|
"jest-junit": "^16",
|
|
61
61
|
"jsii": "5.9",
|
|
62
|
-
"jsii-diff": "^1.
|
|
63
|
-
"jsii-pacmak": "^1.
|
|
62
|
+
"jsii-diff": "^1.137.0",
|
|
63
|
+
"jsii-pacmak": "^1.137.0",
|
|
64
64
|
"jsii-rosetta": "5.9",
|
|
65
65
|
"license-checker": "^25.0.1",
|
|
66
66
|
"mock-fs": "^5.5.0",
|
|
67
|
-
"nx": "^22.7.
|
|
67
|
+
"nx": "^22.7.6",
|
|
68
68
|
"prettier": "^2.8",
|
|
69
|
-
"projen": "^0.
|
|
69
|
+
"projen": "^0.100.7",
|
|
70
70
|
"ts-jest": "^29.4.11",
|
|
71
71
|
"tsx": "^4.22.4",
|
|
72
72
|
"typescript": "5.9",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"jsonschema": "^1.5.0",
|
|
77
|
-
"semver": "^7.8.
|
|
77
|
+
"semver": "^7.8.5"
|
|
78
78
|
},
|
|
79
79
|
"bundledDependencies": [
|
|
80
80
|
"jsonschema",
|
|
@@ -97,13 +97,13 @@
|
|
|
97
97
|
"main": "lib/index.js",
|
|
98
98
|
"license": "Apache-2.0",
|
|
99
99
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
100
|
+
"stability": "stable",
|
|
100
101
|
"publishConfig": {
|
|
101
102
|
"access": "public"
|
|
102
103
|
},
|
|
103
|
-
"version": "54.
|
|
104
|
+
"version": "54.9.0",
|
|
104
105
|
"packageManager": "yarn@4.13.0",
|
|
105
106
|
"types": "lib/index.d.ts",
|
|
106
|
-
"stability": "stable",
|
|
107
107
|
"jsii": {
|
|
108
108
|
"outdir": "dist",
|
|
109
109
|
"targets": {
|
|
@@ -131,13 +131,8 @@
|
|
|
131
131
|
"moduleName": "github.com/cdklabs/cloud-assembly-schema-go"
|
|
132
132
|
}
|
|
133
133
|
},
|
|
134
|
-
"
|
|
135
|
-
|
|
136
|
-
"rootDir": "lib"
|
|
137
|
-
},
|
|
138
|
-
"excludeTypescript": [
|
|
139
|
-
"**/test/**/*.ts"
|
|
140
|
-
],
|
|
134
|
+
"tsconfig": "tsconfig.json",
|
|
135
|
+
"validateTsconfig": "strict",
|
|
141
136
|
"projectReferences": true
|
|
142
137
|
},
|
|
143
138
|
"installConfig": {
|