lerna-projen 0.1.171 → 0.1.172
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 +32 -23
- package/lib/index.d.ts +1 -0
- package/lib/index.js +5 -4
- package/lib/utils.d.ts +11 -0
- package/lib/utils.js +28 -0
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -87,6 +87,15 @@
|
|
|
87
87
|
"url": "https://github.com/AminFazlMondo/Lerna-Projen.git"
|
|
88
88
|
},
|
|
89
89
|
"schema": "jsii/0.10.0",
|
|
90
|
+
"submodules": {
|
|
91
|
+
"lerna-projen.utils": {
|
|
92
|
+
"locationInModule": {
|
|
93
|
+
"filename": "src/index.ts",
|
|
94
|
+
"line": 5
|
|
95
|
+
},
|
|
96
|
+
"symbolId": "src/utils:"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
90
99
|
"targets": {
|
|
91
100
|
"js": {
|
|
92
101
|
"npm": "lerna-projen"
|
|
@@ -221,7 +230,7 @@
|
|
|
221
230
|
},
|
|
222
231
|
"locationInModule": {
|
|
223
232
|
"filename": "src/index.ts",
|
|
224
|
-
"line":
|
|
233
|
+
"line": 59
|
|
225
234
|
},
|
|
226
235
|
"parameters": [
|
|
227
236
|
{
|
|
@@ -235,7 +244,7 @@
|
|
|
235
244
|
"kind": "class",
|
|
236
245
|
"locationInModule": {
|
|
237
246
|
"filename": "src/index.ts",
|
|
238
|
-
"line":
|
|
247
|
+
"line": 45
|
|
239
248
|
},
|
|
240
249
|
"methods": [
|
|
241
250
|
{
|
|
@@ -245,7 +254,7 @@
|
|
|
245
254
|
},
|
|
246
255
|
"locationInModule": {
|
|
247
256
|
"filename": "src/index.ts",
|
|
248
|
-
"line":
|
|
257
|
+
"line": 104
|
|
249
258
|
},
|
|
250
259
|
"name": "addSubProject",
|
|
251
260
|
"parameters": [
|
|
@@ -264,7 +273,7 @@
|
|
|
264
273
|
},
|
|
265
274
|
"locationInModule": {
|
|
266
275
|
"filename": "src/index.ts",
|
|
267
|
-
"line":
|
|
276
|
+
"line": 83
|
|
268
277
|
},
|
|
269
278
|
"name": "customizeTask",
|
|
270
279
|
"parameters": [
|
|
@@ -295,7 +304,7 @@
|
|
|
295
304
|
},
|
|
296
305
|
"locationInModule": {
|
|
297
306
|
"filename": "src/index.ts",
|
|
298
|
-
"line":
|
|
307
|
+
"line": 108
|
|
299
308
|
},
|
|
300
309
|
"name": "preSynthesize",
|
|
301
310
|
"overrides": "projen.Project"
|
|
@@ -310,7 +319,7 @@
|
|
|
310
319
|
"immutable": true,
|
|
311
320
|
"locationInModule": {
|
|
312
321
|
"filename": "src/index.ts",
|
|
313
|
-
"line":
|
|
322
|
+
"line": 50
|
|
314
323
|
},
|
|
315
324
|
"name": "docgen",
|
|
316
325
|
"type": {
|
|
@@ -324,7 +333,7 @@
|
|
|
324
333
|
"immutable": true,
|
|
325
334
|
"locationInModule": {
|
|
326
335
|
"filename": "src/index.ts",
|
|
327
|
-
"line":
|
|
336
|
+
"line": 49
|
|
328
337
|
},
|
|
329
338
|
"name": "docsDirectory",
|
|
330
339
|
"type": {
|
|
@@ -338,7 +347,7 @@
|
|
|
338
347
|
"immutable": true,
|
|
339
348
|
"locationInModule": {
|
|
340
349
|
"filename": "src/index.ts",
|
|
341
|
-
"line":
|
|
350
|
+
"line": 53
|
|
342
351
|
},
|
|
343
352
|
"name": "independentMode",
|
|
344
353
|
"type": {
|
|
@@ -352,7 +361,7 @@
|
|
|
352
361
|
"immutable": true,
|
|
353
362
|
"locationInModule": {
|
|
354
363
|
"filename": "src/index.ts",
|
|
355
|
-
"line":
|
|
364
|
+
"line": 51
|
|
356
365
|
},
|
|
357
366
|
"name": "sinceLastRelease",
|
|
358
367
|
"type": {
|
|
@@ -366,7 +375,7 @@
|
|
|
366
375
|
"immutable": true,
|
|
367
376
|
"locationInModule": {
|
|
368
377
|
"filename": "src/index.ts",
|
|
369
|
-
"line":
|
|
378
|
+
"line": 55
|
|
370
379
|
},
|
|
371
380
|
"name": "taskCustomizations",
|
|
372
381
|
"type": {
|
|
@@ -385,7 +394,7 @@
|
|
|
385
394
|
"immutable": true,
|
|
386
395
|
"locationInModule": {
|
|
387
396
|
"filename": "src/index.ts",
|
|
388
|
-
"line":
|
|
397
|
+
"line": 52
|
|
389
398
|
},
|
|
390
399
|
"name": "useNx",
|
|
391
400
|
"type": {
|
|
@@ -399,7 +408,7 @@
|
|
|
399
408
|
"immutable": true,
|
|
400
409
|
"locationInModule": {
|
|
401
410
|
"filename": "src/index.ts",
|
|
402
|
-
"line":
|
|
411
|
+
"line": 54
|
|
403
412
|
},
|
|
404
413
|
"name": "useWorkspaces",
|
|
405
414
|
"type": {
|
|
@@ -500,7 +509,7 @@
|
|
|
500
509
|
},
|
|
501
510
|
"locationInModule": {
|
|
502
511
|
"filename": "src/index.ts",
|
|
503
|
-
"line":
|
|
512
|
+
"line": 132
|
|
504
513
|
},
|
|
505
514
|
"parameters": [
|
|
506
515
|
{
|
|
@@ -514,7 +523,7 @@
|
|
|
514
523
|
"kind": "class",
|
|
515
524
|
"locationInModule": {
|
|
516
525
|
"filename": "src/index.ts",
|
|
517
|
-
"line":
|
|
526
|
+
"line": 123
|
|
518
527
|
},
|
|
519
528
|
"methods": [
|
|
520
529
|
{
|
|
@@ -524,7 +533,7 @@
|
|
|
524
533
|
},
|
|
525
534
|
"locationInModule": {
|
|
526
535
|
"filename": "src/index.ts",
|
|
527
|
-
"line":
|
|
536
|
+
"line": 153
|
|
528
537
|
},
|
|
529
538
|
"name": "customizeTask",
|
|
530
539
|
"parameters": [
|
|
@@ -555,7 +564,7 @@
|
|
|
555
564
|
},
|
|
556
565
|
"locationInModule": {
|
|
557
566
|
"filename": "src/index.ts",
|
|
558
|
-
"line":
|
|
567
|
+
"line": 172
|
|
559
568
|
},
|
|
560
569
|
"name": "preSynthesize",
|
|
561
570
|
"overrides": "projen.Project"
|
|
@@ -570,7 +579,7 @@
|
|
|
570
579
|
"immutable": true,
|
|
571
580
|
"locationInModule": {
|
|
572
581
|
"filename": "src/index.ts",
|
|
573
|
-
"line":
|
|
582
|
+
"line": 126
|
|
574
583
|
},
|
|
575
584
|
"name": "independentMode",
|
|
576
585
|
"type": {
|
|
@@ -584,7 +593,7 @@
|
|
|
584
593
|
"immutable": true,
|
|
585
594
|
"locationInModule": {
|
|
586
595
|
"filename": "src/index.ts",
|
|
587
|
-
"line":
|
|
596
|
+
"line": 124
|
|
588
597
|
},
|
|
589
598
|
"name": "sinceLastRelease",
|
|
590
599
|
"type": {
|
|
@@ -598,7 +607,7 @@
|
|
|
598
607
|
"immutable": true,
|
|
599
608
|
"locationInModule": {
|
|
600
609
|
"filename": "src/index.ts",
|
|
601
|
-
"line":
|
|
610
|
+
"line": 128
|
|
602
611
|
},
|
|
603
612
|
"name": "taskCustomizations",
|
|
604
613
|
"type": {
|
|
@@ -617,7 +626,7 @@
|
|
|
617
626
|
"immutable": true,
|
|
618
627
|
"locationInModule": {
|
|
619
628
|
"filename": "src/index.ts",
|
|
620
|
-
"line":
|
|
629
|
+
"line": 125
|
|
621
630
|
},
|
|
622
631
|
"name": "useNx",
|
|
623
632
|
"type": {
|
|
@@ -631,7 +640,7 @@
|
|
|
631
640
|
"immutable": true,
|
|
632
641
|
"locationInModule": {
|
|
633
642
|
"filename": "src/index.ts",
|
|
634
|
-
"line":
|
|
643
|
+
"line": 127
|
|
635
644
|
},
|
|
636
645
|
"name": "useWorkspaces",
|
|
637
646
|
"type": {
|
|
@@ -781,6 +790,6 @@
|
|
|
781
790
|
"symbolId": "src/types:TaskCustomization"
|
|
782
791
|
}
|
|
783
792
|
},
|
|
784
|
-
"version": "0.1.
|
|
785
|
-
"fingerprint": "
|
|
793
|
+
"version": "0.1.172",
|
|
794
|
+
"fingerprint": "UvjCYv2MLFGRNwjCg1uZk6wQcx9xpE0p0Zo5NRfH1Zw="
|
|
786
795
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { javascript, Project, typescript } from 'projen';
|
|
2
2
|
import { LernaProjectOptions, LernaTypescriptProjectOptions, TaskCustomization, TaskCustomizations } from './types';
|
|
3
3
|
export * from './types';
|
|
4
|
+
export * as utils from './utils';
|
|
4
5
|
interface ILernaProject {
|
|
5
6
|
readonly sinceLastRelease: boolean;
|
|
6
7
|
readonly useNx: boolean;
|
package/lib/index.js
CHANGED
|
@@ -15,10 +15,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
var _a, _b;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.LernaTypescriptProject = exports.LernaProject = void 0;
|
|
18
|
+
exports.LernaTypescriptProject = exports.LernaProject = exports.utils = void 0;
|
|
19
19
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
20
20
|
const projen_1 = require("projen");
|
|
21
21
|
__exportStar(require("./types"), exports);
|
|
22
|
+
exports.utils = require("./utils");
|
|
22
23
|
function getDocsDirectory(project) {
|
|
23
24
|
const result = Object.entries(project).find(([key]) => key === 'docsDirectory');
|
|
24
25
|
return result?.[1].replace(/\/$/, '');
|
|
@@ -94,7 +95,7 @@ class LernaProject extends projen_1.javascript.NodeProject {
|
|
|
94
95
|
}
|
|
95
96
|
exports.LernaProject = LernaProject;
|
|
96
97
|
_a = JSII_RTTI_SYMBOL_1;
|
|
97
|
-
LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.1.
|
|
98
|
+
LernaProject[_a] = { fqn: "lerna-projen.LernaProject", version: "0.1.172" };
|
|
98
99
|
/**
|
|
99
100
|
* @pjid lerna-ts-project
|
|
100
101
|
*/
|
|
@@ -139,7 +140,7 @@ class LernaTypescriptProject extends projen_1.typescript.TypeScriptProject {
|
|
|
139
140
|
}
|
|
140
141
|
exports.LernaTypescriptProject = LernaTypescriptProject;
|
|
141
142
|
_b = JSII_RTTI_SYMBOL_1;
|
|
142
|
-
LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.1.
|
|
143
|
+
LernaTypescriptProject[_b] = { fqn: "lerna-projen.LernaTypescriptProject", version: "0.1.172" };
|
|
143
144
|
class LernaProjectFactory {
|
|
144
145
|
constructor(project) {
|
|
145
146
|
this.project = project;
|
|
@@ -276,4 +277,4 @@ class LernaProjectFactory {
|
|
|
276
277
|
this.project.gitattributes.addAttributes(`/${this.project.docsDirectory}/**`, 'linguist-generated');
|
|
277
278
|
}
|
|
278
279
|
}
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFtRjtBQUduRiwwQ0FBdUI7QUFFdkIsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFnQjtJQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxlQUFlLENBQUMsQ0FBQTtJQUMvRSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDdkMsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsT0FBZ0I7SUFDN0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssb0JBQW9CLENBQUMsQ0FBQTtJQUNwRixPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3BCLENBQUM7QUFFRCxNQUFNLGVBQWUsR0FBRyxnQ0FBZ0MsQ0FBQTtBQUV4RCxTQUFTLHFCQUFxQixDQUFDLEtBQVk7SUFDekMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdEcsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJO1FBQ25DLE9BQU07SUFFUixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFB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QUFDLElBQUksRUFBRSxDQUFBO1FBRWhCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxLQUFLLEVBQUUsb0JBQW9CLENBQUMsQ0FBQTtJQUNyRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0pzb25GaWxlLCBqYXZhc2NyaXB0LCBQcm9qZWN0LCBUYXNrcywgU291cmNlQ29kZSwgdHlwZXNjcmlwdH0gZnJvbSAncHJvamVuJ1xuaW1wb3J0IHtMZXJuYVByb2plY3RPcHRpb25zLCBMZXJuYVR5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucywgVGFza0N1c3RvbWl6YXRpb24sIFRhc2tDdXN0b21pemF0aW9uc30gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZnVuY3Rpb24gZ2V0RG9jc0RpcmVjdG9yeShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5lbnRyaWVzKHByb2plY3QpLmZpbmQoKFtrZXldKSA9PiBrZXkgPT09ICdkb2NzRGlyZWN0b3J5JylcbiAgcmV0dXJuIHJlc3VsdD8uWzFdLnJlcGxhY2UoL1xcLyQvLCAnJylcbn1cblxuZnVuY3Rpb24gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHByb2plY3Q6IFByb2plY3QpIHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuZmluZCgoW2tleV0pID0+IGtleSA9PT0gJ2FydGlmYWN0c0RpcmVjdG9yeScpXG4gIHJldHVybiByZXN1bHQ/LlsxXVxufVxuXG5jb25zdCBqc2lpVGFza1BhdHRlcm4gPSAvanNpaS1kb2NnZW4gLW8gKD88b3V0cHV0Pi4rKSQvaVxuXG5mdW5jdGlvbiBleHRyYWN0SnNpaURvY3NPdXRwdXQodGFza3M6IFRhc2tzKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QganNpaURvY1N0ZXAgPSB0YXNrcy50cnlGaW5kKCdkb2NnZW4nKT8uc3RlcHMuZmluZChzdGVwID0+IGpzaWlUYXNrUGF0dGVybi50ZXN0KHN0ZXAuZXhlYyA/PyAnJykpXG4gIGlmICghanNpaURvY1N0ZXAgfHwgIWpzaWlEb2NTdGVwLmV4ZWMpXG4gICAgcmV0dXJuXG5cbiAgY29uc3QgbWF0Y2ggPSBqc2lpRG9jU3RlcC5leGVjLm1hdGNoKGpzaWlUYXNrUGF0dGVybilcbiAgcmV0dXJuIG1hdGNoPy5ncm91cHM/Lm91dHB1dFxufVxuXG5jb25zdCBsb2NrZWRUYXNrTmFtZXMgPSBbJ2J1aWxkJywgJ3VwZ3JhZGUnLCAndXBncmFkZS1wcm9qZW4nLCAnY2xvYmJlcicsICdwb3N0LXVwZ3JhZGUnXVxuXG5pbnRlcmZhY2UgSUxlcm5hUHJvamVjdCB7XG4gIHJlYWRvbmx5IHNpbmNlTGFzdFJlbGVhc2U6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuO1xuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU6IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZVdvcmtzcGFjZXM6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRvY3NEaXJlY3Rvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgZG9jZ2VuPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdGFza0N1c3RvbWl6YXRpb25zOiBUYXNrQ3VzdG9taXphdGlvbnM7XG5cbiAgY3VzdG9taXplVGFzayh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uOiBUYXNrQ3VzdG9taXphdGlvbik6IHZvaWQ7XG59XG5cbi8qKlxuICogQHBqaWQgbGVybmEtcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgTGVybmFQcm9qZWN0IGV4dGVuZHMgamF2YXNjcmlwdC5Ob2RlUHJvamVjdCBpbXBsZW1lbnRzIElMZXJuYVByb2plY3Qge1xuXG4gIHByaXZhdGUgcHJvamVucmNUczogYm9vbGVhblxuXG4gIHJlYWRvbmx5IGRvY3NEaXJlY3Rvcnk6IHN0cmluZ1xuICByZWFkb25seSBkb2NnZW46IGJvb2xlYW5cbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhblxuICByZWFkb25seSB1c2VOeDogYm9vbGVhblxuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhblxuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9uc1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yeTogTGVybmFQcm9qZWN0RmFjdG9yeVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExlcm5hUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKVxuXG4gICAgaWYgKG9wdGlvbnMucHJvamVucmNUcylcbiAgICAgIHRoaXMuYWRkRGV2RGVwcygndHMtbm9kZScsICd0eXBlc2NyaXB0JylcblxuICAgIHRoaXMuZG9jc0RpcmVjdG9yeSA9IG9wdGlvbnMuZG9jc0RpcmVjdG9yeSA/PyAnZG9jcydcbiAgICB0aGlzLmRvY2dlbiA9IG9wdGlvbnMuZG9jZ2VuID8/IGZhbHNlXG4gICAgdGhpcy5zaW5jZUxhc3RSZWxlYXNlID0gb3B0aW9ucy5zaW5jZUxhc3RSZWxlYXNlID8/IGZhbHNlXG4gICAgdGhpcy51c2VOeCA9IG9wdGlvbnMudXNlTnggPz8gZmFsc2VcbiAgICB0aGlzLnByb2plbnJjVHMgPSBvcHRpb25zLnByb2plbnJjVHMgPz8gZmFsc2VcbiAgICB0aGlzLmluZGVwZW5kZW50TW9kZSA9IG9wdGlvbnMuaW5kZXBlbmRlbnRNb2RlID8/IGZhbHNlXG4gICAgdGhpcy51c2VXb3Jrc3BhY2VzID0gb3B0aW9ucy51c2VXb3Jrc3BhY2VzID8/IGZhbHNlXG4gICAgdGhpcy50YXNrQ3VzdG9taXphdGlvbnMgPSBvcHRpb25zLnRhc2tDdXN0b21pemF0aW9ucyA/PyB7fVxuXG4gICAgdGhpcy5mYWN0b3J5ID0gbmV3IExlcm5hUHJvamVjdEZhY3RvcnkodGhpcylcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9taXphdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0YXNrXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrTmFtZSBOYW1lIG9mIHRoZSB0YXNrIHRvIGN1c3RvbWl6ZVxuICAgKiBAcGFyYW0gY3VzdG9taXphdGlvbiBUYXNrQ3VzdG9taXphdGlvbiBvcHRpb25zXG4gICAqL1xuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy50YXNrQ3VzdG9taXphdGlvbnNbdGFza05hbWVdID0gY3VzdG9taXphdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdWItcHJvamVjdCB0byB0aGlzIHByb2plY3QuXG4gICAqXG4gICAqIFRoaXMgaXMgYXV0b21hdGljYWxseSBjYWxsZWQgd2hlbiBhIG5ldyBwcm9qZWN0IGlzIGNyZWF0ZWQgd2l0aCBgcGFyZW50YFxuICAgKiBwb2ludGluZyB0byB0aGlzIHByb2plY3QsIHNvIHRoZXJlIGlzIG5vIHJlYWwgbmVlZCB0byBjYWxsIHRoaXMgbWFudWFsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBzdWItcHJvamVjdCBUaGUgY2hpbGQgcHJvamVjdCB0byBhZGQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX2FkZFN1YlByb2plY3Qoc3VicHJvamVjdDogUHJvamVjdCk6IHZvaWQge1xuICAgIHN1cGVyLl9hZGRTdWJQcm9qZWN0KHN1YnByb2plY3QpXG4gICAgdGhpcy5mYWN0b3J5LmFkZFN1YlByb2plY3Qoc3VicHJvamVjdClcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGVkIHdoZW4gYSBuZXcgcHJvamVjdCBpcyBjcmVhdGVkIHdpdGggYHBhcmVudGBcbiAgICovXG4gIGFkZFN1YlByb2plY3QoX3N1YnByb2plY3Q6IFByb2plY3QpIHtcbiAgICBjb25zb2xlLndhcm4oJ0xlcm5hUHJvamVjdC5hZGRTdWJQcm9qZWN0IGlzIGRlcHJlY2F0ZWQuIEl0IGlzIG5vdyBhdXRvbWF0aWNhbGx5IGNhbGxlZCB3aGVuIGEgbmV3IHByb2plY3QgaXMgY3JlYXRlZCB3aXRoIGBwYXJlbnRgJylcbiAgfVxuXG4gIHByZVN5bnRoZXNpemUoKSB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpXG4gICAgY29uc3QgcHJvamVuQ29tbWFuZCA9IHRoaXMucHJvamVucmNUcyA/ICd0cy1ub2RlIC0tc2tpcC1wcm9qZWN0IC5wcm9qZW5yYy50cycgOiAnbm9kZSAucHJvamVucmMuanMnXG4gICAgY29uc3Qge2RlZmF1bHRUYXNrfSA9IHRoaXNcbiAgICBpZiAoIWRlZmF1bHRUYXNrKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBkZWZhdWx0IHRhc2snKVxuICAgIGRlZmF1bHRUYXNrLnJlc2V0KHByb2plbkNvbW1hbmQpXG5cbiAgICB0aGlzLmZhY3RvcnkuYnVpbGQoKVxuICB9XG59XG5cbi8qKlxuICogQHBqaWQgbGVybmEtdHMtcHJvamVjdFxuICovXG5leHBvcnQgY2xhc3MgTGVybmFUeXBlc2NyaXB0UHJvamVjdCBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3QgaW1wbGVtZW50cyBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhblxuICByZWFkb25seSB1c2VOeDogYm9vbGVhblxuICByZWFkb25seSBpbmRlcGVuZGVudE1vZGU6IGJvb2xlYW5cbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhblxuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9uc1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yeTogTGVybmFQcm9qZWN0RmFjdG9yeVxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExlcm5hVHlwZXNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucylcblxuICAgIHRoaXMuc2luY2VMYXN0UmVsZWFzZSA9IG9wdGlvbnMuc2luY2VMYXN0UmVsZWFzZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlTnggPSBvcHRpb25zLnVzZU54ID8/IGZhbHNlXG4gICAgdGhpcy5pbmRlcGVuZGVudE1vZGUgPSBvcHRpb25zLmluZGVwZW5kZW50TW9kZSA/PyBmYWxzZVxuICAgIHRoaXMudXNlV29ya3NwYWNlcyA9IG9wdGlvbnMudXNlV29ya3NwYWNlcyA/PyBmYWxzZVxuICAgIHRoaXMudGFza0N1c3RvbWl6YXRpb25zID0gb3B0aW9ucy50YXNrQ3VzdG9taXphdGlvbnMgPz8ge31cblxuICAgIGlmICghKG9wdGlvbnMuaGFzUm9vdFNvdXJjZUNvZGUgPz8gZmFsc2UpKVxuICAgICAgdGhpcy50YXNrcy50cnlGaW5kKCdjb21waWxlJyk/LnJlc2V0KClcblxuICAgIHRoaXMuZmFjdG9yeSA9IG5ldyBMZXJuYVByb2plY3RGYWN0b3J5KHRoaXMpXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGN1c3RvbWl6YXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFza1xuICAgKlxuICAgKiBAcGFyYW0gdGFza05hbWUgTmFtZSBvZiB0aGUgdGFzayB0byBjdXN0b21pemVcbiAgICogQHBhcmFtIGN1c3RvbWl6YXRpb24gVGFza0N1c3RvbWl6YXRpb24gb3B0aW9uc1xuICAgKi9cbiAgY3VzdG9taXplVGFzayh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uOiBUYXNrQ3VzdG9taXphdGlvbik6IHZvaWQge1xuICAgIHRoaXMudGFza0N1c3RvbWl6YXRpb25zW3Rhc2tOYW1lXSA9IGN1c3RvbWl6YXRpb25cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3ViLXByb2plY3QgdG8gdGhpcyBwcm9qZWN0LlxuICAgKlxuICAgKiBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgY2FsbGVkIHdoZW4gYSBuZXcgcHJvamVjdCBpcyBjcmVhdGVkIHdpdGggYHBhcmVudGBcbiAgICogcG9pbnRpbmcgdG8gdGhpcyBwcm9qZWN0LCBzbyB0aGVyZSBpcyBubyByZWFsIG5lZWQgdG8gY2FsbCB0aGlzIG1hbnVhbGx5LlxuICAgKlxuICAgKiBAcGFyYW0gc3ViLXByb2plY3QgVGhlIGNoaWxkIHByb2plY3QgdG8gYWRkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9hZGRTdWJQcm9qZWN0KHN1YnByb2plY3Q6IFByb2plY3QpOiB2b2lkIHtcbiAgICBzdXBlci5fYWRkU3ViUHJvamVjdChzdWJwcm9qZWN0KVxuXG4gICAgdGhpcy5mYWN0b3J5LmFkZFN1YlByb2plY3Qoc3VicHJvamVjdClcbiAgfVxuXG4gIHByZVN5bnRoZXNpemUoKSB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpXG4gICAgdGhpcy5mYWN0b3J5LmJ1aWxkKClcbiAgfVxufVxuXG5jbGFzcyBMZXJuYVByb2plY3RGYWN0b3J5IHtcbiAgcHJpdmF0ZSBzdWJQcm9qZWN0czogUmVjb3JkPHN0cmluZywgUHJvamVjdD4gPSB7fVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcHJvamVjdDogSUxlcm5hUHJvamVjdCAmIGphdmFzY3JpcHQuTm9kZVByb2plY3QpIHtcbiAgICBwcm9qZWN0LmFkZERldkRlcHMoJ2xlcm5hLXByb2plbicsICdsZXJuYScpXG4gIH1cblxuICBhZGRTdWJQcm9qZWN0KHN1YlByb2plY3Q6IFByb2plY3QpIHtcbiAgICBjb25zdCB7b3V0ZGlyfSA9IHN1YlByb2plY3RcblxuICAgIGNvbnN0IHJlbGF0aXZlT3V0RGlyID0gb3V0ZGlyLnJlcGxhY2UoYCR7dGhpcy5wcm9qZWN0Lm91dGRpcn0vYCwgJycpXG5cbiAgICB0aGlzLnN1YlByb2plY3RzW3JlbGF0aXZlT3V0RGlyXSA9IHN1YlByb2plY3RcbiAgfVxuXG4gIGJ1aWxkKCkge1xuICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5yZXNldChgbWtkaXIgLXAgJHt0aGlzLnByb2plY3QuYXJ0aWZhY3RzSmF2YXNjcmlwdERpcmVjdG9yeX1gKVxuICAgIHRoaXMucHJvamVjdC5wcmVDb21waWxlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gY2xlYW4tZGlzdCAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNEaXJlY3Rvcnl9YClcblxuICAgIHRoaXMuYXBwZW5kTGVybmFDb21tYW5kcygpXG4gICAgdGhpcy5hZGRDcm9zc0xpbmtzKClcbiAgICB0aGlzLnVwZGF0ZVN1YlByb2plY3RzKClcbiAgICB0aGlzLmFkZERvY3VtZW50c0luZGV4KClcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ3Jvc3NMaW5rcygpIHtcblxuICAgIGNvbnN0IGxlcm5hQ29uZmlnOiBhbnkgPSB7XG4gICAgICB1c2VOeDogdGhpcy5wcm9qZWN0LnVzZU54LFxuICAgICAgdmVyc2lvbjogdGhpcy5wcm9qZWN0LmluZGVwZW5kZW50TW9kZSA/ICdpbmRlcGVuZGVudCcgOiAnMC4wLjAnLFxuICAgIH1cblxuICAgIGNvbnN0IHBhY2thZ2VzID0gT2JqZWN0LmtleXModGhpcy5zdWJQcm9qZWN0cylcblxuICAgIGlmICh0aGlzLnByb2plY3QudXNlV29ya3NwYWNlcylcbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlLmFkZEZpZWxkKCd3b3Jrc3BhY2VzJywgcGFja2FnZXMpXG4gICAgZWxzZVxuICAgICAgbGVybmFDb25maWcucGFja2FnZXMgPSBwYWNrYWdlc1xuXG5cbiAgICBuZXcgSnNvbkZpbGUodGhpcy5wcm9qZWN0LCAnbGVybmEuanNvbicsIHtcbiAgICAgIG9iajogbGVybmFDb25maWcsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTGVybmFDb21tYW5kcygpIHtcbiAgICBjb25zdCB1cGdyYWRlVGFza05hbWUgPSAndXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2tOYW1lID0gJ3Bvc3QtdXBncmFkZSdcbiAgICBjb25zdCBwb3N0VXBncmFkZVRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChwb3N0VXBncmFkZVRhc2tOYW1lKVxuICAgIHBvc3RVcGdyYWRlVGFzaz8ucHJlcGVuZEV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodXBncmFkZVRhc2tOYW1lLCB7c2luY2VMYXN0UmVsZWFzZTogZmFsc2V9KSlcbiAgICBwb3N0VXBncmFkZVRhc2s/LmV4ZWMoJ25weCBwcm9qZW4nKVxuXG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLmFsbFxuICAgICAgLmZvckVhY2godGFzayA9PiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbWl6YXRpb24gPSB0aGlzLnByb2plY3QudGFza0N1c3RvbWl6YXRpb25zW3Rhc2submFtZV1cbiAgICAgICAgY29uc3QgYWRkTGVybmFTdGVwID0gY3VzdG9taXphdGlvbj8uYWRkTGVybmFTdGVwID8/IHRydWVcblxuICAgICAgICBpZiAobG9ja2VkVGFza05hbWVzLmluY2x1ZGVzKHRhc2submFtZSkgfHwgIWFkZExlcm5hU3RlcClcbiAgICAgICAgICByZXR1cm5cblxuICAgICAgICB0YXNrLmV4ZWModGhpcy5nZXRMZXJuYUNvbW1hbmQodGFzay5uYW1lLCBjdXN0b21pemF0aW9uKSlcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGdldExlcm5hQ29tbWFuZCh0YXNrTmFtZTogc3RyaW5nLCBjdXN0b21pemF0aW9uPzogVGFza0N1c3RvbWl6YXRpb24pIHtcbiAgICBjb25zdCBtYWluQ29tbWFuZCA9IGBsZXJuYSBydW4gJHt0YXNrTmFtZX0gLS1zdHJlYW1gXG4gICAgY29uc3QgdXNlU2luY2VGbGFnID0gY3VzdG9taXphdGlvbj8uc2luY2VMYXN0UmVsZWFzZSA/PyB0aGlzLnByb2plY3Quc2luY2VMYXN0UmVsZWFzZVxuXG4gICAgY29uc3QgaW5jbHVkZVBhdHRlcm5zID0gY3VzdG9taXphdGlvbj8uaW5jbHVkZSA/PyBbXVxuICAgIGNvbnN0IGV4Y2x1ZGVQYXR0ZXJucyA9IGN1c3RvbWl6YXRpb24/LmV4Y2x1ZGUgPz8gW11cblxuICAgIGNvbnN0IHNjb3BlRmxhZ3MgPSBpbmNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0tc2NvcGUgJHtnbG9ifWApLmpvaW4oJycpXG4gICAgY29uc3QgaWdub3JlRmxhZ3MgPSBleGNsdWRlUGF0dGVybnMubWFwKChnbG9iKSA9PiBgIC0taWdub3JlICR7Z2xvYn1gKS5qb2luKCcnKVxuXG5cbiAgICBjb25zdCBwb3N0Q29tbWFuZCA9IHVzZVNpbmNlRmxhZyA/ICcgLS1zaW5jZSAkKGdpdCBkZXNjcmliZSAtLWFiYnJldj0wIC0tdGFncyAtLW1hdGNoIFwidipcIiknIDogJydcbiAgICByZXR1cm4gYCR7bWFpbkNvbW1hbmR9JHtwb3N0Q29tbWFuZH0ke3Njb3BlRmxhZ3N9JHtpZ25vcmVGbGFnc31gXG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN1YlByb2plY3RzKCkge1xuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ2J1bXAnKVxuICAgIGNvbnN0IHVuYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgndW5idW1wJylcblxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuc3ViUHJvamVjdHMpLmZvckVhY2goKFtzdWJQcm9qZWN0UGF0aCwgc3ViUHJvamVjdF0pID0+IHtcbiAgICAgIGNvbnN0IHN1YlByb2plY3REb2NzRGlyZWN0b3J5ID0gZ2V0RG9jc0RpcmVjdG9yeShzdWJQcm9qZWN0KVxuICAgICAgaWYgKHRoaXMucHJvamVjdC5kb2NnZW4gJiYgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkpXG4gICAgICAgIHRoaXMucHJvamVjdC5wb3N0Q29tcGlsZVRhc2suZXhlYyhgbGVybmEtcHJvamVuIG1vdmUtZG9jcyAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fSAke3N1YlByb2plY3RQYXRofSAke3N1YlByb2plY3REb2NzRGlyZWN0b3J5fWApXG5cbiAgICAgIGNvbnN0IHBhY2thZ2VBbGxUYXNrID0gc3ViUHJvamVjdC50YXNrcy50cnlGaW5kKCdwYWNrYWdlLWFsbCcpXG5cbiAgICAgIGlmIChwYWNrYWdlQWxsVGFzaylcbiAgICAgICAgc3ViUHJvamVjdC5wYWNrYWdlVGFzay5zcGF3bihwYWNrYWdlQWxsVGFzaylcblxuICAgICAgY29uc3QgYXJ0aWZhY3RzRGlyZWN0b3J5ID0gZ2V0QXJ0aWZhY3RzRGlyZWN0b3J5KHN1YlByb2plY3QpXG5cbiAgICAgIHRoaXMucHJvamVjdC5wYWNrYWdlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gY29weS1kaXN0ICR7c3ViUHJvamVjdFBhdGh9LyR7YXJ0aWZhY3RzRGlyZWN0b3J5fSAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNEaXJlY3Rvcnl9YClcblxuICAgICAgc3ViUHJvamVjdC5kZWZhdWx0VGFzaz8ucmVzZXQoKVxuXG4gICAgICBjb25zdCBidW1wRW52cyA9IHtcbiAgICAgICAgT1VURklMRTogJ3BhY2thZ2UuanNvbicsXG4gICAgICAgIENIQU5HRUxPRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9jaGFuZ2Vsb2cubWRgLFxuICAgICAgICBCVU1QRklMRTogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS92ZXJzaW9uLnR4dGAsXG4gICAgICAgIFJFTEVBU0VUQUc6IGAke2FydGlmYWN0c0RpcmVjdG9yeX0vcmVsZWFzZXRhZy50eHRgLFxuICAgICAgICBSRUxFQVNFX1RBR19QUkVGSVg6ICcnLFxuICAgICAgfVxuXG4gICAgICBpZiAoYnVtcFRhc2spIHtcbiAgICAgICAgY29uc3Qgc3ViQnVtcFRhc2sgPSBzdWJQcm9qZWN0LmFkZFRhc2soYnVtcFRhc2submFtZSwge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBidW1wVGFzay5kZXNjcmlwdGlvbixcbiAgICAgICAgICBjb25kaXRpb246IGJ1bXBUYXNrLmNvbmRpdGlvbixcbiAgICAgICAgICBlbnY6IGJ1bXBFbnZzLFxuICAgICAgICB9KVxuICAgICAgICBzdWJCdW1wVGFzay5idWlsdGluKCdyZWxlYXNlL2J1bXAtdmVyc2lvbicpXG4gICAgICB9XG5cbiAgICAgIGlmICh1bmJ1bXBUYXNrKSB7XG4gICAgICAgIGNvbnN0IHN1YkJ1bXBUYXNrID0gc3ViUHJvamVjdC5hZGRUYXNrKHVuYnVtcFRhc2submFtZSwge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiB1bmJ1bXBUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGNvbmRpdGlvbjogdW5idW1wVGFzay5jb25kaXRpb24sXG4gICAgICAgICAgZW52OiBidW1wRW52cyxcbiAgICAgICAgfSlcbiAgICAgICAgc3ViQnVtcFRhc2suYnVpbHRpbigncmVsZWFzZS9yZXNldC12ZXJzaW9uJylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBhZGREb2N1bWVudHNJbmRleCgpIHtcbiAgICBpZiAoIXRoaXMucHJvamVjdC5kb2NnZW4pXG4gICAgICByZXR1cm5cblxuICAgIGNvbnN0IHN1YlByb2plY3RzRG9jczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XG5cbiAgICBjb25zdCBpbmRleE1hcmtkb3duID0gbmV3IFNvdXJjZUNvZGUodGhpcy5wcm9qZWN0LCBgJHt0aGlzLnByb2plY3QuZG9jc0RpcmVjdG9yeX0vaW5kZXgubWRgKVxuICAgIGNvbnN0IHJlYWRtZU1hcmtkb3duID0gbmV3IFNvdXJjZUNvZGUodGhpcy5wcm9qZWN0LCBgJHt0aGlzLnByb2plY3QuZG9jc0RpcmVjdG9yeX0vUkVBRE1FLm1kYClcblxuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuc3ViUHJvamVjdHMpLmZvckVhY2goKFtzdWJQcm9qZWN0UGF0aCwgc3ViUHJvamVjdF0pID0+IHtcbiAgICAgIGNvbnN0IHN1YlByb2plY3REb2NzRGlyZWN0b3J5ID0gZ2V0RG9jc0RpcmVjdG9yeShzdWJQcm9qZWN0KVxuICAgICAgaWYgKCFzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSlcbiAgICAgICAgcmV0dXJuXG5cbiAgICAgIGNvbnN0IGpzaWlEb2NzT3V0cHV0ID0gZXh0cmFjdEpzaWlEb2NzT3V0cHV0KHN1YlByb2plY3QudGFza3MpXG4gICAgICBpZiAoanNpaURvY3NPdXRwdXQpIHtcbiAgICAgICAgY29uc3QgcGF0aCA9IGAke3N1YlByb2plY3RQYXRofS8ke2pzaWlEb2NzT3V0cHV0fWBcbiAgICAgICAgaW5kZXhNYXJrZG93bi5saW5lKGAtICMjIFske3N1YlByb2plY3QubmFtZX1dKCR7cGF0aH0pYClcbiAgICAgICAgc3ViUHJvamVjdHNEb2NzW3N1YlByb2plY3QubmFtZV0gPSBwYXRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWJQcm9qZWN0c0RvY3Nbc3ViUHJvamVjdC5uYW1lXSA9IGAke3N1YlByb2plY3RQYXRofS9pbmRleC5odG1sYFxuICAgICAgfVxuICAgICAgcmVhZG1lTWFya2Rvd24ubGluZShgLSAjIyBbJHtzdWJQcm9qZWN0Lm5hbWV9XSguLi8ke3N1YlByb2plY3RQYXRofS9SRUFETUUubWQpYClcbiAgICB9KVxuXG4gICAgY29uc3QgaW5kZXhIdG1sID0gbmV3IFNvdXJjZUNvZGUodGhpcy5wcm9qZWN0LCBgJHt0aGlzLnByb2plY3QuZG9jc0RpcmVjdG9yeX0vaW5kZXguaHRtbGApXG4gICAgaW5kZXhIdG1sLmxpbmUoJzwhRE9DVFlQRSBodG1sPicpXG4gICAgaW5kZXhIdG1sLmxpbmUoJzxodG1sPicpXG4gICAgaW5kZXhIdG1sLm9wZW4oJzxib2R5PicpXG4gICAgaW5kZXhIdG1sLm9wZW4oJzx1bD4nKVxuICAgIE9iamVjdC5lbnRyaWVzKHN1YlByb2plY3RzRG9jcykuZm9yRWFjaCgoW25hbWUsIHBhdGhdKSA9PiB7XG4gICAgICBpbmRleEh0bWwub3BlbignPGxpPicpXG4gICAgICBpbmRleEh0bWwub3BlbihgPGEgaHJlZj1cIiR7cGF0aH1cIj5gKVxuICAgICAgaW5kZXhIdG1sLmxpbmUobmFtZSlcbiAgICAgIGluZGV4SHRtbC5jbG9zZSgnPC9hPicpXG4gICAgICBpbmRleEh0bWwuY2xvc2UoJzwvbGk+JylcbiAgICB9KVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC91bD4nKVxuICAgIGluZGV4SHRtbC5jbG9zZSgnPC9ib2R5PicpXG4gICAgaW5kZXhIdG1sLmxpbmUoJzwvaHRtbD4nKVxuICAgIGluZGV4SHRtbC5saW5lKClcblxuICAgIHRoaXMucHJvamVjdC5naXRhdHRyaWJ1dGVzLmFkZEF0dHJpYnV0ZXMoYC8ke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS8qKmAsICdsaW5ndWlzdC1nZW5lcmF0ZWQnKVxuICB9XG59Il19
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFtRjtBQUduRiwwQ0FBdUI7QUFDdkIsbUNBQWdDO0FBRWhDLFNBQVMsZ0JBQWdCLENBQUMsT0FBZ0I7SUFDeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssZUFBZSxDQUFDLENBQUE7SUFDL0UsT0FBTyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZDLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLE9BQWdCO0lBQzdDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLG9CQUFvQixDQUFDLENBQUE7SUFDcEYsT0FBTyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNwQixDQUFDO0FBRUQsTUFBTSxlQUFlLEdBQUcsZ0NBQWdDLENBQUE7QUFFeEQsU0FBUyxxQkFBcUIsQ0FBQyxLQUFZO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3RHLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUNuQyxPQUFNO0lBRVIsTUFBTSxLQUFLLEdBQUcs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O1FBQ3pCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUVoQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUE7SUFDckcsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtKc29uRmlsZSwgamF2YXNjcmlwdCwgUHJvamVjdCwgVGFza3MsIFNvdXJjZUNvZGUsIHR5cGVzY3JpcHR9IGZyb20gJ3Byb2plbidcbmltcG9ydCB7TGVybmFQcm9qZWN0T3B0aW9ucywgTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMsIFRhc2tDdXN0b21pemF0aW9uLCBUYXNrQ3VzdG9taXphdGlvbnN9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG5leHBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJ1xuXG5mdW5jdGlvbiBnZXREb2NzRGlyZWN0b3J5KHByb2plY3Q6IFByb2plY3QpIHtcbiAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmVudHJpZXMocHJvamVjdCkuZmluZCgoW2tleV0pID0+IGtleSA9PT0gJ2RvY3NEaXJlY3RvcnknKVxuICByZXR1cm4gcmVzdWx0Py5bMV0ucmVwbGFjZSgvXFwvJC8sICcnKVxufVxuXG5mdW5jdGlvbiBnZXRBcnRpZmFjdHNEaXJlY3RvcnkocHJvamVjdDogUHJvamVjdCkge1xuICBjb25zdCByZXN1bHQgPSBPYmplY3QuZW50cmllcyhwcm9qZWN0KS5maW5kKChba2V5XSkgPT4ga2V5ID09PSAnYXJ0aWZhY3RzRGlyZWN0b3J5JylcbiAgcmV0dXJuIHJlc3VsdD8uWzFdXG59XG5cbmNvbnN0IGpzaWlUYXNrUGF0dGVybiA9IC9qc2lpLWRvY2dlbiAtbyAoPzxvdXRwdXQ+LispJC9pXG5cbmZ1bmN0aW9uIGV4dHJhY3RKc2lpRG9jc091dHB1dCh0YXNrczogVGFza3MpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBqc2lpRG9jU3RlcCA9IHRhc2tzLnRyeUZpbmQoJ2RvY2dlbicpPy5zdGVwcy5maW5kKHN0ZXAgPT4ganNpaVRhc2tQYXR0ZXJuLnRlc3Qoc3RlcC5leGVjID8/ICcnKSlcbiAgaWYgKCFqc2lpRG9jU3RlcCB8fCAhanNpaURvY1N0ZXAuZXhlYylcbiAgICByZXR1cm5cblxuICBjb25zdCBtYXRjaCA9IGpzaWlEb2NTdGVwLmV4ZWMubWF0Y2goanNpaVRhc2tQYXR0ZXJuKVxuICByZXR1cm4gbWF0Y2g/Lmdyb3Vwcz8ub3V0cHV0XG59XG5cbmNvbnN0IGxvY2tlZFRhc2tOYW1lcyA9IFsnYnVpbGQnLCAndXBncmFkZScsICd1cGdyYWRlLXByb2plbicsICdjbG9iYmVyJywgJ3Bvc3QtdXBncmFkZSddXG5cbmludGVyZmFjZSBJTGVybmFQcm9qZWN0IHtcbiAgcmVhZG9ubHkgc2luY2VMYXN0UmVsZWFzZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlTng6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdXNlV29ya3NwYWNlczogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nO1xuICByZWFkb25seSBkb2NnZW4/OiBib29sZWFuO1xuICByZWFkb25seSB0YXNrQ3VzdG9taXphdGlvbnM6IFRhc2tDdXN0b21pemF0aW9ucztcblxuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZDtcbn1cblxuLyoqXG4gKiBAcGppZCBsZXJuYS1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBMZXJuYVByb2plY3QgZXh0ZW5kcyBqYXZhc2NyaXB0Lk5vZGVQcm9qZWN0IGltcGxlbWVudHMgSUxlcm5hUHJvamVjdCB7XG5cbiAgcHJpdmF0ZSBwcm9qZW5yY1RzOiBib29sZWFuXG5cbiAgcmVhZG9ubHkgZG9jc0RpcmVjdG9yeTogc3RyaW5nXG4gIHJlYWRvbmx5IGRvY2dlbjogYm9vbGVhblxuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhblxuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuXG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zXG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBMZXJuYVByb2plY3RGYWN0b3J5XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGVybmFQcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpXG5cbiAgICBpZiAob3B0aW9ucy5wcm9qZW5yY1RzKVxuICAgICAgdGhpcy5hZGREZXZEZXBzKCd0cy1ub2RlJywgJ3R5cGVzY3JpcHQnKVxuXG4gICAgdGhpcy5kb2NzRGlyZWN0b3J5ID0gb3B0aW9ucy5kb2NzRGlyZWN0b3J5ID8/ICdkb2NzJ1xuICAgIHRoaXMuZG9jZ2VuID0gb3B0aW9ucy5kb2NnZW4gPz8gZmFsc2VcbiAgICB0aGlzLnNpbmNlTGFzdFJlbGVhc2UgPSBvcHRpb25zLnNpbmNlTGFzdFJlbGVhc2UgPz8gZmFsc2VcbiAgICB0aGlzLnVzZU54ID0gb3B0aW9ucy51c2VOeCA/PyBmYWxzZVxuICAgIHRoaXMucHJvamVucmNUcyA9IG9wdGlvbnMucHJvamVucmNUcyA/PyBmYWxzZVxuICAgIHRoaXMuaW5kZXBlbmRlbnRNb2RlID0gb3B0aW9ucy5pbmRlcGVuZGVudE1vZGUgPz8gZmFsc2VcbiAgICB0aGlzLnVzZVdvcmtzcGFjZXMgPSBvcHRpb25zLnVzZVdvcmtzcGFjZXMgPz8gZmFsc2VcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9ucyA9IG9wdGlvbnMudGFza0N1c3RvbWl6YXRpb25zID8/IHt9XG5cbiAgICB0aGlzLmZhY3RvcnkgPSBuZXcgTGVybmFQcm9qZWN0RmFjdG9yeSh0aGlzKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjdXN0b21pemF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHRhc2tcbiAgICpcbiAgICogQHBhcmFtIHRhc2tOYW1lIE5hbWUgb2YgdGhlIHRhc2sgdG8gY3VzdG9taXplXG4gICAqIEBwYXJhbSBjdXN0b21pemF0aW9uIFRhc2tDdXN0b21pemF0aW9uIG9wdGlvbnNcbiAgICovXG4gIGN1c3RvbWl6ZVRhc2sodGFza05hbWU6IHN0cmluZywgY3VzdG9taXphdGlvbjogVGFza0N1c3RvbWl6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnRhc2tDdXN0b21pemF0aW9uc1t0YXNrTmFtZV0gPSBjdXN0b21pemF0aW9uXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN1Yi1wcm9qZWN0IHRvIHRoaXMgcHJvamVjdC5cbiAgICpcbiAgICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IGNhbGxlZCB3aGVuIGEgbmV3IHByb2plY3QgaXMgY3JlYXRlZCB3aXRoIGBwYXJlbnRgXG4gICAqIHBvaW50aW5nIHRvIHRoaXMgcHJvamVjdCwgc28gdGhlcmUgaXMgbm8gcmVhbCBuZWVkIHRvIGNhbGwgdGhpcyBtYW51YWxseS5cbiAgICpcbiAgICogQHBhcmFtIHN1Yi1wcm9qZWN0IFRoZSBjaGlsZCBwcm9qZWN0IHRvIGFkZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBfYWRkU3ViUHJvamVjdChzdWJwcm9qZWN0OiBQcm9qZWN0KTogdm9pZCB7XG4gICAgc3VwZXIuX2FkZFN1YlByb2plY3Qoc3VicHJvamVjdClcbiAgICB0aGlzLmZhY3RvcnkuYWRkU3ViUHJvamVjdChzdWJwcm9qZWN0KVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgaXMgYXV0b21hdGljYWxseSBjYWxsZWQgd2hlbiBhIG5ldyBwcm9qZWN0IGlzIGNyZWF0ZWQgd2l0aCBgcGFyZW50YFxuICAgKi9cbiAgYWRkU3ViUHJvamVjdChfc3VicHJvamVjdDogUHJvamVjdCkge1xuICAgIGNvbnNvbGUud2FybignTGVybmFQcm9qZWN0LmFkZFN1YlByb2plY3QgaXMgZGVwcmVjYXRlZC4gSXQgaXMgbm93IGF1dG9tYXRpY2FsbHkgY2FsbGVkIHdoZW4gYSBuZXcgcHJvamVjdCBpcyBjcmVhdGVkIHdpdGggYHBhcmVudGAnKVxuICB9XG5cbiAgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKClcbiAgICBjb25zdCBwcm9qZW5Db21tYW5kID0gdGhpcy5wcm9qZW5yY1RzID8gJ3RzLW5vZGUgLS1za2lwLXByb2plY3QgLnByb2plbnJjLnRzJyA6ICdub2RlIC5wcm9qZW5yYy5qcydcbiAgICBjb25zdCB7ZGVmYXVsdFRhc2t9ID0gdGhpc1xuICAgIGlmICghZGVmYXVsdFRhc2spXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGRlZmF1bHQgdGFzaycpXG4gICAgZGVmYXVsdFRhc2sucmVzZXQocHJvamVuQ29tbWFuZClcblxuICAgIHRoaXMuZmFjdG9yeS5idWlsZCgpXG4gIH1cbn1cblxuLyoqXG4gKiBAcGppZCBsZXJuYS10cy1wcm9qZWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBMZXJuYVR5cGVzY3JpcHRQcm9qZWN0IGV4dGVuZHMgdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCBpbXBsZW1lbnRzIElMZXJuYVByb2plY3Qge1xuICByZWFkb25seSBzaW5jZUxhc3RSZWxlYXNlOiBib29sZWFuXG4gIHJlYWRvbmx5IHVzZU54OiBib29sZWFuXG4gIHJlYWRvbmx5IGluZGVwZW5kZW50TW9kZTogYm9vbGVhblxuICByZWFkb25seSB1c2VXb3Jrc3BhY2VzOiBib29sZWFuXG4gIHJlYWRvbmx5IHRhc2tDdXN0b21pemF0aW9uczogVGFza0N1c3RvbWl6YXRpb25zXG5cbiAgcHJpdmF0ZSByZWFkb25seSBmYWN0b3J5OiBMZXJuYVByb2plY3RGYWN0b3J5XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGVybmFUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKVxuXG4gICAgdGhpcy5zaW5jZUxhc3RSZWxlYXNlID0gb3B0aW9ucy5zaW5jZUxhc3RSZWxlYXNlID8/IGZhbHNlXG4gICAgdGhpcy51c2VOeCA9IG9wdGlvbnMudXNlTnggPz8gZmFsc2VcbiAgICB0aGlzLmluZGVwZW5kZW50TW9kZSA9IG9wdGlvbnMuaW5kZXBlbmRlbnRNb2RlID8/IGZhbHNlXG4gICAgdGhpcy51c2VXb3Jrc3BhY2VzID0gb3B0aW9ucy51c2VXb3Jrc3BhY2VzID8/IGZhbHNlXG4gICAgdGhpcy50YXNrQ3VzdG9taXphdGlvbnMgPSBvcHRpb25zLnRhc2tDdXN0b21pemF0aW9ucyA/PyB7fVxuXG4gICAgaWYgKCEob3B0aW9ucy5oYXNSb290U291cmNlQ29kZSA/PyBmYWxzZSkpXG4gICAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKT8ucmVzZXQoKVxuXG4gICAgdGhpcy5mYWN0b3J5ID0gbmV3IExlcm5hUHJvamVjdEZhY3RvcnkodGhpcylcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9taXphdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0YXNrXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrTmFtZSBOYW1lIG9mIHRoZSB0YXNrIHRvIGN1c3RvbWl6ZVxuICAgKiBAcGFyYW0gY3VzdG9taXphdGlvbiBUYXNrQ3VzdG9taXphdGlvbiBvcHRpb25zXG4gICAqL1xuICBjdXN0b21pemVUYXNrKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb246IFRhc2tDdXN0b21pemF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy50YXNrQ3VzdG9taXphdGlvbnNbdGFza05hbWVdID0gY3VzdG9taXphdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdWItcHJvamVjdCB0byB0aGlzIHByb2plY3QuXG4gICAqXG4gICAqIFRoaXMgaXMgYXV0b21hdGljYWxseSBjYWxsZWQgd2hlbiBhIG5ldyBwcm9qZWN0IGlzIGNyZWF0ZWQgd2l0aCBgcGFyZW50YFxuICAgKiBwb2ludGluZyB0byB0aGlzIHByb2plY3QsIHNvIHRoZXJlIGlzIG5vIHJlYWwgbmVlZCB0byBjYWxsIHRoaXMgbWFudWFsbHkuXG4gICAqXG4gICAqIEBwYXJhbSBzdWItcHJvamVjdCBUaGUgY2hpbGQgcHJvamVjdCB0byBhZGQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX2FkZFN1YlByb2plY3Qoc3VicHJvamVjdDogUHJvamVjdCk6IHZvaWQge1xuICAgIHN1cGVyLl9hZGRTdWJQcm9qZWN0KHN1YnByb2plY3QpXG5cbiAgICB0aGlzLmZhY3RvcnkuYWRkU3ViUHJvamVjdChzdWJwcm9qZWN0KVxuICB9XG5cbiAgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKClcbiAgICB0aGlzLmZhY3RvcnkuYnVpbGQoKVxuICB9XG59XG5cbmNsYXNzIExlcm5hUHJvamVjdEZhY3Rvcnkge1xuICBwcml2YXRlIHN1YlByb2plY3RzOiBSZWNvcmQ8c3RyaW5nLCBQcm9qZWN0PiA9IHt9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9qZWN0OiBJTGVybmFQcm9qZWN0ICYgamF2YXNjcmlwdC5Ob2RlUHJvamVjdCkge1xuICAgIHByb2plY3QuYWRkRGV2RGVwcygnbGVybmEtcHJvamVuJywgJ2xlcm5hJylcbiAgfVxuXG4gIGFkZFN1YlByb2plY3Qoc3ViUHJvamVjdDogUHJvamVjdCkge1xuICAgIGNvbnN0IHtvdXRkaXJ9ID0gc3ViUHJvamVjdFxuXG4gICAgY29uc3QgcmVsYXRpdmVPdXREaXIgPSBvdXRkaXIucmVwbGFjZShgJHt0aGlzLnByb2plY3Qub3V0ZGlyfS9gLCAnJylcblxuICAgIHRoaXMuc3ViUHJvamVjdHNbcmVsYXRpdmVPdXREaXJdID0gc3ViUHJvamVjdFxuICB9XG5cbiAgYnVpbGQoKSB7XG4gICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLnJlc2V0KGBta2RpciAtcCAke3RoaXMucHJvamVjdC5hcnRpZmFjdHNKYXZhc2NyaXB0RGlyZWN0b3J5fWApXG4gICAgdGhpcy5wcm9qZWN0LnByZUNvbXBpbGVUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjbGVhbi1kaXN0ICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gKVxuXG4gICAgdGhpcy5hcHBlbmRMZXJuYUNvbW1hbmRzKClcbiAgICB0aGlzLmFkZENyb3NzTGlua3MoKVxuICAgIHRoaXMudXBkYXRlU3ViUHJvamVjdHMoKVxuICAgIHRoaXMuYWRkRG9jdW1lbnRzSW5kZXgoKVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRDcm9zc0xpbmtzKCkge1xuXG4gICAgY29uc3QgbGVybmFDb25maWc6IGFueSA9IHtcbiAgICAgIHVzZU54OiB0aGlzLnByb2plY3QudXNlTngsXG4gICAgICB2ZXJzaW9uOiB0aGlzLnByb2plY3QuaW5kZXBlbmRlbnRNb2RlID8gJ2luZGVwZW5kZW50JyA6ICcwLjAuMCcsXG4gICAgfVxuXG4gICAgY29uc3QgcGFja2FnZXMgPSBPYmplY3Qua2V5cyh0aGlzLnN1YlByb2plY3RzKVxuXG4gICAgaWYgKHRoaXMucHJvamVjdC51c2VXb3Jrc3BhY2VzKVxuICAgICAgdGhpcy5wcm9qZWN0LnBhY2thZ2UuYWRkRmllbGQoJ3dvcmtzcGFjZXMnLCBwYWNrYWdlcylcbiAgICBlbHNlXG4gICAgICBsZXJuYUNvbmZpZy5wYWNrYWdlcyA9IHBhY2thZ2VzXG5cblxuICAgIG5ldyBKc29uRmlsZSh0aGlzLnByb2plY3QsICdsZXJuYS5qc29uJywge1xuICAgICAgb2JqOiBsZXJuYUNvbmZpZyxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBlbmRMZXJuYUNvbW1hbmRzKCkge1xuICAgIGNvbnN0IHVwZ3JhZGVUYXNrTmFtZSA9ICd1cGdyYWRlJ1xuICAgIGNvbnN0IHBvc3RVcGdyYWRlVGFza05hbWUgPSAncG9zdC11cGdyYWRlJ1xuICAgIGNvbnN0IHBvc3RVcGdyYWRlVGFzayA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKHBvc3RVcGdyYWRlVGFza05hbWUpXG4gICAgcG9zdFVwZ3JhZGVUYXNrPy5wcmVwZW5kRXhlYyh0aGlzLmdldExlcm5hQ29tbWFuZCh1cGdyYWRlVGFza05hbWUsIHtzaW5jZUxhc3RSZWxlYXNlOiBmYWxzZX0pKVxuICAgIHBvc3RVcGdyYWRlVGFzaz8uZXhlYygnbnB4IHByb2plbicpXG5cbiAgICB0aGlzLnByb2plY3QudGFza3MuYWxsXG4gICAgICAuZm9yRWFjaCh0YXNrID0+IHtcbiAgICAgICAgY29uc3QgY3VzdG9taXphdGlvbiA9IHRoaXMucHJvamVjdC50YXNrQ3VzdG9taXphdGlvbnNbdGFzay5uYW1lXVxuICAgICAgICBjb25zdCBhZGRMZXJuYVN0ZXAgPSBjdXN0b21pemF0aW9uPy5hZGRMZXJuYVN0ZXAgPz8gdHJ1ZVxuXG4gICAgICAgIGlmIChsb2NrZWRUYXNrTmFtZXMuaW5jbHVkZXModGFzay5uYW1lKSB8fCAhYWRkTGVybmFTdGVwKVxuICAgICAgICAgIHJldHVyblxuXG4gICAgICAgIHRhc2suZXhlYyh0aGlzLmdldExlcm5hQ29tbWFuZCh0YXNrLm5hbWUsIGN1c3RvbWl6YXRpb24pKVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGVybmFDb21tYW5kKHRhc2tOYW1lOiBzdHJpbmcsIGN1c3RvbWl6YXRpb24/OiBUYXNrQ3VzdG9taXphdGlvbikge1xuICAgIGNvbnN0IG1haW5Db21tYW5kID0gYGxlcm5hIHJ1biAke3Rhc2tOYW1lfSAtLXN0cmVhbWBcbiAgICBjb25zdCB1c2VTaW5jZUZsYWcgPSBjdXN0b21pemF0aW9uPy5zaW5jZUxhc3RSZWxlYXNlID8/IHRoaXMucHJvamVjdC5zaW5jZUxhc3RSZWxlYXNlXG5cbiAgICBjb25zdCBpbmNsdWRlUGF0dGVybnMgPSBjdXN0b21pemF0aW9uPy5pbmNsdWRlID8/IFtdXG4gICAgY29uc3QgZXhjbHVkZVBhdHRlcm5zID0gY3VzdG9taXphdGlvbj8uZXhjbHVkZSA/PyBbXVxuXG4gICAgY29uc3Qgc2NvcGVGbGFncyA9IGluY2x1ZGVQYXR0ZXJucy5tYXAoKGdsb2IpID0+IGAgLS1zY29wZSAke2dsb2J9YCkuam9pbignJylcbiAgICBjb25zdCBpZ25vcmVGbGFncyA9IGV4Y2x1ZGVQYXR0ZXJucy5tYXAoKGdsb2IpID0+IGAgLS1pZ25vcmUgJHtnbG9ifWApLmpvaW4oJycpXG5cblxuICAgIGNvbnN0IHBvc3RDb21tYW5kID0gdXNlU2luY2VGbGFnID8gJyAtLXNpbmNlICQoZ2l0IGRlc2NyaWJlIC0tYWJicmV2PTAgLS10YWdzIC0tbWF0Y2ggXCJ2KlwiKScgOiAnJ1xuICAgIHJldHVybiBgJHttYWluQ29tbWFuZH0ke3Bvc3RDb21tYW5kfSR7c2NvcGVGbGFnc30ke2lnbm9yZUZsYWdzfWBcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3ViUHJvamVjdHMoKSB7XG4gICAgY29uc3QgYnVtcFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgnYnVtcCcpXG4gICAgY29uc3QgdW5idW1wVGFzayA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKVxuXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5zdWJQcm9qZWN0cykuZm9yRWFjaCgoW3N1YlByb2plY3RQYXRoLCBzdWJQcm9qZWN0XSkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAodGhpcy5wcm9qZWN0LmRvY2dlbiAmJiBzdWJQcm9qZWN0RG9jc0RpcmVjdG9yeSlcbiAgICAgICAgdGhpcy5wcm9qZWN0LnBvc3RDb21waWxlVGFzay5leGVjKGBsZXJuYS1wcm9qZW4gbW92ZS1kb2NzICR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9ICR7c3ViUHJvamVjdFBhdGh9ICR7c3ViUHJvamVjdERvY3NEaXJlY3Rvcnl9YClcblxuICAgICAgY29uc3QgcGFja2FnZUFsbFRhc2sgPSBzdWJQcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ3BhY2thZ2UtYWxsJylcblxuICAgICAgaWYgKHBhY2thZ2VBbGxUYXNrKVxuICAgICAgICBzdWJQcm9qZWN0LnBhY2thZ2VUYXNrLnNwYXduKHBhY2thZ2VBbGxUYXNrKVxuXG4gICAgICBjb25zdCBhcnRpZmFjdHNEaXJlY3RvcnkgPSBnZXRBcnRpZmFjdHNEaXJlY3Rvcnkoc3ViUHJvamVjdClcblxuICAgICAgdGhpcy5wcm9qZWN0LnBhY2thZ2VUYXNrLmV4ZWMoYGxlcm5hLXByb2plbiBjb3B5LWRpc3QgJHtzdWJQcm9qZWN0UGF0aH0vJHthcnRpZmFjdHNEaXJlY3Rvcnl9ICR7dGhpcy5wcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeX1gKVxuXG4gICAgICBzdWJQcm9qZWN0LmRlZmF1bHRUYXNrPy5yZXNldCgpXG5cbiAgICAgIGNvbnN0IGJ1bXBFbnZzID0ge1xuICAgICAgICBPVVRGSUxFOiAncGFja2FnZS5qc29uJyxcbiAgICAgICAgQ0hBTkdFTE9HOiBgJHthcnRpZmFjdHNEaXJlY3Rvcnl9L2NoYW5nZWxvZy5tZGAsXG4gICAgICAgIEJVTVBGSUxFOiBgJHthcnRpZmFjdHNEaXJlY3Rvcnl9L3ZlcnNpb24udHh0YCxcbiAgICAgICAgUkVMRUFTRVRBRzogYCR7YXJ0aWZhY3RzRGlyZWN0b3J5fS9yZWxlYXNldGFnLnR4dGAsXG4gICAgICAgIFJFTEVBU0VfVEFHX1BSRUZJWDogJycsXG4gICAgICB9XG5cbiAgICAgIGlmIChidW1wVGFzaykge1xuICAgICAgICBjb25zdCBzdWJCdW1wVGFzayA9IHN1YlByb2plY3QuYWRkVGFzayhidW1wVGFzay5uYW1lLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IGJ1bXBUYXNrLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIGNvbmRpdGlvbjogYnVtcFRhc2suY29uZGl0aW9uLFxuICAgICAgICAgIGVudjogYnVtcEVudnMsXG4gICAgICAgIH0pXG4gICAgICAgIHN1YkJ1bXBUYXNrLmJ1aWx0aW4oJ3JlbGVhc2UvYnVtcC12ZXJzaW9uJylcbiAgICAgIH1cblxuICAgICAgaWYgKHVuYnVtcFRhc2spIHtcbiAgICAgICAgY29uc3Qgc3ViQnVtcFRhc2sgPSBzdWJQcm9qZWN0LmFkZFRhc2sodW5idW1wVGFzay5uYW1lLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IHVuYnVtcFRhc2suZGVzY3JpcHRpb24sXG4gICAgICAgICAgY29uZGl0aW9uOiB1bmJ1bXBUYXNrLmNvbmRpdGlvbixcbiAgICAgICAgICBlbnY6IGJ1bXBFbnZzLFxuICAgICAgICB9KVxuICAgICAgICBzdWJCdW1wVGFzay5idWlsdGluKCdyZWxlYXNlL3Jlc2V0LXZlcnNpb24nKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGFkZERvY3VtZW50c0luZGV4KCkge1xuICAgIGlmICghdGhpcy5wcm9qZWN0LmRvY2dlbilcbiAgICAgIHJldHVyblxuXG4gICAgY29uc3Qgc3ViUHJvamVjdHNEb2NzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge31cblxuICAgIGNvbnN0IGluZGV4TWFya2Rvd24gPSBuZXcgU291cmNlQ29kZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS9pbmRleC5tZGApXG4gICAgY29uc3QgcmVhZG1lTWFya2Rvd24gPSBuZXcgU291cmNlQ29kZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS9SRUFETUUubWRgKVxuXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5zdWJQcm9qZWN0cykuZm9yRWFjaCgoW3N1YlByb2plY3RQYXRoLCBzdWJQcm9qZWN0XSkgPT4ge1xuICAgICAgY29uc3Qgc3ViUHJvamVjdERvY3NEaXJlY3RvcnkgPSBnZXREb2NzRGlyZWN0b3J5KHN1YlByb2plY3QpXG4gICAgICBpZiAoIXN1YlByb2plY3REb2NzRGlyZWN0b3J5KVxuICAgICAgICByZXR1cm5cblxuICAgICAgY29uc3QganNpaURvY3NPdXRwdXQgPSBleHRyYWN0SnNpaURvY3NPdXRwdXQoc3ViUHJvamVjdC50YXNrcylcbiAgICAgIGlmIChqc2lpRG9jc091dHB1dCkge1xuICAgICAgICBjb25zdCBwYXRoID0gYCR7c3ViUHJvamVjdFBhdGh9LyR7anNpaURvY3NPdXRwdXR9YFxuICAgICAgICBpbmRleE1hcmtkb3duLmxpbmUoYC0gIyMgWyR7c3ViUHJvamVjdC5uYW1lfV0oJHtwYXRofSlgKVxuICAgICAgICBzdWJQcm9qZWN0c0RvY3Nbc3ViUHJvamVjdC5uYW1lXSA9IHBhdGhcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1YlByb2plY3RzRG9jc1tzdWJQcm9qZWN0Lm5hbWVdID0gYCR7c3ViUHJvamVjdFBhdGh9L2luZGV4Lmh0bWxgXG4gICAgICB9XG4gICAgICByZWFkbWVNYXJrZG93bi5saW5lKGAtICMjIFske3N1YlByb2plY3QubmFtZX1dKC4uLyR7c3ViUHJvamVjdFBhdGh9L1JFQURNRS5tZClgKVxuICAgIH0pXG5cbiAgICBjb25zdCBpbmRleEh0bWwgPSBuZXcgU291cmNlQ29kZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5kb2NzRGlyZWN0b3J5fS9pbmRleC5odG1sYClcbiAgICBpbmRleEh0bWwubGluZSgnPCFET0NUWVBFIGh0bWw+JylcbiAgICBpbmRleEh0bWwubGluZSgnPGh0bWw+JylcbiAgICBpbmRleEh0bWwub3BlbignPGJvZHk+JylcbiAgICBpbmRleEh0bWwub3BlbignPHVsPicpXG4gICAgT2JqZWN0LmVudHJpZXMoc3ViUHJvamVjdHNEb2NzKS5mb3JFYWNoKChbbmFtZSwgcGF0aF0pID0+IHtcbiAgICAgIGluZGV4SHRtbC5vcGVuKCc8bGk+JylcbiAgICAgIGluZGV4SHRtbC5vcGVuKGA8YSBocmVmPVwiJHtwYXRofVwiPmApXG4gICAgICBpbmRleEh0bWwubGluZShuYW1lKVxuICAgICAgaW5kZXhIdG1sLmNsb3NlKCc8L2E+JylcbiAgICAgIGluZGV4SHRtbC5jbG9zZSgnPC9saT4nKVxuICAgIH0pXG4gICAgaW5kZXhIdG1sLmNsb3NlKCc8L3VsPicpXG4gICAgaW5kZXhIdG1sLmNsb3NlKCc8L2JvZHk+JylcbiAgICBpbmRleEh0bWwubGluZSgnPC9odG1sPicpXG4gICAgaW5kZXhIdG1sLmxpbmUoKVxuXG4gICAgdGhpcy5wcm9qZWN0LmdpdGF0dHJpYnV0ZXMuYWRkQXR0cmlidXRlcyhgLyR7dGhpcy5wcm9qZWN0LmRvY3NEaXJlY3Rvcnl9LyoqYCwgJ2xpbmd1aXN0LWdlbmVyYXRlZCcpXG4gIH1cbn0iXX0=
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NodeProject } from 'projen/lib/javascript';
|
|
2
|
+
/**
|
|
3
|
+
* Adds dependency to the project for NX task runner
|
|
4
|
+
* see https://nx.dev/reference/project-configuration#dependson
|
|
5
|
+
*
|
|
6
|
+
* @param project The Project to add dependency to
|
|
7
|
+
* @param taskName The task name that is dependent on another tasks
|
|
8
|
+
* @param dependsOnTaskName The task name that is dependent on in other projects
|
|
9
|
+
* @param dependsOn The packages that source project is dependent on
|
|
10
|
+
*/
|
|
11
|
+
export declare function addNxTaskDependency(project: NodeProject, taskName: string, dependsOnTaskName: string, ...dependsOn: NodeProject[]): void;
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addNxTaskDependency = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Adds dependency to the project for NX task runner
|
|
6
|
+
* see https://nx.dev/reference/project-configuration#dependson
|
|
7
|
+
*
|
|
8
|
+
* @param project The Project to add dependency to
|
|
9
|
+
* @param taskName The task name that is dependent on another tasks
|
|
10
|
+
* @param dependsOnTaskName The task name that is dependent on in other projects
|
|
11
|
+
* @param dependsOn The packages that source project is dependent on
|
|
12
|
+
*/
|
|
13
|
+
function addNxTaskDependency(project, taskName, dependsOnTaskName, ...dependsOn) {
|
|
14
|
+
project.package.addField('nx', {
|
|
15
|
+
targets: {
|
|
16
|
+
[taskName]: {
|
|
17
|
+
dependsOn: [
|
|
18
|
+
{
|
|
19
|
+
projects: dependsOn.map(d => d.package.packageName),
|
|
20
|
+
target: dependsOnTaskName,
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
exports.addNxTaskDependency = addNxTaskDependency;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxPQUFvQixFQUFFLFFBQWdCLEVBQUUsaUJBQXlCLEVBQUUsR0FBRyxTQUF3QjtJQUNoSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7UUFDN0IsT0FBTyxFQUFFO1lBQ1AsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDVixTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQzt3QkFDbkQsTUFBTSxFQUFFLGlCQUFpQjtxQkFDMUI7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQWJELGtEQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOb2RlUHJvamVjdH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0J1xuXG4vKipcbiAqIEFkZHMgZGVwZW5kZW5jeSB0byB0aGUgcHJvamVjdCBmb3IgTlggdGFzayBydW5uZXJcbiAqIHNlZSBodHRwczovL254LmRldi9yZWZlcmVuY2UvcHJvamVjdC1jb25maWd1cmF0aW9uI2RlcGVuZHNvblxuICpcbiAqIEBwYXJhbSBwcm9qZWN0IFRoZSBQcm9qZWN0IHRvIGFkZCBkZXBlbmRlbmN5IHRvXG4gKiBAcGFyYW0gdGFza05hbWUgVGhlIHRhc2sgbmFtZSB0aGF0IGlzIGRlcGVuZGVudCBvbiBhbm90aGVyIHRhc2tzXG4gKiBAcGFyYW0gZGVwZW5kc09uVGFza05hbWUgVGhlIHRhc2sgbmFtZSB0aGF0IGlzIGRlcGVuZGVudCBvbiBpbiBvdGhlciBwcm9qZWN0c1xuICogQHBhcmFtIGRlcGVuZHNPbiBUaGUgcGFja2FnZXMgdGhhdCBzb3VyY2UgcHJvamVjdCBpcyBkZXBlbmRlbnQgb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZE54VGFza0RlcGVuZGVuY3kocHJvamVjdDogTm9kZVByb2plY3QsIHRhc2tOYW1lOiBzdHJpbmcsIGRlcGVuZHNPblRhc2tOYW1lOiBzdHJpbmcsIC4uLmRlcGVuZHNPbjogTm9kZVByb2plY3RbXSk6IHZvaWQge1xuICBwcm9qZWN0LnBhY2thZ2UuYWRkRmllbGQoJ254Jywge1xuICAgIHRhcmdldHM6IHtcbiAgICAgIFt0YXNrTmFtZV06IHtcbiAgICAgICAgZGVwZW5kc09uOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvamVjdHM6IGRlcGVuZHNPbi5tYXAoZCA9PiBkLnBhY2thZ2UucGFja2FnZU5hbWUpLFxuICAgICAgICAgICAgdGFyZ2V0OiBkZXBlbmRzT25UYXNrTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9KVxufSJdfQ==
|