@nikovirtala/projen-constructs 0.3.81 → 0.3.82
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 +54 -41
- package/docs/api/assets/search.js +1 -1
- package/docs/api/classes/AwsCdkConstructLibraryProject.html +1 -1
- package/docs/api/classes/AwsCdkTypeScriptAppProject.html +1 -1
- package/docs/api/classes/JsiiProject.html +1 -1
- package/docs/api/classes/ProjectGenerator.html +1 -1
- package/docs/api/classes/TypeScriptProject.html +1 -1
- package/docs/api/classes/Vitest.html +9 -7
- package/docs/api/interfaces/ProjectGeneratorOptions.html +1 -1
- package/lib/components/bundle-lambda-function-code.js +3 -3
- package/lib/components/colima.js +1 -1
- package/lib/components/homebrew.js +1 -1
- package/lib/components/lambda-function-construct-generator.js +1 -1
- package/lib/components/localstack.js +1 -1
- package/lib/components/mise.js +1 -1
- package/lib/components/typedoc.js +1 -1
- package/lib/components/vitest.d.ts +16 -0
- package/lib/components/vitest.js +39 -2
- package/lib/project-generator.js +1 -1
- package/lib/projects/awscdk-construct-library.generated.js +1 -1
- package/lib/projects/awscdk-typescript-app.generated.js +1 -1
- package/lib/projects/jsii.generated.js +1 -1
- package/lib/projects/typescript.generated.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -11781,7 +11781,7 @@
|
|
|
11781
11781
|
"kind": "enum",
|
|
11782
11782
|
"locationInModule": {
|
|
11783
11783
|
"filename": "src/components/vitest.ts",
|
|
11784
|
-
"line":
|
|
11784
|
+
"line": 75
|
|
11785
11785
|
},
|
|
11786
11786
|
"members": [
|
|
11787
11787
|
{
|
|
@@ -11813,7 +11813,7 @@
|
|
|
11813
11813
|
"kind": "enum",
|
|
11814
11814
|
"locationInModule": {
|
|
11815
11815
|
"filename": "src/components/vitest.ts",
|
|
11816
|
-
"line":
|
|
11816
|
+
"line": 91
|
|
11817
11817
|
},
|
|
11818
11818
|
"members": [
|
|
11819
11819
|
{
|
|
@@ -11910,7 +11910,7 @@
|
|
|
11910
11910
|
"kind": "enum",
|
|
11911
11911
|
"locationInModule": {
|
|
11912
11912
|
"filename": "src/components/vitest.ts",
|
|
11913
|
-
"line":
|
|
11913
|
+
"line": 10
|
|
11914
11914
|
},
|
|
11915
11915
|
"members": [
|
|
11916
11916
|
{
|
|
@@ -16201,7 +16201,7 @@
|
|
|
16201
16201
|
"kind": "enum",
|
|
16202
16202
|
"locationInModule": {
|
|
16203
16203
|
"filename": "src/components/vitest.ts",
|
|
16204
|
-
"line":
|
|
16204
|
+
"line": 38
|
|
16205
16205
|
},
|
|
16206
16206
|
"members": [
|
|
16207
16207
|
{
|
|
@@ -20708,7 +20708,7 @@
|
|
|
20708
20708
|
},
|
|
20709
20709
|
"locationInModule": {
|
|
20710
20710
|
"filename": "src/components/vitest.ts",
|
|
20711
|
-
"line":
|
|
20711
|
+
"line": 345
|
|
20712
20712
|
},
|
|
20713
20713
|
"parameters": [
|
|
20714
20714
|
{
|
|
@@ -20729,7 +20729,7 @@
|
|
|
20729
20729
|
"kind": "class",
|
|
20730
20730
|
"locationInModule": {
|
|
20731
20731
|
"filename": "src/components/vitest.ts",
|
|
20732
|
-
"line":
|
|
20732
|
+
"line": 316
|
|
20733
20733
|
},
|
|
20734
20734
|
"methods": [
|
|
20735
20735
|
{
|
|
@@ -20738,7 +20738,7 @@
|
|
|
20738
20738
|
},
|
|
20739
20739
|
"locationInModule": {
|
|
20740
20740
|
"filename": "src/components/vitest.ts",
|
|
20741
|
-
"line":
|
|
20741
|
+
"line": 317
|
|
20742
20742
|
},
|
|
20743
20743
|
"name": "of",
|
|
20744
20744
|
"parameters": [
|
|
@@ -20763,7 +20763,7 @@
|
|
|
20763
20763
|
},
|
|
20764
20764
|
"locationInModule": {
|
|
20765
20765
|
"filename": "src/components/vitest.ts",
|
|
20766
|
-
"line":
|
|
20766
|
+
"line": 466
|
|
20767
20767
|
},
|
|
20768
20768
|
"name": "addExclude",
|
|
20769
20769
|
"parameters": [
|
|
@@ -20781,7 +20781,7 @@
|
|
|
20781
20781
|
},
|
|
20782
20782
|
"locationInModule": {
|
|
20783
20783
|
"filename": "src/components/vitest.ts",
|
|
20784
|
-
"line":
|
|
20784
|
+
"line": 461
|
|
20785
20785
|
},
|
|
20786
20786
|
"name": "addInclude",
|
|
20787
20787
|
"parameters": [
|
|
@@ -20799,7 +20799,7 @@
|
|
|
20799
20799
|
},
|
|
20800
20800
|
"locationInModule": {
|
|
20801
20801
|
"filename": "src/components/vitest.ts",
|
|
20802
|
-
"line":
|
|
20802
|
+
"line": 476
|
|
20803
20803
|
},
|
|
20804
20804
|
"name": "configureCoverageProvider",
|
|
20805
20805
|
"parameters": [
|
|
@@ -20817,7 +20817,7 @@
|
|
|
20817
20817
|
},
|
|
20818
20818
|
"locationInModule": {
|
|
20819
20819
|
"filename": "src/components/vitest.ts",
|
|
20820
|
-
"line":
|
|
20820
|
+
"line": 495
|
|
20821
20821
|
},
|
|
20822
20822
|
"name": "configureCoverageReporters",
|
|
20823
20823
|
"parameters": [
|
|
@@ -20840,7 +20840,7 @@
|
|
|
20840
20840
|
},
|
|
20841
20841
|
"locationInModule": {
|
|
20842
20842
|
"filename": "src/components/vitest.ts",
|
|
20843
|
-
"line":
|
|
20843
|
+
"line": 471
|
|
20844
20844
|
},
|
|
20845
20845
|
"name": "configureEnvironment",
|
|
20846
20846
|
"parameters": [
|
|
@@ -20858,7 +20858,7 @@
|
|
|
20858
20858
|
},
|
|
20859
20859
|
"locationInModule": {
|
|
20860
20860
|
"filename": "src/components/vitest.ts",
|
|
20861
|
-
"line":
|
|
20861
|
+
"line": 500
|
|
20862
20862
|
},
|
|
20863
20863
|
"name": "configureGlobals"
|
|
20864
20864
|
},
|
|
@@ -20869,10 +20869,23 @@
|
|
|
20869
20869
|
},
|
|
20870
20870
|
"locationInModule": {
|
|
20871
20871
|
"filename": "src/components/vitest.ts",
|
|
20872
|
-
"line":
|
|
20872
|
+
"line": 403
|
|
20873
20873
|
},
|
|
20874
20874
|
"name": "preSynthesize",
|
|
20875
20875
|
"overrides": "projen.Component"
|
|
20876
|
+
},
|
|
20877
|
+
{
|
|
20878
|
+
"docs": {
|
|
20879
|
+
"remarks": "`postSynthesize` would be too late to rely\non: projen skips it when `PROJEN_DISABLE_POST` is set.",
|
|
20880
|
+
"stability": "stable",
|
|
20881
|
+
"summary": "Runs after projen's sample code component, which is added in the project constructor before any component, so the sample test exists by now."
|
|
20882
|
+
},
|
|
20883
|
+
"locationInModule": {
|
|
20884
|
+
"filename": "src/components/vitest.ts",
|
|
20885
|
+
"line": 418
|
|
20886
|
+
},
|
|
20887
|
+
"name": "synthesize",
|
|
20888
|
+
"overrides": "projen.Component"
|
|
20876
20889
|
}
|
|
20877
20890
|
],
|
|
20878
20891
|
"name": "Vitest",
|
|
@@ -20890,7 +20903,7 @@
|
|
|
20890
20903
|
"kind": "interface",
|
|
20891
20904
|
"locationInModule": {
|
|
20892
20905
|
"filename": "src/components/vitest.ts",
|
|
20893
|
-
"line":
|
|
20906
|
+
"line": 123
|
|
20894
20907
|
},
|
|
20895
20908
|
"name": "VitestConfigOptions",
|
|
20896
20909
|
"properties": [
|
|
@@ -20905,7 +20918,7 @@
|
|
|
20905
20918
|
"immutable": true,
|
|
20906
20919
|
"locationInModule": {
|
|
20907
20920
|
"filename": "src/components/vitest.ts",
|
|
20908
|
-
"line":
|
|
20921
|
+
"line": 243
|
|
20909
20922
|
},
|
|
20910
20923
|
"name": "bail",
|
|
20911
20924
|
"optional": true,
|
|
@@ -20923,7 +20936,7 @@
|
|
|
20923
20936
|
"immutable": true,
|
|
20924
20937
|
"locationInModule": {
|
|
20925
20938
|
"filename": "src/components/vitest.ts",
|
|
20926
|
-
"line":
|
|
20939
|
+
"line": 203
|
|
20927
20940
|
},
|
|
20928
20941
|
"name": "coverageDirectory",
|
|
20929
20942
|
"optional": true,
|
|
@@ -20942,7 +20955,7 @@
|
|
|
20942
20955
|
"immutable": true,
|
|
20943
20956
|
"locationInModule": {
|
|
20944
20957
|
"filename": "src/components/vitest.ts",
|
|
20945
|
-
"line":
|
|
20958
|
+
"line": 180
|
|
20946
20959
|
},
|
|
20947
20960
|
"name": "coverageEnabled",
|
|
20948
20961
|
"optional": true,
|
|
@@ -20961,7 +20974,7 @@
|
|
|
20961
20974
|
"immutable": true,
|
|
20962
20975
|
"locationInModule": {
|
|
20963
20976
|
"filename": "src/components/vitest.ts",
|
|
20964
|
-
"line":
|
|
20977
|
+
"line": 188
|
|
20965
20978
|
},
|
|
20966
20979
|
"name": "coverageProvider",
|
|
20967
20980
|
"optional": true,
|
|
@@ -20980,7 +20993,7 @@
|
|
|
20980
20993
|
"immutable": true,
|
|
20981
20994
|
"locationInModule": {
|
|
20982
20995
|
"filename": "src/components/vitest.ts",
|
|
20983
|
-
"line":
|
|
20996
|
+
"line": 196
|
|
20984
20997
|
},
|
|
20985
20998
|
"name": "coverageReporters",
|
|
20986
20999
|
"optional": true,
|
|
@@ -21004,7 +21017,7 @@
|
|
|
21004
21017
|
"immutable": true,
|
|
21005
21018
|
"locationInModule": {
|
|
21006
21019
|
"filename": "src/components/vitest.ts",
|
|
21007
|
-
"line":
|
|
21020
|
+
"line": 146
|
|
21008
21021
|
},
|
|
21009
21022
|
"name": "environment",
|
|
21010
21023
|
"optional": true,
|
|
@@ -21023,7 +21036,7 @@
|
|
|
21023
21036
|
"immutable": true,
|
|
21024
21037
|
"locationInModule": {
|
|
21025
21038
|
"filename": "src/components/vitest.ts",
|
|
21026
|
-
"line":
|
|
21039
|
+
"line": 138
|
|
21027
21040
|
},
|
|
21028
21041
|
"name": "exclude",
|
|
21029
21042
|
"optional": true,
|
|
@@ -21048,7 +21061,7 @@
|
|
|
21048
21061
|
"immutable": true,
|
|
21049
21062
|
"locationInModule": {
|
|
21050
21063
|
"filename": "src/components/vitest.ts",
|
|
21051
|
-
"line":
|
|
21064
|
+
"line": 172
|
|
21052
21065
|
},
|
|
21053
21066
|
"name": "globals",
|
|
21054
21067
|
"optional": true,
|
|
@@ -21067,7 +21080,7 @@
|
|
|
21067
21080
|
"immutable": true,
|
|
21068
21081
|
"locationInModule": {
|
|
21069
21082
|
"filename": "src/components/vitest.ts",
|
|
21070
|
-
"line":
|
|
21083
|
+
"line": 130
|
|
21071
21084
|
},
|
|
21072
21085
|
"name": "include",
|
|
21073
21086
|
"optional": true,
|
|
@@ -21092,7 +21105,7 @@
|
|
|
21092
21105
|
"immutable": true,
|
|
21093
21106
|
"locationInModule": {
|
|
21094
21107
|
"filename": "src/components/vitest.ts",
|
|
21095
|
-
"line":
|
|
21108
|
+
"line": 156
|
|
21096
21109
|
},
|
|
21097
21110
|
"name": "isolate",
|
|
21098
21111
|
"optional": true,
|
|
@@ -21111,7 +21124,7 @@
|
|
|
21111
21124
|
"immutable": true,
|
|
21112
21125
|
"locationInModule": {
|
|
21113
21126
|
"filename": "src/components/vitest.ts",
|
|
21114
|
-
"line":
|
|
21127
|
+
"line": 235
|
|
21115
21128
|
},
|
|
21116
21129
|
"name": "passWithNoTests",
|
|
21117
21130
|
"optional": true,
|
|
@@ -21130,7 +21143,7 @@
|
|
|
21130
21143
|
"immutable": true,
|
|
21131
21144
|
"locationInModule": {
|
|
21132
21145
|
"filename": "src/components/vitest.ts",
|
|
21133
|
-
"line":
|
|
21146
|
+
"line": 164
|
|
21134
21147
|
},
|
|
21135
21148
|
"name": "pool",
|
|
21136
21149
|
"optional": true,
|
|
@@ -21149,7 +21162,7 @@
|
|
|
21149
21162
|
"immutable": true,
|
|
21150
21163
|
"locationInModule": {
|
|
21151
21164
|
"filename": "src/components/vitest.ts",
|
|
21152
|
-
"line":
|
|
21165
|
+
"line": 259
|
|
21153
21166
|
},
|
|
21154
21167
|
"name": "printConsoleTrace",
|
|
21155
21168
|
"optional": true,
|
|
@@ -21168,7 +21181,7 @@
|
|
|
21168
21181
|
"immutable": true,
|
|
21169
21182
|
"locationInModule": {
|
|
21170
21183
|
"filename": "src/components/vitest.ts",
|
|
21171
|
-
"line":
|
|
21184
|
+
"line": 267
|
|
21172
21185
|
},
|
|
21173
21186
|
"name": "slowTestThreshold",
|
|
21174
21187
|
"optional": true,
|
|
@@ -21188,7 +21201,7 @@
|
|
|
21188
21201
|
"immutable": true,
|
|
21189
21202
|
"locationInModule": {
|
|
21190
21203
|
"filename": "src/components/vitest.ts",
|
|
21191
|
-
"line":
|
|
21204
|
+
"line": 219
|
|
21192
21205
|
},
|
|
21193
21206
|
"name": "typecheckChecker",
|
|
21194
21207
|
"optional": true,
|
|
@@ -21207,7 +21220,7 @@
|
|
|
21207
21220
|
"immutable": true,
|
|
21208
21221
|
"locationInModule": {
|
|
21209
21222
|
"filename": "src/components/vitest.ts",
|
|
21210
|
-
"line":
|
|
21223
|
+
"line": 211
|
|
21211
21224
|
},
|
|
21212
21225
|
"name": "typecheckEnabled",
|
|
21213
21226
|
"optional": true,
|
|
@@ -21226,7 +21239,7 @@
|
|
|
21226
21239
|
"immutable": true,
|
|
21227
21240
|
"locationInModule": {
|
|
21228
21241
|
"filename": "src/components/vitest.ts",
|
|
21229
|
-
"line":
|
|
21242
|
+
"line": 227
|
|
21230
21243
|
},
|
|
21231
21244
|
"name": "typecheckTsconfig",
|
|
21232
21245
|
"optional": true,
|
|
@@ -21246,7 +21259,7 @@
|
|
|
21246
21259
|
"immutable": true,
|
|
21247
21260
|
"locationInModule": {
|
|
21248
21261
|
"filename": "src/components/vitest.ts",
|
|
21249
|
-
"line":
|
|
21262
|
+
"line": 251
|
|
21250
21263
|
},
|
|
21251
21264
|
"name": "updateSnapshots",
|
|
21252
21265
|
"optional": true,
|
|
@@ -21267,7 +21280,7 @@
|
|
|
21267
21280
|
"kind": "interface",
|
|
21268
21281
|
"locationInModule": {
|
|
21269
21282
|
"filename": "src/components/vitest.ts",
|
|
21270
|
-
"line":
|
|
21283
|
+
"line": 270
|
|
21271
21284
|
},
|
|
21272
21285
|
"name": "VitestOptions",
|
|
21273
21286
|
"properties": [
|
|
@@ -21280,7 +21293,7 @@
|
|
|
21280
21293
|
"immutable": true,
|
|
21281
21294
|
"locationInModule": {
|
|
21282
21295
|
"filename": "src/components/vitest.ts",
|
|
21283
|
-
"line":
|
|
21296
|
+
"line": 281
|
|
21284
21297
|
},
|
|
21285
21298
|
"name": "config",
|
|
21286
21299
|
"optional": true,
|
|
@@ -21298,7 +21311,7 @@
|
|
|
21298
21311
|
"immutable": true,
|
|
21299
21312
|
"locationInModule": {
|
|
21300
21313
|
"filename": "src/components/vitest.ts",
|
|
21301
|
-
"line":
|
|
21314
|
+
"line": 276
|
|
21302
21315
|
},
|
|
21303
21316
|
"name": "configFilePath",
|
|
21304
21317
|
"optional": true,
|
|
@@ -21319,7 +21332,7 @@
|
|
|
21319
21332
|
"immutable": true,
|
|
21320
21333
|
"locationInModule": {
|
|
21321
21334
|
"filename": "src/components/vitest.ts",
|
|
21322
|
-
"line":
|
|
21335
|
+
"line": 313
|
|
21323
21336
|
},
|
|
21324
21337
|
"name": "extraConfig",
|
|
21325
21338
|
"optional": true,
|
|
@@ -21345,7 +21358,7 @@
|
|
|
21345
21358
|
"immutable": true,
|
|
21346
21359
|
"locationInModule": {
|
|
21347
21360
|
"filename": "src/components/vitest.ts",
|
|
21348
|
-
"line":
|
|
21361
|
+
"line": 301
|
|
21349
21362
|
},
|
|
21350
21363
|
"name": "extraTestConfig",
|
|
21351
21364
|
"optional": true,
|
|
@@ -21368,7 +21381,7 @@
|
|
|
21368
21381
|
"immutable": true,
|
|
21369
21382
|
"locationInModule": {
|
|
21370
21383
|
"filename": "src/components/vitest.ts",
|
|
21371
|
-
"line":
|
|
21384
|
+
"line": 288
|
|
21372
21385
|
},
|
|
21373
21386
|
"name": "vitestVersion",
|
|
21374
21387
|
"optional": true,
|
|
@@ -21380,6 +21393,6 @@
|
|
|
21380
21393
|
"symbolId": "src/components/vitest:VitestOptions"
|
|
21381
21394
|
}
|
|
21382
21395
|
},
|
|
21383
|
-
"version": "0.3.
|
|
21384
|
-
"fingerprint": "
|
|
21396
|
+
"version": "0.3.82",
|
|
21397
|
+
"fingerprint": "ohTyXBPcXHQJxAF+S6nZLkupFB+kGYPBqv6Ox/00a3E="
|
|
21385
21398
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.searchData = "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";
|
|
1
|
+
window.searchData = "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";
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div class="tsd-comment tsd-typography"><p>AwsCdkConstructLibraryProject with standard configuration and component integration</p>
|
|
15
15
|
<p>Extends Projen's base class with opinionated defaults and automatic component setup.</p>
|
|
16
16
|
</div></section>
|
|
17
|
-
<section class="tsd-panel tsd-hierarchy" data-refl="
|
|
17
|
+
<section class="tsd-panel tsd-hierarchy" data-refl="831">
|
|
18
18
|
<h4>Hierarchy</h4>
|
|
19
19
|
<ul class="tsd-hierarchy">
|
|
20
20
|
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">AwsCdkConstructLibrary</span>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div class="tsd-comment tsd-typography"><p>AwsCdkTypeScriptAppProject with standard configuration and component integration</p>
|
|
15
15
|
<p>Extends Projen's base class with opinionated defaults and automatic component setup.</p>
|
|
16
16
|
</div></section>
|
|
17
|
-
<section class="tsd-panel tsd-hierarchy" data-refl="
|
|
17
|
+
<section class="tsd-panel tsd-hierarchy" data-refl="1011">
|
|
18
18
|
<h4>Hierarchy</h4>
|
|
19
19
|
<ul class="tsd-hierarchy">
|
|
20
20
|
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">AwsCdkTypeScriptApp</span>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div class="tsd-comment tsd-typography"><p>JsiiProject with standard configuration and component integration</p>
|
|
15
15
|
<p>Extends Projen's base class with opinionated defaults and automatic component setup.</p>
|
|
16
16
|
</div></section>
|
|
17
|
-
<section class="tsd-panel tsd-hierarchy" data-refl="
|
|
17
|
+
<section class="tsd-panel tsd-hierarchy" data-refl="1194">
|
|
18
18
|
<h4>Hierarchy</h4>
|
|
19
19
|
<ul class="tsd-hierarchy">
|
|
20
20
|
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">JsiiProject</span>
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<p>This component automates the creation of project classes that extend Projen base classes
|
|
16
16
|
with opinionated defaults and component integration.</p>
|
|
17
17
|
</div></section>
|
|
18
|
-
<section class="tsd-panel tsd-hierarchy" data-refl="
|
|
18
|
+
<section class="tsd-panel tsd-hierarchy" data-refl="731">
|
|
19
19
|
<h4>Hierarchy</h4>
|
|
20
20
|
<ul class="tsd-hierarchy">
|
|
21
21
|
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">Component</span>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div class="tsd-comment tsd-typography"><p>TypeScriptProject with standard configuration and component integration</p>
|
|
15
15
|
<p>Extends Projen's base class with opinionated defaults and automatic component setup.</p>
|
|
16
16
|
</div></section>
|
|
17
|
-
<section class="tsd-panel tsd-hierarchy" data-refl="
|
|
17
|
+
<section class="tsd-panel tsd-hierarchy" data-refl="1371">
|
|
18
18
|
<h4>Hierarchy</h4>
|
|
19
19
|
<ul class="tsd-hierarchy">
|
|
20
20
|
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">TypeScriptProject</span>
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<a href="#postsynthesize" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>post<wbr/>Synthesize</span></a>
|
|
43
43
|
<a href="#presynthesize" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>pre<wbr/>Synthesize</span></a>
|
|
44
44
|
<a href="#projectcreation" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>project<wbr/>Creation</span></a>
|
|
45
|
-
<a href="#synthesize" class="tsd-index-link
|
|
45
|
+
<a href="#synthesize" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>synthesize</span></a>
|
|
46
46
|
<a href="#tostring" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>to<wbr/>String</span></a>
|
|
47
47
|
<a href="#with" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>with</span></a>
|
|
48
48
|
<a href="#iscomponent" class="tsd-index-link tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Component</span></a>
|
|
@@ -201,16 +201,18 @@ Use it for deterministic, one-off file generation. Order across components is no
|
|
|
201
201
|
</div></li></ul></div>
|
|
202
202
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
|
|
203
203
|
<p>Inherited from Component.projectCreation</p></aside></div></li></ul></section>
|
|
204
|
-
<section class="tsd-panel tsd-member
|
|
204
|
+
<section class="tsd-panel tsd-member">
|
|
205
205
|
<h3 class="tsd-anchor-link" id="synthesize"><span>synthesize</span><a href="#synthesize" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
206
|
-
<ul class="tsd-signatures
|
|
207
|
-
<li class="
|
|
206
|
+
<ul class="tsd-signatures">
|
|
207
|
+
<li class="">
|
|
208
208
|
<div class="tsd-signature tsd-anchor-link" id="synthesize-1"><span class="tsd-kind-call-signature">synthesize</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#synthesize-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div>
|
|
209
209
|
<div class="tsd-description">
|
|
210
|
-
<div class="tsd-comment tsd-typography"><p>
|
|
210
|
+
<div class="tsd-comment tsd-typography"><p>Runs after projen's sample code component, which is added in the project constructor before
|
|
211
|
+
any component, so the sample test exists by now. <code>postSynthesize</code> would be too late to rely
|
|
212
|
+
on: projen skips it when <code>PROJEN_DISABLE_POST</code> is set.</p>
|
|
211
213
|
</div>
|
|
212
214
|
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
|
|
213
|
-
<p>
|
|
215
|
+
<p>Overrides Component.synthesize</p></aside></div></li></ul></section>
|
|
214
216
|
<section class="tsd-panel tsd-member tsd-is-inherited tsd-is-external">
|
|
215
217
|
<h3 class="tsd-anchor-link" id="tostring"><span>to<wbr/>String</span><a href="#tostring" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
216
218
|
<ul class="tsd-signatures tsd-is-inherited tsd-is-external">
|
|
@@ -316,7 +318,7 @@ this type-testing method instead.</p>
|
|
|
316
318
|
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary>
|
|
317
319
|
<div><a href="#node" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>node</span></a><a href="#project" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>project</span></a></div></details>
|
|
318
320
|
<details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary>
|
|
319
|
-
<div><a href="#addexclude"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Exclude</span></a><a href="#addinclude"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Include</span></a><a href="#configurecoverageprovider"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>configure<wbr/>Coverage<wbr/>Provider</span></a><a href="#configurecoveragereporters"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>configure<wbr/>Coverage<wbr/>Reporters</span></a><a href="#configureenvironment"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>configure<wbr/>Environment</span></a><a href="#configureglobals"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>configure<wbr/>Globals</span></a><a href="#postprojectcreation" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>post<wbr/>Project<wbr/>Creation</span></a><a href="#postsynthesize" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>post<wbr/>Synthesize</span></a><a href="#presynthesize"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>pre<wbr/>Synthesize</span></a><a href="#projectcreation" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>project<wbr/>Creation</span></a><a href="#synthesize"
|
|
321
|
+
<div><a href="#addexclude"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Exclude</span></a><a href="#addinclude"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Include</span></a><a href="#configurecoverageprovider"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>configure<wbr/>Coverage<wbr/>Provider</span></a><a href="#configurecoveragereporters"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>configure<wbr/>Coverage<wbr/>Reporters</span></a><a href="#configureenvironment"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>configure<wbr/>Environment</span></a><a href="#configureglobals"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>configure<wbr/>Globals</span></a><a href="#postprojectcreation" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>post<wbr/>Project<wbr/>Creation</span></a><a href="#postsynthesize" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>post<wbr/>Synthesize</span></a><a href="#presynthesize"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>pre<wbr/>Synthesize</span></a><a href="#projectcreation" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>project<wbr/>Creation</span></a><a href="#synthesize"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>synthesize</span></a><a href="#tostring" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>to<wbr/>String</span></a><a href="#with" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>with</span></a><a href="#iscomponent" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Component</span></a><a href="#isconstruct" class="tsd-is-inherited tsd-is-external"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Construct</span></a><a href="#of"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>of</span></a></div></details></div></details></div>
|
|
320
322
|
<div class="site-menu">
|
|
321
323
|
<nav class="tsd-navigation"><a href="../modules.html">@nikovirtala/projen-constructs</a>
|
|
322
324
|
<ul class="tsd-small-nested-navigation" id="tsd-nav-container">
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
with standard configuration and component integration.</p>
|
|
17
17
|
</div></section>
|
|
18
18
|
<div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">ProjectGeneratorOptions</span> <span class="tsd-signature-symbol">{</span><br/> <a class="tsd-kind-property" href="#additionaloptions">additionalOptions</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#components">components</a><span class="tsd-signature-symbol">?:</span> <a href="Component.html" class="tsd-signature-type tsd-kind-interface">Component</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#executable">executable</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#filepath">filePath</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#indent">indent</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#name">name</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#omitoptions">omitOptions</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#projecttype">projectType</a><span class="tsd-signature-symbol">:</span> <a href="../enums/ProjectType.html" class="tsd-signature-type tsd-kind-enum">ProjectType</a><span class="tsd-signature-symbol">;</span><br/> <a class="tsd-kind-property" href="#readonly">readonly</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div>
|
|
19
|
-
<section class="tsd-panel tsd-hierarchy" data-refl="
|
|
19
|
+
<section class="tsd-panel tsd-hierarchy" data-refl="721">
|
|
20
20
|
<h4>Hierarchy</h4>
|
|
21
21
|
<ul class="tsd-hierarchy">
|
|
22
22
|
<li class="tsd-hierarchy-item"><span class="tsd-signature-type">SourceCodeOptions</span>
|
|
@@ -67,7 +67,7 @@ function convertToPosixPath(p) {
|
|
|
67
67
|
* single file.
|
|
68
68
|
*/
|
|
69
69
|
class Bundler extends projen_1.Component {
|
|
70
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Bundler", version: "0.3.
|
|
70
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Bundler", version: "0.3.82" };
|
|
71
71
|
/**
|
|
72
72
|
* Returns the `Bundler` instance associated with a project or `undefined` if
|
|
73
73
|
* there is no Bundler.
|
|
@@ -221,7 +221,7 @@ exports.Bundler = Bundler;
|
|
|
221
221
|
* });
|
|
222
222
|
*/
|
|
223
223
|
class LambdaFunctionCodeBundle extends projen_1.Component {
|
|
224
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionCodeBundle", version: "0.3.
|
|
224
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionCodeBundle", version: "0.3.82" };
|
|
225
225
|
/**
|
|
226
226
|
* Defines a pre-bundled AWS Lambda Function code asset from handler code.
|
|
227
227
|
*
|
|
@@ -273,7 +273,7 @@ exports.LambdaFunctionCodeBundle = LambdaFunctionCodeBundle;
|
|
|
273
273
|
* Creates Lambda Function code bundles from entrypoints discovered in the project's source tree.
|
|
274
274
|
*/
|
|
275
275
|
class LambdaFunctionCodeBundler extends projen_1.cdk.AutoDiscoverBase {
|
|
276
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionCodeBundler", version: "0.3.
|
|
276
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionCodeBundler", version: "0.3.82" };
|
|
277
277
|
constructor(project, options) {
|
|
278
278
|
super(project, {
|
|
279
279
|
projectdir: options.srcdir,
|
package/lib/components/colima.js
CHANGED
|
@@ -11,7 +11,7 @@ const homebrew_1 = require("./homebrew");
|
|
|
11
11
|
* Adds Colima support to your project with automatic installation and startup.
|
|
12
12
|
*/
|
|
13
13
|
class Colima extends component_1.Component {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Colima", version: "0.3.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Colima", version: "0.3.82" };
|
|
15
15
|
constructor(scope) {
|
|
16
16
|
super(scope);
|
|
17
17
|
const project = this.project;
|
|
@@ -6,7 +6,7 @@ const component_1 = require("projen/lib/component");
|
|
|
6
6
|
const task_shell_1 = require("projen/lib/task-shell");
|
|
7
7
|
const textfile_1 = require("projen/lib/textfile");
|
|
8
8
|
class Homebrew extends component_1.Component {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Homebrew", version: "0.3.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Homebrew", version: "0.3.82" };
|
|
10
10
|
static of(project) {
|
|
11
11
|
const isHomebrew = (c) => c instanceof Homebrew;
|
|
12
12
|
return project.components.find(isHomebrew);
|
|
@@ -44,7 +44,7 @@ const utils_1 = require("../utils");
|
|
|
44
44
|
* The bundling happens during projen execution, not during CDK synth, enabling a "build once, deploy many" pattern.
|
|
45
45
|
*/
|
|
46
46
|
class LambdaFunctionConstructGenerator extends projen_1.Component {
|
|
47
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionConstructGenerator", version: "0.3.
|
|
47
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LambdaFunctionConstructGenerator", version: "0.3.82" };
|
|
48
48
|
sourceDir;
|
|
49
49
|
outputDir;
|
|
50
50
|
filePattern;
|
|
@@ -12,7 +12,7 @@ const homebrew_1 = require("./homebrew");
|
|
|
12
12
|
* Adds LocalStack support to your project with automatic Docker/Colima setup.
|
|
13
13
|
*/
|
|
14
14
|
class LocalStack extends component_1.Component {
|
|
15
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LocalStack", version: "0.3.
|
|
15
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.LocalStack", version: "0.3.82" };
|
|
16
16
|
constructor(scope, options = {}) {
|
|
17
17
|
super(scope);
|
|
18
18
|
const project = javascript_1.NodeProject.of(this);
|
package/lib/components/mise.js
CHANGED
|
@@ -7,7 +7,7 @@ const component_1 = require("projen/lib/component");
|
|
|
7
7
|
const textfile_1 = require("projen/lib/textfile");
|
|
8
8
|
const homebrew_1 = require("./homebrew");
|
|
9
9
|
class Mise extends component_1.Component {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Mise", version: "0.3.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Mise", version: "0.3.82" };
|
|
11
11
|
static of(project) {
|
|
12
12
|
const isMise = (c) => c instanceof Mise;
|
|
13
13
|
return project.components.find(isMise);
|
|
@@ -34,7 +34,7 @@ const DEFAULT_CONFIG = {
|
|
|
34
34
|
* TypeDoc component for projen projects
|
|
35
35
|
*/
|
|
36
36
|
class TypeDoc extends component_1.Component {
|
|
37
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeDoc", version: "0.3.
|
|
37
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeDoc", version: "0.3.82" };
|
|
38
38
|
static of(project) {
|
|
39
39
|
const isTypeDoc = (c) => c instanceof TypeDoc;
|
|
40
40
|
return project.components.find(isTypeDoc);
|
|
@@ -298,6 +298,22 @@ export declare class Vitest extends Component {
|
|
|
298
298
|
private readonly extraConfig;
|
|
299
299
|
constructor(project: NodeProject, options?: VitestOptions);
|
|
300
300
|
preSynthesize(): void;
|
|
301
|
+
/**
|
|
302
|
+
* Runs after projen's sample code component, which is added in the project constructor before
|
|
303
|
+
* any component, so the sample test exists by now. `postSynthesize` would be too late to rely
|
|
304
|
+
* on: projen skips it when `PROJEN_DISABLE_POST` is set.
|
|
305
|
+
*/
|
|
306
|
+
synthesize(): void;
|
|
307
|
+
/**
|
|
308
|
+
* Makes the sample test of AWS CDK apps work with Vitest.
|
|
309
|
+
*
|
|
310
|
+
* Projen writes `<testdir>/<entrypoint>.test.ts` for AWS CDK TypeScript apps whenever the test
|
|
311
|
+
* directory contains no TypeScript files. The test uses the Jest globals `test` and `expect`,
|
|
312
|
+
* which don't exist with Vitest unless `globals` is enabled, so import them from `vitest`.
|
|
313
|
+
*
|
|
314
|
+
* Only a file that still matches projen's sample is changed, never a test written by hand.
|
|
315
|
+
*/
|
|
316
|
+
private importVitestInSampleTest;
|
|
301
317
|
addInclude(pattern: string): void;
|
|
302
318
|
addExclude(pattern: string): void;
|
|
303
319
|
configureEnvironment(environment: Environment): void;
|
package/lib/components/vitest.js
CHANGED
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.Vitest = exports.CoverageReporter = exports.CoverageProvider = exports.Pool = exports.Environment = void 0;
|
|
37
37
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
38
|
+
const fs = __importStar(require("node:fs"));
|
|
38
39
|
const path = __importStar(require("node:path"));
|
|
39
40
|
const projen_1 = require("projen");
|
|
40
41
|
const component_1 = require("projen/lib/component");
|
|
@@ -140,7 +141,7 @@ var CoverageReporter;
|
|
|
140
141
|
CoverageReporter["TEXT"] = "text";
|
|
141
142
|
})(CoverageReporter || (exports.CoverageReporter = CoverageReporter = {}));
|
|
142
143
|
class Vitest extends component_1.Component {
|
|
143
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Vitest", version: "0.3.
|
|
144
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.Vitest", version: "0.3.82" };
|
|
144
145
|
static of(project) {
|
|
145
146
|
const isVitest = (c) => c instanceof Vitest;
|
|
146
147
|
return project.components.find(isVitest);
|
|
@@ -222,6 +223,42 @@ class Vitest extends component_1.Component {
|
|
|
222
223
|
}
|
|
223
224
|
}
|
|
224
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Runs after projen's sample code component, which is added in the project constructor before
|
|
228
|
+
* any component, so the sample test exists by now. `postSynthesize` would be too late to rely
|
|
229
|
+
* on: projen skips it when `PROJEN_DISABLE_POST` is set.
|
|
230
|
+
*/
|
|
231
|
+
synthesize() {
|
|
232
|
+
super.synthesize();
|
|
233
|
+
this.importVitestInSampleTest();
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Makes the sample test of AWS CDK apps work with Vitest.
|
|
237
|
+
*
|
|
238
|
+
* Projen writes `<testdir>/<entrypoint>.test.ts` for AWS CDK TypeScript apps whenever the test
|
|
239
|
+
* directory contains no TypeScript files. The test uses the Jest globals `test` and `expect`,
|
|
240
|
+
* which don't exist with Vitest unless `globals` is enabled, so import them from `vitest`.
|
|
241
|
+
*
|
|
242
|
+
* Only a file that still matches projen's sample is changed, never a test written by hand.
|
|
243
|
+
*/
|
|
244
|
+
importVitestInSampleTest() {
|
|
245
|
+
if (this.globals || !(this.project instanceof projen_1.awscdk.AwsCdkTypeScriptApp)) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
const project = this.project;
|
|
249
|
+
const entrypointName = path.basename(project.appEntrypoint, ".ts");
|
|
250
|
+
const testPath = path.join(project.outdir, project.testdir, `${entrypointName}.test.ts`);
|
|
251
|
+
if (!fs.existsSync(testPath)) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
const sampleImports = "import { App } from 'aws-cdk-lib';\nimport { Template } from 'aws-cdk-lib/assertions';\n";
|
|
255
|
+
const contents = fs.readFileSync(testPath, "utf-8");
|
|
256
|
+
const isSample = contents.startsWith(sampleImports) && contents.includes("\ntest('Snapshot', () => {");
|
|
257
|
+
if (!isSample || contents.includes("from 'vitest'")) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
fs.writeFileSync(testPath, contents.replace(sampleImports, `${sampleImports}import { expect, test } from 'vitest';\n`));
|
|
261
|
+
}
|
|
225
262
|
addInclude(pattern) {
|
|
226
263
|
this.include.add(pattern);
|
|
227
264
|
this.synthesizeConfig();
|
|
@@ -334,4 +371,4 @@ class Vitest extends component_1.Component {
|
|
|
334
371
|
}
|
|
335
372
|
}
|
|
336
373
|
exports.Vitest = Vitest;
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvdml0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBa0M7QUFDbEMsbUNBQXFDO0FBQ3JDLG9EQUFpRDtBQUNqRCwwREFBeUQ7QUFDekQsc0RBQStEO0FBQy9ELGtEQUErQztBQUMvQyxvQ0FBc0Q7QUFFdEQsSUFBWSxXQTBCWDtBQTFCRCxXQUFZLFdBQVc7SUFDbkI7Ozs7T0FJRztJQUNILDRDQUE2QixDQUFBO0lBRTdCOzs7O09BSUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUV2Qjs7OztPQUlHO0lBQ0gsOEJBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsNEJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBMUJXLFdBQVcsMkJBQVgsV0FBVyxRQTBCdEI7QUFFRCxJQUFZLElBbUNYO0FBbkNELFdBQVksSUFBSTtJQUNaOzs7Ozs7T0FNRztJQUNILHVCQUFlLENBQUE7SUFFZjs7OztPQUlHO0lBQ0gsMkJBQW1CLENBQUE7SUFFbkI7Ozs7Ozs7O09BUUc7SUFDSCwyQkFBbUIsQ0FBQTtJQUVuQjs7Ozs7T0FLRztJQUNILCtCQUF1QixDQUFBO0FBQzNCLENBQUMsRUFuQ1csSUFBSSxvQkFBSixJQUFJLFFBbUNmO0FBRUQsSUFBWSxnQkFjWDtBQWRELFdBQVksZ0JBQWdCO0lBQ3hCOzs7O09BSUc7SUFDSCx5Q0FBcUIsQ0FBQTtJQUVyQjs7OztPQUlHO0lBQ0gsNkJBQVMsQ0FBQTtBQUNiLENBQUMsRUFkVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQWMzQjtBQUVELElBQVksZ0JBeUJYO0FBekJELFdBQVksZ0JBQWdCO0lBQ3hCOztPQUVHO0lBQ0gscUNBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCxpQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxpQ0FBYSxDQUFBO0lBRWI7O09BRUc7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QixPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3pDLFNBQVMsRUFBRTtnQkFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2FBQ25DO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQy9CLENBQUM7SUFDTixDQUFDOztBQWxPTCx3QkFtT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGF3c2NkaywgY2RrIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInByb2plbi9saWIvY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEZXBlbmRlbmN5VHlwZSB9IGZyb20gXCJwcm9qZW4vbGliL2RlcGVuZGVuY2llc1wiO1xuaW1wb3J0IHsgSmVzdCwgdHlwZSBOb2RlUHJvamVjdCB9IGZyb20gXCJwcm9qZW4vbGliL2phdmFzY3JpcHRcIjtcbmltcG9ydCB7IFRleHRGaWxlIH0gZnJvbSBcInByb2plbi9saWIvdGV4dGZpbGVcIjtcbmltcG9ydCB7IGRlZXBNZXJnZSwgdHNjb25maWdEZXZQYXRoIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBlbnVtIEVudmlyb25tZW50IHtcbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gVmVyY2VsJ3MgRWRnZSBSdW50aW1lIFZNLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VkZ2UtcnVudGltZS52ZXJjZWwuYXBwL3BhY2thZ2VzL3ZtXG4gICAgICovXG4gICAgRURHRV9SVU5USU1FID0gXCJlZGdlLXJ1bnRpbWVcIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBgaGFwcHktZG9tYCBlbnZpcm9ubWVudC5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NhcHJpY29ybjg2L2hhcHB5LWRvbVxuICAgICAqL1xuICAgIEhBUFBZX0RPTSA9IFwiaGFwcHktZG9tXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYGpzZG9tYCBlbnZpcm9ubWVudC5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2pzZG9tL2pzZG9tXG4gICAgICovXG4gICAgSlNET00gPSBcImpzZG9tXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYSBOb2RlLmpzIGVudmlyb25tZW50LlxuICAgICAqL1xuICAgIE5PREUgPSBcIm5vZGVcIixcbn1cblxuZXhwb3J0IGVudW0gUG9vbCB7XG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGBub2RlOmNoaWxkX3Byb2Nlc3NgIHVzaW5nIGZvcmsoKVxuICAgICAqXG4gICAgICogVGVzdCBpc29sYXRpb24gKHdoZW4gZW5hYmxlZCkgaXMgZG9uZSBieSBzcGF3bmluZyBhIG5ldyBjaGlsZCBwcm9jZXNzIGZvciBlYWNoIHRlc3QgZmlsZS5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9jaGlsZF9wcm9jZXNzLmh0bWwjY2hpbGRfcHJvY2Vzc2Zvcmttb2R1bGVwYXRoLWFyZ3Mtb3B0aW9uc1xuICAgICAqL1xuICAgIEZPUktTID0gXCJmb3Jrc1wiLFxuXG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGBub2RlOndvcmtlcl90aHJlYWRzYC5cbiAgICAgKlxuICAgICAqIFRlc3QgaXNvbGF0aW9uICh3aGVuIGVuYWJsZWQpIGlzIGRvbmUgYnkgc3Bhd25pbmcgYSBuZXcgdGhyZWFkIGZvciBlYWNoIHRlc3QgZmlsZS5cbiAgICAgKi9cbiAgICBUSFJFQURTID0gXCJ0aHJlYWRzXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gaXNvbGF0ZWQgYG5vZGU6dm1gLlxuICAgICAqXG4gICAgICogVGVzdCBmaWxlcyBhcmUgcnVuIHBhcmFsbGVsIHVzaW5nIGBub2RlOmNoaWxkX3Byb2Nlc3NgIGZvcmsoKVxuICAgICAqXG4gICAgICogVGhpcyBtYWtlcyB0ZXN0cyBydW4gZmFzdGVyLCBidXQgVk0gbW9kdWxlIGlzIHVuc3RhYmxlLiBZb3VyIHRlc3RzIG1pZ2h0IGxlYWsgbWVtb3J5LlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL25vZGVqcy5vcmcvYXBpL2NoaWxkX3Byb2Nlc3MuaHRtbCNjaGlsZF9wcm9jZXNzZm9ya21vZHVsZXBhdGgtYXJncy1vcHRpb25zXG4gICAgICovXG4gICAgVk1GT1JLUyA9IFwidm1mb3Jrc1wiLFxuXG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGlzb2xhdGVkIGBub2RlOnZtYC5cbiAgICAgKiBUZXN0IGZpbGVzIGFyZSBydW4gcGFyYWxsZWwgdXNpbmcgYG5vZGU6d29ya2VyX3RocmVhZHNgLlxuICAgICAqXG4gICAgICogVGhpcyBtYWtlcyB0ZXN0cyBydW4gZmFzdGVyLCBidXQgVk0gbW9kdWxlIGlzIHVuc3RhYmxlLiBZb3VyIHRlc3RzIG1pZ2h0IGxlYWsgbWVtb3J5LlxuICAgICAqL1xuICAgIFZNVEhSRUFEUyA9IFwidm10aHJlYWRzXCIsXG59XG5cbmV4cG9ydCBlbnVtIENvdmVyYWdlUHJvdmlkZXIge1xuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgY292ZXJhZ2UgcmVwb3J0IHVzaW5nIGlzdGFuYnVsLlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2lzdGFuYnVsLmpzLm9yZ1xuICAgICAqL1xuICAgIElTVEFOQlVMID0gXCJpc3RhbmJ1bFwiLFxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZSBjb3ZlcmFnZSByZXBvcnRzIHVzaW5nIHY4LlxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3Y4LmRldi9ibG9nL2phdmFzY3JpcHQtY29kZS1jb3ZlcmFnZVxuICAgICAqL1xuICAgIFY4ID0gXCJ2OFwiLFxufVxuXG5leHBvcnQgZW51bSBDb3ZlcmFnZVJlcG9ydGVyIHtcbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBgY2xvdmVyYCByZXBvcnQuXG4gICAgICovXG4gICAgQ0xPVkVSID0gXCJjbG92ZXJcIixcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGBIVE1MYCByZXBvcnQuXG4gICAgICovXG4gICAgSFRNTCA9IFwiaHRtbFwiLFxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgYEpTT05gIHJlcG9ydC5cbiAgICAgKi9cbiAgICBKU09OID0gXCJqc29uXCIsXG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBgTENPVmAgcmVwb3J0LlxuICAgICAqL1xuICAgIExDT1YgPSBcImxjb3ZcIixcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGB0ZXh0YCByZXBvcnQuXG4gICAgICovXG4gICAgVEVYVCA9IFwidGV4dFwiLFxufVxuXG4vKipcbiAqIFZpdGVzdCBDb25maWcuXG4gKlxuICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnL1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpdGVzdENvbmZpZ09wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBnbG9iIHBhdHRlcm5zIHRoYXQgbWF0Y2ggeW91ciB0ZXN0IGZpbGVzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBWaXRlc3QncyBgY29uZmlnRGVmYXVsdHMuaW5jbHVkZWBcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2luY2x1ZGVcbiAgICAgKi9cbiAgICByZWFkb25seSBpbmNsdWRlPzogQXJyYXk8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBnbG9iIHBhdHRlcm5zIHRoYXQgc2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20geW91ciB0ZXN0IGZpbGVzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBWaXRlc3QncyBgY29uZmlnRGVmYXVsdHMuZXhjbHVkZWBcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2V4Y2x1ZGVcbiAgICAgKi9cbiAgICByZWFkb25seSBleGNsdWRlPzogQXJyYXk8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBlbnZpcm9ubWVudCB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGVzdGluZy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwibm9kZVwiXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNlbnZpcm9ubWVudFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVudmlyb25tZW50PzogRW52aXJvbm1lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYW4gaXNvbGF0ZWQgZW52aXJvbm1lbnQuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gdm1UaHJlYWRzIHBvb2wuXG4gICAgICpcbiAgICAgKiBEaXNhYmxpbmcgdGhpcyBvcHRpb24gbWlnaHQgaW1wcm92ZSBwZXJmb3JtYW5jZSBpZiB5b3VyIGNvZGUgZG9lc24ndCByZWx5IG9uIHNpZGUgZWZmZWN0cy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2lzb2xhdGVcbiAgICAgKi9cbiAgICByZWFkb25seSBpc29sYXRlPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFBvb2wgdXNlZCB0byBydW4gdGVzdHMgaW4uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcImZvcmtzXCJcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3Bvb2xcbiAgICAgKi9cbiAgICByZWFkb25seSBwb29sPzogUG9vbDtcblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIGFwaXMgZ2xvYmFsbHkuIElmIHlvdSBwcmVmZXIgdG8gdXNlIHRoZSBBUElzIGdsb2JhbGx5IGxpa2UgSmVzdCwgc2V0IHRvIGB0cnVlYC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNnbG9iYWxzXG4gICAgICovXG4gICAgcmVhZG9ubHkgZ2xvYmFscz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBDb3ZlcmFnZSBlbmFibGVkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jY292ZXJhZ2UtZW5hYmxlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvdmVyYWdlRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBDb3ZlcmFnZSBwcm92aWRlciB0eXBlLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJ2OFwiXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNjb3ZlcmFnZS1wcm92aWRlclxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvdmVyYWdlUHJvdmlkZXI/OiBDb3ZlcmFnZVByb3ZpZGVyO1xuXG4gICAgLyoqXG4gICAgICogQ292ZXJhZ2UgcmVwb3J0ZXJzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ1tcInRleHRcIiwgXCJsY292XCJdJ1xuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jY292ZXJhZ2UtcmVwb3J0ZXJcbiAgICAgKi9cbiAgICByZWFkb25seSBjb3ZlcmFnZVJlcG9ydGVycz86IEFycmF5PENvdmVyYWdlUmVwb3J0ZXI+O1xuXG4gICAgLyoqXG4gICAgICogQ292ZXJhZ2Ugb3V0cHV0IGRpcmVjdG9yeS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiY292ZXJhZ2VcIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvdmVyYWdlRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRW5hYmxlIHR5cGVjaGVja2luZyBhbG9uZ3NpZGUgeW91ciByZWd1bGFyIHRlc3RzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZSAoZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMpXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyN0eXBlY2hlY2stZW5hYmxlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHR5cGVjaGVja0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVG9vbCB0byB1c2UgZm9yIHR5cGUgY2hlY2tpbmcuIENoZWNrZXIgc2hvdWxkIGltcGxlbWVudCB0aGUgc2FtZSBvdXRwdXQgZm9ybWF0IGFzIGB0c2NgLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJ0c2MgLS1ub0VtaXRcIlxuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jdHlwZWNoZWNrLWNoZWNrZXJcbiAgICAgKi9cbiAgICByZWFkb25seSB0eXBlY2hlY2tDaGVja2VyPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUGF0aCB0byBjdXN0b20gdHNjb25maWcsIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIHRoZSBwcm9qZWN0J3MgZGV2ZWxvcG1lbnQgdHNjb25maWcgKGUuZy4gXCJ0ZXN0L3RzY29uZmlnLmpzb25cIilcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3R5cGVjaGVjay10c2NvbmZpZ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHR5cGVjaGVja1RzY29uZmlnPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVml0ZXN0IHdpbGwgbm90IGZhaWwsIGlmIG5vIHRlc3RzIHdpbGwgYmUgZm91bmQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNwYXNzd2l0aG5vdGVzdHNcbiAgICAgKi9cbiAgICByZWFkb25seSBwYXNzV2l0aE5vVGVzdHM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU3RvcCBydW5uaW5nIHRlc3RzIGFmdGVyIGNlcnRhaW4gbnVtYmVyIG9mIGZhaWx1cmVzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jYmFpbFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGJhaWw/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgc25hcHNob3QgZmlsZXMuIFRoaXMgd2lsbCB1cGRhdGUgYWxsIGNoYW5nZWQgc25hcHNob3RzIGFuZCBkZWxldGUgb2Jzb2xldGUgb25lcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9ndWlkZS9zbmFwc2hvdC5odG1sI3VwZGF0aW5nLXNuYXBzaG90c1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHVwZGF0ZVNuYXBzaG90cz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBbHdheXMgcHJpbnQgY29uc29sZSB0cmFjZXMgd2hlbiBjYWxsaW5nIGFueSBjb25zb2xlIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2NvbnNvbGV0cmFjZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHByaW50Q29uc29sZVRyYWNlPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGFmdGVyIHdoaWNoIGEgdGVzdCBvciBzdWl0ZSBpcyBjb25zaWRlcmVkIHNsb3cuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAzMDBcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3Nsb3d0ZXN0dGhyZXNob2xkXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2xvd1Rlc3RUaHJlc2hvbGQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVml0ZXN0T3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogQ29uZmlnIGZpbGUgcGF0aC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwidml0ZXN0LmNvbmZpZy50c1wiXG4gICAgICovXG4gICAgcmVhZG9ubHkgY29uZmlnRmlsZVBhdGg/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIGNvbmZpZyBvcHRpb25zLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvbmZpZz86IFZpdGVzdENvbmZpZ09wdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBWaXRlc3QgdmVyc2lvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiXjRcIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHZpdGVzdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIGB0ZXN0YCBvcHRpb25zIGZvciBzZXR0aW5ncyB0aGF0IGBjb25maWdgIGRvZXNuJ3QgY292ZXIsIHN1Y2ggYXMgYHNldHVwRmlsZXNgIG9yIGBleHBlY3RgLlxuICAgICAqXG4gICAgICogRGVlcC1tZXJnZWQgb3ZlciB0aGUgb3B0aW9ucyBnZW5lcmF0ZWQgZnJvbSBgY29uZmlnYDogb2JqZWN0cyBhcmUgbWVyZ2VkLCBvdGhlciB2YWx1ZXMgKGluY2x1ZGluZ1xuICAgICAqIGFycmF5cykgcmVwbGFjZSB0aGUgZ2VuZXJhdGVkIHZhbHVlLiBWYWx1ZXMgYXJlIHJlbmRlcmVkIGFzIEpTT04sIHNvIHRoZXkgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZVxuICAgICAqIChubyBmdW5jdGlvbnMgb3IgcmVndWxhciBleHByZXNzaW9ucykuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZSB7IHNldHVwRmlsZXM6IFtcInRlc3Qvc2V0dXAudHNcIl0sIGV4cGVjdDogeyByZXF1aXJlQXNzZXJ0aW9uczogdHJ1ZSB9IH1cbiAgICAgKiBAZGVmYXVsdCAtIG5vIGFkZGl0aW9uYWwgdGVzdCBvcHRpb25zXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnL1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGV4dHJhVGVzdENvbmZpZz86IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkaXRpb25hbCB0b3AtbGV2ZWwgY29uZmlnIG9wdGlvbnMsIG5leHQgdG8gYHRlc3RgLCBzdWNoIGFzIGByZXNvbHZlYC5cbiAgICAgKlxuICAgICAqIFZhbHVlcyBhcmUgcmVuZGVyZWQgYXMgSlNPTiwgc28gdGhleSBtdXN0IGJlIEpTT04tc2VyaWFsaXphYmxlIChubyBmdW5jdGlvbnMgb3IgcmVndWxhciBleHByZXNzaW9ucyxcbiAgICAgKiB3aGljaCBydWxlcyBvdXQgcGx1Z2lucykuIFVzZSBgZXh0cmFUZXN0Q29uZmlnYCBmb3IgYHRlc3RgIG9wdGlvbnMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZSB7IHJlc29sdmU6IHsgYWxpYXM6IHsgXCJAXCI6IFwiL3NyY1wiIH0gfSB9XG4gICAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIHRvcC1sZXZlbCBvcHRpb25zXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnL1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGV4dHJhQ29uZmlnPzogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG59XG5cbmV4cG9ydCBjbGFzcyBWaXRlc3QgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogTm9kZVByb2plY3QpOiBWaXRlc3QgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBpc1ZpdGVzdCA9IChjOiBDb21wb25lbnQpOiBjIGlzIFZpdGVzdCA9PiBjIGluc3RhbmNlb2YgVml0ZXN0O1xuICAgICAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNWaXRlc3QpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnRmlsZVBhdGg6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluY2x1ZGU6IFNldDxzdHJpbmc+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXhjbHVkZTogU2V0PHN0cmluZz47XG4gICAgcHJpdmF0ZSByZWFkb25seSBpc29sYXRlOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9vbDogUG9vbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdmVyYWdlRW5hYmxlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHR5cGVjaGVja0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSB0eXBlY2hlY2tDaGVja2VyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0eXBlY2hlY2tUc2NvbmZpZzogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFzc1dpdGhOb1Rlc3RzOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYmFpbDogbnVtYmVyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlU25hcHNob3RzOiBib29sZWFuO1xuICAgIHByaXZhdGUgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgICBwcml2YXRlIGdsb2JhbHM6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBjb3ZlcmFnZVByb3ZpZGVyOiBDb3ZlcmFnZVByb3ZpZGVyO1xuICAgIHByaXZhdGUgY292ZXJhZ2VSZXBvcnRlcnM6IEFycmF5PENvdmVyYWdlUmVwb3J0ZXI+O1xuICAgIHByaXZhdGUgY292ZXJhZ2VEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIHZlcnNpb246IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByaW50Q29uc29sZVRyYWNlOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2xvd1Rlc3RUaHJlc2hvbGQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4dHJhVGVzdENvbmZpZzogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRyYUNvbmZpZzogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogVml0ZXN0T3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmV4dHJhQ29uZmlnICYmIFwidGVzdFwiIGluIG9wdGlvbnMuZXh0cmFDb25maWcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInZpdGVzdCBleHRyYUNvbmZpZyBtdXN0IG5vdCBjb250YWluIGB0ZXN0YCwgdXNlIGV4dHJhVGVzdENvbmZpZyBmb3IgdGVzdCBvcHRpb25zXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leHRyYVRlc3RDb25maWcgPSBvcHRpb25zLmV4dHJhVGVzdENvbmZpZyA/PyB7fTtcbiAgICAgICAgdGhpcy5leHRyYUNvbmZpZyA9IG9wdGlvbnMuZXh0cmFDb25maWcgPz8ge307XG5cbiAgICAgICAgdGhpcy5jb25maWdGaWxlUGF0aCA9IG9wdGlvbnMuY29uZmlnRmlsZVBhdGggPz8gXCJ2aXRlc3QuY29uZmlnLnRzXCI7XG4gICAgICAgIHRoaXMuaW5jbHVkZSA9IG5ldyBTZXQob3B0aW9ucy5jb25maWc/LmluY2x1ZGUgPz8gW1wiKiovKi57dGVzdCxzcGVjfS4/KGN8bSlbanRdcz8oeClcIl0pO1xuICAgICAgICB0aGlzLmV4Y2x1ZGUgPSBuZXcgU2V0KFxuICAgICAgICAgICAgb3B0aW9ucy5jb25maWc/LmV4Y2x1ZGUgPz8gW1xuICAgICAgICAgICAgICAgIFwiKiovbm9kZV9tb2R1bGVzLyoqXCIsXG4gICAgICAgICAgICAgICAgXCIqKi9kaXN0LyoqXCIsXG4gICAgICAgICAgICAgICAgXCIqKi9jeXByZXNzLyoqXCIsXG4gICAgICAgICAgICAgICAgXCIqKi8ue2lkZWEsZ2l0LGNhY2hlLG91dHB1dCx0ZW1wfS8qKlwiLFxuICAgICAgICAgICAgICAgIFwiKiove2thcm1hLHJvbGx1cCx3ZWJwYWNrLHZpdGUsdml0ZXN0LGplc3QsYXZhLGJhYmVsLG55YyxjeXByZXNzLHRzdXAsYnVpbGQsZXNsaW50LHByZXR0aWVyfS5jb25maWcuKlwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pc29sYXRlID0gb3B0aW9ucy5jb25maWc/Lmlzb2xhdGUgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5wb29sID0gb3B0aW9ucy5jb25maWc/LnBvb2wgPz8gUG9vbC5GT1JLUztcbiAgICAgICAgdGhpcy5jb3ZlcmFnZUVuYWJsZWQgPSBvcHRpb25zLmNvbmZpZz8uY292ZXJhZ2VFbmFibGVkID8/IHRydWU7XG4gICAgICAgIHRoaXMudHlwZWNoZWNrRW5hYmxlZCA9IG9wdGlvbnMuY29uZmlnPy50eXBlY2hlY2tFbmFibGVkID8/IHRoaXMuaXNUeXBlc2NyaXB0UHJvamVjdCgpO1xuICAgICAgICB0aGlzLnR5cGVjaGVja0NoZWNrZXIgPSBvcHRpb25zLmNvbmZpZz8udHlwZWNoZWNrQ2hlY2tlciA/PyBcInRzYyAtLW5vRW1pdFwiO1xuICAgICAgICB0aGlzLnR5cGVjaGVja1RzY29uZmlnID0gb3B0aW9ucy5jb25maWc/LnR5cGVjaGVja1RzY29uZmlnID8/IHRzY29uZmlnRGV2UGF0aChwcm9qZWN0KTtcbiAgICAgICAgdGhpcy5wYXNzV2l0aE5vVGVzdHMgPSBvcHRpb25zLmNvbmZpZz8ucGFzc1dpdGhOb1Rlc3RzID8/IHRydWU7XG4gICAgICAgIHRoaXMuYmFpbCA9IG9wdGlvbnMuY29uZmlnPy5iYWlsID8/IDA7XG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBvcHRpb25zLmNvbmZpZz8uZW52aXJvbm1lbnQgPz8gRW52aXJvbm1lbnQuTk9ERTtcbiAgICAgICAgdGhpcy5nbG9iYWxzID0gb3B0aW9ucy5jb25maWc/Lmdsb2JhbHMgPz8gZmFsc2U7XG4gICAgICAgIHRoaXMuY292ZXJhZ2VQcm92aWRlciA9IG9wdGlvbnMuY29uZmlnPy5jb3ZlcmFnZVByb3ZpZGVyID8/IENvdmVyYWdlUHJvdmlkZXIuVjg7XG4gICAgICAgIHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMgPSBvcHRpb25zLmNvbmZpZz8uY292ZXJhZ2VSZXBvcnRlcnMgPz8gW0NvdmVyYWdlUmVwb3J0ZXIuVEVYVCwgQ292ZXJhZ2VSZXBvcnRlci5MQ09WXTtcbiAgICAgICAgdGhpcy5jb3ZlcmFnZURpcmVjdG9yeSA9IG9wdGlvbnMuY29uZmlnPy5jb3ZlcmFnZURpcmVjdG9yeSA/PyBcImNvdmVyYWdlXCI7XG4gICAgICAgIHRoaXMudmVyc2lvbiA9IG9wdGlvbnMudml0ZXN0VmVyc2lvbiA/PyBcIl40XCI7XG4gICAgICAgIHRoaXMudXBkYXRlU25hcHNob3RzID0gb3B0aW9ucy5jb25maWc/LnVwZGF0ZVNuYXBzaG90cyA/PyB0cnVlO1xuICAgICAgICB0aGlzLnByaW50Q29uc29sZVRyYWNlID0gb3B0aW9ucy5jb25maWc/LnByaW50Q29uc29sZVRyYWNlID8/IHRydWU7XG4gICAgICAgIHRoaXMuc2xvd1Rlc3RUaHJlc2hvbGQgPSBvcHRpb25zLmNvbmZpZz8uc2xvd1Rlc3RUaHJlc2hvbGQgPz8gMzAwO1xuXG4gICAgICAgIHByb2plY3QuYWRkRGV2RGVwcyhgdml0ZXN0QCR7dGhpcy52ZXJzaW9ufWApO1xuICAgICAgICB0aGlzLmNvbmZpZ3VyZUNvdmVyYWdlUHJvdmlkZXIodGhpcy5jb3ZlcmFnZVByb3ZpZGVyKTtcblxuICAgICAgICBpZiAodGhpcy5nbG9iYWxzICYmIHRoaXMuaXNUeXBlc2NyaXB0UHJvamVjdCgpICYmIHRoaXMucHJvamVjdC50cnlGaW5kT2JqZWN0RmlsZSh0aGlzLnR5cGVjaGVja1RzY29uZmlnKSkge1xuICAgICAgICAgICAgdGhpcy5jb25maWd1cmVHbG9iYWxzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb3ZlcmFnZURpcmVjdG9yeVBhdGggPSBwYXRoLnBvc2l4LmpvaW4oXCIvXCIsIHRoaXMuY292ZXJhZ2VEaXJlY3RvcnksIFwiL1wiKTtcbiAgICAgICAgcHJvamVjdC5ucG1pZ25vcmU/LmV4Y2x1ZGUoY292ZXJhZ2VEaXJlY3RvcnlQYXRoKTtcbiAgICAgICAgcHJvamVjdC5naXRpZ25vcmUuZXhjbHVkZShjb3ZlcmFnZURpcmVjdG9yeVBhdGgpO1xuXG4gICAgICAgIHRoaXMuYWRkVGVzdENvbW1hbmQoKTtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG5cbiAgICAgICAgaWYgKHByb2plY3QgaW5zdGFuY2VvZiBjZGsuSnNpaVByb2plY3QgfHwgcHJvamVjdCBpbnN0YW5jZW9mIGF3c2Nkay5Bd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5KSB7XG4gICAgICAgICAgICBwcm9qZWN0Lm5wbWlnbm9yZT8uYWRkUGF0dGVybnMoXCJ2aXRlc3QuY29uZmlnLnRzXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHByZVN5bnRoZXNpemUoKSB7XG4gICAgICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiB0aGlzLnByb2plY3QuY29tcG9uZW50cykge1xuICAgICAgICAgICAgaWYgKGNvbXBvbmVudCBpbnN0YW5jZW9mIEplc3QpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ2aXRlc3QgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBqZXN0XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEluY2x1ZGUocGF0dGVybjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5jbHVkZS5hZGQocGF0dGVybik7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRFeGNsdWRlKHBhdHRlcm46IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4Y2x1ZGUuYWRkKHBhdHRlcm4pO1xuICAgICAgICB0aGlzLnN5bnRoZXNpemVDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uZmlndXJlRW52aXJvbm1lbnQoZW52aXJvbm1lbnQ6IEVudmlyb25tZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbmZpZ3VyZUNvdmVyYWdlUHJvdmlkZXIocHJvdmlkZXI6IENvdmVyYWdlUHJvdmlkZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXJQYWNrYWdlcyA9IHtcbiAgICAgICAgICAgIFtDb3ZlcmFnZVByb3ZpZGVyLlY4XTogYEB2aXRlc3QvY292ZXJhZ2UtdjhAJHt0aGlzLnZlcnNpb259YCxcbiAgICAgICAgICAgIFtDb3ZlcmFnZVByb3ZpZGVyLklTVEFOQlVMXTogYEB2aXRlc3QvY292ZXJhZ2UtaXN0YW5idWxAJHt0aGlzLnZlcnNpb259YCxcbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyUGFja2FnZSBvZiBPYmplY3QudmFsdWVzKHByb3ZpZGVyUGFja2FnZXMpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdC5kZXBzLnJlbW92ZURlcGVuZGVuY3kocHJvdmlkZXJQYWNrYWdlKTtcbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm9qZWN0LmRlcHMuYWRkRGVwZW5kZW5jeShwcm92aWRlclBhY2thZ2VzW3Byb3ZpZGVyXSwgRGVwZW5kZW5jeVR5cGUuREVWRU5WKTtcbiAgICAgICAgdGhpcy5jb3ZlcmFnZVByb3ZpZGVyID0gcHJvdmlkZXI7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maWd1cmVDb3ZlcmFnZVJlcG9ydGVycyhyZXBvcnRlcnM6IEFycmF5PENvdmVyYWdlUmVwb3J0ZXI+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMgPSByZXBvcnRlcnM7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maWd1cmVHbG9iYWxzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVRzQ29uZmlnKCk7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVHNDb25maWcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRzY29uZmlnID0gdGhpcy5wcm9qZWN0LnRyeUZpbmRPYmplY3RGaWxlKHRoaXMudHlwZWNoZWNrVHNjb25maWcpO1xuXG4gICAgICAgIGlmICghdHNjb25maWcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInVuYWJsZSB0byBmaW5kIHRzY29uZmlnXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHNjb25maWcuYWRkVG9BcnJheShcImNvbXBpbGVyT3B0aW9ucy50eXBlc1wiLCBcInZpdGVzdC9nbG9iYWxzXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNUeXBlc2NyaXB0UHJvamVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvamVjdC5kZXBzLnRyeUdldERlcGVuZGVuY3koXCJ0eXBlc2NyaXB0XCIpICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUZXN0Q29tbWFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9qZWN0LnRlc3RUYXNrLmV4ZWMoXCJ2aXRlc3QgcnVuXCIsIHtcbiAgICAgICAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB0ZXN0V2F0Y2ggPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChcInRlc3Q6d2F0Y2hcIik7XG4gICAgICAgIGlmICghdGVzdFdhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLnByb2plY3QuYWRkVGFzayhcInRlc3Q6d2F0Y2hcIiwge1xuICAgICAgICAgICAgICAgIGV4ZWM6IFwidml0ZXN0IHdhdGNoXCIsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRlc3RVcGRhdGVTbmFwc2hvdHMgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChcInRlc3Q6dXBkYXRlXCIpO1xuICAgICAgICBpZiAoIXRlc3RVcGRhdGVTbmFwc2hvdHMpIHtcbiAgICAgICAgICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKFwidGVzdDp1cGRhdGVcIiwge1xuICAgICAgICAgICAgICAgIGV4ZWM6IFwidml0ZXN0IC0tdXBkYXRlXCIsXG4gICAgICAgICAgICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc3ludGhlc2l6ZUNvbmZpZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcm9qZWN0LnRyeVJlbW92ZUZpbGUodGhpcy5jb25maWdGaWxlUGF0aCk7XG5cbiAgICAgICAgbmV3IFRleHRGaWxlKHRoaXMsIHRoaXMuY29uZmlnRmlsZVBhdGgsIHtcbiAgICAgICAgICAgIGxpbmVzOiB0aGlzLnJlbmRlckNvbmZpZygpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNvbmZpZygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgcHJvamVjdCA9IHRoaXMucHJvamVjdCBhcyBOb2RlUHJvamVjdDtcbiAgICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBwcm9qZWN0LnBhY2thZ2UucGFja2FnZU5hbWU7XG4gICAgICAgIGNvbnN0IGRlZmluZUNvbmZpZ0ltcG9ydCA9XG4gICAgICAgICAgICBwYWNrYWdlTmFtZSA9PT0gXCJAbmlrb3ZpcnRhbGEvcHJvamVuLWNvbnN0cnVjdHNcIlxuICAgICAgICAgICAgICAgID8gJ2ltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCIuL2xpYi92aXRlc3QtZGVmaW5lLWNvbmZpZ1wiOydcbiAgICAgICAgICAgICAgICA6ICdpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwiQG5pa292aXJ0YWxhL3Byb2plbi1jb25zdHJ1Y3RzL2xpYi92aXRlc3QtZGVmaW5lLWNvbmZpZ1wiOyc7XG5cbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgICAgICAgLi4udGhpcy5leHRyYUNvbmZpZyxcbiAgICAgICAgICAgIHRlc3Q6IGRlZXBNZXJnZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4odGhpcy5yZW5kZXJUZXN0T3B0aW9ucygpLCB0aGlzLmV4dHJhVGVzdENvbmZpZyksXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIFtkZWZpbmVDb25maWdJbXBvcnQsIFwiXCIsIGBleHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoJHtKU09OLnN0cmluZ2lmeShjb25maWcsIG51bGwsIDIpfSk7YF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJUZXN0T3B0aW9ucygpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBiYWlsOiB0aGlzLmJhaWwsXG4gICAgICAgICAgICBjb3ZlcmFnZToge1xuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMuY292ZXJhZ2VFbmFibGVkLFxuICAgICAgICAgICAgICAgIHByb3ZpZGVyOiB0aGlzLmNvdmVyYWdlUHJvdmlkZXIsXG4gICAgICAgICAgICAgICAgcmVwb3J0ZXI6IHRoaXMuY292ZXJhZ2VSZXBvcnRlcnMsXG4gICAgICAgICAgICAgICAgcmVwb3J0c0RpcmVjdG9yeTogdGhpcy5jb3ZlcmFnZURpcmVjdG9yeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudCxcbiAgICAgICAgICAgIGV4Y2x1ZGU6IEFycmF5LmZyb20odGhpcy5leGNsdWRlKSxcbiAgICAgICAgICAgIGdsb2JhbHM6IHRoaXMuZ2xvYmFscyxcbiAgICAgICAgICAgIGluY2x1ZGU6IEFycmF5LmZyb20odGhpcy5pbmNsdWRlKSxcbiAgICAgICAgICAgIGlzb2xhdGU6IHRoaXMuaXNvbGF0ZSxcbiAgICAgICAgICAgIHBhc3NXaXRoTm9UZXN0czogdGhpcy5wYXNzV2l0aE5vVGVzdHMsXG4gICAgICAgICAgICBwcmludENvbnNvbGVUcmFjZTogdGhpcy5wcmludENvbnNvbGVUcmFjZSxcbiAgICAgICAgICAgIHBvb2w6IHRoaXMucG9vbCxcbiAgICAgICAgICAgIHNsb3dUZXN0VGhyZXNob2xkOiB0aGlzLnNsb3dUZXN0VGhyZXNob2xkLFxuICAgICAgICAgICAgdHlwZWNoZWNrOiB7XG4gICAgICAgICAgICAgICAgZW5hYmxlZDogdGhpcy50eXBlY2hlY2tFbmFibGVkLFxuICAgICAgICAgICAgICAgIGNoZWNrZXI6IHRoaXMudHlwZWNoZWNrQ2hlY2tlcixcbiAgICAgICAgICAgICAgICB0c2NvbmZpZzogdGhpcy50eXBlY2hlY2tUc2NvbmZpZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGU6IHRoaXMudXBkYXRlU25hcHNob3RzLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
374
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvdml0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBOEI7QUFDOUIsZ0RBQWtDO0FBQ2xDLG1DQUFxQztBQUNyQyxvREFBaUQ7QUFDakQsMERBQXlEO0FBQ3pELHNEQUErRDtBQUMvRCxrREFBK0M7QUFDL0Msb0NBQXNEO0FBRXRELElBQVksV0EwQlg7QUExQkQsV0FBWSxXQUFXO0lBQ25COzs7O09BSUc7SUFDSCw0Q0FBNkIsQ0FBQTtJQUU3Qjs7OztPQUlHO0lBQ0gsc0NBQXVCLENBQUE7SUFFdkI7Ozs7T0FJRztJQUNILDhCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDRCQUFhLENBQUE7QUFDakIsQ0FBQyxFQTFCVyxXQUFXLDJCQUFYLFdBQVcsUUEwQnRCO0FBRUQsSUFBWSxJQW1DWDtBQW5DRCxXQUFZLElBQUk7SUFDWjs7Ozs7O09BTUc7SUFDSCx1QkFBZSxDQUFBO0lBRWY7Ozs7T0FJRztJQUNILDJCQUFtQixDQUFBO0lBRW5COzs7Ozs7OztPQVFHO0lBQ0gsMkJBQW1CLENBQUE7SUFFbkI7Ozs7O09BS0c7SUFDSCwrQkFBdUIsQ0FBQTtBQUMzQixDQUFDLEVBbkNXLElBQUksb0JBQUosSUFBSSxRQW1DZjtBQUVELElBQVksZ0JBY1g7QUFkRCxXQUFZLGdCQUFnQjtJQUN4Qjs7OztPQUlHO0lBQ0gseUNBQXFCLENBQUE7SUFFckI7Ozs7T0FJRztJQUNILDZCQUFTLENBQUE7QUFDYixDQUFDLEVBZFcsZ0JBQWdCLGdDQUFoQixnQkFBZ0IsUUFjM0I7QUFFRCxJQUFZLGdCQXlCWDtBQXpCRCxXQUFZLGdCQUFnQjtJQUN4Qjs7T0FFRztJQUNILHFDQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsaUNBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsaUNBQWEsQ0FB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QUMzQztZQUNELFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3pDLFNBQVMsRUFBRTtnQkFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtnQkFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2FBQ25DO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQy9CLENBQUM7SUFDTixDQUFDOztBQWxSTCx3QkFtUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBhd3NjZGssIGNkayB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJwcm9qZW4vbGliL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgRGVwZW5kZW5jeVR5cGUgfSBmcm9tIFwicHJvamVuL2xpYi9kZXBlbmRlbmNpZXNcIjtcbmltcG9ydCB7IEplc3QsIHR5cGUgTm9kZVByb2plY3QgfSBmcm9tIFwicHJvamVuL2xpYi9qYXZhc2NyaXB0XCI7XG5pbXBvcnQgeyBUZXh0RmlsZSB9IGZyb20gXCJwcm9qZW4vbGliL3RleHRmaWxlXCI7XG5pbXBvcnQgeyBkZWVwTWVyZ2UsIHRzY29uZmlnRGV2UGF0aCB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG5leHBvcnQgZW51bSBFbnZpcm9ubWVudCB7XG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIFZlcmNlbCdzIEVkZ2UgUnVudGltZSBWTS5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9lZGdlLXJ1bnRpbWUudmVyY2VsLmFwcC9wYWNrYWdlcy92bVxuICAgICAqL1xuICAgIEVER0VfUlVOVElNRSA9IFwiZWRnZS1ydW50aW1lXCIsXG5cbiAgICAvKipcbiAgICAgKiBSdW4gdGVzdHMgaW4gYGhhcHB5LWRvbWAgZW52aXJvbm1lbnQuXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jYXByaWNvcm44Ni9oYXBweS1kb21cbiAgICAgKi9cbiAgICBIQVBQWV9ET00gPSBcImhhcHB5LWRvbVwiLFxuXG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGBqc2RvbWAgZW52aXJvbm1lbnQuXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qc2RvbS9qc2RvbVxuICAgICAqL1xuICAgIEpTRE9NID0gXCJqc2RvbVwiLFxuXG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGEgTm9kZS5qcyBlbnZpcm9ubWVudC5cbiAgICAgKi9cbiAgICBOT0RFID0gXCJub2RlXCIsXG59XG5cbmV4cG9ydCBlbnVtIFBvb2wge1xuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBgbm9kZTpjaGlsZF9wcm9jZXNzYCB1c2luZyBmb3JrKClcbiAgICAgKlxuICAgICAqIFRlc3QgaXNvbGF0aW9uICh3aGVuIGVuYWJsZWQpIGlzIGRvbmUgYnkgc3Bhd25pbmcgYSBuZXcgY2hpbGQgcHJvY2VzcyBmb3IgZWFjaCB0ZXN0IGZpbGUuXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvY2hpbGRfcHJvY2Vzcy5odG1sI2NoaWxkX3Byb2Nlc3Nmb3JrbW9kdWxlcGF0aC1hcmdzLW9wdGlvbnNcbiAgICAgKi9cbiAgICBGT1JLUyA9IFwiZm9ya3NcIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBgbm9kZTp3b3JrZXJfdGhyZWFkc2AuXG4gICAgICpcbiAgICAgKiBUZXN0IGlzb2xhdGlvbiAod2hlbiBlbmFibGVkKSBpcyBkb25lIGJ5IHNwYXduaW5nIGEgbmV3IHRocmVhZCBmb3IgZWFjaCB0ZXN0IGZpbGUuXG4gICAgICovXG4gICAgVEhSRUFEUyA9IFwidGhyZWFkc1wiLFxuXG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGlzb2xhdGVkIGBub2RlOnZtYC5cbiAgICAgKlxuICAgICAqIFRlc3QgZmlsZXMgYXJlIHJ1biBwYXJhbGxlbCB1c2luZyBgbm9kZTpjaGlsZF9wcm9jZXNzYCBmb3JrKClcbiAgICAgKlxuICAgICAqIFRoaXMgbWFrZXMgdGVzdHMgcnVuIGZhc3RlciwgYnV0IFZNIG1vZHVsZSBpcyB1bnN0YWJsZS4gWW91ciB0ZXN0cyBtaWdodCBsZWFrIG1lbW9yeS5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9jaGlsZF9wcm9jZXNzLmh0bWwjY2hpbGRfcHJvY2Vzc2Zvcmttb2R1bGVwYXRoLWFyZ3Mtb3B0aW9uc1xuICAgICAqL1xuICAgIFZNRk9SS1MgPSBcInZtZm9ya3NcIixcblxuICAgIC8qKlxuICAgICAqIFJ1biB0ZXN0cyBpbiBpc29sYXRlZCBgbm9kZTp2bWAuXG4gICAgICogVGVzdCBmaWxlcyBhcmUgcnVuIHBhcmFsbGVsIHVzaW5nIGBub2RlOndvcmtlcl90aHJlYWRzYC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWFrZXMgdGVzdHMgcnVuIGZhc3RlciwgYnV0IFZNIG1vZHVsZSBpcyB1bnN0YWJsZS4gWW91ciB0ZXN0cyBtaWdodCBsZWFrIG1lbW9yeS5cbiAgICAgKi9cbiAgICBWTVRIUkVBRFMgPSBcInZtdGhyZWFkc1wiLFxufVxuXG5leHBvcnQgZW51bSBDb3ZlcmFnZVByb3ZpZGVyIHtcbiAgICAvKipcbiAgICAgKiBQcm92aWRlIGNvdmVyYWdlIHJlcG9ydCB1c2luZyBpc3RhbmJ1bC5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9pc3RhbmJ1bC5qcy5vcmdcbiAgICAgKi9cbiAgICBJU1RBTkJVTCA9IFwiaXN0YW5idWxcIixcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgY292ZXJhZ2UgcmVwb3J0cyB1c2luZyB2OC5cbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly92OC5kZXYvYmxvZy9qYXZhc2NyaXB0LWNvZGUtY292ZXJhZ2VcbiAgICAgKi9cbiAgICBWOCA9IFwidjhcIixcbn1cblxuZXhwb3J0IGVudW0gQ292ZXJhZ2VSZXBvcnRlciB7XG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgYGNsb3ZlcmAgcmVwb3J0LlxuICAgICAqL1xuICAgIENMT1ZFUiA9IFwiY2xvdmVyXCIsXG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBgSFRNTGAgcmVwb3J0LlxuICAgICAqL1xuICAgIEhUTUwgPSBcImh0bWxcIixcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGBKU09OYCByZXBvcnQuXG4gICAgICovXG4gICAgSlNPTiA9IFwianNvblwiLFxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgYExDT1ZgIHJlcG9ydC5cbiAgICAgKi9cbiAgICBMQ09WID0gXCJsY292XCIsXG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBgdGV4dGAgcmVwb3J0LlxuICAgICAqL1xuICAgIFRFWFQgPSBcInRleHRcIixcbn1cblxuLyoqXG4gKiBWaXRlc3QgQ29uZmlnLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXRlc3RDb25maWdPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgZ2xvYiBwYXR0ZXJucyB0aGF0IG1hdGNoIHlvdXIgdGVzdCBmaWxlcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gVml0ZXN0J3MgYGNvbmZpZ0RlZmF1bHRzLmluY2x1ZGVgXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNpbmNsdWRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW5jbHVkZT86IEFycmF5PHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBBIGxpc3Qgb2YgZ2xvYiBwYXR0ZXJucyB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIHlvdXIgdGVzdCBmaWxlcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gVml0ZXN0J3MgYGNvbmZpZ0RlZmF1bHRzLmV4Y2x1ZGVgXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNleGNsdWRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZXhjbHVkZT86IEFycmF5PHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW52aXJvbm1lbnQgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRlc3RpbmcuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcIm5vZGVcIlxuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jZW52aXJvbm1lbnRcbiAgICAgKi9cbiAgICByZWFkb25seSBlbnZpcm9ubWVudD86IEVudmlyb25tZW50O1xuXG4gICAgLyoqXG4gICAgICogUnVuIHRlc3RzIGluIGFuIGlzb2xhdGVkIGVudmlyb25tZW50LiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHZtVGhyZWFkcyBwb29sLlxuICAgICAqXG4gICAgICogRGlzYWJsaW5nIHRoaXMgb3B0aW9uIG1pZ2h0IGltcHJvdmUgcGVyZm9ybWFuY2UgaWYgeW91ciBjb2RlIGRvZXNuJ3QgcmVseSBvbiBzaWRlIGVmZmVjdHMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNpc29sYXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXNvbGF0ZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBQb29sIHVzZWQgdG8gcnVuIHRlc3RzIGluLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJmb3Jrc1wiXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNwb29sXG4gICAgICovXG4gICAgcmVhZG9ubHkgcG9vbD86IFBvb2w7XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhcGlzIGdsb2JhbGx5LiBJZiB5b3UgcHJlZmVyIHRvIHVzZSB0aGUgQVBJcyBnbG9iYWxseSBsaWtlIEplc3QsIHNldCB0byBgdHJ1ZWAuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jZ2xvYmFsc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGdsb2JhbHM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQ292ZXJhZ2UgZW5hYmxlZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2NvdmVyYWdlLWVuYWJsZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBjb3ZlcmFnZUVuYWJsZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQ292ZXJhZ2UgcHJvdmlkZXIgdHlwZS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwidjhcIlxuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jY292ZXJhZ2UtcHJvdmlkZXJcbiAgICAgKi9cbiAgICByZWFkb25seSBjb3ZlcmFnZVByb3ZpZGVyPzogQ292ZXJhZ2VQcm92aWRlcjtcblxuICAgIC8qKlxuICAgICAqIENvdmVyYWdlIHJlcG9ydGVycy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdbXCJ0ZXh0XCIsIFwibGNvdlwiXSdcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2NvdmVyYWdlLXJlcG9ydGVyXG4gICAgICovXG4gICAgcmVhZG9ubHkgY292ZXJhZ2VSZXBvcnRlcnM/OiBBcnJheTxDb3ZlcmFnZVJlcG9ydGVyPjtcblxuICAgIC8qKlxuICAgICAqIENvdmVyYWdlIG91dHB1dCBkaXJlY3RvcnkuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcImNvdmVyYWdlXCJcbiAgICAgKi9cbiAgICByZWFkb25seSBjb3ZlcmFnZURpcmVjdG9yeT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEVuYWJsZSB0eXBlY2hlY2tpbmcgYWxvbmdzaWRlIHlvdXIgcmVndWxhciB0ZXN0cy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWUgKGZvciBUeXBlU2NyaXB0IHByb2plY3RzKVxuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jdHlwZWNoZWNrLWVuYWJsZWRcbiAgICAgKi9cbiAgICByZWFkb25seSB0eXBlY2hlY2tFbmFibGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRvb2wgdG8gdXNlIGZvciB0eXBlIGNoZWNraW5nLiBDaGVja2VyIHNob3VsZCBpbXBsZW1lbnQgdGhlIHNhbWUgb3V0cHV0IGZvcm1hdCBhcyBgdHNjYC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwidHNjIC0tbm9FbWl0XCJcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI3R5cGVjaGVjay1jaGVja2VyXG4gICAgICovXG4gICAgcmVhZG9ubHkgdHlwZWNoZWNrQ2hlY2tlcj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFBhdGggdG8gY3VzdG9tIHRzY29uZmlnLCByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCByb290LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSB0aGUgcHJvamVjdCdzIGRldmVsb3BtZW50IHRzY29uZmlnIChlLmcuIFwidGVzdC90c2NvbmZpZy5qc29uXCIpXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyN0eXBlY2hlY2stdHNjb25maWdcbiAgICAgKi9cbiAgICByZWFkb25seSB0eXBlY2hlY2tUc2NvbmZpZz86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFZpdGVzdCB3aWxsIG5vdCBmYWlsLCBpZiBubyB0ZXN0cyB3aWxsIGJlIGZvdW5kLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy8jcGFzc3dpdGhub3Rlc3RzXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGFzc1dpdGhOb1Rlc3RzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFN0b3AgcnVubmluZyB0ZXN0cyBhZnRlciBjZXJ0YWluIG51bWJlciBvZiBmYWlsdXJlcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKiBAc2VlIGh0dHBzOi8vdml0ZXN0LmRldi9jb25maWcvI2JhaWxcbiAgICAgKi9cbiAgICByZWFkb25seSBiYWlsPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHNuYXBzaG90IGZpbGVzLiBUaGlzIHdpbGwgdXBkYXRlIGFsbCBjaGFuZ2VkIHNuYXBzaG90cyBhbmQgZGVsZXRlIG9ic29sZXRlIG9uZXMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvZ3VpZGUvc25hcHNob3QuaHRtbCN1cGRhdGluZy1zbmFwc2hvdHNcbiAgICAgKi9cbiAgICByZWFkb25seSB1cGRhdGVTbmFwc2hvdHM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQWx3YXlzIHByaW50IGNvbnNvbGUgdHJhY2VzIHdoZW4gY2FsbGluZyBhbnkgY29uc29sZSBtZXRob2QuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNjb25zb2xldHJhY2VcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmludENvbnNvbGVUcmFjZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhZnRlciB3aGljaCBhIHRlc3Qgb3Igc3VpdGUgaXMgY29uc2lkZXJlZCBzbG93LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgMzAwXG4gICAgICogQHNlZSBodHRwczovL3ZpdGVzdC5kZXYvY29uZmlnLyNzbG93dGVzdHRocmVzaG9sZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNsb3dUZXN0VGhyZXNob2xkPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpdGVzdE9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIENvbmZpZyBmaWxlIHBhdGguXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcInZpdGVzdC5jb25maWcudHNcIlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbCBjb25maWcgb3B0aW9ucy5cbiAgICAgKi9cbiAgICByZWFkb25seSBjb25maWc/OiBWaXRlc3RDb25maWdPcHRpb25zO1xuXG4gICAgLyoqXG4gICAgICogVml0ZXN0IHZlcnNpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcIl40XCJcbiAgICAgKi9cbiAgICByZWFkb25seSB2aXRlc3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQWRkaXRpb25hbCBgdGVzdGAgb3B0aW9ucyBmb3Igc2V0dGluZ3MgdGhhdCBgY29uZmlnYCBkb2Vzbid0IGNvdmVyLCBzdWNoIGFzIGBzZXR1cEZpbGVzYCBvciBgZXhwZWN0YC5cbiAgICAgKlxuICAgICAqIERlZXAtbWVyZ2VkIG92ZXIgdGhlIG9wdGlvbnMgZ2VuZXJhdGVkIGZyb20gYGNvbmZpZ2A6IG9iamVjdHMgYXJlIG1lcmdlZCwgb3RoZXIgdmFsdWVzIChpbmNsdWRpbmdcbiAgICAgKiBhcnJheXMpIHJlcGxhY2UgdGhlIGdlbmVyYXRlZCB2YWx1ZS4gVmFsdWVzIGFyZSByZW5kZXJlZCBhcyBKU09OLCBzbyB0aGV5IG11c3QgYmUgSlNPTi1zZXJpYWxpemFibGVcbiAgICAgKiAobm8gZnVuY3Rpb25zIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbnMpLlxuICAgICAqXG4gICAgICogQGV4YW1wbGUgeyBzZXR1cEZpbGVzOiBbXCJ0ZXN0L3NldHVwLnRzXCJdLCBleHBlY3Q6IHsgcmVxdWlyZUFzc2VydGlvbnM6IHRydWUgfSB9XG4gICAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIHRlc3Qgb3B0aW9uc1xuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy9cbiAgICAgKi9cbiAgICByZWFkb25seSBleHRyYVRlc3RDb25maWc/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfTtcblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwgdG9wLWxldmVsIGNvbmZpZyBvcHRpb25zLCBuZXh0IHRvIGB0ZXN0YCwgc3VjaCBhcyBgcmVzb2x2ZWAuXG4gICAgICpcbiAgICAgKiBWYWx1ZXMgYXJlIHJlbmRlcmVkIGFzIEpTT04sIHNvIHRoZXkgbXVzdCBiZSBKU09OLXNlcmlhbGl6YWJsZSAobm8gZnVuY3Rpb25zIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbnMsXG4gICAgICogd2hpY2ggcnVsZXMgb3V0IHBsdWdpbnMpLiBVc2UgYGV4dHJhVGVzdENvbmZpZ2AgZm9yIGB0ZXN0YCBvcHRpb25zLlxuICAgICAqXG4gICAgICogQGV4YW1wbGUgeyByZXNvbHZlOiB7IGFsaWFzOiB7IFwiQFwiOiBcIi9zcmNcIiB9IH0gfVxuICAgICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCB0b3AtbGV2ZWwgb3B0aW9uc1xuICAgICAqIEBzZWUgaHR0cHM6Ly92aXRlc3QuZGV2L2NvbmZpZy9cbiAgICAgKi9cbiAgICByZWFkb25seSBleHRyYUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xufVxuXG5leHBvcnQgY2xhc3MgVml0ZXN0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IE5vZGVQcm9qZWN0KTogVml0ZXN0IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgaXNWaXRlc3QgPSAoYzogQ29tcG9uZW50KTogYyBpcyBWaXRlc3QgPT4gYyBpbnN0YW5jZW9mIFZpdGVzdDtcbiAgICAgICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzVml0ZXN0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ0ZpbGVQYXRoOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmNsdWRlOiBTZXQ8c3RyaW5nPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4Y2x1ZGU6IFNldDxzdHJpbmc+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNvbGF0ZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvb2w6IFBvb2w7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3ZlcmFnZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSByZWFkb25seSB0eXBlY2hlY2tFbmFibGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHlwZWNoZWNrQ2hlY2tlcjogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHlwZWNoZWNrVHNjb25maWc6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhc3NXaXRoTm9UZXN0czogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJhaWw6IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVwZGF0ZVNuYXBzaG90czogYm9vbGVhbjtcbiAgICBwcml2YXRlIGVudmlyb25tZW50OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBnbG9iYWxzOiBib29sZWFuO1xuICAgIHByaXZhdGUgY292ZXJhZ2VQcm92aWRlcjogQ292ZXJhZ2VQcm92aWRlcjtcbiAgICBwcml2YXRlIGNvdmVyYWdlUmVwb3J0ZXJzOiBBcnJheTxDb3ZlcmFnZVJlcG9ydGVyPjtcbiAgICBwcml2YXRlIGNvdmVyYWdlRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmludENvbnNvbGVUcmFjZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNsb3dUZXN0VGhyZXNob2xkOiBudW1iZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRyYVRlc3RDb25maWc6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXh0cmFDb25maWc6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvamVjdDogTm9kZVByb2plY3QsIG9wdGlvbnM6IFZpdGVzdE9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgICAgICBpZiAob3B0aW9ucy5leHRyYUNvbmZpZyAmJiBcInRlc3RcIiBpbiBvcHRpb25zLmV4dHJhQ29uZmlnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ2aXRlc3QgZXh0cmFDb25maWcgbXVzdCBub3QgY29udGFpbiBgdGVzdGAsIHVzZSBleHRyYVRlc3RDb25maWcgZm9yIHRlc3Qgb3B0aW9uc1wiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXh0cmFUZXN0Q29uZmlnID0gb3B0aW9ucy5leHRyYVRlc3RDb25maWcgPz8ge307XG4gICAgICAgIHRoaXMuZXh0cmFDb25maWcgPSBvcHRpb25zLmV4dHJhQ29uZmlnID8/IHt9O1xuXG4gICAgICAgIHRoaXMuY29uZmlnRmlsZVBhdGggPSBvcHRpb25zLmNvbmZpZ0ZpbGVQYXRoID8/IFwidml0ZXN0LmNvbmZpZy50c1wiO1xuICAgICAgICB0aGlzLmluY2x1ZGUgPSBuZXcgU2V0KG9wdGlvbnMuY29uZmlnPy5pbmNsdWRlID8/IFtcIioqLyoue3Rlc3Qsc3BlY30uPyhjfG0pW2p0XXM/KHgpXCJdKTtcbiAgICAgICAgdGhpcy5leGNsdWRlID0gbmV3IFNldChcbiAgICAgICAgICAgIG9wdGlvbnMuY29uZmlnPy5leGNsdWRlID8/IFtcbiAgICAgICAgICAgICAgICBcIioqL25vZGVfbW9kdWxlcy8qKlwiLFxuICAgICAgICAgICAgICAgIFwiKiovZGlzdC8qKlwiLFxuICAgICAgICAgICAgICAgIFwiKiovY3lwcmVzcy8qKlwiLFxuICAgICAgICAgICAgICAgIFwiKiovLntpZGVhLGdpdCxjYWNoZSxvdXRwdXQsdGVtcH0vKipcIixcbiAgICAgICAgICAgICAgICBcIioqL3trYXJtYSxyb2xsdXAsd2VicGFjayx2aXRlLHZpdGVzdCxqZXN0LGF2YSxiYWJlbCxueWMsY3lwcmVzcyx0c3VwLGJ1aWxkLGVzbGludCxwcmV0dGllcn0uY29uZmlnLipcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaXNvbGF0ZSA9IG9wdGlvbnMuY29uZmlnPy5pc29sYXRlID8/IHRydWU7XG4gICAgICAgIHRoaXMucG9vbCA9IG9wdGlvbnMuY29uZmlnPy5wb29sID8/IFBvb2wuRk9SS1M7XG4gICAgICAgIHRoaXMuY292ZXJhZ2VFbmFibGVkID0gb3B0aW9ucy5jb25maWc/LmNvdmVyYWdlRW5hYmxlZCA/PyB0cnVlO1xuICAgICAgICB0aGlzLnR5cGVjaGVja0VuYWJsZWQgPSBvcHRpb25zLmNvbmZpZz8udHlwZWNoZWNrRW5hYmxlZCA/PyB0aGlzLmlzVHlwZXNjcmlwdFByb2plY3QoKTtcbiAgICAgICAgdGhpcy50eXBlY2hlY2tDaGVja2VyID0gb3B0aW9ucy5jb25maWc/LnR5cGVjaGVja0NoZWNrZXIgPz8gXCJ0c2MgLS1ub0VtaXRcIjtcbiAgICAgICAgdGhpcy50eXBlY2hlY2tUc2NvbmZpZyA9IG9wdGlvbnMuY29uZmlnPy50eXBlY2hlY2tUc2NvbmZpZyA/PyB0c2NvbmZpZ0RldlBhdGgocHJvamVjdCk7XG4gICAgICAgIHRoaXMucGFzc1dpdGhOb1Rlc3RzID0gb3B0aW9ucy5jb25maWc/LnBhc3NXaXRoTm9UZXN0cyA/PyB0cnVlO1xuICAgICAgICB0aGlzLmJhaWwgPSBvcHRpb25zLmNvbmZpZz8uYmFpbCA/PyAwO1xuICAgICAgICB0aGlzLmVudmlyb25tZW50ID0gb3B0aW9ucy5jb25maWc/LmVudmlyb25tZW50ID8/IEVudmlyb25tZW50Lk5PREU7XG4gICAgICAgIHRoaXMuZ2xvYmFscyA9IG9wdGlvbnMuY29uZmlnPy5nbG9iYWxzID8/IGZhbHNlO1xuICAgICAgICB0aGlzLmNvdmVyYWdlUHJvdmlkZXIgPSBvcHRpb25zLmNvbmZpZz8uY292ZXJhZ2VQcm92aWRlciA/PyBDb3ZlcmFnZVByb3ZpZGVyLlY4O1xuICAgICAgICB0aGlzLmNvdmVyYWdlUmVwb3J0ZXJzID0gb3B0aW9ucy5jb25maWc/LmNvdmVyYWdlUmVwb3J0ZXJzID8/IFtDb3ZlcmFnZVJlcG9ydGVyLlRFWFQsIENvdmVyYWdlUmVwb3J0ZXIuTENPVl07XG4gICAgICAgIHRoaXMuY292ZXJhZ2VEaXJlY3RvcnkgPSBvcHRpb25zLmNvbmZpZz8uY292ZXJhZ2VEaXJlY3RvcnkgPz8gXCJjb3ZlcmFnZVwiO1xuICAgICAgICB0aGlzLnZlcnNpb24gPSBvcHRpb25zLnZpdGVzdFZlcnNpb24gPz8gXCJeNFwiO1xuICAgICAgICB0aGlzLnVwZGF0ZVNuYXBzaG90cyA9IG9wdGlvbnMuY29uZmlnPy51cGRhdGVTbmFwc2hvdHMgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmludENvbnNvbGVUcmFjZSA9IG9wdGlvbnMuY29uZmlnPy5wcmludENvbnNvbGVUcmFjZSA/PyB0cnVlO1xuICAgICAgICB0aGlzLnNsb3dUZXN0VGhyZXNob2xkID0gb3B0aW9ucy5jb25maWc/LnNsb3dUZXN0VGhyZXNob2xkID8/IDMwMDtcblxuICAgICAgICBwcm9qZWN0LmFkZERldkRlcHMoYHZpdGVzdEAke3RoaXMudmVyc2lvbn1gKTtcbiAgICAgICAgdGhpcy5jb25maWd1cmVDb3ZlcmFnZVByb3ZpZGVyKHRoaXMuY292ZXJhZ2VQcm92aWRlcik7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2xvYmFscyAmJiB0aGlzLmlzVHlwZXNjcmlwdFByb2plY3QoKSAmJiB0aGlzLnByb2plY3QudHJ5RmluZE9iamVjdEZpbGUodGhpcy50eXBlY2hlY2tUc2NvbmZpZykpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJlR2xvYmFscygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY292ZXJhZ2VEaXJlY3RvcnlQYXRoID0gcGF0aC5wb3NpeC5qb2luKFwiL1wiLCB0aGlzLmNvdmVyYWdlRGlyZWN0b3J5LCBcIi9cIik7XG4gICAgICAgIHByb2plY3QubnBtaWdub3JlPy5leGNsdWRlKGNvdmVyYWdlRGlyZWN0b3J5UGF0aCk7XG4gICAgICAgIHByb2plY3QuZ2l0aWdub3JlLmV4Y2x1ZGUoY292ZXJhZ2VEaXJlY3RvcnlQYXRoKTtcblxuICAgICAgICB0aGlzLmFkZFRlc3RDb21tYW5kKCk7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuXG4gICAgICAgIGlmIChwcm9qZWN0IGluc3RhbmNlb2YgY2RrLkpzaWlQcm9qZWN0IHx8IHByb2plY3QgaW5zdGFuY2VvZiBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeSkge1xuICAgICAgICAgICAgcHJvamVjdC5ucG1pZ25vcmU/LmFkZFBhdHRlcm5zKFwidml0ZXN0LmNvbmZpZy50c1wiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBwcmVTeW50aGVzaXplKCkge1xuICAgICAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgdGhpcy5wcm9qZWN0LmNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgaW5zdGFuY2VvZiBKZXN0KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidml0ZXN0IGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggamVzdFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJ1bnMgYWZ0ZXIgcHJvamVuJ3Mgc2FtcGxlIGNvZGUgY29tcG9uZW50LCB3aGljaCBpcyBhZGRlZCBpbiB0aGUgcHJvamVjdCBjb25zdHJ1Y3RvciBiZWZvcmVcbiAgICAgKiBhbnkgY29tcG9uZW50LCBzbyB0aGUgc2FtcGxlIHRlc3QgZXhpc3RzIGJ5IG5vdy4gYHBvc3RTeW50aGVzaXplYCB3b3VsZCBiZSB0b28gbGF0ZSB0byByZWx5XG4gICAgICogb246IHByb2plbiBza2lwcyBpdCB3aGVuIGBQUk9KRU5fRElTQUJMRV9QT1NUYCBpcyBzZXQuXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIHN5bnRoZXNpemUoKSB7XG4gICAgICAgIHN1cGVyLnN5bnRoZXNpemUoKTtcblxuICAgICAgICB0aGlzLmltcG9ydFZpdGVzdEluU2FtcGxlVGVzdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ha2VzIHRoZSBzYW1wbGUgdGVzdCBvZiBBV1MgQ0RLIGFwcHMgd29yayB3aXRoIFZpdGVzdC5cbiAgICAgKlxuICAgICAqIFByb2plbiB3cml0ZXMgYDx0ZXN0ZGlyPi88ZW50cnlwb2ludD4udGVzdC50c2AgZm9yIEFXUyBDREsgVHlwZVNjcmlwdCBhcHBzIHdoZW5ldmVyIHRoZSB0ZXN0XG4gICAgICogZGlyZWN0b3J5IGNvbnRhaW5zIG5vIFR5cGVTY3JpcHQgZmlsZXMuIFRoZSB0ZXN0IHVzZXMgdGhlIEplc3QgZ2xvYmFscyBgdGVzdGAgYW5kIGBleHBlY3RgLFxuICAgICAqIHdoaWNoIGRvbid0IGV4aXN0IHdpdGggVml0ZXN0IHVubGVzcyBgZ2xvYmFsc2AgaXMgZW5hYmxlZCwgc28gaW1wb3J0IHRoZW0gZnJvbSBgdml0ZXN0YC5cbiAgICAgKlxuICAgICAqIE9ubHkgYSBmaWxlIHRoYXQgc3RpbGwgbWF0Y2hlcyBwcm9qZW4ncyBzYW1wbGUgaXMgY2hhbmdlZCwgbmV2ZXIgYSB0ZXN0IHdyaXR0ZW4gYnkgaGFuZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGltcG9ydFZpdGVzdEluU2FtcGxlVGVzdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ2xvYmFscyB8fCAhKHRoaXMucHJvamVjdCBpbnN0YW5jZW9mIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJvamVjdCA9IHRoaXMucHJvamVjdDtcbiAgICAgICAgY29uc3QgZW50cnlwb2ludE5hbWUgPSBwYXRoLmJhc2VuYW1lKHByb2plY3QuYXBwRW50cnlwb2ludCwgXCIudHNcIik7XG4gICAgICAgIGNvbnN0IHRlc3RQYXRoID0gcGF0aC5qb2luKHByb2plY3Qub3V0ZGlyLCBwcm9qZWN0LnRlc3RkaXIsIGAke2VudHJ5cG9pbnROYW1lfS50ZXN0LnRzYCk7XG5cbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRlc3RQYXRoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2FtcGxlSW1wb3J0cyA9XG4gICAgICAgICAgICBcImltcG9ydCB7IEFwcCB9IGZyb20gJ2F3cy1jZGstbGliJztcXG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1xcblwiO1xuICAgICAgICBjb25zdCBjb250ZW50cyA9IGZzLnJlYWRGaWxlU3luYyh0ZXN0UGF0aCwgXCJ1dGYtOFwiKTtcblxuICAgICAgICBjb25zdCBpc1NhbXBsZSA9IGNvbnRlbnRzLnN0YXJ0c1dpdGgoc2FtcGxlSW1wb3J0cykgJiYgY29udGVudHMuaW5jbHVkZXMoXCJcXG50ZXN0KCdTbmFwc2hvdCcsICgpID0+IHtcIik7XG4gICAgICAgIGlmICghaXNTYW1wbGUgfHwgY29udGVudHMuaW5jbHVkZXMoXCJmcm9tICd2aXRlc3QnXCIpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgdGVzdFBhdGgsXG4gICAgICAgICAgICBjb250ZW50cy5yZXBsYWNlKHNhbXBsZUltcG9ydHMsIGAke3NhbXBsZUltcG9ydHN9aW1wb3J0IHsgZXhwZWN0LCB0ZXN0IH0gZnJvbSAndml0ZXN0JztcXG5gKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSW5jbHVkZShwYXR0ZXJuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmNsdWRlLmFkZChwYXR0ZXJuKTtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEV4Y2x1ZGUocGF0dGVybjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhjbHVkZS5hZGQocGF0dGVybik7XG4gICAgICAgIHRoaXMuc3ludGhlc2l6ZUNvbmZpZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maWd1cmVFbnZpcm9ubWVudChlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICAgICAgICB0aGlzLnN5bnRoZXNpemVDb25maWcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uZmlndXJlQ292ZXJhZ2VQcm92aWRlcihwcm92aWRlcjogQ292ZXJhZ2VQcm92aWRlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBwcm92aWRlclBhY2thZ2VzID0ge1xuICAgICAgICAgICAgW0NvdmVyYWdlUHJvdmlkZXIuVjhdOiBgQHZpdGVzdC9jb3ZlcmFnZS12OEAke3RoaXMudmVyc2lvbn1gLFxuICAgICAgICAgICAgW0NvdmVyYWdlUHJvdmlkZXIuSVNUQU5CVUxdOiBgQHZpdGVzdC9jb3ZlcmFnZS1pc3RhbmJ1bEAke3RoaXMudmVyc2lvbn1gLFxuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgcHJvdmlkZXJQYWNrYWdlIG9mIE9iamVjdC52YWx1ZXMocHJvdmlkZXJQYWNrYWdlcykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0LmRlcHMucmVtb3ZlRGVwZW5kZW5jeShwcm92aWRlclBhY2thZ2UpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLy8gaWdub3JlXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb2plY3QuZGVwcy5hZGREZXBlbmRlbmN5KHByb3ZpZGVyUGFja2FnZXNbcHJvdmlkZXJdLCBEZXBlbmRlbmN5VHlwZS5ERVZFTlYpO1xuICAgICAgICB0aGlzLmNvdmVyYWdlUHJvdmlkZXIgPSBwcm92aWRlcjtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbmZpZ3VyZUNvdmVyYWdlUmVwb3J0ZXJzKHJlcG9ydGVyczogQXJyYXk8Q292ZXJhZ2VSZXBvcnRlcj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3ZlcmFnZVJlcG9ydGVycyA9IHJlcG9ydGVycztcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbmZpZ3VyZUdsb2JhbHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVHNDb25maWcoKTtcbiAgICAgICAgdGhpcy5zeW50aGVzaXplQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUc0NvbmZpZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdHNjb25maWcgPSB0aGlzLnByb2plY3QudHJ5RmluZE9iamVjdEZpbGUodGhpcy50eXBlY2hlY2tUc2NvbmZpZyk7XG5cbiAgICAgICAgaWYgKCF0c2NvbmZpZykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5hYmxlIHRvIGZpbmQgdHNjb25maWdcIik7XG4gICAgICAgIH1cblxuICAgICAgICB0c2NvbmZpZy5hZGRUb0FycmF5KFwiY29tcGlsZXJPcHRpb25zLnR5cGVzXCIsIFwidml0ZXN0L2dsb2JhbHNcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1R5cGVzY3JpcHRQcm9qZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9qZWN0LmRlcHMudHJ5R2V0RGVwZW5kZW5jeShcInR5cGVzY3JpcHRcIikgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFRlc3RDb21tYW5kKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2plY3QudGVzdFRhc2suZXhlYyhcInZpdGVzdCBydW5cIiwge1xuICAgICAgICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHRlc3RXYXRjaCA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwidGVzdDp3YXRjaFwiKTtcbiAgICAgICAgaWYgKCF0ZXN0V2F0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKFwidGVzdDp3YXRjaFwiLCB7XG4gICAgICAgICAgICAgICAgZXhlYzogXCJ2aXRlc3Qgd2F0Y2hcIixcbiAgICAgICAgICAgICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGVzdFVwZGF0ZVNuYXBzaG90cyA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwidGVzdDp1cGRhdGVcIik7XG4gICAgICAgIGlmICghdGVzdFVwZGF0ZVNuYXBzaG90cykge1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soXCJ0ZXN0OnVwZGF0ZVwiLCB7XG4gICAgICAgICAgICAgICAgZXhlYzogXCJ2aXRlc3QgLS11cGRhdGVcIixcbiAgICAgICAgICAgICAgICByZWNlaXZlQXJnczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW50aGVzaXplQ29uZmlnKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2plY3QudHJ5UmVtb3ZlRmlsZSh0aGlzLmNvbmZpZ0ZpbGVQYXRoKTtcblxuICAgICAgICBuZXcgVGV4dEZpbGUodGhpcywgdGhpcy5jb25maWdGaWxlUGF0aCwge1xuICAgICAgICAgICAgbGluZXM6IHRoaXMucmVuZGVyQ29uZmlnKCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyQ29uZmlnKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy5wcm9qZWN0IGFzIE5vZGVQcm9qZWN0O1xuICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IHByb2plY3QucGFja2FnZS5wYWNrYWdlTmFtZTtcbiAgICAgICAgY29uc3QgZGVmaW5lQ29uZmlnSW1wb3J0ID1cbiAgICAgICAgICAgIHBhY2thZ2VOYW1lID09PSBcIkBuaWtvdmlydGFsYS9wcm9qZW4tY29uc3RydWN0c1wiXG4gICAgICAgICAgICAgICAgPyAnaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSBcIi4vbGliL3ZpdGVzdC1kZWZpbmUtY29uZmlnXCI7J1xuICAgICAgICAgICAgICAgIDogJ2ltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gXCJAbmlrb3ZpcnRhbGEvcHJvamVuLWNvbnN0cnVjdHMvbGliL3ZpdGVzdC1kZWZpbmUtY29uZmlnXCI7JztcblxuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmV4dHJhQ29uZmlnLFxuICAgICAgICAgICAgdGVzdDogZGVlcE1lcmdlPFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih0aGlzLnJlbmRlclRlc3RPcHRpb25zKCksIHRoaXMuZXh0cmFUZXN0Q29uZmlnKSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gW2RlZmluZUNvbmZpZ0ltcG9ydCwgXCJcIiwgYGV4cG9ydCBkZWZhdWx0IGRlZmluZUNvbmZpZygke0pTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgMil9KTtgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlclRlc3RPcHRpb25zKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGJhaWw6IHRoaXMuYmFpbCxcbiAgICAgICAgICAgIGNvdmVyYWdlOiB7XG4gICAgICAgICAgICAgICAgZW5hYmxlZDogdGhpcy5jb3ZlcmFnZUVuYWJsZWQsXG4gICAgICAgICAgICAgICAgcHJvdmlkZXI6IHRoaXMuY292ZXJhZ2VQcm92aWRlcixcbiAgICAgICAgICAgICAgICByZXBvcnRlcjogdGhpcy5jb3ZlcmFnZVJlcG9ydGVycyxcbiAgICAgICAgICAgICAgICByZXBvcnRzRGlyZWN0b3J5OiB0aGlzLmNvdmVyYWdlRGlyZWN0b3J5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50LFxuICAgICAgICAgICAgZXhjbHVkZTogQXJyYXkuZnJvbSh0aGlzLmV4Y2x1ZGUpLFxuICAgICAgICAgICAgZ2xvYmFsczogdGhpcy5nbG9iYWxzLFxuICAgICAgICAgICAgaW5jbHVkZTogQXJyYXkuZnJvbSh0aGlzLmluY2x1ZGUpLFxuICAgICAgICAgICAgaXNvbGF0ZTogdGhpcy5pc29sYXRlLFxuICAgICAgICAgICAgcGFzc1dpdGhOb1Rlc3RzOiB0aGlzLnBhc3NXaXRoTm9UZXN0cyxcbiAgICAgICAgICAgIHByaW50Q29uc29sZVRyYWNlOiB0aGlzLnByaW50Q29uc29sZVRyYWNlLFxuICAgICAgICAgICAgcG9vbDogdGhpcy5wb29sLFxuICAgICAgICAgICAgc2xvd1Rlc3RUaHJlc2hvbGQ6IHRoaXMuc2xvd1Rlc3RUaHJlc2hvbGQsXG4gICAgICAgICAgICB0eXBlY2hlY2s6IHtcbiAgICAgICAgICAgICAgICBlbmFibGVkOiB0aGlzLnR5cGVjaGVja0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgY2hlY2tlcjogdGhpcy50eXBlY2hlY2tDaGVja2VyLFxuICAgICAgICAgICAgICAgIHRzY29uZmlnOiB0aGlzLnR5cGVjaGVja1RzY29uZmlnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZTogdGhpcy51cGRhdGVTbmFwc2hvdHMsXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
package/lib/project-generator.js
CHANGED
|
@@ -428,7 +428,7 @@ class TypeScriptClassRenderer {
|
|
|
428
428
|
*/
|
|
429
429
|
class ProjectGenerator extends projen.Component {
|
|
430
430
|
options;
|
|
431
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.ProjectGenerator", version: "0.3.
|
|
431
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.ProjectGenerator", version: "0.3.82" };
|
|
432
432
|
renderer;
|
|
433
433
|
static enumGenerated = false;
|
|
434
434
|
/**
|
|
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
|
|
|
15
15
|
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
16
16
|
*/
|
|
17
17
|
class AwsCdkConstructLibraryProject extends projen_1.awscdk.AwsCdkConstructLibrary {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkConstructLibraryProject", version: "0.3.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkConstructLibraryProject", version: "0.3.82" };
|
|
19
19
|
/**
|
|
20
20
|
* @param options - Project configuration
|
|
21
21
|
*/
|
|
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
|
|
|
15
15
|
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
16
16
|
*/
|
|
17
17
|
class AwsCdkTypeScriptAppProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkTypeScriptAppProject", version: "0.3.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.AwsCdkTypeScriptAppProject", version: "0.3.82" };
|
|
19
19
|
/**
|
|
20
20
|
* @param options - Project configuration
|
|
21
21
|
*/
|
|
@@ -16,7 +16,7 @@ const utils_1 = require("../utils");
|
|
|
16
16
|
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
17
17
|
*/
|
|
18
18
|
class JsiiProject extends projen_1.cdk.JsiiProject {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.JsiiProject", version: "0.3.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.JsiiProject", version: "0.3.82" };
|
|
20
20
|
/**
|
|
21
21
|
* @param options - Project configuration
|
|
22
22
|
*/
|
|
@@ -15,7 +15,7 @@ const utils_1 = require("../utils");
|
|
|
15
15
|
* Extends Projen's base class with opinionated defaults and automatic component setup.
|
|
16
16
|
*/
|
|
17
17
|
class TypeScriptProject extends projen_1.typescript.TypeScriptProject {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeScriptProject", version: "0.3.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@nikovirtala/projen-constructs.TypeScriptProject", version: "0.3.82" };
|
|
19
19
|
/**
|
|
20
20
|
* @param options - Project configuration
|
|
21
21
|
*/
|