construct-hub 0.2.4 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +519 -26
- package/API.md +301 -0
- package/README.md +51 -0
- package/lib/backend/ingestion/index.d.ts +5 -0
- package/lib/backend/ingestion/index.js +4 -3
- package/lib/backend/ingestion/ingestion.bundle/index.js +54 -2
- package/lib/backend/ingestion/ingestion.lambda.js +15 -2
- package/lib/backend/shared/tags.d.ts +7 -0
- package/lib/backend/shared/tags.js +32 -0
- package/lib/backend/transliterator/transliterator.bundle/Dockerfile +1 -1
- package/lib/construct-hub.d.ts +7 -0
- package/lib/construct-hub.js +14 -5
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/package-sources/code-artifact.js +1 -1
- package/lib/package-sources/npmjs/npm-js-follower.bundle/index.js +1 -1
- package/lib/package-sources/npmjs/npm-js-follower.lambda.js +2 -2
- package/lib/package-sources/npmjs.js +1 -1
- package/lib/package-tag/index.d.ts +143 -0
- package/lib/package-tag/index.js +116 -0
- package/lib/spdx-license.js +1 -1
- package/lib/webapp/config.d.ts +7 -0
- package/lib/webapp/config.js +15 -3
- package/lib/webapp/index.d.ts +5 -0
- package/lib/webapp/index.js +2 -1
- package/package.json +1 -1
package/API.md
CHANGED
@@ -323,6 +323,18 @@ The package sources to register with this ConstructHub instance.
|
|
323
323
|
|
324
324
|
---
|
325
325
|
|
326
|
+
##### `packageTags`<sup>Optional</sup> <a name="construct-hub.ConstructHubProps.property.packageTags"></a>
|
327
|
+
|
328
|
+
```typescript
|
329
|
+
public readonly packageTags: PackageTag[];
|
330
|
+
```
|
331
|
+
|
332
|
+
- *Type:* [`construct-hub.PackageTag`](#construct-hub.PackageTag)[]
|
333
|
+
|
334
|
+
Configuration for custom package tags.
|
335
|
+
|
336
|
+
---
|
337
|
+
|
326
338
|
### DenyListMap <a name="construct-hub.DenyListMap"></a>
|
327
339
|
|
328
340
|
The contents of the deny list file in S3.
|
@@ -701,6 +713,155 @@ An optional list of linked resources to be displayed on the monitoring dashboard
|
|
701
713
|
|
702
714
|
---
|
703
715
|
|
716
|
+
### PackageTag <a name="construct-hub.PackageTag"></a>
|
717
|
+
|
718
|
+
Configuration for applying custom tags to relevant packages.
|
719
|
+
|
720
|
+
Custom tags are
|
721
|
+
displayed on the package details page, and can be used for searching.
|
722
|
+
|
723
|
+
#### Initializer <a name="[object Object].Initializer"></a>
|
724
|
+
|
725
|
+
```typescript
|
726
|
+
import { PackageTag } from 'construct-hub'
|
727
|
+
|
728
|
+
const packageTag: PackageTag = { ... }
|
729
|
+
```
|
730
|
+
|
731
|
+
##### `condition`<sup>Required</sup> <a name="construct-hub.PackageTag.property.condition"></a>
|
732
|
+
|
733
|
+
```typescript
|
734
|
+
public readonly condition: TagCondition;
|
735
|
+
```
|
736
|
+
|
737
|
+
- *Type:* [`construct-hub.TagCondition`](#construct-hub.TagCondition)
|
738
|
+
|
739
|
+
The description of the logic that dictates whether the package has the tag applied.
|
740
|
+
|
741
|
+
---
|
742
|
+
|
743
|
+
##### `label`<sup>Required</sup> <a name="construct-hub.PackageTag.property.label"></a>
|
744
|
+
|
745
|
+
```typescript
|
746
|
+
public readonly label: string;
|
747
|
+
```
|
748
|
+
|
749
|
+
- *Type:* `string`
|
750
|
+
|
751
|
+
The label for the tag being applied.
|
752
|
+
|
753
|
+
---
|
754
|
+
|
755
|
+
##### `color`<sup>Optional</sup> <a name="construct-hub.PackageTag.property.color"></a>
|
756
|
+
|
757
|
+
```typescript
|
758
|
+
public readonly color: string;
|
759
|
+
```
|
760
|
+
|
761
|
+
- *Type:* `string`
|
762
|
+
|
763
|
+
The hex value string for the color of the tag when displayed.
|
764
|
+
|
765
|
+
---
|
766
|
+
|
767
|
+
### PackageTagConfig <a name="construct-hub.PackageTagConfig"></a>
|
768
|
+
|
769
|
+
Serialized tag declaration to be passed to lambdas via environment variables.
|
770
|
+
|
771
|
+
#### Initializer <a name="[object Object].Initializer"></a>
|
772
|
+
|
773
|
+
```typescript
|
774
|
+
import { PackageTagConfig } from 'construct-hub'
|
775
|
+
|
776
|
+
const packageTagConfig: PackageTagConfig = { ... }
|
777
|
+
```
|
778
|
+
|
779
|
+
##### `condition`<sup>Required</sup> <a name="construct-hub.PackageTagConfig.property.condition"></a>
|
780
|
+
|
781
|
+
```typescript
|
782
|
+
public readonly condition: TagConditionConfig;
|
783
|
+
```
|
784
|
+
|
785
|
+
- *Type:* [`construct-hub.TagConditionConfig`](#construct-hub.TagConditionConfig)
|
786
|
+
|
787
|
+
---
|
788
|
+
|
789
|
+
##### `label`<sup>Required</sup> <a name="construct-hub.PackageTagConfig.property.label"></a>
|
790
|
+
|
791
|
+
```typescript
|
792
|
+
public readonly label: string;
|
793
|
+
```
|
794
|
+
|
795
|
+
- *Type:* `string`
|
796
|
+
|
797
|
+
The label for the tag being applied.
|
798
|
+
|
799
|
+
---
|
800
|
+
|
801
|
+
##### `color`<sup>Optional</sup> <a name="construct-hub.PackageTagConfig.property.color"></a>
|
802
|
+
|
803
|
+
```typescript
|
804
|
+
public readonly color: string;
|
805
|
+
```
|
806
|
+
|
807
|
+
- *Type:* `string`
|
808
|
+
|
809
|
+
The hex value string for the color of the tag when displayed.
|
810
|
+
|
811
|
+
---
|
812
|
+
|
813
|
+
### TagConditionConfig <a name="construct-hub.TagConditionConfig"></a>
|
814
|
+
|
815
|
+
Serialized config for a tag condition.
|
816
|
+
|
817
|
+
#### Initializer <a name="[object Object].Initializer"></a>
|
818
|
+
|
819
|
+
```typescript
|
820
|
+
import { TagConditionConfig } from 'construct-hub'
|
821
|
+
|
822
|
+
const tagConditionConfig: TagConditionConfig = { ... }
|
823
|
+
```
|
824
|
+
|
825
|
+
##### `type`<sup>Required</sup> <a name="construct-hub.TagConditionConfig.property.type"></a>
|
826
|
+
|
827
|
+
```typescript
|
828
|
+
public readonly type: TagConditionLogicType;
|
829
|
+
```
|
830
|
+
|
831
|
+
- *Type:* [`construct-hub.TagConditionLogicType`](#construct-hub.TagConditionLogicType)
|
832
|
+
|
833
|
+
---
|
834
|
+
|
835
|
+
##### `children`<sup>Optional</sup> <a name="construct-hub.TagConditionConfig.property.children"></a>
|
836
|
+
|
837
|
+
```typescript
|
838
|
+
public readonly children: TagConditionConfig[];
|
839
|
+
```
|
840
|
+
|
841
|
+
- *Type:* [`construct-hub.TagConditionConfig`](#construct-hub.TagConditionConfig)[]
|
842
|
+
|
843
|
+
---
|
844
|
+
|
845
|
+
##### `key`<sup>Optional</sup> <a name="construct-hub.TagConditionConfig.property.key"></a>
|
846
|
+
|
847
|
+
```typescript
|
848
|
+
public readonly key: string[];
|
849
|
+
```
|
850
|
+
|
851
|
+
- *Type:* `string`[]
|
852
|
+
|
853
|
+
---
|
854
|
+
|
855
|
+
##### `value`<sup>Optional</sup> <a name="construct-hub.TagConditionConfig.property.value"></a>
|
856
|
+
|
857
|
+
```typescript
|
858
|
+
public readonly value: string;
|
859
|
+
```
|
860
|
+
|
861
|
+
- *Type:* `string`
|
862
|
+
|
863
|
+
---
|
864
|
+
|
704
865
|
## Classes <a name="Classes"></a>
|
705
866
|
|
706
867
|
### SpdxLicense <a name="construct-hub.SpdxLicense"></a>
|
@@ -5256,6 +5417,121 @@ Zope Public License 2.1.
|
|
5256
5417
|
|
5257
5418
|
---
|
5258
5419
|
|
5420
|
+
### TagCondition <a name="construct-hub.TagCondition"></a>
|
5421
|
+
|
5422
|
+
Condition for applying a custom tag to a package.
|
5423
|
+
|
5424
|
+
#### Initializers <a name="construct-hub.TagCondition.Initializer"></a>
|
5425
|
+
|
5426
|
+
```typescript
|
5427
|
+
import { TagCondition } from 'construct-hub'
|
5428
|
+
|
5429
|
+
new TagCondition()
|
5430
|
+
```
|
5431
|
+
|
5432
|
+
#### Methods <a name="Methods"></a>
|
5433
|
+
|
5434
|
+
##### `bind` <a name="construct-hub.TagCondition.bind"></a>
|
5435
|
+
|
5436
|
+
```typescript
|
5437
|
+
public bind()
|
5438
|
+
```
|
5439
|
+
|
5440
|
+
#### Static Functions <a name="Static Functions"></a>
|
5441
|
+
|
5442
|
+
##### `and` <a name="construct-hub.TagCondition.and"></a>
|
5443
|
+
|
5444
|
+
```typescript
|
5445
|
+
import { TagCondition } from 'construct-hub'
|
5446
|
+
|
5447
|
+
TagCondition.and(conds: TagCondition)
|
5448
|
+
```
|
5449
|
+
|
5450
|
+
###### `conds`<sup>Required</sup> <a name="construct-hub.TagCondition.parameter.conds"></a>
|
5451
|
+
|
5452
|
+
- *Type:* [`construct-hub.TagCondition`](#construct-hub.TagCondition)
|
5453
|
+
|
5454
|
+
---
|
5455
|
+
|
5456
|
+
##### `field` <a name="construct-hub.TagCondition.field"></a>
|
5457
|
+
|
5458
|
+
```typescript
|
5459
|
+
import { TagCondition } from 'construct-hub'
|
5460
|
+
|
5461
|
+
TagCondition.field(keys: string)
|
5462
|
+
```
|
5463
|
+
|
5464
|
+
###### `keys`<sup>Required</sup> <a name="construct-hub.TagCondition.parameter.keys"></a>
|
5465
|
+
|
5466
|
+
- *Type:* `string`
|
5467
|
+
|
5468
|
+
---
|
5469
|
+
|
5470
|
+
##### `not` <a name="construct-hub.TagCondition.not"></a>
|
5471
|
+
|
5472
|
+
```typescript
|
5473
|
+
import { TagCondition } from 'construct-hub'
|
5474
|
+
|
5475
|
+
TagCondition.not(conds: TagCondition)
|
5476
|
+
```
|
5477
|
+
|
5478
|
+
###### `conds`<sup>Required</sup> <a name="construct-hub.TagCondition.parameter.conds"></a>
|
5479
|
+
|
5480
|
+
- *Type:* [`construct-hub.TagCondition`](#construct-hub.TagCondition)
|
5481
|
+
|
5482
|
+
---
|
5483
|
+
|
5484
|
+
##### `or` <a name="construct-hub.TagCondition.or"></a>
|
5485
|
+
|
5486
|
+
```typescript
|
5487
|
+
import { TagCondition } from 'construct-hub'
|
5488
|
+
|
5489
|
+
TagCondition.or(conds: TagCondition)
|
5490
|
+
```
|
5491
|
+
|
5492
|
+
###### `conds`<sup>Required</sup> <a name="construct-hub.TagCondition.parameter.conds"></a>
|
5493
|
+
|
5494
|
+
- *Type:* [`construct-hub.TagCondition`](#construct-hub.TagCondition)
|
5495
|
+
|
5496
|
+
---
|
5497
|
+
|
5498
|
+
|
5499
|
+
|
5500
|
+
### TagConditionField <a name="construct-hub.TagConditionField"></a>
|
5501
|
+
|
5502
|
+
Target a field to use in logic to dictate whether a tag is relevant.
|
5503
|
+
|
5504
|
+
#### Initializers <a name="construct-hub.TagConditionField.Initializer"></a>
|
5505
|
+
|
5506
|
+
```typescript
|
5507
|
+
import { TagConditionField } from 'construct-hub'
|
5508
|
+
|
5509
|
+
new TagConditionField(field: string[])
|
5510
|
+
```
|
5511
|
+
|
5512
|
+
##### `field`<sup>Required</sup> <a name="construct-hub.TagConditionField.parameter.field"></a>
|
5513
|
+
|
5514
|
+
- *Type:* `string`[]
|
5515
|
+
|
5516
|
+
---
|
5517
|
+
|
5518
|
+
#### Methods <a name="Methods"></a>
|
5519
|
+
|
5520
|
+
##### `eq` <a name="construct-hub.TagConditionField.eq"></a>
|
5521
|
+
|
5522
|
+
```typescript
|
5523
|
+
public eq(value: any)
|
5524
|
+
```
|
5525
|
+
|
5526
|
+
###### `value`<sup>Required</sup> <a name="construct-hub.TagConditionField.parameter.value"></a>
|
5527
|
+
|
5528
|
+
- *Type:* `any`
|
5529
|
+
|
5530
|
+
---
|
5531
|
+
|
5532
|
+
|
5533
|
+
|
5534
|
+
|
5259
5535
|
## Protocols <a name="Protocols"></a>
|
5260
5536
|
|
5261
5537
|
### IDenyList <a name="construct-hub.IDenyList"></a>
|
@@ -5383,3 +5659,28 @@ the id of the external connection (i.e: `public:npmjs`).
|
|
5383
5659
|
---
|
5384
5660
|
|
5385
5661
|
|
5662
|
+
## Enums <a name="Enums"></a>
|
5663
|
+
|
5664
|
+
### TagConditionLogicType <a name="TagConditionLogicType"></a>
|
5665
|
+
|
5666
|
+
Logic operators for performing specific conditional logic.
|
5667
|
+
|
5668
|
+
#### `AND` <a name="construct-hub.TagConditionLogicType.AND"></a>
|
5669
|
+
|
5670
|
+
---
|
5671
|
+
|
5672
|
+
|
5673
|
+
#### `OR` <a name="construct-hub.TagConditionLogicType.OR"></a>
|
5674
|
+
|
5675
|
+
---
|
5676
|
+
|
5677
|
+
|
5678
|
+
#### `NOT` <a name="construct-hub.TagConditionLogicType.NOT"></a>
|
5679
|
+
|
5680
|
+
---
|
5681
|
+
|
5682
|
+
|
5683
|
+
#### `EQUALS` <a name="construct-hub.TagConditionLogicType.EQUALS"></a>
|
5684
|
+
|
5685
|
+
---
|
5686
|
+
|
package/README.md
CHANGED
@@ -164,6 +164,57 @@ you may set the `isolateLambdas` setting to `false`.
|
|
164
164
|
There are a number of customizations available in order to make your private
|
165
165
|
construct hub better tailored to your organization.
|
166
166
|
|
167
|
+
#### Package Tags
|
168
|
+
|
169
|
+
Configuring package tags allows you to compute additional labels to be applied
|
170
|
+
to packages. These can be used to indicate to users which packages are owned by
|
171
|
+
trusted organizations, or any other arbitrary conditions, and can be referenced
|
172
|
+
while searching.
|
173
|
+
|
174
|
+
For example:
|
175
|
+
```ts
|
176
|
+
new ConstructHub(this, "ConstructHub", {
|
177
|
+
...myProps,
|
178
|
+
packageTags: [{
|
179
|
+
label: 'Official',
|
180
|
+
color: '#00FF00',
|
181
|
+
condition: TagCondition.field('name').eq('construct-hub'),
|
182
|
+
}]
|
183
|
+
});
|
184
|
+
```
|
185
|
+
|
186
|
+
The above example will result in packages with the `name` of `construct-hub` to
|
187
|
+
receive the `Official` tag, which is colored green.
|
188
|
+
|
189
|
+
Combinations of conditions are also supported:
|
190
|
+
```ts
|
191
|
+
new ConstructHub(this, "ConstructHub", {
|
192
|
+
...myProps,
|
193
|
+
packageTags: [{
|
194
|
+
label: 'Official',
|
195
|
+
color: '#00FF00',
|
196
|
+
condition: TagCondition.or(
|
197
|
+
TagCondition.field('name').eq('construct-hub'),
|
198
|
+
TagCondition.field('name').eq('construct-hub-webapp'),
|
199
|
+
),
|
200
|
+
}]
|
201
|
+
});
|
202
|
+
|
203
|
+
// or more succintly if you have a long list
|
204
|
+
condition: TagCondition.or(
|
205
|
+
...['construct-hub', 'construct-hub-webapp', '...',]
|
206
|
+
.map(name => TagCondition.field('name').eq(name))
|
207
|
+
),
|
208
|
+
```
|
209
|
+
|
210
|
+
You can assert against any value within package json including nested ones.
|
211
|
+
```ts
|
212
|
+
TagCondition.field('constructHub', 'nested', 'key').eq('value');
|
213
|
+
|
214
|
+
// checks
|
215
|
+
packageJson?.constructHub?.nested?.key === value;
|
216
|
+
```
|
217
|
+
|
167
218
|
#### Package Links
|
168
219
|
|
169
220
|
Configuring package links allows you to replace the `Repository`, `License`,
|
@@ -6,6 +6,7 @@ import { IBucket } from '@aws-cdk/aws-s3';
|
|
6
6
|
import { IQueue } from '@aws-cdk/aws-sqs';
|
7
7
|
import { Construct, Duration } from '@aws-cdk/core';
|
8
8
|
import { Monitoring } from '../../monitoring';
|
9
|
+
import { PackageTagConfig } from '../../package-tag';
|
9
10
|
import type { PackageLinkConfig } from '../../webapp';
|
10
11
|
import { Orchestration } from '../orchestration';
|
11
12
|
export interface IngestionProps {
|
@@ -32,6 +33,10 @@ export interface IngestionProps {
|
|
32
33
|
* Configuration for custom package page links.
|
33
34
|
*/
|
34
35
|
readonly packageLinks?: PackageLinkConfig[];
|
36
|
+
/**
|
37
|
+
* Serialized configuration for custom package tags.
|
38
|
+
*/
|
39
|
+
readonly packageTags?: PackageTagConfig[];
|
35
40
|
}
|
36
41
|
/**
|
37
42
|
* The ingestion function receives messages from discovery integrations and
|
@@ -20,7 +20,7 @@ const ingestion_1 = require("./ingestion");
|
|
20
20
|
*/
|
21
21
|
class Ingestion extends core_1.Construct {
|
22
22
|
constructor(scope, id, props) {
|
23
|
-
var _a, _b;
|
23
|
+
var _a, _b, _c;
|
24
24
|
super(scope, id);
|
25
25
|
this.queueRetentionPeriod = core_1.Duration.days(14);
|
26
26
|
this.deadLetterQueue = new aws_sqs_1.Queue(this, 'DLQ', {
|
@@ -43,8 +43,9 @@ class Ingestion extends core_1.Construct {
|
|
43
43
|
BUCKET_NAME: props.bucket.bucketName,
|
44
44
|
STATE_MACHINE_ARN: props.orchestration.stateMachine.stateMachineArn,
|
45
45
|
PACKAGE_LINKS: JSON.stringify((_a = props.packageLinks) !== null && _a !== void 0 ? _a : []),
|
46
|
+
PACKAGE_TAGS: JSON.stringify((_b = props.packageTags) !== null && _b !== void 0 ? _b : []),
|
46
47
|
},
|
47
|
-
logRetention: (
|
48
|
+
logRetention: (_c = props.logRetention) !== null && _c !== void 0 ? _c : aws_logs_1.RetentionDays.TEN_YEARS,
|
48
49
|
memorySize: 10240,
|
49
50
|
timeout: core_1.Duration.minutes(15),
|
50
51
|
tracing: aws_lambda_1.Tracing.ACTIVE,
|
@@ -146,4 +147,4 @@ class Ingestion extends core_1.Construct {
|
|
146
147
|
}
|
147
148
|
}
|
148
149
|
exports.Ingestion = Ingestion;
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9pbmdlc3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBQWlJO0FBRWpJLG9EQUF5RDtBQUN6RCxnRkFBbUU7QUFDbkUsZ0RBQWtEO0FBRWxELDhDQUFrRTtBQUNsRSx3Q0FBb0Q7QUFDcEQsK0NBQWlFO0FBRWpFLG1EQUFnRDtBQUdoRCwyQ0FBNEQ7QUFDNUQsMkNBQW1EO0FBZ0NuRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxnQkFBUztJQW1CdEMsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7O1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFMSCx5QkFBb0IsR0FBRyxlQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBT3ZELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUM1QyxVQUFVLEVBQUUseUJBQWUsQ0FBQyxXQUFXO1lBQ3ZDLGVBQWUsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQzFDLGlCQUFpQixFQUFFLGVBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQ3hDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUNwQyxlQUFlLEVBQUU7Z0JBQ2YsZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZTthQUM1QjtZQUNELFVBQVUsRUFBRSx5QkFBZSxDQUFDLFdBQVc7WUFDdkMsZUFBZSxFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDMUMsaUJBQWlCLEVBQUUsZUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFP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RztZQUN4QixHQUFHLElBQUk7WUFDUCxVQUFVLDBDQUE2QjtZQUN2QyxTQUFTLEVBQUUsNkJBQWlCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxJQUFvQjtRQUM5QyxPQUFPLElBQUksdUJBQU0sQ0FBQztZQUNoQixNQUFNLEVBQUUsZUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0IsU0FBUyxFQUFFLDBCQUFTLENBQUMsR0FBRztZQUN4QixHQUFHLElBQUk7WUFDUCxVQUFVLHdDQUE0QjtZQUN0QyxTQUFTLEVBQUUsNkJBQWlCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksa0NBQWtDLENBQUMsSUFBb0I7UUFDNUQsT0FBTyxJQUFJLHVCQUFNLENBQUM7WUFDaEIsTUFBTSxFQUFFLGVBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzNCLFNBQVMsRUFBRSwwQkFBUyxDQUFDLEdBQUc7WUFDeEIsR0FBRyxJQUFJO1lBQ1AsVUFBVSxxRUFBMkM7WUFDckQsU0FBUyxFQUFFLDZCQUFpQjtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoS0QsOEJBZ0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGFyaXNvbk9wZXJhdG9yLCBNYXRoRXhwcmVzc2lvbiwgTWV0cmljLCBNZXRyaWNPcHRpb25zLCBTdGF0aXN0aWMsIFRyZWF0TWlzc2luZ0RhdGEgfSBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBJR3JhbnRhYmxlLCBJUHJpbmNpcGFsIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgeyBJRnVuY3Rpb24sIFRyYWNpbmcgfSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFNxc0V2ZW50U291cmNlIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYS1ldmVudC1zb3VyY2VzJztcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tICdAYXdzLWNkay9hd3MtbG9ncyc7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSAnQGF3cy1jZGsvYXdzLXMzJztcbmltcG9ydCB7IElRdWV1ZSwgUXVldWUsIFF1ZXVlRW5jcnlwdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1zcXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBEdXJhdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgbGFtYmRhRnVuY3Rpb25VcmwsIHNxc1F1ZXVlVXJsIH0gZnJvbSAnLi4vLi4vZGVlcC1saW5rJztcbmltcG9ydCB7IE1vbml0b3JpbmcgfSBmcm9tICcuLi8uLi9tb25pdG9yaW5nJztcbmltcG9ydCB7IFJVTkJPT0tfVVJMIH0gZnJvbSAnLi4vLi4vcnVuYm9vay11cmwnO1xuaW1wb3J0IHR5cGUgeyBQYWNrYWdlTGlua0NvbmZpZyB9IGZyb20gJy4uLy4uL3dlYmFwcCc7XG5pbXBvcnQgeyBPcmNoZXN0cmF0aW9uIH0gZnJvbSAnLi4vb3JjaGVzdHJhdGlvbic7XG5pbXBvcnQgeyBNZXRyaWNOYW1lLCBNRVRSSUNTX05BTUVTUEFDRSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEluZ2VzdGlvbiBhcyBIYW5kbGVyIH0gZnJvbSAnLi9pbmdlc3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgaW4gd2hpY2ggaW5nZXN0ZWQgb2JqZWN0cyBhcmUgZHVlIHRvIGJlIGluc2VydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcmluZyBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtcyB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZzogTW9uaXRvcmluZztcblxuICAvKipcbiAgICogVGhlIGJhY2tlbmQgb3JjaGVzdHJhdGlvbiB0byBpbnZva2Ugb25jZSB0aGUgcGFja2FnZSBtZXRhZGF0YSBoYXMgYmVlblxuICAgKiBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IG9yY2hlc3RyYXRpb246IE9yY2hlc3RyYXRpb247XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHRvIHJldGFpbiB0aGUgQ2xvdWRXYXRjaCBsb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSZXRlbnRpb25EYXlzLlRFTl9ZRUFSU1xuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogUmV0ZW50aW9uRGF5cztcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgY3VzdG9tIHBhY2thZ2UgcGFnZSBsaW5rcy5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VMaW5rcz86IFBhY2thZ2VMaW5rQ29uZmlnW107XG59XG5cbi8qKlxuICogVGhlIGluZ2VzdGlvbiBmdW5jdGlvbiByZWNlaXZlcyBtZXNzYWdlcyBmcm9tIGRpc2NvdmVyeSBpbnRlZ3JhdGlvbnMgYW5kXG4gKiBwcm9jZXNzZXMgdGhlaXIgcGF5bG9hZHMgaW50byB0aGUgcHJvdmlkZWQgUzMgQnVja2V0LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBhbiBgSUdyYW50YWJsZWAsIHNvIHRoYXQgaXQgY2FuIGJlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAqIHRvIHJlYWQgZnJvbSB0aGUgc291cmNlIFMzIGJ1Y2tldHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmdlc3Rpb24gZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJR3JhbnRhYmxlIHtcbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBJUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBUaGUgU1FTIHF1ZXVlIHRoYXQgdHJpZ2dlcnMgdGhlIGluZ2VzdGlvbiBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZTogSVF1ZXVlO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5nZXN0aW9uIGRlYWQgbGV0dGVyIHF1ZXVlLCB3aGljaCB3aWxsIGhvbGQgbWVzc2FnZXMgdGhhdCBmYWlsZWRcbiAgICogaW5nZXN0aW9uIG9uZSB0b28gbWFueSB0aW1lcywgc28gdGhhdCBwb2lzb24gcGlsbHMgZG9uJ3QgZW5kbGVzc2x5IGNvbnN1bWVcbiAgICogcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZTogSVF1ZXVlO1xuXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZVJldGVudGlvblBlcmlvZCA9IER1cmF0aW9uLmRheXMoMTQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSW5nZXN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5kZWFkTGV0dGVyUXVldWUgPSBuZXcgUXVldWUodGhpcywgJ0RMUScsIHtcbiAgICAgIGVuY3J5cHRpb246IFF1ZXVlRW5jcnlwdGlvbi5LTVNfTUFOQUdFRCxcbiAgICAgIHJldGVudGlvblBlcmlvZDogdGhpcy5xdWV1ZVJldGVudGlvblBlcmlvZCxcbiAgICAgIHZpc2liaWxpdHlUaW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICB9KTtcblxuICAgIHRoaXMucXVldWUgPSBuZXcgUXVldWUodGhpcywgJ1F1ZXVlJywge1xuICAgICAgZGVhZExldHRlclF1ZXVlOiB7XG4gICAgICAgIG1heFJlY2VpdmVDb3VudDogNSxcbiAgICAgICAgcXVldWU6IHRoaXMuZGVhZExldHRlclF1ZXVlLFxuICAgICAgfSxcbiAgICAgIGVuY3J5cHRpb246IFF1ZXVlRW5jcnlwdGlvbi5LTVNfTUFOQUdFRCxcbiAgICAgIHJldGVudGlvblBlcmlvZDogdGhpcy5xdWV1ZVJldGVudGlvblBlcmlvZCxcbiAgICAgIHZpc2liaWxpdHlUaW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZXIgPSBuZXcgSGFuZGxlcih0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnW0NvbnN0cnVjdEh1Yi9Jbmdlc3Rpb25dIEluZ2VzdHMgbmV3IHBhY2thZ2UgdmVyc2lvbnMgaW50byB0aGUgQ29uc3RydWN0IEh1YicsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBCVUNLRVRfTkFNRTogcHJvcHMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIFNUQVRFX01BQ0hJTkVfQVJOOiBwcm9wcy5vcmNoZXN0cmF0aW9uLnN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgICAgIFBBQ0tBR0VfTElOS1M6IEpTT04uc3RyaW5naWZ5KHByb3BzLnBhY2thZ2VMaW5rcyA/PyBbXSksXG4gICAgICB9LFxuICAgICAgbG9nUmV0ZW50aW9uOiBwcm9wcy5sb2dSZXRlbnRpb24gPz8gUmV0ZW50aW9uRGF5cy5URU5fWUVBUlMsXG4gICAgICBtZW1vcnlTaXplOiAxMF8yNDAsIC8vIEN1cnJlbnRseSB0aGUgbWF4aW11bSBwb3NzaWJsZSBzZXR0aW5nXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIHRyYWNpbmc6IFRyYWNpbmcuQUNUSVZFLFxuICAgIH0pO1xuICAgIHRoaXMuZnVuY3Rpb24gPSBoYW5kbGVyO1xuXG4gICAgcHJvcHMuYnVja2V0LmdyYW50V3JpdGUodGhpcy5mdW5jdGlvbik7XG4gICAgcHJvcHMub3JjaGVzdHJhdGlvbi5zdGF0ZU1hY2hpbmUuZ3JhbnRTdGFydEV4ZWN1dGlvbih0aGlzLmZ1bmN0aW9uKTtcblxuICAgIHRoaXMuZnVuY3Rpb24uYWRkRXZlbnRTb3VyY2UobmV3IFNxc0V2ZW50U291cmNlKHRoaXMucXVldWUsIHsgYmF0Y2hTaXplOiAxIH0pKTtcbiAgICAvLyBUaGlzIGV2ZW50IHNvdXJjZSBpcyBkaXNhYmxlZCwgYW5kIGNhbiBiZSB1c2VkIHRvIHJlLXByb2Nlc3MgZGVhZC1sZXR0ZXItcXVldWUgbWVzc2FnZXNcbiAgICB0aGlzLmZ1bmN0aW9uLmFkZEV2ZW50U291cmNlKG5ldyBTcXNFdmVudFNvdXJjZSh0aGlzLmRlYWRMZXR0ZXJRdWV1ZSwgeyBiYXRjaFNpemU6IDEsIGVuYWJsZWQ6IGZhbHNlIH0pKTtcblxuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSB0aGlzLmZ1bmN0aW9uLmdyYW50UHJpbmNpcGFsO1xuXG4gICAgcHJvcHMubW9uaXRvcmluZy5hZGRIaWdoU2V2ZXJpdHlBbGFybShcbiAgICAgICdJbmdlc3Rpb24gRGVhZC1MZXR0ZXIgUXVldWUgbm90IGVtcHR5JyxcbiAgICAgIG5ldyBNYXRoRXhwcmVzc2lvbih7XG4gICAgICAgIGV4cHJlc3Npb246ICdtMSArIG0yJyxcbiAgICAgICAgdXNpbmdNZXRyaWNzOiB7XG4gICAgICAgICAgbTE6IHRoaXMuZGVhZExldHRlclF1ZXVlLm1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc1Zpc2libGUoeyBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSkgfSksXG4gICAgICAgICAgbTI6IHRoaXMuZGVhZExldHRlclF1ZXVlLm1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc05vdFZpc2libGUoeyBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSkgfSksXG4gICAgICAgIH0sXG4gICAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCAnRExRQWxhcm0nLCB7XG4gICAgICAgIGFsYXJtTmFtZTogYCR7dGhpcy5ub2RlLnBhdGh9L0RMUU5vdEVtcHR5YCxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogW1xuICAgICAgICAgICdUaGUgZGVhZC1sZXR0ZXIgcXVldWUgZm9yIHRoZSBJbmdlc3Rpb24gZnVuY3Rpb24gaXMgbm90IGVtcHR5IScsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgYFJ1bkJvb2s6ICR7UlVOQk9PS19VUkx9YCxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgRGlyZWN0IGxpbmsgdG8gdGhlIHF1ZXVlOiAke3Nxc1F1ZXVlVXJsKHRoaXMuZGVhZExldHRlclF1ZXVlKX1gLFxuICAgICAgICAgIGBEaXJlY3QgbGluayB0byB0aGUgZnVuY3Rpb246ICR7bGFtYmRhRnVuY3Rpb25VcmwodGhpcy5mdW5jdGlvbil9YCxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgLy8gU1FTIGRvZXMgbm90IGVtaXQgbWV0cmljcyBpZiB0aGUgcXVldWUgaGFzIGJlZW4gZW1wdHkgZm9yIGEgd2hpbGUsIHdoaWNoIGlzIEdPT0QuXG4gICAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgcHJvcHMubW9uaXRvcmluZy5hZGRIaWdoU2V2ZXJpdHlBbGFybShcbiAgICAgICdJbmdlc3Rpb24gZmFpbHVyZXMnLFxuICAgICAgdGhpcy5mdW5jdGlvbi5tZXRyaWNFcnJvcnMoKS5jcmVhdGVBbGFybSh0aGlzLCAnRmFpbHVyZUFsYXJtJywge1xuICAgICAgICBhbGFybU5hbWU6IGAke3RoaXMubm9kZS5wYXRofS9GYWlsdXJlYCxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogW1xuICAgICAgICAgICdUaGUgSW5nZXN0aW9uIGZ1bmN0aW9uIGlzIGZhaWxpbmchJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgUnVuQm9vazogJHtSVU5CT09LX1VSTH1gLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGBEaXJlY3QgbGluayB0byB0aGUgZnVuY3Rpb246ICR7bGFtYmRhRnVuY3Rpb25VcmwodGhpcy5mdW5jdGlvbil9YCxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMX1RPX1RIUkVTSE9MRCxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDIsXG4gICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgLy8gTGFtYmRhIG9ubHkgZW1pdHMgbWV0cmljcyB3aGVuIHRoZSBmdW5jdGlvbiBpcyBpbnZva2VkLiBObyBpbnZva2F0aW9uID0+IG5vIGVycm9ycy5cbiAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNGb3VuZExpY2Vuc2VGaWxlKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5TVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5GT1VORF9MSUNFTlNFX0ZJTEUsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY0luZWxpZ2libGVMaWNlbnNlKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5TVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5JTkVMSUdJQkxFX0xJQ0VOU0UsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY0ludmFsaWRBc3NlbWJseShvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuSU5WQUxJRF9BU1NFTUJMWSxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljSW52YWxpZFRhcmJhbGwob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLklOVkFMSURfVEFSQkFMTCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRyaWNzIGlzIHRoZSB0b3RhbCBjb3VudCBvZiBwYWNrYWdlcyB0aGF0IHdlcmUgcmVqZWN0ZWQgZHVlIHRvXG4gICAqIG1pc21hdGNoZWQgaWRlbnRpdHkgKG5hbWUsIHZlcnNpb24sIGxpY2Vuc2UpIGJldHdlZW4gdGhlIGBwYWNrYWdlLmpzb25gXG4gICAqIGZpbGUgYW5kIHRlIGAuanNpaWAgYXR0cmlidXRlLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY01pc21hdGNoZWRJZGVudGl0eVJlamVjdGlvbnMob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLk1JU01BVENIRURfSURFTlRJVFlfUkVKRUNUSU9OUyxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9pbmdlc3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBQWlJO0FBRWpJLG9EQUF5RDtBQUN6RCxnRkFBbUU7QUFDbkUsZ0RBQWtEO0FBRWxELDhDQUFrRTtBQUNsRSx3Q0FBb0Q7QUFDcEQsK0NBQWlFO0FBR2pFLG1EQUFnRDtBQUdoRCwyQ0FBNEQ7QUFDNUQsMkNBQW1EO0FBcUNuRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxnQkFBUztJQW1CdEMsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7O1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFMSCx5QkFBb0IsR0FBRyxlQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBT3ZELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUM1QyxVQUFVLEVBQUUseUJBQWUsQ0FBQyxXQUFXO1lBQ3ZDLGVBQWUsRUFBRSxJQUFJLENBQUMsb0JBQW9CO1lBQzFDLGlCQUFpQixFQUFFLGVBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQ3hDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUNwQyxlQUFlLEVBQUU7Z0JBQ2YsZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZTthQUM1QjtZQUNELFVBQVUsRUFBRSx5QkFBZSxDQUFDLFdBQVc7WUFDdkMsZUFBZSxFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDMUMsaUJBQWlCLEVBQUUsZUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDeEMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFP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QU0sRUFBRSxlQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzQixTQUFTLEVBQUUsMEJBQVMsQ0FBQyxHQUFHO1lBQ3hCLEdBQUcsSUFBSTtZQUNQLFVBQVUsMENBQTZCO1lBQ3ZDLFNBQVMsRUFBRSw2QkFBaUI7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG9CQUFvQixDQUFDLElBQW9CO1FBQzlDLE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxlQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzQixTQUFTLEVBQUUsMEJBQVMsQ0FBQyxHQUFHO1lBQ3hCLEdBQUcsSUFBSTtZQUNQLFVBQVUsd0NBQTRCO1lBQ3RDLFNBQVMsRUFBRSw2QkFBaUI7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxrQ0FBa0MsQ0FBQyxJQUFvQjtRQUM1RCxPQUFPLElBQUksdUJBQU0sQ0FBQztZQUNoQixNQUFNLEVBQUUsZUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0IsU0FBUyxFQUFFLDBCQUFTLENBQUMsR0FBRztZQUN4QixHQUFHLElBQUk7WUFDUCxVQUFVLHFFQUEyQztZQUNyRCxTQUFTLEVBQUUsNkJBQWlCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpLRCw4QkFpS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wYXJpc29uT3BlcmF0b3IsIE1hdGhFeHByZXNzaW9uLCBNZXRyaWMsIE1ldHJpY09wdGlvbnMsIFN0YXRpc3RpYywgVHJlYXRNaXNzaW5nRGF0YSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IElHcmFudGFibGUsIElQcmluY2lwYWwgfSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCB7IElGdW5jdGlvbiwgVHJhY2luZyB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgU3FzRXZlbnRTb3VyY2UgfSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhLWV2ZW50LXNvdXJjZXMnO1xuaW1wb3J0IHsgUmV0ZW50aW9uRGF5cyB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1sb2dzJztcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tICdAYXdzLWNkay9hd3MtczMnO1xuaW1wb3J0IHsgSVF1ZXVlLCBRdWV1ZSwgUXVldWVFbmNyeXB0aW9uIH0gZnJvbSAnQGF3cy1jZGsvYXdzLXNxcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIER1cmF0aW9uIH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBsYW1iZGFGdW5jdGlvblVybCwgc3FzUXVldWVVcmwgfSBmcm9tICcuLi8uLi9kZWVwLWxpbmsnO1xuaW1wb3J0IHsgTW9uaXRvcmluZyB9IGZyb20gJy4uLy4uL21vbml0b3JpbmcnO1xuaW1wb3J0IHsgUGFja2FnZVRhZ0NvbmZpZyB9IGZyb20gJy4uLy4uL3BhY2thZ2UtdGFnJztcbmltcG9ydCB7IFJVTkJPT0tfVVJMIH0gZnJvbSAnLi4vLi4vcnVuYm9vay11cmwnO1xuaW1wb3J0IHR5cGUgeyBQYWNrYWdlTGlua0NvbmZpZyB9IGZyb20gJy4uLy4uL3dlYmFwcCc7XG5pbXBvcnQgeyBPcmNoZXN0cmF0aW9uIH0gZnJvbSAnLi4vb3JjaGVzdHJhdGlvbic7XG5pbXBvcnQgeyBNZXRyaWNOYW1lLCBNRVRSSUNTX05BTUVTUEFDRSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEluZ2VzdGlvbiBhcyBIYW5kbGVyIH0gZnJvbSAnLi9pbmdlc3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgaW4gd2hpY2ggaW5nZXN0ZWQgb2JqZWN0cyBhcmUgZHVlIHRvIGJlIGluc2VydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcmluZyBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtcyB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZzogTW9uaXRvcmluZztcblxuICAvKipcbiAgICogVGhlIGJhY2tlbmQgb3JjaGVzdHJhdGlvbiB0byBpbnZva2Ugb25jZSB0aGUgcGFja2FnZSBtZXRhZGF0YSBoYXMgYmVlblxuICAgKiBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IG9yY2hlc3RyYXRpb246IE9yY2hlc3RyYXRpb247XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHRvIHJldGFpbiB0aGUgQ2xvdWRXYXRjaCBsb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSZXRlbnRpb25EYXlzLlRFTl9ZRUFSU1xuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogUmV0ZW50aW9uRGF5cztcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgY3VzdG9tIHBhY2thZ2UgcGFnZSBsaW5rcy5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VMaW5rcz86IFBhY2thZ2VMaW5rQ29uZmlnW107XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZWQgY29uZmlndXJhdGlvbiBmb3IgY3VzdG9tIHBhY2thZ2UgdGFncy5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VUYWdzPzogUGFja2FnZVRhZ0NvbmZpZ1tdO1xufVxuXG4vKipcbiAqIFRoZSBpbmdlc3Rpb24gZnVuY3Rpb24gcmVjZWl2ZXMgbWVzc2FnZXMgZnJvbSBkaXNjb3ZlcnkgaW50ZWdyYXRpb25zIGFuZFxuICogcHJvY2Vzc2VzIHRoZWlyIHBheWxvYWRzIGludG8gdGhlIHByb3ZpZGVkIFMzIEJ1Y2tldC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gYW4gYElHcmFudGFibGVgLCBzbyB0aGF0IGl0IGNhbiBiZSBncmFudGVkIHBlcm1pc3Npb25zXG4gKiB0byByZWFkIGZyb20gdGhlIHNvdXJjZSBTMyBidWNrZXRzLlxuICovXG5leHBvcnQgY2xhc3MgSW5nZXN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUdyYW50YWJsZSB7XG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogVGhlIFNRUyBxdWV1ZSB0aGF0IHRyaWdnZXJzIHRoZSBpbmdlc3Rpb24gZnVuY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcXVldWU6IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIGluZ2VzdGlvbiBkZWFkIGxldHRlciBxdWV1ZSwgd2hpY2ggd2lsbCBob2xkIG1lc3NhZ2VzIHRoYXQgZmFpbGVkXG4gICAqIGluZ2VzdGlvbiBvbmUgdG9vIG1hbnkgdGltZXMsIHNvIHRoYXQgcG9pc29uIHBpbGxzIGRvbid0IGVuZGxlc3NseSBjb25zdW1lXG4gICAqIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWFkTGV0dGVyUXVldWU6IElRdWV1ZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcXVldWVSZXRlbnRpb25QZXJpb2QgPSBEdXJhdGlvbi5kYXlzKDE0KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEluZ2VzdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuZGVhZExldHRlclF1ZXVlID0gbmV3IFF1ZXVlKHRoaXMsICdETFEnLCB7XG4gICAgICBlbmNyeXB0aW9uOiBRdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRUQsXG4gICAgICByZXRlbnRpb25QZXJpb2Q6IHRoaXMucXVldWVSZXRlbnRpb25QZXJpb2QsXG4gICAgICB2aXNpYmlsaXR5VGltZW91dDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgfSk7XG5cbiAgICB0aGlzLnF1ZXVlID0gbmV3IFF1ZXVlKHRoaXMsICdRdWV1ZScsIHtcbiAgICAgIGRlYWRMZXR0ZXJRdWV1ZToge1xuICAgICAgICBtYXhSZWNlaXZlQ291bnQ6IDUsXG4gICAgICAgIHF1ZXVlOiB0aGlzLmRlYWRMZXR0ZXJRdWV1ZSxcbiAgICAgIH0sXG4gICAgICBlbmNyeXB0aW9uOiBRdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRUQsXG4gICAgICByZXRlbnRpb25QZXJpb2Q6IHRoaXMucXVldWVSZXRlbnRpb25QZXJpb2QsXG4gICAgICB2aXNpYmlsaXR5VGltZW91dDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVyID0gbmV3IEhhbmRsZXIodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1tDb25zdHJ1Y3RIdWIvSW5nZXN0aW9uXSBJbmdlc3RzIG5ldyBwYWNrYWdlIHZlcnNpb25zIGludG8gdGhlIENvbnN0cnVjdCBIdWInLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgQlVDS0VUX05BTUU6IHByb3BzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBTVEFURV9NQUNISU5FX0FSTjogcHJvcHMub3JjaGVzdHJhdGlvbi5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuLFxuICAgICAgICBQQUNLQUdFX0xJTktTOiBKU09OLnN0cmluZ2lmeShwcm9wcy5wYWNrYWdlTGlua3MgPz8gW10pLFxuICAgICAgICBQQUNLQUdFX1RBR1M6IEpTT04uc3RyaW5naWZ5KHByb3BzLnBhY2thZ2VUYWdzID8/IFtdKSxcbiAgICAgIH0sXG4gICAgICBsb2dSZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBSZXRlbnRpb25EYXlzLlRFTl9ZRUFSUyxcbiAgICAgIG1lbW9yeVNpemU6IDEwXzI0MCwgLy8gQ3VycmVudGx5IHRoZSBtYXhpbXVtIHBvc3NpYmxlIHNldHRpbmdcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgfSk7XG4gICAgdGhpcy5mdW5jdGlvbiA9IGhhbmRsZXI7XG5cbiAgICBwcm9wcy5idWNrZXQuZ3JhbnRXcml0ZSh0aGlzLmZ1bmN0aW9uKTtcbiAgICBwcm9wcy5vcmNoZXN0cmF0aW9uLnN0YXRlTWFjaGluZS5ncmFudFN0YXJ0RXhlY3V0aW9uKHRoaXMuZnVuY3Rpb24pO1xuXG4gICAgdGhpcy5mdW5jdGlvbi5hZGRFdmVudFNvdXJjZShuZXcgU3FzRXZlbnRTb3VyY2UodGhpcy5xdWV1ZSwgeyBiYXRjaFNpemU6IDEgfSkpO1xuICAgIC8vIFRoaXMgZXZlbnQgc291cmNlIGlzIGRpc2FibGVkLCBhbmQgY2FuIGJlIHVzZWQgdG8gcmUtcHJvY2VzcyBkZWFkLWxldHRlci1xdWV1ZSBtZXNzYWdlc1xuICAgIHRoaXMuZnVuY3Rpb24uYWRkRXZlbnRTb3VyY2UobmV3IFNxc0V2ZW50U291cmNlKHRoaXMuZGVhZExldHRlclF1ZXVlLCB7IGJhdGNoU2l6ZTogMSwgZW5hYmxlZDogZmFsc2UgfSkpO1xuXG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMuZnVuY3Rpb24uZ3JhbnRQcmluY2lwYWw7XG5cbiAgICBwcm9wcy5tb25pdG9yaW5nLmFkZEhpZ2hTZXZlcml0eUFsYXJtKFxuICAgICAgJ0luZ2VzdGlvbiBEZWFkLUxldHRlciBRdWV1ZSBub3QgZW1wdHknLFxuICAgICAgbmV3IE1hdGhFeHByZXNzaW9uKHtcbiAgICAgICAgZXhwcmVzc2lvbjogJ20xICsgbTInLFxuICAgICAgICB1c2luZ01ldHJpY3M6IHtcbiAgICAgICAgICBtMTogdGhpcy5kZWFkTGV0dGVyUXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzVmlzaWJsZSh7IHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSB9KSxcbiAgICAgICAgICBtMjogdGhpcy5kZWFkTGV0dGVyUXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzTm90VmlzaWJsZSh7IHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsICdETFFBbGFybScsIHtcbiAgICAgICAgYWxhcm1OYW1lOiBgJHt0aGlzLm5vZGUucGF0aH0vRExRTm90RW1wdHlgLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBbXG4gICAgICAgICAgJ1RoZSBkZWFkLWxldHRlciBxdWV1ZSBmb3IgdGhlIEluZ2VzdGlvbiBmdW5jdGlvbiBpcyBub3QgZW1wdHkhJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgUnVuQm9vazogJHtSVU5CT09LX1VSTH1gLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGBEaXJlY3QgbGluayB0byB0aGUgcXVldWU6ICR7c3FzUXVldWVVcmwodGhpcy5kZWFkTGV0dGVyUXVldWUpfWAsXG4gICAgICAgICAgYERpcmVjdCBsaW5rIHRvIHRoZSBmdW5jdGlvbjogJHtsYW1iZGFGdW5jdGlvblVybCh0aGlzLmZ1bmN0aW9uKX1gLFxuICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAvLyBTUVMgZG9lcyBub3QgZW1pdCBtZXRyaWNzIGlmIHRoZSBxdWV1ZSBoYXMgYmVlbiBlbXB0eSBmb3IgYSB3aGlsZSwgd2hpY2ggaXMgR09PRC5cbiAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgICAgfSksXG4gICAgKTtcbiAgICBwcm9wcy5tb25pdG9yaW5nLmFkZEhpZ2hTZXZlcml0eUFsYXJtKFxuICAgICAgJ0luZ2VzdGlvbiBmYWlsdXJlcycsXG4gICAgICB0aGlzLmZ1bmN0aW9uLm1ldHJpY0Vycm9ycygpLmNyZWF0ZUFsYXJtKHRoaXMsICdGYWlsdXJlQWxhcm0nLCB7XG4gICAgICAgIGFsYXJtTmFtZTogYCR7dGhpcy5ub2RlLnBhdGh9L0ZhaWx1cmVgLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBbXG4gICAgICAgICAgJ1RoZSBJbmdlc3Rpb24gZnVuY3Rpb24gaXMgZmFpbGluZyEnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGBSdW5Cb29rOiAke1JVTkJPT0tfVVJMfWAsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgYERpcmVjdCBsaW5rIHRvIHRoZSBmdW5jdGlvbjogJHtsYW1iZGFGdW5jdGlvblVybCh0aGlzLmZ1bmN0aW9uKX1gLFxuICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICBjb21wYXJpc29uT3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMixcbiAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAvLyBMYW1iZGEgb25seSBlbWl0cyBtZXRyaWNzIHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGludm9rZWQuIE5vIGludm9rYXRpb24gPT4gbm8gZXJyb3JzLlxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY0ZvdW5kTGljZW5zZUZpbGUob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLkZPVU5EX0xJQ0VOU0VfRklMRSxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljSW5lbGlnaWJsZUxpY2Vuc2Uob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLklORUxJR0lCTEVfTElDRU5TRSxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljSW52YWxpZEFzc2VtYmx5KG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5TVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5JTlZBTElEX0FTU0VNQkxZLFxuICAgICAgbmFtZXNwYWNlOiBNRVRSSUNTX05BTUVTUEFDRSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNJbnZhbGlkVGFyYmFsbChvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuSU5WQUxJRF9UQVJCQUxMLFxuICAgICAgbmFtZXNwYWNlOiBNRVRSSUNTX05BTUVTUEFDRSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldHJpY3MgaXMgdGhlIHRvdGFsIGNvdW50IG9mIHBhY2thZ2VzIHRoYXQgd2VyZSByZWplY3RlZCBkdWUgdG9cbiAgICogbWlzbWF0Y2hlZCBpZGVudGl0eSAobmFtZSwgdmVyc2lvbiwgbGljZW5zZSkgYmV0d2VlbiB0aGUgYHBhY2thZ2UuanNvbmBcbiAgICogZmlsZSBhbmQgdGUgYC5qc2lpYCBhdHRyaWJ1dGUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljTWlzbWF0Y2hlZElkZW50aXR5UmVqZWN0aW9ucyhvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuTUlTTUFUQ0hFRF9JREVOVElUWV9SRUpFQ1RJT05TLFxuICAgICAgbmFtZXNwYWNlOiBNRVRSSUNTX05BTUVTUEFDRSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -25,6 +25,18 @@ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }
|
|
25
25
|
var __require = typeof require !== "undefined" ? require : (x) => {
|
26
26
|
throw new Error('Dynamic require of "' + x + '" is not supported');
|
27
27
|
};
|
28
|
+
var __objRest = (source, exclude) => {
|
29
|
+
var target = {};
|
30
|
+
for (var prop in source)
|
31
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
32
|
+
target[prop] = source[prop];
|
33
|
+
if (source != null && __getOwnPropSymbols)
|
34
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
35
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
36
|
+
target[prop] = source[prop];
|
37
|
+
}
|
38
|
+
return target;
|
39
|
+
};
|
28
40
|
var __commonJS = (cb, mod) => function __require2() {
|
29
41
|
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
30
42
|
};
|
@@ -16114,6 +16126,35 @@ function integrity(input, tarball, alg = ((_b) => (_b = ((_a) => (_a = input.int
|
|
16114
16126
|
return `${alg}-${hash.digest("base64")}`;
|
16115
16127
|
}
|
16116
16128
|
|
16129
|
+
// src/package-tag/index.ts
|
16130
|
+
var TagConditionLogicType;
|
16131
|
+
(function(TagConditionLogicType2) {
|
16132
|
+
TagConditionLogicType2["AND"] = "AND";
|
16133
|
+
TagConditionLogicType2["OR"] = "OR";
|
16134
|
+
TagConditionLogicType2["NOT"] = "NOT";
|
16135
|
+
TagConditionLogicType2["EQUALS"] = "EQUALS";
|
16136
|
+
})(TagConditionLogicType || (TagConditionLogicType = {}));
|
16137
|
+
|
16138
|
+
// src/backend/shared/tags.ts
|
16139
|
+
function isTagApplicable(config, pkg) {
|
16140
|
+
var _a, _b, _c, _d, _e, _f;
|
16141
|
+
if (config.type === TagConditionLogicType.AND) {
|
16142
|
+
return (_b = (_a = config.children) == null ? void 0 : _a.reduce((accum, cond) => accum && isTagApplicable(cond, pkg), true)) != null ? _b : true;
|
16143
|
+
} else if (config.type === TagConditionLogicType.OR) {
|
16144
|
+
return (_d = (_c = config.children) == null ? void 0 : _c.reduce((accum, cond) => accum || isTagApplicable(cond, pkg), false)) != null ? _d : true;
|
16145
|
+
} else if (config.type === TagConditionLogicType.NOT) {
|
16146
|
+
const cond = (_e = config.children) == null ? void 0 : _e[0];
|
16147
|
+
if (!cond) {
|
16148
|
+
throw new Error("NOT logical operator requires a single condition");
|
16149
|
+
}
|
16150
|
+
return !isTagApplicable(cond, pkg);
|
16151
|
+
} else if (config.type === TagConditionLogicType.EQUALS) {
|
16152
|
+
const val = (_f = config.key) == null ? void 0 : _f.reduce((accum, key) => accum ? accum[key] : void 0, pkg);
|
16153
|
+
return val === config.value;
|
16154
|
+
}
|
16155
|
+
return false;
|
16156
|
+
}
|
16157
|
+
|
16117
16158
|
// src/backend/shared/tarball.lambda-shared.ts
|
16118
16159
|
var import_zlib = __toModule(require("zlib"));
|
16119
16160
|
var import_tar_stream = __toModule(require_tar_stream());
|
@@ -16189,6 +16230,7 @@ var handler = (0, import_aws_embedded_metrics.metricScope)((metrics) => async (e
|
|
16189
16230
|
const BUCKET_NAME = requireEnv("BUCKET_NAME");
|
16190
16231
|
const STATE_MACHINE_ARN = requireEnv("STATE_MACHINE_ARN");
|
16191
16232
|
const PACKAGE_LINKS = requireEnv("PACKAGE_LINKS");
|
16233
|
+
const PACKAGE_TAGS = requireEnv("PACKAGE_TAGS");
|
16192
16234
|
const result = new Array();
|
16193
16235
|
for (const record of (_a = event.Records) != null ? _a : []) {
|
16194
16236
|
const payload = JSON.parse(record.body);
|
@@ -16233,12 +16275,13 @@ var handler = (0, import_aws_embedded_metrics.metricScope)((metrics) => async (e
|
|
16233
16275
|
metrics.putMetric(MetricName.INVALID_ASSEMBLY, 1, import_aws_embedded_metrics.Unit.Count);
|
16234
16276
|
return;
|
16235
16277
|
}
|
16278
|
+
const packageJsonObj = JSON.parse(packageJson.toString("utf-8"));
|
16236
16279
|
const {
|
16237
16280
|
name: packageJsonName,
|
16238
16281
|
version: packageJsonVersion,
|
16239
16282
|
license: packageJsonLicense,
|
16240
16283
|
constructHub
|
16241
|
-
} =
|
16284
|
+
} = packageJsonObj;
|
16242
16285
|
if (packageJsonName !== packageName || packageJsonVersion !== packageVersion || packageJsonLicense !== packageLicense) {
|
16243
16286
|
console.log(`Ignoring package with mismatched name, version, and/or license (${packageJsonName}@${packageJsonVersion} is ${packageJsonLicense} !== ${packageName}@${packageVersion} is ${packageLicense})`);
|
16244
16287
|
metrics.putMetric(MetricName.MISMATCHED_IDENTITY_REJECTIONS, 1, import_aws_embedded_metrics.Unit.Count);
|
@@ -16258,10 +16301,19 @@ var handler = (0, import_aws_embedded_metrics.metricScope)((metrics) => async (e
|
|
16258
16301
|
}
|
16259
16302
|
return __spreadProps(__spreadValues({}, accum), { [configKey]: pkgValue });
|
16260
16303
|
}, {});
|
16304
|
+
const packageTagsConfig = JSON.parse(PACKAGE_TAGS);
|
16305
|
+
const packageTags = packageTagsConfig.reduce((accum, tagConfig) => {
|
16306
|
+
const _a2 = tagConfig, { condition } = _a2, tagData = __objRest(_a2, ["condition"]);
|
16307
|
+
if (isTagApplicable(condition, packageJsonObj)) {
|
16308
|
+
return [...accum, tagData];
|
16309
|
+
}
|
16310
|
+
return accum;
|
16311
|
+
}, []);
|
16261
16312
|
const metadata = {
|
16262
16313
|
date: payload.time,
|
16263
16314
|
licenseText: licenseText == null ? void 0 : licenseText.toString("utf-8"),
|
16264
|
-
packageLinks
|
16315
|
+
packageLinks,
|
16316
|
+
packageTags
|
16265
16317
|
};
|
16266
16318
|
const { assemblyKey, metadataKey, packageKey } = getObjectKeys(packageName, packageVersion);
|
16267
16319
|
console.log(`Writing assembly at ${assemblyKey}`);
|