cloudstructs 0.6.5 → 0.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/.gitattributes +2 -0
  2. package/.jsii +220 -4
  3. package/API.md +70 -0
  4. package/README.md +3 -0
  5. package/assets/slack-app/provider.lambda/index.js +2 -5
  6. package/assets/slack-textract/detect.lambda/index.js +2 -5
  7. package/assets/ssl-server-test/analyze.lambda/index.js +6465 -0
  8. package/assets/ssl-server-test/extract-grade.lambda/index.js +31 -0
  9. package/lib/codecommit-mirror/index.js +2 -2
  10. package/lib/ecs-service-roller/index.js +2 -2
  11. package/lib/email-receiver/receiver.js +1 -1
  12. package/lib/index.d.ts +1 -0
  13. package/lib/index.js +2 -1
  14. package/lib/saml-identity-provider/index.js +2 -2
  15. package/lib/slack-app/manifest.js +1 -1
  16. package/lib/slack-app/slack-app.js +2 -2
  17. package/lib/slack-events/index.js +1 -1
  18. package/lib/slack-textract/index.js +1 -1
  19. package/lib/ssl-server-test/analyze-function.d.ts +13 -0
  20. package/lib/ssl-server-test/analyze-function.js +23 -0
  21. package/lib/ssl-server-test/analyze.lambda.d.ts +1 -0
  22. package/lib/ssl-server-test/analyze.lambda.js +15 -0
  23. package/lib/ssl-server-test/extract-grade-function.d.ts +13 -0
  24. package/lib/ssl-server-test/extract-grade-function.js +23 -0
  25. package/lib/ssl-server-test/extract-grade.lambda.d.ts +7 -0
  26. package/lib/ssl-server-test/extract-grade.lambda.js +8 -0
  27. package/lib/ssl-server-test/index.d.ts +58 -0
  28. package/lib/ssl-server-test/index.js +123 -0
  29. package/lib/state-machine-cr-provider/index.js +1 -1
  30. package/lib/static-website/index.js +1 -1
  31. package/lib/toolkit-cleaner/index.js +5 -3
  32. package/lib/url-shortener/index.js +1 -1
  33. package/node_modules/@slack/logger/node_modules/@types/node/README.md +1 -1
  34. package/node_modules/@slack/logger/node_modules/@types/node/crypto.d.ts +2 -5
  35. package/node_modules/@slack/logger/node_modules/@types/node/fs/promises.d.ts +20 -15
  36. package/node_modules/@slack/logger/node_modules/@types/node/inspector.d.ts +1 -1
  37. package/node_modules/@slack/logger/node_modules/@types/node/package.json +2 -2
  38. package/node_modules/@slack/logger/node_modules/@types/node/perf_hooks.d.ts +13 -3
  39. package/node_modules/@slack/logger/node_modules/@types/node/test.d.ts +14 -0
  40. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  41. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +2 -5
  42. package/node_modules/@slack/web-api/node_modules/@types/node/fs/promises.d.ts +20 -15
  43. package/node_modules/@slack/web-api/node_modules/@types/node/inspector.d.ts +1 -1
  44. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  45. package/node_modules/@slack/web-api/node_modules/@types/node/perf_hooks.d.ts +13 -3
  46. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +14 -0
  47. package/node_modules/@types/cacheable-request/node_modules/@types/node/README.md +1 -1
  48. package/node_modules/@types/cacheable-request/node_modules/@types/node/crypto.d.ts +2 -5
  49. package/node_modules/@types/cacheable-request/node_modules/@types/node/fs/promises.d.ts +20 -15
  50. package/node_modules/@types/cacheable-request/node_modules/@types/node/inspector.d.ts +1 -1
  51. package/node_modules/@types/cacheable-request/node_modules/@types/node/package.json +2 -2
  52. package/node_modules/@types/cacheable-request/node_modules/@types/node/perf_hooks.d.ts +13 -3
  53. package/node_modules/@types/cacheable-request/node_modules/@types/node/test.d.ts +14 -0
  54. package/node_modules/@types/is-stream/node_modules/@types/node/README.md +1 -1
  55. package/node_modules/@types/is-stream/node_modules/@types/node/crypto.d.ts +2 -5
  56. package/node_modules/@types/is-stream/node_modules/@types/node/fs/promises.d.ts +20 -15
  57. package/node_modules/@types/is-stream/node_modules/@types/node/inspector.d.ts +1 -1
  58. package/node_modules/@types/is-stream/node_modules/@types/node/package.json +2 -2
  59. package/node_modules/@types/is-stream/node_modules/@types/node/perf_hooks.d.ts +13 -3
  60. package/node_modules/@types/is-stream/node_modules/@types/node/test.d.ts +14 -0
  61. package/node_modules/@types/keyv/node_modules/@types/node/README.md +1 -1
  62. package/node_modules/@types/keyv/node_modules/@types/node/crypto.d.ts +2 -5
  63. package/node_modules/@types/keyv/node_modules/@types/node/fs/promises.d.ts +20 -15
  64. package/node_modules/@types/keyv/node_modules/@types/node/inspector.d.ts +1 -1
  65. package/node_modules/@types/keyv/node_modules/@types/node/package.json +2 -2
  66. package/node_modules/@types/keyv/node_modules/@types/node/perf_hooks.d.ts +13 -3
  67. package/node_modules/@types/keyv/node_modules/@types/node/test.d.ts +14 -0
  68. package/node_modules/@types/responselike/node_modules/@types/node/README.md +1 -1
  69. package/node_modules/@types/responselike/node_modules/@types/node/crypto.d.ts +2 -5
  70. package/node_modules/@types/responselike/node_modules/@types/node/fs/promises.d.ts +20 -15
  71. package/node_modules/@types/responselike/node_modules/@types/node/inspector.d.ts +1 -1
  72. package/node_modules/@types/responselike/node_modules/@types/node/package.json +2 -2
  73. package/node_modules/@types/responselike/node_modules/@types/node/perf_hooks.d.ts +13 -3
  74. package/node_modules/@types/responselike/node_modules/@types/node/test.d.ts +14 -0
  75. package/node_modules/keyv/package.json +4 -4
  76. package/node_modules/keyv/src/index.d.ts +1 -1
  77. package/node_modules/keyv/src/index.js +2 -6
  78. package/package.json +17 -7
@@ -97,7 +97,7 @@ class StaticWebsite extends constructs_1.Construct {
97
97
  }
98
98
  exports.StaticWebsite = StaticWebsite;
99
99
  _a = JSII_RTTI_SYMBOL_1;
100
- StaticWebsite[_a] = { fqn: "cloudstructs.StaticWebsite", version: "0.6.5" };
100
+ StaticWebsite[_a] = { fqn: "cloudstructs.StaticWebsite", version: "0.6.8" };
101
101
  /**
102
102
  * Best practice security headers used as default
103
103
  */
@@ -30,7 +30,9 @@ class ToolkitCleaner extends constructs_1.Construct {
30
30
  const dockerImageAsset = new aws_ecr_assets_1.DockerImageAsset(this, 'DockerImageAsset', {
31
31
  directory: path.join(__dirname, '..', '..', 'assets', 'toolkit-cleaner', 'docker'),
32
32
  });
33
- const getStackNamesFunction = new get_stack_names_function_1.GetStackNamesFunction(this, 'GetStackNamesFunction');
33
+ const getStackNamesFunction = new get_stack_names_function_1.GetStackNamesFunction(this, 'GetStackNamesFunction', {
34
+ timeout: aws_cdk_lib_1.Duration.seconds(30),
35
+ });
34
36
  getStackNamesFunction.addToRolePolicy(new aws_iam_1.PolicyStatement({
35
37
  actions: ['cloudformation:DescribeStacks'],
36
38
  resources: ['*'],
@@ -110,5 +112,5 @@ class ToolkitCleaner extends constructs_1.Construct {
110
112
  }
111
113
  exports.ToolkitCleaner = ToolkitCleaner;
112
114
  _a = JSII_RTTI_SYMBOL_1;
113
- ToolkitCleaner[_a] = { fqn: "cloudstructs.ToolkitCleaner", version: "0.6.5" };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbGtpdC1jbGVhbmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUF1QztBQUN2QywrREFBOEQ7QUFDOUQsdURBQXdEO0FBQ3hELHVFQUFpRTtBQUNqRSxpREFBc0Q7QUFDdEQsNkRBQWtEO0FBQ2xELHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFDN0QsMkNBQXVDO0FBQ3ZDLG1FQUE4RDtBQUM5RCxxRUFBZ0U7QUFDaEUseUZBQW1GO0FBQ25GLHlFQUFtRTtBQW1DbkU7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTZCLEVBQUU7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQix5REFBeUQ7UUFDekQsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBSyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUM7U0FDM0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGlDQUFnQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUN0RSxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxDQUFDO1NBQ25GLENBQUMsQ0FBQztRQUVILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxnREFBcUIsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUN2RixxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSx5QkFB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QUFFLEtBQUssQ0FBQyxRQUFRLElBQUkscUJBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLG9DQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOztBQWxHSCx3Q0FtR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZUFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHMnO1xuaW1wb3J0IHsgUnVsZSwgU2NoZWR1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCB7IFNmblN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgdGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDbGVhbkltYWdlc0Z1bmN0aW9uIH0gZnJvbSAnLi9jbGVhbi1pbWFnZXMtZnVuY3Rpb24nO1xuaW1wb3J0IHsgQ2xlYW5PYmplY3RzRnVuY3Rpb24gfSBmcm9tICcuL2NsZWFuLW9iamVjdHMtZnVuY3Rpb24nO1xuaW1wb3J0IHsgRXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24gfSBmcm9tICcuL2V4dHJhY3QtdGVtcGxhdGUtaGFzaGVzLWZ1bmN0aW9uJztcbmltcG9ydCB7IEdldFN0YWNrTmFtZXNGdW5jdGlvbiB9IGZyb20gJy4vZ2V0LXN0YWNrLW5hbWVzLWZ1bmN0aW9uJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFRvb2xraXRDbGVhbmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbGtpdENsZWFuZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc2NoZWR1bGUgZm9yIHRoZSBjbGVhbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGV2ZXJ5IGRheVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBTY2hlZHVsZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjbGVhbiBvbiBzY2hlZHVsZS4gSWYgeW91J2QgbGlrZSB0byBydW4gdGhlIGNsZWFudXAgbWFudWFsbHlcbiAgICogdmlhIHRoZSBjb25zb2xlLCBzZXQgdG8gYGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGVFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT25seSBvdXRwdXQgbnVtYmVyIG9mIGFzc2V0cyBhbmQgdG90YWwgc2l6ZSB0aGF0IHdvdWxkIGJlIGRlbGV0ZWRcbiAgICogYnV0IHdpdGhvdXQgYWN0dWFsbHkgZGVsZXRpbmcgYXNzZXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZHJ5UnVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV0YWluIHVudXNlZCBhc3NldHMgdGhhdCB3ZXJlIGNyZWF0ZWQgcmVjZW50bHlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgdW51c2VkIGFzc2V0cyBhcmUgcmVtb3ZlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmV0YWluQXNzZXRzTmV3ZXJUaGFuPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQ2xlYW4gdW51c2VkIFMzIGFuZCBFQ1IgYXNzZXRzIGZyb20geW91ciBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRvb2xraXRDbGVhbmVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRvb2xraXRDbGVhbmVyUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBEdW1teSBhc3NldHMgdG8gcmVmZXJlbmNlIFMzIGJ1Y2tldCBhbmQgRUNSIHJlcG9zaXRvcnlcbiAgICBjb25zdCBmaWxlQXNzZXQgPSBuZXcgQXNzZXQodGhpcywgJ0ZpbGVBc3NldCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICdhc3NldHMnLCAndG9vbGtpdC1jbGVhbmVyJywgJ2RvY2tlcicsICdkdW1teS50eHQnKSxcbiAgICB9KTtcbiAgICBjb25zdCBkb2NrZXJJbWFnZUFzc2V0ID0gbmV3IERvY2tlckltYWdlQXNzZXQodGhpcywgJ0RvY2tlckltYWdlQXNzZXQnLCB7XG4gICAgICBkaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICdhc3NldHMnLCAndG9vbGtpdC1jbGVhbmVyJywgJ2RvY2tlcicpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZ2V0U3RhY2tOYW1lc0Z1bmN0aW9uID0gbmV3IEdldFN0YWNrTmFtZXNGdW5jdGlvbih0aGlzLCAnR2V0U3RhY2tOYW1lc0Z1bmN0aW9uJyk7XG4gICAgZ2V0U3RhY2tOYW1lc0Z1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnY2xvdWRmb3JtYXRpb246RGVzY3JpYmVTdGFja3MnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgfSkpO1xuICAgIGNvbnN0IGdldFN0YWNrTmFtZXMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdHZXRTdGFja05hbWVzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IGdldFN0YWNrTmFtZXNGdW5jdGlvbixcbiAgICAgIHBheWxvYWRSZXNwb25zZU9ubHk6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGFja3NNYXAgPSBuZXcgc2ZuLk1hcCh0aGlzLCAnU3RhY2tzTWFwJywge1xuICAgICAgbWF4Q29uY3VycmVuY3k6IDEsIC8vIEF2b2lkIFwiUmF0ZSBleGNlZWRlZFwiIGVycm9yIGZyb20gQ2xvdWRGb3JtYXRpb25cbiAgICAgIHJlc3VsdFNlbGVjdG9yOiB7XG4gICAgICAgIEFzc2V0SGFzaGVzOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQnKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBleHRyYWN0VGVtcGxhdGVIYXNoZXNGdW5jdGlvbiA9IG5ldyBFeHRyYWN0VGVtcGxhdGVIYXNoZXNGdW5jdGlvbih0aGlzLCAnRXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24nLCB7XG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICB9KTtcbiAgICBleHRyYWN0VGVtcGxhdGVIYXNoZXNGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3kobmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbJ2Nsb3VkZm9ybWF0aW9uOkdldFRlbXBsYXRlJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcbiAgICBjb25zdCBleHRyYWN0VGVtcGxhdGVIYXNoZXMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdFeHRyYWN0VGVtcGxhdGVIYXNoZXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogZXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24sXG4gICAgICBwYXlsb2FkUmVzcG9uc2VPbmx5OiB0cnVlLFxuICAgIH0pLmFkZFJldHJ5KHtcbiAgICAgIGVycm9yczogWydUaHJvdHRsaW5nJ10sIC8vIEF2b2lkIFwiUmF0ZSBleGNlZWRlZFwiIGVycm9yIGZyb20gQ2xvdWRGb3JtYXRpb25cbiAgICB9KTtcblxuICAgIGNvbnN0IGZsYXR0ZW5IYXNoZXMgPSBuZXcgdGFza3MuRXZhbHVhdGVFeHByZXNzaW9uKHRoaXMsICdGbGF0dGVuSGFzaGVzJywge1xuICAgICAgZXhwcmVzc2lvbjogJ1suLi5uZXcgU2V0KCgkLkFzc2V0SGFzaGVzKS5mbGF0KCkpXScsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjbGVhbk9iamVjdHNGdW5jdGlvbiA9IG5ldyBDbGVhbk9iamVjdHNGdW5jdGlvbih0aGlzLCAnQ2xlYW5PYmplY3RzRnVuY3Rpb24nLCB7XG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgIH0pO1xuICAgIGNsZWFuT2JqZWN0c0Z1bmN0aW9uLmFkZEVudmlyb25tZW50KCdCVUNLRVRfTkFNRScsIGZpbGVBc3NldC5idWNrZXQuYnVja2V0TmFtZSk7XG4gICAgZmlsZUFzc2V0LmJ1Y2tldC5ncmFudFJlYWQoY2xlYW5PYmplY3RzRnVuY3Rpb24pO1xuICAgIGZpbGVBc3NldC5idWNrZXQuZ3JhbnREZWxldGUoY2xlYW5PYmplY3RzRnVuY3Rpb24pO1xuICAgIGNvbnN0IGNsZWFuT2JqZWN0cyA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ0NsZWFuT2JqZWN0cycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBjbGVhbk9iamVjdHNGdW5jdGlvbixcbiAgICAgIHBheWxvYWRSZXNwb25zZU9ubHk6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjbGVhbkltYWdlc0Z1bmN0aW9uID0gbmV3IENsZWFuSW1hZ2VzRnVuY3Rpb24odGhpcywgJ0NsZWFuSW1hZ2VzRnVuY3Rpb24nLCB7XG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgIH0pO1xuICAgIGNsZWFuSW1hZ2VzRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoJ1JFUE9TSVRPUllfTkFNRScsIGRvY2tlckltYWdlQXNzZXQucmVwb3NpdG9yeS5yZXBvc2l0b3J5TmFtZSk7XG4gICAgZG9ja2VySW1hZ2VBc3NldC5yZXBvc2l0b3J5LmdyYW50KGNsZWFuSW1hZ2VzRnVuY3Rpb24sICdlY3I6RGVzY3JpYmVJbWFnZXMnLCAnZWNyOkJhdGNoRGVsZXRlSW1hZ2UnKTtcbiAgICBjb25zdCBjbGVhbkltYWdlcyA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ0NsZWFuSW1hZ2VzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IGNsZWFuSW1hZ2VzRnVuY3Rpb24sXG4gICAgICBwYXlsb2FkUmVzcG9uc2VPbmx5OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKCFwcm9wcy5kcnlSdW4pIHtcbiAgICAgIGNsZWFuT2JqZWN0c0Z1bmN0aW9uLmFkZEVudmlyb25tZW50KCdSVU4nLCAndHJ1ZScpO1xuICAgICAgY2xlYW5JbWFnZXNGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnUlVOJywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMucmV0YWluQXNzZXRzTmV3ZXJUaGFuKSB7XG4gICAgICBjb25zdCByZXRhaW5NaWxsaXNlY29uZHMgPSBwcm9wcy5yZXRhaW5Bc3NldHNOZXdlclRoYW4udG9NaWxsaXNlY29uZHMoKS50b1N0cmluZygpO1xuICAgICAgY2xlYW5PYmplY3RzRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoJ1JFVEFJTl9NSUxMSVNFQ09ORFMnLCByZXRhaW5NaWxsaXNlY29uZHMpO1xuICAgICAgY2xlYW5JbWFnZXNGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnUkVUQUlOX01JTExJU0VDT05EUycsIHJldGFpbk1pbGxpc2Vjb25kcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3VtUmVjbGFpbWVkID0gbmV3IHRhc2tzLkV2YWx1YXRlRXhwcmVzc2lvbih0aGlzLCAnU3VtUmVjbGFpbWVkJywge1xuICAgICAgZXhwcmVzc2lvbjogJyh7IERlbGV0ZWQ6ICRbMF0uRGVsZXRlZCArICRbMV0uRGVsZXRlZCwgUmVjbGFpbWVkOiAkWzBdLlJlY2xhaW1lZCArICRbMV0uUmVjbGFpbWVkIH0pJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YXRlTWFjaGluZSA9IG5ldyBzZm4uU3RhdGVNYWNoaW5lKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGRlZmluaXRpb246IGdldFN0YWNrTmFtZXNcbiAgICAgICAgLm5leHQoc3RhY2tzTWFwLml0ZXJhdG9yKGV4dHJhY3RUZW1wbGF0ZUhhc2hlcykpXG4gICAgICAgIC5uZXh0KGZsYXR0ZW5IYXNoZXMpXG4gICAgICAgIC5uZXh0KG5ldyBzZm4uUGFyYWxsZWwodGhpcywgJ0NsZWFuJylcbiAgICAgICAgICAuYnJhbmNoKGNsZWFuT2JqZWN0cylcbiAgICAgICAgICAuYnJhbmNoKGNsZWFuSW1hZ2VzKSlcbiAgICAgICAgLm5leHQoc3VtUmVjbGFpbWVkKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZSh0aGlzLCAnUnVsZScsIHtcbiAgICAgIGVuYWJsZWQ6IHByb3BzLnNjaGVkdWxlRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgc2NoZWR1bGU6IHByb3BzLnNjaGVkdWxlID8/IFNjaGVkdWxlLnJhdGUoRHVyYXRpb24uZGF5cygxKSksXG4gICAgfSk7XG4gICAgcnVsZS5hZGRUYXJnZXQobmV3IFNmblN0YXRlTWFjaGluZShzdGF0ZU1hY2hpbmUpKTtcbiAgfVxufVxuIl19
115
+ ToolkitCleaner[_a] = { fqn: "cloudstructs.ToolkitCleaner", version: "0.6.8" };
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbGtpdC1jbGVhbmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUF1QztBQUN2QywrREFBOEQ7QUFDOUQsdURBQXdEO0FBQ3hELHVFQUFpRTtBQUNqRSxpREFBc0Q7QUFDdEQsNkRBQWtEO0FBQ2xELHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFDN0QsMkNBQXVDO0FBQ3ZDLG1FQUE4RDtBQUM5RCxxRUFBZ0U7QUFDaEUseUZBQW1GO0FBQ25GLHlFQUFtRTtBQW1DbkU7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTZCLEVBQUU7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQix5REFBeUQ7UUFDekQsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBSyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUM7U0FDM0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGlDQUFnQixDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUN0RSxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxDQUFDO1NBQ25GLENBQUMsQ0FBQztRQUVILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxnREFBcUIsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDckYsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUs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QUFFO1lBQ2xDLE9BQU8sRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDdEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUkscUJBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLG9DQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOztBQXBHSCx3Q0FxR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZUFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHMnO1xuaW1wb3J0IHsgUnVsZSwgU2NoZWR1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCB7IFNmblN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgdGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDbGVhbkltYWdlc0Z1bmN0aW9uIH0gZnJvbSAnLi9jbGVhbi1pbWFnZXMtZnVuY3Rpb24nO1xuaW1wb3J0IHsgQ2xlYW5PYmplY3RzRnVuY3Rpb24gfSBmcm9tICcuL2NsZWFuLW9iamVjdHMtZnVuY3Rpb24nO1xuaW1wb3J0IHsgRXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24gfSBmcm9tICcuL2V4dHJhY3QtdGVtcGxhdGUtaGFzaGVzLWZ1bmN0aW9uJztcbmltcG9ydCB7IEdldFN0YWNrTmFtZXNGdW5jdGlvbiB9IGZyb20gJy4vZ2V0LXN0YWNrLW5hbWVzLWZ1bmN0aW9uJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFRvb2xraXRDbGVhbmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbGtpdENsZWFuZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc2NoZWR1bGUgZm9yIHRoZSBjbGVhbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGV2ZXJ5IGRheVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBTY2hlZHVsZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBjbGVhbiBvbiBzY2hlZHVsZS4gSWYgeW91J2QgbGlrZSB0byBydW4gdGhlIGNsZWFudXAgbWFudWFsbHlcbiAgICogdmlhIHRoZSBjb25zb2xlLCBzZXQgdG8gYGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGVFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT25seSBvdXRwdXQgbnVtYmVyIG9mIGFzc2V0cyBhbmQgdG90YWwgc2l6ZSB0aGF0IHdvdWxkIGJlIGRlbGV0ZWRcbiAgICogYnV0IHdpdGhvdXQgYWN0dWFsbHkgZGVsZXRpbmcgYXNzZXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZHJ5UnVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV0YWluIHVudXNlZCBhc3NldHMgdGhhdCB3ZXJlIGNyZWF0ZWQgcmVjZW50bHlcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgdW51c2VkIGFzc2V0cyBhcmUgcmVtb3ZlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmV0YWluQXNzZXRzTmV3ZXJUaGFuPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQ2xlYW4gdW51c2VkIFMzIGFuZCBFQ1IgYXNzZXRzIGZyb20geW91ciBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRvb2xraXRDbGVhbmVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFRvb2xraXRDbGVhbmVyUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBEdW1teSBhc3NldHMgdG8gcmVmZXJlbmNlIFMzIGJ1Y2tldCBhbmQgRUNSIHJlcG9zaXRvcnlcbiAgICBjb25zdCBmaWxlQXNzZXQgPSBuZXcgQXNzZXQodGhpcywgJ0ZpbGVBc3NldCcsIHtcbiAgICAgIHBhdGg6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICdhc3NldHMnLCAndG9vbGtpdC1jbGVhbmVyJywgJ2RvY2tlcicsICdkdW1teS50eHQnKSxcbiAgICB9KTtcbiAgICBjb25zdCBkb2NrZXJJbWFnZUFzc2V0ID0gbmV3IERvY2tlckltYWdlQXNzZXQodGhpcywgJ0RvY2tlckltYWdlQXNzZXQnLCB7XG4gICAgICBkaXJlY3Rvcnk6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICdhc3NldHMnLCAndG9vbGtpdC1jbGVhbmVyJywgJ2RvY2tlcicpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZ2V0U3RhY2tOYW1lc0Z1bmN0aW9uID0gbmV3IEdldFN0YWNrTmFtZXNGdW5jdGlvbih0aGlzLCAnR2V0U3RhY2tOYW1lc0Z1bmN0aW9uJywge1xuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgfSk7XG4gICAgZ2V0U3RhY2tOYW1lc0Z1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGFjdGlvbnM6IFsnY2xvdWRmb3JtYXRpb246RGVzY3JpYmVTdGFja3MnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgfSkpO1xuICAgIGNvbnN0IGdldFN0YWNrTmFtZXMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdHZXRTdGFja05hbWVzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IGdldFN0YWNrTmFtZXNGdW5jdGlvbixcbiAgICAgIHBheWxvYWRSZXNwb25zZU9ubHk6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGFja3NNYXAgPSBuZXcgc2ZuLk1hcCh0aGlzLCAnU3RhY2tzTWFwJywge1xuICAgICAgbWF4Q29uY3VycmVuY3k6IDEsIC8vIEF2b2lkIFwiUmF0ZSBleGNlZWRlZFwiIGVycm9yIGZyb20gQ2xvdWRGb3JtYXRpb25cbiAgICAgIHJlc3VsdFNlbGVjdG9yOiB7XG4gICAgICAgIEFzc2V0SGFzaGVzOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQnKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBleHRyYWN0VGVtcGxhdGVIYXNoZXNGdW5jdGlvbiA9IG5ldyBFeHRyYWN0VGVtcGxhdGVIYXNoZXNGdW5jdGlvbih0aGlzLCAnRXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24nLCB7XG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICB9KTtcbiAgICBleHRyYWN0VGVtcGxhdGVIYXNoZXNGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3kobmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbJ2Nsb3VkZm9ybWF0aW9uOkdldFRlbXBsYXRlJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcbiAgICBjb25zdCBleHRyYWN0VGVtcGxhdGVIYXNoZXMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdFeHRyYWN0VGVtcGxhdGVIYXNoZXMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogZXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24sXG4gICAgICBwYXlsb2FkUmVzcG9uc2VPbmx5OiB0cnVlLFxuICAgIH0pLmFkZFJldHJ5KHtcbiAgICAgIGVycm9yczogWydUaHJvdHRsaW5nJ10sIC8vIEF2b2lkIFwiUmF0ZSBleGNlZWRlZFwiIGVycm9yIGZyb20gQ2xvdWRGb3JtYXRpb25cbiAgICB9KTtcblxuICAgIGNvbnN0IGZsYXR0ZW5IYXNoZXMgPSBuZXcgdGFza3MuRXZhbHVhdGVFeHByZXNzaW9uKHRoaXMsICdGbGF0dGVuSGFzaGVzJywge1xuICAgICAgZXhwcmVzc2lvbjogJ1suLi5uZXcgU2V0KCgkLkFzc2V0SGFzaGVzKS5mbGF0KCkpXScsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjbGVhbk9iamVjdHNGdW5jdGlvbiA9IG5ldyBDbGVhbk9iamVjdHNGdW5jdGlvbih0aGlzLCAnQ2xlYW5PYmplY3RzRnVuY3Rpb24nLCB7XG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgIH0pO1xuICAgIGNsZWFuT2JqZWN0c0Z1bmN0aW9uLmFkZEVudmlyb25tZW50KCdCVUNLRVRfTkFNRScsIGZpbGVBc3NldC5idWNrZXQuYnVja2V0TmFtZSk7XG4gICAgZmlsZUFzc2V0LmJ1Y2tldC5ncmFudFJlYWQoY2xlYW5PYmplY3RzRnVuY3Rpb24pO1xuICAgIGZpbGVBc3NldC5idWNrZXQuZ3JhbnREZWxldGUoY2xlYW5PYmplY3RzRnVuY3Rpb24pO1xuICAgIGNvbnN0IGNsZWFuT2JqZWN0cyA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ0NsZWFuT2JqZWN0cycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBjbGVhbk9iamVjdHNGdW5jdGlvbixcbiAgICAgIHBheWxvYWRSZXNwb25zZU9ubHk6IHRydWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBjbGVhbkltYWdlc0Z1bmN0aW9uID0gbmV3IENsZWFuSW1hZ2VzRnVuY3Rpb24odGhpcywgJ0NsZWFuSW1hZ2VzRnVuY3Rpb24nLCB7XG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgIH0pO1xuICAgIGNsZWFuSW1hZ2VzRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoJ1JFUE9TSVRPUllfTkFNRScsIGRvY2tlckltYWdlQXNzZXQucmVwb3NpdG9yeS5yZXBvc2l0b3J5TmFtZSk7XG4gICAgZG9ja2VySW1hZ2VBc3NldC5yZXBvc2l0b3J5LmdyYW50KGNsZWFuSW1hZ2VzRnVuY3Rpb24sICdlY3I6RGVzY3JpYmVJbWFnZXMnLCAnZWNyOkJhdGNoRGVsZXRlSW1hZ2UnKTtcbiAgICBjb25zdCBjbGVhbkltYWdlcyA9IG5ldyB0YXNrcy5MYW1iZGFJbnZva2UodGhpcywgJ0NsZWFuSW1hZ2VzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IGNsZWFuSW1hZ2VzRnVuY3Rpb24sXG4gICAgICBwYXlsb2FkUmVzcG9uc2VPbmx5OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgaWYgKCFwcm9wcy5kcnlSdW4pIHtcbiAgICAgIGNsZWFuT2JqZWN0c0Z1bmN0aW9uLmFkZEVudmlyb25tZW50KCdSVU4nLCAndHJ1ZScpO1xuICAgICAgY2xlYW5JbWFnZXNGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnUlVOJywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMucmV0YWluQXNzZXRzTmV3ZXJUaGFuKSB7XG4gICAgICBjb25zdCByZXRhaW5NaWxsaXNlY29uZHMgPSBwcm9wcy5yZXRhaW5Bc3NldHNOZXdlclRoYW4udG9NaWxsaXNlY29uZHMoKS50b1N0cmluZygpO1xuICAgICAgY2xlYW5PYmplY3RzRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoJ1JFVEFJTl9NSUxMSVNFQ09ORFMnLCByZXRhaW5NaWxsaXNlY29uZHMpO1xuICAgICAgY2xlYW5JbWFnZXNGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnUkVUQUlOX01JTExJU0VDT05EUycsIHJldGFpbk1pbGxpc2Vjb25kcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3VtUmVjbGFpbWVkID0gbmV3IHRhc2tzLkV2YWx1YXRlRXhwcmVzc2lvbih0aGlzLCAnU3VtUmVjbGFpbWVkJywge1xuICAgICAgZXhwcmVzc2lvbjogJyh7IERlbGV0ZWQ6ICRbMF0uRGVsZXRlZCArICRbMV0uRGVsZXRlZCwgUmVjbGFpbWVkOiAkWzBdLlJlY2xhaW1lZCArICRbMV0uUmVjbGFpbWVkIH0pJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YXRlTWFjaGluZSA9IG5ldyBzZm4uU3RhdGVNYWNoaW5lKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGRlZmluaXRpb246IGdldFN0YWNrTmFtZXNcbiAgICAgICAgLm5leHQoc3RhY2tzTWFwLml0ZXJhdG9yKGV4dHJhY3RUZW1wbGF0ZUhhc2hlcykpXG4gICAgICAgIC5uZXh0KGZsYXR0ZW5IYXNoZXMpXG4gICAgICAgIC5uZXh0KG5ldyBzZm4uUGFyYWxsZWwodGhpcywgJ0NsZWFuJylcbiAgICAgICAgICAuYnJhbmNoKGNsZWFuT2JqZWN0cylcbiAgICAgICAgICAuYnJhbmNoKGNsZWFuSW1hZ2VzKSlcbiAgICAgICAgLm5leHQoc3VtUmVjbGFpbWVkKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZSh0aGlzLCAnUnVsZScsIHtcbiAgICAgIGVuYWJsZWQ6IHByb3BzLnNjaGVkdWxlRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgc2NoZWR1bGU6IHByb3BzLnNjaGVkdWxlID8/IFNjaGVkdWxlLnJhdGUoRHVyYXRpb24uZGF5cygxKSksXG4gICAgfSk7XG4gICAgcnVsZS5hZGRUYXJnZXQobmV3IFNmblN0YXRlTWFjaGluZShzdGF0ZU1hY2hpbmUpKTtcbiAgfVxufVxuIl19
@@ -123,5 +123,5 @@ class UrlShortener extends constructs_1.Construct {
123
123
  }
124
124
  exports.UrlShortener = UrlShortener;
125
125
  _a = JSII_RTTI_SYMBOL_1;
126
- UrlShortener[_a] = { fqn: "cloudstructs.UrlShortener", version: "0.6.5" };
126
+ UrlShortener[_a] = { fqn: "cloudstructs.UrlShortener", version: "0.6.8" };
127
127
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXJsLXNob3J0ZW5lci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEwRDtBQUMxRCx5REFBeUQ7QUFDekQsMERBQTBEO0FBQzFELHlEQUF5RDtBQUN6RCw4REFBOEQ7QUFDOUQscURBQXFEO0FBRXJELDJDQUEyQztBQUMzQyw2Q0FBNkM7QUFDN0MsbURBQW1EO0FBQ25ELDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsMkNBQXVDO0FBQ3ZDLDJEQUF1RDtBQUN2RCw2REFBeUQ7QUF5RHpEOztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsc0JBQVM7SUFXekMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUVySCwwQkFBMEI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDOUMsWUFBWSxFQUFFO2dCQUNaLElBQUksRUFBRSxLQUFLO2dCQUNYLElBQUksRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU07YUFDcEM7WUFDRCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1NBQ3JDLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUMzQyxjQUFjLEVBQUUsQ0FBQztvQkFDZixVQUFVLEVBQUUsS0FB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QixTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDckUsVUFBVSxFQUFFLEtBQUssQ0FBQyxvQkFBb0I7U0FDdkMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUNsQyxDQUFDOztBQXZISCxvQ0F3SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgRm4sIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBhcGlnYXRld2F5IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5JztcbmltcG9ydCAqIGFzIGFjbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgb3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFJlZGlyZWN0RnVuY3Rpb24gfSBmcm9tICcuL3JlZGlyZWN0LWZ1bmN0aW9uJztcbmltcG9ydCB7IFNob3J0ZW5lckZ1bmN0aW9uIH0gZnJvbSAnLi9zaG9ydGVuZXItZnVuY3Rpb24nO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgVXJsU2hvcnRlbmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXJsU2hvcnRlbmVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIGhvc3RlZCB6b25lIGZvciB0aGUgc2hvcnQgVVJMcyBkb21haW5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmU6IHJvdXRlNTMuSUhvc3RlZFpvbmU7XG5cbiAgLyoqXG4gICAqIFRoZSByZWNvcmQgbmFtZSB0byB1c2UgaW4gdGhlIGhvc3RlZCB6b25lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gem9uZSByb290XG4gICAqL1xuICByZWFkb25seSByZWNvcmROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHBpcmF0aW9uIGZvciBzaG9ydCB1cmxzXG4gICAqXG4gICAqIEBkZWZhdWx0IGNkay5EdXJhdGlvbi5kYXlzKDM2NSlcbiAgICovXG4gIHJlYWRvbmx5IGV4cGlyYXRpb24/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQW4gaW50ZXJmYWNlIFZQQyBlbmRwb2ludCBmb3IgQVBJIGdhdGV3YXkuIFNwZWNpZnlpbmcgdGhpcyBwcm9wZXJ0eSB3aWxsXG4gICAqIG1ha2UgdGhlIEFQSSBwcml2YXRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcGlnYXRld2F5L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hcGlnYXRld2F5LXByaXZhdGUtYXBpcy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQVBJIGlzIHB1YmxpY1xuICAgKi9cbiAgcmVhZG9ubHkgYXBpR2F0ZXdheUVuZHBvaW50PzogZWMyLklJbnRlcmZhY2VWcGNFbmRwb2ludDtcblxuICAvKipcbiAgICogQXV0aG9yaXplciBmb3IgQVBJIGdhdGV3YXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IHVzZSBhbiBhdXRob3JpemVyIGZvciB0aGUgQVBJXG4gICAqL1xuICByZWFkb25seSBhcGlHYXRld2F5QXV0aG9yaXplcj86IGFwaWdhdGV3YXkuSUF1dGhvcml6ZXI7XG5cbiAgLyoqXG4gICAqIEFsbG93ZWQgb3JpZ2lucyBmb3IgQ09SU1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIENPUlMgaXMgbm90IGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvcnNBbGxvd09yaWdpbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBuYW1lIGZvciB0aGUgYnVja2V0IHNhdmluZyB0aGUgcmVkaXJlY3RzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVyaXZlZCBmcm9tIHNob3J0IGxpbmsgZG9tYWluIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVVJMIHNob3J0ZW5lclxuICovXG5leHBvcnQgY2xhc3MgVXJsU2hvcnRlbmVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCBvZiB0aGUgVVJMIHNob3J0ZW5lciBBUElcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcGlFbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5kZXJseWluZyBBUEkgR2F0ZXdheSBSRVNUIEFQSVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaTogYXBpZ2F0ZXdheS5MYW1iZGFSZXN0QXBpO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBVcmxTaG9ydGVuZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBkb21haW5OYW1lID0gcHJvcHMucmVjb3JkTmFtZSA/IGAke3Byb3BzLnJlY29yZE5hbWV9LiR7cHJvcHMuaG9zdGVkWm9uZS56b25lTmFtZX1gIDogcHJvcHMuaG9zdGVkWm9uZS56b25lTmFtZTtcblxuICAgIC8vIFRhYmxlIHRvIHNhdmUgYSBjb3VudGVyXG4gICAgY29uc3QgdGFibGUgPSBuZXcgZHluYW1vZGIuVGFibGUodGhpcywgJ1RhYmxlJywge1xuICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgIG5hbWU6ICdrZXknLFxuICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgIH0sXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICAvLyBCdWNrZXQgdG8gc2F2ZSByZWRpcmVjdHNcbiAgICBjb25zdCBidWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnLCB7XG4gICAgICBsaWZlY3ljbGVSdWxlczogW3tcbiAgICAgICAgZXhwaXJhdGlvbjogcHJvcHMuZXhwaXJhdGlvbiA/PyBEdXJhdGlvbi5kYXlzKDM2NSksXG4gICAgICB9XSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5idWNrZXROYW1lID8/IGBjbG91ZHN0cnVjdHMtdXJsLXNob3J0ZW5lci0ke2RvbWFpbk5hbWV9YCxcbiAgICB9KTtcblxuICAgIC8vIFJlZGlyZWN0IGZ1bmN0aW9uXG4gICAgY29uc3QgcmVkaXJlY3RGdW5jdGlvbiA9IG5ldyBSZWRpcmVjdEZ1bmN0aW9uKHRoaXMsICdSZWRpcmVjdCcpO1xuICAgIGJ1Y2tldC5ncmFudFJlYWQocmVkaXJlY3RGdW5jdGlvbik7XG5cbiAgICAvLyBDbG91ZEZyb250IGRpc3RyaWJ1dGlvblxuICAgIGNvbnN0IGNlcnRpZmljYXRlID0gbmV3IGFjbS5EbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCAnQ2VydGlmaWNhdGUnLCB7XG4gICAgICBkb21haW5OYW1lLFxuICAgICAgaG9zdGVkWm9uZTogcHJvcHMuaG9zdGVkWm9uZSxcbiAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgfSk7XG4gICAgY29uc3QgZGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHRoaXMsICdEaXN0cmlidXRpb24nLCB7XG4gICAgICBkZWZhdWx0QmVoYXZpb3I6IHtcbiAgICAgICAgb3JpZ2luOiBuZXcgb3JpZ2lucy5TM09yaWdpbihidWNrZXQpLFxuICAgICAgICBlZGdlTGFtYmRhczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVFVRVNULFxuICAgICAgICAgICAgZnVuY3Rpb25WZXJzaW9uOiByZWRpcmVjdEZ1bmN0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgY2VydGlmaWNhdGUsXG4gICAgICBkb21haW5OYW1lczogW2RvbWFpbk5hbWVdLFxuICAgICAgaHR0cFZlcnNpb246ICdodHRwMmFuZDMnIGFzIGNsb3VkZnJvbnQuSHR0cFZlcnNpb24sXG4gICAgfSk7XG5cbiAgICAvLyBSb3V0ZTUzIHJlY29yZHNcbiAgICBuZXcgcm91dGU1My5BUmVjb3JkKHRoaXMsICdBUmVjb3JkJywge1xuICAgICAgem9uZTogcHJvcHMuaG9zdGVkWm9uZSxcbiAgICAgIHRhcmdldDogcm91dGU1My5SZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyB0YXJnZXRzLkNsb3VkRnJvbnRUYXJnZXQoZGlzdHJpYnV0aW9uKSksXG4gICAgICByZWNvcmROYW1lOiBwcm9wcy5yZWNvcmROYW1lLFxuICAgIH0pO1xuICAgIG5ldyByb3V0ZTUzLkFhYWFSZWNvcmQodGhpcywgJ0FhYWFSZWNvcmQnLCB7XG4gICAgICB6b25lOiBwcm9wcy5ob3N0ZWRab25lLFxuICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHRhcmdldHMuQ2xvdWRGcm9udFRhcmdldChkaXN0cmlidXRpb24pKSxcbiAgICAgIHJlY29yZE5hbWU6IHByb3BzLnJlY29yZE5hbWUsXG4gICAgfSk7XG5cbiAgICAvLyBMYW1iZGEgZnVuY3Rpb24gdG8gaW5jcmVtZW50IGNvdW50ZXIgYW5kIHdyaXRlIHJlZGlyZWN0IGluIGJ1Y2tldFxuICAgIGNvbnN0IHNob3J0ZW5lckZ1bmN0aW9uID0gbmV3IFNob3J0ZW5lckZ1bmN0aW9uKHRoaXMsICdTaG9ydGVuZXInLCB7XG4gICAgICBsb2dSZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfTU9OVEgsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBET01BSU5fTkFNRTogZG9tYWluTmFtZSxcbiAgICAgICAgQlVDS0VUX05BTUU6IGJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBUQUJMRV9OQU1FOiB0YWJsZS50YWJsZU5hbWUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChwcm9wcy5jb3JzQWxsb3dPcmlnaW5zKSB7XG4gICAgICBzaG9ydGVuZXJGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnQ09SU19BTExPV19PUklHSU5TJywgcHJvcHMuY29yc0FsbG93T3JpZ2lucy5qb2luKCcgJykpO1xuICAgIH1cbiAgICBidWNrZXQuZ3JhbnRQdXQoc2hvcnRlbmVyRnVuY3Rpb24pO1xuICAgIHRhYmxlLmdyYW50KHNob3J0ZW5lckZ1bmN0aW9uLCAnZHluYW1vZGI6VXBkYXRlSXRlbScpO1xuXG4gICAgLy8gQVBJXG4gICAgdGhpcy5hcGkgPSBuZXcgYXBpZ2F0ZXdheS5SZXN0QXBpKHRoaXMsIGBVcmxTaG9ydGVuZXIke3Byb3BzLmhvc3RlZFpvbmUuem9uZU5hbWV9YCwge1xuICAgICAgZW5kcG9pbnRUeXBlczogcHJvcHMuYXBpR2F0ZXdheUVuZHBvaW50ID8gW2FwaWdhdGV3YXkuRW5kcG9pbnRUeXBlLlBSSVZBVEVdIDogdW5kZWZpbmVkLFxuICAgICAgcG9saWN5OiBwcm9wcy5hcGlHYXRld2F5RW5kcG9pbnRcbiAgICAgICAgPyBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydleGVjdXRlLWFwaTpJbnZva2UnXSxcbiAgICAgICAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQW55UHJpbmNpcGFsKCldLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtGbi5qb2luKCcnLCBbJ2V4ZWN1dGUtYXBpOi8nLCAnKiddKV0sXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHsgJ2F3czpTb3VyY2VWcGNlJzogcHJvcHMuYXBpR2F0ZXdheUVuZHBvaW50LnZwY0VuZHBvaW50SWQgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZGVmYXVsdENvcnNQcmVmbGlnaHRPcHRpb25zOiBwcm9wcy5jb3JzQWxsb3dPcmlnaW5zXG4gICAgICAgID8geyBhbGxvd09yaWdpbnM6IHByb3BzLmNvcnNBbGxvd09yaWdpbnMgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMuYXBpLnJvb3QuYWRkTWV0aG9kKCdBTlknLCBuZXcgYXBpZ2F0ZXdheS5MYW1iZGFJbnRlZ3JhdGlvbihzaG9ydGVuZXJGdW5jdGlvbiksIHtcbiAgICAgIGF1dGhvcml6ZXI6IHByb3BzLmFwaUdhdGV3YXlBdXRob3JpemVyLFxuICAgIH0pO1xuICAgIHRoaXMuYXBpLnJvb3RcbiAgICAgIC5hZGRSZXNvdXJjZSgne3Byb3h5K30nKVxuICAgICAgLmFkZE1ldGhvZCgnQU5ZJywgbmV3IGFwaWdhdGV3YXkuTGFtYmRhSW50ZWdyYXRpb24oc2hvcnRlbmVyRnVuY3Rpb24pLCB7XG4gICAgICAgIGF1dGhvcml6ZXI6IHByb3BzLmFwaUdhdGV3YXlBdXRob3JpemVyLFxuICAgICAgfSk7XG5cbiAgICB0aGlzLmFwaUVuZHBvaW50ID0gdGhpcy5hcGkudXJsO1xuICB9XG59XG4iXX0=
@@ -8,7 +8,7 @@ This package contains type definitions for Node.js (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Sat, 13 Aug 2022 13:02:04 GMT
11
+ * Last updated: Mon, 22 Aug 2022 20:32:37 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`, `structuredClone`
14
14
 
@@ -556,9 +556,6 @@ declare module 'crypto' {
556
556
  */
557
557
  namedCurve?: string | undefined;
558
558
  }
559
- interface JwkKeyExportOptions {
560
- format: 'jwk';
561
- }
562
559
  /**
563
560
  * Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key,
564
561
  * and each kind of key exposes different functions. The {@link createSecretKey}, {@link createPublicKey} and {@link createPrivateKey} methods are used to create `KeyObject`instances. `KeyObject`
@@ -2309,11 +2306,11 @@ declare module 'crypto' {
2309
2306
  * If `encoding` is specified, a string is returned; otherwise a `Buffer` is
2310
2307
  * returned.
2311
2308
  * @since v0.11.14
2312
- * @param encoding The `encoding` of the return value.
2309
+ * @param [encoding] The `encoding` of the return value.
2313
2310
  * @param [format='uncompressed']
2314
2311
  * @return The EC Diffie-Hellman public key in the specified `encoding` and `format`.
2315
2312
  */
2316
- getPublicKey(): Buffer;
2313
+ getPublicKey(encoding?: null, format?: ECDHKeyFormat): Buffer;
2317
2314
  getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
2318
2315
  /**
2319
2316
  * Sets the EC Diffie-Hellman private key.
@@ -13,29 +13,31 @@ declare module 'fs/promises' {
13
13
  import { Stream } from 'node:stream';
14
14
  import { ReadableStream } from 'node:stream/web';
15
15
  import {
16
- Stats,
17
16
  BigIntStats,
18
- StatOptions,
19
- WriteVResult,
20
- ReadVResult,
21
- PathLike,
22
- RmDirOptions,
23
- RmOptions,
24
- MakeDirectoryOptions,
25
- Dirent,
26
- OpenDirOptions,
17
+ BufferEncodingOption,
18
+ constants as fsConstants,
19
+ CopyOptions,
27
20
  Dir,
21
+ Dirent,
22
+ MakeDirectoryOptions,
23
+ Mode,
28
24
  ObjectEncodingOptions,
29
- BufferEncodingOption,
25
+ OpenDirOptions,
30
26
  OpenMode,
31
- Mode,
32
- WatchOptions,
33
- WatchEventType,
34
- CopyOptions,
27
+ PathLike,
35
28
  ReadStream,
29
+ ReadVResult,
30
+ RmDirOptions,
31
+ RmOptions,
32
+ StatOptions,
33
+ Stats,
36
34
  TimeLike,
35
+ WatchEventType,
36
+ WatchOptions,
37
37
  WriteStream,
38
+ WriteVResult,
38
39
  } from 'node:fs';
40
+
39
41
  interface FileChangeInfo<T extends string | Buffer> {
40
42
  eventType: WatchEventType;
41
43
  filename: T;
@@ -427,6 +429,9 @@ declare module 'fs/promises' {
427
429
  */
428
430
  close(): Promise<void>;
429
431
  }
432
+
433
+ const constants: typeof fsConstants;
434
+
430
435
  /**
431
436
  * Tests a user's permissions for the file or directory specified by `path`.
432
437
  * The `mode` argument is an optional integer that specifies the accessibility
@@ -1,4 +1,4 @@
1
- // tslint:disable-next-line:dt-header
1
+ // eslint-disable-next-line dt-header
2
2
  // Type definitions for inspector
3
3
 
4
4
  // These definitions are auto-generated.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "18.7.3",
3
+ "version": "18.7.10",
4
4
  "description": "TypeScript definitions for Node.js",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -220,6 +220,6 @@
220
220
  },
221
221
  "scripts": {},
222
222
  "dependencies": {},
223
- "typesPublisherContentHash": "8dea3d15b6bef937e990a6b11572d052d6b749766317804596d909c7e26211e5",
223
+ "typesPublisherContentHash": "2276f7706b7dc01b87e597a7f6d2139aef6178472539ee3b171167046b8c8182",
224
224
  "typeScriptVersion": "4.0"
225
225
  }
@@ -85,6 +85,14 @@ declare module 'perf_hooks' {
85
85
  * @since v16.0.0
86
86
  */
87
87
  readonly detail?: NodeGCPerformanceDetail | unknown | undefined; // TODO: Narrow this based on entry type.
88
+ toJSON(): any;
89
+ }
90
+ class PerformanceMark extends PerformanceEntry {
91
+ readonly duration: 0;
92
+ readonly entryType: 'mark';
93
+ }
94
+ class PerformanceMeasure extends PerformanceEntry {
95
+ readonly entryType: 'measure';
88
96
  }
89
97
  /**
90
98
  * _This property is an extension by Node.js. It is not available in Web browsers._
@@ -226,8 +234,9 @@ declare module 'perf_hooks' {
226
234
  * and whose performanceEntry.duration is always 0.
227
235
  * Performance marks are used to mark specific significant moments in the Performance Timeline.
228
236
  * @param name
237
+ * @return The PerformanceMark entry that was created
229
238
  */
230
- mark(name?: string, options?: MarkOptions): void;
239
+ mark(name?: string, options?: MarkOptions): PerformanceMark;
231
240
  /**
232
241
  * Creates a new PerformanceMeasure entry in the Performance Timeline.
233
242
  * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure',
@@ -242,9 +251,10 @@ declare module 'perf_hooks' {
242
251
  * @param name
243
252
  * @param startMark
244
253
  * @param endMark
254
+ * @return The PerformanceMeasure entry that was created
245
255
  */
246
- measure(name: string, startMark?: string, endMark?: string): void;
247
- measure(name: string, options: MeasureOptions): void;
256
+ measure(name: string, startMark?: string, endMark?: string): PerformanceMeasure;
257
+ measure(name: string, options: MeasureOptions): PerformanceMeasure;
248
258
  /**
249
259
  * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones.
250
260
  */
@@ -157,6 +157,12 @@ declare module 'node:test' {
157
157
  */
158
158
  only?: boolean;
159
159
 
160
+ /**
161
+ * Allows aborting an in-progress test.
162
+ * @since 8.7.0
163
+ */
164
+ signal?: AbortSignal;
165
+
160
166
  /**
161
167
  * If truthy, the test is skipped. If a string is provided, that string is displayed in the
162
168
  * test results as the reason for skipping the test.
@@ -164,6 +170,14 @@ declare module 'node:test' {
164
170
  */
165
171
  skip?: boolean | string;
166
172
 
173
+ /**
174
+ * A number of milliseconds the test will fail after. If unspecified, subtests inherit this
175
+ * value from their parent.
176
+ * @default Infinity
177
+ * @since 8.7.0
178
+ */
179
+ timeout?: number;
180
+
167
181
  /**
168
182
  * If truthy, the test marked as `TODO`. If a string is provided, that string is displayed in
169
183
  * the test results as the reason why the test is `TODO`.
@@ -8,7 +8,7 @@ This package contains type definitions for Node.js (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Sat, 13 Aug 2022 13:02:04 GMT
11
+ * Last updated: Mon, 22 Aug 2022 20:32:37 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`, `structuredClone`
14
14
 
@@ -556,9 +556,6 @@ declare module 'crypto' {
556
556
  */
557
557
  namedCurve?: string | undefined;
558
558
  }
559
- interface JwkKeyExportOptions {
560
- format: 'jwk';
561
- }
562
559
  /**
563
560
  * Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key,
564
561
  * and each kind of key exposes different functions. The {@link createSecretKey}, {@link createPublicKey} and {@link createPrivateKey} methods are used to create `KeyObject`instances. `KeyObject`
@@ -2309,11 +2306,11 @@ declare module 'crypto' {
2309
2306
  * If `encoding` is specified, a string is returned; otherwise a `Buffer` is
2310
2307
  * returned.
2311
2308
  * @since v0.11.14
2312
- * @param encoding The `encoding` of the return value.
2309
+ * @param [encoding] The `encoding` of the return value.
2313
2310
  * @param [format='uncompressed']
2314
2311
  * @return The EC Diffie-Hellman public key in the specified `encoding` and `format`.
2315
2312
  */
2316
- getPublicKey(): Buffer;
2313
+ getPublicKey(encoding?: null, format?: ECDHKeyFormat): Buffer;
2317
2314
  getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
2318
2315
  /**
2319
2316
  * Sets the EC Diffie-Hellman private key.
@@ -13,29 +13,31 @@ declare module 'fs/promises' {
13
13
  import { Stream } from 'node:stream';
14
14
  import { ReadableStream } from 'node:stream/web';
15
15
  import {
16
- Stats,
17
16
  BigIntStats,
18
- StatOptions,
19
- WriteVResult,
20
- ReadVResult,
21
- PathLike,
22
- RmDirOptions,
23
- RmOptions,
24
- MakeDirectoryOptions,
25
- Dirent,
26
- OpenDirOptions,
17
+ BufferEncodingOption,
18
+ constants as fsConstants,
19
+ CopyOptions,
27
20
  Dir,
21
+ Dirent,
22
+ MakeDirectoryOptions,
23
+ Mode,
28
24
  ObjectEncodingOptions,
29
- BufferEncodingOption,
25
+ OpenDirOptions,
30
26
  OpenMode,
31
- Mode,
32
- WatchOptions,
33
- WatchEventType,
34
- CopyOptions,
27
+ PathLike,
35
28
  ReadStream,
29
+ ReadVResult,
30
+ RmDirOptions,
31
+ RmOptions,
32
+ StatOptions,
33
+ Stats,
36
34
  TimeLike,
35
+ WatchEventType,
36
+ WatchOptions,
37
37
  WriteStream,
38
+ WriteVResult,
38
39
  } from 'node:fs';
40
+
39
41
  interface FileChangeInfo<T extends string | Buffer> {
40
42
  eventType: WatchEventType;
41
43
  filename: T;
@@ -427,6 +429,9 @@ declare module 'fs/promises' {
427
429
  */
428
430
  close(): Promise<void>;
429
431
  }
432
+
433
+ const constants: typeof fsConstants;
434
+
430
435
  /**
431
436
  * Tests a user's permissions for the file or directory specified by `path`.
432
437
  * The `mode` argument is an optional integer that specifies the accessibility
@@ -1,4 +1,4 @@
1
- // tslint:disable-next-line:dt-header
1
+ // eslint-disable-next-line dt-header
2
2
  // Type definitions for inspector
3
3
 
4
4
  // These definitions are auto-generated.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "18.7.3",
3
+ "version": "18.7.10",
4
4
  "description": "TypeScript definitions for Node.js",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -220,6 +220,6 @@
220
220
  },
221
221
  "scripts": {},
222
222
  "dependencies": {},
223
- "typesPublisherContentHash": "8dea3d15b6bef937e990a6b11572d052d6b749766317804596d909c7e26211e5",
223
+ "typesPublisherContentHash": "2276f7706b7dc01b87e597a7f6d2139aef6178472539ee3b171167046b8c8182",
224
224
  "typeScriptVersion": "4.0"
225
225
  }
@@ -85,6 +85,14 @@ declare module 'perf_hooks' {
85
85
  * @since v16.0.0
86
86
  */
87
87
  readonly detail?: NodeGCPerformanceDetail | unknown | undefined; // TODO: Narrow this based on entry type.
88
+ toJSON(): any;
89
+ }
90
+ class PerformanceMark extends PerformanceEntry {
91
+ readonly duration: 0;
92
+ readonly entryType: 'mark';
93
+ }
94
+ class PerformanceMeasure extends PerformanceEntry {
95
+ readonly entryType: 'measure';
88
96
  }
89
97
  /**
90
98
  * _This property is an extension by Node.js. It is not available in Web browsers._
@@ -226,8 +234,9 @@ declare module 'perf_hooks' {
226
234
  * and whose performanceEntry.duration is always 0.
227
235
  * Performance marks are used to mark specific significant moments in the Performance Timeline.
228
236
  * @param name
237
+ * @return The PerformanceMark entry that was created
229
238
  */
230
- mark(name?: string, options?: MarkOptions): void;
239
+ mark(name?: string, options?: MarkOptions): PerformanceMark;
231
240
  /**
232
241
  * Creates a new PerformanceMeasure entry in the Performance Timeline.
233
242
  * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure',
@@ -242,9 +251,10 @@ declare module 'perf_hooks' {
242
251
  * @param name
243
252
  * @param startMark
244
253
  * @param endMark
254
+ * @return The PerformanceMeasure entry that was created
245
255
  */
246
- measure(name: string, startMark?: string, endMark?: string): void;
247
- measure(name: string, options: MeasureOptions): void;
256
+ measure(name: string, startMark?: string, endMark?: string): PerformanceMeasure;
257
+ measure(name: string, options: MeasureOptions): PerformanceMeasure;
248
258
  /**
249
259
  * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones.
250
260
  */
@@ -157,6 +157,12 @@ declare module 'node:test' {
157
157
  */
158
158
  only?: boolean;
159
159
 
160
+ /**
161
+ * Allows aborting an in-progress test.
162
+ * @since 8.7.0
163
+ */
164
+ signal?: AbortSignal;
165
+
160
166
  /**
161
167
  * If truthy, the test is skipped. If a string is provided, that string is displayed in the
162
168
  * test results as the reason for skipping the test.
@@ -164,6 +170,14 @@ declare module 'node:test' {
164
170
  */
165
171
  skip?: boolean | string;
166
172
 
173
+ /**
174
+ * A number of milliseconds the test will fail after. If unspecified, subtests inherit this
175
+ * value from their parent.
176
+ * @default Infinity
177
+ * @since 8.7.0
178
+ */
179
+ timeout?: number;
180
+
167
181
  /**
168
182
  * If truthy, the test marked as `TODO`. If a string is provided, that string is displayed in
169
183
  * the test results as the reason why the test is `TODO`.
@@ -8,7 +8,7 @@ This package contains type definitions for Node.js (https://nodejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Sat, 13 Aug 2022 13:02:04 GMT
11
+ * Last updated: Mon, 22 Aug 2022 20:32:37 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`, `structuredClone`
14
14
 
@@ -556,9 +556,6 @@ declare module 'crypto' {
556
556
  */
557
557
  namedCurve?: string | undefined;
558
558
  }
559
- interface JwkKeyExportOptions {
560
- format: 'jwk';
561
- }
562
559
  /**
563
560
  * Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key,
564
561
  * and each kind of key exposes different functions. The {@link createSecretKey}, {@link createPublicKey} and {@link createPrivateKey} methods are used to create `KeyObject`instances. `KeyObject`
@@ -2309,11 +2306,11 @@ declare module 'crypto' {
2309
2306
  * If `encoding` is specified, a string is returned; otherwise a `Buffer` is
2310
2307
  * returned.
2311
2308
  * @since v0.11.14
2312
- * @param encoding The `encoding` of the return value.
2309
+ * @param [encoding] The `encoding` of the return value.
2313
2310
  * @param [format='uncompressed']
2314
2311
  * @return The EC Diffie-Hellman public key in the specified `encoding` and `format`.
2315
2312
  */
2316
- getPublicKey(): Buffer;
2313
+ getPublicKey(encoding?: null, format?: ECDHKeyFormat): Buffer;
2317
2314
  getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
2318
2315
  /**
2319
2316
  * Sets the EC Diffie-Hellman private key.
@@ -13,29 +13,31 @@ declare module 'fs/promises' {
13
13
  import { Stream } from 'node:stream';
14
14
  import { ReadableStream } from 'node:stream/web';
15
15
  import {
16
- Stats,
17
16
  BigIntStats,
18
- StatOptions,
19
- WriteVResult,
20
- ReadVResult,
21
- PathLike,
22
- RmDirOptions,
23
- RmOptions,
24
- MakeDirectoryOptions,
25
- Dirent,
26
- OpenDirOptions,
17
+ BufferEncodingOption,
18
+ constants as fsConstants,
19
+ CopyOptions,
27
20
  Dir,
21
+ Dirent,
22
+ MakeDirectoryOptions,
23
+ Mode,
28
24
  ObjectEncodingOptions,
29
- BufferEncodingOption,
25
+ OpenDirOptions,
30
26
  OpenMode,
31
- Mode,
32
- WatchOptions,
33
- WatchEventType,
34
- CopyOptions,
27
+ PathLike,
35
28
  ReadStream,
29
+ ReadVResult,
30
+ RmDirOptions,
31
+ RmOptions,
32
+ StatOptions,
33
+ Stats,
36
34
  TimeLike,
35
+ WatchEventType,
36
+ WatchOptions,
37
37
  WriteStream,
38
+ WriteVResult,
38
39
  } from 'node:fs';
40
+
39
41
  interface FileChangeInfo<T extends string | Buffer> {
40
42
  eventType: WatchEventType;
41
43
  filename: T;
@@ -427,6 +429,9 @@ declare module 'fs/promises' {
427
429
  */
428
430
  close(): Promise<void>;
429
431
  }
432
+
433
+ const constants: typeof fsConstants;
434
+
430
435
  /**
431
436
  * Tests a user's permissions for the file or directory specified by `path`.
432
437
  * The `mode` argument is an optional integer that specifies the accessibility
@@ -1,4 +1,4 @@
1
- // tslint:disable-next-line:dt-header
1
+ // eslint-disable-next-line dt-header
2
2
  // Type definitions for inspector
3
3
 
4
4
  // These definitions are auto-generated.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "18.7.3",
3
+ "version": "18.7.10",
4
4
  "description": "TypeScript definitions for Node.js",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -220,6 +220,6 @@
220
220
  },
221
221
  "scripts": {},
222
222
  "dependencies": {},
223
- "typesPublisherContentHash": "8dea3d15b6bef937e990a6b11572d052d6b749766317804596d909c7e26211e5",
223
+ "typesPublisherContentHash": "2276f7706b7dc01b87e597a7f6d2139aef6178472539ee3b171167046b8c8182",
224
224
  "typeScriptVersion": "4.0"
225
225
  }
@@ -85,6 +85,14 @@ declare module 'perf_hooks' {
85
85
  * @since v16.0.0
86
86
  */
87
87
  readonly detail?: NodeGCPerformanceDetail | unknown | undefined; // TODO: Narrow this based on entry type.
88
+ toJSON(): any;
89
+ }
90
+ class PerformanceMark extends PerformanceEntry {
91
+ readonly duration: 0;
92
+ readonly entryType: 'mark';
93
+ }
94
+ class PerformanceMeasure extends PerformanceEntry {
95
+ readonly entryType: 'measure';
88
96
  }
89
97
  /**
90
98
  * _This property is an extension by Node.js. It is not available in Web browsers._
@@ -226,8 +234,9 @@ declare module 'perf_hooks' {
226
234
  * and whose performanceEntry.duration is always 0.
227
235
  * Performance marks are used to mark specific significant moments in the Performance Timeline.
228
236
  * @param name
237
+ * @return The PerformanceMark entry that was created
229
238
  */
230
- mark(name?: string, options?: MarkOptions): void;
239
+ mark(name?: string, options?: MarkOptions): PerformanceMark;
231
240
  /**
232
241
  * Creates a new PerformanceMeasure entry in the Performance Timeline.
233
242
  * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure',
@@ -242,9 +251,10 @@ declare module 'perf_hooks' {
242
251
  * @param name
243
252
  * @param startMark
244
253
  * @param endMark
254
+ * @return The PerformanceMeasure entry that was created
245
255
  */
246
- measure(name: string, startMark?: string, endMark?: string): void;
247
- measure(name: string, options: MeasureOptions): void;
256
+ measure(name: string, startMark?: string, endMark?: string): PerformanceMeasure;
257
+ measure(name: string, options: MeasureOptions): PerformanceMeasure;
248
258
  /**
249
259
  * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones.
250
260
  */