cloudstructs 0.4.13 → 0.4.17

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 (73) hide show
  1. package/.gitattributes +1 -0
  2. package/.jsii +31 -8
  3. package/API.md +2 -0
  4. package/assets/slack-app/provider.lambda/index.js +9 -2
  5. package/assets/slack-textract/detect.lambda/index.js +9 -2
  6. package/assets/toolkit-cleaner/extract-template-hashes.lambda/index.js +45 -0
  7. package/changelog.md +6 -1
  8. package/lib/codecommit-mirror/index.js +2 -2
  9. package/lib/ecs-service-roller/index.js +2 -2
  10. package/lib/email-receiver/receiver.js +1 -1
  11. package/lib/saml-identity-provider/index.js +2 -2
  12. package/lib/slack-app/manifest.js +1 -1
  13. package/lib/slack-app/slack-app.js +2 -2
  14. package/lib/slack-events/index.js +1 -1
  15. package/lib/slack-textract/index.js +1 -1
  16. package/lib/state-machine-cr-provider/index.js +1 -1
  17. package/lib/static-website/index.js +1 -1
  18. package/lib/toolkit-cleaner/extract-template-hashes-function.d.ts +13 -0
  19. package/lib/toolkit-cleaner/extract-template-hashes-function.js +23 -0
  20. package/lib/toolkit-cleaner/extract-template-hashes.lambda.d.ts +1 -0
  21. package/lib/toolkit-cleaner/extract-template-hashes.lambda.js +17 -0
  22. package/lib/toolkit-cleaner/index.d.ts +10 -0
  23. package/lib/toolkit-cleaner/index.js +18 -16
  24. package/lib/url-shortener/index.js +1 -1
  25. package/node_modules/@sindresorhus/is/dist/index.d.ts +3 -3
  26. package/node_modules/@sindresorhus/is/dist/index.js +0 -1
  27. package/node_modules/@sindresorhus/is/dist/types.d.ts +1 -0
  28. package/node_modules/@sindresorhus/is/package.json +1 -1
  29. package/node_modules/@sindresorhus/is/readme.md +1 -3
  30. package/node_modules/@slack/logger/node_modules/@types/node/README.md +2 -2
  31. package/node_modules/@slack/logger/node_modules/@types/node/crypto.d.ts +1 -1
  32. package/node_modules/@slack/logger/node_modules/@types/node/events.d.ts +31 -3
  33. package/node_modules/@slack/logger/node_modules/@types/node/index.d.ts +0 -1
  34. package/node_modules/@slack/logger/node_modules/@types/node/package.json +2 -7
  35. package/node_modules/@slack/logger/node_modules/@types/node/url.d.ts +27 -1
  36. package/node_modules/@slack/logger/node_modules/@types/node/util.d.ts +1 -1
  37. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +2 -2
  38. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +1 -1
  39. package/node_modules/@slack/web-api/node_modules/@types/node/events.d.ts +31 -3
  40. package/node_modules/@slack/web-api/node_modules/@types/node/index.d.ts +0 -1
  41. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -7
  42. package/node_modules/@slack/web-api/node_modules/@types/node/url.d.ts +27 -1
  43. package/node_modules/@slack/web-api/node_modules/@types/node/util.d.ts +1 -1
  44. package/node_modules/@types/cacheable-request/node_modules/@types/node/README.md +2 -2
  45. package/node_modules/@types/cacheable-request/node_modules/@types/node/index.d.ts +0 -1
  46. package/node_modules/@types/cacheable-request/node_modules/@types/node/package.json +2 -7
  47. package/node_modules/@types/is-stream/node_modules/@types/node/README.md +2 -2
  48. package/node_modules/@types/is-stream/node_modules/@types/node/index.d.ts +0 -1
  49. package/node_modules/@types/is-stream/node_modules/@types/node/package.json +2 -7
  50. package/node_modules/@types/keyv/node_modules/@types/node/README.md +2 -2
  51. package/node_modules/@types/keyv/node_modules/@types/node/index.d.ts +0 -1
  52. package/node_modules/@types/keyv/node_modules/@types/node/package.json +2 -7
  53. package/node_modules/@types/responselike/node_modules/@types/node/README.md +2 -2
  54. package/node_modules/@types/responselike/node_modules/@types/node/index.d.ts +0 -1
  55. package/node_modules/@types/responselike/node_modules/@types/node/package.json +2 -7
  56. package/node_modules/keyv/.nyc_output/{37411020-4142-4b08-b825-343ba2427bf7.json → 17c338d1-cd21-4d2f-9d97-398f18a945cf.json} +0 -0
  57. package/node_modules/keyv/.nyc_output/67b1f344-0eec-41a3-a665-c824c346e898.json +1 -0
  58. package/node_modules/keyv/.nyc_output/adb04494-7d0a-443f-9130-94b19c3fa19c.json +1 -0
  59. package/node_modules/keyv/.nyc_output/processinfo/17c338d1-cd21-4d2f-9d97-398f18a945cf.json +1 -0
  60. package/node_modules/keyv/.nyc_output/processinfo/67b1f344-0eec-41a3-a665-c824c346e898.json +1 -0
  61. package/node_modules/keyv/.nyc_output/processinfo/adb04494-7d0a-443f-9130-94b19c3fa19c.json +1 -0
  62. package/node_modules/keyv/.nyc_output/processinfo/index.json +1 -1
  63. package/node_modules/keyv/README.md +83 -2
  64. package/node_modules/keyv/package.json +2 -6
  65. package/node_modules/keyv/src/index.js +11 -1
  66. package/node_modules/keyv/test/test.js +1 -3
  67. package/node_modules/keyv/test/testdb.sqlite +0 -0
  68. package/package.json +15 -7
  69. package/releasetag.txt +1 -1
  70. package/version.txt +1 -1
  71. package/node_modules/keyv/.nyc_output/cd79f2de-c8b8-4493-bc15-b2bde28efa4b.json +0 -1
  72. package/node_modules/keyv/.nyc_output/processinfo/37411020-4142-4b08-b825-343ba2427bf7.json +0 -1
  73. package/node_modules/keyv/.nyc_output/processinfo/cd79f2de-c8b8-4493-bc15-b2bde28efa4b.json +0 -1
@@ -15,6 +15,7 @@ const tasks = require("aws-cdk-lib/aws-stepfunctions-tasks");
15
15
  const constructs_1 = require("constructs");
16
16
  const clean_images_function_1 = require("./clean-images-function");
17
17
  const clean_objects_function_1 = require("./clean-objects-function");
18
+ const extract_template_hashes_function_1 = require("./extract-template-hashes-function");
18
19
  const get_stack_names_function_1 = require("./get-stack-names-function");
19
20
  /**
20
21
  * Clean unused S3 and ECR assets from your CDK Toolkit.
@@ -26,7 +27,7 @@ class ToolkitCleaner extends constructs_1.Construct {
26
27
  * @stability stable
27
28
  */
28
29
  constructor(scope, id, props = {}) {
29
- var _b;
30
+ var _b, _c;
30
31
  super(scope, id);
31
32
  // Dummy assets to reference S3 bucket and ECR repository
32
33
  const fileAsset = new aws_s3_assets_1.Asset(this, 'FileAsset', {
@@ -50,18 +51,18 @@ class ToolkitCleaner extends constructs_1.Construct {
50
51
  AssetHashes: sfn.JsonPath.stringAt('$'),
51
52
  },
52
53
  });
53
- const getTemplate = new tasks.CallAwsService(this, 'GetTemplate', {
54
- service: 'cloudformation',
55
- action: 'getTemplate',
56
- parameters: {
57
- StackName: sfn.JsonPath.stringAt('$'),
58
- },
59
- iamResources: ['*'],
60
- }).addRetry({
61
- errors: ['CloudFormation.CloudFormationException'],
54
+ const extractTemplateHashesFunction = new extract_template_hashes_function_1.ExtractTemplateHashesFunction(this, 'ExtractTemplateHashesFunction', {
55
+ timeout: aws_cdk_lib_1.Duration.seconds(30),
62
56
  });
63
- const extractHashes = new tasks.EvaluateExpression(this, 'ExtractHashes', {
64
- expression: '[...new Set(($.TemplateBody).match(/[a-f0-9]{64}/g))]',
57
+ extractTemplateHashesFunction.addToRolePolicy(new aws_iam_1.PolicyStatement({
58
+ actions: ['cloudformation:GetTemplate'],
59
+ resources: ['*'],
60
+ }));
61
+ const extractTemplateHashes = new tasks.LambdaInvoke(this, 'ExtractTemplateHashes', {
62
+ lambdaFunction: extractTemplateHashesFunction,
63
+ payloadResponseOnly: true,
64
+ }).addRetry({
65
+ errors: ['Throttling'],
65
66
  });
66
67
  const flattenHashes = new tasks.EvaluateExpression(this, 'FlattenHashes', {
67
68
  expression: '[...new Set(($.AssetHashes).flat())]',
@@ -99,7 +100,7 @@ class ToolkitCleaner extends constructs_1.Construct {
99
100
  });
100
101
  const stateMachine = new sfn.StateMachine(this, 'Resource', {
101
102
  definition: getStackNames
102
- .next(stacksMap.iterator(getTemplate.next(extractHashes)))
103
+ .next(stacksMap.iterator(extractTemplateHashes))
103
104
  .next(flattenHashes)
104
105
  .next(new sfn.Parallel(this, 'Clean')
105
106
  .branch(cleanObjects)
@@ -107,12 +108,13 @@ class ToolkitCleaner extends constructs_1.Construct {
107
108
  .next(sumReclaimed),
108
109
  });
109
110
  const rule = new aws_events_1.Rule(this, 'Rule', {
110
- schedule: (_b = props.schedule) !== null && _b !== void 0 ? _b : aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.days(1)),
111
+ enabled: (_b = props.scheduleEnabled) !== null && _b !== void 0 ? _b : true,
112
+ schedule: (_c = props.schedule) !== null && _c !== void 0 ? _c : aws_events_1.Schedule.rate(aws_cdk_lib_1.Duration.days(1)),
111
113
  });
112
114
  rule.addTarget(new aws_events_targets_1.SfnStateMachine(stateMachine));
113
115
  }
114
116
  }
115
117
  exports.ToolkitCleaner = ToolkitCleaner;
116
118
  _a = JSII_RTTI_SYMBOL_1;
117
- ToolkitCleaner[_a] = { fqn: "cloudstructs.ToolkitCleaner", version: "0.4.13" };
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbGtpdC1jbGVhbmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUF1QztBQUN2QywrREFBOEQ7QUFDOUQsdURBQXdEO0FBQ3hELHVFQUFpRTtBQUNqRSxpREFBc0Q7QUFDdEQsNkRBQWtEO0FBQ2xELHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFDN0QsMkNBQXVDO0FBQ3ZDLG1FQUE4RDtBQUM5RCxxRUFBZ0U7QUFDaEUseUVBQW1FOzs7Ozs7QUFlbkUsTUFBYSxjQUFlLFNBQVEsc0JBQVM7Ozs7SUFDM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUE2QixFQUFFOztRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLHlEQUF5RDtRQUN6RCxNQUFNLFNBQVMsR0FBRyxJQUFJLHFCQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM3QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQztTQUMzRixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUksaUNBQWdCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3RFLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLENBQUM7U0FDbkYsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGdEQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3ZGLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxJQUFJLHlCQUFlLENBQUM7WUFDeEQsT0FB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LENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLG9DQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOztBQS9GSCx3Q0FnR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZUFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHMnO1xuaW1wb3J0IHsgUnVsZSwgU2NoZWR1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCB7IFNmblN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgdGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDbGVhbkltYWdlc0Z1bmN0aW9uIH0gZnJvbSAnLi9jbGVhbi1pbWFnZXMtZnVuY3Rpb24nO1xuaW1wb3J0IHsgQ2xlYW5PYmplY3RzRnVuY3Rpb24gfSBmcm9tICcuL2NsZWFuLW9iamVjdHMtZnVuY3Rpb24nO1xuaW1wb3J0IHsgR2V0U3RhY2tOYW1lc0Z1bmN0aW9uIH0gZnJvbSAnLi9nZXQtc3RhY2stbmFtZXMtZnVuY3Rpb24nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgVG9vbGtpdENsZWFuZXJQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogU2NoZWR1bGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRyeVJ1bj86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmV0YWluQXNzZXRzTmV3ZXJUaGFuPzogRHVyYXRpb247XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBUb29sa2l0Q2xlYW5lciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUb29sa2l0Q2xlYW5lclByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gRHVtbXkgYXNzZXRzIHRvIHJlZmVyZW5jZSBTMyBidWNrZXQgYW5kIEVDUiByZXBvc2l0b3J5XG4gICAgY29uc3QgZmlsZUFzc2V0ID0gbmV3IEFzc2V0KHRoaXMsICdGaWxlQXNzZXQnLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYXNzZXRzJywgJ3Rvb2xraXQtY2xlYW5lcicsICdkb2NrZXInLCAnZHVtbXkudHh0JyksXG4gICAgfSk7XG4gICAgY29uc3QgZG9ja2VySW1hZ2VBc3NldCA9IG5ldyBEb2NrZXJJbWFnZUFzc2V0KHRoaXMsICdEb2NrZXJJbWFnZUFzc2V0Jywge1xuICAgICAgZGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYXNzZXRzJywgJ3Rvb2xraXQtY2xlYW5lcicsICdkb2NrZXInKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGdldFN0YWNrTmFtZXNGdW5jdGlvbiA9IG5ldyBHZXRTdGFja05hbWVzRnVuY3Rpb24odGhpcywgJ0dldFN0YWNrTmFtZXNGdW5jdGlvbicpO1xuICAgIGdldFN0YWNrTmFtZXNGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3kobmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbJ2Nsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tzJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcbiAgICBjb25zdCBnZXRTdGFja05hbWVzID0gbmV3IHRhc2tzLkxhbWJkYUludm9rZSh0aGlzLCAnR2V0U3RhY2tOYW1lcycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBnZXRTdGFja05hbWVzRnVuY3Rpb24sXG4gICAgICBwYXlsb2FkUmVzcG9uc2VPbmx5OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhY2tzTWFwID0gbmV3IHNmbi5NYXAodGhpcywgJ1N0YWNrc01hcCcsIHtcbiAgICAgIG1heENvbmN1cnJlbmN5OiAxLCAvLyBBdm9pZCBcIlJhdGUgZXhjZWVkZWRcIiBlcnJvciBmcm9tIENsb3VkRm9ybWF0aW9uXG4gICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICBBc3NldEhhc2hlczogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckJyksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGdldFRlbXBsYXRlID0gbmV3IHRhc2tzLkNhbGxBd3NTZXJ2aWNlKHRoaXMsICdHZXRUZW1wbGF0ZScsIHtcbiAgICAgIHNlcnZpY2U6ICdjbG91ZGZvcm1hdGlvbicsXG4gICAgICBhY3Rpb246ICdnZXRUZW1wbGF0ZScsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIFN0YWNrTmFtZTogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckJyksXG4gICAgICB9LFxuICAgICAgaWFtUmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KS5hZGRSZXRyeSh7IC8vIEF2b2lkIFwiUmF0ZSBleGNlZWRlZFwiIGVycm9yIGZyb20gQ2xvdWRGb3JtYXRpb25cbiAgICAgIGVycm9yczogWydDbG91ZEZvcm1hdGlvbi5DbG91ZEZvcm1hdGlvbkV4Y2VwdGlvbiddLFxuICAgIH0pO1xuICAgIGNvbnN0IGV4dHJhY3RIYXNoZXMgPSBuZXcgdGFza3MuRXZhbHVhdGVFeHByZXNzaW9uKHRoaXMsICdFeHRyYWN0SGFzaGVzJywge1xuICAgICAgZXhwcmVzc2lvbjogJ1suLi5uZXcgU2V0KCgkLlRlbXBsYXRlQm9keSkubWF0Y2goL1thLWYwLTldezY0fS9nKSldJyxcbiAgICB9KTtcbiAgICBjb25zdCBmbGF0dGVuSGFzaGVzID0gbmV3IHRhc2tzLkV2YWx1YXRlRXhwcmVzc2lvbih0aGlzLCAnRmxhdHRlbkhhc2hlcycsIHtcbiAgICAgIGV4cHJlc3Npb246ICdbLi4ubmV3IFNldCgoJC5Bc3NldEhhc2hlcykuZmxhdCgpKV0nLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2xlYW5PYmplY3RzRnVuY3Rpb24gPSBuZXcgQ2xlYW5PYmplY3RzRnVuY3Rpb24odGhpcywgJ0NsZWFuT2JqZWN0c0Z1bmN0aW9uJywge1xuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICB9KTtcbiAgICBjbGVhbk9iamVjdHNGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnQlVDS0VUX05BTUUnLCBmaWxlQXNzZXQuYnVja2V0LmJ1Y2tldE5hbWUpO1xuICAgIGZpbGVBc3NldC5idWNrZXQuZ3JhbnRSZWFkKGNsZWFuT2JqZWN0c0Z1bmN0aW9uKTtcbiAgICBmaWxlQXNzZXQuYnVja2V0LmdyYW50RGVsZXRlKGNsZWFuT2JqZWN0c0Z1bmN0aW9uKTtcbiAgICBjb25zdCBjbGVhbk9iamVjdHMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdDbGVhbk9iamVjdHMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogY2xlYW5PYmplY3RzRnVuY3Rpb24sXG4gICAgICBwYXlsb2FkUmVzcG9uc2VPbmx5OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2xlYW5JbWFnZXNGdW5jdGlvbiA9IG5ldyBDbGVhbkltYWdlc0Z1bmN0aW9uKHRoaXMsICdDbGVhbkltYWdlc0Z1bmN0aW9uJywge1xuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICB9KTtcbiAgICBjbGVhbkltYWdlc0Z1bmN0aW9uLmFkZEVudmlyb25tZW50KCdSRVBPU0lUT1JZX05BTUUnLCBkb2NrZXJJbWFnZUFzc2V0LnJlcG9zaXRvcnkucmVwb3NpdG9yeU5hbWUpO1xuICAgIGRvY2tlckltYWdlQXNzZXQucmVwb3NpdG9yeS5ncmFudChjbGVhbkltYWdlc0Z1bmN0aW9uLCAnZWNyOkRlc2NyaWJlSW1hZ2VzJywgJ2VjcjpCYXRjaERlbGV0ZUltYWdlJyk7XG4gICAgY29uc3QgY2xlYW5JbWFnZXMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdDbGVhbkltYWdlcycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBjbGVhbkltYWdlc0Z1bmN0aW9uLFxuICAgICAgcGF5bG9hZFJlc3BvbnNlT25seTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGlmICghcHJvcHMuZHJ5UnVuKSB7XG4gICAgICBjbGVhbk9iamVjdHNGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnUlVOJywgJ3RydWUnKTtcbiAgICAgIGNsZWFuSW1hZ2VzRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoJ1JVTicsICd0cnVlJyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnJldGFpbkFzc2V0c05ld2VyVGhhbikge1xuICAgICAgY29uc3QgcmV0YWluTWlsbGlzZWNvbmRzID0gcHJvcHMucmV0YWluQXNzZXRzTmV3ZXJUaGFuLnRvTWlsbGlzZWNvbmRzKCkudG9TdHJpbmcoKTtcbiAgICAgIGNsZWFuT2JqZWN0c0Z1bmN0aW9uLmFkZEVudmlyb25tZW50KCdSRVRBSU5fTUlMTElTRUNPTkRTJywgcmV0YWluTWlsbGlzZWNvbmRzKTtcbiAgICAgIGNsZWFuSW1hZ2VzRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoJ1JFVEFJTl9NSUxMSVNFQ09ORFMnLCByZXRhaW5NaWxsaXNlY29uZHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHN1bVJlY2xhaW1lZCA9IG5ldyB0YXNrcy5FdmFsdWF0ZUV4cHJlc3Npb24odGhpcywgJ1N1bVJlY2xhaW1lZCcsIHtcbiAgICAgIGV4cHJlc3Npb246ICcoeyBEZWxldGVkOiAkWzBdLkRlbGV0ZWQgKyAkWzFdLkRlbGV0ZWQsIFJlY2xhaW1lZDogJFswXS5SZWNsYWltZWQgKyAkWzFdLlJlY2xhaW1lZCB9KScsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBkZWZpbml0aW9uOiBnZXRTdGFja05hbWVzXG4gICAgICAgIC5uZXh0KHN0YWNrc01hcC5pdGVyYXRvcihnZXRUZW1wbGF0ZS5uZXh0KGV4dHJhY3RIYXNoZXMpKSlcbiAgICAgICAgLm5leHQoZmxhdHRlbkhhc2hlcylcbiAgICAgICAgLm5leHQobmV3IHNmbi5QYXJhbGxlbCh0aGlzLCAnQ2xlYW4nKVxuICAgICAgICAgIC5icmFuY2goY2xlYW5PYmplY3RzKVxuICAgICAgICAgIC5icmFuY2goY2xlYW5JbWFnZXMpKVxuICAgICAgICAubmV4dChzdW1SZWNsYWltZWQpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcnVsZSA9IG5ldyBSdWxlKHRoaXMsICdSdWxlJywge1xuICAgICAgc2NoZWR1bGU6IHByb3BzLnNjaGVkdWxlID8/IFNjaGVkdWxlLnJhdGUoRHVyYXRpb24uZGF5cygxKSksXG4gICAgfSk7XG4gICAgcnVsZS5hZGRUYXJnZXQobmV3IFNmblN0YXRlTWFjaGluZShzdGF0ZU1hY2hpbmUpKTtcbiAgfVxufVxuIl19
119
+ ToolkitCleaner[_a] = { fqn: "cloudstructs.ToolkitCleaner", version: "0.4.17" };
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbGtpdC1jbGVhbmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUF1QztBQUN2QywrREFBOEQ7QUFDOUQsdURBQXdEO0FBQ3hELHVFQUFpRTtBQUNqRSxpREFBc0Q7QUFDdEQsNkRBQWtEO0FBQ2xELHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFDN0QsMkNBQXVDO0FBQ3ZDLG1FQUE4RDtBQUM5RCxxRUFBZ0U7QUFDaEUseUZBQW1GO0FBQ25GLHlFQUFtRTs7Ozs7O0FBa0JuRSxNQUFhLGNBQWUsU0FBUSxzQkFBUzs7OztJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQTZCLEVBQUU7O1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIseURBQXlEO1FBQ3pELE1BQU0sU0FBUyxHQUFHLElBQUkscUJBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzdDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDO1NBQzNGLENBQUMsQ0FBQztRQUNILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxpQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEUsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFFBQVEsQ0FBQztTQUNuRixDQUFDLENBQUM7UUFFSCxNQUFNLHFCQUFxQixHQUFHLElBQUksZ0RBQXFCLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDdkYscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUkseUJBQWUs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QUUsS0FBSyxDQUFDLFFBQVEsbUNBQUkscUJBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLG9DQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOztBQWxHSCx3Q0FtR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEb2NrZXJJbWFnZUFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjci1hc3NldHMnO1xuaW1wb3J0IHsgUnVsZSwgU2NoZWR1bGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCB7IFNmblN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgdGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDbGVhbkltYWdlc0Z1bmN0aW9uIH0gZnJvbSAnLi9jbGVhbi1pbWFnZXMtZnVuY3Rpb24nO1xuaW1wb3J0IHsgQ2xlYW5PYmplY3RzRnVuY3Rpb24gfSBmcm9tICcuL2NsZWFuLW9iamVjdHMtZnVuY3Rpb24nO1xuaW1wb3J0IHsgRXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24gfSBmcm9tICcuL2V4dHJhY3QtdGVtcGxhdGUtaGFzaGVzLWZ1bmN0aW9uJztcbmltcG9ydCB7IEdldFN0YWNrTmFtZXNGdW5jdGlvbiB9IGZyb20gJy4vZ2V0LXN0YWNrLW5hbWVzLWZ1bmN0aW9uJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xraXRDbGVhbmVyUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBTY2hlZHVsZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHNjaGVkdWxlRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRyeVJ1bj86IGJvb2xlYW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcmV0YWluQXNzZXRzTmV3ZXJUaGFuPzogRHVyYXRpb247XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBUb29sa2l0Q2xlYW5lciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUb29sa2l0Q2xlYW5lclByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gRHVtbXkgYXNzZXRzIHRvIHJlZmVyZW5jZSBTMyBidWNrZXQgYW5kIEVDUiByZXBvc2l0b3J5XG4gICAgY29uc3QgZmlsZUFzc2V0ID0gbmV3IEFzc2V0KHRoaXMsICdGaWxlQXNzZXQnLCB7XG4gICAgICBwYXRoOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYXNzZXRzJywgJ3Rvb2xraXQtY2xlYW5lcicsICdkb2NrZXInLCAnZHVtbXkudHh0JyksXG4gICAgfSk7XG4gICAgY29uc3QgZG9ja2VySW1hZ2VBc3NldCA9IG5ldyBEb2NrZXJJbWFnZUFzc2V0KHRoaXMsICdEb2NrZXJJbWFnZUFzc2V0Jywge1xuICAgICAgZGlyZWN0b3J5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnYXNzZXRzJywgJ3Rvb2xraXQtY2xlYW5lcicsICdkb2NrZXInKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGdldFN0YWNrTmFtZXNGdW5jdGlvbiA9IG5ldyBHZXRTdGFja05hbWVzRnVuY3Rpb24odGhpcywgJ0dldFN0YWNrTmFtZXNGdW5jdGlvbicpO1xuICAgIGdldFN0YWNrTmFtZXNGdW5jdGlvbi5hZGRUb1JvbGVQb2xpY3kobmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICBhY3Rpb25zOiBbJ2Nsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tzJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pKTtcbiAgICBjb25zdCBnZXRTdGFja05hbWVzID0gbmV3IHRhc2tzLkxhbWJkYUludm9rZSh0aGlzLCAnR2V0U3RhY2tOYW1lcycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBnZXRTdGFja05hbWVzRnVuY3Rpb24sXG4gICAgICBwYXlsb2FkUmVzcG9uc2VPbmx5OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhY2tzTWFwID0gbmV3IHNmbi5NYXAodGhpcywgJ1N0YWNrc01hcCcsIHtcbiAgICAgIG1heENvbmN1cnJlbmN5OiAxLCAvLyBBdm9pZCBcIlJhdGUgZXhjZWVkZWRcIiBlcnJvciBmcm9tIENsb3VkRm9ybWF0aW9uXG4gICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICBBc3NldEhhc2hlczogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckJyksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24gPSBuZXcgRXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24odGhpcywgJ0V4dHJhY3RUZW1wbGF0ZUhhc2hlc0Z1bmN0aW9uJywge1xuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgfSk7XG4gICAgZXh0cmFjdFRlbXBsYXRlSGFzaGVzRnVuY3Rpb24uYWRkVG9Sb2xlUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWydjbG91ZGZvcm1hdGlvbjpHZXRUZW1wbGF0ZSddLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSk7XG4gICAgY29uc3QgZXh0cmFjdFRlbXBsYXRlSGFzaGVzID0gbmV3IHRhc2tzLkxhbWJkYUludm9rZSh0aGlzLCAnRXh0cmFjdFRlbXBsYXRlSGFzaGVzJywge1xuICAgICAgbGFtYmRhRnVuY3Rpb246IGV4dHJhY3RUZW1wbGF0ZUhhc2hlc0Z1bmN0aW9uLFxuICAgICAgcGF5bG9hZFJlc3BvbnNlT25seTogdHJ1ZSxcbiAgICB9KS5hZGRSZXRyeSh7XG4gICAgICBlcnJvcnM6IFsnVGhyb3R0bGluZyddLCAvLyBBdm9pZCBcIlJhdGUgZXhjZWVkZWRcIiBlcnJvciBmcm9tIENsb3VkRm9ybWF0aW9uXG4gICAgfSk7XG5cbiAgICBjb25zdCBmbGF0dGVuSGFzaGVzID0gbmV3IHRhc2tzLkV2YWx1YXRlRXhwcmVzc2lvbih0aGlzLCAnRmxhdHRlbkhhc2hlcycsIHtcbiAgICAgIGV4cHJlc3Npb246ICdbLi4ubmV3IFNldCgoJC5Bc3NldEhhc2hlcykuZmxhdCgpKV0nLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2xlYW5PYmplY3RzRnVuY3Rpb24gPSBuZXcgQ2xlYW5PYmplY3RzRnVuY3Rpb24odGhpcywgJ0NsZWFuT2JqZWN0c0Z1bmN0aW9uJywge1xuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICB9KTtcbiAgICBjbGVhbk9iamVjdHNGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnQlVDS0VUX05BTUUnLCBmaWxlQXNzZXQuYnVja2V0LmJ1Y2tldE5hbWUpO1xuICAgIGZpbGVBc3NldC5idWNrZXQuZ3JhbnRSZWFkKGNsZWFuT2JqZWN0c0Z1bmN0aW9uKTtcbiAgICBmaWxlQXNzZXQuYnVja2V0LmdyYW50RGVsZXRlKGNsZWFuT2JqZWN0c0Z1bmN0aW9uKTtcbiAgICBjb25zdCBjbGVhbk9iamVjdHMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdDbGVhbk9iamVjdHMnLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogY2xlYW5PYmplY3RzRnVuY3Rpb24sXG4gICAgICBwYXlsb2FkUmVzcG9uc2VPbmx5OiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2xlYW5JbWFnZXNGdW5jdGlvbiA9IG5ldyBDbGVhbkltYWdlc0Z1bmN0aW9uKHRoaXMsICdDbGVhbkltYWdlc0Z1bmN0aW9uJywge1xuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICB9KTtcbiAgICBjbGVhbkltYWdlc0Z1bmN0aW9uLmFkZEVudmlyb25tZW50KCdSRVBPU0lUT1JZX05BTUUnLCBkb2NrZXJJbWFnZUFzc2V0LnJlcG9zaXRvcnkucmVwb3NpdG9yeU5hbWUpO1xuICAgIGRvY2tlckltYWdlQXNzZXQucmVwb3NpdG9yeS5ncmFudChjbGVhbkltYWdlc0Z1bmN0aW9uLCAnZWNyOkRlc2NyaWJlSW1hZ2VzJywgJ2VjcjpCYXRjaERlbGV0ZUltYWdlJyk7XG4gICAgY29uc3QgY2xlYW5JbWFnZXMgPSBuZXcgdGFza3MuTGFtYmRhSW52b2tlKHRoaXMsICdDbGVhbkltYWdlcycsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiBjbGVhbkltYWdlc0Z1bmN0aW9uLFxuICAgICAgcGF5bG9hZFJlc3BvbnNlT25seTogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGlmICghcHJvcHMuZHJ5UnVuKSB7XG4gICAgICBjbGVhbk9iamVjdHNGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCgnUlVOJywgJ3RydWUnKTtcbiAgICAgIGNsZWFuSW1hZ2VzRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoJ1JVTicsICd0cnVlJyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnJldGFpbkFzc2V0c05ld2VyVGhhbikge1xuICAgICAgY29uc3QgcmV0YWluTWlsbGlzZWNvbmRzID0gcHJvcHMucmV0YWluQXNzZXRzTmV3ZXJUaGFuLnRvTWlsbGlzZWNvbmRzKCkudG9TdHJpbmcoKTtcbiAgICAgIGNsZWFuT2JqZWN0c0Z1bmN0aW9uLmFkZEVudmlyb25tZW50KCdSRVRBSU5fTUlMTElTRUNPTkRTJywgcmV0YWluTWlsbGlzZWNvbmRzKTtcbiAgICAgIGNsZWFuSW1hZ2VzRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQoJ1JFVEFJTl9NSUxMSVNFQ09ORFMnLCByZXRhaW5NaWxsaXNlY29uZHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHN1bVJlY2xhaW1lZCA9IG5ldyB0YXNrcy5FdmFsdWF0ZUV4cHJlc3Npb24odGhpcywgJ1N1bVJlY2xhaW1lZCcsIHtcbiAgICAgIGV4cHJlc3Npb246ICcoeyBEZWxldGVkOiAkWzBdLkRlbGV0ZWQgKyAkWzFdLkRlbGV0ZWQsIFJlY2xhaW1lZDogJFswXS5SZWNsYWltZWQgKyAkWzFdLlJlY2xhaW1lZCB9KScsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBkZWZpbml0aW9uOiBnZXRTdGFja05hbWVzXG4gICAgICAgIC5uZXh0KHN0YWNrc01hcC5pdGVyYXRvcihleHRyYWN0VGVtcGxhdGVIYXNoZXMpKVxuICAgICAgICAubmV4dChmbGF0dGVuSGFzaGVzKVxuICAgICAgICAubmV4dChuZXcgc2ZuLlBhcmFsbGVsKHRoaXMsICdDbGVhbicpXG4gICAgICAgICAgLmJyYW5jaChjbGVhbk9iamVjdHMpXG4gICAgICAgICAgLmJyYW5jaChjbGVhbkltYWdlcykpXG4gICAgICAgIC5uZXh0KHN1bVJlY2xhaW1lZCksXG4gICAgfSk7XG5cbiAgICBjb25zdCBydWxlID0gbmV3IFJ1bGUodGhpcywgJ1J1bGUnLCB7XG4gICAgICBlbmFibGVkOiBwcm9wcy5zY2hlZHVsZUVuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgIHNjaGVkdWxlOiBwcm9wcy5zY2hlZHVsZSA/PyBTY2hlZHVsZS5yYXRlKER1cmF0aW9uLmRheXMoMSkpLFxuICAgIH0pO1xuICAgIHJ1bGUuYWRkVGFyZ2V0KG5ldyBTZm5TdGF0ZU1hY2hpbmUoc3RhdGVNYWNoaW5lKSk7XG4gIH1cbn1cbiJdfQ==
@@ -99,5 +99,5 @@ class UrlShortener extends constructs_1.Construct {
99
99
  }
100
100
  exports.UrlShortener = UrlShortener;
101
101
  _a = JSII_RTTI_SYMBOL_1;
102
- UrlShortener[_a] = { fqn: "cloudstructs.UrlShortener", version: "0.4.13" };
102
+ UrlShortener[_a] = { fqn: "cloudstructs.UrlShortener", version: "0.4.17" };
103
103
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXJsLXNob3J0ZW5lci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEyQztBQUMzQyx5REFBeUQ7QUFDekQsMERBQTBEO0FBQzFELHlEQUF5RDtBQUN6RCw4REFBOEQ7QUFDOUQscURBQXFEO0FBRXJELDJDQUEyQztBQUMzQyw2Q0FBNkM7QUFDN0MsbURBQW1EO0FBQ25ELDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsMkNBQXVDO0FBQ3ZDLDZEQUF5RDs7Ozs7O0FBZXpELE1BQWEsWUFBYSxTQUFRLHNCQUFTOzs7O0lBT3pDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7O1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsMEJBQTBCO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzlDLFlBQVksRUFBRTtnQkFDWixJQUFJLEVBQUUsS0FBSztnQkFDWCxJQUFJLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNO2FBQ3BDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsMkJBQTJCO1FBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzNDLGNBQWMsRUFBRSxDQUFDO29CQUNmLFVBQVUsUUFBRSxLQUFLLENBQUMsVUFBVSxtQ0FBSSxzQkFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ25ELENBQUM7WUFDRixvQkFBb0IsRUFBRSxZQUFZO1NBQ25DLENBQUMsQ0FBQztRQUVILDBCQUEwQjtRQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3ZFLFVBQVUsRUFBRSxLQUFL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b0NBb0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIEZuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYXBpZ2F0ZXdheSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIG9yaWdpbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyByb3V0ZTUzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0cyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBTaG9ydGVuZXJGdW5jdGlvbiB9IGZyb20gJy4vc2hvcnRlbmVyLWZ1bmN0aW9uJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBVcmxTaG9ydGVuZXJQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmU6IHJvdXRlNTMuSUhvc3RlZFpvbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBleHBpcmF0aW9uPzogRHVyYXRpb247XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXBpR2F0ZXdheUVuZHBvaW50PzogZWMyLklJbnRlcmZhY2VWcGNFbmRwb2ludDtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgVXJsU2hvcnRlbmVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgYXBpRW5kcG9pbnQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgYXBpOiBhcGlnYXRld2F5LkxhbWJkYVJlc3RBcGk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFVybFNob3J0ZW5lclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIFRhYmxlIHRvIHNhdmUgYSBjb3VudGVyXG4gICAgY29uc3QgdGFibGUgPSBuZXcgZHluYW1vZGIuVGFibGUodGhpcywgJ1RhYmxlJywge1xuICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgIG5hbWU6ICdrZXknLFxuICAgICAgICB0eXBlOiBkeW5hbW9kYi5BdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBCdWNrZXQgdG8gc2F2ZSByZWRpcmVjdHNcbiAgICBjb25zdCBidWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnLCB7XG4gICAgICBsaWZlY3ljbGVSdWxlczogW3tcbiAgICAgICAgZXhwaXJhdGlvbjogcHJvcHMuZXhwaXJhdGlvbiA/PyBEdXJhdGlvbi5kYXlzKDM2NSksXG4gICAgICB9XSxcbiAgICAgIHdlYnNpdGVJbmRleERvY3VtZW50OiAnaW5kZXguaHRtbCcsXG4gICAgfSk7XG5cbiAgICAvLyBDbG91ZEZyb250IGRpc3RyaWJ1dGlvblxuICAgIGNvbnN0IGNlcnRpZmljYXRlID0gbmV3IGFjbS5EbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCAnQ2VydGlmaWNhdGUnLCB7XG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5ob3N0ZWRab25lLnpvbmVOYW1lLFxuICAgICAgaG9zdGVkWm9uZTogcHJvcHMuaG9zdGVkWm9uZSxcbiAgICB9KTtcbiAgICBjb25zdCBkaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24odGhpcywgJ0Rpc3RyaWJ1dGlvbicsIHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IG5ldyBvcmlnaW5zLlMzT3JpZ2luKGJ1Y2tldCksXG4gICAgICB9LFxuICAgICAgY2VydGlmaWNhdGUsXG4gICAgICBkb21haW5OYW1lczogW3Byb3BzLmhvc3RlZFpvbmUuem9uZU5hbWVdLFxuICAgIH0pO1xuXG4gICAgLy8gUm91dGU1MyByZWNvcmRzXG4gICAgbmV3IHJvdXRlNTMuQVJlY29yZCh0aGlzLCAnQVJlY29yZCcsIHtcbiAgICAgIHpvbmU6IHByb3BzLmhvc3RlZFpvbmUsXG4gICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgdGFyZ2V0cy5DbG91ZEZyb250VGFyZ2V0KGRpc3RyaWJ1dGlvbikpLFxuICAgIH0pO1xuICAgIG5ldyByb3V0ZTUzLkFhYWFSZWNvcmQodGhpcywgJ0FhYWFSZWNvcmQnLCB7XG4gICAgICB6b25lOiBwcm9wcy5ob3N0ZWRab25lLFxuICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IHRhcmdldHMuQ2xvdWRGcm9udFRhcmdldChkaXN0cmlidXRpb24pKSxcbiAgICB9KTtcblxuICAgIC8vIExhbWJkYSBmdW5jdGlvbiB0byBpbmNyZW1lbnQgY291bnRlciBhbmQgd3JpdGUgcmVkaXJlY3QgaW4gYnVja2V0XG4gICAgY29uc3QgaGFuZGxlciA9IG5ldyBTaG9ydGVuZXJGdW5jdGlvbih0aGlzLCAnaGFuZGxlcicsIHtcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIERPTUFJTl9OQU1FOiBwcm9wcy5ob3N0ZWRab25lLnpvbmVOYW1lLFxuICAgICAgICBCVUNLRVRfTkFNRTogYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIFRBQkxFX05BTUU6IHRhYmxlLnRhYmxlTmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgYnVja2V0LmdyYW50UHV0KGhhbmRsZXIpO1xuICAgIHRhYmxlLmdyYW50KGhhbmRsZXIsICdkeW5hbW9kYjpVcGRhdGVJdGVtJyk7XG5cbiAgICAvLyBBUElcbiAgICB0aGlzLmFwaSA9IG5ldyBhcGlnYXRld2F5LkxhbWJkYVJlc3RBcGkodGhpcywgYFVybFNob3J0ZW5lciR7cHJvcHMuaG9zdGVkWm9uZS56b25lTmFtZX1gLCB7XG4gICAgICBoYW5kbGVyLFxuICAgICAgZW5kcG9pbnRUeXBlczogcHJvcHMuYXBpR2F0ZXdheUVuZHBvaW50ID8gW2FwaWdhdGV3YXkuRW5kcG9pbnRUeXBlLlBSSVZBVEVdIDogdW5kZWZpbmVkLFxuICAgICAgcG9saWN5OiBwcm9wcy5hcGlHYXRld2F5RW5kcG9pbnRcbiAgICAgICAgPyBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydleGVjdXRlLWFwaTpJbnZva2UnXSxcbiAgICAgICAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQW55UHJpbmNpcGFsKCldLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtGbi5qb2luKCcnLCBbJ2V4ZWN1dGUtYXBpOi8nLCAnKiddKV0sXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHsgJ2F3czpTb3VyY2VWcGNlJzogcHJvcHMuYXBpR2F0ZXdheUVuZHBvaW50LnZwY0VuZHBvaW50SWQgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcGlFbmRwb2ludCA9IHRoaXMuYXBpLnVybDtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference lib="es2018" />
3
3
  /// <reference lib="dom" />
4
- import { Class, TypedArray, ObservableLike, Primitive } from './types';
4
+ import { Class, Falsy, TypedArray, ObservableLike, Primitive } from './types';
5
5
  declare const objectTypeNames: readonly ["Function", "Generator", "AsyncGenerator", "GeneratorFunction", "AsyncGeneratorFunction", "AsyncFunction", "Observable", "Array", "Buffer", "Object", "RegExp", "Date", "Error", "Map", "Set", "WeakMap", "WeakSet", "ArrayBuffer", "SharedArrayBuffer", "DataView", "Promise", "URL", "FormData", "URLSearchParams", "HTMLElement", ...("Int8Array" | "Uint8Array" | "Uint8ClampedArray" | "Int16Array" | "Uint16Array" | "Int32Array" | "Uint32Array" | "Float32Array" | "Float64Array" | "BigInt64Array" | "BigUint64Array")[]];
6
6
  declare type ObjectTypeName = typeof objectTypeNames[number];
7
7
  declare const primitiveTypeNames: readonly ["null", "undefined", "string", "number", "bigint", "boolean", "symbol"];
@@ -58,8 +58,8 @@ declare namespace is {
58
58
  var directInstanceOf: <T>(instance: unknown, class_: Class<T, any[]>) => instance is T;
59
59
  var urlInstance: (value: unknown) => value is URL;
60
60
  var urlString: (value: unknown) => value is string;
61
- var truthy: (value: unknown) => boolean;
62
- var falsy: (value: unknown) => boolean;
61
+ var truthy: <T>(value: false | "" | 0 | 0n | T | null | undefined) => value is T;
62
+ var falsy: <T>(value: false | "" | 0 | 0n | T | null | undefined) => value is Falsy;
63
63
  var nan: (value: unknown) => boolean;
64
64
  var primitive: (value: unknown) => value is Primitive;
65
65
  var integer: (value: unknown) => value is number;
@@ -193,7 +193,6 @@ is.urlString = (value) => {
193
193
  return false;
194
194
  }
195
195
  };
196
- // TODO: Use the `not` operator with a type guard here when it's available.
197
196
  // Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);`
198
197
  is.truthy = (value) => Boolean(value);
199
198
  // Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);`
@@ -22,3 +22,4 @@ export interface ObservableLike {
22
22
  subscribe(observer: (value: unknown) => void): void;
23
23
  [Symbol.observable](): ObservableLike;
24
24
  }
25
+ export declare type Falsy = false | 0 | 0n | '' | null | undefined;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sindresorhus/is",
3
- "version": "4.3.0",
3
+ "version": "4.4.0",
4
4
  "description": "Type check values",
5
5
  "license": "MIT",
6
6
  "repository": "sindresorhus/is",
@@ -214,9 +214,7 @@ is.boundFunction(function () {});
214
214
 
215
215
  ##### .enumCase(value, enum)
216
216
 
217
- **TypeScript-only**
218
-
219
- Returns `true` if `value` is a member of `enum`.
217
+ TypeScript-only. Returns `true` if `value` is a member of `enum`.
220
218
 
221
219
  ```ts
222
220
  enum Direction {
@@ -8,9 +8,9 @@ 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: Tue, 18 Jan 2022 18:31:37 GMT
11
+ * Last updated: Fri, 04 Feb 2022 23:01:26 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`
14
14
 
15
15
  # Credits
16
- These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Seth Westphal](https://github.com/westy92), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), and [wafuwafu13](https://github.com/wafuwafu13).
16
+ These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), and [wafuwafu13](https://github.com/wafuwafu13).
@@ -250,7 +250,7 @@ declare module 'crypto' {
250
250
  */
251
251
  function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac;
252
252
  // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings
253
- type BinaryToTextEncoding = 'base64' | 'base64url' | 'hex';
253
+ type BinaryToTextEncoding = 'base64' | 'base64url' | 'hex' | 'binary';
254
254
  type CharacterEncoding = 'utf8' | 'utf-8' | 'utf16le' | 'latin1';
255
255
  type LegacyCharacterEncoding = 'ascii' | 'binary' | 'ucs2' | 'ucs-2';
256
256
  type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding;
@@ -50,7 +50,7 @@ declare module 'events' {
50
50
  listener: (...args: any[]) => void,
51
51
  opts?: {
52
52
  once: boolean;
53
- }
53
+ },
54
54
  ): any;
55
55
  }
56
56
  interface StaticEventEmitterOptions {
@@ -154,7 +154,11 @@ declare module 'events' {
154
154
  * ```
155
155
  * @since v11.13.0, v10.16.0
156
156
  */
157
- static once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>;
157
+ static once(
158
+ emitter: NodeEventTarget,
159
+ eventName: string | symbol,
160
+ options?: StaticEventEmitterOptions,
161
+ ): Promise<any[]>;
158
162
  static once(emitter: DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>;
159
163
  /**
160
164
  * ```js
@@ -214,7 +218,11 @@ declare module 'events' {
214
218
  * @param eventName The name of the event being listened for
215
219
  * @return that iterates `eventName` events emitted by the `emitter`
216
220
  */
217
- static on(emitter: NodeJS.EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>;
221
+ static on(
222
+ emitter: NodeJS.EventEmitter,
223
+ eventName: string,
224
+ options?: StaticEventEmitterOptions,
225
+ ): AsyncIterableIterator<any>;
218
226
  /**
219
227
  * A class method that returns the number of listeners for the given `eventName`registered on the given `emitter`.
220
228
  *
@@ -260,6 +268,26 @@ declare module 'events' {
260
268
  * @since v15.2.0, v14.17.0
261
269
  */
262
270
  static getEventListeners(emitter: DOMEventTarget | NodeJS.EventEmitter, name: string | symbol): Function[];
271
+ /**
272
+ * By default `EventEmitter`s will print a warning if more than `10` listeners are
273
+ * added for a particular event. This is a useful default that helps finding
274
+ * memory leaks. The `EventEmitter.setMaxListeners()` method allows the default limit to be
275
+ * modified (if eventTargets is empty) or modify the limit specified in every `EventTarget` | `EventEmitter` passed as arguments.
276
+ * The value can be set to`Infinity` (or `0`) to indicate an unlimited number of listeners.
277
+ *
278
+ * ```js
279
+ * EventEmitter.setMaxListeners(20);
280
+ * // Equivalent to
281
+ * EventEmitter.defaultMaxListeners = 20;
282
+ *
283
+ * const eventTarget = new EventTarget();
284
+ * // Only way to increase limit for `EventTarget` instances
285
+ * // as these doesn't expose its own `setMaxListeners` method
286
+ * EventEmitter.setMaxListeners(20, eventTarget);
287
+ * ```
288
+ * @since v15.3.0, v14.17.0
289
+ */
290
+ static setMaxListeners(n?: number, ...eventTargets: Array<DOMEventTarget | NodeJS.EventEmitter>): void;
263
291
  /**
264
292
  * This symbol shall be used to install a listener for only monitoring `'error'`
265
293
  * events. Listeners installed using this symbol are called before the regular
@@ -21,7 +21,6 @@
21
21
  // Nikita Galkin <https://github.com/galkin>
22
22
  // Parambir Singh <https://github.com/parambirs>
23
23
  // Sebastian Silbermann <https://github.com/eps1lon>
24
- // Seth Westphal <https://github.com/westy92>
25
24
  // Simon Schick <https://github.com/SimonSchick>
26
25
  // Thomas den Hollander <https://github.com/ThomasdenH>
27
26
  // Wilco Bakker <https://github.com/WilcoBakker>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "17.0.10",
3
+ "version": "17.0.15",
4
4
  "description": "TypeScript definitions for Node.js",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -110,11 +110,6 @@
110
110
  "url": "https://github.com/eps1lon",
111
111
  "githubUsername": "eps1lon"
112
112
  },
113
- {
114
- "name": "Seth Westphal",
115
- "url": "https://github.com/westy92",
116
- "githubUsername": "westy92"
117
- },
118
113
  {
119
114
  "name": "Simon Schick",
120
115
  "url": "https://github.com/SimonSchick",
@@ -220,6 +215,6 @@
220
215
  },
221
216
  "scripts": {},
222
217
  "dependencies": {},
223
- "typesPublisherContentHash": "a2e243404f102a5fd5fbcaefab0a775ffcb1db4d09832612decbd69815f1890b",
218
+ "typesPublisherContentHash": "a329ddcd97ab6a1c8b625aef355a454352556c1cebd7fca4e3eda4f0cc1eb54e",
224
219
  "typeScriptVersion": "3.8"
225
220
  }
@@ -778,7 +778,7 @@ declare module 'url' {
778
778
  * @param fn Invoked for each name-value pair in the query
779
779
  * @param thisArg To be used as `this` value for when `fn` is called
780
780
  */
781
- forEach<TThis = this>(callback: (this: TThis, value: string, name: string, searchParams: this) => void, thisArg?: TThis): void;
781
+ forEach<TThis = this>(callback: (this: TThis, value: string, name: string, searchParams: URLSearchParams) => void, thisArg?: TThis): void;
782
782
  /**
783
783
  * Returns the value of the first name-value pair whose name is `name`. If there
784
784
  * are no such pairs, `null` is returned.
@@ -855,6 +855,32 @@ declare module 'url' {
855
855
  values(): IterableIterator<string>;
856
856
  [Symbol.iterator](): IterableIterator<[string, string]>;
857
857
  }
858
+
859
+ import { URL as _URL, URLSearchParams as _URLSearchParams } from 'url';
860
+ global {
861
+ interface URLSearchParams extends _URLSearchParams {}
862
+ interface URL extends _URL {}
863
+ interface Global {
864
+ URL: typeof _URL;
865
+ URLSearchParams: typeof _URLSearchParams;
866
+ }
867
+ /**
868
+ * `URL` class is a global reference for `require('url').URL`
869
+ * https://nodejs.org/api/url.html#the-whatwg-url-api
870
+ * @since v10.0.0
871
+ */
872
+ var URL: typeof globalThis extends { webkitURL: infer URL } ? URL : typeof _URL;
873
+ /**
874
+ * `URLSearchParams` class is a global reference for `require('url').URLSearchParams`
875
+ * https://nodejs.org/api/url.html#class-urlsearchparams
876
+ * @since v10.0.0
877
+ */
878
+ var URLSearchParams: {
879
+ prototype: URLSearchParams;
880
+ new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
881
+ toString(): string;
882
+ };
883
+ }
858
884
  }
859
885
  declare module 'node:url' {
860
886
  export * from 'url';
@@ -317,7 +317,7 @@ declare module 'util' {
317
317
  * @return The representation of `object`.
318
318
  */
319
319
  export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string;
320
- export function inspect(object: any, options: InspectOptions): string;
320
+ export function inspect(object: any, options?: InspectOptions): string;
321
321
  export namespace inspect {
322
322
  let colors: NodeJS.Dict<[number, number]>;
323
323
  let styles: {
@@ -8,9 +8,9 @@ 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: Tue, 18 Jan 2022 18:31:37 GMT
11
+ * Last updated: Fri, 04 Feb 2022 23:01:26 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`
14
14
 
15
15
  # Credits
16
- These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Seth Westphal](https://github.com/westy92), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), and [wafuwafu13](https://github.com/wafuwafu13).
16
+ These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), and [wafuwafu13](https://github.com/wafuwafu13).
@@ -250,7 +250,7 @@ declare module 'crypto' {
250
250
  */
251
251
  function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac;
252
252
  // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings
253
- type BinaryToTextEncoding = 'base64' | 'base64url' | 'hex';
253
+ type BinaryToTextEncoding = 'base64' | 'base64url' | 'hex' | 'binary';
254
254
  type CharacterEncoding = 'utf8' | 'utf-8' | 'utf16le' | 'latin1';
255
255
  type LegacyCharacterEncoding = 'ascii' | 'binary' | 'ucs2' | 'ucs-2';
256
256
  type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding;
@@ -50,7 +50,7 @@ declare module 'events' {
50
50
  listener: (...args: any[]) => void,
51
51
  opts?: {
52
52
  once: boolean;
53
- }
53
+ },
54
54
  ): any;
55
55
  }
56
56
  interface StaticEventEmitterOptions {
@@ -154,7 +154,11 @@ declare module 'events' {
154
154
  * ```
155
155
  * @since v11.13.0, v10.16.0
156
156
  */
157
- static once(emitter: NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>;
157
+ static once(
158
+ emitter: NodeEventTarget,
159
+ eventName: string | symbol,
160
+ options?: StaticEventEmitterOptions,
161
+ ): Promise<any[]>;
158
162
  static once(emitter: DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>;
159
163
  /**
160
164
  * ```js
@@ -214,7 +218,11 @@ declare module 'events' {
214
218
  * @param eventName The name of the event being listened for
215
219
  * @return that iterates `eventName` events emitted by the `emitter`
216
220
  */
217
- static on(emitter: NodeJS.EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>;
221
+ static on(
222
+ emitter: NodeJS.EventEmitter,
223
+ eventName: string,
224
+ options?: StaticEventEmitterOptions,
225
+ ): AsyncIterableIterator<any>;
218
226
  /**
219
227
  * A class method that returns the number of listeners for the given `eventName`registered on the given `emitter`.
220
228
  *
@@ -260,6 +268,26 @@ declare module 'events' {
260
268
  * @since v15.2.0, v14.17.0
261
269
  */
262
270
  static getEventListeners(emitter: DOMEventTarget | NodeJS.EventEmitter, name: string | symbol): Function[];
271
+ /**
272
+ * By default `EventEmitter`s will print a warning if more than `10` listeners are
273
+ * added for a particular event. This is a useful default that helps finding
274
+ * memory leaks. The `EventEmitter.setMaxListeners()` method allows the default limit to be
275
+ * modified (if eventTargets is empty) or modify the limit specified in every `EventTarget` | `EventEmitter` passed as arguments.
276
+ * The value can be set to`Infinity` (or `0`) to indicate an unlimited number of listeners.
277
+ *
278
+ * ```js
279
+ * EventEmitter.setMaxListeners(20);
280
+ * // Equivalent to
281
+ * EventEmitter.defaultMaxListeners = 20;
282
+ *
283
+ * const eventTarget = new EventTarget();
284
+ * // Only way to increase limit for `EventTarget` instances
285
+ * // as these doesn't expose its own `setMaxListeners` method
286
+ * EventEmitter.setMaxListeners(20, eventTarget);
287
+ * ```
288
+ * @since v15.3.0, v14.17.0
289
+ */
290
+ static setMaxListeners(n?: number, ...eventTargets: Array<DOMEventTarget | NodeJS.EventEmitter>): void;
263
291
  /**
264
292
  * This symbol shall be used to install a listener for only monitoring `'error'`
265
293
  * events. Listeners installed using this symbol are called before the regular
@@ -21,7 +21,6 @@
21
21
  // Nikita Galkin <https://github.com/galkin>
22
22
  // Parambir Singh <https://github.com/parambirs>
23
23
  // Sebastian Silbermann <https://github.com/eps1lon>
24
- // Seth Westphal <https://github.com/westy92>
25
24
  // Simon Schick <https://github.com/SimonSchick>
26
25
  // Thomas den Hollander <https://github.com/ThomasdenH>
27
26
  // Wilco Bakker <https://github.com/WilcoBakker>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/node",
3
- "version": "17.0.10",
3
+ "version": "17.0.15",
4
4
  "description": "TypeScript definitions for Node.js",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node",
6
6
  "license": "MIT",
@@ -110,11 +110,6 @@
110
110
  "url": "https://github.com/eps1lon",
111
111
  "githubUsername": "eps1lon"
112
112
  },
113
- {
114
- "name": "Seth Westphal",
115
- "url": "https://github.com/westy92",
116
- "githubUsername": "westy92"
117
- },
118
113
  {
119
114
  "name": "Simon Schick",
120
115
  "url": "https://github.com/SimonSchick",
@@ -220,6 +215,6 @@
220
215
  },
221
216
  "scripts": {},
222
217
  "dependencies": {},
223
- "typesPublisherContentHash": "a2e243404f102a5fd5fbcaefab0a775ffcb1db4d09832612decbd69815f1890b",
218
+ "typesPublisherContentHash": "a329ddcd97ab6a1c8b625aef355a454352556c1cebd7fca4e3eda4f0cc1eb54e",
224
219
  "typeScriptVersion": "3.8"
225
220
  }
@@ -778,7 +778,7 @@ declare module 'url' {
778
778
  * @param fn Invoked for each name-value pair in the query
779
779
  * @param thisArg To be used as `this` value for when `fn` is called
780
780
  */
781
- forEach<TThis = this>(callback: (this: TThis, value: string, name: string, searchParams: this) => void, thisArg?: TThis): void;
781
+ forEach<TThis = this>(callback: (this: TThis, value: string, name: string, searchParams: URLSearchParams) => void, thisArg?: TThis): void;
782
782
  /**
783
783
  * Returns the value of the first name-value pair whose name is `name`. If there
784
784
  * are no such pairs, `null` is returned.
@@ -855,6 +855,32 @@ declare module 'url' {
855
855
  values(): IterableIterator<string>;
856
856
  [Symbol.iterator](): IterableIterator<[string, string]>;
857
857
  }
858
+
859
+ import { URL as _URL, URLSearchParams as _URLSearchParams } from 'url';
860
+ global {
861
+ interface URLSearchParams extends _URLSearchParams {}
862
+ interface URL extends _URL {}
863
+ interface Global {
864
+ URL: typeof _URL;
865
+ URLSearchParams: typeof _URLSearchParams;
866
+ }
867
+ /**
868
+ * `URL` class is a global reference for `require('url').URL`
869
+ * https://nodejs.org/api/url.html#the-whatwg-url-api
870
+ * @since v10.0.0
871
+ */
872
+ var URL: typeof globalThis extends { webkitURL: infer URL } ? URL : typeof _URL;
873
+ /**
874
+ * `URLSearchParams` class is a global reference for `require('url').URLSearchParams`
875
+ * https://nodejs.org/api/url.html#class-urlsearchparams
876
+ * @since v10.0.0
877
+ */
878
+ var URLSearchParams: {
879
+ prototype: URLSearchParams;
880
+ new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
881
+ toString(): string;
882
+ };
883
+ }
858
884
  }
859
885
  declare module 'node:url' {
860
886
  export * from 'url';
@@ -317,7 +317,7 @@ declare module 'util' {
317
317
  * @return The representation of `object`.
318
318
  */
319
319
  export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string;
320
- export function inspect(object: any, options: InspectOptions): string;
320
+ export function inspect(object: any, options?: InspectOptions): string;
321
321
  export namespace inspect {
322
322
  let colors: NodeJS.Dict<[number, number]>;
323
323
  let styles: {
@@ -8,9 +8,9 @@ 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: Tue, 01 Feb 2022 08:31:29 GMT
11
+ * Last updated: Fri, 04 Feb 2022 23:01:26 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`
14
14
 
15
15
  # Credits
16
- These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Seth Westphal](https://github.com/westy92), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), and [wafuwafu13](https://github.com/wafuwafu13).
16
+ These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), and [wafuwafu13](https://github.com/wafuwafu13).
@@ -21,7 +21,6 @@
21
21
  // Nikita Galkin <https://github.com/galkin>
22
22
  // Parambir Singh <https://github.com/parambirs>
23
23
  // Sebastian Silbermann <https://github.com/eps1lon>
24
- // Seth Westphal <https://github.com/westy92>
25
24
  // Simon Schick <https://github.com/SimonSchick>
26
25
  // Thomas den Hollander <https://github.com/ThomasdenH>
27
26
  // Wilco Bakker <https://github.com/WilcoBakker>