@aws-cdk/cloud-assembly-schema 54.8.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 CHANGED
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "bundled": {
11
11
  "jsonschema": "^1.5.0",
12
- "semver": "^7.8.4"
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": 256
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": 265
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": 260
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": 275
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": 121
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": 116
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": 133
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": 150
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": 138
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": 145
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": 128
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": 221
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": 227
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": 241
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": 250
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": 234
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": 164
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": 170
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": 191
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": 177
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": 186
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": 203
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.8.0",
7098
+ "version": "54.9.0",
7098
7099
  "fingerprint": "**********"
7099
7100
  }
package/cli-version.json CHANGED
@@ -1 +1 @@
1
- {"version":"2.1129.0"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1yZXBvcnQtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFsaWRhdGlvbi1yZXBvcnQtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSlNPTiBzY2hlbWEgZm9yIHZhbGlkYXRpb24tcmVwb3J0Lmpzb25cbiAqXG4gKiBUaGlzIGZpbGUgaXMgd3JpdHRlbiB0byB0aGUgY2xvdWQgYXNzZW1ibHkgZGlyZWN0b3J5IGJ5IGF3cy1jZGstbGliXG4gKiBkdXJpbmcgc3ludGhlc2lzIGFuZCBjb25zdW1lZCBieSB0aGUgQ0RLIENMSSdzIHZhbGlkYXRlIGNvbW1hbmQuXG4gKi9cblxuLyoqXG4gKiBUaGUgdG9wLWxldmVsIHN0cnVjdHVyZSBvZiB0aGUgcG9saWN5IHZhbGlkYXRpb24gcmVwb3J0IGZpbGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IFBvbGljeVZhbGlkYXRpb25SZXBvcnRKc29uIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbiAqXG4gKiBjb25zdCByZXBvcnQ6IFBvbGljeVZhbGlkYXRpb25SZXBvcnRKc29uID0ge1xuICogICB2ZXJzaW9uOiAnMS4wJyxcbiAqICAgcGx1Z2luUmVwb3J0czogW3tcbiAqICAgICBwbHVnaW5OYW1lOiAnbXktcGx1Z2luJyxcbiAqICAgICBjb25jbHVzaW9uOiAnc3VjY2VzcycsXG4gKiAgICAgdmlvbGF0aW9uczogW10sXG4gKiAgIH1dLFxuICogfTtcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lWYWxpZGF0aW9uUmVwb3J0SnNvbiB7XG4gIC8qKlxuICAgKiBQcm90b2NvbCB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcG9ydCB0aXRsZSwgaWYgcHJlc2VudC5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXBvcnRzIGZyb20gYWxsIHZhbGlkYXRpb24gcGx1Z2lucyB0aGF0IHJhbiBkdXJpbmcgc3ludGhlc2lzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luUmVwb3J0czogUGx1Z2luUmVwb3J0SnNvbltdO1xufVxuXG4vKipcbiAqIEEgcmVwb3J0IGZyb20gYSBzaW5nbGUgdmFsaWRhdGlvbiBwbHVnaW4uXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IFBsdWdpblJlcG9ydEpzb24gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuICpcbiAqIGNvbnN0IHJlcG9ydDogUGx1Z2luUmVwb3J0SnNvbiA9IHtcbiAqICAgcGx1Z2luTmFtZTogJ215LXBsdWdpbicsXG4gKiAgIGNvbmNsdXNpb246ICdzdWNjZXNzJyxcbiAqICAgdmlvbGF0aW9uczogW10sXG4gKiB9O1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJlcG9ydEpzb24ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBsdWdpbiB0aGF0IHByb2R1Y2VkIHRoaXMgcmVwb3J0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoZSBwbHVnaW4gdGhhdCBwcm9kdWNlZCB0aGlzIHJlcG9ydC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5WZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwbHVnaW4ncyB2YWxpZGF0aW9uIHBhc3NlZCBvciBmYWlsZWQuXG4gICAqL1xuICByZWFkb25seSBjb25jbHVzaW9uOiBQb2xpY3lWYWxpZGF0aW9uUmVwb3J0Q29uY2x1c2lvbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwbHVnaW4tc3BlY2lmaWMgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVmlvbGF0aW9ucyBmb3VuZCBieSB0aGlzIHBsdWdpbi5cbiAgICovXG4gIHJlYWRvbmx5IHZpb2xhdGlvbnM6IFBvbGljeVZpb2xhdGlvbkpzb25bXTtcblxuICAvKipcbiAgICogVmlvbGF0aW9ucyB0aGF0IHdlcmUgc3VwcHJlc3NlZCB2aWEgYWNrbm93bGVkZ2VtZW50LlxuICAgKlxuICAgKiBUaGVzZSB2aW9sYXRpb25zIG1hdGNoZWQgYW4gYWNrbm93bGVkZ2VkIHJ1bGUgSUQgYW5kIHdlcmUgZXhjbHVkZWRcbiAgICogZnJvbSB0aGUgYWN0aXZlIHZpb2xhdGlvbnMgbGlzdC4gVGhleSBhcmUgcmV0YWluZWQgZm9yIGF1ZGl0XG4gICAqIHRyYWlsIGFuZCByZXBvcnRpbmcgcHVycG9zZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3VwcHJlc3NlZCB2aW9sYXRpb25zXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc2VkVmlvbGF0aW9ucz86IFN1cHByZXNzZWRWaW9sYXRpb25Kc29uW107XG59XG5cbi8qKlxuICogVGhlIGZpbmFsIGNvbmNsdXNpb24gb2YgYSB2YWxpZGF0aW9uIHJlcG9ydC5cbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5VmFsaWRhdGlvblJlcG9ydENvbmNsdXNpb24gPSAnc3VjY2VzcycgfCAnZmFpbHVyZSc7XG5cbi8qKlxuICogQSBzaW5nbGUgcG9saWN5IHZpb2xhdGlvbiBmb3VuZCBieSBhIHZhbGlkYXRpb24gcGx1Z2luLlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBQb2xpY3lWaW9sYXRpb25Kc29uIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbiAqXG4gKiBjb25zdCB2aW9sYXRpb246IFBvbGljeVZpb2xhdGlvbkpzb24gPSB7XG4gKiAgIHJ1bGVOYW1lOiAnbm8tcHVibGljLWFjY2VzcycsXG4gKiAgIGRlc2NyaXB0aW9uOiAnUzMgYnVja2V0IHNob3VsZCBub3QgYWxsb3cgcHVibGljIGFjY2VzcycsXG4gKiAgIHNldmVyaXR5OiAnZXJyb3InLFxuICogICB2aW9sYXRpbmdDb25zdHJ1Y3RzOiBbeyBjb25zdHJ1Y3RQYXRoOiAnTXlTdGFjay9NeUJ1Y2tldCcgfV0sXG4gKiB9O1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeVZpb2xhdGlvbkpzb24ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJ1bGUgdGhhdCB3YXMgdmlvbGF0ZWQuXG4gICAqL1xuICByZWFkb25seSBydWxlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSB2aW9sYXRpb24uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgdG8gZml4IHRoZSB2aW9sYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZml4IHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBzdWdnZXN0ZWRGaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXZlcml0eSBvZiB0aGUgdmlvbGF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V2ZXJpdHk6IFBvbGljeVZpb2xhdGlvblNldmVyaXR5O1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgcGx1Z2luIHdhbnRzIHRvIHJlcG9ydCB1c2luZyBhIG5vbi1zdGFuZGFyZCBzZXZlcml0eSwgcHV0IGl0IGhlcmVcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVNldmVyaXR5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHJ1bGUtc3BlY2lmaWMgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVNZXRhZGF0YT86IHsgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgdGhhdCB2aW9sYXRlZCB0aGUgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHZpb2xhdGluZ0NvbnN0cnVjdHM6IFZpb2xhdGluZ0NvbnN0cnVjdEpzb25bXTtcbn1cblxuLyoqXG4gKiBUaGUgc2V2ZXJpdHkgb2YgYSBwb2xpY3kgdmlvbGF0aW9uLlxuICpcbiAqIElmIHlvdSBuZWVkIHRvIHVzZSBhIHNldmVyaXR5IGxldmVsIHRoYXQgZG9lc24ndCBleGlzdCBhcyBhIHN0YXRpYyBtZW1iZXIsXG4gKiB1c2UgYGN1c3RvbWAuXG4gKi9cbmV4cG9ydCB0eXBlIFBvbGljeVZpb2xhdGlvblNldmVyaXR5ID0gJ2ZhdGFsJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnaW5mbycgfCAnY3VzdG9tJztcblxuLyoqXG4gKiBBIGNvbnN0cnVjdCB0aGF0IHZpb2xhdGVkIGEgcG9saWN5IHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlvbGF0aW5nQ29uc3RydWN0SnNvbiB7XG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0IHBhdGggYXMgZGVmaW5lZCBpbiB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29uc3RydWN0IHBhdGhcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSBjb25zdHJ1Y3QgY2xhc3MgKGluY2x1ZGVzIHRoZSBsaWJyYXJ5IG5hbWUpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gY29uc3RydWN0IGluZm9cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdEZxbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkgdGhhdCBjb250YWlucyB0aGlzIGNvbnN0cnVjdC5cbiAgICpcbiAgICogVGhlIGxpYnJhcnkgbmFtZSBpcyB0aGUgZmlyc3QgY29tcG9uZW50IG9mIHRoZSBjb25zdHJ1Y3QgRlFOLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHZlcnNpb24gaW5mb1xuICAgKi9cbiAgcmVhZG9ubHkgbGlicmFyeVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHRoaXMgY29uc3RydWN0IHZpb2xhdGlvbiByZWdhcmRzIGEgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UsIGEgcmVmZXJlbmNlIHRvIHRoZSByZXNvdXJjZSBkZXRhaWxzXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvcm1hdGlvblJlc291cmNlPzogQ2xvdWRGb3JtYXRpb25SZXNvdXJjZUpzb247XG5cbiAgLyoqXG4gICAqIFN0YWNrIHRyYWNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB2aW9sYXRpb25cbiAgICpcbiAgICogVGhpcyBjYW4gYmUgYWxsIHRoZSBzdGFjayB0cmFjZXMgd2hlcmUgYSB2aW9sYXRpbmcgcHJvcGVydHkgZ290IGl0cyB2YWx1ZSxcbiAgICogb3IganVzdCB0aGUgY29uc3RydWN0IGNyZWF0aW9uIHN0YWNrIHRyYWNlLlxuICAgKlxuICAgKiBFdmVyeSBlbGVtZW50IG9mIHRoZSBhcnJheSBpcyBhIHN0YWNrIHRyYWNlLCB3aGVyZSBlYWNoIHN0YWNrIHRyYWNlIGlzIGEgYFxcbmAtZGVsaW1pdGVkIHN0cmluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBzdGFjayB0cmFjZXNcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQSB2aW9sYXRpb24gdGhhdCB3YXMgYWNrbm93bGVkZ2VkL3N1cHByZXNzZWQgYW5kIGV4Y2x1ZGVkIGZyb20gdGhlXG4gKiBhY3RpdmUgdmlvbGF0aW9uIHNldC5cbiAqXG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHsgU3VwcHJlc3NlZFZpb2xhdGlvbkpzb24gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuICpcbiAqIGNvbnN0IHN1cHByZXNzZWQ6IFN1cHByZXNzZWRWaW9sYXRpb25Kc29uID0ge1xuICogICBydWxlTmFtZTogJ25vLXB1YmxpYy1hY2Nlc3MnLFxuICogICBkZXNjcmlwdGlvbjogJ1MzIGJ1Y2tldCBzaG91bGQgbm90IGFsbG93IHB1YmxpYyBhY2Nlc3MnLFxuICogICBzZXZlcml0eTogJ3dhcm5pbmcnLFxuICogICB2aW9sYXRpbmdDb25zdHJ1Y3RzOiBbeyBjb25zdHJ1Y3RQYXRoOiAnTXlTdGFjay9NeUJ1Y2tldCcgfV0sXG4gKiAgIGFja25vd2xlZGdlZElkOiAnbXktcGx1Z2luOjpuby1wdWJsaWMtYWNjZXNzJyxcbiAqIH07XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcHJlc3NlZFZpb2xhdGlvbkpzb24gZXh0ZW5kcyBQb2xpY3lWaW9sYXRpb25Kc29uIHtcbiAgLyoqXG4gICAqIFRoZSBhY2tub3dsZWRnZW1lbnQgSUQgdGhhdCBjYXVzZWQgdGhpcyB2aW9sYXRpb24gdG8gYmUgc3VwcHJlc3NlZC5cbiAgICpcbiAgICogRm9ybWF0OiBgPHBsdWdpbi1uYW1lPjo6PHJ1bGUtbmFtZT5gIChzcGFjZXMgcmVwbGFjZWQgd2l0aCBoeXBoZW5zKS5cbiAgICovXG4gIHJlYWRvbmx5IGFja25vd2xlZGdlZElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZWFzb24gZ2l2ZW4gZm9yIHRoZSBhY2tub3dsZWRnZW1lbnQsIGlmIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHJlYXNvbiBnaXZlblxuICAgKi9cbiAgcmVhZG9ubHkgcmVhc29uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0IHBhdGggd2hlcmUgdGhlIGFja25vd2xlZGdlbWVudCB3YXMgZGVjbGFyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5rbm93blxuICAgKi9cbiAgcmVhZG9ubHkgYWNrbm93bGVkZ2VkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0YWNrIHRyYWNlIHNob3dpbmcgd2hlcmUgdGhlIGFja25vd2xlZGdlbWVudCB3YXMgZGVjbGFyZWQuXG4gICAqXG4gICAqIEEgYFxcbmAtZGVsaW1pdGVkIHN0cmluZyBvZiBzdGFjayBmcmFtZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3RhY2sgdHJhY2VcbiAgICovXG4gIHJlYWRvbmx5IGFja25vd2xlZGdlZFN0YWNrVHJhY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBub2RlIGluIHRoZSBjb25zdHJ1Y3QgY3JlYXRpb24gc3RhY2sgdHJhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25SZXNvdXJjZUpzb24ge1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGNvbnRhaW5pbmcgdGhpcyByZXNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9naWNhbCBJRCBvZiB0aGUgcmVzb3VyY2UgaW4gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9naWNhbElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgd2l0aGluIHRoZSBjb25zdHJ1Y3Qgd2hlcmUgdGhlIHZpb2xhdGlvbiB3YXMgZGV0ZWN0ZWQuXG4gICAqXG4gICAqIEVpdGhlciBhIHNpbmdsZSBjb21wb25lbnQsIGluIHdoaWNoIGNhc2UgaXQgcmVnYXJkcyBhIHRvcC1sZXZlbCBwcm9wZXJ0eVxuICAgKiBuYW1lLCBvciBhIEpTT04gcGF0aCAoc3RhcnRpbmcgd2l0aCBgJC5gKSB0byBpbmRpY2F0ZSBhIGRlZXBlciBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBsb2NhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnR5UGF0aHM/OiBzdHJpbmdbXTtcbn1cbiJdfQ==
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 _a;
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.8.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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semver",
3
- "version": "7.8.4",
3
+ "version": "7.8.5",
4
4
  "description": "The semantic version parser used by npm.",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/package.json CHANGED
@@ -39,34 +39,34 @@
39
39
  "organization": true
40
40
  },
41
41
  "devDependencies": {
42
- "@cdklabs/eslint-plugin": "^2.0.9",
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.51",
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.2",
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.135.0",
63
- "jsii-pacmak": "^1.135.0",
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.5",
67
+ "nx": "^22.7.6",
68
68
  "prettier": "^2.8",
69
- "projen": "^0.99.73",
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.4"
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.8.0",
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
- "tsc": {
135
- "outDir": "lib",
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": {