construct-hub 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
package/.jsii CHANGED
@@ -4589,7 +4589,7 @@
4589
4589
  },
4590
4590
  "name": "alarm",
4591
4591
  "type": {
4592
- "fqn": "aws-cdk-lib.aws_cloudwatch.Alarm"
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.Alarm"
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": 94
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": 93
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": 96
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": 326
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": 339
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": 353
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": 363
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": 376
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": 389
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": 402
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": 416
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": 430
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": 56
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": 78
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": 87
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": 70
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": 62
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.4",
16593
- "fingerprint": "O1Jrf0wgbHHDrzmxvU7tGmAjT2kPS9VInTITcWQqCm0="
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: Alarm): void
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.Alarm
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: Alarm): void
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.Alarm
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.4](https://github.com/cdklabs/construct-hub/compare/v0.4.3...v0.4.4) (2022-05-13)
2
+ ### [0.4.5](https://github.com/cdklabs/construct-hub/compare/v0.4.4...v0.4.5) (2022-05-16)
@@ -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==
@@ -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.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
@@ -1,4 +1,4 @@
1
- import type { Alarm } from 'aws-cdk-lib/aws-cloudwatch';
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: Alarm): void;
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: Alarm): void;
22
+ addLowSeverityAlarm(title: string, alarm: AlarmBase): void;
23
23
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vbml0b3JpbmcvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFsYXJtIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuXG4vKipcbiAqIENvbnN0cnVjdEh1YiBtb25pdG9yaW5nIGZlYXR1cmVzIGV4cG9zZWQgdG8gZXh0ZW5zaW9uIHBvaW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTW9uaXRvcmluZyB7XG4gIC8qKlxuICAgKiBBZGRzIGEgaGlnaC1zZXZlcml0eSBhbGFybS4gSWYgdGhpcyBhbGFybSBnb2VzIG9mZiwgdGhlIGFjdGlvbiBzcGVjaWZpZWQgaW5cbiAgICogYGhpZ2hTZXZlcml0eUFsYXJtQWN0aW9uQXJuYCBpcyB0cmlnZ2VyZWQuXG4gICAqXG4gICAqIEBwYXJhbSB0aXRsZSBhIHVzZXItZnJpZW5kbHkgdGl0bGUgZm9yIHRoZSBhbGFybSAod2lsbCBiZSByZW5kZXJlZCBvbiB0aGVcbiAgICogICAgICAgICAgICAgIGhpZ2gtc2V2ZXJpdHkgQ2xvdWRXYXRjaCBkYXNoYm9hcmQpXG4gICAqIEBwYXJhbSBhbGFybSB0aGUgYWxhcm0gdG8gYmUgYWRkZWQgdG8gdGhlIGhpZ2gtc2V2ZXJpdHkgZGFzaGJvYXJkLlxuICAgKi9cbiAgYWRkSGlnaFNldmVyaXR5QWxhcm0odGl0bGU6IHN0cmluZywgYWxhcm06IEFsYXJtKTogdm9pZDtcblxuICAvKipcbiAgICogQWRkcyBhIGxvdy1zZXZlcml0eSBhbGFybS4gSWYgdGhpcyBhbGFybSBnb2VzIG9mZiwgdGhlIGFjdGlvbiBzcGVjaWZpZWQgaW5cbiAgICogYG5vcm1hbEFsYXJtQWN0aW9uYCBpcyB0cmlnZ2VyZWQuXG4gICAqXG4gICAqIEBwYXJhbSB0aXRsZSBhIHVzZXItZnJpZW5kbHkgdGl0bGUgZm9yIHRoZSBhbGFybSAobm90IGN1cnJlbnRseSB1c2VkKS5cbiAgICogQHBhcmFtIGFsYXJtIHRoZSBhbGFybSB0byBiZSBhZGRlZC5cbiAgICovXG4gIGFkZExvd1NldmVyaXR5QWxhcm0odGl0bGU6IHN0cmluZywgYWxhcm06IEFsYXJtKTogdm9pZDtcbn1cbiJdfQ==
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.Alarm): void;
41
- addLowSeverityAlarm(_title: string, alarm: cw.Alarm): void;
42
- get highSeverityAlarms(): cw.Alarm[];
43
- get lowSeverityAlarms(): cw.Alarm[];
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.
@@ -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, _c;
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
- (_c = this._highSeverityAlarms) === null || _c === void 0 ? void 0 : _c.push(alarm);
54
+ this._highSeverityAlarms.push(alarm);
55
55
  }
56
56
  addLowSeverityAlarm(_title, alarm) {
57
- var _a, _b, _c;
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
- (_c = this._lowSeverityAlarms) === null || _c === void 0 ? void 0 : _c.push(alarm);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9uaXRvcmluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBaUQ7QUFDakQsK0NBQXdDO0FBQ3hDLDJDQUF1QztBQUd2Qyw2Q0FBeUM7QUFZekM7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQWN2QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXlCLEVBQUU7O1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBRXZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx1QkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0Msb0VBQW9FO1lBQ3BFLGVBQWUsRUFBRSxPQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLGNBQWMsRUFDaEQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxFQUFFO1lBQ04sWUFBWSxFQUFFLE9BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsb0JBQW9CLEVBQ25ELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxFQUFFO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQzNDLElBQUksRUFDSix1QkFBdUIsQ0FDeEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxvQkFBb0IsQ0FBQyxLQUFhLEVBQUUsS0FBZTs7UUFDeEQsTUFBTSxxQkFBcUIsU0FBRyxJQUFJLENBQUMsWUFBWSwwQ0FBRSxZQUFZLENBQUM7UUFDOUQsSUFBSSxxQkFBcUIsRUFBRTtZQUN6QixLQUFLLENBQUMsY0FBYyxDQUFDO2dCQUNuQixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO2FBQ3hELENBQUMsQ0FBQztTQUNKO1FBQ0QsTUFBTSxrQkFBa0IsU0FBRyxJQUFJLENBQUMsWUFBWSwwQ0FBRSxrQkFBa0IsQ0FBQztRQUNqRSxJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLEtBQUssQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQ25DLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUNqQixLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQyxDQUNILENBQUM7UUFFRixNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtJQUN4QyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsTUFBYyxFQUFFLEtBQWU7O1FBQ3hELE1BQU0sdUJBQXVCLFNBQUcsSUFBSSxDQUFDLFlBQVksMENBQUUsY0FBYyxDQUFDO1FBQ2xFLElBQUksdUJBQXVCLEVBQUU7WUFDM0IsS0FBSyxDQUFDLGNBQWMsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQzthQUMxRCxDQUFDLENBQUM7U0FDSjtRQUNELE1BQU0sb0JBQW9CLFNBQUcsSUFBSSxDQUFDLFlBQVksMENBQUUsb0JBQW9CLENBQUM7UUFDckUsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixLQUFLLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFBLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtJQUN2QyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFlBQVksQ0FBQyxJQUFZLEVBQUUsR0FBVztRQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLHNCQUFTLENBQzFCLElBQUksRUFDSixZQUFZLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQzdDO1lBQ0UsR0FBRztZQUNILFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksU0FBUyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUE1R0QsZ0NBNEdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3cgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgV2F0Y2hmdWwgfSBmcm9tICdjZGstd2F0Y2hmdWwnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBbGFybUFjdGlvbnMgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgSU1vbml0b3JpbmcgfSBmcm9tICcuL2FwaSc7XG5pbXBvcnQgeyBXZWJDYW5hcnkgfSBmcm9tICcuL3dlYi1jYW5hcnknO1xuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgbW9uaXRvcmluZyBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvcmluZ1Byb3BzIHtcbiAgLyoqXG4gICAqIEFSTnMgb2YgYWxhcm0gYWN0aW9ucyB0byB0YWtlIGZvciB2YXJpb3VzIHNldmVyaXRpZXMuXG4gICAqL1xuICByZWFkb25seSBhbGFybUFjdGlvbnM/OiBBbGFybUFjdGlvbnM7XG59XG5cbi8qKlxuICogQ29uc3RydWN0IGh1YiBtb25pdG9yaW5nLlxuICpcbiAqIFRoaXMgY29uc3RydWN0IHVzZXMgY2RrLXdhdGNoZnVsIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBkYXNoYm9hcmQgYW5kIGFcbiAqIHNldCBvZiBzdGFuZGFyZCBhbGFybXMgZm9yIGNvbW1vbiByZXNvdXJjZXMuXG4gKlxuICogQ29tcG9uZW50cyBzaG91bGQgdXNlIHRoZSBBUElzIG9mIHRoaXMgbW9kdWxlIHRvIGFkZCB3YXRjaGZ1bCBtb25pdG9ycyxcbiAqIGFuZCBhZGQgY2FuYXJpZXMgYW5kIGFsYXJtcyBhcyBuZWVkZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25pdG9yaW5nIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSU1vbml0b3Jpbmcge1xuICBwcml2YXRlIGFsYXJtQWN0aW9ucz86IEFsYXJtQWN0aW9ucztcbiAgcHJpdmF0ZSBfaGlnaFNldmVyaXR5QWxhcm1zOiBjdy5BbGFybVtdO1xuICBwcml2YXRlIF9sb3dTZXZlcml0eUFsYXJtczogY3cuQWxhcm1bXTtcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBhdXRvbWF0aWMgbW9uaXRvcmluZyB0byBzdGFuZGFyZCByZXNvdXJjZXMuIE5vdGUgdGhhdFxuICAgKiB3YXRjaGZ1bCBhbGFybXMgYXJlIGFsd2F5cyB0cmVhdGVkIGFzIF9ub3JtYWxfIHNldmVyaXR5LiBZb3UgY2FuIGFkZFxuICAgKiBoaWdoLXNldmVyaXR5IGFsYXJtIHZpYSBgYWRkSGlnaFNldmVyaXR5QWxhcm0oKWAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd2F0Y2hmdWw6IFdhdGNoZnVsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGlnaFNldmVyaXR5RGFzaGJvYXJkOiBjdy5EYXNoYm9hcmQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1vbml0b3JpbmdQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuYWxhcm1BY3Rpb25zID0gcHJvcHMuYWxhcm1BY3Rpb25zO1xuXG4gICAgdGhpcy53YXRjaGZ1bCA9IG5ldyBXYXRjaGZ1bCh0aGlzLCAnV2F0Y2hmdWwnLCB7XG4gICAgICAvLyBhbGFybXMgdGhhdCBjb21lIGZyb20gd2F0Y2hmdWwgYXJlIGFsbCBjb25zaWRlcmVkIG5vcm1hbCBzZXZlcml0eVxuICAgICAgYWxhcm1BY3Rpb25Bcm5zOiB0aGlzLmFsYXJtQWN0aW9ucz8ubm9ybWFsU2V2ZXJpdHlcbiAgICAgICAgPyBbdGhpcy5hbGFybUFjdGlvbnMubm9ybWFsU2V2ZXJpdHldXG4gICAgICAgIDogW10sXG4gICAgICBhbGFybUFjdGlvbnM6IHRoaXMuYWxhcm1BY3Rpb25zPy5ub3JtYWxTZXZlcml0eUFjdGlvblxuICAgICAgICA/IFt0aGlzLmFsYXJtQWN0aW9ucy5ub3JtYWxTZXZlcml0eUFjdGlvbl1cbiAgICAgICAgOiBbXSxcbiAgICB9KTtcblxuICAgIHRoaXMuX2hpZ2hTZXZlcml0eUFsYXJtcyA9IFtdO1xuICAgIHRoaXMuX2xvd1NldmVyaXR5QWxhcm1zID0gW107XG5cbiAgICB0aGlzLmhpZ2hTZXZlcml0eURhc2hib2FyZCA9IG5ldyBjdy5EYXNoYm9hcmQoXG4gICAgICB0aGlzLFxuICAgICAgJ0hpZ2hTZXZlcml0eURhc2hib2FyZCdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBoaWdoLXNldmVyaXR5IGFsYXJtLiBJZiB0aGlzIGFsYXJtIGdvZXMgb2ZmLCB0aGUgYWN0aW9uIHNwZWNpZmllZCBpbiBgaGlnaFNldmVyaXR5QWxhcm1BY3Rpb25Bcm5gXG4gICAqIEBwYXJhbSBhbGFybVxuICAgKi9cbiAgcHVibGljIGFkZEhpZ2hTZXZlcml0eUFsYXJtKHRpdGxlOiBzdHJpbmcsIGFsYXJtOiBjdy5BbGFybSkge1xuICAgIGNvbnN0IGhpZ2hTZXZlcml0eUFjdGlvbkFybiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5oaWdoU2V2ZXJpdHk7XG4gICAgaWYgKGhpZ2hTZXZlcml0eUFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogaGlnaFNldmVyaXR5QWN0aW9uQXJuIH0pLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGhpZ2hTZXZlcml0eUFjdGlvbiA9IHRoaXMuYWxhcm1BY3Rpb25zPy5oaWdoU2V2ZXJpdHlBY3Rpb247XG4gICAgaWYgKGhpZ2hTZXZlcml0eUFjdGlvbikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oaGlnaFNldmVyaXR5QWN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmhpZ2hTZXZlcml0eURhc2hib2FyZC5hZGRXaWRnZXRzKFxuICAgICAgbmV3IGN3LkFsYXJtV2lkZ2V0KHtcbiAgICAgICAgYWxhcm0sXG4gICAgICAgIHRpdGxlLFxuICAgICAgICB3aWR0aDogMjQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLl9oaWdoU2V2ZXJpdHlBbGFybXM/LnB1c2goYWxhcm0pO1xuICB9XG5cbiAgcHVibGljIGFkZExvd1NldmVyaXR5QWxhcm0oX3RpdGxlOiBzdHJpbmcsIGFsYXJtOiBjdy5BbGFybSkge1xuICAgIGNvbnN0IG5vcm1hbFNldmVyaXR5QWN0aW9uQXJuID0gdGhpcy5hbGFybUFjdGlvbnM/Lm5vcm1hbFNldmVyaXR5O1xuICAgIGlmIChub3JtYWxTZXZlcml0eUFjdGlvbkFybikge1xuICAgICAgYWxhcm0uYWRkQWxhcm1BY3Rpb24oe1xuICAgICAgICBiaW5kOiAoKSA9PiAoeyBhbGFybUFjdGlvbkFybjogbm9ybWFsU2V2ZXJpdHlBY3Rpb25Bcm4gfSksXG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3Qgbm9ybWFsU2V2ZXJpdHlBY3Rpb24gPSB0aGlzLmFsYXJtQWN0aW9ucz8ubm9ybWFsU2V2ZXJpdHlBY3Rpb247XG4gICAgaWYgKG5vcm1hbFNldmVyaXR5QWN0aW9uKSB7XG4gICAgICBhbGFybS5hZGRBbGFybUFjdGlvbihub3JtYWxTZXZlcml0eUFjdGlvbik7XG4gICAgfVxuICAgIHRoaXMuX2xvd1NldmVyaXR5QWxhcm1zPy5wdXNoKGFsYXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGlnaFNldmVyaXR5QWxhcm1zKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5faGlnaFNldmVyaXR5QWxhcm1zXTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG93U2V2ZXJpdHlBbGFybXMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9sb3dTZXZlcml0eUFsYXJtc107XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNhbmFyeSB0aGF0IHBpbmdzIGEgY2VydGFpbiBVUkwgYW5kIHJhaXNlcyBhbiBhbGFybSBpbiBjYXNlIHRoZSBVUkxcbiAgICogcmVzcG9uZHMgd2l0aCBhbiBlcnJvciBvdmVyIDgwJSBvZiB0aGUgdGltZXMuXG4gICAqXG4gICAqIENhbmFyeSBmYWlsdXJlcyBhcmUgYWx3YXlzIGNvbnNpZGVyZWQgaGlnaC1zZXZlcml0eSAoYXQgdGhpcyBwb2ludCkuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBjYW5hcnlcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMIHRvIHBpbmdcbiAgICovXG4gIHB1YmxpYyBhZGRXZWJDYW5hcnkobmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZykge1xuICAgIGNvbnN0IGNhbmFyeSA9IG5ldyBXZWJDYW5hcnkoXG4gICAgICB0aGlzLFxuICAgICAgYFdlYkNhbmFyeSR7bmFtZS5yZXBsYWNlKC9bXkEtWjAtOV0vZ2ksICcnKX1gLFxuICAgICAge1xuICAgICAgICB1cmwsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBuYW1lLFxuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLmFkZEhpZ2hTZXZlcml0eUFsYXJtKGAke25hbWV9IENhbmFyeWAsIGNhbmFyeS5hbGFybSk7XG4gIH1cbn1cbiJdfQ==
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.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2Utc291cmNlcy9ucG1qcy9jYW5hcnkvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1hLFFBQUEsaUJBQWlCLEdBQUcsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBFbnZpcm9ubWVudCB7XG4gIFBBQ0tBR0VfTkFNRSA9ICdQQUNLQUdFX05BTUUnLFxuICBQQUNLQUdFX0NBTkFSWV9CVUNLRVRfTkFNRSA9ICdQQUNLQUdFX0NBTkFSWV9CVUNLRVRfTkFNRScsXG4gIENPTlNUUlVDVF9IVUJfQkFTRV9VUkwgPSAnQ09OU1RSVUNUX0hVQl9CQVNFX1VSTCcsXG59XG5cbmV4cG9ydCBjb25zdCBNRVRSSUNTX05BTUVTUEFDRSA9ICdDb25zdHJ1Y3RIdWIvUGFja2FnZUNhbmFyeSc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIE1ldHJpY05hbWUge1xuICAvKipcbiAgICogVGhlIHRpbWUgZWxhcHNlZCBzaW5jZSBhIHBhY2thZ2Ugd2FzIHB1Ymxpc2hlZCB0byBucG1qcy5jb20sIHdoaWxlIGl0IGhhc1xuICAgKiBub3QgYmVlbiBkZXRlY3RlZCBpbiB0aGUgY2F0YWxvZyBieSB0aGUgcGFja2FnZSBjYW5hcnkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljcyBpcyBvbmx5IGVtaXR0ZWQgdW50aWwgdGhlIHBhY2thZ2UgaGFzIGJlZW4gZGV0ZWN0ZWQuXG4gICAqL1xuICBEV0VMTF9USU1FID0gJ0R3ZWxsVGltZScsXG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGl0IHRvb2sgYmV0d2VlbiBhIHBhY2thZ2UncyBwdWJsaWNhdGlvbiB0byBucG1qcy5jb20gYW5kIHdoZW4gdGhlXG4gICAqIHBhY2thZ2UgY2FuYXJ5IGRldGVjdGVkIHRoZSBwYWNrYWdlIGFzIGF2YWlsYWJsZSBpbiB0aGUgY2F0YWxvZy5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgbm90IGVtaXR0ZWQgdW50aWwgdGhlIHBhY2thZ2UgaGFzIGFjdHVhbGx5IGJlZW4gZGV0ZWN0ZWQuXG4gICAqL1xuICBUSU1FX1RPX0NBVEFMT0cgPSAnVGltZVRvQ2F0YWxvZycsXG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgdHJhY2tlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZVxuICAgKiBwYWNrYWdlIGNhbmFyeSBleGVjdXRpb24gdGhhdCBwcm9kdWNlZCB0aGUgZGF0YSBwb2ludC5cbiAgICovXG4gIFRSQUNLRURfVkVSU0lPTl9DT1VOVCA9ICdUcmFja2VkVmVyc2lvbkNvdW50Jyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gT2JqZWN0S2V5IHtcbiAgU1RBVEVfUFJFRklYID0gJ3BhY2thZ2UtY2FuYXJ5LycsXG4gIFNUQVRFX1NVRkZJWCA9ICcuc3RhdGUuanNvbicsXG59XG4iXX0=
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
  }