cdk8s 2.7.103 → 2.7.105

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.
Files changed (133) hide show
  1. package/.jsii +41 -41
  2. package/lib/_child_process.d.ts +0 -1
  3. package/lib/api-object.d.ts +2 -0
  4. package/lib/api-object.js +31 -31
  5. package/lib/app.js +14 -14
  6. package/lib/chart.js +9 -9
  7. package/lib/cron.js +10 -10
  8. package/lib/dependency.js +2 -2
  9. package/lib/duration.js +9 -9
  10. package/lib/helm.js +1 -1
  11. package/lib/include.js +1 -1
  12. package/lib/index.js +7 -3
  13. package/lib/json-patch.js +6 -6
  14. package/lib/lazy.js +5 -5
  15. package/lib/metadata.d.ts +2 -0
  16. package/lib/metadata.js +4 -4
  17. package/lib/names.js +6 -6
  18. package/lib/size.js +10 -10
  19. package/lib/testing.js +6 -6
  20. package/lib/yaml.js +9 -9
  21. package/node_modules/yaml/README.md +4 -0
  22. package/node_modules/yaml/browser/dist/compose/compose-collection.js +46 -29
  23. package/node_modules/yaml/browser/dist/compose/compose-doc.js +1 -0
  24. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +1 -1
  25. package/node_modules/yaml/browser/dist/compose/composer.js +1 -1
  26. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +3 -2
  27. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +3 -2
  28. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +4 -5
  29. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +1 -1
  30. package/node_modules/yaml/browser/dist/doc/Document.js +12 -10
  31. package/node_modules/yaml/browser/dist/doc/anchors.js +1 -1
  32. package/node_modules/yaml/browser/dist/doc/createNode.js +6 -2
  33. package/node_modules/yaml/browser/dist/doc/directives.js +1 -1
  34. package/node_modules/yaml/browser/dist/index.js +1 -1
  35. package/node_modules/yaml/browser/dist/node_modules/tslib/tslib.es6.js +6 -149
  36. package/node_modules/yaml/browser/dist/nodes/Alias.js +9 -2
  37. package/node_modules/yaml/browser/dist/nodes/Collection.js +2 -1
  38. package/node_modules/yaml/browser/dist/nodes/Node.js +25 -35
  39. package/node_modules/yaml/browser/dist/nodes/Pair.js +1 -1
  40. package/node_modules/yaml/browser/dist/nodes/Scalar.js +2 -1
  41. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +30 -2
  42. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +17 -1
  43. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +1 -1
  44. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  45. package/node_modules/yaml/browser/dist/nodes/toJS.js +1 -1
  46. package/node_modules/yaml/browser/dist/schema/Schema.js +1 -1
  47. package/node_modules/yaml/browser/dist/schema/common/map.js +3 -28
  48. package/node_modules/yaml/browser/dist/schema/common/seq.js +3 -19
  49. package/node_modules/yaml/browser/dist/schema/tags.js +1 -1
  50. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +9 -8
  51. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +1 -1
  52. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +14 -13
  53. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +1 -1
  54. package/node_modules/yaml/browser/dist/stringify/stringify.js +1 -1
  55. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +1 -1
  56. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +1 -1
  57. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +1 -1
  58. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +10 -1
  59. package/node_modules/yaml/browser/dist/util.js +2 -0
  60. package/node_modules/yaml/browser/dist/visit.js +1 -1
  61. package/node_modules/yaml/dist/compose/compose-collection.d.ts +1 -1
  62. package/node_modules/yaml/dist/compose/compose-collection.js +47 -30
  63. package/node_modules/yaml/dist/compose/compose-doc.d.ts +2 -1
  64. package/node_modules/yaml/dist/compose/compose-doc.js +1 -0
  65. package/node_modules/yaml/dist/compose/compose-scalar.js +7 -7
  66. package/node_modules/yaml/dist/compose/composer.d.ts +5 -5
  67. package/node_modules/yaml/dist/compose/composer.js +3 -3
  68. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +2 -1
  69. package/node_modules/yaml/dist/compose/resolve-block-map.js +3 -2
  70. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +2 -1
  71. package/node_modules/yaml/dist/compose/resolve-block-seq.js +3 -2
  72. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +2 -1
  73. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +5 -6
  74. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +3 -3
  75. package/node_modules/yaml/dist/compose/util-map-includes.js +3 -3
  76. package/node_modules/yaml/dist/doc/Document.d.ts +11 -9
  77. package/node_modules/yaml/dist/doc/Document.js +22 -20
  78. package/node_modules/yaml/dist/doc/anchors.d.ts +4 -4
  79. package/node_modules/yaml/dist/doc/anchors.js +2 -2
  80. package/node_modules/yaml/dist/doc/createNode.d.ts +1 -1
  81. package/node_modules/yaml/dist/doc/createNode.js +13 -9
  82. package/node_modules/yaml/dist/doc/directives.js +3 -3
  83. package/node_modules/yaml/dist/errors.d.ts +1 -1
  84. package/node_modules/yaml/dist/index.d.ts +2 -1
  85. package/node_modules/yaml/dist/index.js +9 -9
  86. package/node_modules/yaml/dist/nodes/Alias.d.ts +1 -1
  87. package/node_modules/yaml/dist/nodes/Alias.js +12 -5
  88. package/node_modules/yaml/dist/nodes/Collection.d.ts +3 -2
  89. package/node_modules/yaml/dist/nodes/Collection.js +10 -9
  90. package/node_modules/yaml/dist/nodes/Node.d.ts +5 -18
  91. package/node_modules/yaml/dist/nodes/Node.js +25 -51
  92. package/node_modules/yaml/dist/nodes/Pair.d.ts +2 -2
  93. package/node_modules/yaml/dist/nodes/Pair.js +4 -4
  94. package/node_modules/yaml/dist/nodes/Scalar.js +2 -1
  95. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +7 -1
  96. package/node_modules/yaml/dist/nodes/YAMLMap.js +37 -9
  97. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +3 -1
  98. package/node_modules/yaml/dist/nodes/YAMLSeq.js +21 -5
  99. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +7 -7
  100. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  101. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  102. package/node_modules/yaml/dist/nodes/toJS.d.ts +2 -5
  103. package/node_modules/yaml/dist/nodes/toJS.js +2 -2
  104. package/node_modules/yaml/dist/public-api.d.ts +3 -3
  105. package/node_modules/yaml/dist/schema/Schema.d.ts +1 -1
  106. package/node_modules/yaml/dist/schema/Schema.js +4 -4
  107. package/node_modules/yaml/dist/schema/common/map.js +4 -29
  108. package/node_modules/yaml/dist/schema/common/seq.js +4 -20
  109. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -1
  110. package/node_modules/yaml/dist/schema/json/schema.d.ts +1 -1
  111. package/node_modules/yaml/dist/schema/tags.d.ts +1 -1
  112. package/node_modules/yaml/dist/schema/types.d.ts +11 -3
  113. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +4 -1
  114. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +11 -10
  115. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +1 -1
  116. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +5 -5
  117. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -1
  118. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +3 -1
  119. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +17 -16
  120. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +1 -1
  121. package/node_modules/yaml/dist/stringify/stringify.js +8 -8
  122. package/node_modules/yaml/dist/stringify/stringifyCollection.js +8 -8
  123. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -3
  124. package/node_modules/yaml/dist/stringify/stringifyDocument.js +2 -2
  125. package/node_modules/yaml/dist/stringify/stringifyPair.js +9 -9
  126. package/node_modules/yaml/dist/stringify/stringifyString.js +10 -1
  127. package/node_modules/yaml/dist/test-events.js +8 -8
  128. package/node_modules/yaml/dist/util.d.ts +4 -1
  129. package/node_modules/yaml/dist/util.js +4 -0
  130. package/node_modules/yaml/dist/visit.js +18 -18
  131. package/node_modules/yaml/package.json +6 -5
  132. package/package.json +10 -12
  133. package/node_modules/yaml/util.d.ts +0 -3
package/.jsii CHANGED
@@ -9,7 +9,7 @@
9
9
  "bundled": {
10
10
  "fast-json-patch": "^3.1.1",
11
11
  "follow-redirects": "^1.15.2",
12
- "yaml": "2.2.2"
12
+ "yaml": "2.3.1"
13
13
  },
14
14
  "dependencies": {
15
15
  "constructs": "^10"
@@ -46,7 +46,7 @@
46
46
  "stability": "stable"
47
47
  },
48
48
  "homepage": "https://github.com/cdk8s-team/cdk8s-core.git",
49
- "jsiiVersion": "1.81.0 (build 80988b0)",
49
+ "jsiiVersion": "5.1.7 (build ab50c9d)",
50
50
  "keywords": [
51
51
  "cdk",
52
52
  "configuration",
@@ -112,7 +112,7 @@
112
112
  },
113
113
  "locationInModule": {
114
114
  "filename": "src/api-object.ts",
115
- "line": 140
115
+ "line": 142
116
116
  },
117
117
  "parameters": [
118
118
  {
@@ -147,7 +147,7 @@
147
147
  "kind": "class",
148
148
  "locationInModule": {
149
149
  "filename": "src/api-object.ts",
150
- "line": 50
150
+ "line": 52
151
151
  },
152
152
  "methods": [
153
153
  {
@@ -158,7 +158,7 @@
158
158
  },
159
159
  "locationInModule": {
160
160
  "filename": "src/api-object.ts",
161
- "line": 59
161
+ "line": 61
162
162
  },
163
163
  "name": "isApiObject",
164
164
  "parameters": [
@@ -187,7 +187,7 @@
187
187
  },
188
188
  "locationInModule": {
189
189
  "filename": "src/api-object.ts",
190
- "line": 80
190
+ "line": 82
191
191
  },
192
192
  "name": "of",
193
193
  "parameters": [
@@ -216,7 +216,7 @@
216
216
  },
217
217
  "locationInModule": {
218
218
  "filename": "src/api-object.ts",
219
- "line": 172
219
+ "line": 174
220
220
  },
221
221
  "name": "addDependency",
222
222
  "parameters": [
@@ -241,7 +241,7 @@
241
241
  },
242
242
  "locationInModule": {
243
243
  "filename": "src/api-object.ts",
244
- "line": 187
244
+ "line": 189
245
245
  },
246
246
  "name": "addJsonPatch",
247
247
  "parameters": [
@@ -266,7 +266,7 @@
266
266
  },
267
267
  "locationInModule": {
268
268
  "filename": "src/api-object.ts",
269
- "line": 197
269
+ "line": 199
270
270
  },
271
271
  "name": "toJson",
272
272
  "returns": {
@@ -286,7 +286,7 @@
286
286
  "immutable": true,
287
287
  "locationInModule": {
288
288
  "filename": "src/api-object.ts",
289
- "line": 111
289
+ "line": 113
290
290
  },
291
291
  "name": "apiGroup",
292
292
  "type": {
@@ -301,7 +301,7 @@
301
301
  "immutable": true,
302
302
  "locationInModule": {
303
303
  "filename": "src/api-object.ts",
304
- "line": 106
304
+ "line": 108
305
305
  },
306
306
  "name": "apiVersion",
307
307
  "type": {
@@ -316,7 +316,7 @@
316
316
  "immutable": true,
317
317
  "locationInModule": {
318
318
  "filename": "src/api-object.ts",
319
- "line": 121
319
+ "line": 123
320
320
  },
321
321
  "name": "chart",
322
322
  "type": {
@@ -331,7 +331,7 @@
331
331
  "immutable": true,
332
332
  "locationInModule": {
333
333
  "filename": "src/api-object.ts",
334
- "line": 116
334
+ "line": 118
335
335
  },
336
336
  "name": "kind",
337
337
  "type": {
@@ -346,7 +346,7 @@
346
346
  "immutable": true,
347
347
  "locationInModule": {
348
348
  "filename": "src/api-object.ts",
349
- "line": 126
349
+ "line": 128
350
350
  },
351
351
  "name": "metadata",
352
352
  "type": {
@@ -362,7 +362,7 @@
362
362
  "immutable": true,
363
363
  "locationInModule": {
364
364
  "filename": "src/api-object.ts",
365
- "line": 101
365
+ "line": 103
366
366
  },
367
367
  "name": "name",
368
368
  "type": {
@@ -541,7 +541,7 @@
541
541
  },
542
542
  "locationInModule": {
543
543
  "filename": "src/metadata.ts",
544
- "line": 147
544
+ "line": 149
545
545
  },
546
546
  "parameters": [
547
547
  {
@@ -556,7 +556,7 @@
556
556
  "kind": "class",
557
557
  "locationInModule": {
558
558
  "filename": "src/metadata.ts",
559
- "line": 106
559
+ "line": 108
560
560
  },
561
561
  "methods": [
562
562
  {
@@ -566,7 +566,7 @@
566
566
  },
567
567
  "locationInModule": {
568
568
  "filename": "src/metadata.ts",
569
- "line": 208
569
+ "line": 210
570
570
  },
571
571
  "name": "add",
572
572
  "parameters": [
@@ -597,7 +597,7 @@
597
597
  },
598
598
  "locationInModule": {
599
599
  "filename": "src/metadata.ts",
600
- "line": 181
600
+ "line": 183
601
601
  },
602
602
  "name": "addAnnotation",
603
603
  "parameters": [
@@ -628,7 +628,7 @@
628
628
  },
629
629
  "locationInModule": {
630
630
  "filename": "src/metadata.ts",
631
- "line": 190
631
+ "line": 192
632
632
  },
633
633
  "name": "addFinalizers",
634
634
  "parameters": [
@@ -652,7 +652,7 @@
652
652
  },
653
653
  "locationInModule": {
654
654
  "filename": "src/metadata.ts",
655
- "line": 163
655
+ "line": 165
656
656
  },
657
657
  "name": "addLabel",
658
658
  "parameters": [
@@ -683,7 +683,7 @@
683
683
  },
684
684
  "locationInModule": {
685
685
  "filename": "src/metadata.ts",
686
- "line": 199
686
+ "line": 201
687
687
  },
688
688
  "name": "addOwnerReference",
689
689
  "parameters": [
@@ -705,7 +705,7 @@
705
705
  },
706
706
  "locationInModule": {
707
707
  "filename": "src/metadata.ts",
708
- "line": 171
708
+ "line": 173
709
709
  },
710
710
  "name": "getLabel",
711
711
  "parameters": [
@@ -733,7 +733,7 @@
733
733
  },
734
734
  "locationInModule": {
735
735
  "filename": "src/metadata.ts",
736
- "line": 215
736
+ "line": 217
737
737
  },
738
738
  "name": "toJson",
739
739
  "returns": {
@@ -754,7 +754,7 @@
754
754
  "immutable": true,
755
755
  "locationInModule": {
756
756
  "filename": "src/metadata.ts",
757
- "line": 115
757
+ "line": 117
758
758
  },
759
759
  "name": "name",
760
760
  "optional": true,
@@ -770,7 +770,7 @@
770
770
  "immutable": true,
771
771
  "locationInModule": {
772
772
  "filename": "src/metadata.ts",
773
- "line": 120
773
+ "line": 122
774
774
  },
775
775
  "name": "namespace",
776
776
  "optional": true,
@@ -1690,7 +1690,7 @@
1690
1690
  "methods": [
1691
1691
  {
1692
1692
  "docs": {
1693
- "see": "Vertex.topology()",
1693
+ "see": "Vertex.topology ()",
1694
1694
  "stability": "stable"
1695
1695
  },
1696
1696
  "locationInModule": {
@@ -2253,7 +2253,7 @@
2253
2253
  "kind": "interface",
2254
2254
  "locationInModule": {
2255
2255
  "filename": "src/api-object.ts",
2256
- "line": 36
2256
+ "line": 38
2257
2257
  },
2258
2258
  "name": "GroupVersionKind",
2259
2259
  "properties": [
@@ -2266,7 +2266,7 @@
2266
2266
  "immutable": true,
2267
2267
  "locationInModule": {
2268
2268
  "filename": "src/api-object.ts",
2269
- "line": 40
2269
+ "line": 42
2270
2270
  },
2271
2271
  "name": "apiVersion",
2272
2272
  "type": {
@@ -2282,7 +2282,7 @@
2282
2282
  "immutable": true,
2283
2283
  "locationInModule": {
2284
2284
  "filename": "src/api-object.ts",
2285
- "line": 45
2285
+ "line": 47
2286
2286
  },
2287
2287
  "name": "kind",
2288
2288
  "type": {
@@ -3080,7 +3080,7 @@
3080
3080
  "link": "https://tools.ietf.org/html/rfc1123",
3081
3081
  "throws": "if any of the components do not adhere to naming constraints or\nlength."
3082
3082
  },
3083
- "remarks": "The generated name will:\n - contain at most 63 characters\n - contain only lowercase alphanumeric characters or ‘-’\n - start with an alphanumeric character\n - end with an alphanumeric character\n\nThe generated name will have the form:\n <comp0>-<comp1>-..-<compN>-<short-hash>\n\nWhere <comp> are the path components (assuming they are is separated by\n\"/\").\n\nNote that if the total length is longer than 63 characters, we will trim\nthe first components since the last components usually encode more meaning.",
3083
+ "remarks": "The generated name will:\n - contain at most 63 characters\n - contain only lowercase alphanumeric characters or ‘-’\n - start with an alphanumeric character\n - end with an alphanumeric character\n\nThe generated name will have the form:\n <comp0>-<comp1>-..-<compN>-<short-hash>\n\nWhere <comp> are the path components (assuming they are is separated by\n\"/\").\n\nNote that if the total length is longer than 63 characters, we will trim\nthe first components since the last components usually encode more meaning.",
3084
3084
  "stability": "stable",
3085
3085
  "summary": "Generates a unique and stable name compatible DNS_LABEL from RFC-1123 from a path."
3086
3086
  },
@@ -3123,7 +3123,7 @@
3123
3123
  "link": "https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set",
3124
3124
  "throws": "if any of the components do not adhere to naming constraints or\nlength."
3125
3125
  },
3126
- "remarks": "The name segment is required and must be 63 characters or less, beginning\nand ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-),\nunderscores (_), dots (.), and alphanumerics between.\n\nValid label values must be 63 characters or less and must be empty or\nbegin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes\n(-), underscores (_), dots (.), and alphanumerics between.\n\nThe generated name will have the form:\n <comp0><delim><comp1><delim>..<delim><compN><delim><short-hash>\n\nWhere <comp> are the path components (assuming they are is separated by\n\"/\").\n\nNote that if the total length is longer than 63 characters, we will trim\nthe first components since the last components usually encode more meaning.",
3126
+ "remarks": "The name segment is required and must be 63 characters or less, beginning\nand ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-),\nunderscores (_), dots (.), and alphanumerics between.\n\nValid label values must be 63 characters or less and must be empty or\nbegin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes\n(-), underscores (_), dots (.), and alphanumerics between.\n\nThe generated name will have the form:\n <comp0><delim><comp1><delim>..<delim><compN><delim><short-hash>\n\nWhere <comp> are the path components (assuming they are is separated by\n\"/\").\n\nNote that if the total length is longer than 63 characters, we will trim\nthe first components since the last components usually encode more meaning.",
3127
3127
  "stability": "stable",
3128
3128
  "summary": "Generates a unique and stable name compatible label key name segment and label value from a path."
3129
3129
  },
@@ -3176,7 +3176,7 @@
3176
3176
  "kind": "interface",
3177
3177
  "locationInModule": {
3178
3178
  "filename": "src/metadata.ts",
3179
- "line": 234
3179
+ "line": 236
3180
3180
  },
3181
3181
  "name": "OwnerReference",
3182
3182
  "properties": [
@@ -3189,7 +3189,7 @@
3189
3189
  "immutable": true,
3190
3190
  "locationInModule": {
3191
3191
  "filename": "src/metadata.ts",
3192
- "line": 238
3192
+ "line": 240
3193
3193
  },
3194
3194
  "name": "apiVersion",
3195
3195
  "type": {
@@ -3206,7 +3206,7 @@
3206
3206
  "immutable": true,
3207
3207
  "locationInModule": {
3208
3208
  "filename": "src/metadata.ts",
3209
- "line": 262
3209
+ "line": 264
3210
3210
  },
3211
3211
  "name": "kind",
3212
3212
  "type": {
@@ -3223,7 +3223,7 @@
3223
3223
  "immutable": true,
3224
3224
  "locationInModule": {
3225
3225
  "filename": "src/metadata.ts",
3226
- "line": 269
3226
+ "line": 271
3227
3227
  },
3228
3228
  "name": "name",
3229
3229
  "type": {
@@ -3240,7 +3240,7 @@
3240
3240
  "immutable": true,
3241
3241
  "locationInModule": {
3242
3242
  "filename": "src/metadata.ts",
3243
- "line": 276
3243
+ "line": 278
3244
3244
  },
3245
3245
  "name": "uid",
3246
3246
  "type": {
@@ -3258,7 +3258,7 @@
3258
3258
  "immutable": true,
3259
3259
  "locationInModule": {
3260
3260
  "filename": "src/metadata.ts",
3261
- "line": 250
3261
+ "line": 252
3262
3262
  },
3263
3263
  "name": "blockOwnerDeletion",
3264
3264
  "optional": true,
@@ -3275,7 +3275,7 @@
3275
3275
  "immutable": true,
3276
3276
  "locationInModule": {
3277
3277
  "filename": "src/metadata.ts",
3278
- "line": 255
3278
+ "line": 257
3279
3279
  },
3280
3280
  "name": "controller",
3281
3281
  "optional": true,
@@ -3991,6 +3991,6 @@
3991
3991
  "symbolId": "src/app:YamlOutputType"
3992
3992
  }
3993
3993
  },
3994
- "version": "2.7.103",
3995
- "fingerprint": "AgLW9lEADgsb7o2jCXpkqArcPyW2NYAbY0eWuOMg3n0="
3994
+ "version": "2.7.105",
3995
+ "fingerprint": "5vW8JGBLQ0CZ/O6XqSTJk6oeAWbWWDRI1w6VP6kH+8w="
3996
3996
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  /****************************************************************************************
3
2
  * Expose `child_process` via our own object that can be easily patched by jest for tests.
4
3
  * Consumers of the `child_process` module should add functions to this object and import it
@@ -23,6 +23,8 @@ export interface ApiObjectProps {
23
23
  readonly kind: string;
24
24
  /**
25
25
  * Additional attributes for this API object.
26
+ * @jsii ignore
27
+ * @see https://github.com/cdk8s-team/cdk8s-core/issues/1297
26
28
  */
27
29
  readonly [key: string]: any;
28
30
  }
package/lib/api-object.js CHANGED
@@ -11,34 +11,6 @@ const json_patch_1 = require("./json-patch");
11
11
  const metadata_1 = require("./metadata");
12
12
  const API_OBJECT_SYMBOL = Symbol.for('cdk8s.ApiObject');
13
13
  class ApiObject extends constructs_1.Construct {
14
- /**
15
- * Defines an API object.
16
- *
17
- * @param scope the construct scope
18
- * @param id namespace
19
- * @param props options
20
- */
21
- constructor(scope, id, props) {
22
- super(scope, id);
23
- this.props = props;
24
- this.patches = new Array();
25
- this.chart = chart_1.Chart.of(this);
26
- this.kind = props.kind;
27
- this.apiVersion = props.apiVersion;
28
- this.apiGroup = parseApiGroup(this.apiVersion);
29
- this.name = props.metadata?.name ?? this.chart.generateObjectName(this);
30
- this.metadata = new metadata_1.ApiObjectMetadataDefinition({
31
- name: this.name,
32
- // user defined values
33
- ...props.metadata,
34
- namespace: props.metadata?.namespace ?? this.chart.namespace,
35
- labels: {
36
- ...this.chart.labels,
37
- ...props.metadata?.labels,
38
- },
39
- });
40
- Object.defineProperty(this, API_OBJECT_SYMBOL, { value: true });
41
- }
42
14
  /**
43
15
  * Return whether the given object is an `ApiObject`.
44
16
  *
@@ -76,6 +48,34 @@ class ApiObject extends constructs_1.Construct {
76
48
  }
77
49
  return ApiObject.of(child);
78
50
  }
51
+ /**
52
+ * Defines an API object.
53
+ *
54
+ * @param scope the construct scope
55
+ * @param id namespace
56
+ * @param props options
57
+ */
58
+ constructor(scope, id, props) {
59
+ super(scope, id);
60
+ this.props = props;
61
+ this.patches = new Array();
62
+ this.chart = chart_1.Chart.of(this);
63
+ this.kind = props.kind;
64
+ this.apiVersion = props.apiVersion;
65
+ this.apiGroup = parseApiGroup(this.apiVersion);
66
+ this.name = props.metadata?.name ?? this.chart.generateObjectName(this);
67
+ this.metadata = new metadata_1.ApiObjectMetadataDefinition({
68
+ name: this.name,
69
+ // user defined values
70
+ ...props.metadata,
71
+ namespace: props.metadata?.namespace ?? this.chart.namespace,
72
+ labels: {
73
+ ...this.chart.labels,
74
+ ...props.metadata?.labels,
75
+ },
76
+ });
77
+ Object.defineProperty(this, API_OBJECT_SYMBOL, { value: true });
78
+ }
79
79
  /**
80
80
  * Create a dependency between this ApiObject and other constructs.
81
81
  * These can be other ApiObjects, Charts, or custom.
@@ -111,7 +111,7 @@ class ApiObject extends constructs_1.Construct {
111
111
  metadata: this.metadata.toJson(),
112
112
  };
113
113
  const sortKeys = process.env.CDK8S_DISABLE_SORT ? false : true;
114
- const json = _util_1.sanitizeValue(_resolve_1.resolve(data), { sortKeys });
114
+ const json = (0, _util_1.sanitizeValue)((0, _resolve_1.resolve)(data), { sortKeys });
115
115
  const patched = json_patch_1.JsonPatch.apply(json, ...this.patches);
116
116
  // reorder top-level keys so that we first have "apiVersion", "kind" and
117
117
  // "metadata" and then all the rest
@@ -126,7 +126,7 @@ class ApiObject extends constructs_1.Construct {
126
126
  }
127
127
  }
128
128
  exports.ApiObject = ApiObject;
129
- ApiObject[_a] = { fqn: "cdk8s.ApiObject", version: "2.7.103" };
129
+ ApiObject[_a] = { fqn: "cdk8s.ApiObject", version: "2.7.105" };
130
130
  function parseApiGroup(apiVersion) {
131
131
  const v = apiVersion.split('/');
132
132
  // no group means "core"
@@ -139,4 +139,4 @@ function parseApiGroup(apiVersion) {
139
139
  }
140
140
  throw new Error(`invalid apiVersion ${apiVersion}, expecting GROUP/VERSION. See https://kubernetes.io/docs/reference/using-api/api-overview/#api-groups`);
141
141
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGktb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQW1EO0FBQ25ELHlDQUFxQztBQUNyQyxtQ0FBd0M7QUFDeEMsbUNBQWdDO0FBQ2hDLDZDQUF5QztBQUN6Qyx5Q0FBNEU7QUEwQzVFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRXhELE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBbUZ0Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFtQixLQUFxQjtRQUM5RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRHdDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBRTlFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQWEsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLGFBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxzQ0FBMkIsQ0FBQztZQUM5QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFFZixzQkFBc0I7WUFDdEIsR0FBRyxLQUFLLENBQUMsUUFBUTtZQUVqQixTQUFTLEVBQUUsS0FBSyxD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LENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLHdCQUF3QjtJQUN4QiwwRUFBMEU7SUFDMUUsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNsQixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNsQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNiO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsVUFBVSx3R0FBd0csQ0FBQyxDQUFDO0FBQzVKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICcuL19yZXNvbHZlJztcbmltcG9ydCB7IHNhbml0aXplVmFsdWUgfSBmcm9tICcuL191dGlsJztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnLi9jaGFydCc7XG5pbXBvcnQgeyBKc29uUGF0Y2ggfSBmcm9tICcuL2pzb24tcGF0Y2gnO1xuaW1wb3J0IHsgQXBpT2JqZWN0TWV0YWRhdGEsIEFwaU9iamVjdE1ldGFkYXRhRGVmaW5pdGlvbiB9IGZyb20gJy4vbWV0YWRhdGEnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGRlZmluaW5nIEFQSSBvYmplY3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9iamVjdFByb3BzIHtcbiAgLyoqXG4gICAqIE9iamVjdCBtZXRhZGF0YS5cbiAgICpcbiAgICogSWYgYG5hbWVgIGlzIG5vdCBzcGVjaWZpZWQsIGFuIGFwcC11bmlxdWUgbmFtZSB3aWxsIGJlIGFsbG9jYXRlZCBieSB0aGVcbiAgICogZnJhbWV3b3JrIGJhc2VkIG9uIHRoZSBwYXRoIG9mIHRoZSBjb25zdHJ1Y3Qgd2l0aGluIHRoZXMgY29uc3RydWN0IHRyZWUuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBBUEkgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2Uga2luZC5cbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBhdHRyaWJ1dGVzIGZvciB0aGlzIEFQSSBvYmplY3QuXG4gICAqL1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBWZXJzaW9uS2luZCB7XG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0J3MgQVBJIHZlcnNpb24gKGUuZy4gYGF1dGhvcml6YXRpb24uazhzLmlvL3YxYClcbiAgICovXG4gIHJlYWRvbmx5IGFwaVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9iamVjdCBraW5kLlxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogc3RyaW5nO1xufVxuXG5jb25zdCBBUElfT0JKRUNUX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ2NkazhzLkFwaU9iamVjdCcpO1xuXG5leHBvcnQgY2xhc3MgQXBpT2JqZWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhlIGdpdmVuIG9iamVjdCBpcyBhbiBgQXBpT2JqZWN0YC5cbiAgICpcbiAgICogV2UgZG8gYXR0cmlidXRlIGRldGVjdGlvbiBzaW5jZSB3ZSBjYW4ndCByZWxpYWJseSB1c2UgJ2luc3RhbmNlb2YnLlxuXG4gICAqIEBwYXJhbSBvIFRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICovXG4gIHN0YXRpYyBpc0FwaU9iamVjdChvOiBhbnkpOiBvIGlzIEFwaU9iamVjdCB7XG4gICAgcmV0dXJuIG8gIT09IG51bGwgJiYgdHlwZW9mIG8gPT09ICdvYmplY3QnICYmIEFQSV9PQkpFQ1RfU1lNQk9MIGluIG87XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50cyBgaW5zdGFuY2VvZiBBcGlPYmplY3RgIHVzaW5nIHRoZSBtb3JlIHJlbGlhYmxlIGBBcGlPYmplY3QuaXNBcGlPYmplY3RgIHN0YXRpYyBtZXRob2RcbiAgICpcbiAgICogQHBhcmFtIG8gVGhlIG9iamVjdCB0byBjaGVja1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHN0YXRpYyBbU3ltYm9sLmhhc0luc3RhbmNlXShvOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIEFwaU9iamVjdC5pc0FwaU9iamVjdChvKTtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYEFwaU9iamVjdGAgbmFtZWQgYFJlc291cmNlYCB3aGljaCBpcyBhIGNoaWxkIG9mIHRoZSBnaXZlblxuICAgKiBjb25zdHJ1Y3QuIElmIGBjYCBpcyBhbiBgQXBpT2JqZWN0YCwgaXQgaXMgcmV0dXJuZWQgZGlyZWN0bHkuIFRocm93cyBhblxuICAgKiBleGNlcHRpb24gaWYgdGhlIGNvbnN0cnVjdCBkb2VzIG5vdCBoYXZlIGEgY2hpbGQgbmFtZWQgYERlZmF1bHRgIF9vcl8gaWZcbiAgICogdGhpcyBjaGlsZCBpcyBub3QgYW4gYEFwaU9iamVjdGAuXG4gICAqXG4gICAqIEBwYXJhbSBjIFRoZSBoaWdoZXItbGV2ZWwgY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKGM6IElDb25zdHJ1Y3QpOiBBcGlPYmplY3Qge1xuICAgIGlmIChjIGluc3RhbmNlb2YgQXBpT2JqZWN0KSB7XG4gICAgICByZXR1cm4gYztcbiAgICB9XG5cbiAgICBjb25zdCBjaGlsZCA9IGMubm9kZS5kZWZhdWx0Q2hpbGQ7XG4gICAgaWYgKCFjaGlsZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZmluZCBhIChkaXJlY3Qgb3IgaW5kaXJlY3QpIGNoaWxkIG9mIHR5cGUgQXBpT2JqZWN0IGZvciBjb25zdHJ1Y3QgJHtjLm5vZGUucGF0aH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQXBpT2JqZWN0Lm9mKGNoaWxkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQVBJIG9iamVjdC5cbiAgICpcbiAgICogSWYgYSBuYW1lIGlzIHNwZWNpZmllZCBpbiBgbWV0YWRhdGEubmFtZWAgdGhpcyB3aWxsIGJlIHRoZSBuYW1lIHJldHVybmVkLlxuICAgKiBPdGhlcndpc2UsIGEgbmFtZSB3aWxsIGJlIGdlbmVyYXRlZCBieSBjYWxsaW5nXG4gICAqIGBDaGFydC5vZih0aGlzKS5nZW5lcmF0ZWRPYmplY3ROYW1lKHRoaXMpYCwgd2hpY2ggYnkgZGVmYXVsdCB1c2VzIHRoZVxuICAgKiBjb25zdHJ1Y3QgcGF0aCB0byBnZW5lcmF0ZSBhIEROUy1jb21wYXRpYmxlIG5hbWUgZm9yIHRoZSByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3QncyBBUEkgdmVyc2lvbiAoZS5nLiBgYXV0aG9yaXphdGlvbi5rOHMuaW8vdjFgKVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGdyb3VwIHBvcnRpb24gb2YgdGhlIEFQSSB2ZXJzaW9uIChlLmcuIGBhdXRob3JpemF0aW9uLms4cy5pb2ApXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpR3JvdXA6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9iamVjdCBraW5kLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNoYXJ0IGluIHdoaWNoIHRoaXMgb2JqZWN0IGlzIGRlZmluZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhcnQ6IENoYXJ0O1xuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBBUEkgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1ldGFkYXRhOiBBcGlPYmplY3RNZXRhZGF0YURlZmluaXRpb247XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIEpTT04gcGF0Y2ggb3BlcmF0aW9ucyB0byBhcHBseSB0byB0aGUgZG9jdW1lbnQgYWZ0ZXIgc3ludGhlc2lzLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwYXRjaGVzOiBBcnJheTxKc29uUGF0Y2g+O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGFuIEFQSSBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSB0aGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBuYW1lc3BhY2VcbiAgICogQHBhcmFtIHByb3BzIG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEFwaU9iamVjdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnBhdGNoZXMgPSBuZXcgQXJyYXk8SnNvblBhdGNoPigpO1xuICAgIHRoaXMuY2hhcnQgPSBDaGFydC5vZih0aGlzKTtcbiAgICB0aGlzLmtpbmQgPSBwcm9wcy5raW5kO1xuICAgIHRoaXMuYXBpVmVyc2lvbiA9IHByb3BzLmFwaVZlcnNpb247XG4gICAgdGhpcy5hcGlHcm91cCA9IHBhcnNlQXBpR3JvdXAodGhpcy5hcGlWZXJzaW9uKTtcblxuICAgIHRoaXMubmFtZSA9IHByb3BzLm1ldGFkYXRhPy5uYW1lID8/IHRoaXMuY2hhcnQuZ2VuZXJhdGVPYmplY3ROYW1lKHRoaXMpO1xuXG4gICAgdGhpcy5tZXRhZGF0YSA9IG5ldyBBcGlPYmplY3RNZXRhZGF0YURlZmluaXRpb24oe1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuXG4gICAgICAvLyB1c2VyIGRlZmluZWQgdmFsdWVzXG4gICAgICAuLi5wcm9wcy5tZXRhZGF0YSxcblxuICAgICAgbmFtZXNwYWNlOiBwcm9wcy5tZXRhZGF0YT8ubmFtZXNwYWNlID8/IHRoaXMuY2hhcnQubmFtZXNwYWNlLFxuICAgICAgbGFiZWxzOiB7XG4gICAgICAgIC4uLnRoaXMuY2hhcnQubGFiZWxzLFxuICAgICAgICAuLi5wcm9wcy5tZXRhZGF0YT8ubGFiZWxzLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBUElfT0JKRUNUX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBkZXBlbmRlbmN5IGJldHdlZW4gdGhpcyBBcGlPYmplY3QgYW5kIG90aGVyIGNvbnN0cnVjdHMuXG4gICAqIFRoZXNlIGNhbiBiZSBvdGhlciBBcGlPYmplY3RzLCBDaGFydHMsIG9yIGN1c3RvbS5cbiAgICpcbiAgICogQHBhcmFtIGRlcGVuZGVuY2llcyB0aGUgZGVwZW5kZW5jaWVzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGREZXBlbmRlbmN5KC4uLmRlcGVuZGVuY2llczogSUNvbnN0cnVjdFtdKSB7XG4gICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3koLi4uZGVwZW5kZW5jaWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGEgc2V0IG9mIFJGQy02OTAyIEpTT04tUGF0Y2ggb3BlcmF0aW9ucyB0byB0aGUgbWFuaWZlc3RcbiAgICogc3ludGhlc2l6ZWQgZm9yIHRoaXMgQVBJIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIG9wcyBUaGUgSlNPTi1QYXRjaCBvcGVyYXRpb25zIHRvIGFwcGx5LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKlxuICAgKiAgIGt1YmVQb2QuYWRkSnNvblBhdGNoKEpzb25QYXRjaC5yZXBsYWNlKCcvc3BlYy9lbmFibGVTZXJ2aWNlTGlua3MnLCB0cnVlKSk7XG4gICAqXG4gICAqL1xuICBwdWJsaWMgYWRkSnNvblBhdGNoKC4uLm9wczogSnNvblBhdGNoW10pIHtcbiAgICB0aGlzLnBhdGNoZXMucHVzaCguLi5vcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqXG4gICAqIFRvIGRpc2FibGUgc29ydGluZyBvZiBkaWN0aW9uYXJ5IGtleXMgaW4gb3V0cHV0IG9iamVjdCBzZXQgdGhlXG4gICAqIGBDREs4U19ESVNBQkxFX1NPUlRgIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGFueSBub24tZW1wdHkgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgZGF0YTogYW55ID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIG1ldGFkYXRhOiB0aGlzLm1ldGFkYXRhLnRvSnNvbigpLFxuICAgIH07XG5cbiAgICBjb25zdCBzb3J0S2V5cyA9IHByb2Nlc3MuZW52LkNESzhTX0RJU0FCTEVfU09SVCA/IGZhbHNlIDogdHJ1ZTtcbiAgICBjb25zdCBqc29uID0gc2FuaXRpemVWYWx1ZShyZXNvbHZlKGRhdGEpLCB7IHNvcnRLZXlzIH0pO1xuICAgIGNvbnN0IHBhdGNoZWQgPSBKc29uUGF0Y2guYXBwbHkoanNvbiwgLi4udGhpcy5wYXRjaGVzKTtcblxuICAgIC8vIHJlb3JkZXIgdG9wLWxldmVsIGtleXMgc28gdGhhdCB3ZSBmaXJzdCBoYXZlIFwiYXBpVmVyc2lvblwiLCBcImtpbmRcIiBhbmRcbiAgICAvLyBcIm1ldGFkYXRhXCIgYW5kIHRoZW4gYWxsIHRoZSByZXN0XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBjb25zdCBvcmRlcmVkS2V5cyA9IFsnYXBpVmVyc2lvbicsICdraW5kJywgJ21ldGFkYXRhJywgLi4uT2JqZWN0LmtleXMocGF0Y2hlZCldO1xuICAgIGZvciAoY29uc3QgayBvZiBvcmRlcmVkS2V5cykge1xuICAgICAgaWYgKGsgaW4gcGF0Y2hlZCkge1xuICAgICAgICByZXN1bHRba10gPSBwYXRjaGVkW2tdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VBcGlHcm91cChhcGlWZXJzaW9uOiBzdHJpbmcpIHtcbiAgY29uc3QgdiA9IGFwaVZlcnNpb24uc3BsaXQoJy8nKTtcblxuICAvLyBubyBncm91cCBtZWFucyBcImNvcmVcIlxuICAvLyBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9yZWZlcmVuY2UvdXNpbmctYXBpL2FwaS1vdmVydmlldy8jYXBpLWdyb3Vwc1xuICBpZiAodi5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gJ2NvcmUnO1xuICB9XG5cbiAgaWYgKHYubGVuZ3RoID09PSAyKSB7XG4gICAgcmV0dXJuIHZbMF07XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXBpVmVyc2lvbiAke2FwaVZlcnNpb259LCBleHBlY3RpbmcgR1JPVVAvVkVSU0lPTi4gU2VlIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL3JlZmVyZW5jZS91c2luZy1hcGkvYXBpLW92ZXJ2aWV3LyNhcGktZ3JvdXBzYCk7XG59XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGktb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQW1EO0FBQ25ELHlDQUFxQztBQUNyQyxtQ0FBd0M7QUFDeEMsbUNBQWdDO0FBQ2hDLDZDQUF5QztBQUN6Qyx5Q0FBNEU7QUE0QzVFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRXhELE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBRXRDOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBTTtRQUN2QixPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLGlCQUFpQixJQUFJLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsMkJBQUMsTUFBTSxDQUFDLFdBQVcsRUFBQyxDQUFDLENBQVU7UUFDcEMsT0FBTyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFhO1FBQzVCLElBQUksQ0FBQyxZQUFZLFNBQVMsRUFBRTtZQUMxQixPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM1RztRQUVELE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBMENEOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQW1CLEtB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Q3ZDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFaEMsd0JBQXdCO0lBQ3hCLDBFQUEwRTtJQUMxRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2I7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixVQUFVLHdHQUF3RyxDQUFDLENBQUM7QUFDNUosQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJy4vX3Jlc29sdmUnO1xuaW1wb3J0IHsgc2FuaXRpemVWYWx1ZSB9IGZyb20gJy4vX3V0aWwnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICcuL2NoYXJ0JztcbmltcG9ydCB7IEpzb25QYXRjaCB9IGZyb20gJy4vanNvbi1wYXRjaCc7XG5pbXBvcnQgeyBBcGlPYmplY3RNZXRhZGF0YSwgQXBpT2JqZWN0TWV0YWRhdGFEZWZpbml0aW9uIH0gZnJvbSAnLi9tZXRhZGF0YSc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZGVmaW5pbmcgQVBJIG9iamVjdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpT2JqZWN0UHJvcHMge1xuICAvKipcbiAgICogT2JqZWN0IG1ldGFkYXRhLlxuICAgKlxuICAgKiBJZiBgbmFtZWAgaXMgbm90IHNwZWNpZmllZCwgYW4gYXBwLXVuaXF1ZSBuYW1lIHdpbGwgYmUgYWxsb2NhdGVkIGJ5IHRoZVxuICAgKiBmcmFtZXdvcmsgYmFzZWQgb24gdGhlIHBhdGggb2YgdGhlIGNvbnN0cnVjdCB3aXRoaW4gdGhlcyBjb25zdHJ1Y3QgdHJlZS5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogQXBpT2JqZWN0TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEFQSSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBraW5kLlxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGF0dHJpYnV0ZXMgZm9yIHRoaXMgQVBJIG9iamVjdC5cbiAgICogQGpzaWkgaWdub3JlXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NkazhzLXRlYW0vY2RrOHMtY29yZS9pc3N1ZXMvMTI5N1xuICAgKi9cbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwVmVyc2lvbktpbmQge1xuICAvKipcbiAgICogVGhlIG9iamVjdCdzIEFQSSB2ZXJzaW9uIChlLmcuIGBhdXRob3JpemF0aW9uLms4cy5pby92MWApXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3Qga2luZC5cbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbn1cblxuY29uc3QgQVBJX09CSkVDVF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdjZGs4cy5BcGlPYmplY3QnKTtcblxuZXhwb3J0IGNsYXNzIEFwaU9iamVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYW4gYEFwaU9iamVjdGAuXG4gICAqXG4gICAqIFdlIGRvIGF0dHJpYnV0ZSBkZXRlY3Rpb24gc2luY2Ugd2UgY2FuJ3QgcmVsaWFibHkgdXNlICdpbnN0YW5jZW9mJy5cblxuICAgKiBAcGFyYW0gbyBUaGUgb2JqZWN0IHRvIGNoZWNrXG4gICAqL1xuICBzdGF0aWMgaXNBcGlPYmplY3QobzogYW55KTogbyBpcyBBcGlPYmplY3Qge1xuICAgIHJldHVybiBvICE9PSBudWxsICYmIHR5cGVvZiBvID09PSAnb2JqZWN0JyAmJiBBUElfT0JKRUNUX1NZTUJPTCBpbiBvO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudHMgYGluc3RhbmNlb2YgQXBpT2JqZWN0YCB1c2luZyB0aGUgbW9yZSByZWxpYWJsZSBgQXBpT2JqZWN0LmlzQXBpT2JqZWN0YCBzdGF0aWMgbWV0aG9kXG4gICAqXG4gICAqIEBwYXJhbSBvIFRoZSBvYmplY3QgdG8gY2hlY2tcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzdGF0aWMgW1N5bWJvbC5oYXNJbnN0YW5jZV0obzogdW5rbm93bikge1xuICAgIHJldHVybiBBcGlPYmplY3QuaXNBcGlPYmplY3Qobyk7XG4gIH1cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBBcGlPYmplY3RgIG5hbWVkIGBSZXNvdXJjZWAgd2hpY2ggaXMgYSBjaGlsZCBvZiB0aGUgZ2l2ZW5cbiAgICogY29uc3RydWN0LiBJZiBgY2AgaXMgYW4gYEFwaU9iamVjdGAsIGl0IGlzIHJldHVybmVkIGRpcmVjdGx5LiBUaHJvd3MgYW5cbiAgICogZXhjZXB0aW9uIGlmIHRoZSBjb25zdHJ1Y3QgZG9lcyBub3QgaGF2ZSBhIGNoaWxkIG5hbWVkIGBEZWZhdWx0YCBfb3JfIGlmXG4gICAqIHRoaXMgY2hpbGQgaXMgbm90IGFuIGBBcGlPYmplY3RgLlxuICAgKlxuICAgKiBAcGFyYW0gYyBUaGUgaGlnaGVyLWxldmVsIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihjOiBJQ29uc3RydWN0KTogQXBpT2JqZWN0IHtcbiAgICBpZiAoYyBpbnN0YW5jZW9mIEFwaU9iamVjdCkge1xuICAgICAgcmV0dXJuIGM7XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGQgPSBjLm5vZGUuZGVmYXVsdENoaWxkO1xuICAgIGlmICghY2hpbGQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY2Fubm90IGZpbmQgYSAoZGlyZWN0IG9yIGluZGlyZWN0KSBjaGlsZCBvZiB0eXBlIEFwaU9iamVjdCBmb3IgY29uc3RydWN0ICR7Yy5ub2RlLnBhdGh9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFwaU9iamVjdC5vZihjaGlsZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFQSSBvYmplY3QuXG4gICAqXG4gICAqIElmIGEgbmFtZSBpcyBzcGVjaWZpZWQgaW4gYG1ldGFkYXRhLm5hbWVgIHRoaXMgd2lsbCBiZSB0aGUgbmFtZSByZXR1cm5lZC5cbiAgICogT3RoZXJ3aXNlLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgY2FsbGluZ1xuICAgKiBgQ2hhcnQub2YodGhpcykuZ2VuZXJhdGVkT2JqZWN0TmFtZSh0aGlzKWAsIHdoaWNoIGJ5IGRlZmF1bHQgdXNlcyB0aGVcbiAgICogY29uc3RydWN0IHBhdGggdG8gZ2VuZXJhdGUgYSBETlMtY29tcGF0aWJsZSBuYW1lIGZvciB0aGUgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0J3MgQVBJIHZlcnNpb24gKGUuZy4gYGF1dGhvcml6YXRpb24uazhzLmlvL3YxYClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBncm91cCBwb3J0aW9uIG9mIHRoZSBBUEkgdmVyc2lvbiAoZS5nLiBgYXV0aG9yaXphdGlvbi5rOHMuaW9gKVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaUdyb3VwOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3Qga2luZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBraW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFydCBpbiB3aGljaCB0aGlzIG9iamVjdCBpcyBkZWZpbmVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNoYXJ0OiBDaGFydDtcblxuICAvKipcbiAgICogTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQVBJIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXRhZGF0YTogQXBpT2JqZWN0TWV0YWRhdGFEZWZpbml0aW9uO1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBKU09OIHBhdGNoIG9wZXJhdGlvbnMgdG8gYXBwbHkgdG8gdGhlIGRvY3VtZW50IGFmdGVyIHN5bnRoZXNpcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcGF0Y2hlczogQXJyYXk8SnNvblBhdGNoPjtcblxuICAvKipcbiAgICogRGVmaW5lcyBhbiBBUEkgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSBwcm9wcyBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBBcGlPYmplY3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wYXRjaGVzID0gbmV3IEFycmF5PEpzb25QYXRjaD4oKTtcbiAgICB0aGlzLmNoYXJ0ID0gQ2hhcnQub2YodGhpcyk7XG4gICAgdGhpcy5raW5kID0gcHJvcHMua2luZDtcbiAgICB0aGlzLmFwaVZlcnNpb24gPSBwcm9wcy5hcGlWZXJzaW9uO1xuICAgIHRoaXMuYXBpR3JvdXAgPSBwYXJzZUFwaUdyb3VwKHRoaXMuYXBpVmVyc2lvbik7XG5cbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5tZXRhZGF0YT8ubmFtZSA/PyB0aGlzLmNoYXJ0LmdlbmVyYXRlT2JqZWN0TmFtZSh0aGlzKTtcblxuICAgIHRoaXMubWV0YWRhdGEgPSBuZXcgQXBpT2JqZWN0TWV0YWRhdGFEZWZpbml0aW9uKHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcblxuICAgICAgLy8gdXNlciBkZWZpbmVkIHZhbHVlc1xuICAgICAgLi4ucHJvcHMubWV0YWRhdGEsXG5cbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubWV0YWRhdGE/Lm5hbWVzcGFjZSA/PyB0aGlzLmNoYXJ0Lm5hbWVzcGFjZSxcbiAgICAgIGxhYmVsczoge1xuICAgICAgICAuLi50aGlzLmNoYXJ0LmxhYmVscyxcbiAgICAgICAgLi4ucHJvcHMubWV0YWRhdGE/LmxhYmVscyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgQVBJX09CSkVDVF9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoaXMgQXBpT2JqZWN0IGFuZCBvdGhlciBjb25zdHJ1Y3RzLlxuICAgKiBUaGVzZSBjYW4gYmUgb3RoZXIgQXBpT2JqZWN0cywgQ2hhcnRzLCBvciBjdXN0b20uXG4gICAqXG4gICAqIEBwYXJhbSBkZXBlbmRlbmNpZXMgdGhlIGRlcGVuZGVuY2llcyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkRGVwZW5kZW5jeSguLi5kZXBlbmRlbmNpZXM6IElDb25zdHJ1Y3RbXSkge1xuICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KC4uLmRlcGVuZGVuY2llcyk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBhIHNldCBvZiBSRkMtNjkwMiBKU09OLVBhdGNoIG9wZXJhdGlvbnMgdG8gdGhlIG1hbmlmZXN0XG4gICAqIHN5bnRoZXNpemVkIGZvciB0aGlzIEFQSSBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSBvcHMgVGhlIEpTT04tUGF0Y2ggb3BlcmF0aW9ucyB0byBhcHBseS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICpcbiAgICogICBrdWJlUG9kLmFkZEpzb25QYXRjaChKc29uUGF0Y2gucmVwbGFjZSgnL3NwZWMvZW5hYmxlU2VydmljZUxpbmtzJywgdHJ1ZSkpO1xuICAgKlxuICAgKi9cbiAgcHVibGljIGFkZEpzb25QYXRjaCguLi5vcHM6IEpzb25QYXRjaFtdKSB7XG4gICAgdGhpcy5wYXRjaGVzLnB1c2goLi4ub3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBvYmplY3QgdG8gS3ViZXJuZXRlcyBKU09OLlxuICAgKlxuICAgKiBUbyBkaXNhYmxlIHNvcnRpbmcgb2YgZGljdGlvbmFyeSBrZXlzIGluIG91dHB1dCBvYmplY3Qgc2V0IHRoZVxuICAgKiBgQ0RLOFNfRElTQUJMRV9TT1JUYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBhbnkgbm9uLWVtcHR5IHZhbHVlLlxuICAgKi9cbiAgcHVibGljIHRvSnNvbigpOiBhbnkge1xuICAgIGNvbnN0IGRhdGE6IGFueSA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBtZXRhZGF0YTogdGhpcy5tZXRhZGF0YS50b0pzb24oKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc29ydEtleXMgPSBwcm9jZXNzLmVudi5DREs4U19ESVNBQkxFX1NPUlQgPyBmYWxzZSA6IHRydWU7XG4gICAgY29uc3QganNvbiA9IHNhbml0aXplVmFsdWUocmVzb2x2ZShkYXRhKSwgeyBzb3J0S2V5cyB9KTtcbiAgICBjb25zdCBwYXRjaGVkID0gSnNvblBhdGNoLmFwcGx5KGpzb24sIC4uLnRoaXMucGF0Y2hlcyk7XG5cbiAgICAvLyByZW9yZGVyIHRvcC1sZXZlbCBrZXlzIHNvIHRoYXQgd2UgZmlyc3QgaGF2ZSBcImFwaVZlcnNpb25cIiwgXCJraW5kXCIgYW5kXG4gICAgLy8gXCJtZXRhZGF0YVwiIGFuZCB0aGVuIGFsbCB0aGUgcmVzdFxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgY29uc3Qgb3JkZXJlZEtleXMgPSBbJ2FwaVZlcnNpb24nLCAna2luZCcsICdtZXRhZGF0YScsIC4uLk9iamVjdC5rZXlzKHBhdGNoZWQpXTtcbiAgICBmb3IgKGNvbnN0IGsgb2Ygb3JkZXJlZEtleXMpIHtcbiAgICAgIGlmIChrIGluIHBhdGNoZWQpIHtcbiAgICAgICAgcmVzdWx0W2tdID0gcGF0Y2hlZFtrXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlQXBpR3JvdXAoYXBpVmVyc2lvbjogc3RyaW5nKSB7XG4gIGNvbnN0IHYgPSBhcGlWZXJzaW9uLnNwbGl0KCcvJyk7XG5cbiAgLy8gbm8gZ3JvdXAgbWVhbnMgXCJjb3JlXCJcbiAgLy8gaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvcmVmZXJlbmNlL3VzaW5nLWFwaS9hcGktb3ZlcnZpZXcvI2FwaS1ncm91cHNcbiAgaWYgKHYubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuICdjb3JlJztcbiAgfVxuXG4gIGlmICh2Lmxlbmd0aCA9PT0gMikge1xuICAgIHJldHVybiB2WzBdO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFwaVZlcnNpb24gJHthcGlWZXJzaW9ufSwgZXhwZWN0aW5nIEdST1VQL1ZFUlNJT04uIFNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9yZWZlcmVuY2UvdXNpbmctYXBpL2FwaS1vdmVydmlldy8jYXBpLWdyb3Vwc2ApO1xufVxuIl19