lerna-projen 0.1.698 → 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 CHANGED
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "constructs": "^10.4.2",
18
- "projen": "^0.97.2"
18
+ "projen": "^0.98.0"
19
19
  },
20
20
  "dependencyClosure": {
21
21
  "constructs": {
@@ -153,7 +153,7 @@
153
153
  "immutable": true,
154
154
  "locationInModule": {
155
155
  "filename": "src/types.ts",
156
- "line": 26
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": 41
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": 18
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": 34
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": 77
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": 62
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": 101
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": 105
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": 67
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": 66
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": 70
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": 68
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": 72
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": 69
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": 71
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": 73
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": 45
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": 60
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": 68
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": 52
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": 129
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": 119
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": 152
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": 156
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": 122
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": 120
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": 124
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": 121
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": 123
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": 125
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": 71
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": 79
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": 84
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": 90
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": 104
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": 97
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": 111
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.698",
1036
- "fingerprint": "Wjhze4VSEHKjaY8/SPdBcp+LsLTVy0Pgvjc9w1a9PsI="
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.698" };
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.698" };
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 ? ' --since $(git describe --abbrev=0 --tags --match "v*" HEAD^)' : '';
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/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2UgTnggZm9yIHRhc2sgc2NoZWR1bGluZ1xuICAgKiBodHRwczovL2xlcm5hLmpzLm9yZy9kb2NzL2xlcm5hLWFuZC1ueFxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlTng/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2UgaW5kZXBlbmRlbnQgdmVyc2lvbmluZyBmb3Igc3ViLXByb2plY3RzXG4gICAqIGh0dHBzOi8vbGVybmEuanMub3JnL2RvY3MvZmVhdHVyZXMvdmVyc2lvbi1hbmQtcHVibGlzaCNpbmRlcGVuZGVudC1tb2RlXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2Ugd29ya3NwYWNlcyBpbiB0aGUgcGFja2FnZS5qc29uIGZpbGVcbiAgICogT3RoZXJ3aXNlLCB3aWxsIGFkZCBwYWNrYWdlcyB0byBsZXJuYS5qc29uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogS2V5IHZhbHVlIHBhaXIgb2YgdGFzayBuYW1lIGFuZCBUYXNrQ3VzdG9taXphdGlvbiB0byBjdXN0b21pemUgdGhlIGxlcm5hIHJ1biBzdGVwIGFkZGVkIHRvIHRoZSB0YXNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCB7fSBcIk5vIHRhc2sgY3VzdG9taXphdGlvbnNcIlxuICAgKi9cbiAgcmVhZG9ubHkgdGFza0N1c3RvbWl6YXRpb25zPzogVGFza0N1c3RvbWl6YXRpb25zO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVybmFQcm9qZWN0T3B0aW9ucyBleHRlbmRzIGphdmFzY3JpcHQuTm9kZVByb2plY3RPcHRpb25zLCBMZXJuYUNvbW1vblByb2plY3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIChleHBlcmltZW50YWwpIFVzZSBUeXBlU2NyaXB0IGZvciB5b3VyIHByb2plbnJjIGZpbGUgKGAucHJvamVucmMudHNgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVucmNUcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnNvbGlkYXRlIHN1YiBwcm9qZWN0cyBkb2MgZmlsZXNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZG9jZ2VuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogKGV4cGVyaW1lbnRhbCkgRG9jcyBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiZG9jc1wiXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY3NEaXJlY3Rvcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucywgTGVybmFDb21tb25Qcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwcm9qZWN0IHJvb3QgcGFja2FnZSBoYXMgc291cmNlIGNvZGUuXG4gICAqXG4gICAqIFdoZW4gc2V0IHRvIGBmYWxzZWAsIHJlbW92ZXMgdHlwZXNjcmlwdCBjb21waWxhdGlvbiBmcm9tIHRoZSBjb21waWxlIHN0ZXAgZm9yIHRoZSByb290IHByb2plY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBoYXNSb290U291cmNlQ29kZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFRhc2tDdXN0b21pemF0aW9ucyA9IHsgW3Rhc2tOYW1lOiBzdHJpbmddOiBUYXNrQ3VzdG9taXphdGlvbiB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tDdXN0b21pemF0aW9uIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWRkIGEgbGVybmEgcnVuIHN0ZXAgdG8gdGhlIHRhc2tcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkTGVybmFTdGVwPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTGlzdCBvZiBnbG9iIHBhdHRlcm5zIG1hdGNoaW5nIHRoZSBuYW1lIG9mIHBhY2thZ2VzIHRvIGluY2x1ZGUgaW4gdGhlIGxlcm5hIHJ1biBzdGVwXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZ2xvYiBwYXR0ZXJucyBtYXRjaGluZyB0aGUgbmFtZSBvZiBwYWNrYWdlcyB0byBleGNsdWRlIGZyb20gdGhlIGxlcm5hIHJ1biBzdGVwXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSBleGNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIChleHBlcmltZW50YWwpIEZsYWcgdG8gcnVuIHRhc2tzIG9ubHkgZm9yIHRoZSBwYWNrYWdlcyB0aGF0IGhhcyBjaGFuZ2VzIHNpbmNlIGxhc3QgcmVsZWFzZVxuICAgKlxuICAgKiBAZGVmYXVsdCBcIlZhbHVlIHBhc3NlZCBpbiBwcm9qZWN0IG9wdGlvbnNcIlxuICAgKi9cbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZT86IGJvb2xlYW47XG59Il19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGphdmFzY3JpcHQsIHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hQ29tbW9uUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogKGV4cGVyaW1lbnRhbCkgRmxhZyB0byBydW4gdGFza3Mgb25seSBmb3IgdGhlIHBhY2thZ2VzIHRoYXQgaGFzIGNoYW5nZXMgc2luY2UgbGFzdCByZWxlYXNlXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBFbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIHRvIHJlYWQgdGhlIGdpdCByZWZlcmVuY2UgZnJvbVxuICAgKiB0byBiZSB1c2VkIGFzIHRoZSBiYXNlIGZvciB0aGUgYHNpbmNlYCBvcHRpb24gaW4gbGVybmEgY29tbWFuZHMuXG4gICAqIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdHMgdG8gcnVubmluZyBnaXQgY29tbWFuZCB0byBmaW5kIGxhc3QgcmVsZWFzZSB0YWcuXG4gICAqIFRoZSByZWZlcmVuY2UgdGhhdCBpcyBzdG9yZWQgaW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGNvdWxkIGJlOlxuICAgKiBhIGNvbW1pdCBTSEEsIGJyYW5jaCBuYW1lLCBvciB0YWcgbmFtZS5cbiAgICpcbiAgICogQGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc2luY2VHaXRSZWZlcmVuY2VFbnZpcm9ubWVudFZhcmlhYmxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIE54IGZvciB0YXNrIHNjaGVkdWxpbmdcbiAgICogaHR0cHM6Ly9sZXJuYS5qcy5vcmcvZG9jcy9sZXJuYS1hbmQtbnhcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHVzZU54PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIGluZGVwZW5kZW50IHZlcnNpb25pbmcgZm9yIHN1Yi1wcm9qZWN0c1xuICAgKiBodHRwczovL2xlcm5hLmpzLm9yZy9kb2NzL2ZlYXR1cmVzL3ZlcnNpb24tYW5kLXB1Ymxpc2gjaW5kZXBlbmRlbnQtbW9kZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZXBlbmRlbnRNb2RlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIHdvcmtzcGFjZXMgaW4gdGhlIHBhY2thZ2UuanNvbiBmaWxlXG4gICAqIE90aGVyd2lzZSwgd2lsbCBhZGQgcGFja2FnZXMgdG8gbGVybmEuanNvblxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEtleSB2YWx1ZSBwYWlyIG9mIHRhc2sgbmFtZSBhbmQgVGFza0N1c3RvbWl6YXRpb24gdG8gY3VzdG9taXplIHRoZSBsZXJuYSBydW4gc3RlcCBhZGRlZCB0byB0aGUgdGFzay5cbiAgICpcbiAgICogQGRlZmF1bHQge30gXCJObyB0YXNrIGN1c3RvbWl6YXRpb25zXCJcbiAgICovXG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9ucz86IFRhc2tDdXN0b21pemF0aW9ucztcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0T3B0aW9ucywgTGVybmFDb21tb25Qcm9qZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBVc2UgVHlwZVNjcmlwdCBmb3IgeW91ciBwcm9qZW5yYyBmaWxlIChgLnByb2plbnJjLnRzYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbnJjVHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25zb2xpZGF0ZSBzdWIgcHJvamVjdHMgZG9jIGZpbGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqIEBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGRvY2dlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIChleHBlcmltZW50YWwpIERvY3MgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImRvY3NcIlxuICAgKiBAZXhwZXJpbWVudGFsXG4gICAqL1xuICByZWFkb25seSBkb2NzRGlyZWN0b3J5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zIGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsIExlcm5hQ29tbW9uUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvamVjdCByb290IHBhY2thZ2UgaGFzIHNvdXJjZSBjb2RlLlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBgZmFsc2VgLCByZW1vdmVzIHR5cGVzY3JpcHQgY29tcGlsYXRpb24gZnJvbSB0aGUgY29tcGlsZSBzdGVwIGZvciB0aGUgcm9vdCBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaGFzUm9vdFNvdXJjZUNvZGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBUYXNrQ3VzdG9taXphdGlvbnMgPSB7IFt0YXNrTmFtZTogc3RyaW5nXTogVGFza0N1c3RvbWl6YXRpb24gfTtcblxuZXhwb3J0IGludGVyZmFjZSBUYXNrQ3VzdG9taXphdGlvbiB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFkZCBhIGxlcm5hIHJ1biBzdGVwIHRvIHRoZSB0YXNrXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFkZExlcm5hU3RlcD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgZ2xvYiBwYXR0ZXJucyBtYXRjaGluZyB0aGUgbmFtZSBvZiBwYWNrYWdlcyB0byBpbmNsdWRlIGluIHRoZSBsZXJuYSBydW4gc3RlcFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGdsb2IgcGF0dGVybnMgbWF0Y2hpbmcgdGhlIG5hbWUgb2YgcGFja2FnZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSBsZXJuYSBydW4gc3RlcFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiAoZXhwZXJpbWVudGFsKSBGbGFnIHRvIHJ1biB0YXNrcyBvbmx5IGZvciB0aGUgcGFja2FnZXMgdGhhdCBoYXMgY2hhbmdlcyBzaW5jZSBsYXN0IHJlbGVhc2VcbiAgICpcbiAgICogQGRlZmF1bHQgXCJWYWx1ZSBwYXNzZWQgaW4gcHJvamVjdCBvcHRpb25zXCJcbiAgICovXG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U/OiBib29sZWFuO1xufSJdfQ==
package/package.json CHANGED
@@ -59,14 +59,14 @@
59
59
  "jsii-docgen": "^10.5.0",
60
60
  "jsii-pacmak": "^1.115.0",
61
61
  "jsii-rosetta": "5.8.x",
62
- "projen": "^0.97.2",
62
+ "projen": "^0.98.0",
63
63
  "ts-jest": "^29.4.5",
64
64
  "ts-node": "^10.9.2",
65
65
  "typescript": "^5.9.3"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "constructs": "^10.4.2",
69
- "projen": "^0.97.2"
69
+ "projen": "^0.98.0"
70
70
  },
71
71
  "dependencies": {
72
72
  "commander": "^11.1.0",
@@ -90,7 +90,7 @@
90
90
  "publishConfig": {
91
91
  "access": "public"
92
92
  },
93
- "version": "0.1.698",
93
+ "version": "0.1.700",
94
94
  "jest": {
95
95
  "coverageProvider": "v8",
96
96
  "testMatch": [