lerna-projen 0.1.699 → 0.1.700
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 +87 -39
- package/API.md +73 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +12 -4
- package/lib/types.d.ts +10 -0
- package/lib/types.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"immutable": true,
|
|
154
154
|
"locationInModule": {
|
|
155
155
|
"filename": "src/types.ts",
|
|
156
|
-
"line":
|
|
156
|
+
"line": 37
|
|
157
157
|
},
|
|
158
158
|
"name": "independentMode",
|
|
159
159
|
"optional": true,
|
|
@@ -161,6 +161,24 @@
|
|
|
161
161
|
"primitive": "boolean"
|
|
162
162
|
}
|
|
163
163
|
},
|
|
164
|
+
{
|
|
165
|
+
"abstract": true,
|
|
166
|
+
"docs": {
|
|
167
|
+
"remarks": "If not provided, defaults to running git command to find last release tag.\nThe reference that is stored in the environment variable could be:\na commit SHA, branch name, or tag name.",
|
|
168
|
+
"stability": "experimental",
|
|
169
|
+
"summary": "(experimental) Environment variable name to read the git reference from to be used as the base for the `since` option in lerna commands."
|
|
170
|
+
},
|
|
171
|
+
"immutable": true,
|
|
172
|
+
"locationInModule": {
|
|
173
|
+
"filename": "src/types.ts",
|
|
174
|
+
"line": 21
|
|
175
|
+
},
|
|
176
|
+
"name": "sinceGitReferenceEnvironmentVariableName",
|
|
177
|
+
"optional": true,
|
|
178
|
+
"type": {
|
|
179
|
+
"primitive": "string"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
164
182
|
{
|
|
165
183
|
"abstract": true,
|
|
166
184
|
"docs": {
|
|
@@ -189,7 +207,7 @@
|
|
|
189
207
|
"immutable": true,
|
|
190
208
|
"locationInModule": {
|
|
191
209
|
"filename": "src/types.ts",
|
|
192
|
-
"line":
|
|
210
|
+
"line": 52
|
|
193
211
|
},
|
|
194
212
|
"name": "taskCustomizations",
|
|
195
213
|
"optional": true,
|
|
@@ -212,7 +230,7 @@
|
|
|
212
230
|
"immutable": true,
|
|
213
231
|
"locationInModule": {
|
|
214
232
|
"filename": "src/types.ts",
|
|
215
|
-
"line":
|
|
233
|
+
"line": 29
|
|
216
234
|
},
|
|
217
235
|
"name": "useNx",
|
|
218
236
|
"optional": true,
|
|
@@ -230,7 +248,7 @@
|
|
|
230
248
|
"immutable": true,
|
|
231
249
|
"locationInModule": {
|
|
232
250
|
"filename": "src/types.ts",
|
|
233
|
-
"line":
|
|
251
|
+
"line": 45
|
|
234
252
|
},
|
|
235
253
|
"name": "useWorkspaces",
|
|
236
254
|
"optional": true,
|
|
@@ -257,7 +275,7 @@
|
|
|
257
275
|
},
|
|
258
276
|
"locationInModule": {
|
|
259
277
|
"filename": "src/index.ts",
|
|
260
|
-
"line":
|
|
278
|
+
"line": 79
|
|
261
279
|
},
|
|
262
280
|
"parameters": [
|
|
263
281
|
{
|
|
@@ -271,7 +289,7 @@
|
|
|
271
289
|
"kind": "class",
|
|
272
290
|
"locationInModule": {
|
|
273
291
|
"filename": "src/index.ts",
|
|
274
|
-
"line":
|
|
292
|
+
"line": 63
|
|
275
293
|
},
|
|
276
294
|
"methods": [
|
|
277
295
|
{
|
|
@@ -281,7 +299,7 @@
|
|
|
281
299
|
},
|
|
282
300
|
"locationInModule": {
|
|
283
301
|
"filename": "src/index.ts",
|
|
284
|
-
"line":
|
|
302
|
+
"line": 104
|
|
285
303
|
},
|
|
286
304
|
"name": "customizeTask",
|
|
287
305
|
"parameters": [
|
|
@@ -312,7 +330,7 @@
|
|
|
312
330
|
},
|
|
313
331
|
"locationInModule": {
|
|
314
332
|
"filename": "src/index.ts",
|
|
315
|
-
"line":
|
|
333
|
+
"line": 108
|
|
316
334
|
},
|
|
317
335
|
"name": "preSynthesize",
|
|
318
336
|
"overrides": "projen.Project"
|
|
@@ -327,7 +345,7 @@
|
|
|
327
345
|
"immutable": true,
|
|
328
346
|
"locationInModule": {
|
|
329
347
|
"filename": "src/index.ts",
|
|
330
|
-
"line":
|
|
348
|
+
"line": 68
|
|
331
349
|
},
|
|
332
350
|
"name": "docgen",
|
|
333
351
|
"type": {
|
|
@@ -341,7 +359,7 @@
|
|
|
341
359
|
"immutable": true,
|
|
342
360
|
"locationInModule": {
|
|
343
361
|
"filename": "src/index.ts",
|
|
344
|
-
"line":
|
|
362
|
+
"line": 67
|
|
345
363
|
},
|
|
346
364
|
"name": "docsDirectory",
|
|
347
365
|
"type": {
|
|
@@ -355,7 +373,7 @@
|
|
|
355
373
|
"immutable": true,
|
|
356
374
|
"locationInModule": {
|
|
357
375
|
"filename": "src/index.ts",
|
|
358
|
-
"line":
|
|
376
|
+
"line": 71
|
|
359
377
|
},
|
|
360
378
|
"name": "independentMode",
|
|
361
379
|
"type": {
|
|
@@ -369,7 +387,7 @@
|
|
|
369
387
|
"immutable": true,
|
|
370
388
|
"locationInModule": {
|
|
371
389
|
"filename": "src/index.ts",
|
|
372
|
-
"line":
|
|
390
|
+
"line": 69
|
|
373
391
|
},
|
|
374
392
|
"name": "sinceLastRelease",
|
|
375
393
|
"type": {
|
|
@@ -383,7 +401,7 @@
|
|
|
383
401
|
"immutable": true,
|
|
384
402
|
"locationInModule": {
|
|
385
403
|
"filename": "src/index.ts",
|
|
386
|
-
"line":
|
|
404
|
+
"line": 73
|
|
387
405
|
},
|
|
388
406
|
"name": "taskCustomizations",
|
|
389
407
|
"type": {
|
|
@@ -402,7 +420,7 @@
|
|
|
402
420
|
"immutable": true,
|
|
403
421
|
"locationInModule": {
|
|
404
422
|
"filename": "src/index.ts",
|
|
405
|
-
"line":
|
|
423
|
+
"line": 70
|
|
406
424
|
},
|
|
407
425
|
"name": "useNx",
|
|
408
426
|
"type": {
|
|
@@ -416,7 +434,7 @@
|
|
|
416
434
|
"immutable": true,
|
|
417
435
|
"locationInModule": {
|
|
418
436
|
"filename": "src/index.ts",
|
|
419
|
-
"line":
|
|
437
|
+
"line": 72
|
|
420
438
|
},
|
|
421
439
|
"name": "useWorkspaces",
|
|
422
440
|
"type": {
|
|
@@ -430,13 +448,28 @@
|
|
|
430
448
|
"immutable": true,
|
|
431
449
|
"locationInModule": {
|
|
432
450
|
"filename": "src/index.ts",
|
|
433
|
-
"line":
|
|
451
|
+
"line": 74
|
|
434
452
|
},
|
|
435
453
|
"name": "pnpmVersion",
|
|
436
454
|
"optional": true,
|
|
437
455
|
"type": {
|
|
438
456
|
"primitive": "string"
|
|
439
457
|
}
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"docs": {
|
|
461
|
+
"stability": "stable"
|
|
462
|
+
},
|
|
463
|
+
"immutable": true,
|
|
464
|
+
"locationInModule": {
|
|
465
|
+
"filename": "src/index.ts",
|
|
466
|
+
"line": 75
|
|
467
|
+
},
|
|
468
|
+
"name": "sinceGitReferenceEnvironmentVariableName",
|
|
469
|
+
"optional": true,
|
|
470
|
+
"type": {
|
|
471
|
+
"primitive": "string"
|
|
472
|
+
}
|
|
440
473
|
}
|
|
441
474
|
],
|
|
442
475
|
"symbolId": "src/index:LernaProject"
|
|
@@ -455,7 +488,7 @@
|
|
|
455
488
|
"kind": "interface",
|
|
456
489
|
"locationInModule": {
|
|
457
490
|
"filename": "src/types.ts",
|
|
458
|
-
"line":
|
|
491
|
+
"line": 56
|
|
459
492
|
},
|
|
460
493
|
"name": "LernaProjectOptions",
|
|
461
494
|
"properties": [
|
|
@@ -469,7 +502,7 @@
|
|
|
469
502
|
"immutable": true,
|
|
470
503
|
"locationInModule": {
|
|
471
504
|
"filename": "src/types.ts",
|
|
472
|
-
"line":
|
|
505
|
+
"line": 71
|
|
473
506
|
},
|
|
474
507
|
"name": "docgen",
|
|
475
508
|
"optional": true,
|
|
@@ -487,7 +520,7 @@
|
|
|
487
520
|
"immutable": true,
|
|
488
521
|
"locationInModule": {
|
|
489
522
|
"filename": "src/types.ts",
|
|
490
|
-
"line":
|
|
523
|
+
"line": 79
|
|
491
524
|
},
|
|
492
525
|
"name": "docsDirectory",
|
|
493
526
|
"optional": true,
|
|
@@ -505,7 +538,7 @@
|
|
|
505
538
|
"immutable": true,
|
|
506
539
|
"locationInModule": {
|
|
507
540
|
"filename": "src/types.ts",
|
|
508
|
-
"line":
|
|
541
|
+
"line": 63
|
|
509
542
|
},
|
|
510
543
|
"name": "projenrcTs",
|
|
511
544
|
"optional": true,
|
|
@@ -532,7 +565,7 @@
|
|
|
532
565
|
},
|
|
533
566
|
"locationInModule": {
|
|
534
567
|
"filename": "src/index.ts",
|
|
535
|
-
"line":
|
|
568
|
+
"line": 133
|
|
536
569
|
},
|
|
537
570
|
"parameters": [
|
|
538
571
|
{
|
|
@@ -546,7 +579,7 @@
|
|
|
546
579
|
"kind": "class",
|
|
547
580
|
"locationInModule": {
|
|
548
581
|
"filename": "src/index.ts",
|
|
549
|
-
"line":
|
|
582
|
+
"line": 122
|
|
550
583
|
},
|
|
551
584
|
"methods": [
|
|
552
585
|
{
|
|
@@ -556,7 +589,7 @@
|
|
|
556
589
|
},
|
|
557
590
|
"locationInModule": {
|
|
558
591
|
"filename": "src/index.ts",
|
|
559
|
-
"line":
|
|
592
|
+
"line": 157
|
|
560
593
|
},
|
|
561
594
|
"name": "customizeTask",
|
|
562
595
|
"parameters": [
|
|
@@ -587,7 +620,7 @@
|
|
|
587
620
|
},
|
|
588
621
|
"locationInModule": {
|
|
589
622
|
"filename": "src/index.ts",
|
|
590
|
-
"line":
|
|
623
|
+
"line": 161
|
|
591
624
|
},
|
|
592
625
|
"name": "preSynthesize",
|
|
593
626
|
"overrides": "projen.Project"
|
|
@@ -602,7 +635,7 @@
|
|
|
602
635
|
"immutable": true,
|
|
603
636
|
"locationInModule": {
|
|
604
637
|
"filename": "src/index.ts",
|
|
605
|
-
"line":
|
|
638
|
+
"line": 125
|
|
606
639
|
},
|
|
607
640
|
"name": "independentMode",
|
|
608
641
|
"type": {
|
|
@@ -616,7 +649,7 @@
|
|
|
616
649
|
"immutable": true,
|
|
617
650
|
"locationInModule": {
|
|
618
651
|
"filename": "src/index.ts",
|
|
619
|
-
"line":
|
|
652
|
+
"line": 123
|
|
620
653
|
},
|
|
621
654
|
"name": "sinceLastRelease",
|
|
622
655
|
"type": {
|
|
@@ -630,7 +663,7 @@
|
|
|
630
663
|
"immutable": true,
|
|
631
664
|
"locationInModule": {
|
|
632
665
|
"filename": "src/index.ts",
|
|
633
|
-
"line":
|
|
666
|
+
"line": 127
|
|
634
667
|
},
|
|
635
668
|
"name": "taskCustomizations",
|
|
636
669
|
"type": {
|
|
@@ -649,7 +682,7 @@
|
|
|
649
682
|
"immutable": true,
|
|
650
683
|
"locationInModule": {
|
|
651
684
|
"filename": "src/index.ts",
|
|
652
|
-
"line":
|
|
685
|
+
"line": 124
|
|
653
686
|
},
|
|
654
687
|
"name": "useNx",
|
|
655
688
|
"type": {
|
|
@@ -663,7 +696,7 @@
|
|
|
663
696
|
"immutable": true,
|
|
664
697
|
"locationInModule": {
|
|
665
698
|
"filename": "src/index.ts",
|
|
666
|
-
"line":
|
|
699
|
+
"line": 126
|
|
667
700
|
},
|
|
668
701
|
"name": "useWorkspaces",
|
|
669
702
|
"type": {
|
|
@@ -677,13 +710,28 @@
|
|
|
677
710
|
"immutable": true,
|
|
678
711
|
"locationInModule": {
|
|
679
712
|
"filename": "src/index.ts",
|
|
680
|
-
"line":
|
|
713
|
+
"line": 128
|
|
681
714
|
},
|
|
682
715
|
"name": "pnpmVersion",
|
|
683
716
|
"optional": true,
|
|
684
717
|
"type": {
|
|
685
718
|
"primitive": "string"
|
|
686
719
|
}
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
"docs": {
|
|
723
|
+
"stability": "stable"
|
|
724
|
+
},
|
|
725
|
+
"immutable": true,
|
|
726
|
+
"locationInModule": {
|
|
727
|
+
"filename": "src/index.ts",
|
|
728
|
+
"line": 129
|
|
729
|
+
},
|
|
730
|
+
"name": "sinceGitReferenceEnvironmentVariableName",
|
|
731
|
+
"optional": true,
|
|
732
|
+
"type": {
|
|
733
|
+
"primitive": "string"
|
|
734
|
+
}
|
|
687
735
|
}
|
|
688
736
|
],
|
|
689
737
|
"symbolId": "src/index:LernaTypescriptProject"
|
|
@@ -702,7 +750,7 @@
|
|
|
702
750
|
"kind": "interface",
|
|
703
751
|
"locationInModule": {
|
|
704
752
|
"filename": "src/types.ts",
|
|
705
|
-
"line":
|
|
753
|
+
"line": 82
|
|
706
754
|
},
|
|
707
755
|
"name": "LernaTypescriptProjectOptions",
|
|
708
756
|
"properties": [
|
|
@@ -717,7 +765,7 @@
|
|
|
717
765
|
"immutable": true,
|
|
718
766
|
"locationInModule": {
|
|
719
767
|
"filename": "src/types.ts",
|
|
720
|
-
"line":
|
|
768
|
+
"line": 90
|
|
721
769
|
},
|
|
722
770
|
"name": "hasRootSourceCode",
|
|
723
771
|
"optional": true,
|
|
@@ -738,7 +786,7 @@
|
|
|
738
786
|
"kind": "interface",
|
|
739
787
|
"locationInModule": {
|
|
740
788
|
"filename": "src/types.ts",
|
|
741
|
-
"line":
|
|
789
|
+
"line": 95
|
|
742
790
|
},
|
|
743
791
|
"name": "TaskCustomization",
|
|
744
792
|
"properties": [
|
|
@@ -752,7 +800,7 @@
|
|
|
752
800
|
"immutable": true,
|
|
753
801
|
"locationInModule": {
|
|
754
802
|
"filename": "src/types.ts",
|
|
755
|
-
"line":
|
|
803
|
+
"line": 101
|
|
756
804
|
},
|
|
757
805
|
"name": "addLernaStep",
|
|
758
806
|
"optional": true,
|
|
@@ -770,7 +818,7 @@
|
|
|
770
818
|
"immutable": true,
|
|
771
819
|
"locationInModule": {
|
|
772
820
|
"filename": "src/types.ts",
|
|
773
|
-
"line":
|
|
821
|
+
"line": 115
|
|
774
822
|
},
|
|
775
823
|
"name": "exclude",
|
|
776
824
|
"optional": true,
|
|
@@ -793,7 +841,7 @@
|
|
|
793
841
|
"immutable": true,
|
|
794
842
|
"locationInModule": {
|
|
795
843
|
"filename": "src/types.ts",
|
|
796
|
-
"line":
|
|
844
|
+
"line": 108
|
|
797
845
|
},
|
|
798
846
|
"name": "include",
|
|
799
847
|
"optional": true,
|
|
@@ -816,7 +864,7 @@
|
|
|
816
864
|
"immutable": true,
|
|
817
865
|
"locationInModule": {
|
|
818
866
|
"filename": "src/types.ts",
|
|
819
|
-
"line":
|
|
867
|
+
"line": 122
|
|
820
868
|
},
|
|
821
869
|
"name": "sinceLastRelease",
|
|
822
870
|
"optional": true,
|
|
@@ -1032,6 +1080,6 @@
|
|
|
1032
1080
|
"symbolId": "src/utils:AddNxTaskDependencyOptions"
|
|
1033
1081
|
}
|
|
1034
1082
|
},
|
|
1035
|
-
"version": "0.1.
|
|
1036
|
-
"fingerprint": "
|
|
1083
|
+
"version": "0.1.700",
|
|
1084
|
+
"fingerprint": "EDtNQcWU7Hl7s0xhbdi2SXghJj4ydkXOb8DZrUXQY7E="
|
|
1037
1085
|
}
|
package/API.md
CHANGED
|
@@ -744,6 +744,7 @@ When given a project, this it the project itself.
|
|
|
744
744
|
| <code><a href="#lerna-projen.LernaProject.property.useNx">useNx</a></code> | <code>boolean</code> | *No description.* |
|
|
745
745
|
| <code><a href="#lerna-projen.LernaProject.property.useWorkspaces">useWorkspaces</a></code> | <code>boolean</code> | *No description.* |
|
|
746
746
|
| <code><a href="#lerna-projen.LernaProject.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | *No description.* |
|
|
747
|
+
| <code><a href="#lerna-projen.LernaProject.property.sinceGitReferenceEnvironmentVariableName">sinceGitReferenceEnvironmentVariableName</a></code> | <code>string</code> | *No description.* |
|
|
747
748
|
|
|
748
749
|
---
|
|
749
750
|
|
|
@@ -1477,6 +1478,16 @@ public readonly pnpmVersion: string;
|
|
|
1477
1478
|
|
|
1478
1479
|
---
|
|
1479
1480
|
|
|
1481
|
+
##### `sinceGitReferenceEnvironmentVariableName`<sup>Optional</sup> <a name="sinceGitReferenceEnvironmentVariableName" id="lerna-projen.LernaProject.property.sinceGitReferenceEnvironmentVariableName"></a>
|
|
1482
|
+
|
|
1483
|
+
```typescript
|
|
1484
|
+
public readonly sinceGitReferenceEnvironmentVariableName: string;
|
|
1485
|
+
```
|
|
1486
|
+
|
|
1487
|
+
- *Type:* string
|
|
1488
|
+
|
|
1489
|
+
---
|
|
1490
|
+
|
|
1480
1491
|
#### Constants <a name="Constants" id="Constants"></a>
|
|
1481
1492
|
|
|
1482
1493
|
| **Name** | **Type** | **Description** |
|
|
@@ -2250,6 +2261,7 @@ When given a project, this it the project itself.
|
|
|
2250
2261
|
| <code><a href="#lerna-projen.LernaTypescriptProject.property.useNx">useNx</a></code> | <code>boolean</code> | *No description.* |
|
|
2251
2262
|
| <code><a href="#lerna-projen.LernaTypescriptProject.property.useWorkspaces">useWorkspaces</a></code> | <code>boolean</code> | *No description.* |
|
|
2252
2263
|
| <code><a href="#lerna-projen.LernaTypescriptProject.property.pnpmVersion">pnpmVersion</a></code> | <code>string</code> | *No description.* |
|
|
2264
|
+
| <code><a href="#lerna-projen.LernaTypescriptProject.property.sinceGitReferenceEnvironmentVariableName">sinceGitReferenceEnvironmentVariableName</a></code> | <code>string</code> | *No description.* |
|
|
2253
2265
|
|
|
2254
2266
|
---
|
|
2255
2267
|
|
|
@@ -3073,6 +3085,16 @@ public readonly pnpmVersion: string;
|
|
|
3073
3085
|
|
|
3074
3086
|
---
|
|
3075
3087
|
|
|
3088
|
+
##### `sinceGitReferenceEnvironmentVariableName`<sup>Optional</sup> <a name="sinceGitReferenceEnvironmentVariableName" id="lerna-projen.LernaTypescriptProject.property.sinceGitReferenceEnvironmentVariableName"></a>
|
|
3089
|
+
|
|
3090
|
+
```typescript
|
|
3091
|
+
public readonly sinceGitReferenceEnvironmentVariableName: string;
|
|
3092
|
+
```
|
|
3093
|
+
|
|
3094
|
+
- *Type:* string
|
|
3095
|
+
|
|
3096
|
+
---
|
|
3097
|
+
|
|
3076
3098
|
#### Constants <a name="Constants" id="Constants"></a>
|
|
3077
3099
|
|
|
3078
3100
|
| **Name** | **Type** | **Description** |
|
|
@@ -3282,6 +3304,7 @@ const lernaCommonProjectOptions: LernaCommonProjectOptions = { ... }
|
|
|
3282
3304
|
| **Name** | **Type** | **Description** |
|
|
3283
3305
|
| --- | --- | --- |
|
|
3284
3306
|
| <code><a href="#lerna-projen.LernaCommonProjectOptions.property.independentMode">independentMode</a></code> | <code>boolean</code> | Whether or not to use independent versioning for sub-projects https://lerna.js.org/docs/features/version-and-publish#independent-mode. |
|
|
3307
|
+
| <code><a href="#lerna-projen.LernaCommonProjectOptions.property.sinceGitReferenceEnvironmentVariableName">sinceGitReferenceEnvironmentVariableName</a></code> | <code>string</code> | (experimental) Environment variable name to read the git reference from to be used as the base for the `since` option in lerna commands. |
|
|
3285
3308
|
| <code><a href="#lerna-projen.LernaCommonProjectOptions.property.sinceLastRelease">sinceLastRelease</a></code> | <code>boolean</code> | (experimental) Flag to run tasks only for the packages that has changes since last release. |
|
|
3286
3309
|
| <code><a href="#lerna-projen.LernaCommonProjectOptions.property.taskCustomizations">taskCustomizations</a></code> | <code>{[ key: string ]: <a href="#lerna-projen.TaskCustomization">TaskCustomization</a>}</code> | Key value pair of task name and TaskCustomization to customize the lerna run step added to the task. |
|
|
3287
3310
|
| <code><a href="#lerna-projen.LernaCommonProjectOptions.property.useNx">useNx</a></code> | <code>boolean</code> | Whether or not to use Nx for task scheduling https://lerna.js.org/docs/lerna-and-nx. |
|
|
@@ -3302,6 +3325,22 @@ Whether or not to use independent versioning for sub-projects https://lerna.js.o
|
|
|
3302
3325
|
|
|
3303
3326
|
---
|
|
3304
3327
|
|
|
3328
|
+
##### `sinceGitReferenceEnvironmentVariableName`<sup>Optional</sup> <a name="sinceGitReferenceEnvironmentVariableName" id="lerna-projen.LernaCommonProjectOptions.property.sinceGitReferenceEnvironmentVariableName"></a>
|
|
3329
|
+
|
|
3330
|
+
```typescript
|
|
3331
|
+
public readonly sinceGitReferenceEnvironmentVariableName: string;
|
|
3332
|
+
```
|
|
3333
|
+
|
|
3334
|
+
- *Type:* string
|
|
3335
|
+
|
|
3336
|
+
(experimental) Environment variable name to read the git reference from to be used as the base for the `since` option in lerna commands.
|
|
3337
|
+
|
|
3338
|
+
If not provided, defaults to running git command to find last release tag.
|
|
3339
|
+
The reference that is stored in the environment variable could be:
|
|
3340
|
+
a commit SHA, branch name, or tag name.
|
|
3341
|
+
|
|
3342
|
+
---
|
|
3343
|
+
|
|
3305
3344
|
##### `sinceLastRelease`<sup>Optional</sup> <a name="sinceLastRelease" id="lerna-projen.LernaCommonProjectOptions.property.sinceLastRelease"></a>
|
|
3306
3345
|
|
|
3307
3346
|
```typescript
|
|
@@ -3504,6 +3543,7 @@ const lernaProjectOptions: LernaProjectOptions = { ... }
|
|
|
3504
3543
|
| <code><a href="#lerna-projen.LernaProjectOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | The node version used in GitHub Actions workflows. |
|
|
3505
3544
|
| <code><a href="#lerna-projen.LernaProjectOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>boolean</code> | Enable Node.js package cache in GitHub workflows. |
|
|
3506
3545
|
| <code><a href="#lerna-projen.LernaProjectOptions.property.independentMode">independentMode</a></code> | <code>boolean</code> | Whether or not to use independent versioning for sub-projects https://lerna.js.org/docs/features/version-and-publish#independent-mode. |
|
|
3546
|
+
| <code><a href="#lerna-projen.LernaProjectOptions.property.sinceGitReferenceEnvironmentVariableName">sinceGitReferenceEnvironmentVariableName</a></code> | <code>string</code> | (experimental) Environment variable name to read the git reference from to be used as the base for the `since` option in lerna commands. |
|
|
3507
3547
|
| <code><a href="#lerna-projen.LernaProjectOptions.property.sinceLastRelease">sinceLastRelease</a></code> | <code>boolean</code> | (experimental) Flag to run tasks only for the packages that has changes since last release. |
|
|
3508
3548
|
| <code><a href="#lerna-projen.LernaProjectOptions.property.taskCustomizations">taskCustomizations</a></code> | <code>{[ key: string ]: <a href="#lerna-projen.TaskCustomization">TaskCustomization</a>}</code> | Key value pair of task name and TaskCustomization to customize the lerna run step added to the task. |
|
|
3509
3549
|
| <code><a href="#lerna-projen.LernaProjectOptions.property.useNx">useNx</a></code> | <code>boolean</code> | Whether or not to use Nx for task scheduling https://lerna.js.org/docs/lerna-and-nx. |
|
|
@@ -5493,6 +5533,22 @@ Whether or not to use independent versioning for sub-projects https://lerna.js.o
|
|
|
5493
5533
|
|
|
5494
5534
|
---
|
|
5495
5535
|
|
|
5536
|
+
##### `sinceGitReferenceEnvironmentVariableName`<sup>Optional</sup> <a name="sinceGitReferenceEnvironmentVariableName" id="lerna-projen.LernaProjectOptions.property.sinceGitReferenceEnvironmentVariableName"></a>
|
|
5537
|
+
|
|
5538
|
+
```typescript
|
|
5539
|
+
public readonly sinceGitReferenceEnvironmentVariableName: string;
|
|
5540
|
+
```
|
|
5541
|
+
|
|
5542
|
+
- *Type:* string
|
|
5543
|
+
|
|
5544
|
+
(experimental) Environment variable name to read the git reference from to be used as the base for the `since` option in lerna commands.
|
|
5545
|
+
|
|
5546
|
+
If not provided, defaults to running git command to find last release tag.
|
|
5547
|
+
The reference that is stored in the environment variable could be:
|
|
5548
|
+
a commit SHA, branch name, or tag name.
|
|
5549
|
+
|
|
5550
|
+
---
|
|
5551
|
+
|
|
5496
5552
|
##### `sinceLastRelease`<sup>Optional</sup> <a name="sinceLastRelease" id="lerna-projen.LernaProjectOptions.property.sinceLastRelease"></a>
|
|
5497
5553
|
|
|
5498
5554
|
```typescript
|
|
@@ -5752,6 +5808,7 @@ const lernaTypescriptProjectOptions: LernaTypescriptProjectOptions = { ... }
|
|
|
5752
5808
|
| <code><a href="#lerna-projen.LernaTypescriptProjectOptions.property.tsJestOptions">tsJestOptions</a></code> | <code>projen.typescript.TsJestOptions</code> | Options for ts-jest. |
|
|
5753
5809
|
| <code><a href="#lerna-projen.LernaTypescriptProjectOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>string</code> | TypeScript version to use. |
|
|
5754
5810
|
| <code><a href="#lerna-projen.LernaTypescriptProjectOptions.property.independentMode">independentMode</a></code> | <code>boolean</code> | Whether or not to use independent versioning for sub-projects https://lerna.js.org/docs/features/version-and-publish#independent-mode. |
|
|
5811
|
+
| <code><a href="#lerna-projen.LernaTypescriptProjectOptions.property.sinceGitReferenceEnvironmentVariableName">sinceGitReferenceEnvironmentVariableName</a></code> | <code>string</code> | (experimental) Environment variable name to read the git reference from to be used as the base for the `since` option in lerna commands. |
|
|
5755
5812
|
| <code><a href="#lerna-projen.LernaTypescriptProjectOptions.property.sinceLastRelease">sinceLastRelease</a></code> | <code>boolean</code> | (experimental) Flag to run tasks only for the packages that has changes since last release. |
|
|
5756
5813
|
| <code><a href="#lerna-projen.LernaTypescriptProjectOptions.property.taskCustomizations">taskCustomizations</a></code> | <code>{[ key: string ]: <a href="#lerna-projen.TaskCustomization">TaskCustomization</a>}</code> | Key value pair of task name and TaskCustomization to customize the lerna run step added to the task. |
|
|
5757
5814
|
| <code><a href="#lerna-projen.LernaTypescriptProjectOptions.property.useNx">useNx</a></code> | <code>boolean</code> | Whether or not to use Nx for task scheduling https://lerna.js.org/docs/lerna-and-nx. |
|
|
@@ -7979,6 +8036,22 @@ Whether or not to use independent versioning for sub-projects https://lerna.js.o
|
|
|
7979
8036
|
|
|
7980
8037
|
---
|
|
7981
8038
|
|
|
8039
|
+
##### `sinceGitReferenceEnvironmentVariableName`<sup>Optional</sup> <a name="sinceGitReferenceEnvironmentVariableName" id="lerna-projen.LernaTypescriptProjectOptions.property.sinceGitReferenceEnvironmentVariableName"></a>
|
|
8040
|
+
|
|
8041
|
+
```typescript
|
|
8042
|
+
public readonly sinceGitReferenceEnvironmentVariableName: string;
|
|
8043
|
+
```
|
|
8044
|
+
|
|
8045
|
+
- *Type:* string
|
|
8046
|
+
|
|
8047
|
+
(experimental) Environment variable name to read the git reference from to be used as the base for the `since` option in lerna commands.
|
|
8048
|
+
|
|
8049
|
+
If not provided, defaults to running git command to find last release tag.
|
|
8050
|
+
The reference that is stored in the environment variable could be:
|
|
8051
|
+
a commit SHA, branch name, or tag name.
|
|
8052
|
+
|
|
8053
|
+
---
|
|
8054
|
+
|
|
7982
8055
|
##### `sinceLastRelease`<sup>Optional</sup> <a name="sinceLastRelease" id="lerna-projen.LernaTypescriptProjectOptions.property.sinceLastRelease"></a>
|
|
7983
8056
|
|
|
7984
8057
|
```typescript
|
package/lib/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ interface ILernaProject {
|
|
|
11
11
|
readonly docgen?: boolean;
|
|
12
12
|
readonly taskCustomizations: TaskCustomizations;
|
|
13
13
|
readonly pnpmVersion?: string;
|
|
14
|
+
readonly sinceGitReferenceEnvironmentVariableName?: string;
|
|
14
15
|
customizeTask(taskName: string, customization: TaskCustomization): void;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
@@ -26,6 +27,7 @@ export declare class LernaProject extends javascript.NodeProject implements ILer
|
|
|
26
27
|
readonly useWorkspaces: boolean;
|
|
27
28
|
readonly taskCustomizations: TaskCustomizations;
|
|
28
29
|
readonly pnpmVersion?: string;
|
|
30
|
+
readonly sinceGitReferenceEnvironmentVariableName?: string;
|
|
29
31
|
private readonly factory;
|
|
30
32
|
constructor(options: LernaProjectOptions);
|
|
31
33
|
/**
|
|
@@ -47,6 +49,7 @@ export declare class LernaTypescriptProject extends typescript.TypeScriptProject
|
|
|
47
49
|
readonly useWorkspaces: boolean;
|
|
48
50
|
readonly taskCustomizations: TaskCustomizations;
|
|
49
51
|
readonly pnpmVersion?: string;
|
|
52
|
+
readonly sinceGitReferenceEnvironmentVariableName?: string;
|
|
50
53
|
private readonly factory;
|
|
51
54
|
constructor(options: LernaTypescriptProjectOptions);
|
|
52
55
|
/**
|
package/lib/index.js
CHANGED
|
@@ -73,6 +73,7 @@ class LernaProject extends projen_1.javascript.NodeProject {
|
|
|
73
73
|
this.useWorkspaces = options.useWorkspaces ?? false;
|
|
74
74
|
this.taskCustomizations = options.taskCustomizations ?? {};
|
|
75
75
|
this.pnpmVersion = options.pnpmVersion;
|
|
76
|
+
this.sinceGitReferenceEnvironmentVariableName = options.sinceGitReferenceEnvironmentVariableName;
|
|
76
77
|
this.factory = new LernaProjectFactory(this);
|
|
77
78
|
}
|
|
78
79
|
/**
|
|
@@ -97,7 +98,7 @@ class LernaProject extends projen_1.javascript.NodeProject {
|
|
|
97
98
|
}
|
|
98
99
|
exports.LernaProject = LernaProject;
|
|
99
100
|
_a = JSII_RTTI_SYMBOL_1;
|
|
100
|
-
LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.1.
|
|
101
|
+
LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.1.700" };
|
|
101
102
|
/**
|
|
102
103
|
* @pjid lerna-ts-project
|
|
103
104
|
*/
|
|
@@ -110,6 +111,7 @@ class LernaTypescriptProject extends projen_1.typescript.TypeScriptProject {
|
|
|
110
111
|
this.useWorkspaces = options.useWorkspaces ?? false;
|
|
111
112
|
this.taskCustomizations = options.taskCustomizations ?? {};
|
|
112
113
|
this.pnpmVersion = options.pnpmVersion;
|
|
114
|
+
this.sinceGitReferenceEnvironmentVariableName = options.sinceGitReferenceEnvironmentVariableName;
|
|
113
115
|
if (!(options.hasRootSourceCode ?? false)) {
|
|
114
116
|
this.tasks.tryFind('compile')?.reset();
|
|
115
117
|
}
|
|
@@ -132,7 +134,7 @@ class LernaTypescriptProject extends projen_1.typescript.TypeScriptProject {
|
|
|
132
134
|
}
|
|
133
135
|
exports.LernaTypescriptProject = LernaTypescriptProject;
|
|
134
136
|
_b = JSII_RTTI_SYMBOL_1;
|
|
135
|
-
LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.1.
|
|
137
|
+
LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.1.700" };
|
|
136
138
|
class LernaProjectFactory {
|
|
137
139
|
constructor(project) {
|
|
138
140
|
this.project = project;
|
|
@@ -201,9 +203,15 @@ class LernaProjectFactory {
|
|
|
201
203
|
const excludePatterns = customization?.exclude ?? [];
|
|
202
204
|
const scopeFlags = includePatterns.map((glob) => ` --scope ${glob}`).join('');
|
|
203
205
|
const ignoreFlags = excludePatterns.map((glob) => ` --ignore ${glob}`).join('');
|
|
204
|
-
const postCommand = useSinceFlag ?
|
|
206
|
+
const postCommand = useSinceFlag ? ` --since ${this.getSinceCommand()}` : '';
|
|
205
207
|
return `${mainCommand}${postCommand}${scopeFlags}${ignoreFlags}`;
|
|
206
208
|
}
|
|
209
|
+
getSinceCommand() {
|
|
210
|
+
if (this.project.sinceGitReferenceEnvironmentVariableName) {
|
|
211
|
+
return `\${${this.project.sinceGitReferenceEnvironmentVariableName}:-$(git describe --abbrev=0 --tags --match "v*" HEAD^)}`;
|
|
212
|
+
}
|
|
213
|
+
return '$(git describe --abbrev=0 --tags --match "v*" HEAD^)';
|
|
214
|
+
}
|
|
207
215
|
updateSubProjects() {
|
|
208
216
|
const bumpTask = this.project.tasks.tryFind('bump');
|
|
209
217
|
const unbumpTask = this.project.tasks.tryFind('unbump');
|
|
@@ -288,4 +296,4 @@ class LernaProjectFactory {
|
|
|
288
296
|
this.project.gitattributes.addAttributes(`/${this.project.docsDirectory}/**`, 'linguist-generated');
|
|
289
297
|
}
|
|
290
298
|
}
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE2QjtBQUM3QixtQ0FBZ0c7QUFHaEcsMENBQXdCO0FBQ3hCLG1DQUFpQztBQUVqQyxTQUFTLGdCQUFnQixDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFDO0lBQ2hGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGdDQUFnQyxDQUFDO0FBRXpELFNBQVMscUJBQXFCLENBQUMsS0FBWTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQUEsT0FB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QUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDdEcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEpzb25GaWxlLCBqYXZhc2NyaXB0LCBQcm9qZWN0LCBUYXNrcywgU291cmNlQ29kZSwgdHlwZXNjcmlwdCwgWWFtbEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTGVybmFQcm9qZWN0T3B0aW9ucywgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMsIFRhc2tDdXN0b21pemF0aW9uLCBUYXNrQ3VzdG9taXphdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gZ2V0RG9jc0RpcmVjdG9yeShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHByb2plY3QpLmZpbmQoKFtrZXldKSA9PiBrZXkgPT09ICdkb2NzRGlyZWN0b3J5Jyk7XG4gIHJldHVybiByZXN1bHQ/LlsxXS5yZXBsYWNlKC9cXC8kLywgJycpO1xufVxuXG5mdW5jdGlvbiBnZXRBcnRpZmFjdHNEaXJlY3RvcnkocHJvamVjdDogUHJvamVjdCkge1xuICBjb25zdCByZXN1bHQgPSBPYmplY3QuZW50cmllcyhwcm9qZWN0KS5maW5kKChba2V5XSkgPT4ga2V5ID09PSAnYXJ0aWZhY3RzRGlyZWN0b3J5Jyk7XG4gIHJldHVybiByZXN1bHQ/LlsxXTtcbn1cblxuY29uc3QganNpaVRhc2tQYXR0ZXJuID0gL2pzaWktZG9jZ2VuIC1vICg/PG91dHB1dD4uKykkL2k7XG5cbmZ1bmN0aW9uIGV4dHJhY3RKc2lpRG9jc091dHB1dCh0YXNrczogVGFza3MpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBqc2lpRG9jU3RlcCA9IHRhc2tzLnRyeUZpbmQoJ2RvY2dlbicpPy5zdGVwcy5maW5kKHN0ZXAgPT4ganNpaVRhc2tQYXR0ZXJuLnRlc3Qoc3RlcC5leGVjID8/ICcnKSk7XG4gIGlmICghanNpaURvY1N0ZXAgfHwgIWpzaWlEb2NTdGVwLmV4ZWMpIHtyZXR1cm47fVxuXG4gIGNvbnN0IG1hdGNoID0ganNpaURvY1N0ZXAuZXhlYy5tYXRjaChqc2lpVGFza1BhdHRlcm4pO1xuICByZXR1cm4gbWF0Y2g/Lmdyb3Vwcz8ub3V0cHV0O1xufVxuXG5mdW5jdGlvbiBhcHBlbmRXb3JrZmxvd0Jvb3RzdHJhcFN0ZXBzPFQgZXh0ZW5kcyBMZXJuYVByb2plY3RPcHRpb25zIHwgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnM+KG9wdGlvbnM6IFQpOiBUIHtcbiAgaWYgKCFvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UpIHtyZXR1cm4gb3B0aW9uczt9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIHdvcmtmbG93Qm9vdHN0cmFwU3RlcHM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0ZldGNoIHRhZ3MnLFxuICAgICAgICBydW46ICdpZiBbICQoZ2l0IHJldi1wYXJzZSAtLWlzLXNoYWxsb3ctcmVwb3NpdG9yeSkgIT0gXCJmYWxzZVwiIF0gOyB0aGVuIGdpdCBmZXRjaCBvcmlnaW4gbWFpbiAtLXRhZ3MgLS11bnNoYWxsb3c7IGZpJyxcbiAgICAgICAgaWY6ICcke3sgZ2l0aHViLndvcmtmbG93ID09IFxcJ2J1aWxkXFwnIH19JyxcbiAgICAgIH0sXG4gICAgICAuLi5vcHRpb25zLndvcmtmbG93Qm9vdHN0cmFwU3RlcHMgPz8gW10sXG4gICAgXSxcbiAgfTtcbn1cblxuY29uc3QgbG9ja2VkVGFza05hbWVzID0gWydidWlsZCcsICd1cGdyYWRlJywgJ3VwZ3JhZGUtcHJvamVuJywgJ2Nsb2JiZXInLCAncG9zdC11cGdyYWRlJ107XG5cbmludGVyZmFjZSBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBkb2NnZW4/OiBib29sZWFuO1xuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9ucztcbiAgcmVhZG9ubHkgcG5wbVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgY3VzdG9taXplVGFzayh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uOiBUYXNrQ3VzdG9taXphdGlvbik6IHZvaWQ7XG59XG5cbi8qKlxuICogQHBqaWQgbGVybmEtcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgTGVybmFQcm9qZWN0IGV4dGVuZHMgamF2YXNjcmlwdC5Ob2RlUHJvamVjdCBpbXBsZW1lbnRzIElMZXJuYVByb2plY3Qge1xuXG4gIHByaXZhdGUgcHJvamVucmNUczogYm9vbGVhbjtcblxuICByZWFkb25seSBkb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRvY2dlbjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdGFza0N1c3RvbWl6YXRpb25zOiBUYXNrQ3VzdG9taXphdGlvbnM7XG4gIHJlYWRvbmx5IHBucG1WZXJzaW9uPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yeTogTGVybmFQcm9qZWN0RmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMZXJuYVByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwZW5kV29ya2Zsb3dCb290c3RyYXBTdGVwcyhvcHRpb25zKSk7XG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5yY1RzKSB7dGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlJywgJ3R5cGVzY3JpcHQnKTt9XG5cbiAgICB0aGlzLmRvY3NEaXJlY3RvcnkgPSBvcHRpb25zLmRvY3NEaXJlY3RvcnkgPz8gJ2RvY3MnO1xuICAgIHRoaXMuZG9jZ2VuID0gb3B0aW9ucy5kb2NnZW4gPz8gZmFsc2U7XG4gICAgdGhpcy5zaW5jZUxhc3RSZWxlYXNlID0gb3B0aW9ucy5zaW5jZUxhc3RSZWxlYXNlID8/IGZhbHNlO1xuICAgIHRoaXMudXNlTnggPSBvcHRpb25zLnVzZU54ID8/IGZhbHNlO1xuICAgIHRoaXMucHJvamVucmNUcyA9IG9wdGlvbnMucHJvamVucmNUcyA/PyBmYWxzZTtcbiAgICB0aGlzLmluZGVwZW5kZW50TW9kZSA9IG9wdGlvbnMuaW5kZXBlbmRlbnRNb2RlID8/IGZhbHNlO1xuICAgIHRoaXMudXNlV29ya3NwYWNlcyA9IG9wdGlvbnMudXNlV29ya3NwYWNlcyA/PyBmYWxzZTtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9O1xuICAgIHRoaXMucG5wbVZlcnNpb24gPSBvcHRpb25zLnBucG1WZXJzaW9uO1xuXG4gICAgdGhpcy5mYWN0b3J5ID0gbmV3IExlcm5hUHJvamVjdEZhY3RvcnkodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGN1c3RvbWl6YXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFza1xuICAgKlxuICAgKiBAcGFyYW0gdGFza05hbWUgTmFtZSBvZiB0aGUgdGFzayB0byBjdXN0b21pemVcbiAgICogQHBhcmFtIGN1c3RvbWl6YXRpb24gVGFza0N1c3RvbWl6YXRpb24gb3B0aW9uc1xuICAgKi9cbiAgY3VzdG9taXplVGFzayh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uOiBUYXNrQ3VzdG9taXphdGlvbik6IHZvaWQge1xuICAgIHRoaXMudGFza0N1c3RvbWl6YXRpb25zW3Rhc2tOYW1lXSA9IGN1c3RvbWl6YXRpb247XG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcbiAgICBjb25zdCBwcm9qZW5Db21tYW5kID0gdGhpcy5wcm9qZW5yY1RzID8gJ3RzLW5vZGUgLS1za2lwLXByb2plY3QgLnByb2plbnJjLnRzJyA6ICdub2RlIC5wcm9qZW5yYy5qcyc7XG4gICAgY29uc3QgeyBkZWZhdWx0VGFzayB9ID0gdGhpcztcbiAgICBpZiAoIWRlZmF1bHRUYXNrKSB7dGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBkZWZhdWx0IHRhc2snKTt9XG4gICAgZGVmYXVsdFRhc2sucmVzZXQocHJvamVuQ29tbWFuZCk7XG5cbiAgICB0aGlzLmZhY3RvcnkuYnVpbGQoKTtcbiAgfVxufVxuXG4vKipcbiAqIEBwamlkIGxlcm5hLXRzLXByb2plY3RcbiAqL1xuZXhwb3J0IGNsYXNzIExlcm5hVHlwZXNjcmlwdFByb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IGltcGxlbWVudHMgSUxlcm5hUHJvamVjdCB7XG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuO1xuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZVdvcmtzcGFjZXM6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zO1xuICByZWFkb25seSBwbnBtVmVyc2lvbj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGZhY3Rvcnk6IExlcm5hUHJvamVjdEZhY3Rvcnk7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHBlbmRXb3JrZmxvd0Jvb3RzdHJhcFN0ZXBzKG9wdGlvbnMpKTtcblxuICAgIHRoaXMuc2luY2VMYXN0UmVsZWFzZSA9IG9wdGlvbnMuc2luY2VMYXN0UmVsZWFzZSA/PyBmYWxzZTtcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZTtcbiAgICB0aGlzLmluZGVwZW5kZW50TW9kZSA9IG9wdGlvbnMuaW5kZXBlbmRlbnRNb2RlID8/IGZhbHNlO1xuICAgIHRoaXMudXNlV29ya3NwYWNlcyA9IG9wdGlvbnMudXNlV29ya3NwYWNlcyA/PyBmYWxzZTtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9O1xuICAgIHRoaXMucG5wbVZlcnNpb24gPSBvcHRpb25zLnBucG1WZXJzaW9uO1xuXG4gICAgaWYgKCEob3B0aW9ucy5oYXNSb290U291cmNlQ29kZSA/PyBmYWxzZSkpIHt0aGlzLnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKT8ucmVzZXQoKTt9XG5cbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2RvY2dlbicpPy5yZXNldCgpO1xuXG4gICAgdGhpcy5mYWN0b3J5ID0gbmV3IExlcm5hUHJvamVjdEZhY3RvcnkodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGN1c3RvbWl6YXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFza1xuICAgKlxuICAgKiBAcGFyYW0gdGFza05hbWUgTmFtZSBvZiB0aGUgdGFzayB0byBjdXN0b21pemVcbiAgICogQHBhcmFtIGN1c3RvbWl6YXRpb24gVGFza0N1c3RvbWl6YXRpb24gb3B0aW9uc1xuICAgKi9cbiAgY3VzdG9taXplVGFzayh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uOiBUYXNrQ3VzdG9taXphdGlvbik6IHZvaWQge1xuICAgIHRoaXMudGFza0N1c3RvbWl6YXRpb25zW3Rhc2tOYW1lXSA9IGN1c3RvbWl6YXRpb247XG4gIH1cblxuICBwcmVTeW50aGVzaXplKCkge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcbiAgICB0aGlzLmZhY3RvcnkuYnVpbGQoKTtcbiAgfVxufVxuXG5jbGFzcyBMZXJuYVByb2plY3RGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9qZWN0OiBJTGVybmFQcm9qZWN0ICYgamF2YXNjcmlwdC5Ob2RlUHJvamVjdCkge1xuICAgIHByb2plY3QuYWRkRGV2RGVwcygnbGVybmEtcHJvamVuJywgJ2xlcm5hJyk7XG4gIH1cblxuICBidWlsZCgpIHtcbiAgICB0aGlzLnByb2plY3QucGFja2FnZVRhc2sucmVzZXQoYG1rZGlyIC1wICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0phdmFzY3JpcHREaXJlY3Rvcnl9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjbGVhbi1kaXN0ICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gKTtcblxuICAgIHRoaXMuc2V0dXBQYWNrYWdlTWFuYWdlcigpO1xuICAgIHRoaXMuYXBwZW5kTGVybmFDb21tYW5kcygpO1xuICAgIHRoaXMuYWRkQ3Jvc3NMaW5rcygpO1xuICAgIHRoaXMudXBkYXRlU3ViUHJvamVjdHMoKTtcbiAgICB0aGlzLmFkZERvY3VtZW50c0luZGV4KCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwUGFja2FnZU1hbmFnZXIoKSB7XG4gICAgaWYgKHRoaXMucHJvamVjdC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyID09PSBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5QTlBNICYmIE51bWJlcih0aGlzLnByb2plY3QucG5wbVZlcnNpb24pID49IDkpIHtcbiAgICAgIHRoaXMucHJvamVjdC5ucG1yYy5hZGRDb25maWcoJ25vZGUtbGlua2VyJywgJ2hvaXN0ZWQnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3Q6IFByb2plY3QpIHtcbiAgICByZXR1cm4gcGF0aC5yZWxhdGl2ZSh0aGlzLnByb2plY3Qub3V0ZGlyLCBzdWJQcm9qZWN0Lm91dGRpcik7XG4gIH1cblxuICBwcml2YXRlIGFkZENyb3NzTGlua3MoKSB7XG5cbiAgICBjb25zdCBsZXJuYUNvbmZpZzogYW55ID0ge1xuICAgICAgdXNlTng6IHRoaXMucHJvamVjdC51c2VOeCxcbiAgICAgIHZlcnNpb246IHRoaXMucHJvamVjdC5pbmRlcGVuZGVudE1vZGUgPyAnaW5kZXBlbmRlbnQnIDogJzAuMC4wJyxcbiAgICB9O1xuXG4gICAgY29uc3QgcGFja2FnZXMgPSB0aGlzLnByb2plY3Quc3VicHJvamVjdHMubWFwKHN1YlByb2plY3QgPT4gdGhpcy5nZXRTdWJQcm9qZWN0UGF0aChzdWJQcm9qZWN0KSk7XG5cbiAgICBpZiAodGhpcy5wcm9qZWN0LnVzZVdvcmtzcGFjZXMpIHtcbiAgICAgIGlmICh0aGlzLnByb2plY3QucGFja2FnZU1hbmFnZXIgPT09IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0pIHtcbiAgICAgICAgbmV3IFlhbWxGaWxlKHRoaXMucHJvamVjdCwgJ3BucG0td29ya3NwYWNlLnlhbWwnLCB7XG4gICAgICAgICAgb2JqOiB7XG4gICAgICAgICAgICBwYWNrYWdlcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlLmFkZEZpZWxkKCd3b3Jrc3BhY2VzJywgcGFja2FnZXMpO1xuICAgIH0gZWxzZSB7bGVybmFDb25maWcucGFja2FnZXMgPSBwYWNrYWdlczt9XG5cblxuICAgIG5ldyBKc29uRmlsZSh0aGlzLnByb2plY3QsICdsZXJuYS5qc29uJywge1xuICAgICAgb2JqOiBsZXJuYUNvbmZpZyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTGVybmFDb21tYW5kcygpIHtcbiAgICBjb25zdCB1cGdyYWRlVGFza05hbWUgPSAndXBncmFkZSc7XG4gICAgY29uc3QgcG9zdFVwZ3JhZGVUYXNrTmFtZSA9ICdwb3N0LXVwZ3JhZGUnO1xuICAgIGNvbnN0IHBvc3RVcGdyYWRlVGFzayA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKHBvc3RVcGdyYWRlVGFza05hbWUpO1xuICAgIHBvc3RVcGdyYWRlVGFzaz8ucHJlcGVuZEV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodXBncmFkZVRhc2tOYW1lLCB7IHNpbmNlTGFzdFJlbGVhc2U6IGZhbHNlIH0pKTtcbiAgICBwb3N0VXBncmFkZVRhc2s/LmV4ZWMoJ25weCBwcm9qZW4nKTtcblxuICAgIHRoaXMucHJvamVjdC50YXNrcy5hbGxcbiAgICAgIC5mb3JFYWNoKHRhc2sgPT4ge1xuICAgICAgICBjb25zdCBjdXN0b21pemF0aW9uID0gdGhpcy5wcm9qZWN0LnRhc2tDdXN0b21pemF0aW9uc1t0YXNrLm5hbWVdO1xuICAgICAgICBjb25zdCBhZGRMZXJuYVN0ZXAgPSBjdXN0b21pemF0aW9uPy5hZGRMZXJuYVN0ZXAgPz8gdHJ1ZTtcblxuICAgICAgICBpZiAobG9ja2VkVGFza05hbWVzLmluY2x1ZGVzKHRhc2submFtZSkgfHwgIWFkZExlcm5hU3RlcCkge3JldHVybjt9XG5cbiAgICAgICAgdGFzay5leGVjKHRoaXMuZ2V0TGVybmFDb21tYW5kKHRhc2submFtZSwgY3VzdG9taXphdGlvbikpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldExlcm5hQ29tbWFuZCh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uPzogVGFza0N1c3RvbWl6YXRpb24pIHtcbiAgICBjb25zdCBtYWluQ29tbWFuZCA9IGBsZXJuYSBydW4gJHt0YXNrTmFtZX0gLS1zdHJlYW1gO1xuICAgIGNvbnN0IHVzZVNpbmNlRmxhZyA9IGN1c3RvbWl6YXRpb24/LnNpbmNlTGFzdFJlbGVhc2UgPz8gdGhpcy5wcm9qZWN0LnNpbmNlTGFzdFJlbGVhc2U7XG5cbiAgICBjb25zdCBpbmNsdWRlUGF0dGVybnMgPSBjdXN0b21pemF0aW9uPy5pbmNsdWRlID8/IFtdO1xuICAgIGNvbnN0IGV4Y2x1ZGVQYXR0ZXJucyA9IGN1c3RvbWl6YXRpb24/LmV4Y2x1ZGUgPz8gW107XG5cbiAgICBjb25zdCBzY29wZUZsYWdzID0gaW5jbHVkZVBhdHRlcm5zLm1hcCgoZ2xvYikgPT4gYCAtLXNjb3BlICR7Z2xvYn1gKS5qb2luKCcnKTtcbiAgICBjb25zdCBpZ25vcmVGbGFncyA9IGV4Y2x1ZGVQYXR0ZXJucy5tYXAoKGdsb2IpID0+IGAgLS1pZ25vcmUgJHtnbG9ifWApLmpvaW4oJycpO1xuXG5cbiAgICBjb25zdCBwb3N0Q29tbWFuZCA9IHVzZVNpbmNlRmxhZyA/ICcgLS1zaW5jZSAkKGdpdCBkZXNjcmliZSAtLWFiYnJldj0wIC0tdGFncyAtLW1hdGNoIFwidipcIiBIRUFEXiknIDogJyc7XG4gICAgcmV0dXJuIGAke21haW5Db21tYW5kfSR7cG9zdENvbW1hbmR9JHtzY29wZUZsYWdzfSR7aWdub3JlRmxhZ3N9YDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3ViUHJvamVjdHMoKSB7XG4gICAgY29uc3QgYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgnYnVtcCcpO1xuICAgIGNvbnN0IHVuYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgndW5idW1wJyk7XG5cbiAgICB0aGlzLnByb2plY3Quc3VicHJvamVjdHMuZm9yRWFjaCgoc3ViUHJvamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpO1xuICAgICAgY29uc3Qgc3ViUHJvamVjdFBhdGggPSB0aGlzLmdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3QpO1xuICAgICAgaWYgKHRoaXMucHJvamVjdC5kb2NnZW4gJiYgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkpIHt0aGlzLnByb2plY3QucG9zdENvbXBpbGVUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBtb3ZlLWRvY3MgJHt0aGlzLnByb2plY3QuZG9jc0RpcmVjdG9yeX0gJHtzdWJQcm9qZWN0UGF0aH0gJHtzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeX1gKTt9XG5cbiAgICAgIGNvbnN0IHBhY2thZ2VBbGxUYXNrID0gc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCdwYWNrYWdlLWFsbCcpO1xuXG4gICAgICBpZiAocGFja2FnZUFsbFRhc2spIHtzdWJQcm9qZWN0LnBhY2thZ2VUYXNrLnNwYXduKHBhY2thZ2VBbGxUYXNrKTt9XG5cbiAgICAgIGNvbnN0IGFydGlmYWN0c0RpcmVjdG9yeSA9IGdldEFydGlmYWN0c0RpcmVjdG9yeShzdWJQcm9qZWN0KTtcblxuICAgICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjb3B5LWRpc3QgJHtzdWJQcm9qZWN0UGF0aH0vJHthcnRpZmFjdHNEaXJlY3Rvcnl9ICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gKTtcblxuICAgICAgc3ViUHJvamVjdC5kZWZhdWx0VGFzaz8ucmVzZXQoKTtcblxuICAgICAgY29uc3QgYnVtcEVudnMgPSB7XG4gICAgICAgIE9VVEZJTEU6ICdwYWNrYWdlLmpzb24nLFxuICAgICAgICBDSEFOR0VMT0c6IGAke2FydGlmYWN0c0RpcmVjdG9yeX0vY2hhbmdlbG9nLm1kYCxcbiAgICAgICAgQlVNUEZJTEU6IGAke2FydGlmYWN0c0RpcmVjdG9yeX0vdmVyc2lvbi50eHRgLFxuICAgICAgICBSRUxFQVNFVEFHOiBgJHthcnRpZmFjdHNEaXJlY3Rvcnl9L3JlbGVhc2V0YWcudHh0YCxcbiAgICAgICAgUkVMRUFTRV9UQUdfUFJFRklYOiAnJyxcbiAgICAgIH07XG5cbiAgICAgIGlmIChidW1wVGFzayAmJiAhc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCdidW1wJykpIHtcbiAgICAgICAgY29uc3Qgc3ViQnVtcFRhc2sgPSBzdWJQcm9qZWN0LmFkZFRhc2soYnVtcFRhc2submFtZSwge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBidW1wVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgICBjb25kaXRpb246IGJ1bXBUYXNrLmNvbmRpdGlvbixcbiAgICAgICAgICBlbnY6IGJ1bXBFbnZzLFxuICAgICAgICB9KTtcbiAgICAgICAgc3ViQnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9idW1wLXZlcnNpb24nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHVuYnVtcFRhc2sgJiYgIXN1YlByb2plY3QudGFza3MudHJ5RmluZCgndW5idW1wJykpIHtcbiAgICAgICAgY29uc3Qgc3ViQnVtcFRhc2sgPSBzdWJQcm9qZWN0LmFkZFRhc2sodW5idW1wVGFzay5uYW1lLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IHVuYnVtcFRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29uZGl0aW9uOiB1bmJ1bXBUYXNrLmNvbmRpdGlvbixcbiAgICAgICAgICBlbnY6IGJ1bXBFbnZzLFxuICAgICAgICB9KTtcbiAgICAgICAgc3ViQnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9yZXNldC12ZXJzaW9uJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZERvY3VtZW50c0luZGV4KCkge1xuICAgIGlmICghdGhpcy5wcm9qZWN0LmRvY2dlbikge3JldHVybjt9XG5cbiAgICBjb25zdCBzdWJQcm9qZWN0c0RvY3M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIGNvbnN0IGluZGV4TWFya2Rvd24gPSBuZXcgU291cmNlQ29kZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS9pbmRleC5tZGApO1xuICAgIGNvbnN0IHJlYWRtZU1hcmtkb3duID0gbmV3IFNvdXJjZUNvZGUodGhpcy5wcm9qZWN0LCBgJHt0aGlzLnByb2plY3QuZG9jc0RpcmVjdG9yeX0vUkVBRE1FLm1kYCk7XG5cbiAgICB0aGlzLnByb2plY3Quc3VicHJvamVjdHMuZm9yRWFjaCgoc3ViUHJvamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpO1xuICAgICAgaWYgKCFzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSkge3JldHVybjt9XG5cbiAgICAgIGNvbnN0IHN1YlByb2plY3RQYXRoID0gdGhpcy5nZXRTdWJQcm9qZWN0UGF0aChzdWJQcm9qZWN0KTtcbiAgICAgIGNvbnN0IGpzaWlEb2NzT3V0cHV0ID0gZXh0cmFjdEpzaWlEb2NzT3V0cHV0KHN1YlByb2plY3QudGFza3MpO1xuICAgICAgaWYgKGpzaWlEb2NzT3V0cHV0KSB7XG4gICAgICAgIGNvbnN0IGRvY3NQYXRoID0gYCR7c3ViUHJvamVjdFBhdGh9LyR7anNpaURvY3NPdXRwdXR9YDtcbiAgICAgICAgaW5kZXhNYXJrZG93bi5saW5lKGAtICMjIFske3N1YlByb2plY3QubmFtZX1dKCR7ZG9jc1BhdGh9KWApO1xuICAgICAgICBzdWJQcm9qZWN0c0RvY3Nbc3ViUHJvamVjdC5uYW1lXSA9IGRvY3NQYXRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBgJHtzdWJQcm9qZWN0UGF0aH0vaW5kZXguaHRtbGA7XG4gICAgICB9XG4gICAgICByZWFkbWVNYXJrZG93bi5saW5lKGAtICMjIFske3N1YlByb2plY3QubmFtZX1dKC4uLyR7c3ViUHJvamVjdFBhdGh9L1JFQURNRS5tZClgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGluZGV4SHRtbCA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L2luZGV4Lmh0bWxgKTtcbiAgICBpbmRleEh0bWwubGluZSgnPCFET0NUWVBFIGh0bWw+Jyk7XG4gICAgaW5kZXhIdG1sLmxpbmUoJzxodG1sPicpO1xuICAgIGluZGV4SHRtbC5vcGVuKCc8Ym9keT4nKTtcbiAgICBpbmRleEh0bWwub3BlbignPHVsPicpO1xuICAgIE9iamVjdC5lbnRyaWVzKHN1YlByb2plY3RzRG9jcykuZm9yRWFjaCgoW25hbWUsIGRvY3NQYXRoXSkgPT4ge1xuICAgICAgaW5kZXhIdG1sLm9wZW4oJzxsaT4nKTtcbiAgICAgIGluZGV4SHRtbC5vcGVuKGA8YSBocmVmPVwiJHtkb2NzUGF0aH1cIj5gKTtcbiAgICAgIGluZGV4SHRtbC5saW5lKG5hbWUpO1xuICAgICAgaW5kZXhIdG1sLmNsb3NlKCc8L2E+Jyk7XG4gICAgICBpbmRleEh0bWwuY2xvc2UoJzwvbGk+Jyk7XG4gICAgfSk7XG4gICAgaW5kZXhIdG1sLmNsb3NlKCc8L3VsPicpO1xuICAgIGluZGV4SHRtbC5jbG9zZSgnPC9ib2R5PicpO1xuICAgIGluZGV4SHRtbC5saW5lKCc8L2h0bWw+Jyk7XG4gICAgaW5kZXhIdG1sLmxpbmUoKTtcblxuICAgIHRoaXMucHJvamVjdC5naXRhdHRyaWJ1dGVzLmFkZEF0dHJpYnV0ZXMoYC8ke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS8qKmAsICdsaW5ndWlzdC1nZW5lcmF0ZWQnKTtcbiAgfVxufSJdfQ==
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUE2QjtBQUM3QixtQ0FBZ0c7QUFHaEcsMENBQXdCO0FBQ3hCLG1DQUFpQztBQUVqQyxTQUFTLGdCQUFnQixDQUFDLE9BQWdCO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFDO0lBQ2hGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxPQUFnQjtJQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JGLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGdDQUFnQyxDQUFDO0FBRXpELFNBQVMscUJBQXFCLENBQUMsS0FBWTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQUEsT0FB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QUN2QixTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksUUFBUSxJQUFJLENBQUMsQ0FBQztZQUN6QyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JCLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEIsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDdEcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IEpzb25GaWxlLCBqYXZhc2NyaXB0LCBQcm9qZWN0LCBUYXNrcywgU291cmNlQ29kZSwgdHlwZXNjcmlwdCwgWWFtbEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTGVybmFQcm9qZWN0T3B0aW9ucywgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMsIFRhc2tDdXN0b21pemF0aW9uLCBUYXNrQ3VzdG9taXphdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZnVuY3Rpb24gZ2V0RG9jc0RpcmVjdG9yeShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHByb2plY3QpLmZpbmQoKFtrZXldKSA9PiBrZXkgPT09ICdkb2NzRGlyZWN0b3J5Jyk7XG4gIHJldHVybiByZXN1bHQ/LlsxXS5yZXBsYWNlKC9cXC8kLywgJycpO1xufVxuXG5mdW5jdGlvbiBnZXRBcnRpZmFjdHNEaXJlY3RvcnkocHJvamVjdDogUHJvamVjdCkge1xuICBjb25zdCByZXN1bHQgPSBPYmplY3QuZW50cmllcyhwcm9qZWN0KS5maW5kKChba2V5XSkgPT4ga2V5ID09PSAnYXJ0aWZhY3RzRGlyZWN0b3J5Jyk7XG4gIHJldHVybiByZXN1bHQ/LlsxXTtcbn1cblxuY29uc3QganNpaVRhc2tQYXR0ZXJuID0gL2pzaWktZG9jZ2VuIC1vICg/PG91dHB1dD4uKykkL2k7XG5cbmZ1bmN0aW9uIGV4dHJhY3RKc2lpRG9jc091dHB1dCh0YXNrczogVGFza3MpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBqc2lpRG9jU3RlcCA9IHRhc2tzLnRyeUZpbmQoJ2RvY2dlbicpPy5zdGVwcy5maW5kKHN0ZXAgPT4ganNpaVRhc2tQYXR0ZXJuLnRlc3Qoc3RlcC5leGVjID8/ICcnKSk7XG4gIGlmICghanNpaURvY1N0ZXAgfHwgIWpzaWlEb2NTdGVwLmV4ZWMpIHtyZXR1cm47fVxuXG4gIGNvbnN0IG1hdGNoID0ganNpaURvY1N0ZXAuZXhlYy5tYXRjaChqc2lpVGFza1BhdHRlcm4pO1xuICByZXR1cm4gbWF0Y2g/Lmdyb3Vwcz8ub3V0cHV0O1xufVxuXG5mdW5jdGlvbiBhcHBlbmRXb3JrZmxvd0Jvb3RzdHJhcFN0ZXBzPFQgZXh0ZW5kcyBMZXJuYVByb2plY3RPcHRpb25zIHwgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnM+KG9wdGlvbnM6IFQpOiBUIHtcbiAgaWYgKCFvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UpIHtyZXR1cm4gb3B0aW9uczt9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIHdvcmtmbG93Qm9vdHN0cmFwU3RlcHM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ0ZldGNoIHRhZ3MnLFxuICAgICAgICBydW46ICdpZiBbICQoZ2l0IHJldi1wYXJzZSAtLWlzLXNoYWxsb3ctcmVwb3NpdG9yeSkgIT0gXCJmYWxzZVwiIF0gOyB0aGVuIGdpdCBmZXRjaCBvcmlnaW4gbWFpbiAtLXRhZ3MgLS11bnNoYWxsb3c7IGZpJyxcbiAgICAgICAgaWY6ICcke3sgZ2l0aHViLndvcmtmbG93ID09IFxcJ2J1aWxkXFwnIH19JyxcbiAgICAgIH0sXG4gICAgICAuLi5vcHRpb25zLndvcmtmbG93Qm9vdHN0cmFwU3RlcHMgPz8gW10sXG4gICAgXSxcbiAgfTtcbn1cblxuY29uc3QgbG9ja2VkVGFza05hbWVzID0gWydidWlsZCcsICd1cGdyYWRlJywgJ3VwZ3JhZGUtcHJvamVuJywgJ2Nsb2JiZXInLCAncG9zdC11cGdyYWRlJ107XG5cbmludGVyZmFjZSBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBkb2NnZW4/OiBib29sZWFuO1xuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9ucztcbiAgcmVhZG9ubHkgcG5wbVZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNpbmNlR2l0UmVmZXJlbmNlRW52aXJvbm1lbnRWYXJpYWJsZU5hbWU/OiBzdHJpbmc7XG5cbiAgY3VzdG9taXplVGFzayh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uOiBUYXNrQ3VzdG9taXphdGlvbik6IHZvaWQ7XG59XG5cbi8qKlxuICogQHBqaWQgbGVybmEtcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgTGVybmFQcm9qZWN0IGV4dGVuZHMgamF2YXNjcmlwdC5Ob2RlUHJvamVjdCBpbXBsZW1lbnRzIElMZXJuYVByb2plY3Qge1xuXG4gIHByaXZhdGUgcHJvamVucmNUczogYm9vbGVhbjtcblxuICByZWFkb25seSBkb2NzRGlyZWN0b3J5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRvY2dlbjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdGFza0N1c3RvbWl6YXRpb25zOiBUYXNrQ3VzdG9taXphdGlvbnM7XG4gIHJlYWRvbmx5IHBucG1WZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBzaW5jZUdpdFJlZmVyZW5jZUVudmlyb25tZW50VmFyaWFibGVOYW1lPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yeTogTGVybmFQcm9qZWN0RmFjdG9yeTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMZXJuYVByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwZW5kV29ya2Zsb3dCb290c3RyYXBTdGVwcyhvcHRpb25zKSk7XG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5yY1RzKSB7dGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlJywgJ3R5cGVzY3JpcHQnKTt9XG5cbiAgICB0aGlzLmRvY3NEaXJlY3RvcnkgPSBvcHRpb25zLmRvY3NEaXJlY3RvcnkgPz8gJ2RvY3MnO1xuICAgIHRoaXMuZG9jZ2VuID0gb3B0aW9ucy5kb2NnZW4gPz8gZmFsc2U7XG4gICAgdGhpcy5zaW5jZUxhc3RSZWxlYXNlID0gb3B0aW9ucy5zaW5jZUxhc3RSZWxlYXNlID8/IGZhbHNlO1xuICAgIHRoaXMudXNlTnggPSBvcHRpb25zLnVzZU54ID8/IGZhbHNlO1xuICAgIHRoaXMucHJvamVucmNUcyA9IG9wdGlvbnMucHJvamVucmNUcyA/PyBmYWxzZTtcbiAgICB0aGlzLmluZGVwZW5kZW50TW9kZSA9IG9wdGlvbnMuaW5kZXBlbmRlbnRNb2RlID8/IGZhbHNlO1xuICAgIHRoaXMudXNlV29ya3NwYWNlcyA9IG9wdGlvbnMudXNlV29ya3NwYWNlcyA/PyBmYWxzZTtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9O1xuICAgIHRoaXMucG5wbVZlcnNpb24gPSBvcHRpb25zLnBucG1WZXJzaW9uO1xuICAgIHRoaXMuc2luY2VHaXRSZWZlcmVuY2VFbnZpcm9ubWVudFZhcmlhYmxlTmFtZSA9IG9wdGlvbnMuc2luY2VHaXRSZWZlcmVuY2VFbnZpcm9ubWVudFZhcmlhYmxlTmFtZTtcblxuICAgIHRoaXMuZmFjdG9yeSA9IG5ldyBMZXJuYVByb2plY3RGYWN0b3J5KHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjdXN0b21pemF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHRhc2tcbiAgICpcbiAgICogQHBhcmFtIHRhc2tOYW1lIE5hbWUgb2YgdGhlIHRhc2sgdG8gY3VzdG9taXplXG4gICAqIEBwYXJhbSBjdXN0b21pemF0aW9uIFRhc2tDdXN0b21pemF0aW9uIG9wdGlvbnNcbiAgICovXG4gIGN1c3RvbWl6ZVRhc2sodGFza05hbWU6IHN0cmluZywgY3VzdG9taXphdGlvbjogVGFza0N1c3RvbWl6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9uc1t0YXNrTmFtZV0gPSBjdXN0b21pemF0aW9uO1xuICB9XG5cbiAgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG4gICAgY29uc3QgcHJvamVuQ29tbWFuZCA9IHRoaXMucHJvamVucmNUcyA/ICd0cy1ub2RlIC0tc2tpcC1wcm9qZWN0IC5wcm9qZW5yYy50cycgOiAnbm9kZSAucHJvamVucmMuanMnO1xuICAgIGNvbnN0IHsgZGVmYXVsdFRhc2sgfSA9IHRoaXM7XG4gICAgaWYgKCFkZWZhdWx0VGFzaykge3Rocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgZGVmYXVsdCB0YXNrJyk7fVxuICAgIGRlZmF1bHRUYXNrLnJlc2V0KHByb2plbkNvbW1hbmQpO1xuXG4gICAgdGhpcy5mYWN0b3J5LmJ1aWxkKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGppZCBsZXJuYS10cy1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBMZXJuYVR5cGVzY3JpcHRQcm9qZWN0IGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCBpbXBsZW1lbnRzIElMZXJuYVByb2plY3Qge1xuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuO1xuICByZWFkb25seSB1c2VOeDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaW5kZXBlbmRlbnRNb2RlOiBib29sZWFuO1xuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuO1xuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9ucztcbiAgcmVhZG9ubHkgcG5wbVZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNpbmNlR2l0UmVmZXJlbmNlRW52aXJvbm1lbnRWYXJpYWJsZU5hbWU/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBMZXJuYVByb2plY3RGYWN0b3J5O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwZW5kV29ya2Zsb3dCb290c3RyYXBTdGVwcyhvcHRpb25zKSk7XG5cbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2U7XG4gICAgdGhpcy51c2VOeCA9IG9wdGlvbnMudXNlTnggPz8gZmFsc2U7XG4gICAgdGhpcy5pbmRlcGVuZGVudE1vZGUgPSBvcHRpb25zLmluZGVwZW5kZW50TW9kZSA/PyBmYWxzZTtcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2U7XG4gICAgdGhpcy50YXNrQ3VzdG9taXphdGlvbnMgPSBvcHRpb25zLnRhc2tDdXN0b21pemF0aW9ucyA/PyB7fTtcbiAgICB0aGlzLnBucG1WZXJzaW9uID0gb3B0aW9ucy5wbnBtVmVyc2lvbjtcbiAgICB0aGlzLnNpbmNlR2l0UmVmZXJlbmNlRW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgPSBvcHRpb25zLnNpbmNlR2l0UmVmZXJlbmNlRW52aXJvbm1lbnRWYXJpYWJsZU5hbWU7XG5cbiAgICBpZiAoIShvcHRpb25zLmhhc1Jvb3RTb3VyY2VDb2RlID8/IGZhbHNlKSkge3RoaXMudGFza3MudHJ5RmluZCgnY29tcGlsZScpPy5yZXNldCgpO31cblxuICAgIHRoaXMudGFza3MudHJ5RmluZCgnZG9jZ2VuJyk/LnJlc2V0KCk7XG5cbiAgICB0aGlzLmZhY3RvcnkgPSBuZXcgTGVybmFQcm9qZWN0RmFjdG9yeSh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9taXphdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0YXNrXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrTmFtZSBOYW1lIG9mIHRoZSB0YXNrIHRvIGN1c3RvbWl6ZVxuICAgKiBAcGFyYW0gY3VzdG9taXphdGlvbiBUYXNrQ3VzdG9taXphdGlvbiBvcHRpb25zXG4gICAqL1xuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy50YXNrQ3VzdG9taXphdGlvbnNbdGFza05hbWVdID0gY3VzdG9taXphdGlvbjtcbiAgfVxuXG4gIHByZVN5bnRoZXNpemUoKSB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpO1xuICAgIHRoaXMuZmFjdG9yeS5idWlsZCgpO1xuICB9XG59XG5cbmNsYXNzIExlcm5hUHJvamVjdEZhY3Rvcnkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb2plY3Q6IElMZXJuYVByb2plY3QgJiBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0KSB7XG4gICAgcHJvamVjdC5hZGREZXZEZXBzKCdsZXJuYS1wcm9qZW4nLCAnbGVybmEnKTtcbiAgfVxuXG4gIGJ1aWxkKCkge1xuICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5yZXNldChgbWtkaXIgLXAgJHt0aGlzLnByb2plY3QuYXJ0aWZhY3RzSmF2YXNjcmlwdERpcmVjdG9yeX1gKTtcbiAgICB0aGlzLnByb2plY3QucHJlQ29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIGNsZWFuLWRpc3QgJHt0aGlzLnByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5fWApO1xuXG4gICAgdGhpcy5zZXR1cFBhY2thZ2VNYW5hZ2VyKCk7XG4gICAgdGhpcy5hcHBlbmRMZXJuYUNvbW1hbmRzKCk7XG4gICAgdGhpcy5hZGRDcm9zc0xpbmtzKCk7XG4gICAgdGhpcy51cGRhdGVTdWJQcm9qZWN0cygpO1xuICAgIHRoaXMuYWRkRG9jdW1lbnRzSW5kZXgoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBQYWNrYWdlTWFuYWdlcigpIHtcbiAgICBpZiAodGhpcy5wcm9qZWN0LnBhY2thZ2UucGFja2FnZU1hbmFnZXIgPT09IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0gJiYgTnVtYmVyKHRoaXMucHJvamVjdC5wbnBtVmVyc2lvbikgPj0gOSkge1xuICAgICAgdGhpcy5wcm9qZWN0Lm5wbXJjLmFkZENvbmZpZygnbm9kZS1saW5rZXInLCAnaG9pc3RlZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3ViUHJvamVjdFBhdGgoc3ViUHJvamVjdDogUHJvamVjdCkge1xuICAgIHJldHVybiBwYXRoLnJlbGF0aXZlKHRoaXMucHJvamVjdC5vdXRkaXIsIHN1YlByb2plY3Qub3V0ZGlyKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ3Jvc3NMaW5rcygpIHtcblxuICAgIGNvbnN0IGxlcm5hQ29uZmlnOiBhbnkgPSB7XG4gICAgICB1c2VOeDogdGhpcy5wcm9qZWN0LnVzZU54LFxuICAgICAgdmVyc2lvbjogdGhpcy5wcm9qZWN0LmluZGVwZW5kZW50TW9kZSA/ICdpbmRlcGVuZGVudCcgOiAnMC4wLjAnLFxuICAgIH07XG5cbiAgICBjb25zdCBwYWNrYWdlcyA9IHRoaXMucHJvamVjdC5zdWJwcm9qZWN0cy5tYXAoc3ViUHJvamVjdCA9PiB0aGlzLmdldFN1YlByb2plY3RQYXRoKHN1YlByb2plY3QpKTtcblxuICAgIGlmICh0aGlzLnByb2plY3QudXNlV29ya3NwYWNlcykge1xuICAgICAgaWYgKHRoaXMucHJvamVjdC5wYWNrYWdlTWFuYWdlciA9PT0gamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuUE5QTSkge1xuICAgICAgICBuZXcgWWFtbEZpbGUodGhpcy5wcm9qZWN0LCAncG5wbS13b3Jrc3BhY2UueWFtbCcsIHtcbiAgICAgICAgICBvYmo6IHtcbiAgICAgICAgICAgIHBhY2thZ2VzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5wcm9qZWN0LnBhY2thZ2UuYWRkRmllbGQoJ3dvcmtzcGFjZXMnLCBwYWNrYWdlcyk7XG4gICAgfSBlbHNlIHtsZXJuYUNvbmZpZy5wYWNrYWdlcyA9IHBhY2thZ2VzO31cblxuXG4gICAgbmV3IEpzb25GaWxlKHRoaXMucHJvamVjdCwgJ2xlcm5hLmpzb24nLCB7XG4gICAgICBvYmo6IGxlcm5hQ29uZmlnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmRMZXJuYUNvbW1hbmRzKCkge1xuICAgIGNvbnN0IHVwZ3JhZGVUYXNrTmFtZSA9ICd1cGdyYWRlJztcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2tOYW1lID0gJ3Bvc3QtdXBncmFkZSc7XG4gICAgY29uc3QgcG9zdFVwZ3JhZGVUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQocG9zdFVwZ3JhZGVUYXNrTmFtZSk7XG4gICAgcG9zdFVwZ3JhZGVUYXNrPy5wcmVwZW5kRXhlYyh0aGlzLmdldExlcm5hQ29tbWFuZCh1cGdyYWRlVGFza05hbWUsIHsgc2luY2VMYXN0UmVsZWFzZTogZmFsc2UgfSkpO1xuICAgIHBvc3RVcGdyYWRlVGFzaz8uZXhlYygnbnB4IHByb2plbicpO1xuXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLmFsbFxuICAgICAgLmZvckVhY2godGFzayA9PiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbWl6YXRpb24gPSB0aGlzLnByb2plY3QudGFza0N1c3RvbWl6YXRpb25zW3Rhc2submFtZV07XG4gICAgICAgIGNvbnN0IGFkZExlcm5hU3RlcCA9IGN1c3RvbWl6YXRpb24/LmFkZExlcm5hU3RlcCA/PyB0cnVlO1xuXG4gICAgICAgIGlmIChsb2NrZWRUYXNrTmFtZXMuaW5jbHVkZXModGFzay5uYW1lKSB8fCAhYWRkTGVybmFTdGVwKSB7cmV0dXJuO31cblxuICAgICAgICB0YXNrLmV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodGFzay5uYW1lLCBjdXN0b21pemF0aW9uKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGVybmFDb21tYW5kKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb24/OiBUYXNrQ3VzdG9taXphdGlvbikge1xuICAgIGNvbnN0IG1haW5Db21tYW5kID0gYGxlcm5hIHJ1biAke3Rhc2tOYW1lfSAtLXN0cmVhbWA7XG4gICAgY29uc3QgdXNlU2luY2VGbGFnID0gY3VzdG9taXphdGlvbj8uc2luY2VMYXN0UmVsZWFzZSA/PyB0aGlzLnByb2plY3Quc2luY2VMYXN0UmVsZWFzZTtcblxuICAgIGNvbnN0IGluY2x1ZGVQYXR0ZXJucyA9IGN1c3RvbWl6YXRpb24/LmluY2x1ZGUgPz8gW107XG4gICAgY29uc3QgZXhjbHVkZVBhdHRlcm5zID0gY3VzdG9taXphdGlvbj8uZXhjbHVkZSA/PyBbXTtcblxuICAgIGNvbnN0IHNjb3BlRmxhZ3MgPSBpbmNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0tc2NvcGUgJHtnbG9ifWApLmpvaW4oJycpO1xuICAgIGNvbnN0IGlnbm9yZUZsYWdzID0gZXhjbHVkZVBhdHRlcm5zLm1hcCgoZ2xvYikgPT4gYCAtLWlnbm9yZSAke2dsb2J9YCkuam9pbignJyk7XG5cblxuICAgIGNvbnN0IHBvc3RDb21tYW5kID0gdXNlU2luY2VGbGFnID8gYCAtLXNpbmNlICR7dGhpcy5nZXRTaW5jZUNvbW1hbmQoKX1gIDogJyc7XG4gICAgcmV0dXJuIGAke21haW5Db21tYW5kfSR7cG9zdENvbW1hbmR9JHtzY29wZUZsYWdzfSR7aWdub3JlRmxhZ3N9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2luY2VDb21tYW5kKCkge1xuICAgIGlmICh0aGlzLnByb2plY3Quc2luY2VHaXRSZWZlcmVuY2VFbnZpcm9ubWVudFZhcmlhYmxlTmFtZSkge1xuICAgICAgcmV0dXJuIGBcXCR7JHt0aGlzLnByb2plY3Quc2luY2VHaXRSZWZlcmVuY2VFbnZpcm9ubWVudFZhcmlhYmxlTmFtZX06LSQoZ2l0IGRlc2NyaWJlIC0tYWJicmV2PTAgLS10YWdzIC0tbWF0Y2ggXCJ2KlwiIEhFQUReKX1gO1xuICAgIH1cbiAgICByZXR1cm4gJyQoZ2l0IGRlc2NyaWJlIC0tYWJicmV2PTAgLS10YWdzIC0tbWF0Y2ggXCJ2KlwiIEhFQUReKSc7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN1YlByb2plY3RzKCkge1xuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ2J1bXAnKTtcbiAgICBjb25zdCB1bmJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ3VuYnVtcCcpO1xuXG4gICAgdGhpcy5wcm9qZWN0LnN1YnByb2plY3RzLmZvckVhY2goKHN1YlByb2plY3QpID0+IHtcbiAgICAgIGNvbnN0IHN1YlByb2plY3REb2NzRGlyZWN0b3J5ID0gZ2V0RG9jc0RpcmVjdG9yeShzdWJQcm9qZWN0KTtcbiAgICAgIGNvbnN0IHN1YlByb2plY3RQYXRoID0gdGhpcy5nZXRTdWJQcm9qZWN0UGF0aChzdWJQcm9qZWN0KTtcbiAgICAgIGlmICh0aGlzLnByb2plY3QuZG9jZ2VuICYmIHN1YlByb2plY3REb2NzRGlyZWN0b3J5KSB7dGhpcy5wcm9qZWN0LnBvc3RDb21waWxlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gbW92ZS1kb2NzICR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9ICR7c3ViUHJvamVjdFBhdGh9ICR7c3ViUHJvamVjdERvY3NEaXJlY3Rvcnl9YCk7fVxuXG4gICAgICBjb25zdCBwYWNrYWdlQWxsVGFzayA9IHN1YlByb2plY3QudGFza3MudHJ5RmluZCgncGFja2FnZS1hbGwnKTtcblxuICAgICAgaWYgKHBhY2thZ2VBbGxUYXNrKSB7c3ViUHJvamVjdC5wYWNrYWdlVGFzay5zcGF3bihwYWNrYWdlQWxsVGFzayk7fVxuXG4gICAgICBjb25zdCBhcnRpZmFjdHNEaXJlY3RvcnkgPSBnZXRBcnRpZmFjdHNEaXJlY3Rvcnkoc3ViUHJvamVjdCk7XG5cbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gY29weS1kaXN0ICR7c3ViUHJvamVjdFBhdGh9LyR7YXJ0aWZhY3RzRGlyZWN0b3J5fSAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNEaXJlY3Rvcnl9YCk7XG5cbiAgICAgIHN1YlByb2plY3QuZGVmYXVsdFRhc2s/LnJlc2V0KCk7XG5cbiAgICAgIGNvbnN0IGJ1bXBFbnZzID0ge1xuICAgICAgICBPVVRGSUxFOiAncGFja2FnZS5qc29uJyxcbiAgICAgICAgQ0hBTkdFTE9HOiBgJHthcnRpZmFjdHNEaXJlY3Rvcnl9L2NoYW5nZWxvZy5tZGAsXG4gICAgICAgIEJVTVBGSUxFOiBgJHthcnRpZmFjdHNEaXJlY3Rvcnl9L3ZlcnNpb24udHh0YCxcbiAgICAgICAgUkVMRUFTRVRBRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9yZWxlYXNldGFnLnR4dGAsXG4gICAgICAgIFJFTEVBU0VfVEFHX1BSRUZJWDogJycsXG4gICAgICB9O1xuXG4gICAgICBpZiAoYnVtcFRhc2sgJiYgIXN1YlByb2plY3QudGFza3MudHJ5RmluZCgnYnVtcCcpKSB7XG4gICAgICAgIGNvbnN0IHN1YkJ1bXBUYXNrID0gc3ViUHJvamVjdC5hZGRUYXNrKGJ1bXBUYXNrLm5hbWUsIHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYnVtcFRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29uZGl0aW9uOiBidW1wVGFzay5jb25kaXRpb24sXG4gICAgICAgICAgZW52OiBidW1wRW52cyxcbiAgICAgICAgfSk7XG4gICAgICAgIHN1YkJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvYnVtcC12ZXJzaW9uJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh1bmJ1bXBUYXNrICYmICFzdWJQcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ3VuYnVtcCcpKSB7XG4gICAgICAgIGNvbnN0IHN1YkJ1bXBUYXNrID0gc3ViUHJvamVjdC5hZGRUYXNrKHVuYnVtcFRhc2submFtZSwge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiB1bmJ1bXBUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGNvbmRpdGlvbjogdW5idW1wVGFzay5jb25kaXRpb24sXG4gICAgICAgICAgZW52OiBidW1wRW52cyxcbiAgICAgICAgfSk7XG4gICAgICAgIHN1YkJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvcmVzZXQtdmVyc2lvbicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGREb2N1bWVudHNJbmRleCgpIHtcbiAgICBpZiAoIXRoaXMucHJvamVjdC5kb2NnZW4pIHtyZXR1cm47fVxuXG4gICAgY29uc3Qgc3ViUHJvamVjdHNEb2NzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICBjb25zdCBpbmRleE1hcmtkb3duID0gbmV3IFNvdXJjZUNvZGUodGhpcy5wcm9qZWN0LCBgJHt0aGlzLnByb2plY3QuZG9jc0RpcmVjdG9yeX0vaW5kZXgubWRgKTtcbiAgICBjb25zdCByZWFkbWVNYXJrZG93biA9IG5ldyBTb3VyY2VDb2RlKHRoaXMucHJvamVjdCwgYCR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9L1JFQURNRS5tZGApO1xuXG4gICAgdGhpcy5wcm9qZWN0LnN1YnByb2plY3RzLmZvckVhY2goKHN1YlByb2plY3QpID0+IHtcbiAgICAgIGNvbnN0IHN1YlByb2plY3REb2NzRGlyZWN0b3J5ID0gZ2V0RG9jc0RpcmVjdG9yeShzdWJQcm9qZWN0KTtcbiAgICAgIGlmICghc3ViUHJvamVjdERvY3NEaXJlY3RvcnkpIHtyZXR1cm47fVxuXG4gICAgICBjb25zdCBzdWJQcm9qZWN0UGF0aCA9IHRoaXMuZ2V0U3ViUHJvamVjdFBhdGgoc3ViUHJvamVjdCk7XG4gICAgICBjb25zdCBqc2lpRG9jc091dHB1dCA9IGV4dHJhY3RKc2lpRG9jc091dHB1dChzdWJQcm9qZWN0LnRhc2tzKTtcbiAgICAgIGlmIChqc2lpRG9jc091dHB1dCkge1xuICAgICAgICBjb25zdCBkb2NzUGF0aCA9IGAke3N1YlByb2plY3RQYXRofS8ke2pzaWlEb2NzT3V0cHV0fWA7XG4gICAgICAgIGluZGV4TWFya2Rvd24ubGluZShgLSAjIyBbJHtzdWJQcm9qZWN0Lm5hbWV9XSgke2RvY3NQYXRofSlgKTtcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBkb2NzUGF0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1YlByb2plY3RzRG9jc1tzdWJQcm9qZWN0Lm5hbWVdID0gYCR7c3ViUHJvamVjdFBhdGh9L2luZGV4Lmh0bWxgO1xuICAgICAgfVxuICAgICAgcmVhZG1lTWFya2Rvd24ubGluZShgLSAjIyBbJHtzdWJQcm9qZWN0Lm5hbWV9XSguLi8ke3N1YlByb2plY3RQYXRofS9SRUFETUUubWQpYCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBpbmRleEh0bWwgPSBuZXcgU291cmNlQ29kZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS9pbmRleC5odG1sYCk7XG4gICAgaW5kZXhIdG1sLmxpbmUoJzwhRE9DVFlQRSBodG1sPicpO1xuICAgIGluZGV4SHRtbC5saW5lKCc8aHRtbD4nKTtcbiAgICBpbmRleEh0bWwub3BlbignPGJvZHk+Jyk7XG4gICAgaW5kZXhIdG1sLm9wZW4oJzx1bD4nKTtcbiAgICBPYmplY3QuZW50cmllcyhzdWJQcm9qZWN0c0RvY3MpLmZvckVhY2goKFtuYW1lLCBkb2NzUGF0aF0pID0+IHtcbiAgICAgIGluZGV4SHRtbC5vcGVuKCc8bGk+Jyk7XG4gICAgICBpbmRleEh0bWwub3BlbihgPGEgaHJlZj1cIiR7ZG9jc1BhdGh9XCI+YCk7XG4gICAgICBpbmRleEh0bWwubGluZShuYW1lKTtcbiAgICAgIGluZGV4SHRtbC5jbG9zZSgnPC9hPicpO1xuICAgICAgaW5kZXhIdG1sLmNsb3NlKCc8L2xpPicpO1xuICAgIH0pO1xuICAgIGluZGV4SHRtbC5jbG9zZSgnPC91bD4nKTtcbiAgICBpbmRleEh0bWwuY2xvc2UoJzwvYm9keT4nKTtcbiAgICBpbmRleEh0bWwubGluZSgnPC9odG1sPicpO1xuICAgIGluZGV4SHRtbC5saW5lKCk7XG5cbiAgICB0aGlzLnByb2plY3QuZ2l0YXR0cmlidXRlcy5hZGRBdHRyaWJ1dGVzKGAvJHt0aGlzLnByb2plY3QuZG9jc0RpcmVjdG9yeX0vKipgLCAnbGluZ3Vpc3QtZ2VuZXJhdGVkJyk7XG4gIH1cbn0iXX0=
|
package/lib/types.d.ts
CHANGED
|
@@ -7,6 +7,16 @@ export interface LernaCommonProjectOptions {
|
|
|
7
7
|
* @experimental
|
|
8
8
|
*/
|
|
9
9
|
readonly sinceLastRelease?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* (experimental) Environment variable name to read the git reference from
|
|
12
|
+
* to be used as the base for the `since` option in lerna commands.
|
|
13
|
+
* If not provided, defaults to running git command to find last release tag.
|
|
14
|
+
* The reference that is stored in the environment variable could be:
|
|
15
|
+
* a commit SHA, branch name, or tag name.
|
|
16
|
+
*
|
|
17
|
+
* @experimental
|
|
18
|
+
*/
|
|
19
|
+
readonly sinceGitReferenceEnvironmentVariableName?: string;
|
|
10
20
|
/**
|
|
11
21
|
* Whether or not to use Nx for task scheduling
|
|
12
22
|
* https://lerna.js.org/docs/lerna-and-nx
|
package/lib/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGphdmFzY3JpcHQsIHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hQ29tbW9uUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogKGV4cGVyaW1lbnRhbCkgRmxhZyB0byBydW4gdGFza3Mgb25seSBmb3IgdGhlIHBhY2thZ2VzIHRoYXQgaGFzIGNoYW5nZXMgc2luY2UgbGFzdCByZWxlYXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGphdmFzY3JpcHQsIHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hQ29tbW9uUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogKGV4cGVyaW1lbnRhbCkgRmxhZyB0byBydW4gdGFza3Mgb25seSBmb3IgdGhlIHBhY2thZ2VzIHRoYXQgaGFzIGNoYW5nZXMgc2luY2UgbGFzdCByZWxlYXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBFbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIHRvIHJlYWQgdGhlIGdpdCByZWZlcmVuY2UgZnJvbVxuICAgKiB0byBiZSB1c2VkIGFzIHRoZSBiYXNlIGZvciB0aGUgYHNpbmNlYCBvcHRpb24gaW4gbGVybmEgY29tbWFuZHMuXG4gICAqIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdHMgdG8gcnVubmluZyBnaXQgY29tbWFuZCB0byBmaW5kIGxhc3QgcmVsZWFzZSB0YWcuXG4gICAqIFRoZSByZWZlcmVuY2UgdGhhdCBpcyBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGNvdWxkIGJlOlxuICAgKiBhIGNvbW1pdCBTSEEsIGJyYW5jaCBuYW1lLCBvciB0YWcgbmFtZS5cbiAgICpcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc2luY2VHaXRSZWZlcmVuY2VFbnZpcm9ubWVudFZhcmlhYmxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIE54IGZvciB0YXNrIHNjaGVkdWxpbmdcbiAgICogaHR0cHM6Ly9sZXJuYS5qcy5vcmcvZG9jcy9sZXJuYS1hbmQtbnhcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZU54PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIGluZGVwZW5kZW50IHZlcnNpb25pbmcgZm9yIHN1Yi1wcm9qZWN0c1xuICAgKiBodHRwczovL2xlcm5hLmpzLm9yZy9kb2NzL2ZlYXR1cmVzL3ZlcnNpb24tYW5kLXB1Ymxpc2gjaW5kZXBlbmRlbnQtbW9kZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZXBlbmRlbnRNb2RlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIHdvcmtzcGFjZXMgaW4gdGhlIHBhY2thZ2UuanNvbiBmaWxlXG4gICAqIE90aGVyd2lzZSwgd2lsbCBhZGQgcGFja2FnZXMgdG8gbGVybmEuanNvblxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEtleSB2YWx1ZSBwYWlyIG9mIHRhc2sgbmFtZSBhbmQgVGFza0N1c3RvbWl6YXRpb24gdG8gY3VzdG9taXplIHRoZSBsZXJuYSBydW4gc3RlcCBhZGRlZCB0byB0aGUgdGFzay5cbiAgICpcbiAgICogQGRlZmF1bHQge30gXCJObyB0YXNrIGN1c3RvbWl6YXRpb25zXCJcbiAgICovXG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9ucz86IFRhc2tDdXN0b21pemF0aW9ucztcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0T3B0aW9ucywgTGVybmFDb21tb25Qcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBVc2UgVHlwZVNjcmlwdCBmb3IgeW91ciBwcm9qZW5yYyBmaWxlIChgLnByb2plbnJjLnRzYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjVHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25zb2xpZGF0ZSBzdWIgcHJvamVjdHMgZG9jIGZpbGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIChleHBlcmltZW50YWwpIERvY3MgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImRvY3NcIlxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkb2NzRGlyZWN0b3J5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zIGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsIExlcm5hQ29tbW9uUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvamVjdCByb290IHBhY2thZ2UgaGFzIHNvdXJjZSBjb2RlLlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBgZmFsc2VgLCByZW1vdmVzIHR5cGVzY3JpcHQgY29tcGlsYXRpb24gZnJvbSB0aGUgY29tcGlsZSBzdGVwIGZvciB0aGUgcm9vdCBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaGFzUm9vdFNvdXJjZUNvZGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBUYXNrQ3VzdG9taXphdGlvbnMgPSB7IFt0YXNrTmFtZTogc3RyaW5nXTogVGFza0N1c3RvbWl6YXRpb24gfTtcblxuZXhwb3J0IGludGVyZmFjZSBUYXNrQ3VzdG9taXphdGlvbiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkZCBhIGxlcm5hIHJ1biBzdGVwIHRvIHRoZSB0YXNrXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFkZExlcm5hU3RlcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZ2xvYiBwYXR0ZXJucyBtYXRjaGluZyB0aGUgbmFtZSBvZiBwYWNrYWdlcyB0byBpbmNsdWRlIGluIHRoZSBsZXJuYSBydW4gc3RlcFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGdsb2IgcGF0dGVybnMgbWF0Y2hpbmcgdGhlIG5hbWUgb2YgcGFja2FnZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSBsZXJuYSBydW4gc3RlcFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBGbGFnIHRvIHJ1biB0YXNrcyBvbmx5IGZvciB0aGUgcGFja2FnZXMgdGhhdCBoYXMgY2hhbmdlcyBzaW5jZSBsYXN0IHJlbGVhc2VcbiAgICpcbiAgICogQGRlZmF1bHQgXCJWYWx1ZSBwYXNzZWQgaW4gcHJvamVjdCBvcHRpb25zXCJcbiAgICovXG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U/OiBib29sZWFuO1xufSJdfQ==
|