construct-hub 0.4.8 → 0.4.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. package/.jsii +2 -2
  2. package/changelog.md +1 -1
  3. package/lib/construct-hub.js +1 -1
  4. package/lib/package-sources/code-artifact.js +1 -1
  5. package/lib/package-sources/codeartifact/code-artifact-forwarder.lambda.bundle/index.js +0 -1
  6. package/lib/package-sources/codeartifact/code-artifact-forwarder.lambda.bundle/index.js.map +2 -2
  7. package/lib/package-sources/codeartifact/code-artifact-forwarder.lambda.d.ts.map +1 -1
  8. package/lib/package-sources/codeartifact/code-artifact-forwarder.lambda.js +1 -2
  9. package/lib/package-sources/npmjs/canary/constants.d.ts +7 -1
  10. package/lib/package-sources/npmjs/canary/constants.d.ts.map +1 -1
  11. package/lib/package-sources/npmjs/canary/constants.js +1 -1
  12. package/lib/package-sources/npmjs/canary/index.d.ts +6 -0
  13. package/lib/package-sources/npmjs/canary/index.d.ts.map +1 -1
  14. package/lib/package-sources/npmjs/canary/index.js +15 -1
  15. package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.bundle/index.js +106 -54
  16. package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.bundle/index.js.map +2 -2
  17. package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.d.ts +7 -0
  18. package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.d.ts.map +1 -1
  19. package/lib/package-sources/npmjs/canary/npmjs-package-canary.lambda.js +142 -77
  20. package/lib/package-sources/npmjs.d.ts.map +1 -1
  21. package/lib/package-sources/npmjs.js +21 -2
  22. package/lib/package-tag/index.js +3 -3
  23. package/lib/package-tag-group/index.js +2 -2
  24. package/lib/preload-file/index.js +1 -1
  25. package/lib/s3/storage.js +1 -1
  26. package/lib/spdx-license.js +1 -1
  27. package/package.json +1 -1
  28. package/releasetag.txt +1 -1
  29. package/version.txt +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"code-artifact-forwarder.lambda.d.ts","sourceRoot":"","sources":["../../../src/package-sources/codeartifact/code-artifact-forwarder.lambda.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkB5D,eAAO,MAAM,OAAO,+PA6InB,CAAC;AAEF;;GAEG;AACH,UAAU,kBAAkB;IAC1B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EACxB,YAAY,GACZ,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,CAAC;IAEf;;;;OAIG;IACH,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAExC,QAAQ,CAAC,OAAO,EAAE;QAChB;;;WAGG;QACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAE7B;;WAEG;QACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAE/B;;WAEG;QACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAElC;;;WAGG;QACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAE/B;;;WAGG;QACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;KACjC,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAE1D;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC"}
1
+ {"version":3,"file":"code-artifact-forwarder.lambda.d.ts","sourceRoot":"","sources":["../../../src/package-sources/codeartifact/code-artifact-forwarder.lambda.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkB5D,eAAO,MAAM,OAAO,+PA4InB,CAAC;AAEF;;GAEG;AACH,UAAU,kBAAkB;IAC1B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EACxB,YAAY,GACZ,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,CAAC;IAEf;;;;OAIG;IACH,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAExC,QAAQ,CAAC,OAAO,EAAE;QAChB;;;WAGG;QACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAE7B;;WAEG;QACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAE/B;;WAEG;QACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAElC;;;WAGG;QACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAE/B;;;WAGG;QACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;KACjC,CAAC;IAEF;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAE1D;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC"}
@@ -105,9 +105,8 @@ exports.handler = aws_embedded_metrics_1.metricScope((metrics) => async (event,
105
105
  },
106
106
  },
107
107
  MessageBody: JSON.stringify(message),
108
- MessageDeduplicationId: event.detail.eventDeduplicationId,
109
108
  QueueUrl: queueUrl,
110
109
  })
111
110
  .promise();
112
111
  });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1hcnRpZmFjdC1mb3J3YXJkZXIubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhY2thZ2Utc291cmNlcy9jb2RlYXJ0aWZhY3QvY29kZS1hcnRpZmFjdC1mb3J3YXJkZXIubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUF5RDtBQUd6RCx1RkFBOEU7QUFDOUUsMEZBQW9GO0FBQ3BGLDhEQUE4RDtBQUM5RCw4RUFBb0U7QUFDcEUsMEZBQXlFO0FBQ3pFLHNGQUE0RTtBQUM1RSx1RUFNbUM7QUFFbkMsTUFBTSxXQUFXLEdBQUcsMkNBQW9ELENBQUM7QUFFNUQsUUFBQSxPQUFPLEdBQUcsa0NBQVcsQ0FDaEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLEtBQUssRUFDSCxLQUErRCxFQUMvRCxPQUFnQixFQUNoQixFQUFFOztJQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE1BQU0sYUFBYSxHQUFHLDhCQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEQsTUFBTSxRQUFRLEdBQUcsOEJBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QyxPQUFPLENBQUMsWUFBWSxDQUFDLDJDQUFpQixDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNwQixDQUFDLGdEQUFzQixDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXO1FBQ2xELENBQUMsK0NBQXFCLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDaEQsQ0FBQyxtREFBeUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYztLQUN6RCxDQUFDLENBQUM7SUFFSCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFn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QUM7UUFDWCxpQkFBaUIsRUFBRTtZQUNqQixjQUFjLEVBQUU7Z0JBQ2QsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsWUFBWTthQUNsQztZQUNELGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxZQUFZO2FBQ2xDO1lBQ0QsZUFBZSxFQUFFO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixXQUFXLEVBQUUsT0FBTyxDQUFDLGFBQWE7YUFDbkM7U0FDRjtRQUNELFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUNwQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLG9CQUFvQjtRQUN6RCxRQUFRLEVBQUUsUUFBUTtLQUNuQixDQUFDO1NBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZixDQUFDLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ldHJpY1Njb3BlLCBVbml0IH0gZnJvbSAnYXdzLWVtYmVkZGVkLW1ldHJpY3MnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0LCBFdmVudEJyaWRnZUV2ZW50IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5cbmltcG9ydCB7IERlbnlMaXN0Q2xpZW50IH0gZnJvbSAnLi4vLi4vYmFja2VuZC9kZW55LWxpc3QvY2xpZW50LmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgTGljZW5zZUxpc3RDbGllbnQgfSBmcm9tICcuLi8uLi9iYWNrZW5kL2xpY2Vuc2UtbGlzdC9jbGllbnQubGFtYmRhLXNoYXJlZCc7XG5pbXBvcnQgKiBhcyBhd3MgZnJvbSAnLi4vLi4vYmFja2VuZC9zaGFyZWQvYXdzLmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgcmVxdWlyZUVudiB9IGZyb20gJy4uLy4uL2JhY2tlbmQvc2hhcmVkL2Vudi5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7IGludGVncml0eSB9IGZyb20gJy4uLy4uL2JhY2tlbmQvc2hhcmVkL2ludGVncml0eS5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7IGV4dHJhY3RPYmplY3RzIH0gZnJvbSAnLi4vLi4vYmFja2VuZC9zaGFyZWQvdGFyYmFsbC5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7XG4gIE1FVFJJQ1NfTkFNRVNQQUNFLFxuICBNZXRyaWNOYW1lLFxuICBET01BSU5fT1dORVJfRElNRU5TSU9OLFxuICBET01BSU5fTkFNRV9ESU1FTlNJT04sXG4gIFJFUE9TSVRPUllfTkFNRV9ESU1FTlNJT04sXG59IGZyb20gJy4vY29uc3RhbnRzLmxhbWJkYS1zaGFyZWQnO1xuXG5jb25zdCBERVRBSUxfVFlQRSA9ICdDb2RlQXJ0aWZhY3QgUGFja2FnZSBWZXJzaW9uIFN0YXRlIENoYW5nZScgYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gbWV0cmljU2NvcGUoXG4gIChtZXRyaWNzKSA9PlxuICAgIGFzeW5jIChcbiAgICAgIGV2ZW50OiBFdmVudEJyaWRnZUV2ZW50PHR5cGVvZiBERVRBSUxfVFlQRSwgQ29kZUFydGlmYWN0RGV0YWlsPixcbiAgICAgIGNvbnRleHQ6IENvbnRleHRcbiAgICApID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGBFdmVudDogJHtKU09OLnN0cmluZ2lmeShldmVudCwgbnVsbCwgMil9YCk7XG5cbiAgICAgIGNvbnN0IHN0YWdpbmdCdWNrZXQgPSByZXF1aXJlRW52KCdCVUNLRVRfTkFNRScpO1xuICAgICAgY29uc3QgcXVldWVVcmwgPSByZXF1aXJlRW52KCdRVUVVRV9VUkwnKTtcblxuICAgICAgbWV0cmljcy5zZXROYW1lc3BhY2UoTUVUUklDU19OQU1FU1BBQ0UpO1xuICAgICAgbWV0cmljcy5zZXREaW1lbnNpb25zKHtcbiAgICAgICAgW0RPTUFJTl9PV05FUl9ESU1FTlNJT05dOiBldmVudC5kZXRhaWwuZG9tYWluT3duZXIsXG4gICAgICAgIFtET01BSU5fTkFNRV9ESU1FTlNJT05dOiBldmVudC5kZXRhaWwuZG9tYWluTmFtZSxcbiAgICAgICAgW1JFUE9TSVRPUllfTkFNRV9ESU1FTlNJT05dOiBldmVudC5kZXRhaWwucmVwb3NpdG9yeU5hbWUsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBldmVudC5kZXRhaWwucGFja2FnZU5hbWVzcGFjZVxuICAgICAgICA/IGBAJHtldmVudC5kZXRhaWwucGFja2FnZU5hbWVzcGFjZX0vJHtldmVudC5kZXRhaWwucGFja2FnZU5hbWV9YFxuICAgICAgICA6IGV2ZW50LmRldGFpbC5wYWNrYWdlTmFtZTtcblxuICAgICAgaWYgKGV2ZW50LmRldGFpbC5vcGVyYXRpb25UeXBlID09PSAnRGVsZXRlZCcpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYE9wZXJhdGlvbiB0eXBlIGlzIFwiRGVsZXRlZFwiIGZvciAke3BhY2thZ2VOYW1lfUAke2V2ZW50LmRldGFpbC5wYWNrYWdlVmVyc2lvbn1gXG4gICAgICAgICk7XG4gICAgICAgIG1ldHJpY3MucHV0TWV0cmljKE1ldHJpY05hbWUuREVMRVRFRF9DT1VOVCwgMSwgVW5pdC5Db3VudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVueUxpc3QgPSBhd2FpdCBEZW55TGlzdENsaWVudC5uZXdDbGllbnQoKTtcbiAgICAgIGNvbnN0IGRlbmllZCA9IGRlbnlMaXN0Lmxvb2t1cChwYWNrYWdlTmFtZSwgZXZlbnQuZGV0YWlsLnBhY2thZ2VWZXJzaW9uKTtcbiAgICAgIGlmIChkZW5pZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYFBhY2thZ2UgJHtwYWNrYWdlTmFtZX1AJHtcbiAgICAgICAgICAgIGV2ZW50LmRldGFpbC5wYWNrYWdlVmVyc2lvblxuICAgICAgICAgIH0gZGVuaWVkOiAke0pTT04uc3RyaW5naWZ5KGRlbmllZCwgbnVsbCwgMil9YFxuICAgICAgICApO1xuICAgICAgICBtZXRyaWNzLnB1dE1ldHJpYyhNZXRyaWNOYW1lLkRFTllfTElTVEVEX0NPVU5ULCAxLCBVbml0LkNvdW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGFzc2V0LCBwYWNrYWdlVmVyc2lvblJldmlzaW9uIH0gPSBhd2FpdCBhd3NcbiAgICAgICAgLmNvZGVBcnRpZmFjdCgpXG4gICAgICAgIC5nZXRQYWNrYWdlVmVyc2lvbkFzc2V0KHtcbiAgICAgICAgICBhc3NldDogJ3BhY2thZ2UudGd6JywgLy8gQWx3YXlzIG5hbWVkIHRoaXMgd2F5IGZvciBucG0gcGFja2FnZXMhXG4gICAgICAgICAgZG9tYWluT3duZXI6IGV2ZW50LmRldGFpbC5kb21haW5Pd25lcixcbiAgICAgICAgICBkb21haW46IGV2ZW50LmRldGFpbC5kb21haW5OYW1lLFxuICAgICAgICAgIHJlcG9zaXRvcnk6IGV2ZW50LmRldGFpbC5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICBmb3JtYXQ6IGV2ZW50LmRldGFpbC5wYWNrYWdlRm9ybWF0LFxuICAgICAgICAgIG5hbWVzcGFjZTogZXZlbnQuZGV0YWlsLnBhY2thZ2VOYW1lc3BhY2UsXG4gICAgICAgICAgcGFja2FnZTogZXZlbnQuZGV0YWlsLnBhY2thZ2VOYW1lLFxuICAgICAgICAgIHBhY2thZ2VWZXJzaW9uOiBldmVudC5kZXRhaWwucGFja2FnZVZlcnNpb24sXG4gICAgICAgIH0pXG4gICAgICAgIC5wcm9taXNlKCk7XG4gICAgICBjb25zdCB0YXJiYWxsID0gQnVmZmVyLmZyb20oYXNzZXQhIGFzIGFueSk7XG5cbiAgICAgIGNvbnN0IHsgYXNzZW1ibHlKc29uLCBwYWNrYWdlSnNvbiB9ID0gYXdhaXQgZXh0cmFjdE9iamVjdHModGFyYmFsbCwge1xuICAgICAgICBhc3NlbWJseUpzb246IHsgcGF0aDogJ3BhY2thZ2UvLmpzaWknIH0sXG4gICAgICAgIHBhY2thZ2VKc29uOiB7IHBhdGg6ICdwYWNrYWdlL3BhY2thZ2UuanNvbicsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICB9KTtcbiAgICAgIG1ldHJpY3MucHV0TWV0cmljKFxuICAgICAgICBNZXRyaWNOYW1lLk5PVF9KU0lJX0VOQUJMRURfQ09VTlQsXG4gICAgICAgIGFzc2VtYmx5SnNvbiA/IDAgOiAxLFxuICAgICAgICBVbml0LkNvdW50XG4gICAgICApO1xuICAgICAgaWYgKGFzc2VtYmx5SnNvbiA9PSBudWxsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBQYWNrYWdlIFwiJHtwYWNrYWdlTmFtZX1AJHtldmVudC5kZXRhaWwucGFja2FnZVZlcnNpb259XCIgZG9lcyBub3QgY29udGFpbiBhIC5qc2lpIGFzc2VtYmx5YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbi50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICBjb25zdCBsaWNlbnNlTGlzdCA9IGF3YWl0IExpY2Vuc2VMaXN0Q2xpZW50Lm5ld0NsaWVudCgpO1xuICAgICAgY29uc3QgZWxpZ2libGVMaWNlbnNlID0gbGljZW5zZUxpc3QubG9va3VwKFxuICAgICAgICBtZXRhZGF0YS5saWNlbnNlID8/ICdVTkxJQ0VOU0VEJ1xuICAgICAgKTtcbiAgICAgIG1ldHJpY3MucHV0TWV0cmljKFxuICAgICAgICBNZXRyaWNOYW1lLklORUxJR0lCTEVfTElDRU5TRSxcbiAgICAgICAgZWxpZ2libGVMaWNlbnNlID8gMCA6IDEsXG4gICAgICAgIFVuaXQuQ291bnRcbiAgICAgICk7XG4gICAgICBpZiAoIWVsaWdpYmxlTGljZW5zZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgUGFja2FnZSBcIiR7cGFja2FnZU5hbWV9QCR7XG4gICAgICAgICAgICBldmVudC5kZXRhaWwucGFja2FnZVZlcnNpb25cbiAgICAgICAgICB9XCIgZG9lcyBub3QgdXNlIGFsbG93LWxpc3RlZCBsaWNlbnNlOiAke1xuICAgICAgICAgICAgbWV0YWRhdGEubGljZW5zZSA/PyAnVU5MSUNFTlNFRCdcbiAgICAgICAgICB9YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWdpbmdLZXkgPSBgJHtwYWNrYWdlTmFtZX0vJHtldmVudC5kZXRhaWwucGFja2FnZVZlcnNpb259LyR7cGFja2FnZVZlcnNpb25SZXZpc2lvbn0vcGFja2FnZS50Z3pgO1xuICAgICAgYXdhaXQgYXdzXG4gICAgICAgIC5zMygpXG4gICAgICAgIC5wdXRPYmplY3Qoe1xuICAgICAgICAgIEJ1Y2tldDogc3RhZ2luZ0J1Y2tldCxcbiAgICAgICAgICBLZXk6IHN0YWdpbmdLZXksXG4gICAgICAgICAgQm9keTogYXNzZXQsXG4gICAgICAgICAgQ29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuICAgICAgICAgIE1ldGFkYXRhOiB7XG4gICAgICAgICAgICAnTGFtYmRhLUxvZy1Hcm91cCc6IGNvbnRleHQubG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgJ0xhbWJkYS1Mb2ctU3RyZWFtJzogY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgICAgICAgICAgJ0xhbWJkYS1SdW4tSWQnOiBjb250ZXh0LmF3c1JlcXVlc3RJZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAucHJvbWlzZSgpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gaW50ZWdyaXR5KFxuICAgICAgICB7XG4gICAgICAgICAgdGFyYmFsbFVyaTogYHMzOi8vJHtzdGFnaW5nQnVja2V0fS8ke3N0YWdpbmdLZXl9YCxcbiAgICAgICAgICBtZXRhZGF0YTogeyByZXNvdXJjZXM6IGV2ZW50LnJlc291cmNlcy5qb2luKCcsICcpIH0sXG4gICAgICAgICAgdGltZTogZXZlbnQudGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgdGFyYmFsbFxuICAgICAgKTtcbiAgICAgIHJldHVybiBhd3NcbiAgICAgICAgLnNxcygpXG4gICAgICAgIC5zZW5kTWVzc2FnZSh7XG4gICAgICAgICAgTWVzc2FnZUF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIEFXU19SRVFVRVNUX0lEOiB7XG4gICAgICAgICAgICAgIERhdGFUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgICAgICAgU3RyaW5nVmFsdWU6IGNvbnRleHQuYXdzUmVxdWVzdElkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIExPR19HUk9VUF9OQU1FOiB7XG4gICAgICAgICAgICAgIERhdGFUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgICAgICAgU3RyaW5nVmFsdWU6IGNvbnRleHQubG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIExPR19TVFJFQU1fTkFNRToge1xuICAgICAgICAgICAgICBEYXRhVHlwZTogJ1N0cmluZycsXG4gICAgICAgICAgICAgIFN0cmluZ1ZhbHVlOiBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgTWVzc2FnZUJvZHk6IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpLFxuICAgICAgICAgIE1lc3NhZ2VEZWR1cGxpY2F0aW9uSWQ6IGV2ZW50LmRldGFpbC5ldmVudERlZHVwbGljYXRpb25JZCxcbiAgICAgICAgICBRdWV1ZVVybDogcXVldWVVcmwsXG4gICAgICAgIH0pXG4gICAgICAgIC5wcm9taXNlKCk7XG4gICAgfVxuKTtcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jb2RlYXJ0aWZhY3QvbGF0ZXN0L3VnL3NlcnZpY2UtZXZlbnQtZm9ybWF0LWV4YW1wbGUuaHRtbFxuICovXG5pbnRlcmZhY2UgQ29kZUFydGlmYWN0RGV0YWlsIHtcbiAgLyoqXG4gICAqIFRoZSBkb21haW4gdGhhdCBjb250YWlucyB0aGUgcmVwb3NpdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBwYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIGFjY291bnQgSUQgb2YgdGhlIG93bmVyIG9mIHRoZSBkb21haW4uXG4gICAqL1xuICByZWFkb25seSBkb21haW5Pd25lcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBwYWNrYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvcm1hdCBvZiB0aGUgcGFja2FnZSB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlRm9ybWF0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIHBhY2thZ2UgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU5hbWVzcGFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHBhY2thZ2UgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBwYWNrYWdlIHZlcnNpb24gd2hlbiB0aGUgZXZlbnQgd2FzIHRyaWdnZXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VWZXJzaW9uU3RhdGU6XG4gICAgfCAnVW5maW5pc2hlZCdcbiAgICB8ICdQdWJsaXNoZWQnXG4gICAgfCAnVW5saXN0ZWQnXG4gICAgfCAnQXJjaGl2ZWQnXG4gICAgfCAnRGlzcG9zZWQnO1xuXG4gIC8qKlxuICAgKiBBIHZhbHVlIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgc3RhdGUgb2YgdGhlIGFzc2V0cyBhbmQgbWV0YWRhdGEgb2YgdGhlIHBhY2thZ2UgdmVyc2lvbiB3aGVuIHRoZSBldmVudCB3YXNcbiAgICogdHJpZ2dlcmVkLiBJZiB0aGUgcGFja2FnZSB2ZXJzaW9uIGlzIG1vZGlmaWVkIChmb3IgZXhhbXBsZSwgYnkgYWRkaW5nIGFub3RoZXIgSkFSIGZpbGUgdG8gYSBNYXZlbiBwYWNrYWdlKSwgdGhlXG4gICAqIHBhY2thZ2VWZXJzaW9uUmV2aXNpb24gY2hhbmdlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VWZXJzaW9uUmV2aXNpb246IHN0cmluZztcblxuICByZWFkb25seSBjaGFuZ2VzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBhc3NldHMgYWRkZWQgdG8gYSBwYWNrYWdlIHRoYXQgdHJpZ2dlcmVkIGFuIGV2ZW50LiBFeGFtcGxlcyBvZiBhbiBhc3NldCBhcmUgYSBNYXZlbiBKQVIgZmlsZSBvciBhXG4gICAgICogUHl0aG9uIHdoZWVsLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFzc2V0c0FkZGVkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIGFzc2V0cyByZW1vdmVkIGZyb20gYSBwYWNrYWdlIHRoYXQgdHJpZ2dlcmVkIGFuIGV2ZW50LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFzc2V0c1JlbW92ZWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2YgYXNzZXRzIG1vZGlmaWVkIGluIHRoZSBwYWNrYWdlIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudC5cbiAgICAgKi9cbiAgICByZWFkb25seSBtZXRhZGF0YVVwZGF0ZWQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBIGJvb2xlYW4gdmFsdWUgdGhhdCBpcyBzZXQgdG8gdHJ1ZSBpZiB0aGUgZXZlbnQgaW5jbHVkZXMgbW9kaWZpZWQgcGFja2FnZS1sZXZlbCBtZXRhZGF0YS4gRm9yIGV4YW1wbGUsIGFuIGV2ZW50XG4gICAgICogbWlnaHQgbW9kaWZ5IGEgTWF2ZW4gcG9tLnhtbCBmaWxlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFzc2V0c1VwZGF0ZWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEEgYm9vbGVhbiB2YWx1ZSB0aGF0IGlzIHNldCB0byB0cnVlIGlmIHRoZSBldmVudCdzIHBhY2thZ2VWZXJzaW9uU3RhdHVzIGlzIG1vZGlmaWVkKGZvciBleGFtcGxlLCBpZlxuICAgICAqIHBhY2thZ2VWZXJzaW9uU3RhdHVzIGNoYW5nZXMgZnJvbSBVbmZpbmlzaGVkIHRvIFB1Ymxpc2hlZCkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlZDogYm9vbGVhbjtcbiAgfTtcblxuICAvKipcbiAgICogRGVzY3JpYmVzIHRoZSBoaWdoLWxldmVsIHR5cGUgb2YgdGhlIHBhY2thZ2UgdmVyc2lvbiBjaGFuZ2UuXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25UeXBlOiAnQ3JlYXRlZCcgfCAnVXBkYXRlZCcgfCAnRGVsZXRlZCc7XG5cbiAgLyoqXG4gICAqIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgYW4gZXZlbnQgbnVtYmVyIGZvciBhIHBhY2thZ2UuIEVhY2ggZXZlbnQgb24gYSBwYWNrYWdlIGluY3JlbWVudHMgdGhlIHNlcXVlbmNlTnVtYmVyIHNvXG4gICAqIGV2ZW50cyBjYW4gYmUgYXJyYW5nZWQgc2VxdWVudGlhbGx5LiBBbiBldmVudCBjYW4gaW5jcmVtZW50IHRoZSBzZXF1ZW5jZU51bWJlciBieSBhbnkgaW50ZWdlciBudW1iZXIuXG4gICAqL1xuICByZWFkb25seSBzZXF1ZW5jZU51bWJlcjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBbiBJRCB1c2VkIHRvIGRpZmZlcmVudGlhdGUgZHVwbGljYXRlIEV2ZW50QnJpZGdlIGV2ZW50cy4gSW4gcmFyZSBjYXNlcywgRXZlbnRCcmlkZ2UgbWlnaHQgdHJpZ2dlciB0aGUgc2FtZSBydWxlXG4gICAqIG1vcmUgdGhhbiBvbmNlIGZvciBhIHNpbmdsZSBldmVudCBvciBzY2hlZHVsZWQgdGltZS4gT3IsIGl0IG1pZ2h0IGludm9rZSB0aGUgc2FtZSB0YXJnZXQgbW9yZSB0aGFuIG9uY2UgZm9yIGEgZ2l2ZW5cbiAgICogdHJpZ2dlcmVkIHJ1bGUuXG4gICAqL1xuICByZWFkb25seSBldmVudERlZHVwbGljYXRpb25JZDogc3RyaW5nO1xufVxuIl19
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1hcnRpZmFjdC1mb3J3YXJkZXIubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhY2thZ2Utc291cmNlcy9jb2RlYXJ0aWZhY3QvY29kZS1hcnRpZmFjdC1mb3J3YXJkZXIubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUF5RDtBQUd6RCx1RkFBOEU7QUFDOUUsMEZBQW9GO0FBQ3BGLDhEQUE4RDtBQUM5RCw4RUFBb0U7QUFDcEUsMEZBQXlFO0FBQ3pFLHNGQUE0RTtBQUM1RSx1RUFNbUM7QUFFbkMsTUFBTSxXQUFXLEdBQUcsMkNBQW9ELENBQUM7QUFFNUQsUUFBQSxPQUFPLEdBQUcsa0NBQVcsQ0FDaEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLEtBQUssRUFDSCxLQUErRCxFQUMvRCxPQUFnQixFQUNoQixFQUFFOztJQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE1BQU0sYUFBYSxHQUFHLDhCQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEQsTUFBTSxRQUFRLEdBQUcsOEJBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QyxPQUFPLENBQUMsWUFBWSxDQUFDLDJDQUFpQixDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNwQixDQUFDLGdEQUFzQixDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXO1FBQ2xELENBQUMsK0NBQXFCLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVU7UUFDaEQsQ0FBQyxtREFBeUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYztLQUN6RCxDQUFDLENBQUM7SUFFSCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFn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QUM7UUFDWCxpQkFBaUIsRUFBRTtZQUNqQixjQUFjLEVBQUU7Z0JBQ2QsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsWUFBWTthQUNsQztZQUNELGNBQWMsRUFBRTtnQkFDZCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxZQUFZO2FBQ2xDO1lBQ0QsZUFBZSxFQUFFO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixXQUFXLEVBQUUsT0FBTyxDQUFDLGFBQWE7YUFDbkM7U0FDRjtRQUNELFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztRQUNwQyxRQUFRLEVBQUUsUUFBUTtLQUNuQixDQUFDO1NBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZixDQUFDLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ldHJpY1Njb3BlLCBVbml0IH0gZnJvbSAnYXdzLWVtYmVkZGVkLW1ldHJpY3MnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0LCBFdmVudEJyaWRnZUV2ZW50IH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5cbmltcG9ydCB7IERlbnlMaXN0Q2xpZW50IH0gZnJvbSAnLi4vLi4vYmFja2VuZC9kZW55LWxpc3QvY2xpZW50LmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgTGljZW5zZUxpc3RDbGllbnQgfSBmcm9tICcuLi8uLi9iYWNrZW5kL2xpY2Vuc2UtbGlzdC9jbGllbnQubGFtYmRhLXNoYXJlZCc7XG5pbXBvcnQgKiBhcyBhd3MgZnJvbSAnLi4vLi4vYmFja2VuZC9zaGFyZWQvYXdzLmxhbWJkYS1zaGFyZWQnO1xuaW1wb3J0IHsgcmVxdWlyZUVudiB9IGZyb20gJy4uLy4uL2JhY2tlbmQvc2hhcmVkL2Vudi5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7IGludGVncml0eSB9IGZyb20gJy4uLy4uL2JhY2tlbmQvc2hhcmVkL2ludGVncml0eS5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7IGV4dHJhY3RPYmplY3RzIH0gZnJvbSAnLi4vLi4vYmFja2VuZC9zaGFyZWQvdGFyYmFsbC5sYW1iZGEtc2hhcmVkJztcbmltcG9ydCB7XG4gIE1FVFJJQ1NfTkFNRVNQQUNFLFxuICBNZXRyaWNOYW1lLFxuICBET01BSU5fT1dORVJfRElNRU5TSU9OLFxuICBET01BSU5fTkFNRV9ESU1FTlNJT04sXG4gIFJFUE9TSVRPUllfTkFNRV9ESU1FTlNJT04sXG59IGZyb20gJy4vY29uc3RhbnRzLmxhbWJkYS1zaGFyZWQnO1xuXG5jb25zdCBERVRBSUxfVFlQRSA9ICdDb2RlQXJ0aWZhY3QgUGFja2FnZSBWZXJzaW9uIFN0YXRlIENoYW5nZScgYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gbWV0cmljU2NvcGUoXG4gIChtZXRyaWNzKSA9PlxuICAgIGFzeW5jIChcbiAgICAgIGV2ZW50OiBFdmVudEJyaWRnZUV2ZW50PHR5cGVvZiBERVRBSUxfVFlQRSwgQ29kZUFydGlmYWN0RGV0YWlsPixcbiAgICAgIGNvbnRleHQ6IENvbnRleHRcbiAgICApID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGBFdmVudDogJHtKU09OLnN0cmluZ2lmeShldmVudCwgbnVsbCwgMil9YCk7XG5cbiAgICAgIGNvbnN0IHN0YWdpbmdCdWNrZXQgPSByZXF1aXJlRW52KCdCVUNLRVRfTkFNRScpO1xuICAgICAgY29uc3QgcXVldWVVcmwgPSByZXF1aXJlRW52KCdRVUVVRV9VUkwnKTtcblxuICAgICAgbWV0cmljcy5zZXROYW1lc3BhY2UoTUVUUklDU19OQU1FU1BBQ0UpO1xuICAgICAgbWV0cmljcy5zZXREaW1lbnNpb25zKHtcbiAgICAgICAgW0RPTUFJTl9PV05FUl9ESU1FTlNJT05dOiBldmVudC5kZXRhaWwuZG9tYWluT3duZXIsXG4gICAgICAgIFtET01BSU5fTkFNRV9ESU1FTlNJT05dOiBldmVudC5kZXRhaWwuZG9tYWluTmFtZSxcbiAgICAgICAgW1JFUE9TSVRPUllfTkFNRV9ESU1FTlNJT05dOiBldmVudC5kZXRhaWwucmVwb3NpdG9yeU5hbWUsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBldmVudC5kZXRhaWwucGFja2FnZU5hbWVzcGFjZVxuICAgICAgICA/IGBAJHtldmVudC5kZXRhaWwucGFja2FnZU5hbWVzcGFjZX0vJHtldmVudC5kZXRhaWwucGFja2FnZU5hbWV9YFxuICAgICAgICA6IGV2ZW50LmRldGFpbC5wYWNrYWdlTmFtZTtcblxuICAgICAgaWYgKGV2ZW50LmRldGFpbC5vcGVyYXRpb25UeXBlID09PSAnRGVsZXRlZCcpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYE9wZXJhdGlvbiB0eXBlIGlzIFwiRGVsZXRlZFwiIGZvciAke3BhY2thZ2VOYW1lfUAke2V2ZW50LmRldGFpbC5wYWNrYWdlVmVyc2lvbn1gXG4gICAgICAgICk7XG4gICAgICAgIG1ldHJpY3MucHV0TWV0cmljKE1ldHJpY05hbWUuREVMRVRFRF9DT1VOVCwgMSwgVW5pdC5Db3VudCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVueUxpc3QgPSBhd2FpdCBEZW55TGlzdENsaWVudC5uZXdDbGllbnQoKTtcbiAgICAgIGNvbnN0IGRlbmllZCA9IGRlbnlMaXN0Lmxvb2t1cChwYWNrYWdlTmFtZSwgZXZlbnQuZGV0YWlsLnBhY2thZ2VWZXJzaW9uKTtcbiAgICAgIGlmIChkZW5pZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYFBhY2thZ2UgJHtwYWNrYWdlTmFtZX1AJHtcbiAgICAgICAgICAgIGV2ZW50LmRldGFpbC5wYWNrYWdlVmVyc2lvblxuICAgICAgICAgIH0gZGVuaWVkOiAke0pTT04uc3RyaW5naWZ5KGRlbmllZCwgbnVsbCwgMil9YFxuICAgICAgICApO1xuICAgICAgICBtZXRyaWNzLnB1dE1ldHJpYyhNZXRyaWNOYW1lLkRFTllfTElTVEVEX0NPVU5ULCAxLCBVbml0LkNvdW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGFzc2V0LCBwYWNrYWdlVmVyc2lvblJldmlzaW9uIH0gPSBhd2FpdCBhd3NcbiAgICAgICAgLmNvZGVBcnRpZmFjdCgpXG4gICAgICAgIC5nZXRQYWNrYWdlVmVyc2lvbkFzc2V0KHtcbiAgICAgICAgICBhc3NldDogJ3BhY2thZ2UudGd6JywgLy8gQWx3YXlzIG5hbWVkIHRoaXMgd2F5IGZvciBucG0gcGFja2FnZXMhXG4gICAgICAgICAgZG9tYWluT3duZXI6IGV2ZW50LmRldGFpbC5kb21haW5Pd25lcixcbiAgICAgICAgICBkb21haW46IGV2ZW50LmRldGFpbC5kb21haW5OYW1lLFxuICAgICAgICAgIHJlcG9zaXRvcnk6IGV2ZW50LmRldGFpbC5yZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICBmb3JtYXQ6IGV2ZW50LmRldGFpbC5wYWNrYWdlRm9ybWF0LFxuICAgICAgICAgIG5hbWVzcGFjZTogZXZlbnQuZGV0YWlsLnBhY2thZ2VOYW1lc3BhY2UsXG4gICAgICAgICAgcGFja2FnZTogZXZlbnQuZGV0YWlsLnBhY2thZ2VOYW1lLFxuICAgICAgICAgIHBhY2thZ2VWZXJzaW9uOiBldmVudC5kZXRhaWwucGFja2FnZVZlcnNpb24sXG4gICAgICAgIH0pXG4gICAgICAgIC5wcm9taXNlKCk7XG4gICAgICBjb25zdCB0YXJiYWxsID0gQnVmZmVyLmZyb20oYXNzZXQhIGFzIGFueSk7XG5cbiAgICAgIGNvbnN0IHsgYXNzZW1ibHlKc29uLCBwYWNrYWdlSnNvbiB9ID0gYXdhaXQgZXh0cmFjdE9iamVjdHModGFyYmFsbCwge1xuICAgICAgICBhc3NlbWJseUpzb246IHsgcGF0aDogJ3BhY2thZ2UvLmpzaWknIH0sXG4gICAgICAgIHBhY2thZ2VKc29uOiB7IHBhdGg6ICdwYWNrYWdlL3BhY2thZ2UuanNvbicsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICB9KTtcbiAgICAgIG1ldHJpY3MucHV0TWV0cmljKFxuICAgICAgICBNZXRyaWNOYW1lLk5PVF9KU0lJX0VOQUJMRURfQ09VTlQsXG4gICAgICAgIGFzc2VtYmx5SnNvbiA/IDAgOiAxLFxuICAgICAgICBVbml0LkNvdW50XG4gICAgICApO1xuICAgICAgaWYgKGFzc2VtYmx5SnNvbiA9PSBudWxsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBQYWNrYWdlIFwiJHtwYWNrYWdlTmFtZX1AJHtldmVudC5kZXRhaWwucGFja2FnZVZlcnNpb259XCIgZG9lcyBub3QgY29udGFpbiBhIC5qc2lpIGFzc2VtYmx5YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gSlNPTi5wYXJzZShwYWNrYWdlSnNvbi50b1N0cmluZygndXRmLTgnKSk7XG4gICAgICBjb25zdCBsaWNlbnNlTGlzdCA9IGF3YWl0IExpY2Vuc2VMaXN0Q2xpZW50Lm5ld0NsaWVudCgpO1xuICAgICAgY29uc3QgZWxpZ2libGVMaWNlbnNlID0gbGljZW5zZUxpc3QubG9va3VwKFxuICAgICAgICBtZXRhZGF0YS5saWNlbnNlID8/ICdVTkxJQ0VOU0VEJ1xuICAgICAgKTtcbiAgICAgIG1ldHJpY3MucHV0TWV0cmljKFxuICAgICAgICBNZXRyaWNOYW1lLklORUxJR0lCTEVfTElDRU5TRSxcbiAgICAgICAgZWxpZ2libGVMaWNlbnNlID8gMCA6IDEsXG4gICAgICAgIFVuaXQuQ291bnRcbiAgICAgICk7XG4gICAgICBpZiAoIWVsaWdpYmxlTGljZW5zZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgUGFja2FnZSBcIiR7cGFja2FnZU5hbWV9QCR7XG4gICAgICAgICAgICBldmVudC5kZXRhaWwucGFja2FnZVZlcnNpb25cbiAgICAgICAgICB9XCIgZG9lcyBub3QgdXNlIGFsbG93LWxpc3RlZCBsaWNlbnNlOiAke1xuICAgICAgICAgICAgbWV0YWRhdGEubGljZW5zZSA/PyAnVU5MSUNFTlNFRCdcbiAgICAgICAgICB9YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWdpbmdLZXkgPSBgJHtwYWNrYWdlTmFtZX0vJHtldmVudC5kZXRhaWwucGFja2FnZVZlcnNpb259LyR7cGFja2FnZVZlcnNpb25SZXZpc2lvbn0vcGFja2FnZS50Z3pgO1xuICAgICAgYXdhaXQgYXdzXG4gICAgICAgIC5zMygpXG4gICAgICAgIC5wdXRPYmplY3Qoe1xuICAgICAgICAgIEJ1Y2tldDogc3RhZ2luZ0J1Y2tldCxcbiAgICAgICAgICBLZXk6IHN0YWdpbmdLZXksXG4gICAgICAgICAgQm9keTogYXNzZXQsXG4gICAgICAgICAgQ29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLFxuICAgICAgICAgIE1ldGFkYXRhOiB7XG4gICAgICAgICAgICAnTGFtYmRhLUxvZy1Hcm91cCc6IGNvbnRleHQubG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgJ0xhbWJkYS1Mb2ctU3RyZWFtJzogY29udGV4dC5sb2dTdHJlYW1OYW1lLFxuICAgICAgICAgICAgJ0xhbWJkYS1SdW4tSWQnOiBjb250ZXh0LmF3c1JlcXVlc3RJZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAucHJvbWlzZSgpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gaW50ZWdyaXR5KFxuICAgICAgICB7XG4gICAgICAgICAgdGFyYmFsbFVyaTogYHMzOi8vJHtzdGFnaW5nQnVja2V0fS8ke3N0YWdpbmdLZXl9YCxcbiAgICAgICAgICBtZXRhZGF0YTogeyByZXNvdXJjZXM6IGV2ZW50LnJlc291cmNlcy5qb2luKCcsICcpIH0sXG4gICAgICAgICAgdGltZTogZXZlbnQudGltZSxcbiAgICAgICAgfSxcbiAgICAgICAgdGFyYmFsbFxuICAgICAgKTtcbiAgICAgIHJldHVybiBhd3NcbiAgICAgICAgLnNxcygpXG4gICAgICAgIC5zZW5kTWVzc2FnZSh7XG4gICAgICAgICAgTWVzc2FnZUF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgIEFXU19SRVFVRVNUX0lEOiB7XG4gICAgICAgICAgICAgIERhdGFUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgICAgICAgU3RyaW5nVmFsdWU6IGNvbnRleHQuYXdzUmVxdWVzdElkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIExPR19HUk9VUF9OQU1FOiB7XG4gICAgICAgICAgICAgIERhdGFUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgICAgICAgU3RyaW5nVmFsdWU6IGNvbnRleHQubG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIExPR19TVFJFQU1fTkFNRToge1xuICAgICAgICAgICAgICBEYXRhVHlwZTogJ1N0cmluZycsXG4gICAgICAgICAgICAgIFN0cmluZ1ZhbHVlOiBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgTWVzc2FnZUJvZHk6IEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpLFxuICAgICAgICAgIFF1ZXVlVXJsOiBxdWV1ZVVybCxcbiAgICAgICAgfSlcbiAgICAgICAgLnByb21pc2UoKTtcbiAgICB9XG4pO1xuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2NvZGVhcnRpZmFjdC9sYXRlc3QvdWcvc2VydmljZS1ldmVudC1mb3JtYXQtZXhhbXBsZS5odG1sXG4gKi9cbmludGVyZmFjZSBDb2RlQXJ0aWZhY3REZXRhaWwge1xuICAvKipcbiAgICogVGhlIGRvbWFpbiB0aGF0IGNvbnRhaW5zIHRoZSByZXBvc2l0b3J5IHRoYXQgY29udGFpbnMgdGhlIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgYWNjb3VudCBJRCBvZiB0aGUgb3duZXIgb2YgdGhlIGRvbWFpbi5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk93bmVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXBvc2l0b3J5IHRoYXQgY29udGFpbnMgdGhlIHBhY2thZ2UuXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IG9mIHRoZSBwYWNrYWdlIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudC5cbiAgICovXG4gIHJlYWRvbmx5IHBhY2thZ2VGb3JtYXQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSBvZiB0aGUgcGFja2FnZSB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZSB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgcGFja2FnZSB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQuXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGUgb2YgdGhlIHBhY2thZ2UgdmVyc2lvbiB3aGVuIHRoZSBldmVudCB3YXMgdHJpZ2dlcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVZlcnNpb25TdGF0ZTpcbiAgICB8ICdVbmZpbmlzaGVkJ1xuICAgIHwgJ1B1Ymxpc2hlZCdcbiAgICB8ICdVbmxpc3RlZCdcbiAgICB8ICdBcmNoaXZlZCdcbiAgICB8ICdEaXNwb3NlZCc7XG5cbiAgLyoqXG4gICAqIEEgdmFsdWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBzdGF0ZSBvZiB0aGUgYXNzZXRzIGFuZCBtZXRhZGF0YSBvZiB0aGUgcGFja2FnZSB2ZXJzaW9uIHdoZW4gdGhlIGV2ZW50IHdhc1xuICAgKiB0cmlnZ2VyZWQuIElmIHRoZSBwYWNrYWdlIHZlcnNpb24gaXMgbW9kaWZpZWQgKGZvciBleGFtcGxlLCBieSBhZGRpbmcgYW5vdGhlciBKQVIgZmlsZSB0byBhIE1hdmVuIHBhY2thZ2UpLCB0aGVcbiAgICogcGFja2FnZVZlcnNpb25SZXZpc2lvbiBjaGFuZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVZlcnNpb25SZXZpc2lvbjogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGNoYW5nZXM6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIGFzc2V0cyBhZGRlZCB0byBhIHBhY2thZ2UgdGhhdCB0cmlnZ2VyZWQgYW4gZXZlbnQuIEV4YW1wbGVzIG9mIGFuIGFzc2V0IGFyZSBhIE1hdmVuIEpBUiBmaWxlIG9yIGFcbiAgICAgKiBQeXRob24gd2hlZWwuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXNzZXRzQWRkZWQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBudW1iZXIgb2YgYXNzZXRzIHJlbW92ZWQgZnJvbSBhIHBhY2thZ2UgdGhhdCB0cmlnZ2VyZWQgYW4gZXZlbnQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXNzZXRzUmVtb3ZlZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG51bWJlciBvZiBhc3NldHMgbW9kaWZpZWQgaW4gdGhlIHBhY2thZ2UgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG1ldGFkYXRhVXBkYXRlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEEgYm9vbGVhbiB2YWx1ZSB0aGF0IGlzIHNldCB0byB0cnVlIGlmIHRoZSBldmVudCBpbmNsdWRlcyBtb2RpZmllZCBwYWNrYWdlLWxldmVsIG1ldGFkYXRhLiBGb3IgZXhhbXBsZSwgYW4gZXZlbnRcbiAgICAgKiBtaWdodCBtb2RpZnkgYSBNYXZlbiBwb20ueG1sIGZpbGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXNzZXRzVXBkYXRlZDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQSBib29sZWFuIHZhbHVlIHRoYXQgaXMgc2V0IHRvIHRydWUgaWYgdGhlIGV2ZW50J3MgcGFja2FnZVZlcnNpb25TdGF0dXMgaXMgbW9kaWZpZWQoZm9yIGV4YW1wbGUsIGlmXG4gICAgICogcGFja2FnZVZlcnNpb25TdGF0dXMgY2hhbmdlcyBmcm9tIFVuZmluaXNoZWQgdG8gUHVibGlzaGVkKS5cbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0dXNDaGFuZ2VkOiBib29sZWFuO1xuICB9O1xuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgdGhlIGhpZ2gtbGV2ZWwgdHlwZSBvZiB0aGUgcGFja2FnZSB2ZXJzaW9uIGNoYW5nZS5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvblR5cGU6ICdDcmVhdGVkJyB8ICdVcGRhdGVkJyB8ICdEZWxldGVkJztcblxuICAvKipcbiAgICogQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyBhbiBldmVudCBudW1iZXIgZm9yIGEgcGFja2FnZS4gRWFjaCBldmVudCBvbiBhIHBhY2thZ2UgaW5jcmVtZW50cyB0aGUgc2VxdWVuY2VOdW1iZXIgc29cbiAgICogZXZlbnRzIGNhbiBiZSBhcnJhbmdlZCBzZXF1ZW50aWFsbHkuIEFuIGV2ZW50IGNhbiBpbmNyZW1lbnQgdGhlIHNlcXVlbmNlTnVtYmVyIGJ5IGFueSBpbnRlZ2VyIG51bWJlci5cbiAgICovXG4gIHJlYWRvbmx5IHNlcXVlbmNlTnVtYmVyOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFuIElEIHVzZWQgdG8gZGlmZmVyZW50aWF0ZSBkdXBsaWNhdGUgRXZlbnRCcmlkZ2UgZXZlbnRzLiBJbiByYXJlIGNhc2VzLCBFdmVudEJyaWRnZSBtaWdodCB0cmlnZ2VyIHRoZSBzYW1lIHJ1bGVcbiAgICogbW9yZSB0aGFuIG9uY2UgZm9yIGEgc2luZ2xlIGV2ZW50IG9yIHNjaGVkdWxlZCB0aW1lLiBPciwgaXQgbWlnaHQgaW52b2tlIHRoZSBzYW1lIHRhcmdldCBtb3JlIHRoYW4gb25jZSBmb3IgYSBnaXZlblxuICAgKiB0cmlnZ2VyZWQgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50RGVkdXBsaWNhdGlvbklkOiBzdHJpbmc7XG59XG4iXX0=
@@ -36,7 +36,13 @@ export declare const enum MetricName {
36
36
  * is down. The value is 1 when the replica is detected to be down, and 0
37
37
  * when the replica is detected to be up.
38
38
  */
39
- NPM_REPLICA_DOWN = "NpmReplicaIsDown"
39
+ NPM_REPLICA_DOWN = "NpmReplicaIsDown",
40
+ /**
41
+ * A metric tracking HTTP 502 and HTTP 504 errors received while processing.
42
+ * Those are often encountered when the npm servers are overloaded, or
43
+ * otherwise impaired, and could cause alarms we cannot do anything about.
44
+ */
45
+ HTTP_GATEWAY_ERRORS = "HttpGatewayErrors"
40
46
  }
41
47
  export declare const enum ObjectKey {
42
48
  STATE_PREFIX = "package-canary/",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/package-sources/npmjs/canary/constants.ts"],"names":[],"mappings":"AAAA,0BAAkB,WAAW;IAC3B,YAAY,iBAAiB;IAC7B,0BAA0B,+BAA+B;IACzD,sBAAsB,2BAA2B;CAClD;AAED,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,0BAAkB,UAAU;IAC1B;;;;;OAKG;IACH,UAAU,cAAc;IAExB;;;;;OAKG;IACH,eAAe,kBAAkB;IAEjC;;;OAGG;IACH,qBAAqB,wBAAwB;IAE7C;;;;;OAKG;IACH,eAAe,2BAA2B;IAE1C;;;;OAIG;IACH,gBAAgB,qBAAqB;CACtC;AAED,0BAAkB,SAAS;IACzB,YAAY,oBAAoB;IAChC,YAAY,gBAAgB;CAC7B"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/package-sources/npmjs/canary/constants.ts"],"names":[],"mappings":"AAAA,0BAAkB,WAAW;IAC3B,YAAY,iBAAiB;IAC7B,0BAA0B,+BAA+B;IACzD,sBAAsB,2BAA2B;CAClD;AAED,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,0BAAkB,UAAU;IAC1B;;;;;OAKG;IACH,UAAU,cAAc;IAExB;;;;;OAKG;IACH,eAAe,kBAAkB;IAEjC;;;OAGG;IACH,qBAAqB,wBAAwB;IAE7C;;;;;OAKG;IACH,eAAe,2BAA2B;IAE1C;;;;OAIG;IACH,gBAAgB,qBAAqB;IAErC;;;;OAIG;IACH,mBAAmB,sBAAsB;CAC1C;AAED,0BAAkB,SAAS;IACzB,YAAY,oBAAoB;IAChC,YAAY,gBAAgB;CAC7B"}
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2Utc291cmNlcy9ucG1qcy9jYW5hcnkvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1hLFFBQUEsaUJBQWlCLEdBQUcsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBFbnZpcm9ubWVudCB7XG4gIFBBQ0tBR0VfTkFNRSA9ICdQQUNLQUdFX05BTUUnLFxuICBQQUNLQUdFX0NBTkFSWV9CVUNLRVRfTkFNRSA9ICdQQUNLQUdFX0NBTkFSWV9CVUNLRVRfTkFNRScsXG4gIENPTlNUUlVDVF9IVUJfQkFTRV9VUkwgPSAnQ09OU1RSVUNUX0hVQl9CQVNFX1VSTCcsXG59XG5cbmV4cG9ydCBjb25zdCBNRVRSSUNTX05BTUVTUEFDRSA9ICdDb25zdHJ1Y3RIdWIvUGFja2FnZUNhbmFyeSc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIE1ldHJpY05hbWUge1xuICAvKipcbiAgICogVGhlIHRpbWUgZWxhcHNlZCBzaW5jZSBhIHBhY2thZ2Ugd2FzIHB1Ymxpc2hlZCB0byBucG1qcy5jb20sIHdoaWxlIGl0IGhhc1xuICAgKiBub3QgYmVlbiBkZXRlY3RlZCBpbiB0aGUgY2F0YWxvZyBieSB0aGUgcGFja2FnZSBjYW5hcnkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljcyBpcyBvbmx5IGVtaXR0ZWQgdW50aWwgdGhlIHBhY2thZ2UgaGFzIGJlZW4gZGV0ZWN0ZWQuXG4gICAqL1xuICBEV0VMTF9USU1FID0gJ0R3ZWxsVGltZScsXG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGl0IHRvb2sgYmV0d2VlbiBhIHBhY2thZ2UncyBwdWJsaWNhdGlvbiB0byBucG1qcy5jb20gYW5kIHdoZW4gdGhlXG4gICAqIHBhY2thZ2UgY2FuYXJ5IGRldGVjdGVkIHRoZSBwYWNrYWdlIGFzIGF2YWlsYWJsZSBpbiB0aGUgY2F0YWxvZy5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgbm90IGVtaXR0ZWQgdW50aWwgdGhlIHBhY2thZ2UgaGFzIGFjdHVhbGx5IGJlZW4gZGV0ZWN0ZWQuXG4gICAqL1xuICBUSU1FX1RPX0NBVEFMT0cgPSAnVGltZVRvQ2F0YWxvZycsXG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgdHJhY2tlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZVxuICAgKiBwYWNrYWdlIGNhbmFyeSBleGVjdXRpb24gdGhhdCBwcm9kdWNlZCB0aGUgZGF0YSBwb2ludC5cbiAgICovXG4gIFRSQUNLRURfVkVSU0lPTl9DT1VOVCA9ICdUcmFja2VkVmVyc2lvbkNvdW50JyxcblxuICAvKipcbiAgICogVGhlIGVzdGltYXRlZCBsYWcgYmV0d2VlbiB0aGUgbnBtIHJlZ2lzdHJ5IHJlcGxpY2EgKHJlcGxpY2F0ZS5ucG1qcy5jb20pXG4gICAqIGFuZCB0aGUgcHJpbWFyeSByZWdpc3RyeSAocmVnaXN0cnkubnBtanMuY29tKS4gVGhpcyBjYW5ub3QgYmUgbWVhc3VyZWRcbiAgICogZGlyZWN0bHkgYmVjYXVzZSB0aGUgcHJpbWFyeSBkb2VzIG5vdCBleHBvc2UgdGhlIHJlbGV2YW50IENvdWNoREIgZW5kcG9pbnRzLFxuICAgKiBzbyB3ZSB1c2UgdGhlIHByb2JlIHBhY2thZ2UgdG8gZ2V0IGEgbG93LXJlc29sdXRpb24gdmlldyBvZiB0aGlzLlxuICAgKi9cbiAgTlBNX1JFUExJQ0FfTEFHID0gJ0VzdGltYXRlZE5wbVJlcGxpY2FMYWcnLFxuXG4gIC8qKlxuICAgKiBBIG1ldHJpYyB0cmFja2luZyB3aGV0aGVyIHRoZSBucG0gcmVnaXN0cnkgcmVwbGljYSAocmVwbGljYXRlLm5wbWpzLmNvbSlcbiAgICogaXMgZG93bi4gVGhlIHZhbHVlIGlzIDEgd2hlbiB0aGUgcmVwbGljYSBpcyBkZXRlY3RlZCB0byBiZSBkb3duLCBhbmQgMFxuICAgKiB3aGVuIHRoZSByZXBsaWNhIGlzIGRldGVjdGVkIHRvIGJlIHVwLlxuICAgKi9cbiAgTlBNX1JFUExJQ0FfRE9XTiA9ICdOcG1SZXBsaWNhSXNEb3duJyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gT2JqZWN0S2V5IHtcbiAgU1RBVEVfUFJFRklYID0gJ3BhY2thZ2UtY2FuYXJ5LycsXG4gIFNUQVRFX1NVRkZJWCA9ICcuc3RhdGUuanNvbicsXG59XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhY2thZ2Utc291cmNlcy9ucG1qcy9jYW5hcnkvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1hLFFBQUEsaUJBQWlCLEdBQUcsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW51bSBFbnZpcm9ubWVudCB7XG4gIFBBQ0tBR0VfTkFNRSA9ICdQQUNLQUdFX05BTUUnLFxuICBQQUNLQUdFX0NBTkFSWV9CVUNLRVRfTkFNRSA9ICdQQUNLQUdFX0NBTkFSWV9CVUNLRVRfTkFNRScsXG4gIENPTlNUUlVDVF9IVUJfQkFTRV9VUkwgPSAnQ09OU1RSVUNUX0hVQl9CQVNFX1VSTCcsXG59XG5cbmV4cG9ydCBjb25zdCBNRVRSSUNTX05BTUVTUEFDRSA9ICdDb25zdHJ1Y3RIdWIvUGFja2FnZUNhbmFyeSc7XG5cbmV4cG9ydCBjb25zdCBlbnVtIE1ldHJpY05hbWUge1xuICAvKipcbiAgICogVGhlIHRpbWUgZWxhcHNlZCBzaW5jZSBhIHBhY2thZ2Ugd2FzIHB1Ymxpc2hlZCB0byBucG1qcy5jb20sIHdoaWxlIGl0IGhhc1xuICAgKiBub3QgYmVlbiBkZXRlY3RlZCBpbiB0aGUgY2F0YWxvZyBieSB0aGUgcGFja2FnZSBjYW5hcnkuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljcyBpcyBvbmx5IGVtaXR0ZWQgdW50aWwgdGhlIHBhY2thZ2UgaGFzIGJlZW4gZGV0ZWN0ZWQuXG4gICAqL1xuICBEV0VMTF9USU1FID0gJ0R3ZWxsVGltZScsXG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGl0IHRvb2sgYmV0d2VlbiBhIHBhY2thZ2UncyBwdWJsaWNhdGlvbiB0byBucG1qcy5jb20gYW5kIHdoZW4gdGhlXG4gICAqIHBhY2thZ2UgY2FuYXJ5IGRldGVjdGVkIHRoZSBwYWNrYWdlIGFzIGF2YWlsYWJsZSBpbiB0aGUgY2F0YWxvZy5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgaXMgbm90IGVtaXR0ZWQgdW50aWwgdGhlIHBhY2thZ2UgaGFzIGFjdHVhbGx5IGJlZW4gZGV0ZWN0ZWQuXG4gICAqL1xuICBUSU1FX1RPX0NBVEFMT0cgPSAnVGltZVRvQ2F0YWxvZycsXG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFja2FnZSB2ZXJzaW9ucyB0aGF0IHdlcmUgdHJhY2tlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZVxuICAgKiBwYWNrYWdlIGNhbmFyeSBleGVjdXRpb24gdGhhdCBwcm9kdWNlZCB0aGUgZGF0YSBwb2ludC5cbiAgICovXG4gIFRSQUNLRURfVkVSU0lPTl9DT1VOVCA9ICdUcmFja2VkVmVyc2lvbkNvdW50JyxcblxuICAvKipcbiAgICogVGhlIGVzdGltYXRlZCBsYWcgYmV0d2VlbiB0aGUgbnBtIHJlZ2lzdHJ5IHJlcGxpY2EgKHJlcGxpY2F0ZS5ucG1qcy5jb20pXG4gICAqIGFuZCB0aGUgcHJpbWFyeSByZWdpc3RyeSAocmVnaXN0cnkubnBtanMuY29tKS4gVGhpcyBjYW5ub3QgYmUgbWVhc3VyZWRcbiAgICogZGlyZWN0bHkgYmVjYXVzZSB0aGUgcHJpbWFyeSBkb2VzIG5vdCBleHBvc2UgdGhlIHJlbGV2YW50IENvdWNoREIgZW5kcG9pbnRzLFxuICAgKiBzbyB3ZSB1c2UgdGhlIHByb2JlIHBhY2thZ2UgdG8gZ2V0IGEgbG93LXJlc29sdXRpb24gdmlldyBvZiB0aGlzLlxuICAgKi9cbiAgTlBNX1JFUExJQ0FfTEFHID0gJ0VzdGltYXRlZE5wbVJlcGxpY2FMYWcnLFxuXG4gIC8qKlxuICAgKiBBIG1ldHJpYyB0cmFja2luZyB3aGV0aGVyIHRoZSBucG0gcmVnaXN0cnkgcmVwbGljYSAocmVwbGljYXRlLm5wbWpzLmNvbSlcbiAgICogaXMgZG93bi4gVGhlIHZhbHVlIGlzIDEgd2hlbiB0aGUgcmVwbGljYSBpcyBkZXRlY3RlZCB0byBiZSBkb3duLCBhbmQgMFxuICAgKiB3aGVuIHRoZSByZXBsaWNhIGlzIGRldGVjdGVkIHRvIGJlIHVwLlxuICAgKi9cbiAgTlBNX1JFUExJQ0FfRE9XTiA9ICdOcG1SZXBsaWNhSXNEb3duJyxcblxuICAvKipcbiAgICogQSBtZXRyaWMgdHJhY2tpbmcgSFRUUCA1MDIgYW5kIEhUVFAgNTA0IGVycm9ycyByZWNlaXZlZCB3aGlsZSBwcm9jZXNzaW5nLlxuICAgKiBUaG9zZSBhcmUgb2Z0ZW4gZW5jb3VudGVyZWQgd2hlbiB0aGUgbnBtIHNlcnZlcnMgYXJlIG92ZXJsb2FkZWQsIG9yXG4gICAqIG90aGVyd2lzZSBpbXBhaXJlZCwgYW5kIGNvdWxkIGNhdXNlIGFsYXJtcyB3ZSBjYW5ub3QgZG8gYW55dGhpbmcgYWJvdXQuXG4gICAqL1xuICBIVFRQX0dBVEVXQVlfRVJST1JTID0gJ0h0dHBHYXRld2F5RXJyb3JzJyxcbn1cblxuZXhwb3J0IGNvbnN0IGVudW0gT2JqZWN0S2V5IHtcbiAgU1RBVEVfUFJFRklYID0gJ3BhY2thZ2UtY2FuYXJ5LycsXG4gIFNUQVRFX1NVRkZJWCA9ICcuc3RhdGUuanNvbicsXG59XG4iXX0=
@@ -29,6 +29,12 @@ export declare class NpmJsPackageCanary extends Construct {
29
29
  * when the replica is detected to be up.
30
30
  */
31
31
  metricNpmReplicaIsDown(opts?: MetricOptions): Metric;
32
+ /**
33
+ * A metric tracking HTTP Gateway errors experienced while the canary is
34
+ * running. Those are typically caused by the npm registry servers being
35
+ * overloaded or otherwise impaired, and would cause false alarms.
36
+ */
37
+ metricHttpGatewayErrors(opts?: MetricOptions): Metric;
32
38
  metricErrors(opts?: MetricOptions): Metric;
33
39
  metricInvocations(opts?: MetricOptions): Metric;
34
40
  metricThrottles(opts?: MetricOptions): Metric;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/package-sources/npmjs/canary/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAa,MAAM,4BAA4B,CAAC;AAG9E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAUvC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAGhC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,uBAAuB;IA8BzB,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAU7C,mBAAmB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAUjD,yBAAyB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAU9D;;;;;;;;;OASG;IACI,4BAA4B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAUjE;;;;OAIG;IACI,sBAAsB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAUpD,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAI1C,iBAAiB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAI/C,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAI7C,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;CAGpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/package-sources/npmjs/canary/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAa,MAAM,4BAA4B,CAAC;AAG9E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAUvC,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAGhC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,uBAAuB;IA8BzB,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAU7C,mBAAmB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAUjD,yBAAyB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAU9D;;;;;;;;;OASG;IACI,4BAA4B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAUjE;;;;OAIG;IACI,sBAAsB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAU3D;;;;OAIG;IACI,uBAAuB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAUrD,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAI1C,iBAAiB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAI/C,eAAe,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;IAI7C,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM;CAGpD"}
@@ -93,6 +93,20 @@ class NpmJsPackageCanary extends constructs_1.Construct {
93
93
  namespace: constants_1.METRICS_NAMESPACE,
94
94
  });
95
95
  }
96
+ /**
97
+ * A metric tracking HTTP Gateway errors experienced while the canary is
98
+ * running. Those are typically caused by the npm registry servers being
99
+ * overloaded or otherwise impaired, and would cause false alarms.
100
+ */
101
+ metricHttpGatewayErrors(opts) {
102
+ return new aws_cloudwatch_1.Metric({
103
+ period: aws_cdk_lib_1.Duration.minutes(1),
104
+ statistic: aws_cloudwatch_1.Statistic.SUM,
105
+ ...opts,
106
+ metricName: "HttpGatewayErrors" /* HTTP_GATEWAY_ERRORS */,
107
+ namespace: constants_1.METRICS_NAMESPACE,
108
+ });
109
+ }
96
110
  metricErrors(opts) {
97
111
  return this.handler.metricErrors(opts);
98
112
  }
@@ -107,4 +121,4 @@ class NpmJsPackageCanary extends constructs_1.Construct {
107
121
  }
108
122
  }
109
123
  exports.NpmJsPackageCanary = NpmJsPackageCanary;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZS1zb3VyY2VzL25wbWpzL2NhbmFyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBdUM7QUFDdkMsK0RBQThFO0FBQzlFLHVEQUF3RDtBQUN4RCx1RUFBZ0U7QUFFaEUsMkNBQXVDO0FBQ3ZDLGdGQUFrRjtBQUNsRiwyQ0FLcUI7QUFDckIsaUVBQXVFO0FBUXZFLE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFHL0MsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBOEI7UUFFOUIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUkseUNBQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNDLFlBQVksRUFBRSxnREFBeUIsQ0FBQyxJQUFJLENBQUM7WUFDN0MsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLDRCQUE0QixLQUFLLENBQUMsV0FBVyx3QkFBd0I7WUFDckcsV0FBVyxFQUFFO2dCQUNYLG1CQUFtQixFQUFFLE9BQU87Z0JBQzVCLHVEQUFvQyxFQUFFLEtBQUssQ0FBQyxtQkFBbUI7Z0JBQy9ELCtEQUF3QyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDakUsbUNBQTBCLEVBQUUsS0FBSyxDQUFDLFdBQVc7YUFDOUM7WUFDRCxVQUFVLEVBQUUsS0FBTTtZQUNsQixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUN2QyxJQUFJLENBQUMsT0FBTyxFQUNaLEdBQUcsb0NBQXNCLElBQUksZ0NBQXNCLEVBQUUsQ0FDdEQsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFH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JztcbmltcG9ydCB7IE1ldHJpY09wdGlvbnMsIE1ldHJpYywgU3RhdGlzdGljIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgUnVsZSwgU2NoZWR1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBncmF2aXRvbkxhbWJkYUlmQXZhaWxhYmxlIH0gZnJvbSAnLi4vLi4vLi4vYmFja2VuZC9fbGFtYmRhLWFyY2hpdGVjdHVyZSc7XG5pbXBvcnQge1xuICBFbnZpcm9ubWVudCxcbiAgT2JqZWN0S2V5LFxuICBNRVRSSUNTX05BTUVTUEFDRSxcbiAgTWV0cmljTmFtZSxcbn0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgTnBtanNQYWNrYWdlQ2FuYXJ5IGFzIEhhbmRsZXIgfSBmcm9tICcuL25wbWpzLXBhY2thZ2UtY2FuYXJ5JztcblxuZXhwb3J0IGludGVyZmFjZSBOcG1Kc1BhY2thZ2VDYW5hcnlQcm9wcyB7XG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgcmVhZG9ubHkgY29uc3RydWN0SHViQmFzZVVybDogc3RyaW5nO1xuICByZWFkb25seSBwYWNrYWdlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTnBtSnNQYWNrYWdlQ2FuYXJ5IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVyOiBIYW5kbGVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IE5wbUpzUGFja2FnZUNhbmFyeVByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmhhbmRsZXIgPSBuZXcgSGFuZGxlcih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBhcmNoaXRlY3R1cmU6IGdyYXZpdG9uTGFtYmRhSWZBdmFpbGFibGUodGhpcyksXG4gICAgICBkZXNjcmlwdGlvbjogYFske3Njb3BlLm5vZGUucGF0aH0vUGFja2FnZUNhbmFyeV0gTW9uaXRvcnMgJHtwcm9wcy5wYWNrYWdlTmFtZX0gdmVyc2lvbnMgYXZhaWxhYmlsaXR5YCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIEFXU19FTUZfRU5WSVJPTk1FTlQ6ICdMb2NhbCcsXG4gICAgICAgIFtFbnZpcm9ubWVudC5DT05TVFJVQ1RfSFVCX0JBU0VfVVJMXTogcHJvcHMuY29uc3RydWN0SHViQmFzZVVybCxcbiAgICAgICAgW0Vudmlyb25tZW50LlBBQ0tBR0VfQ0FOQVJZX0JVQ0tFVF9OQU1FXTogcHJvcHMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIFtFbnZpcm9ubWVudC5QQUNLQUdFX05BTUVdOiBwcm9wcy5wYWNrYWdlTmFtZSxcbiAgICAgIH0sXG4gICAgICBtZW1vcnlTaXplOiAxMF8wMjQsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgIH0pO1xuICAgIGNvbnN0IGdyYW50ID0gcHJvcHMuYnVja2V0LmdyYW50UmVhZFdyaXRlKFxuICAgICAgdGhpcy5oYW5kbGVyLFxuICAgICAgYCR7T2JqZWN0S2V5LlNUQVRFX1BSRUZJWH0qJHtPYmplY3RLZXkuU1RBVEVfU1VGRklYfWBcbiAgICApO1xuXG4gICAgY29uc3Qgc2NoZWR1bGUgPSBuZXcgUnVsZSh0aGlzLCAnU2NoZWR1bGUnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1NjaGVkdWxlZCBleGVjdXRpb25zIG9mIHRoZSBOcG1KUyBwYWNrYWdlIGNhbmFyeScsXG4gICAgICBzY2hlZHVsZTogU2NoZWR1bGUucmF0ZShEdXJhdGlvbi5taW51dGVzKDEpKSxcbiAgICAgIHRhcmdldHM6IFtuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy5oYW5kbGVyKV0sXG4gICAgfSk7XG4gICAgLy8gRW5zdXJlIHdlIGRvbid0IGF0dGVtcHQgdG8gcnVuIGJlZm9yZSBwZXJtaXNzaW9ucyBoYXZlIGJlZW4gZ3JhbnRlZC5cbiAgICBzY2hlZHVsZS5ub2RlLmFkZERlcGVuZGVuY3koZ3JhbnQpO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY0R3ZWxsVGltZShvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuTUFYSU1VTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLkRXRUxMX1RJTUUsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY1RpbWVUb0NhdGFsb2cob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLk1BWElNVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5USU1FX1RPX0NBVEFMT0csXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY1RyYWNrZWRWZXJzaW9uQ291bnQob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLk1BWElNVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5UUkFDS0VEX1ZFUlNJT05fQ09VTlQsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBlc3RpbWF0ZWQgbGFnIGJldHdlZW4gdGhlIG5wbSByZWdpc3RyeSByZXBsaWNhIChyZXBsY2F0ZS5ucG1qcy5jb20pIGFuZFxuICAgKiB0aGUgcHJpbWFyeSByZWdpc3RyeSAocmVnaXN0cnkubnBtanMuY29tKS5cbiAgICpcbiAgICogSU1QT1JUQU5UIE5PVEU6IFRoaXMgaXMgYmFzZWQgb24gdGhlIGRpZmZlcmVuY2UgaW4gbW9kaWZpZWQgdGltZXN0YW1wcyBmb3JcbiAgICogdGhlIHByb2JlIHBhY2thZ2UgYmV0d2VlbiB0aGUgdHdvIGFuZCBoZW5jZSBoYXMgYSBncmFudWxhcmx5IG5vIGJldHRlciB0aGFuXG4gICAqIHRoZSBwdWJsaXNoaW5nIGludGVydmFsIG9mIHRoaXMuIFNpbmNlIHRoZSBjb25zdHJ1Y3QtaHViLXByb2JlIHBhY2thZ2UgaXNcbiAgICogb25seSBwdWJsaXNoZWQgZXZlcnkgMyBob3VycyBhcHByb3hpbWF0ZWx5LCB0aGlzIG1ldHJpYyBoYXMgYSByZXNvbHV0aW9uXG4gICAqIHRoYXQgaXMgc3RyaWN0bHkgd29yc2UgdGhhbiAzIGhvdXJzLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0VzdGltYXRlZE5wbVJlcGxpY2FMYWcob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHBlcmlvZDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgIHN0YXRpc3RpYzogU3RhdGlzdGljLk1BWElNVU0sXG4gICAgICAuLi5vcHRzLFxuICAgICAgbWV0cmljTmFtZTogTWV0cmljTmFtZS5OUE1fUkVQTElDQV9MQUcsXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgbWV0cmljIHRyYWNraW5nIHdoZXRoZXIgdGhlIG5wbSByZWdpc3RyeSByZXBsaWNhIChyZXBsaWNhdGUubnBtanMuY29tKVxuICAgKiBpcyBkb3duLiBUaGUgdmFsdWUgaXMgMSB3aGVuIHRoZSByZXBsaWNhIGlzIGRldGVjdGVkIHRvIGJlIGRvd24sIGFuZCAwXG4gICAqIHdoZW4gdGhlIHJlcGxpY2EgaXMgZGV0ZWN0ZWQgdG8gYmUgdXAuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljTnBtUmVwbGljYUlzRG93bihvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuTUFYSU1VTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLk5QTV9SRVBMSUNBX0RPV04sXG4gICAgICBuYW1lc3BhY2U6IE1FVFJJQ1NfTkFNRVNQQUNFLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY0Vycm9ycyhvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlci5tZXRyaWNFcnJvcnMob3B0cyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljSW52b2NhdGlvbnMob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZXIubWV0cmljSW52b2NhdGlvbnMob3B0cyk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljVGhyb3R0bGVzKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVyLm1ldHJpY1Rocm90dGxlcyhvcHRzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNEdXJhdGlvbihvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlci5tZXRyaWNEdXJhdGlvbihvcHRzKTtcbiAgfVxufVxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFja2FnZS1zb3VyY2VzL25wbWpzL2NhbmFyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBdUM7QUFDdkMsK0RBQThFO0FBQzlFLHVEQUF3RDtBQUN4RCx1RUFBZ0U7QUFFaEUsMkNBQXVDO0FBQ3ZDLGdGQUFrRjtBQUNsRiwyQ0FLcUI7QUFDckIsaUVBQXVFO0FBUXZFLE1BQWEsa0JBQW1CLFNBQVEsc0JBQVM7SUFHL0MsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBOEI7UUFFOUIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUkseUNBQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzNDLFlBQVksRUFBRSxnREFBeUIsQ0FBQyxJQUFJLENBQUM7WUFDN0MsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLDRCQUE0QixLQUFLLENBQUMsV0FBVyx3QkFBd0I7WUFDckcsV0FBVyxFQUFFO2dCQUNYLG1CQUFtQixFQUFFLE9BQU87Z0JBQzVCLHVEQUFvQyxFQUFFLEtBQUssQ0FBQyxtQkFBbUI7Z0JBQy9ELCtEQUF3QyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDakUsbUNBQTBCLEVBQUUsS0FBSyxDQUFDLFdBQVc7YUFDOUM7WUFDRCxVQUFVLEVBQUUsS0FBTTtZQUNsQixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzdCLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUN2QyxJQUFJLENBQUMsT0FBTyxFQUNaLEdBQUcsb0NBQXNCLElBQUksZ0NBQXNCLEVBQUUsQ0FDdEQsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFH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T0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sY0FBYyxDQUFDLElBQW9CO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBbklELGdEQW1JQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgTWV0cmljT3B0aW9ucywgTWV0cmljLCBTdGF0aXN0aWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBSdWxlLCBTY2hlZHVsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGdyYXZpdG9uTGFtYmRhSWZBdmFpbGFibGUgfSBmcm9tICcuLi8uLi8uLi9iYWNrZW5kL19sYW1iZGEtYXJjaGl0ZWN0dXJlJztcbmltcG9ydCB7XG4gIEVudmlyb25tZW50LFxuICBPYmplY3RLZXksXG4gIE1FVFJJQ1NfTkFNRVNQQUNFLFxuICBNZXRyaWNOYW1lLFxufSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBOcG1qc1BhY2thZ2VDYW5hcnkgYXMgSGFuZGxlciB9IGZyb20gJy4vbnBtanMtcGFja2FnZS1jYW5hcnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5wbUpzUGFja2FnZUNhbmFyeVByb3BzIHtcbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICByZWFkb25seSBjb25zdHJ1Y3RIdWJCYXNlVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhY2thZ2VOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBOcG1Kc1BhY2thZ2VDYW5hcnkgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZXI6IEhhbmRsZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTnBtSnNQYWNrYWdlQ2FuYXJ5UHJvcHNcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuaGFuZGxlciA9IG5ldyBIYW5kbGVyKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGFyY2hpdGVjdHVyZTogZ3Jhdml0b25MYW1iZGFJZkF2YWlsYWJsZSh0aGlzKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgWyR7c2NvcGUubm9kZS5wYXRofS9QYWNrYWdlQ2FuYXJ5XSBNb25pdG9ycyAke3Byb3BzLnBhY2thZ2VOYW1lfSB2ZXJzaW9ucyBhdmFpbGFiaWxpdHlgLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgQVdTX0VNRl9FTlZJUk9OTUVOVDogJ0xvY2FsJyxcbiAgICAgICAgW0Vudmlyb25tZW50LkNPTlNUUlVDVF9IVUJfQkFTRV9VUkxdOiBwcm9wcy5jb25zdHJ1Y3RIdWJCYXNlVXJsLFxuICAgICAgICBbRW52aXJvbm1lbnQuUEFDS0FHRV9DQU5BUllfQlVDS0VUX05BTUVdOiBwcm9wcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgW0Vudmlyb25tZW50LlBBQ0tBR0VfTkFNRV06IHByb3BzLnBhY2thZ2VOYW1lLFxuICAgICAgfSxcbiAgICAgIG1lbW9yeVNpemU6IDEwXzAyNCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgfSk7XG4gICAgY29uc3QgZ3JhbnQgPSBwcm9wcy5idWNrZXQuZ3JhbnRSZWFkV3JpdGUoXG4gICAgICB0aGlzLmhhbmRsZXIsXG4gICAgICBgJHtPYmplY3RLZXkuU1RBVEVfUFJFRklYfSoke09iamVjdEtleS5TVEFURV9TVUZGSVh9YFxuICAgICk7XG5cbiAgICBjb25zdCBzY2hlZHVsZSA9IG5ldyBSdWxlKHRoaXMsICdTY2hlZHVsZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2NoZWR1bGVkIGV4ZWN1dGlvbnMgb2YgdGhlIE5wbUpTIHBhY2thZ2UgY2FuYXJ5JyxcbiAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKER1cmF0aW9uLm1pbnV0ZXMoMSkpLFxuICAgICAgdGFyZ2V0czogW25ldyBMYW1iZGFGdW5jdGlvbih0aGlzLmhhbmRsZXIpXSxcbiAgICB9KTtcbiAgICAvLyBFbnN1cmUgd2UgZG9uJ3QgYXR0ZW1wdCB0byBydW4gYmVmb3JlIHBlcm1pc3Npb25zIGhhdmUgYmVlbiBncmFudGVkLlxuICAgIHNjaGVkdWxlLm5vZGUuYWRkRGVwZW5kZW5jeShncmFudCk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljRHdlbGxUaW1lKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5NQVhJTVVNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuRFdFTExfVElNRSxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljVGltZVRvQ2F0YWxvZyhvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuTUFYSU1VTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLlRJTUVfVE9fQ0FUQUxPRyxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljVHJhY2tlZFZlcnNpb25Db3VudChvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuTUFYSU1VTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLlRSQUNLRURfVkVSU0lPTl9DT1VOVCxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVzdGltYXRlZCBsYWcgYmV0d2VlbiB0aGUgbnBtIHJlZ2lzdHJ5IHJlcGxpY2EgKHJlcGxjYXRlLm5wbWpzLmNvbSkgYW5kXG4gICAqIHRoZSBwcmltYXJ5IHJlZ2lzdHJ5IChyZWdpc3RyeS5ucG1qcy5jb20pLlxuICAgKlxuICAgKiBJTVBPUlRBTlQgTk9URTogVGhpcyBpcyBiYXNlZCBvbiB0aGUgZGlmZmVyZW5jZSBpbiBtb2RpZmllZCB0aW1lc3RhbXBzIGZvclxuICAgKiB0aGUgcHJvYmUgcGFja2FnZSBiZXR3ZWVuIHRoZSB0d28gYW5kIGhlbmNlIGhhcyBhIGdyYW51bGFybHkgbm8gYmV0dGVyIHRoYW5cbiAgICogdGhlIHB1Ymxpc2hpbmcgaW50ZXJ2YWwgb2YgdGhpcy4gU2luY2UgdGhlIGNvbnN0cnVjdC1odWItcHJvYmUgcGFja2FnZSBpc1xuICAgKiBvbmx5IHB1Ymxpc2hlZCBldmVyeSAzIGhvdXJzIGFwcHJveGltYXRlbHksIHRoaXMgbWV0cmljIGhhcyBhIHJlc29sdXRpb25cbiAgICogdGhhdCBpcyBzdHJpY3RseSB3b3JzZSB0aGFuIDMgaG91cnMuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXN0aW1hdGVkTnBtUmVwbGljYUxhZyhvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuTUFYSU1VTSxcbiAgICAgIC4uLm9wdHMsXG4gICAgICBtZXRyaWNOYW1lOiBNZXRyaWNOYW1lLk5QTV9SRVBMSUNBX0xBRyxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQSBtZXRyaWMgdHJhY2tpbmcgd2hldGhlciB0aGUgbnBtIHJlZ2lzdHJ5IHJlcGxpY2EgKHJlcGxpY2F0ZS5ucG1qcy5jb20pXG4gICAqIGlzIGRvd24uIFRoZSB2YWx1ZSBpcyAxIHdoZW4gdGhlIHJlcGxpY2EgaXMgZGV0ZWN0ZWQgdG8gYmUgZG93biwgYW5kIDBcbiAgICogd2hlbiB0aGUgcmVwbGljYSBpcyBkZXRlY3RlZCB0byBiZSB1cC5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNOcG1SZXBsaWNhSXNEb3duKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICBzdGF0aXN0aWM6IFN0YXRpc3RpYy5NQVhJTVVNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuTlBNX1JFUExJQ0FfRE9XTixcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQSBtZXRyaWMgdHJhY2tpbmcgSFRUUCBHYXRld2F5IGVycm9ycyBleHBlcmllbmNlZCB3aGlsZSB0aGUgY2FuYXJ5IGlzXG4gICAqIHJ1bm5pbmcuIFRob3NlIGFyZSB0eXBpY2FsbHkgY2F1c2VkIGJ5IHRoZSBucG0gcmVnaXN0cnkgc2VydmVycyBiZWluZ1xuICAgKiBvdmVybG9hZGVkIG9yIG90aGVyd2lzZSBpbXBhaXJlZCwgYW5kIHdvdWxkIGNhdXNlIGZhbHNlIGFsYXJtcy5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNIdHRwR2F0ZXdheUVycm9ycyhvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgc3RhdGlzdGljOiBTdGF0aXN0aWMuU1VNLFxuICAgICAgLi4ub3B0cyxcbiAgICAgIG1ldHJpY05hbWU6IE1ldHJpY05hbWUuSFRUUF9HQVRFV0FZX0VSUk9SUyxcbiAgICAgIG5hbWVzcGFjZTogTUVUUklDU19OQU1FU1BBQ0UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbWV0cmljRXJyb3JzKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVyLm1ldHJpY0Vycm9ycyhvcHRzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNJbnZvY2F0aW9ucyhvcHRzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlci5tZXRyaWNJbnZvY2F0aW9ucyhvcHRzKTtcbiAgfVxuXG4gIHB1YmxpYyBtZXRyaWNUaHJvdHRsZXMob3B0cz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZXIubWV0cmljVGhyb3R0bGVzKG9wdHMpO1xuICB9XG5cbiAgcHVibGljIG1ldHJpY0R1cmF0aW9uKG9wdHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVyLm1ldHJpY0R1cmF0aW9uKG9wdHMpO1xuICB9XG59XG4iXX0=
@@ -8076,6 +8076,8 @@ var require_lib2 = __commonJS({
8076
8076
  var npmjs_package_canary_lambda_exports = {};
8077
8077
  __export(npmjs_package_canary_lambda_exports, {
8078
8078
  CanaryStateService: () => CanaryStateService,
8079
+ HTTPError: () => HTTPError,
8080
+ TimeoutError: () => TimeoutError,
8079
8081
  handler: () => handler
8080
8082
  });
8081
8083
  module.exports = __toCommonJS(npmjs_package_canary_lambda_exports);
@@ -8120,58 +8122,81 @@ async function handler(event) {
8120
8122
  const constructHubEndpoint = requireEnv("CONSTRUCT_HUB_BASE_URL" /* CONSTRUCT_HUB_BASE_URL */);
8121
8123
  const stateService = new CanaryStateService(stateBucket);
8122
8124
  const constructHub = new ConstructHub(constructHubEndpoint);
8123
- const latest = await stateService.latest(packageName);
8124
- const state = await stateService.load(packageName) ?? {
8125
- latest: __spreadProps(__spreadValues({}, latest), {
8126
- availableAt: await constructHub.isInCatalog(packageName, latest.version) ? latest.publishedAt : void 0
8127
- }),
8128
- pending: {}
8129
- };
8130
- console.log(`Initial state: ${JSON.stringify(state, null, 2)}`);
8131
- updateLatestIfNeeded(state, latest);
8132
8125
  try {
8133
- const replicaLag = await stateService.npmReplicaLagSeconds(packageName);
8134
- await (0, import_aws_embedded_metrics.metricScope)((metrics) => async () => {
8135
- metrics.setDimensions();
8136
- metrics.putMetric("TrackedVersionCount" /* TRACKED_VERSION_COUNT */, Object.keys(state.pending).length + 1, import_aws_embedded_metrics.Unit.Count);
8137
- metrics.putMetric("NpmReplicaIsDown" /* NPM_REPLICA_DOWN */, await stateService.isNpmReplicaDown() ? 1 : 0, import_aws_embedded_metrics.Unit.None);
8138
- if (replicaLag !== void 0) {
8139
- metrics.putMetric("EstimatedNpmReplicaLag" /* NPM_REPLICA_LAG */, replicaLag, import_aws_embedded_metrics.Unit.Seconds);
8140
- }
8141
- })();
8142
- for (const versionState of [
8143
- state.latest,
8144
- ...Object.values(state.pending ?? {})
8145
- ]) {
8146
- console.log(`Checking state of ${versionState.version}, current: ${JSON.stringify(versionState, null, 2)}`);
8126
+ const latest = await stateService.latest(packageName);
8127
+ const state = await stateService.load(packageName) ?? {
8128
+ latest: __spreadProps(__spreadValues({}, latest), {
8129
+ availableAt: await constructHub.isInCatalog(packageName, latest.version) ? latest.publishedAt : void 0
8130
+ }),
8131
+ pending: {}
8132
+ };
8133
+ console.log(`Initial state: ${JSON.stringify(state, null, 2)}`);
8134
+ updateLatestIfNeeded(state, latest);
8135
+ try {
8136
+ const replicaLag = await stateService.npmReplicaLagSeconds(packageName);
8147
8137
  await (0, import_aws_embedded_metrics.metricScope)((metrics) => async () => {
8148
8138
  metrics.setDimensions();
8149
- metrics.setProperty("PackageName", packageName);
8150
- metrics.setProperty("PackageVersion", versionState.version);
8151
- metrics.setProperty("IsLatest", state.latest.version === versionState.version);
8152
- if (!versionState.availableAt) {
8153
- if (versionState.version === state.latest.version) {
8154
- if (await constructHub.isInCatalog(packageName, versionState.version)) {
8155
- versionState.availableAt = new Date();
8156
- }
8157
- } else {
8158
- if (await constructHub.hasTypeScriptDocumentation(packageName, versionState.version)) {
8159
- versionState.availableAt = new Date();
8139
+ metrics.putMetric("TrackedVersionCount" /* TRACKED_VERSION_COUNT */, Object.keys(state.pending).length + 1, import_aws_embedded_metrics.Unit.Count);
8140
+ metrics.putMetric("NpmReplicaIsDown" /* NPM_REPLICA_DOWN */, await stateService.isNpmReplicaDown() ? 1 : 0, import_aws_embedded_metrics.Unit.None);
8141
+ if (replicaLag !== void 0) {
8142
+ metrics.putMetric("EstimatedNpmReplicaLag" /* NPM_REPLICA_LAG */, replicaLag, import_aws_embedded_metrics.Unit.Seconds);
8143
+ }
8144
+ })();
8145
+ for (const versionState of [
8146
+ state.latest,
8147
+ ...Object.values(state.pending ?? {})
8148
+ ]) {
8149
+ console.log(`Checking state of ${versionState.version}, current: ${JSON.stringify(versionState, null, 2)}`);
8150
+ await (0, import_aws_embedded_metrics.metricScope)((metrics) => async () => {
8151
+ metrics.setDimensions();
8152
+ metrics.setProperty("PackageName", packageName);
8153
+ metrics.setProperty("PackageVersion", versionState.version);
8154
+ metrics.setProperty("IsLatest", state.latest.version === versionState.version);
8155
+ if (!versionState.availableAt) {
8156
+ if (versionState.version === state.latest.version) {
8157
+ if (await constructHub.isInCatalog(packageName, versionState.version)) {
8158
+ versionState.availableAt = new Date();
8159
+ }
8160
+ } else {
8161
+ if (await constructHub.hasTypeScriptDocumentation(packageName, versionState.version)) {
8162
+ versionState.availableAt = new Date();
8163
+ }
8160
8164
  }
8161
8165
  }
8162
- }
8163
- if (versionState.availableAt) {
8164
- metrics.putMetric("TimeToCatalog" /* TIME_TO_CATALOG */, (versionState.availableAt.getTime() - versionState.publishedAt.getTime()) / 1e3, import_aws_embedded_metrics.Unit.Seconds);
8165
- if (versionState.version in state.pending) {
8166
- delete state.pending[versionState.version];
8166
+ if (versionState.availableAt) {
8167
+ metrics.putMetric("TimeToCatalog" /* TIME_TO_CATALOG */, (versionState.availableAt.getTime() - versionState.publishedAt.getTime()) / 1e3, import_aws_embedded_metrics.Unit.Seconds);
8168
+ if (versionState.version in state.pending) {
8169
+ delete state.pending[versionState.version];
8170
+ }
8171
+ } else {
8172
+ metrics.putMetric("DwellTime" /* DWELL_TIME */, (Date.now() - versionState.publishedAt.getTime()) / 1e3, import_aws_embedded_metrics.Unit.Seconds);
8167
8173
  }
8168
- } else {
8169
- metrics.putMetric("DwellTime" /* DWELL_TIME */, (Date.now() - versionState.publishedAt.getTime()) / 1e3, import_aws_embedded_metrics.Unit.Seconds);
8170
- }
8174
+ metrics.putMetric("HttpGatewayErrors" /* HTTP_GATEWAY_ERRORS */, 0, import_aws_embedded_metrics.Unit.Count);
8175
+ })();
8176
+ }
8177
+ } finally {
8178
+ await stateService.save(packageName, state);
8179
+ }
8180
+ } catch (error) {
8181
+ if (error instanceof HTTPError && (error.httpStatusCode === 502 || error.httpStatusCode === 504)) {
8182
+ console.error("HTTP 5XX from a dependency, assuming this is transient:", error);
8183
+ await (0, import_aws_embedded_metrics.metricScope)((metrics) => async () => {
8184
+ metrics.setDimensions();
8185
+ metrics.setProperty("ErrorCode", error.httpStatusCode);
8186
+ metrics.setProperty("ErrorMessage", error.message);
8187
+ metrics.putMetric("HttpGatewayErrors" /* HTTP_GATEWAY_ERRORS */, 1, import_aws_embedded_metrics.Unit.Count);
8171
8188
  })();
8189
+ } else if (error instanceof TimeoutError) {
8190
+ console.error(`Request timeout from a dependency, assuming this is transient:`, error);
8191
+ await (0, import_aws_embedded_metrics.metricScope)((metrics) => async () => {
8192
+ metrics.setDimensions();
8193
+ metrics.setProperty("ErrorCode", "REQUEST_TIMEOUT");
8194
+ metrics.setProperty("ErrorMessage", error.message);
8195
+ metrics.putMetric("HttpGatewayErrors" /* HTTP_GATEWAY_ERRORS */, 1, import_aws_embedded_metrics.Unit.Count);
8196
+ })();
8197
+ } else {
8198
+ throw error;
8172
8199
  }
8173
- } finally {
8174
- await stateService.save(packageName, state);
8175
8200
  }
8176
8201
  }
8177
8202
  var _catalog;
@@ -8196,7 +8221,7 @@ var ConstructHub = class {
8196
8221
  if (res.statusCode === 200) {
8197
8222
  return ok(!!((_a = res.headers["content-type"]) == null ? void 0 : _a.startsWith("text/markdown")));
8198
8223
  }
8199
- const err = new Error(`HEAD ${url} -- HTTP ${res.statusCode} (${res.statusMessage})`);
8224
+ const err = new HTTPError(res.statusCode, `HEAD ${url} -- HTTP ${res.statusCode} (${res.statusMessage})`);
8200
8225
  Error.captureStackTrace(err);
8201
8226
  ko(err);
8202
8227
  }).end();
@@ -8244,14 +8269,14 @@ var CanaryStateService = class {
8244
8269
  }
8245
8270
  async latest(packageName) {
8246
8271
  console.log(`Fetching latest version information from NPM: ${packageName}`);
8247
- const version = await getJSON(`https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`, ["version"]);
8248
- const publishedAt = await getJSON(`https://registry.npmjs.org/${encodeURIComponent(packageName)}`, ["time", version]);
8272
+ const version = await getJSON(`https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`, { jsonPath: ["version"] });
8273
+ const publishedAt = await getJSON(`https://registry.npmjs.org/${encodeURIComponent(packageName)}`, { jsonPath: ["time", version] });
8249
8274
  console.log(`Package: ${packageName} | Version : ${version} | Published At: ${publishedAt}`);
8250
8275
  return { version, publishedAt: new Date(publishedAt) };
8251
8276
  }
8252
8277
  async isNpmReplicaDown() {
8253
8278
  try {
8254
- await getJSON("https://replicate.npmjs.com/");
8279
+ await getJSON("https://replicate.npmjs.com/", { timeoutMillis: 5e3 });
8255
8280
  return false;
8256
8281
  } catch (e) {
8257
8282
  return true;
@@ -8263,7 +8288,7 @@ var CanaryStateService = class {
8263
8288
  const primaryDate = await getModifiedTimestamp(`registry.npmjs.org`);
8264
8289
  let replicaDate;
8265
8290
  try {
8266
- replicaDate = await getModifiedTimestamp(`replicate.npmjs.com/registry`);
8291
+ replicaDate = await getModifiedTimestamp(`replicate.npmjs.com/registry`, 5e3);
8267
8292
  } catch (e) {
8268
8293
  if (e instanceof Error && e.message.includes("HTTP 504")) {
8269
8294
  console.log(`Warning: error fetching replicate.npmjs.com: ${e.toString()}`);
@@ -8276,8 +8301,8 @@ var CanaryStateService = class {
8276
8301
  console.log(`Timestamp on primary: ${primaryDate.toISOString()}`);
8277
8302
  console.log(`Timestamp on replica: ${replicaDate.toISOString()} (${deltaMs / 36e5} hours behind)`);
8278
8303
  return deltaMs / 1e3;
8279
- async function getModifiedTimestamp(baseUrl) {
8280
- const isoDate = await getJSON(`https://${baseUrl}/${encodedPackageName}`, ["time", "modified"]);
8304
+ async function getModifiedTimestamp(baseUrl, timeoutMillis) {
8305
+ const isoDate = await getJSON(`https://${baseUrl}/${encodedPackageName}`, { jsonPath: ["time", "modified"], timeoutMillis });
8281
8306
  return new Date(isoDate);
8282
8307
  }
8283
8308
  }
@@ -8288,22 +8313,47 @@ var CanaryStateService = class {
8288
8313
  return `s3://${this.bucketName}/${this.key(packageName)}`;
8289
8314
  }
8290
8315
  };
8291
- function getJSON(url, jsonPath) {
8316
+ var HTTPError = class extends Error {
8317
+ constructor(httpStatusCode, message) {
8318
+ super(message);
8319
+ this.httpStatusCode = httpStatusCode;
8320
+ Error.captureStackTrace(this, HTTPError);
8321
+ }
8322
+ };
8323
+ var TimeoutError = class extends Error {
8324
+ constructor(message) {
8325
+ super(message);
8326
+ Error.captureStackTrace(this, TimeoutError);
8327
+ }
8328
+ };
8329
+ function getJSON(url, {
8330
+ jsonPath,
8331
+ timeoutMillis
8332
+ } = {}) {
8292
8333
  return new Promise((ok, ko) => {
8293
8334
  https.get(url, {
8294
- headers: { Accept: "application/json", "Accept-Encoding": "identity" }
8335
+ headers: {
8336
+ Accept: "application/json",
8337
+ "Accept-Encoding": "identity"
8338
+ },
8339
+ timeout: timeoutMillis
8295
8340
  }, (res) => {
8296
8341
  if (res.statusCode !== 200) {
8297
- const error = new Error(`GET ${url} - HTTP ${res.statusCode} (${res.statusMessage})`);
8342
+ const error = new HTTPError(res.statusCode, `GET ${url} - HTTP ${res.statusCode} (${res.statusMessage})`);
8298
8343
  Error.captureStackTrace(error);
8299
8344
  return ko(error);
8300
8345
  }
8301
8346
  res.once("error", ko);
8347
+ res.once("timeout", () => {
8348
+ ko(new TimeoutError(`Request timed out (after ${timeoutMillis ?? "N/A"} ms): GET ${url}`));
8349
+ });
8302
8350
  const json = JSONStream.parse(jsonPath);
8303
8351
  json.once("data", ok);
8304
8352
  json.once("error", ko);
8305
8353
  const plainPayload = res.headers["content-encoding"] === "gzip" ? gunzip(res) : res;
8306
8354
  plainPayload.pipe(json, { end: true });
8355
+ }).once("timeout", () => {
8356
+ ko(new TimeoutError(`Request timed out (after ${timeoutMillis ?? "N/A"} ms): GET ${url}`));
8307
8357
  });
8308
8358
  });
8309
8359
  }
@@ -8326,6 +8376,8 @@ function gunzip(readable) {
8326
8376
  // Annotate the CommonJS export names for ESM import in node:
8327
8377
  0 && (module.exports = {
8328
8378
  CanaryStateService,
8379
+ HTTPError,
8380
+ TimeoutError,
8329
8381
  handler
8330
8382
  });
8331
8383
  //# sourceMappingURL=index.js.map