construct-hub 0.4.2 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- package/.jsii +21 -21
- package/API.md +4 -4
- package/changelog.md +1 -1
- package/docs/operator-runbook.md +32 -0
- package/lib/backend/catalog-builder/index.js +5 -1
- package/lib/construct-hub.js +1 -1
- package/lib/monitoring/api.d.ts +3 -3
- package/lib/monitoring/api.js +1 -1
- package/lib/monitoring/index.d.ts +4 -4
- package/lib/monitoring/index.js +5 -5
- package/lib/package-sources/code-artifact.js +1 -1
- package/lib/package-sources/npmjs/canary/constants.d.ts +8 -1
- package/lib/package-sources/npmjs/canary/constants.js +1 -1
- package/lib/package-sources/npmjs/canary/index.d.ts +16 -0
- package/lib/package-sources/npmjs/canary/index.js +35 -4
- package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.bundle/index.js +20 -1
- package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.bundle/index.js.map +2 -2
- package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.d.ts +58 -0
- package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.js +24 -3
- package/lib/package-sources/npmjs.js +64 -8
- package/lib/package-tag/index.js +3 -3
- package/lib/package-tag-group/index.js +2 -2
- package/lib/preload-file/index.js +1 -1
- package/lib/s3/storage.js +1 -1
- package/lib/spdx-license.js +1 -1
- package/package.json +1 -1
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
package/.jsii
CHANGED
@@ -4589,7 +4589,7 @@
|
|
4589
4589
|
},
|
4590
4590
|
"name": "alarm",
|
4591
4591
|
"type": {
|
4592
|
-
"fqn": "aws-cdk-lib.aws_cloudwatch.
|
4592
|
+
"fqn": "aws-cdk-lib.aws_cloudwatch.AlarmBase"
|
4593
4593
|
}
|
4594
4594
|
}
|
4595
4595
|
]
|
@@ -4622,7 +4622,7 @@
|
|
4622
4622
|
},
|
4623
4623
|
"name": "alarm",
|
4624
4624
|
"type": {
|
4625
|
-
"fqn": "aws-cdk-lib.aws_cloudwatch.
|
4625
|
+
"fqn": "aws-cdk-lib.aws_cloudwatch.AlarmBase"
|
4626
4626
|
}
|
4627
4627
|
}
|
4628
4628
|
]
|
@@ -16215,7 +16215,7 @@
|
|
16215
16215
|
},
|
16216
16216
|
"locationInModule": {
|
16217
16217
|
"filename": "src/package-sources/npmjs.ts",
|
16218
|
-
"line":
|
16218
|
+
"line": 96
|
16219
16219
|
},
|
16220
16220
|
"parameters": [
|
16221
16221
|
{
|
@@ -16233,7 +16233,7 @@
|
|
16233
16233
|
"kind": "class",
|
16234
16234
|
"locationInModule": {
|
16235
16235
|
"filename": "src/package-sources/npmjs.ts",
|
16236
|
-
"line":
|
16236
|
+
"line": 95
|
16237
16237
|
},
|
16238
16238
|
"methods": [
|
16239
16239
|
{
|
@@ -16243,7 +16243,7 @@
|
|
16243
16243
|
},
|
16244
16244
|
"locationInModule": {
|
16245
16245
|
"filename": "src/package-sources/npmjs.ts",
|
16246
|
-
"line":
|
16246
|
+
"line": 98
|
16247
16247
|
},
|
16248
16248
|
"name": "bind",
|
16249
16249
|
"overrides": "construct-hub.IPackageSource",
|
@@ -16274,7 +16274,7 @@
|
|
16274
16274
|
},
|
16275
16275
|
"locationInModule": {
|
16276
16276
|
"filename": "src/package-sources/npmjs.ts",
|
16277
|
-
"line":
|
16277
|
+
"line": 328
|
16278
16278
|
},
|
16279
16279
|
"name": "metricBatchProcessingTime",
|
16280
16280
|
"parameters": [
|
@@ -16299,7 +16299,7 @@
|
|
16299
16299
|
},
|
16300
16300
|
"locationInModule": {
|
16301
16301
|
"filename": "src/package-sources/npmjs.ts",
|
16302
|
-
"line":
|
16302
|
+
"line": 341
|
16303
16303
|
},
|
16304
16304
|
"name": "metricChangeCount",
|
16305
16305
|
"parameters": [
|
@@ -16325,7 +16325,7 @@
|
|
16325
16325
|
},
|
16326
16326
|
"locationInModule": {
|
16327
16327
|
"filename": "src/package-sources/npmjs.ts",
|
16328
|
-
"line":
|
16328
|
+
"line": 355
|
16329
16329
|
},
|
16330
16330
|
"name": "metricLastSeq",
|
16331
16331
|
"parameters": [
|
@@ -16349,7 +16349,7 @@
|
|
16349
16349
|
},
|
16350
16350
|
"locationInModule": {
|
16351
16351
|
"filename": "src/package-sources/npmjs.ts",
|
16352
|
-
"line":
|
16352
|
+
"line": 365
|
16353
16353
|
},
|
16354
16354
|
"name": "metricNpmJsChangeAge",
|
16355
16355
|
"parameters": [
|
@@ -16374,7 +16374,7 @@
|
|
16374
16374
|
},
|
16375
16375
|
"locationInModule": {
|
16376
16376
|
"filename": "src/package-sources/npmjs.ts",
|
16377
|
-
"line":
|
16377
|
+
"line": 378
|
16378
16378
|
},
|
16379
16379
|
"name": "metricPackageVersionAge",
|
16380
16380
|
"parameters": [
|
@@ -16399,7 +16399,7 @@
|
|
16399
16399
|
},
|
16400
16400
|
"locationInModule": {
|
16401
16401
|
"filename": "src/package-sources/npmjs.ts",
|
16402
|
-
"line":
|
16402
|
+
"line": 391
|
16403
16403
|
},
|
16404
16404
|
"name": "metricPackageVersionCount",
|
16405
16405
|
"parameters": [
|
@@ -16424,7 +16424,7 @@
|
|
16424
16424
|
},
|
16425
16425
|
"locationInModule": {
|
16426
16426
|
"filename": "src/package-sources/npmjs.ts",
|
16427
|
-
"line":
|
16427
|
+
"line": 404
|
16428
16428
|
},
|
16429
16429
|
"name": "metricRelevantPackageVersions",
|
16430
16430
|
"parameters": [
|
@@ -16449,7 +16449,7 @@
|
|
16449
16449
|
},
|
16450
16450
|
"locationInModule": {
|
16451
16451
|
"filename": "src/package-sources/npmjs.ts",
|
16452
|
-
"line":
|
16452
|
+
"line": 418
|
16453
16453
|
},
|
16454
16454
|
"name": "metricRemainingTime",
|
16455
16455
|
"parameters": [
|
@@ -16474,7 +16474,7 @@
|
|
16474
16474
|
},
|
16475
16475
|
"locationInModule": {
|
16476
16476
|
"filename": "src/package-sources/npmjs.ts",
|
16477
|
-
"line":
|
16477
|
+
"line": 432
|
16478
16478
|
},
|
16479
16479
|
"name": "metricUnprocessableEntity",
|
16480
16480
|
"parameters": [
|
@@ -16507,7 +16507,7 @@
|
|
16507
16507
|
"kind": "interface",
|
16508
16508
|
"locationInModule": {
|
16509
16509
|
"filename": "src/package-sources/npmjs.ts",
|
16510
|
-
"line":
|
16510
|
+
"line": 58
|
16511
16511
|
},
|
16512
16512
|
"name": "NpmJsProps",
|
16513
16513
|
"namespace": "sources",
|
@@ -16522,7 +16522,7 @@
|
|
16522
16522
|
"immutable": true,
|
16523
16523
|
"locationInModule": {
|
16524
16524
|
"filename": "src/package-sources/npmjs.ts",
|
16525
|
-
"line":
|
16525
|
+
"line": 80
|
16526
16526
|
},
|
16527
16527
|
"name": "canaryPackage",
|
16528
16528
|
"optional": true,
|
@@ -16541,7 +16541,7 @@
|
|
16541
16541
|
"immutable": true,
|
16542
16542
|
"locationInModule": {
|
16543
16543
|
"filename": "src/package-sources/npmjs.ts",
|
16544
|
-
"line":
|
16544
|
+
"line": 89
|
16545
16545
|
},
|
16546
16546
|
"name": "canarySla",
|
16547
16547
|
"optional": true,
|
@@ -16559,7 +16559,7 @@
|
|
16559
16559
|
"immutable": true,
|
16560
16560
|
"locationInModule": {
|
16561
16561
|
"filename": "src/package-sources/npmjs.ts",
|
16562
|
-
"line":
|
16562
|
+
"line": 72
|
16563
16563
|
},
|
16564
16564
|
"name": "enableCanary",
|
16565
16565
|
"optional": true,
|
@@ -16577,7 +16577,7 @@
|
|
16577
16577
|
"immutable": true,
|
16578
16578
|
"locationInModule": {
|
16579
16579
|
"filename": "src/package-sources/npmjs.ts",
|
16580
|
-
"line":
|
16580
|
+
"line": 64
|
16581
16581
|
},
|
16582
16582
|
"name": "stagingBucket",
|
16583
16583
|
"optional": true,
|
@@ -16589,6 +16589,6 @@
|
|
16589
16589
|
"symbolId": "src/package-sources/npmjs:NpmJsProps"
|
16590
16590
|
}
|
16591
16591
|
},
|
16592
|
-
"version": "0.4.
|
16593
|
-
"fingerprint": "
|
16592
|
+
"version": "0.4.5",
|
16593
|
+
"fingerprint": "v4S3Kpx0vgShRjIiESI4An08UcSd1c4TFxr3Vfhdg7s="
|
16594
16594
|
}
|
package/API.md
CHANGED
@@ -10711,7 +10711,7 @@ ConstructHub monitoring features exposed to extension points.
|
|
10711
10711
|
##### `addHighSeverityAlarm` <a name="addHighSeverityAlarm" id="construct-hub.IMonitoring.addHighSeverityAlarm"></a>
|
10712
10712
|
|
10713
10713
|
```typescript
|
10714
|
-
public addHighSeverityAlarm(title: string, alarm:
|
10714
|
+
public addHighSeverityAlarm(title: string, alarm: AlarmBase): void
|
10715
10715
|
```
|
10716
10716
|
|
10717
10717
|
Adds a high-severity alarm.
|
@@ -10729,7 +10729,7 @@ a user-friendly title for the alarm (will be rendered on the high-severity Cloud
|
|
10729
10729
|
|
10730
10730
|
###### `alarm`<sup>Required</sup> <a name="alarm" id="construct-hub.IMonitoring.addHighSeverityAlarm.parameter.alarm"></a>
|
10731
10731
|
|
10732
|
-
- *Type:* aws-cdk-lib.aws_cloudwatch.
|
10732
|
+
- *Type:* aws-cdk-lib.aws_cloudwatch.AlarmBase
|
10733
10733
|
|
10734
10734
|
the alarm to be added to the high-severity dashboard.
|
10735
10735
|
|
@@ -10738,7 +10738,7 @@ the alarm to be added to the high-severity dashboard.
|
|
10738
10738
|
##### `addLowSeverityAlarm` <a name="addLowSeverityAlarm" id="construct-hub.IMonitoring.addLowSeverityAlarm"></a>
|
10739
10739
|
|
10740
10740
|
```typescript
|
10741
|
-
public addLowSeverityAlarm(title: string, alarm:
|
10741
|
+
public addLowSeverityAlarm(title: string, alarm: AlarmBase): void
|
10742
10742
|
```
|
10743
10743
|
|
10744
10744
|
Adds a low-severity alarm.
|
@@ -10756,7 +10756,7 @@ a user-friendly title for the alarm (not currently used).
|
|
10756
10756
|
|
10757
10757
|
###### `alarm`<sup>Required</sup> <a name="alarm" id="construct-hub.IMonitoring.addLowSeverityAlarm.parameter.alarm"></a>
|
10758
10758
|
|
10759
|
-
- *Type:* aws-cdk-lib.aws_cloudwatch.
|
10759
|
+
- *Type:* aws-cdk-lib.aws_cloudwatch.AlarmBase
|
10760
10760
|
|
10761
10761
|
the alarm to be added.
|
10762
10762
|
|
package/changelog.md
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
|
2
|
-
### [0.4.
|
2
|
+
### [0.4.5](https://github.com/cdklabs/construct-hub/compare/v0.4.4...v0.4.5) (2022-05-16)
|
package/docs/operator-runbook.md
CHANGED
@@ -666,6 +666,38 @@ If there is a reason why a tracked version cannot possibly be ingested, the S3
|
|
666
666
|
object backing the canary state can be deleted, which will effectively
|
667
667
|
re-initialize the canary to track only the latest available version.
|
668
668
|
|
669
|
+
### `ConstructHub/Sources/NpmJs/Canary/NotRunningOrFailing`
|
670
|
+
|
671
|
+
#### Description
|
672
|
+
|
673
|
+
This alarm is only provisioned in case the [NpmJs package canary][package-canary]
|
674
|
+
was configured. It triggers when the canary is not running as expected, or is
|
675
|
+
reporting failures.
|
676
|
+
|
677
|
+
When the [NpmJs package canary][package-canary] does not successfully run, the
|
678
|
+
`ConstructHub/Sources/NpmJs/Canary/SLA-Breached` alarm cannot be triggered due
|
679
|
+
to lack of data. This may hence hide customer-visible problems.
|
680
|
+
|
681
|
+
#### Investigation
|
682
|
+
|
683
|
+
In the AWS Console, verify whether the alarm triggered due to
|
684
|
+
`ConstructHub/Sources/NpmJs/Canary/Failing` or
|
685
|
+
`ConstructHub/Sources/NpmJs/Canary/NotRunning`.
|
686
|
+
|
687
|
+
If the canary is not running, verify that the scheduled trigger for the [NpmJs
|
688
|
+
package canary][package-canary] is correctly enabled. If it is, and the canary
|
689
|
+
is not running, the account might have run out of available AWS Lambda
|
690
|
+
concurrency, and a limit increase request might be necessary. When that is the
|
691
|
+
case, the function will report this via the `Throttled` metric.
|
692
|
+
|
693
|
+
Otherwise, [dive into the Lambda logs][#lambda-log-dive] of the Canary function
|
694
|
+
to determine what is happening and resolve the problem.
|
695
|
+
|
696
|
+
#### Resolution
|
697
|
+
|
698
|
+
Once the canary starts unning normally again, the alarm will clear itself
|
699
|
+
without requiring any further intervention.
|
700
|
+
|
669
701
|
## :information_source: General Recommendations
|
670
702
|
|
671
703
|
### Diving into Lambda Function logs in CloudWatch Logs
|
@@ -85,6 +85,10 @@ class CatalogBuilder extends constructs_1.Construct {
|
|
85
85
|
evaluationPeriods: 1,
|
86
86
|
threshold: -5,
|
87
87
|
});
|
88
|
+
// This is a high-severity alarm because it is indicative of a possible mass-extinction event
|
89
|
+
// in the catalog. This should definitely prompt immediate investigation, although it can also
|
90
|
+
// be caused by the recent addition of enough packages in the deny-list to cause the alarm to
|
91
|
+
// trigger.
|
88
92
|
props.monitoring.addHighSeverityAlarm('Catalog Size Shrunk', alarmShrinkingCatalog);
|
89
93
|
}
|
90
94
|
metricMissingConstructFrameworkCount(opts) {
|
@@ -116,4 +120,4 @@ class CatalogBuilder extends constructs_1.Construct {
|
|
116
120
|
}
|
117
121
|
}
|
118
122
|
exports.CatalogBuilder = CatalogBuilder;
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9jYXRhbG9nLWJ1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXlEO0FBQ3pELCtEQU1vQztBQUNwQyxpREFBOEQ7QUFDOUQsdURBQTREO0FBQzVELG1EQUFxRDtBQUVyRCwyQ0FBdUM7QUFDdkMsK0NBQWlFO0FBSWpFLG1EQUFnRDtBQUloRCx1REFBOEQ7QUFDOUQsMkNBQTREO0FBdUM1RDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBRzNDLFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCOztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHLElBQUksZ0NBQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzNDLFdBQVcsRUFBRSxzQ0FBc0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDNUUsV0FBVyxFQUFFO2dCQUNYLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ3BDLG1CQUFtQixFQUFFLE9BQU87Z0JBQzVCLDBCQUEwQixFQUN4QixLQUFLLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFlBQVk7YUFDcEQ7WUFDRCxZQUFZLFFBQUUsS0FBSyxDQUFDLFlBQVksbUNBQUksd0JBQWEsQ0FBQyxTQUFTO1lBQzNELFVBQVUsRUFBRSxLQUFNO1lBQ2xCLDRCQUE0QixFQUFFLENBQUM7WUFDL0IsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxZQUFZO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyx1Q0FBdUMsQ0FD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QkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDNUIsU0FBUyxFQUFFLDBCQUFTLENBQUMsT0FBTztZQUM1QixHQUFHLElBQUk7WUFDUCxVQUFVLHlGQUFzRDtZQUNoRSxTQUFTLEVBQUUsNkJBQWlCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxvQ0FBb0MsQ0FBQyxJQUFvQjtRQUM5RCxPQUFPLElBQUksdUJBQU0sQ0FBQztZQUNoQixNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzVCLFNBQVMsRUFBRSwwQkFBUyxDQUFDLE9BQU87WUFDNUIsR0FBRyxJQUFJO1lBQ1AsVUFBVSwwRUFBOEM7WUFDeEQsU0FBUyxFQUFFLDZCQUFpQjtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEvSEQsd0NBK0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBc3NlbWJseVRhcmdldHMgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IEFybkZvcm1hdCwgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQ29tcGFyaXNvbk9wZXJhdG9yLFxuICBNYXRoRXhwcmVzc2lvbixcbiAgTWV0cmljLFxuICBNZXRyaWNPcHRpb25zLFxuICBTdGF0aXN0aWMsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBJRnVuY3Rpb24sIFRyYWNpbmcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgbGFtYmRhRnVuY3Rpb25VcmwsIHMzT2JqZWN0VXJsIH0gZnJvbSAnLi4vLi4vZGVlcC1saW5rJztcblxuaW1wb3J0IHsgTW9uaXRvcmluZyB9IGZyb20gJy4uLy4uL21vbml0b3JpbmcnO1xuaW1wb3J0IHsgT3ZlcnZpZXdEYXNoYm9hcmQgfSBmcm9tICcuLi8uLi9vdmVydmlldy1kYXNoYm9hcmQnO1xuaW1wb3J0IHsgUlVOQk9PS19VUkwgfSBmcm9tICcuLi8uLi9ydW5ib29rLXVybCc7XG5pbXBvcnQgeyBEZW55TGlzdCB9IGZyb20gJy4uL2RlbnktbGlzdCc7XG5pbXBvcnQgeyBGZWVkQnVpbGRlciB9IGZyb20gJy4uL2ZlZWQtYnVpbGRlcic7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdEZyYW1ld29yayB9IGZyb20gJy4uL2luZ2VzdGlvbi9mcmFtZXdvcmstZGV0ZWN0aW9uLmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgQ2F0YWxvZ0J1aWxkZXIgYXMgSGFuZGxlciB9IGZyb20gJy4vY2F0YWxvZy1idWlsZGVyJztcbmltcG9ydCB7IE1ldHJpY05hbWUsIE1FVFJJQ1NfTkFNRVNQQUNFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIFByb3BzIGZvciBgQ2F0YWxvZ0J1aWxkZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIHBhY2thZ2Ugc3RvcmUgYnVja2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgbW9uaXRvcmluZyBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtcyB3aXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZzogTW9uaXRvcmluZztcblxuICAvKipcbiAgICogVGhlIG92ZXJ2aWV3IGRhc2hib2FyZCB0byBhZGQgd2lkZ2V0cyB0by5cbiAgICovXG4gIHJlYWRvbmx5IG92ZXJ2aWV3RGFzaGJvYXJkOiBPdmVydmlld0Rhc2hib2FyZDtcblxuICAvKipcbiAgICogSG93IGxvbmcgc2hvdWxkIGV4ZWN1dGlvbiBsb2dzIGJlIHJldGFpbmVkP1xuICAgKlxuICAgKiBAZGVmYXVsdCBSZXRlbnRpb25EYXlzLlRFTl9ZRUFSU1xuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogUmV0ZW50aW9uRGF5cztcblxuICAvKipcbiAgICogVGhlIGRlbnkgbGlzdCBjb25zdHJ1Y3QuXG4gICAqL1xuICByZWFkb25seSBkZW55TGlzdDogRGVueUxpc3Q7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCB0aGF0IGdlbmVyYXRlcyBSU1MvQVRPTSBmZWVkIGFmdGVyIGNhdGFsb2cgaXMgdXBkYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZmVlZEJ1aWxkZXI6IEZlZWRCdWlsZGVyO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBvciByZS1idWlsZHMgdGhlIGBjYXRhbG9nLmpzb25gIG9iamVjdCBpbiB0aGUgZGVzaWduYXRlZCBidWNrZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDYXRhbG9nQnVpbGRlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBmdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2F0YWxvZ0J1aWxkZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBoYW5kbGVyID0gbmV3IEhhbmRsZXIodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYENyZWF0ZXMgdGhlIGNhdGFsb2cuanNvbiBvYmplY3QgaW4gJHtwcm9wcy5idWNrZXQuYnVja2V0TmFtZX1gLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgQlVDS0VUX05BTUU6IHByb3BzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBBV1NfRU1GX0VOVklST05NRU5UOiAnTG9jYWwnLFxuICAgICAgICBGRUVEX0JVSUxERVJfRlVOQ1RJT05fTkFNRTpcbiAgICAgICAgICBwcm9wcy5mZWVkQnVpbGRlci51cGRhdGVGZWVkRnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgfSxcbiAgICAgIGxvZ1JldGVudGlvbjogcHJvcHMubG9nUmV0ZW50aW9uID8/IFJldGVudGlvbkRheXMuVEVOX1lFQVJTLFxuICAgICAgbWVtb3J5U2l6ZTogMTBfMjQwLCAvLyBDdXJyZW50bHkgdGhlIG1heGltdW0gcG9zc2libGUgc2V0dGluZ1xuICAgICAgcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uczogMSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgdHJhY2luZzogVHJhY2luZy5QQVNTX1RIUk9VR0gsXG4gICAgfSk7XG4gICAgdGhpcy5mdW5jdGlvbiA9IGhhbmRsZXI7XG4gICAgcHJvcHMub3ZlcnZpZXdEYXNoYm9hcmQuYWRkQ29uY3VycmVudEV4ZWN1dGlvbk1ldHJpY1RvRGFzaGJvYXJkKFxuICAgICAgaGFuZGxlcixcbiAgICAgICdDYXRhbG9nQnVpbGRlckxhbWJkYSdcbiAgICApO1xuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBtYXkgaW52b2tlIGl0c2VsZiBpbiBjYXNlIGl0IG5lZWRzIHRvIGNvbnRpbnVlIGl0J3Mgd29yayBpblxuICAgIC8vIGEgXCJjaGlsZFwiIGludm9jYXRpb24uIFdlIG11c3QgaGVuY2UgYWxsb3cgaXQgdG8gaW52b2tlIGl0c2VsZi4gV2UgY2Fubm90XG4gICAgLy8gdXNlIGdyYW50SW52b2tlIGFzIHRoaXMgd291bGQgKG5hdHVyYWxseSkgY2F1c2UgYSBjaXJjdWxhciByZWZlcmVuY2VcbiAgICAvLyAoRnVuY3Rpb24gLT4gUm9sZSAtPiBGdW5jdGlvbikuXG4gICAgaGFuZGxlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydsYW1iZGE6SW52b2tlRnVuY3Rpb24nXSxcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5DT0xPTl9SRVNPVVJDRV9OQU1FLFxuICAgICAgICAgICAgc2VydmljZTogJ2xhbWJkYScsXG4gICAgICAgICAgICByZXNvdXJjZTogJ2Z1bmN0aW9uJyxcbiAgICAgICAgICAgIHJlc291cmNlTmFtZTogJyonLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gdXNpbmcgaGFuZGxlci5ncmFudEludm9rZShwcm9wcy5mZWVkQnVpbGRlci51cGRhdGVGZWVkRnVuY3Rpb24pXG4gICAgLy8gY2F1c2VzIGNpcmN1bGFyIGRlcGVuZGVuY3kgZXJyb3JcbiAgICBoYW5kbGVyLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpJbnZva2VGdW5jdGlvbiddLFxuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbcHJvcHMuZmVlZEJ1aWxkZXIudXBkYXRlRmVlZEZ1bmN0aW9uLmZ1bmN0aW9uQXJuXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIGFsbG93IHRoZSBjYXRhbG9nIGJ1aWxkZXIgdG8gdXNlIHRoZSBjbGllbnQuXG4gICAgcHJvcHMuZGVueUxpc3QuZ3JhbnRSZWFkKGhhbmRsZXIpO1xuXG4gICAgcHJvcHMuYnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMuZnVuY3Rpb24pO1xuXG4gICAgLy8gTW9uaXRvciB0aGUgZGVyaXZhdGl2ZSBvZiB0aGUgY2F0YWxvZyBzaXplLCBhbmQgYWxhcm0gaWYgdGhlIGNhdGFsb2dcbiAgICAvLyBsb3NlcyBtb3JlIHRoYW4gNSBpdGVtcy4gQ2F0YWxvZyBlbGVtZW50cyBjYW4gZGlzYXBwZWFyIGlmIHRoZXkgYXJlIGFkZGVkXG4gICAgLy8gdG8gdGhlIGRlbnktbGlzdCwgb3IgaWYgdGhleSBnZXQgdW4tcHVibGlzaGVkIGZyb20gdGhlIG9yaWdpbiByZXBvc2l0b3J5LlxuICAgIC8vIFN1Y2ggY2FzZXMgYXJlIG5vcm1hbCBhbmQgc2hvdWxkbid0IHR5cGljYWxseSByZXN1bHQgaW4gYSBzaWduaWZpY2FudFxuICAgIC8vIGNvbnRyYWN0aW9uIG9mIHRoZSBjYXRhbG9nIHNpemUuXG4gICAgY29uc3QgY2F0YWxvZ1NpemVDaGFuZ2UgPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgZXhwcmVzc2lvbjogJ0RJRkYoRklMTChtMSwgUkVQRUFUKSknLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIHVzaW5nTWV0cmljczogeyBtMTogdGhpcy5tZXRyaWNSZWdpc3RlcmVkUGFja2FnZU1ham9yVmVyc2lvbnMoKSB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGFsYXJtU2hyaW5raW5nQ2F0YWxvZyA9IGNhdGFsb2dTaXplQ2hhbmdlLmNyZWF0ZUFsYXJtKFxuICAgICAgdGhpcyxcbiAgICAgICdTaHJpbmtpbmdDYXRhbG9nQWxhcm0nLFxuICAgICAge1xuICAgICAgICBhbGFybU5hbWU6IGAke3RoaXMubm9kZS5wYXRofS9TaHJpbmtpbmdDYXRhbG9nYCxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjogW1xuICAgICAgICAgICdUaGUgbnVtYmVyIG9mIHBhY2thZ2VzIHJlZ2lzdGVyZWQgaW4gdGhlIGNhdGFsb2cuanNvbiBvYmplY3QgaGFzIHNocnVuayBieSBtb3JlIHRoYW4gNScsXG4gICAgICAgICAgJ2VsZW1lbnRzLiBUaGVyZSBtaWdodCBiZSBhIG1hc3MgZXh0aW5jdGlvbiBldmVudCBnb2luZyBvbi4gVGhpcyBzaG91bGQgYmUgaW52ZXN0aWdhdGVkJyxcbiAgICAgICAgICAnYXMgc29vbiBhcyBwb3NzaWJsZS4nLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGBDYXRhbG9nLmpzb246ICR7czNPYmplY3RVcmwocHJvcHMuYnVja2V0LCAnY2F0YWxvZy5qc29uJyl9YCxcbiAgICAgICAgICBgQ2F0YWxvZyBCdWlsZGVyOiAke2xhbWJkYUZ1bmN0aW9uVXJsKGhhbmRsZXIpfWAsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgYFJVTkJPT0s6ICR7UlVOQk9PS19VUkx9YCxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBDb21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICAgIHRocmVzaG9sZDogLTUsXG4gICAgICB9XG4gICAgKTtcbiAgICBwcm9wcy5tb25pdG9yaW5nLmFkZEhpZ2hTZXZlcml0eUFsYXJtKFxuICAgICAgJ0NhdGFsb2cgU2l6ZSBTaHJ1bmsnLFxuICAgICAgYWxhcm1TaHJpbmtpbmdDYXRhbG9nXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNNaXNzaW5nQ29uc3RydWN0RnJhbWV3b3JrQ291bnQob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5NQVhJTVVNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuTUlTU0lOR19DT05TVFJVQ1RfRlJBTUVXT1JLX0NPVU5ULFxuICAgICAgbmFtZXNwYWNlOiBNRVRSSUNTX05BTUVTUEFDRSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNNaXNzaW5nQ29uc3RydWN0RnJhbWV3b3JrVmVyc2lvbkNvdW50KFxuICAgIG9wdHM/OiBNZXRyaWNPcHRpb25zXG4gICk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLk1BWElNVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5NSVNTSU5HX0NPTlNUUlVDVF9GUkFNRVdPUktfVkVSU0lPTl9DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljUmVnaXN0ZXJlZFBhY2thZ2VNYWpvclZlcnNpb25zKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuTUFYSU1VTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLlJFR0lTVEVSRURfUEFDS0FHRVNfTUFKT1JfVkVSU0lPTixcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBEYXRhIGZvcm1hdCBmb3IgY2F0YWxvZyBvYmplY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ01vZGVsIHtcbiAgLyoqXG4gICAqIFBhY2thZ2VzIGluIHRoZSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZXM6IFBhY2thZ2VJbmZvW107XG4gIC8qKlxuICAgKiBEYXRlIHRoZSBjYXRhbG9nIHdhcyBsYXN0IHVwZGF0ZWQsIGluIElTTyA4NjAxIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEYXRhIGZvcm1hdCBmb3IgcGFja2FnZXMgc3RvcmVkIGluIHRoZSBjYXRhbG9nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhY2thZ2VJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhc3NlbWJseS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ham9yIHZlcnNpb24gb2YgdGhpcyBhc3NlbWJseSwgYWNjb3JkaW5nIHRvIFNlbVZlci5cbiAgICovXG4gIHJlYWRvbmx5IG1ham9yOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21wbGV0ZSBTZW1WZXIgdmVyc2lvbiBzdHJpbmcgZm9yIHRoaXMgcGFja2FnZSdzIG1ham9yIHZlcnNpb24gc3RyZWFtLFxuICAgKiBpbmNsdWRpbmcgcHJlLXJlbGVhc2UgaWRlbnRpZmllcnMsIGJ1dCBleGNsdWRpbmcgYWRkaXRpb25hbCBtZXRhZGF0YVxuICAgKiAoZXZlcnl0aGluZyBzdGFydGluZyBhdCBgK2AsIGlmIHRoZXJlIGlzIGFueSkuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTUERYIGxpY2Vuc2UgaWRlbnRpZmllciBmb3IgdGhlIHBhY2thZ2UncyBsaWNlbnNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBrZXl3b3JkcyBjb25maWd1cmVkIG9uIHRoZSBwYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5d29yZHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBhc3NpZ25lZCBieSB0aGUgZGlzY292ZXJ5IGZ1bmN0aW9uIHRvIHRoZSBsYXRlc3QgcmVsZWFzZSBvZiB0aGlzXG4gICAqIHBhY2thZ2UncyBtYWpvciB2ZXJzaW9uIHN0cmVhbSwgaWYgYW55LlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiB7IHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0IGZyYW1ld29yaywgaWYgcHJlc2VudC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdEZyYW1ld29yaz86IENvbnN0cnVjdEZyYW1ld29yayB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIGF1dGhvciBvZiB0aGUgcGFja2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcjoge1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgICByZWFkb25seSBlbWFpbD86IHN0cmluZztcbiAgICByZWFkb25seSB1cmw/OiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGxhbmd1YWdlcyBjb25maWd1cmVkIG9uIHRoZSBwYWNrYWdlLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmdcbiAgICogY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGxhbmd1YWdlczogQXNzZW1ibHlUYXJnZXRzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZXN0YW1wIGF0IHdoaWNoIHRoaXMgdmVyc2lvbiB3YXMgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWU6IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcGFja2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuIl19
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFja2VuZC9jYXRhbG9nLWJ1aWxkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXlEO0FBQ3pELCtEQU1vQztBQUNwQyxpREFBOEQ7QUFDOUQsdURBQTREO0FBQzVELG1EQUFxRDtBQUVyRCwyQ0FBdUM7QUFDdkMsK0NBQWlFO0FBSWpFLG1EQUFnRDtBQUloRCx1REFBOEQ7QUFDOUQsMkNBQTREO0FBdUM1RDs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBRzNDLFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCOztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHLElBQUksZ0NBQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzNDLFdBQVcsRUFBRSxzQ0FBc0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDNUUsV0FBVyxFQUFFO2dCQUNYLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ3BDLG1CQUFtQixFQUFFLE9BQU87Z0JBQzVCLDBCQUEwQixFQUN4QixLQUFLLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLFlBQVk7YUFDcEQ7WUFDRCxZQUFZLFFBQUUsS0FBSyxDQUFDLFlBQVksbUNBQUksd0JBQWEsQ0FBQyxTQUFTO1lBQzNELFVBQVUsRUFBRSxLQUFNO1lBQ2xCLDRCQUE0QixFQUFFLENBQUM7WUFDL0IsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxZQUFZO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyx1Q0FBdUMsQ0FD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QUFvQjtRQUVwQixPQUFPLElBQUksdUJBQU0sQ0FBQztZQUNoQixNQUFNLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzVCLFNBQVMsRUFBRSwwQkFBUyxDQUFDLE9BQU87WUFDNUIsR0FBRyxJQUFJO1lBQ1AsVUFBVSx5RkFBc0Q7WUFDaEUsU0FBUyxFQUFFLDZCQUFpQjtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sb0NBQW9DLENBQUMsSUFBb0I7UUFDOUQsT0FBTyxJQUFJLHVCQUFNLENBQUM7WUFDaEIsTUFBTSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1QixTQUFTLEVBQUUsMEJBQVMsQ0FBQyxPQUFPO1lBQzVCLEdBQUcsSUFBSTtZQUNQLFVBQVUsMEVBQThDO1lBQ3hELFNBQVMsRUFBRSw2QkFBaUI7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBbklELHdDQW1JQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXNzZW1ibHlUYXJnZXRzIH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgeyBBcm5Gb3JtYXQsIER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIENvbXBhcmlzb25PcGVyYXRvcixcbiAgTWF0aEV4cHJlc3Npb24sXG4gIE1ldHJpYyxcbiAgTWV0cmljT3B0aW9ucyxcbiAgU3RhdGlzdGljLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgSUZ1bmN0aW9uLCBUcmFjaW5nIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGxhbWJkYUZ1bmN0aW9uVXJsLCBzM09iamVjdFVybCB9IGZyb20gJy4uLy4uL2RlZXAtbGluayc7XG5cbmltcG9ydCB7IE1vbml0b3JpbmcgfSBmcm9tICcuLi8uLi9tb25pdG9yaW5nJztcbmltcG9ydCB7IE92ZXJ2aWV3RGFzaGJvYXJkIH0gZnJvbSAnLi4vLi4vb3ZlcnZpZXctZGFzaGJvYXJkJztcbmltcG9ydCB7IFJVTkJPT0tfVVJMIH0gZnJvbSAnLi4vLi4vcnVuYm9vay11cmwnO1xuaW1wb3J0IHsgRGVueUxpc3QgfSBmcm9tICcuLi9kZW55LWxpc3QnO1xuaW1wb3J0IHsgRmVlZEJ1aWxkZXIgfSBmcm9tICcuLi9mZWVkLWJ1aWxkZXInO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RGcmFtZXdvcmsgfSBmcm9tICcuLi9pbmdlc3Rpb24vZnJhbWV3b3JrLWRldGVjdGlvbi5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7IENhdGFsb2dCdWlsZGVyIGFzIEhhbmRsZXIgfSBmcm9tICcuL2NhdGFsb2ctYnVpbGRlcic7XG5pbXBvcnQgeyBNZXRyaWNOYW1lLCBNRVRSSUNTX05BTUVTUEFDRSB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBQcm9wcyBmb3IgYENhdGFsb2dCdWlsZGVyYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nQnVpbGRlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwYWNrYWdlIHN0b3JlIGJ1Y2tldC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIG1vbml0b3JpbmcgaGFuZGxlciB0byByZWdpc3RlciBhbGFybXMgd2l0aC5cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3Jpbmc6IE1vbml0b3Jpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvdmVydmlldyBkYXNoYm9hcmQgdG8gYWRkIHdpZGdldHMgdG8uXG4gICAqL1xuICByZWFkb25seSBvdmVydmlld0Rhc2hib2FyZDogT3ZlcnZpZXdEYXNoYm9hcmQ7XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIHNob3VsZCBleGVjdXRpb24gbG9ncyBiZSByZXRhaW5lZD9cbiAgICpcbiAgICogQGRlZmF1bHQgUmV0ZW50aW9uRGF5cy5URU5fWUVBUlNcbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IFJldGVudGlvbkRheXM7XG5cbiAgLyoqXG4gICAqIFRoZSBkZW55IGxpc3QgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVueUxpc3Q6IERlbnlMaXN0O1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgdGhhdCBnZW5lcmF0ZXMgUlNTL0FUT00gZmVlZCBhZnRlciBjYXRhbG9nIGlzIHVwZGF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGZlZWRCdWlsZGVyOiBGZWVkQnVpbGRlcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgb3IgcmUtYnVpbGRzIHRoZSBgY2F0YWxvZy5qc29uYCBvYmplY3QgaW4gdGhlIGRlc2lnbmF0ZWQgYnVja2V0LlxuICovXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0J1aWxkZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENhdGFsb2dCdWlsZGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaGFuZGxlciA9IG5ldyBIYW5kbGVyKHRoaXMsICdEZWZhdWx0Jywge1xuICAgICAgZGVzY3JpcHRpb246IGBDcmVhdGVzIHRoZSBjYXRhbG9nLmpzb24gb2JqZWN0IGluICR7cHJvcHMuYnVja2V0LmJ1Y2tldE5hbWV9YCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIEJVQ0tFVF9OQU1FOiBwcm9wcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgQVdTX0VNRl9FTlZJUk9OTUVOVDogJ0xvY2FsJyxcbiAgICAgICAgRkVFRF9CVUlMREVSX0ZVTkNUSU9OX05BTUU6XG4gICAgICAgICAgcHJvcHMuZmVlZEJ1aWxkZXIudXBkYXRlRmVlZEZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgIH0sXG4gICAgICBsb2dSZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBSZXRlbnRpb25EYXlzLlRFTl9ZRUFSUyxcbiAgICAgIG1lbW9yeVNpemU6IDEwXzI0MCwgLy8gQ3VycmVudGx5IHRoZSBtYXhpbXVtIHBvc3NpYmxlIHNldHRpbmdcbiAgICAgIHJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnM6IDEsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIHRyYWNpbmc6IFRyYWNpbmcuUEFTU19USFJPVUdILFxuICAgIH0pO1xuICAgIHRoaXMuZnVuY3Rpb24gPSBoYW5kbGVyO1xuICAgIHByb3BzLm92ZXJ2aWV3RGFzaGJvYXJkLmFkZENvbmN1cnJlbnRFeGVjdXRpb25NZXRyaWNUb0Rhc2hib2FyZChcbiAgICAgIGhhbmRsZXIsXG4gICAgICAnQ2F0YWxvZ0J1aWxkZXJMYW1iZGEnXG4gICAgKTtcblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGludm9rZSBpdHNlbGYgaW4gY2FzZSBpdCBuZWVkcyB0byBjb250aW51ZSBpdCdzIHdvcmsgaW5cbiAgICAvLyBhIFwiY2hpbGRcIiBpbnZvY2F0aW9uLiBXZSBtdXN0IGhlbmNlIGFsbG93IGl0IHRvIGludm9rZSBpdHNlbGYuIFdlIGNhbm5vdFxuICAgIC8vIHVzZSBncmFudEludm9rZSBhcyB0aGlzIHdvdWxkIChuYXR1cmFsbHkpIGNhdXNlIGEgY2lyY3VsYXIgcmVmZXJlbmNlXG4gICAgLy8gKEZ1bmN0aW9uIC0+IFJvbGUgLT4gRnVuY3Rpb24pLlxuICAgIGhhbmRsZXIuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICAgIHNlcnZpY2U6ICdsYW1iZGEnLFxuICAgICAgICAgICAgcmVzb3VyY2U6ICdmdW5jdGlvbicsXG4gICAgICAgICAgICByZXNvdXJjZU5hbWU6ICcqJyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIHVzaW5nIGhhbmRsZXIuZ3JhbnRJbnZva2UocHJvcHMuZmVlZEJ1aWxkZXIudXBkYXRlRmVlZEZ1bmN0aW9uKVxuICAgIC8vIGNhdXNlcyBjaXJjdWxhciBkZXBlbmRlbmN5IGVycm9yXG4gICAgaGFuZGxlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydsYW1iZGE6SW52b2tlRnVuY3Rpb24nXSxcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIHJlc291cmNlczogW3Byb3BzLmZlZWRCdWlsZGVyLnVwZGF0ZUZlZWRGdW5jdGlvbi5mdW5jdGlvbkFybl0sXG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBhbGxvdyB0aGUgY2F0YWxvZyBidWlsZGVyIHRvIHVzZSB0aGUgY2xpZW50LlxuICAgIHByb3BzLmRlbnlMaXN0LmdyYW50UmVhZChoYW5kbGVyKTtcblxuICAgIHByb3BzLmJ1Y2tldC5ncmFudFJlYWRXcml0ZSh0aGlzLmZ1bmN0aW9uKTtcblxuICAgIC8vIE1vbml0b3IgdGhlIGRlcml2YXRpdmUgb2YgdGhlIGNhdGFsb2cgc2l6ZSwgYW5kIGFsYXJtIGlmIHRoZSBjYXRhbG9nXG4gICAgLy8gbG9zZXMgbW9yZSB0aGFuIDUgaXRlbXMuIENhdGFsb2cgZWxlbWVudHMgY2FuIGRpc2FwcGVhciBpZiB0aGV5IGFyZSBhZGRlZFxuICAgIC8vIHRvIHRoZSBkZW55LWxpc3QsIG9yIGlmIHRoZXkgZ2V0IHVuLXB1Ymxpc2hlZCBmcm9tIHRoZSBvcmlnaW4gcmVwb3NpdG9yeS5cbiAgICAvLyBTdWNoIGNhc2VzIGFyZSBub3JtYWwgYW5kIHNob3VsZG4ndCB0eXBpY2FsbHkgcmVzdWx0IGluIGEgc2lnbmlmaWNhbnRcbiAgICAvLyBjb250cmFjdGlvbiBvZiB0aGUgY2F0YWxvZyBzaXplLlxuICAgIGNvbnN0IGNhdGFsb2dTaXplQ2hhbmdlID0gbmV3IE1hdGhFeHByZXNzaW9uKHtcbiAgICAgIGV4cHJlc3Npb246ICdESUZGKEZJTEwobTEsIFJFUEVBVCkpJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgICB1c2luZ01ldHJpY3M6IHsgbTE6IHRoaXMubWV0cmljUmVnaXN0ZXJlZFBhY2thZ2VNYWpvclZlcnNpb25zKCkgfSxcbiAgICB9KTtcbiAgICBjb25zdCBhbGFybVNocmlua2luZ0NhdGFsb2cgPSBjYXRhbG9nU2l6ZUNoYW5nZS5jcmVhdGVBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICAnU2hyaW5raW5nQ2F0YWxvZ0FsYXJtJyxcbiAgICAgIHtcbiAgICAgICAgYWxhcm1OYW1lOiBgJHt0aGlzLm5vZGUucGF0aH0vU2hyaW5raW5nQ2F0YWxvZ2AsXG4gICAgICAgIGFsYXJtRGVzY3JpcHRpb246IFtcbiAgICAgICAgICAnVGhlIG51bWJlciBvZiBwYWNrYWdlcyByZWdpc3RlcmVkIGluIHRoZSBjYXRhbG9nLmpzb24gb2JqZWN0IGhhcyBzaHJ1bmsgYnkgbW9yZSB0aGFuIDUnLFxuICAgICAgICAgICdlbGVtZW50cy4gVGhlcmUgbWlnaHQgYmUgYSBtYXNzIGV4dGluY3Rpb24gZXZlbnQgZ29pbmcgb24uIFRoaXMgc2hvdWxkIGJlIGludmVzdGlnYXRlZCcsXG4gICAgICAgICAgJ2FzIHNvb24gYXMgcG9zc2libGUuJyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgQ2F0YWxvZy5qc29uOiAke3MzT2JqZWN0VXJsKHByb3BzLmJ1Y2tldCwgJ2NhdGFsb2cuanNvbicpfWAsXG4gICAgICAgICAgYENhdGFsb2cgQnVpbGRlcjogJHtsYW1iZGFGdW5jdGlvblVybChoYW5kbGVyKX1gLFxuICAgICAgICAgICcnLFxuICAgICAgICAgIGBSVU5CT09LOiAke1JVTkJPT0tfVVJMfWAsXG4gICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkxFU1NfVEhBTl9USFJFU0hPTEQsXG4gICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgICB0aHJlc2hvbGQ6IC01LFxuICAgICAgfVxuICAgICk7XG4gICAgLy8gVGhpcyBpcyBhIGhpZ2gtc2V2ZXJpdHkgYWxhcm0gYmVjYXVzZSBpdCBpcyBpbmRpY2F0aXZlIG9mIGEgcG9zc2libGUgbWFzcy1leHRpbmN0aW9uIGV2ZW50XG4gICAgLy8gaW4gdGhlIGNhdGFsb2cuIFRoaXMgc2hvdWxkIGRlZmluaXRlbHkgcHJvbXB0IGltbWVkaWF0ZSBpbnZlc3RpZ2F0aW9uLCBhbHRob3VnaCBpdCBjYW4gYWxzb1xuICAgIC8vIGJlIGNhdXNlZCBieSB0aGUgcmVjZW50IGFkZGl0aW9uIG9mIGVub3VnaCBwYWNrYWdlcyBpbiB0aGUgZGVueS1saXN0IHRvIGNhdXNlIHRoZSBhbGFybSB0b1xuICAgIC8vIHRyaWdnZXIuXG4gICAgcHJvcHMubW9uaXRvcmluZy5hZGRIaWdoU2V2ZXJpdHlBbGFybShcbiAgICAgICdDYXRhbG9nIFNpemUgU2hydW5rJyxcbiAgICAgIGFsYXJtU2hyaW5raW5nQ2F0YWxvZ1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljTWlzc2luZ0NvbnN0cnVjdEZyYW1ld29ya0NvdW50KG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuTUFYSU1VTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLk1JU1NJTkdfQ09OU1RSVUNUX0ZSQU1FV09SS19DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljTWlzc2luZ0NvbnN0cnVjdEZyYW1ld29ya1ZlcnNpb25Db3VudChcbiAgICBvcHRzPzogTWV0cmljT3B0aW9uc1xuICApOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5NQVhJTVVNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuTUlTU0lOR19DT05TVFJVQ1RfRlJBTUVXT1JLX1ZFUlNJT05fQ09VTlQsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY1JlZ2lzdGVyZWRQYWNrYWdlTWFqb3JWZXJzaW9ucyhvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLk1BWElNVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5SRUdJU1RFUkVEX1BBQ0tBR0VTX01BSk9SX1ZFUlNJT04sXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogRGF0YSBmb3JtYXQgZm9yIGNhdGFsb2cgb2JqZWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dNb2RlbCB7XG4gIC8qKlxuICAgKiBQYWNrYWdlcyBpbiB0aGUgY2F0YWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VzOiBQYWNrYWdlSW5mb1tdO1xuICAvKipcbiAgICogRGF0ZSB0aGUgY2F0YWxvZyB3YXMgbGFzdCB1cGRhdGVkLCBpbiBJU08gODYwMSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSB1cGRhdGVkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGF0YSBmb3JtYXQgZm9yIHBhY2thZ2VzIHN0b3JlZCBpbiB0aGUgY2F0YWxvZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYWNrYWdlSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYXNzZW1ibHkuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoaXMgYXNzZW1ibHksIGFjY29yZGluZyB0byBTZW1WZXIuXG4gICAqL1xuICByZWFkb25seSBtYWpvcjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcGxldGUgU2VtVmVyIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIHBhY2thZ2UncyBtYWpvciB2ZXJzaW9uIHN0cmVhbSxcbiAgICogaW5jbHVkaW5nIHByZS1yZWxlYXNlIGlkZW50aWZpZXJzLCBidXQgZXhjbHVkaW5nIGFkZGl0aW9uYWwgbWV0YWRhdGFcbiAgICogKGV2ZXJ5dGhpbmcgc3RhcnRpbmcgYXQgYCtgLCBpZiB0aGVyZSBpcyBhbnkpLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXIgZm9yIHRoZSBwYWNrYWdlJ3MgbGljZW5zZS5cbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Yga2V5d29yZHMgY29uZmlndXJlZCBvbiB0aGUgcGFja2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IGtleXdvcmRzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTWV0YWRhdGEgYXNzaWduZWQgYnkgdGhlIGRpc2NvdmVyeSBmdW5jdGlvbiB0byB0aGUgbGF0ZXN0IHJlbGVhc2Ugb2YgdGhpc1xuICAgKiBwYWNrYWdlJ3MgbWFqb3IgdmVyc2lvbiBzdHJlYW0sIGlmIGFueS5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogeyByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIGNvbnN0cnVjdCBmcmFtZXdvcmssIGlmIHByZXNlbnQuXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RGcmFtZXdvcms/OiBDb25zdHJ1Y3RGcmFtZXdvcmsgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3Igb2YgdGhlIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSBhdXRob3I6IHtcbiAgICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZW1haWw/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgdXJsPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsYW5ndWFnZXMgY29uZmlndXJlZCBvbiB0aGUgcGFja2FnZSwgYW5kIHRoZSBjb3JyZXNwb25kaW5nXG4gICAqIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZXM6IEFzc2VtYmx5VGFyZ2V0cztcblxuICAvKipcbiAgICogVGhlIHRpbWVzdGFtcCBhdCB3aGljaCB0aGlzIHZlcnNpb24gd2FzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSB0aW1lOiBEYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbiJdfQ==
|
package/lib/construct-hub.js
CHANGED
@@ -363,7 +363,7 @@ class ConstructHub extends constructs_1.Construct {
|
|
363
363
|
}
|
364
364
|
exports.ConstructHub = ConstructHub;
|
365
365
|
_a = JSII_RTTI_SYMBOL_1;
|
366
|
-
ConstructHub[_a] = { fqn: "construct-hub.ConstructHub", version: "0.4.
|
366
|
+
ConstructHub[_a] = { fqn: "construct-hub.ConstructHub", version: "0.4.5" };
|
367
367
|
/**
|
368
368
|
* How possibly risky operations (such as doc-generation, which requires
|
369
369
|
* installing the indexed packages in order to trans-literate sample code) are
|
package/lib/monitoring/api.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import type {
|
1
|
+
import type { AlarmBase } from 'aws-cdk-lib/aws-cloudwatch';
|
2
2
|
/**
|
3
3
|
* ConstructHub monitoring features exposed to extension points.
|
4
4
|
*/
|
@@ -11,7 +11,7 @@ export interface IMonitoring {
|
|
11
11
|
* high-severity CloudWatch dashboard)
|
12
12
|
* @param alarm the alarm to be added to the high-severity dashboard.
|
13
13
|
*/
|
14
|
-
addHighSeverityAlarm(title: string, alarm:
|
14
|
+
addHighSeverityAlarm(title: string, alarm: AlarmBase): void;
|
15
15
|
/**
|
16
16
|
* Adds a low-severity alarm. If this alarm goes off, the action specified in
|
17
17
|
* `normalAlarmAction` is triggered.
|
@@ -19,5 +19,5 @@ export interface IMonitoring {
|
|
19
19
|
* @param title a user-friendly title for the alarm (not currently used).
|
20
20
|
* @param alarm the alarm to be added.
|
21
21
|
*/
|
22
|
-
addLowSeverityAlarm(title: string, alarm:
|
22
|
+
addLowSeverityAlarm(title: string, alarm: AlarmBase): void;
|
23
23
|
}
|
package/lib/monitoring/api.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vbml0b3JpbmcvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFsYXJtQmFzZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcblxuLyoqXG4gKiBDb25zdHJ1Y3RIdWIgbW9uaXRvcmluZyBmZWF0dXJlcyBleHBvc2VkIHRvIGV4dGVuc2lvbiBwb2ludHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1vbml0b3Jpbmcge1xuICAvKipcbiAgICogQWRkcyBhIGhpZ2gtc2V2ZXJpdHkgYWxhcm0uIElmIHRoaXMgYWxhcm0gZ29lcyBvZmYsIHRoZSBhY3Rpb24gc3BlY2lmaWVkIGluXG4gICAqIGBoaWdoU2V2ZXJpdHlBbGFybUFjdGlvbkFybmAgaXMgdHJpZ2dlcmVkLlxuICAgKlxuICAgKiBAcGFyYW0gdGl0bGUgYSB1c2VyLWZyaWVuZGx5IHRpdGxlIGZvciB0aGUgYWxhcm0gKHdpbGwgYmUgcmVuZGVyZWQgb24gdGhlXG4gICAqICAgICAgICAgICAgICBoaWdoLXNldmVyaXR5IENsb3VkV2F0Y2ggZGFzaGJvYXJkKVxuICAgKiBAcGFyYW0gYWxhcm0gdGhlIGFsYXJtIHRvIGJlIGFkZGVkIHRvIHRoZSBoaWdoLXNldmVyaXR5IGRhc2hib2FyZC5cbiAgICovXG4gIGFkZEhpZ2hTZXZlcml0eUFsYXJtKHRpdGxlOiBzdHJpbmcsIGFsYXJtOiBBbGFybUJhc2UpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgbG93LXNldmVyaXR5IGFsYXJtLiBJZiB0aGlzIGFsYXJtIGdvZXMgb2ZmLCB0aGUgYWN0aW9uIHNwZWNpZmllZCBpblxuICAgKiBgbm9ybWFsQWxhcm1BY3Rpb25gIGlzIHRyaWdnZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHRpdGxlIGEgdXNlci1mcmllbmRseSB0aXRsZSBmb3IgdGhlIGFsYXJtIChub3QgY3VycmVudGx5IHVzZWQpLlxuICAgKiBAcGFyYW0gYWxhcm0gdGhlIGFsYXJtIHRvIGJlIGFkZGVkLlxuICAgKi9cbiAgYWRkTG93U2V2ZXJpdHlBbGFybSh0aXRsZTogc3RyaW5nLCBhbGFybTogQWxhcm1CYXNlKTogdm9pZDtcbn1cbiJdfQ==
|
@@ -37,10 +37,10 @@ export declare class Monitoring extends Construct implements IMonitoring {
|
|
37
37
|
* Adds a high-severity alarm. If this alarm goes off, the action specified in `highSeverityAlarmActionArn`
|
38
38
|
* @param alarm
|
39
39
|
*/
|
40
|
-
addHighSeverityAlarm(title: string, alarm: cw.
|
41
|
-
addLowSeverityAlarm(_title: string, alarm: cw.
|
42
|
-
get highSeverityAlarms(): cw.
|
43
|
-
get lowSeverityAlarms(): cw.
|
40
|
+
addHighSeverityAlarm(title: string, alarm: cw.AlarmBase): void;
|
41
|
+
addLowSeverityAlarm(_title: string, alarm: cw.AlarmBase): void;
|
42
|
+
get highSeverityAlarms(): cw.AlarmBase[];
|
43
|
+
get lowSeverityAlarms(): cw.AlarmBase[];
|
44
44
|
/**
|
45
45
|
* Adds a canary that pings a certain URL and raises an alarm in case the URL
|
46
46
|
* responds with an error over 80% of the times.
|
package/lib/monitoring/index.js
CHANGED
@@ -35,7 +35,7 @@ class Monitoring extends constructs_1.Construct {
|
|
35
35
|
* @param alarm
|
36
36
|
*/
|
37
37
|
addHighSeverityAlarm(title, alarm) {
|
38
|
-
var _a, _b
|
38
|
+
var _a, _b;
|
39
39
|
const highSeverityActionArn = (_a = this.alarmActions) === null || _a === void 0 ? void 0 : _a.highSeverity;
|
40
40
|
if (highSeverityActionArn) {
|
41
41
|
alarm.addAlarmAction({
|
@@ -51,10 +51,10 @@ class Monitoring extends constructs_1.Construct {
|
|
51
51
|
title,
|
52
52
|
width: 24,
|
53
53
|
}));
|
54
|
-
|
54
|
+
this._highSeverityAlarms.push(alarm);
|
55
55
|
}
|
56
56
|
addLowSeverityAlarm(_title, alarm) {
|
57
|
-
var _a, _b
|
57
|
+
var _a, _b;
|
58
58
|
const normalSeverityActionArn = (_a = this.alarmActions) === null || _a === void 0 ? void 0 : _a.normalSeverity;
|
59
59
|
if (normalSeverityActionArn) {
|
60
60
|
alarm.addAlarmAction({
|
@@ -65,7 +65,7 @@ class Monitoring extends constructs_1.Construct {
|
|
65
65
|
if (normalSeverityAction) {
|
66
66
|
alarm.addAlarmAction(normalSeverityAction);
|
67
67
|
}
|
68
|
-
|
68
|
+
this._lowSeverityAlarms.push(alarm);
|
69
69
|
}
|
70
70
|
get highSeverityAlarms() {
|
71
71
|
return [...this._highSeverityAlarms];
|
@@ -91,4 +91,4 @@ class Monitoring extends constructs_1.Construct {
|
|
91
91
|
}
|
92
92
|
}
|
93
93
|
exports.Monitoring = Monitoring;
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uaXRvcmluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBaUQ7QUFDakQsK0NBQXdDO0FBQ3hDLDJDQUF1QztBQUd2Qyw2Q0FBeUM7QUFZekM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQWN2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXlCLEVBQUU7O1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBRXZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx1QkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0Msb0VBQW9FO1lBQ3BFLGVBQWUsRUFBRSxPQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLGNBQWMsRUFDaEQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxFQUFFO1lBQ04sWUFBWSxFQUFFLE9BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsb0JBQW9CLEVBQ25ELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQzNDLElBQUksRUFDSix1QkFBdUIsQ0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxvQkFBb0IsQ0FBQyxLQUFhLEVBQUUsS0FBbUI7O1FBQzVELE1BQU0scUJBQXFCLFNBQUcsSUFBSSxDQUFDLFlBQVksMENBQUUsWUFBWSxDQUFDO1FBQzlELElBQUkscUJBQXFCLEVBQUU7WUFDekIsS0FBSyxDQUFDLGNBQWMsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsQ0FBQzthQUN4RCxDQUFDLENBQUM7U0FDSjtRQUNELE1BQU0sa0JBQWtCLFNBQUcsSUFBSSxDQUFDLFlBQVksMENBQUUsa0JBQWtCLENBQUM7UUFDakUsSUFBSSxrQkFBa0IsRUFBRTtZQUN0QixLQUFLLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUNuQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7WUFDakIsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsTUFBYyxFQUFFLEtBQW1COztRQUM1RCxNQUFNLHVCQUF1QixTQUFHLElBQUksQ0FBQyxZQUFZLDBDQUFFLGNBQWMsQ0FBQztRQUNsRSxJQUFJLHVCQUF1QixFQUFFO1lBQzNCLEtBQUssQ0FBQyxjQUFjLENBQUM7Z0JBQ25CLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLENBQUM7YUFDMUQsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxNQUFNLG9CQUFvQixTQUFHLElBQUksQ0FBQyxZQUFZLDBDQUFFLG9CQUFvQixDQUFDO1FBQ3JFLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFlBQVksQ0FBQyxJQUFZLEVBQUUsR0FBVztRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFTLENBQzFCLElBQUksRUFDSixZQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQzdDO1lBQ0UsR0FBRztZQUNILFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksU0FBUyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUE1R0QsZ0NBNEdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3cgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgV2F0Y2hmdWwgfSBmcm9tICdjZGstd2F0Y2hmdWwnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBbGFybUFjdGlvbnMgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgSU1vbml0b3JpbmcgfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBXZWJDYW5hcnkgfSBmcm9tICcuL3dlYi1jYW5hcnknO1xuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgbW9uaXRvcmluZyBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvcmluZ1Byb3BzIHtcbiAgLyoqXG4gICAqIEFSTnMgb2YgYWxhcm0gYWN0aW9ucyB0byB0YWtlIGZvciB2YXJpb3VzIHNldmVyaXRpZXMuXG4gICAqL1xuICByZWFkb25seSBhbGFybUFjdGlvbnM/OiBBbGFybUFjdGlvbnM7XG59XG5cbi8qKlxuICogQ29uc3RydWN0IGh1YiBtb25pdG9yaW5nLlxuICpcbiAqIFRoaXMgY29uc3RydWN0IHVzZXMgY2RrLXdhdGNoZnVsIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBkYXNoYm9hcmQgYW5kIGFcbiAqIHNldCBvZiBzdGFuZGFyZCBhbGFybXMgZm9yIGNvbW1vbiByZXNvdXJjZXMuXG4gKlxuICogQ29tcG9uZW50cyBzaG91bGQgdXNlIHRoZSBBUElzIG9mIHRoaXMgbW9kdWxlIHRvIGFkZCB3YXRjaGZ1bCBtb25pdG9ycyxcbiAqIGFuZCBhZGQgY2FuYXJpZXMgYW5kIGFsYXJtcyBhcyBuZWVkZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25pdG9yaW5nIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSU1vbml0b3Jpbmcge1xuICBwcml2YXRlIGFsYXJtQWN0aW9ucz86IEFsYXJtQWN0aW9ucztcbiAgcHJpdmF0ZSBfaGlnaFNldmVyaXR5QWxhcm1zOiBjdy5BbGFybUJhc2VbXTtcbiAgcHJpdmF0ZSBfbG93U2V2ZXJpdHlBbGFybXM6IGN3LkFsYXJtQmFzZVtdO1xuXG4gIC8qKlxuICAgKiBBbGxvd3MgYWRkaW5nIGF1dG9tYXRpYyBtb25pdG9yaW5nIHRvIHN0YW5kYXJkIHJlc291cmNlcy4gTm90ZSB0aGF0XG4gICAqIHdhdGNoZnVsIGFsYXJtcyBhcmUgYWx3YXlzIHRyZWF0ZWQgYXMgX25vcm1hbF8gc2V2ZXJpdHkuIFlvdSBjYW4gYWRkXG4gICAqIGhpZ2gtc2V2ZXJpdHkgYWxhcm0gdmlhIGBhZGRIaWdoU2V2ZXJpdHlBbGFybSgpYC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3YXRjaGZ1bDogV2F0Y2hmdWw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoaWdoU2V2ZXJpdHlEYXNoYm9hcmQ6IGN3LkRhc2hib2FyZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTW9uaXRvcmluZ1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5hbGFybUFjdGlvbnMgPSBwcm9wcy5hbGFybUFjdGlvbnM7XG5cbiAgICB0aGlzLndhdGNoZnVsID0gbmV3IFdhdGNoZnVsKHRoaXMsICdXYXRjaGZ1bCcsIHtcbiAgICAgIC8vIGFsYXJtcyB0aGF0IGNvbWUgZnJvbSB3YXRjaGZ1bCBhcmUgYWxsIGNvbnNpZGVyZWQgbm9ybWFsIHNldmVyaXR5XG4gICAgICBhbGFybUFjdGlvbkFybnM6IHRoaXMuYWxhcm1BY3Rpb25zPy5ub3JtYWxTZXZlcml0eVxuICAgICAgICA/IFt0aGlzLmFsYXJtQWN0aW9ucy5ub3JtYWxTZXZlcml0eV1cbiAgICAgICAgOiBbXSxcbiAgICAgIGFsYXJtQWN0aW9uczogdGhpcy5hbGFybUFjdGlvbnM/Lm5vcm1hbFNldmVyaXR5QWN0aW9uXG4gICAgICAgID8gW3RoaXMuYWxhcm1BY3Rpb25zLm5vcm1hbFNldmVyaXR5QWN0aW9uXVxuICAgICAgICA6IFtdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5faGlnaFNldmVyaXR5QWxhcm1zID0gW107XG4gICAgdGhpcy5fbG93U2V2ZXJpdHlBbGFybXMgPSBbXTtcblxuICAgIHRoaXMuaGlnaFNldmVyaXR5RGFzaGJvYXJkID0gbmV3IGN3LkRhc2hib2FyZChcbiAgICAgIHRoaXMsXG4gICAgICAnSGlnaFNldmVyaXR5RGFzaGJvYXJkJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGhpZ2gtc2V2ZXJpdHkgYWxhcm0uIElmIHRoaXMgYWxhcm0gZ29lcyBvZmYsIHRoZSBhY3Rpb24gc3BlY2lmaWVkIGluIGBoaWdoU2V2ZXJpdHlBbGFybUFjdGlvbkFybmBcbiAgICogQHBhcmFtIGFsYXJtXG4gICAqL1xuICBwdWJsaWMgYWRkSGlnaFNldmVyaXR5QWxhcm0odGl0bGU6IHN0cmluZywgYWxhcm06IGN3LkFsYXJtQmFzZSkge1xuICAgIGNvbnN0IGhpZ2hTZXZlcml0eUFjdGlvbkFybiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5oaWdoU2V2ZXJpdHk7XG4gICAgaWYgKGhpZ2hTZXZlcml0eUFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogaGlnaFNldmVyaXR5QWN0aW9uQXJuIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGhpZ2hTZXZlcml0eUFjdGlvbiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5oaWdoU2V2ZXJpdHlBY3Rpb247XG4gICAgaWYgKGhpZ2hTZXZlcml0eUFjdGlvbikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oaGlnaFNldmVyaXR5QWN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZ2hTZXZlcml0eURhc2hib2FyZC5hZGRXaWRnZXRzKFxuICAgICAgbmV3IGN3LkFsYXJtV2lkZ2V0KHtcbiAgICAgICAgYWxhcm0sXG4gICAgICAgIHRpdGxlLFxuICAgICAgICB3aWR0aDogMjQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLl9oaWdoU2V2ZXJpdHlBbGFybXMucHVzaChhbGFybSk7XG4gIH1cblxuICBwdWJsaWMgYWRkTG93U2V2ZXJpdHlBbGFybShfdGl0bGU6IHN0cmluZywgYWxhcm06IGN3LkFsYXJtQmFzZSkge1xuICAgIGNvbnN0IG5vcm1hbFNldmVyaXR5QWN0aW9uQXJuID0gdGhpcy5hbGFybUFjdGlvbnM/Lm5vcm1hbFNldmVyaXR5O1xuICAgIGlmIChub3JtYWxTZXZlcml0eUFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogbm9ybWFsU2V2ZXJpdHlBY3Rpb25Bcm4gfSksXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsU2V2ZXJpdHlBY3Rpb24gPSB0aGlzLmFsYXJtQWN0aW9ucz8ubm9ybWFsU2V2ZXJpdHlBY3Rpb247XG4gICAgaWYgKG5vcm1hbFNldmVyaXR5QWN0aW9uKSB7XG4gICAgICBhbGFybS5hZGRBbGFybUFjdGlvbihub3JtYWxTZXZlcml0eUFjdGlvbik7XG4gICAgfVxuICAgIHRoaXMuX2xvd1NldmVyaXR5QWxhcm1zLnB1c2goYWxhcm0pO1xuICB9XG5cbiAgcHVibGljIGdldCBoaWdoU2V2ZXJpdHlBbGFybXMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9oaWdoU2V2ZXJpdHlBbGFybXNdO1xuICB9XG5cbiAgcHVibGljIGdldCBsb3dTZXZlcml0eUFsYXJtcygpIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2xvd1NldmVyaXR5QWxhcm1zXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2FuYXJ5IHRoYXQgcGluZ3MgYSBjZXJ0YWluIFVSTCBhbmQgcmFpc2VzIGFuIGFsYXJtIGluIGNhc2UgdGhlIFVSTFxuICAgKiByZXNwb25kcyB3aXRoIGFuIGVycm9yIG92ZXIgODAlIG9mIHRoZSB0aW1lcy5cbiAgICpcbiAgICogQ2FuYXJ5IGZhaWx1cmVzIGFyZSBhbHdheXMgY29uc2lkZXJlZCBoaWdoLXNldmVyaXR5IChhdCB0aGlzIHBvaW50KS5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGNhbmFyeVxuICAgKiBAcGFyYW0gdXJsIFRoZSBVUkwgdG8gcGluZ1xuICAgKi9cbiAgcHVibGljIGFkZFdlYkNhbmFyeShuYW1lOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgY2FuYXJ5ID0gbmV3IFdlYkNhbmFyeShcbiAgICAgIHRoaXMsXG4gICAgICBgV2ViQ2FuYXJ5JHtuYW1lLnJlcGxhY2UoL1teQS1aMC05XS9naSwgJycpfWAsXG4gICAgICB7XG4gICAgICAgIHVybCxcbiAgICAgICAgZGlzcGxheU5hbWU6IG5hbWUsXG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuYWRkSGlnaFNldmVyaXR5QWxhcm0oYCR7bmFtZX0gQ2FuYXJ5YCwgY2FuYXJ5LmFsYXJtKTtcbiAgfVxufVxuIl19
|
@@ -281,5 +281,5 @@ class CodeArtifact {
|
|
281
281
|
}
|
282
282
|
exports.CodeArtifact = CodeArtifact;
|
283
283
|
_a = JSII_RTTI_SYMBOL_1;
|
284
|
-
CodeArtifact[_a] = { fqn: "construct-hub.sources.CodeArtifact", version: "0.4.
|
284
|
+
CodeArtifact[_a] = { fqn: "construct-hub.sources.CodeArtifact", version: "0.4.5" };
|
285
285
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1hcnRpZmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWNrYWdlLXNvdXJjZXMvY29kZS1hcnRpZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE4RDtBQUM5RCwrREFRb0M7QUFFcEMsdURBQThDO0FBQzlDLHVFQUFnRTtBQUNoRSxpREFBOEQ7QUFDOUQsdURBQWlEO0FBQ2pELCtDQUFnRTtBQUNoRSxpREFBNkQ7QUFFN0QsNENBS3NCO0FBQ3RCLGtEQUE2QztBQU03QywyQ0FBaUQ7QUFDakQsb0ZBQStFO0FBQy9FLG9GQU1nRDtBQWNoRDs7O0dBR0c7QUFDSCxNQUFhLFlBQVk7SUFDdkIsWUFBb0MsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFBRyxDQUFDO0lBRXpELElBQUksQ0FDVCxLQUFnQixFQUNoQixFQUNFLFFBQVEsRUFDUixTQUFTLEVBQ1QsV0FBVyxFQUNYLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxHQUNvQjtRQUUzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pELE1BQU0sWUFBWSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUxSSxNQUFNLGNBQWMsR0FBRywwQkFBZ0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ2pCLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsUUFBUSxnQkFBZ0IsRUFBRTtnQkFDM0QsaUJBQWlCLEVBQUUsMEJBQWlCLENB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b0NBd1RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJuRm9ybWF0LCBBd3MsIER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7XG4gIENvbXBhcmlzb25PcGVyYXRvcixcbiAgR3JhcGhXaWRnZXQsXG4gIE1hdGhFeHByZXNzaW9uLFxuICBNZXRyaWMsXG4gIE1ldHJpY09wdGlvbnMsXG4gIFN0YXRpc3RpYyxcbiAgVHJlYXRNaXNzaW5nRGF0YSxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ2ZuUmVwb3NpdG9yeSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlYXJ0aWZhY3QnO1xuaW1wb3J0IHsgUnVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFRyYWNpbmcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBJQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IFF1ZXVlLCBRdWV1ZUVuY3J5cHRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3FzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgY29kZUFydGlmYWN0UmVwb3NpdG9yeVVybCxcbiAgbGFtYmRhRnVuY3Rpb25VcmwsXG4gIGxhbWJkYVNlYXJjaExvZ0dyb3VwVXJsLFxuICBzcXNRdWV1ZVVybCxcbn0gZnJvbSAnLi4vZGVlcC1saW5rJztcbmltcG9ydCB7IGZpbGxNZXRyaWMgfSBmcm9tICcuLi9tZXRyaWMtdXRpbHMnO1xuaW1wb3J0IHR5cGUge1xuICBJUGFja2FnZVNvdXJjZSxcbiAgUGFja2FnZVNvdXJjZUJpbmRPcHRpb25zLFxuICBQYWNrYWdlU291cmNlQmluZFJlc3VsdCxcbn0gZnJvbSAnLi4vcGFja2FnZS1zb3VyY2UnO1xuaW1wb3J0IHsgUzNTdG9yYWdlRmFjdG9yeSB9IGZyb20gJy4uL3MzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgQ29kZUFydGlmYWN0Rm9yd2FyZGVyIH0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QvY29kZS1hcnRpZmFjdC1mb3J3YXJkZXInO1xuaW1wb3J0IHtcbiAgTUVUUklDU19OQU1FU1BBQ0UsXG4gIE1ldHJpY05hbWUsXG4gIERPTUFJTl9OQU1FX0RJTUVOU0lPTixcbiAgRE9NQUlOX09XTkVSX0RJTUVOU0lPTixcbiAgUkVQT1NJVE9SWV9OQU1FX0RJTUVOU0lPTixcbn0gZnJvbSAnLi9jb2RlYXJ0aWZhY3QvY29uc3RhbnRzLmxhbWJkYS1zaGFyZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVBcnRpZmFjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBDb2RlQXJ0aWZhY3QgcmVwb3NpdG9yeSB3aGVyZSBwYWNrYWdlcyBhcmUgb2J0YWluZWQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9zaXRvcnk6IENmblJlcG9zaXRvcnk7XG5cbiAgLyoqXG4gICAqIFRoZSBTMyBidWNrZXQgd2hlcmUgcGFja2FnZXMgd2lsbCBiZSBzdGFnZWQuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ/OiBJQnVja2V0O1xufVxuXG4vKipcbiAqIEEgcGFja2FnZSBzb3VyY2UgdGhhdCBvYnRhaW5zIHBhY2thZ2UgZGF0YSBmcm9tIGFuIG5wbSBDb2RlQXJ0aWZhY3RcbiAqIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlQXJ0aWZhY3QgaW1wbGVtZW50cyBJUGFja2FnZVNvdXJjZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDb2RlQXJ0aWZhY3RQcm9wcykge31cblxuICBwdWJsaWMgYmluZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIHtcbiAgICAgIGRlbnlMaXN0LFxuICAgICAgaW5nZXN0aW9uLFxuICAgICAgbGljZW5zZUxpc3QsXG4gICAgICBtb25pdG9yaW5nLFxuICAgICAgb3ZlcnZpZXdEYXNoYm9hcmQsXG4gICAgICBxdWV1ZSxcbiAgICB9OiBQYWNrYWdlU291cmNlQmluZE9wdGlvbnNcbiAgKTogUGFja2FnZVNvdXJjZUJpbmRSZXN1bHQge1xuICAgIGNvbnN0IGlkUHJlZml4ID0gdGhpcy5wcm9wcy5yZXBvc2l0b3J5Lm5vZGUucGF0aDtcbiAgICBjb25zdCByZXBvc2l0b3J5SWQgPSBgJHt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyfToke3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZX0vJHt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWV9YDtcblxuICAgIGNvbnN0IHN0b3JhZ2VGYWN0b3J5ID0gUzNTdG9yYWdlRmFjdG9yeS5nZXRPckNyZWF0ZShzY29wZSk7XG4gICAgY29uc3QgYnVja2V0ID1cbiAgICAgIHRoaXMucHJvcHMuYnVja2V0IHx8XG4gICAgICBzdG9yYWdlRmFjdG9yeS5uZXdCdWNrZXQoc2NvcGUsIGAke2lkUHJlZml4fS9TdGFnaW5nQnVja2V0YCwge1xuICAgICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgICBsaWZlY3ljbGVSdWxlczogW3sgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzMCkgfV0sXG4gICAgICB9KTtcbiAgICBidWNrZXQuZ3JhbnRSZWFkKGluZ2VzdGlvbik7XG5cbiAgICBjb25zdCBkbHEgPSBuZXcgUXVldWUoc2NvcGUsIGAke2lkUHJlZml4fS9ETFFgLCB7XG4gICAgICBlbmNyeXB0aW9uOiBRdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRUQsXG4gICAgICByZXRlbnRpb25QZXJpb2Q6IER1cmF0aW9uLmRheXMoMTQpLFxuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZm9yd2FyZGVyID0gbmV3IENvZGVBcnRpZmFjdEZvcndhcmRlcihcbiAgICAgIHNjb3BlLFxuICAgICAgYCR7aWRQcmVmaXh9L0ZvcndhcmRlcmAsXG4gICAgICB7XG4gICAgICAgIGRlYWRMZXR0ZXJRdWV1ZTogZGxxLFxuICAgICAgICBkZXNjcmlwdGlvbjogYFske3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfV0gSGFuZGxlIENvZGVBcnRpZmFjdCBFdmVudEJyaWRnZSBldmVudHNgLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIEFXU19FTUZfRU5WSVJPTk1FTlQ6ICdMb2NhbCcsXG4gICAgICAgICAgQlVDS0VUX05BTUU6IGJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICAgIFFVRVVFX1VSTDogcXVldWUucXVldWVVcmwsXG4gICAgICAgIH0sXG4gICAgICAgIG1lbW9yeVNpemU6IDEwMjQsXG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgIH1cbiAgICApO1xuICAgIGJ1Y2tldC5ncmFudFJlYWRXcml0ZShmb3J3YXJkZXIpO1xuICAgIGRlbnlMaXN0Py5ncmFudFJlYWQoZm9yd2FyZGVyKTtcbiAgICBsaWNlbnNlTGlzdC5ncmFudFJlYWQoZm9yd2FyZGVyKTtcbiAgICBxdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhmb3J3YXJkZXIpO1xuICAgIGZvcndhcmRlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnY29kZWFydGlmYWN0OkdldFBhY2thZ2VWZXJzaW9uQXNzZXQnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgU3RhY2sub2Yoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICAgICAgICBzZXJ2aWNlOiAnY29kZWFydGlmYWN0JyxcbiAgICAgICAgICAgIHJlc291cmNlOiAncGFja2FnZScsXG4gICAgICAgICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiBbXG4gICAgICAgICAgICAgIHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lLFxuICAgICAgICAgICAgICAnbnBtJywgLy8gcGFja2FnZSBmb3JtYXRcbiAgICAgICAgICAgICAgJyonLCAvLyBuYW1lc3BhY2UvcGFja2FnZS1uYW1lXG4gICAgICAgICAgICBdLmpvaW4oJy8nKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZShzY29wZSwgYCR7aWRQcmVmaXh9L0V2ZW50QnJpZGdlYCwge1xuICAgICAgZGVzY3JpcHRpb246IGAke3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfS9FdmVudEJyaWRnZWAsXG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbJ2F3cy5jb2RlYXJ0aWZhY3QnXSxcbiAgICAgICAgZGV0YWlsVHlwZTogWydDb2RlQXJ0aWZhY3QgUGFja2FnZSBWZXJzaW9uIFN0YXRlIENoYW5nZSddLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBkb21haW5Pd25lcjogW3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXJdLFxuICAgICAgICAgIGRvbWFpbk5hbWU6IFt0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk5hbWVdLFxuICAgICAgICAgIHJlcG9zaXRvcnlOYW1lOiBbdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lXSxcbiAgICAgICAgICBwYWNrYWdlRm9ybWF0OiBbJ25wbSddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRhcmdldHM6IFtuZXcgTGFtYmRhRnVuY3Rpb24oZm9yd2FyZGVyKV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmYWlsdXJlQWxhcm0gPSBmb3J3YXJkZXJcbiAgICAgIC5tZXRyaWNFcnJvcnMoKVxuICAgICAgLmNyZWF0ZUFsYXJtKHNjb3BlLCBgJHtpZFByZWZpeH0vRm9yd2FyZGVyL0ZhaWx1cmVzYCwge1xuICAgICAgICBhbGFybU5hbWU6IGAke3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfS9Gb3J3YXJkZXJgLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOiBbXG4gICAgICAgICAgYFRoZSBDb2RlQXJ0aWZhY3QgZm93YXJkZXIgZm9yICR7cmVwb3NpdG9yeUlkfSBpcyBmYWlsaW5nYCxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgTGluayB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uOiAke2xhbWJkYUZ1bmN0aW9uVXJsKGZvcndhcmRlcil9YCxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOlxuICAgICAgICAgIENvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fT1JfRVFVQUxfVE9fVEhSRVNIT0xELFxuICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMyxcbiAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBUcmVhdE1pc3NpbmdEYXRhLk1JU1NJTkcsXG4gICAgICB9KTtcbiAgICBtb25pdG9yaW5nLmFkZEhpZ2hTZXZlcml0eUFsYXJtKFxuICAgICAgYENvZGVBcnRpZmFjdDoke3RoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZX0gRmFpbHVyZXNgLFxuICAgICAgZmFpbHVyZUFsYXJtXG4gICAgKTtcblxuICAgIGNvbnN0IGRscU5vdEVtcHR5QWxhcm0gPSBuZXcgTWF0aEV4cHJlc3Npb24oe1xuICAgICAgZXhwcmVzc2lvbjogJ21WaXNpYmxlICsgbUhpZGRlbicsXG4gICAgICB1c2luZ01ldHJpY3M6IHtcbiAgICAgICAgbVZpc2libGU6IGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHtcbiAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgIH0pLFxuICAgICAgICBtSGlkZGVuOiBkbHEubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZk1lc3NhZ2VzTm90VmlzaWJsZSh7XG4gICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0oc2NvcGUsIGAke2lkUHJlZml4fS9Gb3J3YXJkZXIvRExRTm90RW1wdHlgLCB7XG4gICAgICBhbGFybU5hbWU6IGAke3Njb3BlLm5vZGUucGF0aH0vQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfS9ETFFOb3RFbXB0eWAsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBbXG4gICAgICAgIGBUaGUgQ29kZUFydGlmYWN0IGZvd2FyZGVyIGZvciAke3JlcG9zaXRvcnlJZH0gaXMgZmFpbGluZ2AsXG4gICAgICAgICcnLFxuICAgICAgICBgTGluayB0byB0aGUgbGFtYmRhIGZ1bmN0aW9uOiAke2xhbWJkYUZ1bmN0aW9uVXJsKGZvcndhcmRlcil9YCxcbiAgICAgICAgYExpbmsgdG8gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlOiAke3Nxc1F1ZXVlVXJsKGRscSl9YCxcbiAgICAgIF0uam9pbignL24nKSxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9PUl9FUVVBTF9UT19USFJFU0hPTEQsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IFRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KTtcbiAgICBtb25pdG9yaW5nLmFkZExvd1NldmVyaXR5QWxhcm0oXG4gICAgICBgQ29kZUFydGlmYWN0LyR7cmVwb3NpdG9yeUlkfSBETFEgTm90IEVtcHR5YCxcbiAgICAgIGRscU5vdEVtcHR5QWxhcm1cbiAgICApO1xuXG4gICAgcnVsZS5ub2RlLmFkZERlcGVuZGVuY3koZmFpbHVyZUFsYXJtLCBkbHFOb3RFbXB0eUFsYXJtKTtcblxuICAgIG92ZXJ2aWV3RGFzaGJvYXJkLmFkZERMUU1ldHJpY1RvRGFzaGJvYXJkKFxuICAgICAgYENvZGVBcnRpZmFjdC8ke3JlcG9zaXRvcnlJZH0gRExRYCxcbiAgICAgIGRscVxuICAgICk7XG4gICAgb3ZlcnZpZXdEYXNoYm9hcmQuYWRkQ29uY3VycmVudEV4ZWN1dGlvbk1ldHJpY1RvRGFzaGJvYXJkKFxuICAgICAgZm9yd2FyZGVyLFxuICAgICAgYCR7aWRQcmVmaXh9L0ZvcndhcmRlckxhbWJkYWBcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IGBDb2RlQXJ0aWZhY3Q6ICR7cmVwb3NpdG9yeUlkfWAsXG4gICAgICBsaW5rczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NvZGVBcnRpZmFjdCcsXG4gICAgICAgICAgdXJsOiBjb2RlQXJ0aWZhY3RSZXBvc2l0b3J5VXJsKHRoaXMucHJvcHMucmVwb3NpdG9yeSksXG4gICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGb3J3YXJkZXIgRnVuY3Rpb24nLFxuICAgICAgICAgIHVybDogbGFtYmRhRnVuY3Rpb25VcmwoZm9yd2FyZGVyKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZWFyY2ggTG9nIGdyb3VwJyxcbiAgICAgICAgICB1cmw6IGxhbWJkYVNlYXJjaExvZ0dyb3VwVXJsKGZvcndhcmRlciksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRExRJyxcbiAgICAgICAgICB1cmw6IHNxc1F1ZXVlVXJsKGRscSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZGFzaGJvYXJkV2lkZ2V0czogW1xuICAgICAgICBbXG4gICAgICAgICAgbmV3IEdyYXBoV2lkZ2V0KHtcbiAgICAgICAgICAgIGhlaWdodDogNixcbiAgICAgICAgICAgIHdpZHRoOiAxMixcbiAgICAgICAgICAgIHRpdGxlOiAnRnVuY3Rpb24gSGVhbHRoJyxcbiAgICAgICAgICAgIGxlZnQ6IFtcbiAgICAgICAgICAgICAgZmlsbE1ldHJpYyhmb3J3YXJkZXIubWV0cmljSW52b2NhdGlvbnMoeyBsYWJlbDogJ0ludm9jYXRpb25zJyB9KSksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoZm9yd2FyZGVyLm1ldHJpY0Vycm9ycyh7IGxhYmVsOiAnRXJyb3JzJyB9KSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgbGVmdFlBeGlzOiB7IG1pbjogMCB9LFxuICAgICAgICAgICAgcmlnaHQ6IFtmb3J3YXJkZXIubWV0cmljRHVyYXRpb24oeyBsYWJlbDogJ0R1cmF0aW9uJyB9KV0sXG4gICAgICAgICAgICByaWdodFlBeGlzOiB7IG1pbjogMCB9LFxuICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDE1KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBuZXcgR3JhcGhXaWRnZXQoe1xuICAgICAgICAgICAgaGVpZ2h0OiA2LFxuICAgICAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICAgICAgdGl0bGU6ICdEZWFkIExldHRlciBRdWV1ZScsXG4gICAgICAgICAgICBsZWZ0OiBbXG4gICAgICAgICAgICAgIGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1Zpc2libGUgTWVzc2FnZXMnLFxuICAgICAgICAgICAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGRscS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNOb3RWaXNpYmxlKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0hpZGRlbiBNZXNzYWdlcycsXG4gICAgICAgICAgICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBsZWZ0WUF4aXM6IHsgbWluOiAwIH0sXG4gICAgICAgICAgICByaWdodDogW1xuICAgICAgICAgICAgICBkbHEubWV0cmljQXBwcm94aW1hdGVBZ2VPZk9sZGVzdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnT2xkZXN0IE1lc3NhZ2UgQWdlJyxcbiAgICAgICAgICAgICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJpZ2h0WUF4aXM6IHsgbWluOiAwIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIFtcbiAgICAgICAgICBuZXcgR3JhcGhXaWRnZXQoe1xuICAgICAgICAgICAgaGVpZ2h0OiA2LFxuICAgICAgICAgICAgd2lkdGg6IDEyLFxuICAgICAgICAgICAgdGl0bGU6ICdRdWFsaXR5IE1ldHJpY3MnLFxuICAgICAgICAgICAgbGVmdDogW1xuICAgICAgICAgICAgICBmaWxsTWV0cmljKFxuICAgICAgICAgICAgICAgIHRoaXMubWV0cmljTm90SnNpaUVuYWJsZWRDb3VudCh7IGxhYmVsOiAnTm90IGEganNpaSBwYWNrYWdlJyB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRyaWNJbmVsaWdpYmxlTGljZW5zZSh7IGxhYmVsOiAnSW5lbGlnaWJsZSBMaWNlbnNlJyB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRyaWNEZW55TGlzdGVkQ291bnQoeyBsYWJlbDogJ0RlbnkgTGlzdGVkJyB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGZpbGxNZXRyaWMoXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRyaWNEZWxldGVkQ291bnQoeyBsYWJlbDogJ0RlbGV0aW9uIEV2ZW50cycgfSksXG4gICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGxlZnRZQXhpczogeyBtaW46IDAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY291bnQgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgaWdub3JlZCBkdWUgdG8gYmVpbmcgaW4gdGhlIGRlbnkgbGlzdC5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNEZW55TGlzdGVkQ291bnQob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFtET01BSU5fT1dORVJfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5Pd25lcixcbiAgICAgICAgW0RPTUFJTl9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgW1JFUE9TSVRPUllfTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWUsXG4gICAgICB9LFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5ERU5ZX0xJU1RFRF9DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWNrYWdlIHZlcnNpb25zIHRoYXQgd2VyZSBpZ25vcmVkIGR1ZSB0byB1c2luZyBhbiBpbmVsb2lnaWJsZSBsaWNlbnNlLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0luZWxpZ2libGVMaWNlbnNlKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5TVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBbRE9NQUlOX09XTkVSX0RJTUVOU0lPTl06XG4gICAgICAgICAgdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5Pd25lciA/PyBBd3MuQUNDT1VOVF9JRCxcbiAgICAgICAgW0RPTUFJTl9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluTmFtZSxcbiAgICAgICAgW1JFUE9TSVRPUllfTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ck5hbWUsXG4gICAgICB9LFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5JTkVMSUdJQkxFX0xJQ0VOU0UsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgZGVsZXRlZCBmcm9tIENvZGVBcnRpZmFjdCAodGhvc2UgZXZlbnRzIGFyZSBub3RcbiAgICogaGFuZGxlZCBjdXJyZW50bHkpLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0RlbGV0ZWRDb3VudChvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgW0RPTUFJTl9PV05FUl9ESU1FTlNJT05dOlxuICAgICAgICAgIHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyRG9tYWluT3duZXIgPz8gQXdzLkFDQ09VTlRfSUQsXG4gICAgICAgIFtET01BSU5fTkFNRV9ESU1FTlNJT05dOiB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk5hbWUsXG4gICAgICAgIFtSRVBPU0lUT1JZX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJOYW1lLFxuICAgICAgfSxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuREVMRVRFRF9DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYWNrYWdlIHZlcnNpb25zIHRoYXQgZG8gbm90IGhhdmUgYSBqc2lpIGFzc2VtYmx5IGluIHRoZSBwYWNrYWdlLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY05vdEpzaWlFbmFibGVkQ291bnQob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLlNVTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFtET01BSU5fT1dORVJfRElNRU5TSU9OXTpcbiAgICAgICAgICB0aGlzLnByb3BzLnJlcG9zaXRvcnkuYXR0ckRvbWFpbk93bmVyID8/IEF3cy5BQ0NPVU5UX0lELFxuICAgICAgICBbRE9NQUlOX05BTUVfRElNRU5TSU9OXTogdGhpcy5wcm9wcy5yZXBvc2l0b3J5LmF0dHJEb21haW5OYW1lLFxuICAgICAgICBbUkVQT1NJVE9SWV9OQU1FX0RJTUVOU0lPTl06IHRoaXMucHJvcHMucmVwb3NpdG9yeS5hdHRyTmFtZSxcbiAgICAgIH0sXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLk5PVF9KU0lJX0VOQUJMRURfQ09VTlQsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -23,7 +23,14 @@ export declare const enum MetricName {
|
|
23
23
|
* The number of package versions that were tracked at the beginning of the
|
24
24
|
* package canary execution that produced the data point.
|
25
25
|
*/
|
26
|
-
TRACKED_VERSION_COUNT = "TrackedVersionCount"
|
26
|
+
TRACKED_VERSION_COUNT = "TrackedVersionCount",
|
27
|
+
/**
|
28
|
+
* The estimated lag between the npm registry replica (replicate.npmjs.com)
|
29
|
+
* and the primary registry (registry.npmjs.com). This cannot be measured
|
30
|
+
* directly because the primary does not expose the relevant CouchDB endpoints,
|
31
|
+
* so we use the probe package to get a low-resolution view of this.
|
32
|
+
*/
|
33
|
+
NPM_REPLICA_LAG = "EstimatedNpmReplicaLag"
|
27
34
|
}
|
28
35
|
export declare const enum ObjectKey {
|
29
36
|
STATE_PREFIX = "package-canary/",
|
@@ -2,4 +2,4 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.METRICS_NAMESPACE = void 0;
|
4
4
|
exports.METRICS_NAMESPACE = 'ConstructHub/PackageCanary';
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2Utc291cmNlcy9ucG1qcy9jYW5hcnkvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1hLFFBQUEsaUJBQWlCLEdBQUcsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBFbnZpcm9ubWVudCB7XG4gIFBBQ0tBR0VfTkFNRSA9ICdQQUNLQUdFX05BTUUnLFxuICBQQUNLQUdFX0NBTkFSWV9CVUNLRVRfTkFNRSA9ICdQQUNLQUdFX0NBTkFSWV9CVUNLRVRfTkFNRScsXG4gIENPTlNUUlVDVF9IVUJfQkFTRV9VUkwgPSAnQ09OU1RSVUNUX0hVQl9CQVNFX1VSTCcsXG59XG5cbmV4cG9ydCBjb25zdCBNRVRSSUNTX05BTUVTUEFDRSA9ICdDb25zdHJ1Y3RIdWIvUGFja2FnZUNhbmFyeSc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIE1ldHJpY05hbWUge1xuICAvKipcbiAgICogVGhlIHRpbWUgZWxhcHNlZCBzaW5jZSBhIHBhY2thZ2Ugd2FzIHB1Ymxpc2hlZCB0byBucG1qcy5jb20sIHdoaWxlIGl0IGhhc1xuICAgKiBub3QgYmVlbiBkZXRlY3RlZCBpbiB0aGUgY2F0YWxvZyBieSB0aGUgcGFja2FnZSBjYW5hcnkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljcyBpcyBvbmx5IGVtaXR0ZWQgdW50aWwgdGhlIHBhY2thZ2UgaGFzIGJlZW4gZGV0ZWN0ZWQuXG4gICAqL1xuICBEV0VMTF9USU1FID0gJ0R3ZWxsVGltZScsXG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGl0IHRvb2sgYmV0d2VlbiBhIHBhY2thZ2UncyBwdWJsaWNhdGlvbiB0byBucG1qcy5jb20gYW5kIHdoZW4gdGhlXG4gICAqIHBhY2thZ2UgY2FuYXJ5IGRldGVjdGVkIHRoZSBwYWNrYWdlIGFzIGF2YWlsYWJsZSBpbiB0aGUgY2F0YWxvZy5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgbm90IGVtaXR0ZWQgdW50aWwgdGhlIHBhY2thZ2UgaGFzIGFjdHVhbGx5IGJlZW4gZGV0ZWN0ZWQuXG4gICAqL1xuICBUSU1FX1RPX0NBVEFMT0cgPSAnVGltZVRvQ2F0YWxvZycsXG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgdHJhY2tlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZVxuICAgKiBwYWNrYWdlIGNhbmFyeSBleGVjdXRpb24gdGhhdCBwcm9kdWNlZCB0aGUgZGF0YSBwb2ludC5cbiAgICovXG4gIFRSQUNLRURfVkVSU0lPTl9DT1VOVCA9ICdUcmFja2VkVmVyc2lvbkNvdW50JyxcblxuICAvKipcbiAgICogVGhlIGVzdGltYXRlZCBsYWcgYmV0d2VlbiB0aGUgbnBtIHJlZ2lzdHJ5IHJlcGxpY2EgKHJlcGxpY2F0ZS5ucG1qcy5jb20pXG4gICAqIGFuZCB0aGUgcHJpbWFyeSByZWdpc3RyeSAocmVnaXN0cnkubnBtanMuY29tKS4gVGhpcyBjYW5ub3QgYmUgbWVhc3VyZWRcbiAgICogZGlyZWN0bHkgYmVjYXVzZSB0aGUgcHJpbWFyeSBkb2VzIG5vdCBleHBvc2UgdGhlIHJlbGV2YW50IENvdWNoREIgZW5kcG9pbnRzLFxuICAgKiBzbyB3ZSB1c2UgdGhlIHByb2JlIHBhY2thZ2UgdG8gZ2V0IGEgbG93LXJlc29sdXRpb24gdmlldyBvZiB0aGlzLlxuICAgKi9cbiAgTlBNX1JFUExJQ0FfTEFHID0gJ0VzdGltYXRlZE5wbVJlcGxpY2FMYWcnLFxufVxuXG5leHBvcnQgY29uc3QgZW51bSBPYmplY3RLZXkge1xuICBTVEFURV9QUkVGSVggPSAncGFja2FnZS1jYW5hcnkvJyxcbiAgU1RBVEVfU1VGRklYID0gJy5zdGF0ZS5qc29uJyxcbn1cbiJdfQ==
|
@@ -7,8 +7,24 @@ export interface NpmJsPackageCanaryProps {
|
|
7
7
|
readonly packageName: string;
|
8
8
|
}
|
9
9
|
export declare class NpmJsPackageCanary extends Construct {
|
10
|
+
private readonly handler;
|
10
11
|
constructor(scope: Construct, id: string, props: NpmJsPackageCanaryProps);
|
11
12
|
metricDwellTime(opts?: MetricOptions): Metric;
|
12
13
|
metricTimeToCatalog(opts?: MetricOptions): Metric;
|
13
14
|
metricTrackedVersionCount(opts?: MetricOptions): Metric;
|
15
|
+
/**
|
16
|
+
* The estimated lag between the npm registry replica (replcate.npmjs.com) and
|
17
|
+
* the primary registry (registry.npmjs.com).
|
18
|
+
*
|
19
|
+
* IMPORTANT NOTE: This is based on the difference in modified timestamps for
|
20
|
+
* the probe package between the two and hence has a granularly no better than
|
21
|
+
* the publishing interval of this. Since the construct-hub-probe package is
|
22
|
+
* only published every 3 hours approximately, this metric has a resolution
|
23
|
+
* that is strictly worse than 3 hours.
|
24
|
+
*/
|
25
|
+
metricEstimatedNpmReplicaLag(opts?: MetricOptions): Metric;
|
26
|
+
metricErrors(opts?: MetricOptions): Metric;
|
27
|
+
metricInvocations(opts?: MetricOptions): Metric;
|
28
|
+
metricThrottles(opts?: MetricOptions): Metric;
|
29
|
+
metricDuration(opts?: MetricOptions): Metric;
|
14
30
|
}
|