eslint-plugin-awscdk 0.0.11 → 0.0.13

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 (56) hide show
  1. package/.gitattributes +21 -20
  2. package/.projenrc.ts +3 -4
  3. package/README.md +2 -0
  4. package/lib/index.d.ts +16 -16
  5. package/lib/rules/index.d.ts +16 -16
  6. package/lib/rules/no-iam-admin-permissions.d.ts +1 -1
  7. package/lib/rules/no-iam-admin-permissions.js +10 -7
  8. package/lib/rules/no-iam-star-actions.d.ts +1 -1
  9. package/lib/rules/no-iam-star-actions.js +9 -6
  10. package/lib/rules/no-kms-key-delete.d.ts +1 -1
  11. package/lib/rules/no-kms-key-delete.js +10 -5
  12. package/lib/rules/no-policy-allow-kms-decrypt.d.ts +1 -1
  13. package/lib/rules/no-policy-allow-kms-decrypt.js +10 -7
  14. package/lib/rules/no-public-ingress.d.ts +2 -2
  15. package/lib/rules/no-public-ingress.js +10 -11
  16. package/lib/rules/no-rds-public-access.d.ts +2 -2
  17. package/lib/rules/no-rds-public-access.js +17 -12
  18. package/lib/rules/no-redshift-public-access.d.ts +1 -1
  19. package/lib/rules/no-redshift-public-access.js +10 -5
  20. package/lib/rules/no-s3-public-read.d.ts +2 -2
  21. package/lib/rules/no-s3-public-read.js +28 -23
  22. package/lib/rules/no-s3-public-write.d.ts +2 -2
  23. package/lib/rules/no-s3-public-write.js +24 -19
  24. package/lib/rules/require-bucket-encryption.d.ts +2 -2
  25. package/lib/rules/require-bucket-encryption.js +13 -7
  26. package/lib/rules/require-bucket-private.d.ts +2 -2
  27. package/lib/rules/require-bucket-private.js +10 -5
  28. package/lib/rules/require-bucket-ssl.d.ts +1 -1
  29. package/lib/rules/require-bucket-ssl.js +12 -7
  30. package/lib/rules/require-cloudfront-default-root-object.d.ts +1 -1
  31. package/lib/rules/require-cloudfront-default-root-object.js +8 -5
  32. package/lib/rules/require-dynamodb-autoscale.d.ts +1 -1
  33. package/lib/rules/require-dynamodb-autoscale.js +13 -10
  34. package/lib/rules/require-dynamodb-ptr.d.ts +1 -1
  35. package/lib/rules/require-dynamodb-ptr.js +10 -5
  36. package/lib/rules/require-sns-topic-encryption.d.ts +1 -1
  37. package/lib/rules/require-sns-topic-encryption.js +8 -5
  38. package/lib/util/findClassProperty.d.ts +1 -1
  39. package/lib/util/findClassProperty.js +8 -8
  40. package/lib/util/findConstructMethods.d.ts +1 -1
  41. package/lib/util/findConstructMethods.js +7 -7
  42. package/lib/util/findImportNode.d.ts +1 -1
  43. package/lib/util/findImportNode.js +7 -4
  44. package/lib/util/findMethods.d.ts +1 -1
  45. package/lib/util/findMethods.js +14 -14
  46. package/lib/util/findNewExpression.d.ts +1 -1
  47. package/lib/util/findNewExpression.js +5 -5
  48. package/lib/util/findVariable.d.ts +1 -1
  49. package/lib/util/findVariable.js +6 -6
  50. package/lib/util/getCdkExpression.d.ts +1 -1
  51. package/lib/util/getCdkExpression.js +10 -10
  52. package/lib/util/index.d.ts +1 -0
  53. package/lib/util/index.js +7 -2
  54. package/lib/util/utils.d.ts +2 -0
  55. package/lib/util/utils.js +16 -0
  56. package/package.json +35 -35
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
3
+ const utils_1 = require("@typescript-eslint/utils");
4
4
  // import { Rule } from 'eslint';
5
5
  // import * as util from '../util';
6
- const createRule = experimental_utils_1.ESLintUtils.RuleCreator(name => `${name}`);
6
+ const createRule = utils_1.ESLintUtils.RuleCreator(name => `${name}`);
7
7
  exports.default = createRule({
8
8
  meta: {
9
9
  type: 'suggestion',
@@ -15,7 +15,6 @@ exports.default = createRule({
15
15
  },
16
16
  docs: {
17
17
  requiresTypeChecking: true,
18
- category: 'Best Practices',
19
18
  description: 'Security Group rules should not allow access from anywhere',
20
19
  recommended: 'warn',
21
20
  extendsBaseRule: false,
@@ -25,7 +24,7 @@ exports.default = createRule({
25
24
  defaultOptions: [],
26
25
  create: context => {
27
26
  function parseArguments(args) {
28
- if (args[0].type === experimental_utils_1.AST_NODE_TYPES.Literal) {
27
+ if (args[0].type === utils_1.AST_NODE_TYPES.Literal) {
29
28
  if (args[0].value === '0.0.0.0/0') {
30
29
  return false;
31
30
  }
@@ -35,12 +34,12 @@ exports.default = createRule({
35
34
  return {
36
35
  CallExpression(node) {
37
36
  const args = node.arguments;
38
- if (node.callee.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
37
+ if (node.callee.type === utils_1.AST_NODE_TYPES.MemberExpression) {
39
38
  const callee = node.callee;
40
39
  // e.g. ec2.Peer.anyIpv4()
41
- if (callee.object.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
40
+ if (callee.object.type === utils_1.AST_NODE_TYPES.MemberExpression) {
42
41
  const property = callee.object.property;
43
- if (property.name === 'Peer' && callee.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
42
+ if (property.name === 'Peer' && callee.property.type === utils_1.AST_NODE_TYPES.Identifier) {
44
43
  switch (callee.property.name) {
45
44
  case 'anyIpv4':
46
45
  context.report({
@@ -60,9 +59,9 @@ exports.default = createRule({
60
59
  }
61
60
  // e.g. Peer.anyIpv4()
62
61
  }
63
- else if (callee.object.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
62
+ else if (callee.object.type === utils_1.AST_NODE_TYPES.Identifier) {
64
63
  if (callee.object.name === 'Peer') {
65
- if (callee.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
64
+ if (callee.property.type === utils_1.AST_NODE_TYPES.Identifier) {
66
65
  switch (callee.property.name) {
67
66
  case 'anyIpv4':
68
67
  context.report({
@@ -82,7 +81,7 @@ exports.default = createRule({
82
81
  }
83
82
  }
84
83
  }
85
- if (callee.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
84
+ if (callee.property.type === utils_1.AST_NODE_TYPES.Identifier) {
86
85
  switch (callee.property.name) {
87
86
  case 'allowFromAnyIpv4':
88
87
  context.report({
@@ -104,4 +103,4 @@ exports.default = createRule({
104
103
  };
105
104
  },
106
105
  });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcHVibGljLWluZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tcHVibGljLWluZ3Jlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4RUFBOEY7QUFDOUYsaUNBQWlDO0FBQ2pDLG1DQUFtQztBQUVuQyxNQUFNLFVBQVUsR0FBRyxnQ0FBVyxDQUFDLFdBQVcsQ0FDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUNsQixDQUFDO0FBVUYsa0JBQWUsVUFBVSxDQUFzQjtJQUM3QyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRTtZQUNSLG1CQUFtQixFQUFFLHVFQUF1RTtZQUM1Riw4QkFBOEIsRUFBRSxzR0FBc0c7WUFDdEksa0JBQWtCLEVBQUUseUNBQXlDO1NBQzlEO1FBQ0QsSUFBSSxFQUFFO1lBQ0osb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFdBQVcsRUFBRSw0REFBNEQ7WUFDekUsV0FBVyxFQUFFLE1BQU07WUFDbkIsZUFBZSxFQUFFLEtBQUs7U0FDdkI7S0FDRjtJQUNELElBQUksRUFBRSxtQkFBbUI7SUFDekIsY0FBYyxFQUFFLEVBQUU7SUFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ2hCLFNBQVMsY0FBYyxDQUFDLElBQXFCO1lBQzNDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxtQ0FBYyxDQUFDLE9BQU8sRUFBRTtnQkFDM0MsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRTtvQkFDakMsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU87WUFDTCxjQUFjLENBQUMsSUFBNkI7Z0JBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQzVCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssbUNBQWMsQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQW1DLENBQUM7b0JBRXhELDBCQUEwQjtvQkFDMUIsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxtQ0FBYyxDQUFDLGdCQUFnQixFQUFFO3dCQUMxRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQStCLENBQUM7d0JBRS9ELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssbUNBQWMsQ0FBQyxVQUFVLEVBQUU7NEJBQ2xGLFFBQVEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0NBQzVCLEtBQUssU0FBUztvQ0FDWixPQUFPLENBQUMsTUFBTSxDQUFDO3dDQUNiLElBQUk7d0NBQ0osU0FBUyxFQUFFLG9CQUFvQjtxQ0FDaEMsQ0FBQyxDQUFDO29DQUNILE1BQU07Z0NBQ1IsS0FBSyxNQUFNO29DQUNULElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7d0NBQ3pCLE9BQU8sQ0FBQyxNQUFNLENBQUM7NENBQ2IsSUFBSTs0Q0FDSixTQUFTLEVBQUUsb0JBQW9CO3lDQUNoQyxDQUFDLENBQUM7cUNBQ0o7b0NBQ0QsTUFBTTs2QkFDVDt5QkFDRjt3QkFDRCxzQkFBc0I7cUJBQ3ZCO3lCQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssbUNBQWMsQ0FBQyxVQUFVLEVBQUU7d0JBQzNELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFOzRCQUNqQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLG1DQUFjLENBQUMsVUFBVSxFQUFFO2dDQUN0RCxRQUFRLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO29DQUM1QixLQUFLLFNBQVM7d0NBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQzs0Q0FDYixJQUFJOzRDQUNKLFNBQVMsRUFBRSxvQkFBb0I7eUNBQ2hDLENBQUMsQ0FBQzt3Q0FDSCxNQUFNO29DQUNSLEtBQUssTUFBTTt3Q0FDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFOzRDQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDO2dEQUNiLElBQUk7Z0RBQ0osU0FBUyxFQUFFLG9CQUFvQjs2Q0FDaEMsQ0FBQyxDQUFDO3lDQUNKO3dDQUNELE1BQU07aUNBQ1Q7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7b0JBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxtQ0FBYyxDQUFDLFVBQVUsRUFBRTt3QkFDdEQsUUFBUSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTs0QkFDNUIsS0FBSyxrQkFBa0I7Z0NBQ3JCLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0NBQ2IsSUFBSTtvQ0FDSixTQUFTLEVBQUUsb0JBQW9CO2lDQUNoQyxDQUFDLENBQUM7Z0NBQ0gsTUFBTTs0QkFDUixLQUFLLDZCQUE2QjtnQ0FDaEMsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQ0FDYixJQUFJO29DQUNKLFNBQVMsRUFBRSxnQ0FBZ0M7aUNBQzVDLENBQUMsQ0FBQztnQ0FDSCxNQUFNO3lCQUNUO3FCQUNGO2lCQUNGO2dCQUNELE9BQU87WUFDVCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFU0xpbnRVdGlscywgVFNFU1RyZWUsIEFTVF9OT0RFX1RZUEVTIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGVyaW1lbnRhbC11dGlscyc7XG4vLyBpbXBvcnQgeyBSdWxlIH0gZnJvbSAnZXNsaW50Jztcbi8vIGltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IGNyZWF0ZVJ1bGUgPSBFU0xpbnRVdGlscy5SdWxlQ3JlYXRvcihcbiAgbmFtZSA9PiBgJHtuYW1lfWAsXG4pO1xuXG5cbnR5cGUgT3B0aW9ucyA9IFtdO1xudHlwZSBNZXNzYWdlSWRzID1cbiAgICB8ICdub0FsbG93RnJvbUFueXdoZXJlJ1xuICAgIHwgJ25vQWxsb3dEZWZhdWx0UG9ydEZyb21Bbnl3aGVyZSdcbiAgICB8ICdub0lwdjRGcm9tQW55d2hlcmUnXG5cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUnVsZTxPcHRpb25zLCBNZXNzYWdlSWRzPih7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgc2NoZW1hOiBbXSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9BbGxvd0Zyb21Bbnl3aGVyZTogJ1VzaW5nIGFsbG93RnJvbUFueUlwdjQoKSB3aWxsIGFkZCBhbiBpbmdyZXNzIHJ1bGUgZnJvbSBmcm9tIDAuMC4wLjAvMCcsXG4gICAgICBub0FsbG93RGVmYXVsdFBvcnRGcm9tQW55d2hlcmU6ICdVc2luZyBhbGxvd0RlZmF1bHRQb3J0RnJvbUFueUlwdjQoKSB3aWxsIGFkZCBhbiBpbmdyZXNzIHJ1bGUgZnJvbSBmcm9tIDAuMC4wLjAvMCBvbiB0aGUgZGVmYXVsdCBwb3J0JyxcbiAgICAgIG5vSXB2NEZyb21Bbnl3aGVyZTogJ1lvdSBhcmUgYWxsb3dpbmcgaW5ncmVzcyBmcm9tIDAuMC4wLjAvMCcsXG4gICAgfSxcbiAgICBkb2NzOiB7XG4gICAgICByZXF1aXJlc1R5cGVDaGVja2luZzogdHJ1ZSxcbiAgICAgIGNhdGVnb3J5OiAnQmVzdCBQcmFjdGljZXMnLFxuICAgICAgZGVzY3JpcHRpb246ICdTZWN1cml0eSBHcm91cCBydWxlcyBzaG91bGQgbm90IGFsbG93IGFjY2VzcyBmcm9tIGFueXdoZXJlJyxcbiAgICAgIHJlY29tbWVuZGVkOiAnd2FybicsXG4gICAgICBleHRlbmRzQmFzZVJ1bGU6IGZhbHNlLFxuICAgIH0sXG4gIH0sXG4gIG5hbWU6ICduby1wdWJsaWMtaW5ncmVzcycsXG4gIGRlZmF1bHRPcHRpb25zOiBbXSxcbiAgY3JlYXRlOiBjb250ZXh0ID0+IHtcbiAgICBmdW5jdGlvbiBwYXJzZUFyZ3VtZW50cyhhcmdzOiBUU0VTVHJlZS5Ob2RlW10pOiBib29sZWFuIHtcbiAgICAgIGlmIChhcmdzWzBdLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkxpdGVyYWwpIHtcbiAgICAgICAgaWYgKGFyZ3NbMF0udmFsdWUgPT09ICcwLjAuMC4wLzAnKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIENhbGxFeHByZXNzaW9uKG5vZGU6IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSBub2RlLmFyZ3VtZW50cztcbiAgICAgICAgaWYgKG5vZGUuY2FsbGVlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLk1lbWJlckV4cHJlc3Npb24pIHtcbiAgICAgICAgICBjb25zdCBjYWxsZWUgPSBub2RlLmNhbGxlZSBhcyBUU0VTVHJlZS5NZW1iZXJFeHByZXNzaW9uO1xuXG4gICAgICAgICAgLy8gZS5nLiBlYzIuUGVlci5hbnlJcHY0KClcbiAgICAgICAgICBpZiAoY2FsbGVlLm9iamVjdC50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IGNhbGxlZS5vYmplY3QucHJvcGVydHkgYXMgVFNFU1RyZWUuSWRlbnRpZmllcjtcblxuICAgICAgICAgICAgaWYgKHByb3BlcnR5Lm5hbWUgPT09ICdQZWVyJyAmJiBjYWxsZWUucHJvcGVydHkudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICBzd2l0Y2ggKGNhbGxlZS5wcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnYW55SXB2NCc6XG4gICAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vSXB2NEZyb21Bbnl3aGVyZScsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2lwdjQnOlxuICAgICAgICAgICAgICAgICAgaWYgKCFwYXJzZUFyZ3VtZW50cyhhcmdzKSkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0lwdjRGcm9tQW55d2hlcmUnLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlLmcuIFBlZXIuYW55SXB2NCgpXG4gICAgICAgICAgfSBlbHNlIGlmIChjYWxsZWUub2JqZWN0LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGlmIChjYWxsZWUub2JqZWN0Lm5hbWUgPT09ICdQZWVyJykge1xuICAgICAgICAgICAgICBpZiAoY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGNhbGxlZS5wcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlICdhbnlJcHY0JzpcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9JcHY0RnJvbUFueXdoZXJlJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSAnaXB2NCc6XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFyc2VBcmd1bWVudHMoYXJncykpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9JcHY0RnJvbUFueXdoZXJlJyxcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY2FsbGVlLnByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgICAgY2FzZSAnYWxsb3dGcm9tQW55SXB2NCc6XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vSXB2NEZyb21Bbnl3aGVyZScsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ2FsbG93RGVmYXVsdFBvcnRGcm9tQW55SXB2NCc6XG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vQWxsb3dEZWZhdWx0UG9ydEZyb21Bbnl3aGVyZScsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcbn0pO1xuXG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcHVibGljLWluZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tcHVibGljLWluZ3Jlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvREFBaUY7QUFDakYsaUNBQWlDO0FBQ2pDLG1DQUFtQztBQUVuQyxNQUFNLFVBQVUsR0FBRyxtQkFBVyxDQUFDLFdBQVcsQ0FDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUNsQixDQUFDO0FBVUYsa0JBQWUsVUFBVSxDQUFzQjtJQUM3QyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRTtZQUNSLG1CQUFtQixFQUFFLHVFQUF1RTtZQUM1Riw4QkFBOEIsRUFBRSxzR0FBc0c7WUFDdEksa0JBQWtCLEVBQUUseUNBQXlDO1NBQzlEO1FBQ0QsSUFBSSxFQUFFO1lBQ0osb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixXQUFXLEVBQUUsNERBQTREO1lBQ3pFLFdBQVcsRUFBRSxNQUFNO1lBQ25CLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCO0tBQ0Y7SUFDRCxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNoQixTQUFTLGNBQWMsQ0FBQyxJQUFxQjtZQUMzQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzNDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7b0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPO1lBQ0wsY0FBYyxDQUFDLElBQTZCO2dCQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFtQyxDQUFDO29CQUV4RCwwQkFBMEI7b0JBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDMUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUErQixDQUFDO3dCQUUvRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsVUFBVSxFQUFFOzRCQUNsRixRQUFRLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dDQUM1QixLQUFLLFNBQVM7b0NBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQzt3Q0FDYixJQUFJO3dDQUNKLFNBQVMsRUFBRSxvQkFBb0I7cUNBQ2hDLENBQUMsQ0FBQztvQ0FDSCxNQUFNO2dDQUNSLEtBQUssTUFBTTtvQ0FDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO3dDQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDOzRDQUNiLElBQUk7NENBQ0osU0FBUyxFQUFFLG9CQUFvQjt5Q0FDaEMsQ0FBQyxDQUFDO3FDQUNKO29DQUNELE1BQU07NkJBQ1Q7eUJBQ0Y7d0JBQ0Qsc0JBQXNCO3FCQUN2Qjt5QkFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsVUFBVSxFQUFFO3dCQUMzRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTs0QkFDakMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxzQkFBYyxDQUFDLFVBQVUsRUFBRTtnQ0FDdEQsUUFBUSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtvQ0FDNUIsS0FBSyxTQUFTO3dDQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUM7NENBQ2IsSUFBSTs0Q0FDSixTQUFTLEVBQUUsb0JBQW9CO3lDQUNoQyxDQUFDLENBQUM7d0NBQ0gsTUFBTTtvQ0FDUixLQUFLLE1BQU07d0NBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTs0Q0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQztnREFDYixJQUFJO2dEQUNKLFNBQVMsRUFBRSxvQkFBb0I7NkNBQ2hDLENBQUMsQ0FBQzt5Q0FDSjt3Q0FDRCxNQUFNO2lDQUNUOzZCQUNGO3lCQUNGO3FCQUNGO29CQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxVQUFVLEVBQUU7d0JBQ3RELFFBQVEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7NEJBQzVCLEtBQUssa0JBQWtCO2dDQUNyQixPQUFPLENBQUMsTUFBTSxDQUFDO29DQUNiLElBQUk7b0NBQ0osU0FBUyxFQUFFLG9CQUFvQjtpQ0FDaEMsQ0FBQyxDQUFDO2dDQUNILE1BQU07NEJBQ1IsS0FBSyw2QkFBNkI7Z0NBQ2hDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0NBQ2IsSUFBSTtvQ0FDSixTQUFTLEVBQUUsZ0NBQWdDO2lDQUM1QyxDQUFDLENBQUM7Z0NBQ0gsTUFBTTt5QkFDVDtxQkFDRjtpQkFDRjtnQkFDRCxPQUFPO1lBQ1QsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVNMaW50VXRpbHMsIFRTRVNUcmVlLCBBU1RfTk9ERV9UWVBFUyB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG4vLyBpbXBvcnQgeyBSdWxlIH0gZnJvbSAnZXNsaW50Jztcbi8vIGltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IGNyZWF0ZVJ1bGUgPSBFU0xpbnRVdGlscy5SdWxlQ3JlYXRvcihcbiAgbmFtZSA9PiBgJHtuYW1lfWAsXG4pO1xuXG5cbnR5cGUgT3B0aW9ucyA9IFtdO1xudHlwZSBNZXNzYWdlSWRzID1cbiAgICB8ICdub0FsbG93RnJvbUFueXdoZXJlJ1xuICAgIHwgJ25vQWxsb3dEZWZhdWx0UG9ydEZyb21Bbnl3aGVyZSdcbiAgICB8ICdub0lwdjRGcm9tQW55d2hlcmUnXG5cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUnVsZTxPcHRpb25zLCBNZXNzYWdlSWRzPih7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgc2NoZW1hOiBbXSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9BbGxvd0Zyb21Bbnl3aGVyZTogJ1VzaW5nIGFsbG93RnJvbUFueUlwdjQoKSB3aWxsIGFkZCBhbiBpbmdyZXNzIHJ1bGUgZnJvbSBmcm9tIDAuMC4wLjAvMCcsXG4gICAgICBub0FsbG93RGVmYXVsdFBvcnRGcm9tQW55d2hlcmU6ICdVc2luZyBhbGxvd0RlZmF1bHRQb3J0RnJvbUFueUlwdjQoKSB3aWxsIGFkZCBhbiBpbmdyZXNzIHJ1bGUgZnJvbSBmcm9tIDAuMC4wLjAvMCBvbiB0aGUgZGVmYXVsdCBwb3J0JyxcbiAgICAgIG5vSXB2NEZyb21Bbnl3aGVyZTogJ1lvdSBhcmUgYWxsb3dpbmcgaW5ncmVzcyBmcm9tIDAuMC4wLjAvMCcsXG4gICAgfSxcbiAgICBkb2NzOiB7XG4gICAgICByZXF1aXJlc1R5cGVDaGVja2luZzogdHJ1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2VjdXJpdHkgR3JvdXAgcnVsZXMgc2hvdWxkIG5vdCBhbGxvdyBhY2Nlc3MgZnJvbSBhbnl3aGVyZScsXG4gICAgICByZWNvbW1lbmRlZDogJ3dhcm4nLFxuICAgICAgZXh0ZW5kc0Jhc2VSdWxlOiBmYWxzZSxcbiAgICB9LFxuICB9LFxuICBuYW1lOiAnbm8tcHVibGljLWluZ3Jlc3MnLFxuICBkZWZhdWx0T3B0aW9uczogW10sXG4gIGNyZWF0ZTogY29udGV4dCA9PiB7XG4gICAgZnVuY3Rpb24gcGFyc2VBcmd1bWVudHMoYXJnczogVFNFU1RyZWUuTm9kZVtdKTogYm9vbGVhbiB7XG4gICAgICBpZiAoYXJnc1swXS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5MaXRlcmFsKSB7XG4gICAgICAgIGlmIChhcmdzWzBdLnZhbHVlID09PSAnMC4wLjAuMC8wJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlOiBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbikge1xuICAgICAgICBjb25zdCBhcmdzID0gbm9kZS5hcmd1bWVudHM7XG4gICAgICAgIGlmIChub2RlLmNhbGxlZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uKSB7XG4gICAgICAgICAgY29uc3QgY2FsbGVlID0gbm9kZS5jYWxsZWUgYXMgVFNFU1RyZWUuTWVtYmVyRXhwcmVzc2lvbjtcblxuICAgICAgICAgIC8vIGUuZy4gZWMyLlBlZXIuYW55SXB2NCgpXG4gICAgICAgICAgaWYgKGNhbGxlZS5vYmplY3QudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTWVtYmVyRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSBjYWxsZWUub2JqZWN0LnByb3BlcnR5IGFzIFRTRVNUcmVlLklkZW50aWZpZXI7XG5cbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lID09PSAnUGVlcicgJiYgY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgc3dpdGNoIChjYWxsZWUucHJvcGVydHkubmFtZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2FueUlwdjQnOlxuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0lwdjRGcm9tQW55d2hlcmUnLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdpcHY0JzpcbiAgICAgICAgICAgICAgICAgIGlmICghcGFyc2VBcmd1bWVudHMoYXJncykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9JcHY0RnJvbUFueXdoZXJlJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZS5nLiBQZWVyLmFueUlwdjQoKVxuICAgICAgICAgIH0gZWxzZSBpZiAoY2FsbGVlLm9iamVjdC50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZiAoY2FsbGVlLm9iamVjdC5uYW1lID09PSAnUGVlcicpIHtcbiAgICAgICAgICAgICAgaWYgKGNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjYWxsZWUucHJvcGVydHkubmFtZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSAnYW55SXB2NCc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vSXB2NEZyb21Bbnl3aGVyZScsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2lwdjQnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcnNlQXJndW1lbnRzKGFyZ3MpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vSXB2NEZyb21Bbnl3aGVyZScsXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNhbGxlZS5wcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ2FsbG93RnJvbUFueUlwdjQnOlxuICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0lwdjRGcm9tQW55d2hlcmUnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdhbGxvd0RlZmF1bHRQb3J0RnJvbUFueUlwdjQnOlxuICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0FsbG93RGVmYXVsdFBvcnRGcm9tQW55d2hlcmUnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuIl19
@@ -1,4 +1,4 @@
1
- import { TSESLint } from '@typescript-eslint/experimental-utils';
2
- declare type MessageIds = 'noRDSPublicAccess' | 'rdsPrivateSubnets' | 'rdsIsolatedSubnets';
1
+ import { TSESLint } from '@typescript-eslint/utils';
2
+ type MessageIds = 'noRDSPublicAccess' | 'rdsPrivateSubnets' | 'rdsIsolatedSubnets';
3
3
  declare const _default: TSESLint.RuleModule<MessageIds, [], TSESLint.RuleListener>;
4
4
  export default _default;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -19,9 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
23
  return result;
20
24
  };
21
25
  Object.defineProperty(exports, "__esModule", { value: true });
22
- const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
26
+ const utils_1 = require("@typescript-eslint/utils");
23
27
  const util = __importStar(require("../util"));
24
- const createRule = experimental_utils_1.ESLintUtils.RuleCreator(name => `${name}`);
28
+ const createRule = utils_1.ESLintUtils.RuleCreator(name => `${name}`);
25
29
  exports.default = createRule({
26
30
  meta: {
27
31
  type: 'suggestion',
@@ -32,11 +36,12 @@ exports.default = createRule({
32
36
  rdsPrivateSubnets: 'Configure subnetType to use PRIVATE subnets',
33
37
  },
34
38
  docs: {
35
- category: 'Best Practices',
39
+ suggestion: true,
36
40
  description: 'AWS RDS instances should not be publicly available',
37
41
  recommended: 'warn',
38
42
  },
39
43
  fixable: 'code',
44
+ hasSuggestions: true,
40
45
  },
41
46
  name: 'no-rds-public-access',
42
47
  defaultOptions: [],
@@ -57,10 +62,10 @@ exports.default = createRule({
57
62
  propertyKey: 'vpcSubnets',
58
63
  });
59
64
  (_a = cdkObject2 === null || cdkObject2 === void 0 ? void 0 : cdkObject2.propertyValue) === null || _a === void 0 ? void 0 : _a.forEach((p) => {
60
- if (p.key.type === experimental_utils_1.AST_NODE_TYPES.Identifier && p.key.name === 'subnetType') {
61
- if (p.value.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
62
- if (p.value.object.type === experimental_utils_1.AST_NODE_TYPES.Identifier && p.value.object.name === 'SubnetType') {
63
- if (p.value.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier && p.value.property.name === 'PUBLIC') {
65
+ if (p.key.type === utils_1.AST_NODE_TYPES.Identifier && p.key.name === 'subnetType') {
66
+ if (p.value.type === utils_1.AST_NODE_TYPES.MemberExpression) {
67
+ if (p.value.object.type === utils_1.AST_NODE_TYPES.Identifier && p.value.object.name === 'SubnetType') {
68
+ if (p.value.property.type === utils_1.AST_NODE_TYPES.Identifier && p.value.property.name === 'PUBLIC') {
64
69
  const range = p.value.property.range;
65
70
  context.report({
66
71
  node,
@@ -89,9 +94,9 @@ exports.default = createRule({
89
94
  });
90
95
  }
91
96
  }
92
- else if (p.value.object.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
93
- if (p.value.object.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier && p.value.object.property.name === 'SubnetType') {
94
- if (p.value.property.type === experimental_utils_1.AST_NODE_TYPES.Identifier && p.value.property.name === 'PUBLIC') {
97
+ else if (p.value.object.type === utils_1.AST_NODE_TYPES.MemberExpression) {
98
+ if (p.value.object.property.type === utils_1.AST_NODE_TYPES.Identifier && p.value.object.property.name === 'SubnetType') {
99
+ if (p.value.property.type === utils_1.AST_NODE_TYPES.Identifier && p.value.property.name === 'PUBLIC') {
95
100
  const range = p.value.property.range;
96
101
  context.report({
97
102
  node,
@@ -150,4 +155,4 @@ exports.default = createRule({
150
155
  };
151
156
  },
152
157
  });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmRzLXB1YmxpYy1hY2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tcmRzLXB1YmxpYy1hY2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOEVBQXdHO0FBRXhHLDhDQUFnQztBQUVoQyxNQUFNLFVBQVUsR0FBRyxnQ0FBVyxDQUFDLFdBQVcsQ0FDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUNsQixDQUFDO0FBVUYsa0JBQWUsVUFBVSxDQUFzQjtJQUM3QyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRTtZQUNSLGlCQUFpQixFQUFFLG9EQUFvRDtZQUN2RSxrQkFBa0IsRUFBRSw4Q0FBOEM7WUFDbEUsaUJBQWlCLEVBQUUsNkNBQTZDO1NBQ2pFO1FBQ0QsSUFBSSxFQUFFO1lBQ0osUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixXQUFXLEVBQUUsb0RBQW9EO1lBQ2pFLFdBQVcsRUFBRSxNQUFNO1NBQ3BCO1FBQ0QsT0FBTyxFQUFFLE1BQU07S0FDaEI7SUFDRCxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNoQixPQUFPO1lBQ0wsYUFBYSxDQUFDLElBQTRCOztnQkFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO29CQUN0QyxTQUFTLEVBQUUsa0JBQWtCO29CQUM3QixPQUFPLEVBQUUsS0FBSztvQkFDZCxJQUFJLEVBQUUsSUFBSTtvQkFDVixXQUFXLEVBQUUsb0JBQW9CO2lCQUNsQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO29CQUN2QyxTQUFTLEVBQUUsa0JBQWtCO29CQUM3QixPQUFPLEVB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X1RZUEVTIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGVyaW1lbnRhbC11dGlscyc7XG5pbXBvcnQgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IGNyZWF0ZVJ1bGUgPSBFU0xpbnRVdGlscy5SdWxlQ3JlYXRvcihcbiAgbmFtZSA9PiBgJHtuYW1lfWAsXG4pO1xuXG5cbnR5cGUgT3B0aW9ucyA9IFtdO1xudHlwZSBNZXNzYWdlSWRzID1cbiAgICB8ICdub1JEU1B1YmxpY0FjY2VzcydcbiAgICB8ICdyZHNQcml2YXRlU3VibmV0cydcbiAgICB8ICdyZHNJc29sYXRlZFN1Ym5ldHMnXG5cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUnVsZTxPcHRpb25zLCBNZXNzYWdlSWRzPih7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgc2NoZW1hOiBbXSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9SRFNQdWJsaWNBY2Nlc3M6ICdBV1MgUkRTIGluc3RhbmNlcyBzaG91bGQgbm90IGJlIHB1YmxpY2x5IGF2YWlsYWJsZScsXG4gICAgICByZHNJc29sYXRlZFN1Ym5ldHM6ICdDb25maWd1cmUgc3VibmV0VHlwZSB0byB1c2UgSVNPTEFURUQgc3VibmV0cycsXG4gICAgICByZHNQcml2YXRlU3VibmV0czogJ0NvbmZpZ3VyZSBzdWJuZXRUeXBlIHRvIHVzZSBQUklWQVRFIHN1Ym5ldHMnLFxuICAgIH0sXG4gICAgZG9jczoge1xuICAgICAgY2F0ZWdvcnk6ICdCZXN0IFByYWN0aWNlcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FXUyBSRFMgaW5zdGFuY2VzIHNob3VsZCBub3QgYmUgcHVibGljbHkgYXZhaWxhYmxlJyxcbiAgICAgIHJlY29tbWVuZGVkOiAnd2FybicsXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gIH0sXG4gIG5hbWU6ICduby1yZHMtcHVibGljLWFjY2VzcycsXG4gIGRlZmF1bHRPcHRpb25zOiBbXSxcbiAgY3JlYXRlOiBjb250ZXh0ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgTmV3RXhwcmVzc2lvbihub2RlOiBUU0VTVHJlZS5OZXdFeHByZXNzaW9uKSB7XG4gICAgICAgIGNvbnN0IGNka09iamVjdCA9IHV0aWwuZ2V0Q2RrRXhwcmVzc2lvbih7XG4gICAgICAgICAgY29uc3RydWN0OiAnRGF0YWJhc2VJbnN0YW5jZScsXG4gICAgICAgICAgbGlicmFyeTogJ3JkcycsXG4gICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICBwcm9wZXJ0eUtleTogJ3B1YmxpY2x5QWNjZXNzaWJsZScsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjZGtPYmplY3QyID0gdXRpbC5nZXRDZGtFeHByZXNzaW9uKHtcbiAgICAgICAgICBjb25zdHJ1Y3Q6ICdEYXRhYmFzZUluc3RhbmNlJyxcbiAgICAgICAgICBsaWJyYXJ5OiAncmRzJyxcbiAgICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICAgIHByb3BlcnR5S2V5OiAndnBjU3VibmV0cycsXG4gICAgICAgIH0pO1xuICAgICAgICBjZGtPYmplY3QyPy5wcm9wZXJ0eVZhbHVlPy5mb3JFYWNoKChwOiBUU0VTVHJlZS5Qcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgIGlmIChwLmtleS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyICYmIHAua2V5Lm5hbWUgPT09ICdzdWJuZXRUeXBlJykge1xuICAgICAgICAgICAgaWYgKHAudmFsdWUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTWVtYmVyRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICBpZiAocC52YWx1ZS5vYmplY3QudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllciAmJiBwLnZhbHVlLm9iamVjdC5uYW1lID09PSAnU3VibmV0VHlwZScpIHtcbiAgICAgICAgICAgICAgICBpZiAocC52YWx1ZS5wcm9wZXJ0eS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyICYmIHAudmFsdWUucHJvcGVydHkubmFtZSA9PT0gJ1BVQkxJQycpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gcC52YWx1ZS5wcm9wZXJ0eS5yYW5nZTtcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9SRFNQdWJsaWNBY2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICBsb2M6IHAudmFsdWUucHJvcGVydHkubG9jLFxuICAgICAgICAgICAgICAgICAgICBzdWdnZXN0OiBbXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAncmRzUHJpdmF0ZVN1Ym5ldHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZml4OiAoZml4ZXI6IFRTRVNMaW50LlJ1bGVGaXhlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogUnVsZS5GaXhbXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKHJhbmdlLCAnUFJJVkFURScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdyZHNJc29sYXRlZFN1Ym5ldHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZml4OiAoZml4ZXI6IFRTRVNMaW50LlJ1bGVGaXhlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogUnVsZS5GaXhbXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKHJhbmdlLCAnSVNPTEFURUQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocC52YWx1ZS5vYmplY3QudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTWVtYmVyRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICAgIGlmIChwLnZhbHVlLm9iamVjdC5wcm9wZXJ0eS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyICYmIHAudmFsdWUub2JqZWN0LnByb3BlcnR5Lm5hbWUgPT09ICdTdWJuZXRUeXBlJykge1xuICAgICAgICAgICAgICAgICAgaWYgKHAudmFsdWUucHJvcGVydHkudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllciAmJiBwLnZhbHVlLnByb3BlcnR5Lm5hbWUgPT09ICdQVUJMSUMnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gcC52YWx1ZS5wcm9wZXJ0eS5yYW5nZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9SRFNQdWJsaWNBY2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgIGxvYzogcC52YWx1ZS5wcm9wZXJ0eS5sb2MsXG4gICAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdDogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdyZHNQcml2YXRlU3VibmV0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpeDogKGZpeGVyOiBUU0VTTGludC5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogUnVsZS5GaXhbXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UocmFuZ2UsICdQUklWQVRFJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ3Jkc0lzb2xhdGVkU3VibmV0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpeDogKGZpeGVyOiBUU0VTTGludC5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogUnVsZS5GaXhbXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UocmFuZ2UsICdJU09MQVRFRCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjZGtPYmplY3Q/LnByb3BlcnR5VmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9SRFNQdWJsaWNBY2Nlc3MnLFxuICAgICAgICAgICAgbG9jOiBjZGtPYmplY3QucHJvcGVydHlMb2MsXG4gICAgICAgICAgICBzdWdnZXN0OiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub1JEU1B1YmxpY0FjY2VzcycsXG4gICAgICAgICAgICAgICAgZml4OiAoZml4ZXI6IFRTRVNMaW50LlJ1bGVGaXhlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZml4ZXM6IFJ1bGUuRml4W10gPSBbXG4gICAgICAgICAgICAgICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UoY2RrT2JqZWN0LnByb3BlcnR5UmFuZ2UhLCAnZmFsc2UnKSxcbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmRzLXB1YmxpYy1hY2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tcmRzLXB1YmxpYy1hY2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUEyRjtBQUMzRiw4Q0FBZ0M7QUFFaEMsTUFBTSxVQUFVLEdBQUcsbUJBQVcsQ0FBQyxXQUFXLENBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FDbEIsQ0FBQztBQVVGLGtCQUFlLFVBQVUsQ0FBc0I7SUFDN0MsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFlBQVk7UUFDbEIsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUU7WUFDUixpQkFBaUIsRUFBRSxvREFBb0Q7WUFDdkUsa0JBQWtCLEVBQUUsOENBQThDO1lBQ2xFLGlCQUFpQixFQUFFLDZDQUE2QztTQUNqRTtRQUNELElBQUksRUFBRTtZQUNKLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxvREFBb0Q7WUFDakUsV0FBVyxFQUFFLE1BQU07U0FDcEI7UUFDRCxPQUFPLEVBQUUsTUFBTTtRQUNmLGNBQWMsRUFBRSxJQUFJO0tBQ3JCO0lBQ0QsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixjQUFjLEVBQUUsRUFBRTtJQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDaEIsT0FBTztZQUNMLGFBQWEsQ0FBQyxJQUE0Qjs7Z0JBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDdEMsU0FBUyxFQUFFLGtCQUFrQjtvQkFDN0IsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsSUFBSSxFQUFFLElBQUk7b0JBQ1YsV0FBVyxFQUFFLG9CQUFvQjtpQkFDbEMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDdkMsU0FBUyxFQUFF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U0VTVHJlZSwgVFNFU0xpbnQsIEFTVF9OT0RFX1RZUEVTIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IGNyZWF0ZVJ1bGUgPSBFU0xpbnRVdGlscy5SdWxlQ3JlYXRvcihcbiAgbmFtZSA9PiBgJHtuYW1lfWAsXG4pO1xuXG5cbnR5cGUgT3B0aW9ucyA9IFtdO1xudHlwZSBNZXNzYWdlSWRzID1cbiAgICB8ICdub1JEU1B1YmxpY0FjY2VzcydcbiAgICB8ICdyZHNQcml2YXRlU3VibmV0cydcbiAgICB8ICdyZHNJc29sYXRlZFN1Ym5ldHMnXG5cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUnVsZTxPcHRpb25zLCBNZXNzYWdlSWRzPih7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgc2NoZW1hOiBbXSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9SRFNQdWJsaWNBY2Nlc3M6ICdBV1MgUkRTIGluc3RhbmNlcyBzaG91bGQgbm90IGJlIHB1YmxpY2x5IGF2YWlsYWJsZScsXG4gICAgICByZHNJc29sYXRlZFN1Ym5ldHM6ICdDb25maWd1cmUgc3VibmV0VHlwZSB0byB1c2UgSVNPTEFURUQgc3VibmV0cycsXG4gICAgICByZHNQcml2YXRlU3VibmV0czogJ0NvbmZpZ3VyZSBzdWJuZXRUeXBlIHRvIHVzZSBQUklWQVRFIHN1Ym5ldHMnLFxuICAgIH0sXG4gICAgZG9jczoge1xuICAgICAgc3VnZ2VzdGlvbjogdHJ1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQVdTIFJEUyBpbnN0YW5jZXMgc2hvdWxkIG5vdCBiZSBwdWJsaWNseSBhdmFpbGFibGUnLFxuICAgICAgcmVjb21tZW5kZWQ6ICd3YXJuJyxcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBoYXNTdWdnZXN0aW9uczogdHJ1ZSxcbiAgfSxcbiAgbmFtZTogJ25vLXJkcy1wdWJsaWMtYWNjZXNzJyxcbiAgZGVmYXVsdE9wdGlvbnM6IFtdLFxuICBjcmVhdGU6IGNvbnRleHQgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBOZXdFeHByZXNzaW9uKG5vZGU6IFRTRVNUcmVlLk5ld0V4cHJlc3Npb24pIHtcbiAgICAgICAgY29uc3QgY2RrT2JqZWN0ID0gdXRpbC5nZXRDZGtFeHByZXNzaW9uKHtcbiAgICAgICAgICBjb25zdHJ1Y3Q6ICdEYXRhYmFzZUluc3RhbmNlJyxcbiAgICAgICAgICBsaWJyYXJ5OiAncmRzJyxcbiAgICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICAgIHByb3BlcnR5S2V5OiAncHVibGljbHlBY2Nlc3NpYmxlJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNka09iamVjdDIgPSB1dGlsLmdldENka0V4cHJlc3Npb24oe1xuICAgICAgICAgIGNvbnN0cnVjdDogJ0RhdGFiYXNlSW5zdGFuY2UnLFxuICAgICAgICAgIGxpYnJhcnk6ICdyZHMnLFxuICAgICAgICAgIG5vZGU6IG5vZGUsXG4gICAgICAgICAgcHJvcGVydHlLZXk6ICd2cGNTdWJuZXRzJyxcbiAgICAgICAgfSk7XG4gICAgICAgIGNka09iamVjdDI/LnByb3BlcnR5VmFsdWU/LmZvckVhY2goKHA6IFRTRVNUcmVlLlByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgaWYgKHAua2V5LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIgJiYgcC5rZXkubmFtZSA9PT0gJ3N1Ym5ldFR5cGUnKSB7XG4gICAgICAgICAgICBpZiAocC52YWx1ZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgIGlmIChwLnZhbHVlLm9iamVjdC50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyICYmIHAudmFsdWUub2JqZWN0Lm5hbWUgPT09ICdTdWJuZXRUeXBlJykge1xuICAgICAgICAgICAgICAgIGlmIChwLnZhbHVlLnByb3BlcnR5LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIgJiYgcC52YWx1ZS5wcm9wZXJ0eS5uYW1lID09PSAnUFVCTElDJykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBwLnZhbHVlLnByb3BlcnR5LnJhbmdlO1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub1JEU1B1YmxpY0FjY2VzcycsXG4gICAgICAgICAgICAgICAgICAgIGxvYzogcC52YWx1ZS5wcm9wZXJ0eS5sb2MsXG4gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Q6IFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdyZHNQcml2YXRlU3VibmV0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXg6IChmaXhlcjogVFNFU0xpbnQuUnVsZUZpeGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVzOiBUU0VTTGludC5SdWxlRml4W10gPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShyYW5nZSwgJ1BSSVZBVEUnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAncmRzSXNvbGF0ZWRTdWJuZXRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpeDogKGZpeGVyOiBUU0VTTGludC5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZml4ZXM6IFRTRVNMaW50LlJ1bGVGaXhbXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKHJhbmdlLCAnSVNPTEFURUQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocC52YWx1ZS5vYmplY3QudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTWVtYmVyRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICAgIGlmIChwLnZhbHVlLm9iamVjdC5wcm9wZXJ0eS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyICYmIHAudmFsdWUub2JqZWN0LnByb3BlcnR5Lm5hbWUgPT09ICdTdWJuZXRUeXBlJykge1xuICAgICAgICAgICAgICAgICAgaWYgKHAudmFsdWUucHJvcGVydHkudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllciAmJiBwLnZhbHVlLnByb3BlcnR5Lm5hbWUgPT09ICdQVUJMSUMnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gcC52YWx1ZS5wcm9wZXJ0eS5yYW5nZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9SRFNQdWJsaWNBY2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgIGxvYzogcC52YWx1ZS5wcm9wZXJ0eS5sb2MsXG4gICAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdDogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdyZHNQcml2YXRlU3VibmV0cycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpeDogKGZpeGVyOiBUU0VTTGludC5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogVFNFU0xpbnQuUnVsZUZpeFtdID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShyYW5nZSwgJ1BSSVZBVEUnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAncmRzSXNvbGF0ZWRTdWJuZXRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZml4OiAoZml4ZXI6IFRTRVNMaW50LlJ1bGVGaXhlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVzOiBUU0VTTGludC5SdWxlRml4W10gPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKHJhbmdlLCAnSVNPTEFURUQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY2RrT2JqZWN0Py5wcm9wZXJ0eVZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUkRTUHVibGljQWNjZXNzJyxcbiAgICAgICAgICAgIGxvYzogY2RrT2JqZWN0LnByb3BlcnR5TG9jLFxuICAgICAgICAgICAgc3VnZ2VzdDogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9SRFNQdWJsaWNBY2Nlc3MnLFxuICAgICAgICAgICAgICAgIGZpeDogKGZpeGVyOiBUU0VTTGludC5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVzOiBUU0VTTGludC5SdWxlRml4W10gPSBbXG4gICAgICAgICAgICAgICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UoY2RrT2JqZWN0LnByb3BlcnR5UmFuZ2UhLCAnZmFsc2UnKSxcbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSxcbiAgICB9O1xuICB9LFxufSk7XG5cbiJdfQ==
@@ -1,3 +1,3 @@
1
- import { TSESLint } from '@typescript-eslint/experimental-utils';
1
+ import { TSESLint } from '@typescript-eslint/utils';
2
2
  declare const _default: TSESLint.RuleModule<"noRedshiftPublicAccess", [], TSESLint.RuleListener>;
3
3
  export default _default;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -19,9 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
23
  return result;
20
24
  };
21
25
  Object.defineProperty(exports, "__esModule", { value: true });
22
- const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
26
+ const utils_1 = require("@typescript-eslint/utils");
23
27
  const util = __importStar(require("../util"));
24
- const createRule = experimental_utils_1.ESLintUtils.RuleCreator(name => `${name}`);
28
+ const createRule = utils_1.ESLintUtils.RuleCreator(name => `${name}`);
25
29
  exports.default = createRule({
26
30
  meta: {
27
31
  type: 'suggestion',
@@ -30,11 +34,12 @@ exports.default = createRule({
30
34
  noRedshiftPublicAccess: 'AWS Redshift instances should not be publicly available',
31
35
  },
32
36
  docs: {
33
- category: 'Best Practices',
37
+ suggestion: true,
34
38
  description: 'AWS Redshift instances should not be publicly available',
35
39
  recommended: 'warn',
36
40
  },
37
41
  fixable: 'code',
42
+ hasSuggestions: true,
38
43
  },
39
44
  name: 'no-redshift-public-access',
40
45
  defaultOptions: [],
@@ -73,4 +78,4 @@ exports.default = createRule({
73
78
  };
74
79
  },
75
80
  });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVkc2hpZnQtcHVibGljLWFjY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZWRzaGlmdC1wdWJsaWMtYWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhFQUF3RjtBQUV4Riw4Q0FBZ0M7QUFFaEMsTUFBTSxVQUFVLEdBQUcsZ0NBQVcsQ0FBQyxXQUFXLENBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FDbEIsQ0FBQztBQVFGLGtCQUFlLFVBQVUsQ0FBc0I7SUFDN0MsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFlBQVk7UUFDbEIsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUU7WUFDUixzQkFBc0IsRUFBRSx5REFBeUQ7U0FDbEY7UUFDRCxJQUFJLEVBQUU7WUFDSixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFdBQVcsRUFBRSx5REFBeUQ7WUFDdEUsV0FBVyxFQUFFLE1BQU07U0FDcEI7UUFDRCxPQUFPLEVBQUUsTUFBTTtLQUNoQjtJQUNELElBQUksRUFBRSwyQkFBMkI7SUFDakMsY0FBYyxFQUFFLEVBQUU7SUFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ2hCLE9BQU87WUFDTCxhQUFhLENBQUMsSUFBNEI7Z0JBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDdEMsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLE9BQU8sRUFBRSxVQUFVO29CQUNuQixJQUFJLEVBQUUsSUFBSTtvQkFDVixXQUFXLEVBQUUsb0JBQW9CO2lCQUNsQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxhQUFhLE1BQUssSUFBSSxFQUFFO29CQUNyQyxPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNiLElBQUk7d0JBQ0osU0FBUyxFQUFFLHdCQUF3Qjt3QkFDbkMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxXQUFXO3dCQUMxQixPQUFPLEVBQUU7NEJBQ1A7Z0NBQ0UsU0FBUyxFQUFFLHdCQUF3QjtnQ0FDbkMsR0FBRyxFQUFFLENBQUMsS0FBeUIsRUFBRSxFQUFFO29DQUNqQyxNQUFNLEtBQUssR0FBZTt3Q0FDeEIsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxhQUFjLEVBQUUsT0FBTyxDQUFDO3FDQUMxRCxDQUFDO29DQUNGLE9BQU8sS0FBSyxDQUFDO2dDQUNmLENBQUM7NkJBRUY7eUJBQ0Y7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLE9BQU87aUJBQ1I7Z0JBQ0QsT0FBTztZQUNULENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVTTGludFV0aWxzLCBUU0VTVHJlZSwgVFNFU0xpbnQgfSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvZXhwZXJpbWVudGFsLXV0aWxzJztcbmltcG9ydCB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICcuLi91dGlsJztcblxuY29uc3QgY3JlYXRlUnVsZSA9IEVTTGludFV0aWxzLlJ1bGVDcmVhdG9yKFxuICBuYW1lID0+IGAke25hbWV9YCxcbik7XG5cblxudHlwZSBPcHRpb25zID0gW107XG50eXBlIE1lc3NhZ2VJZHMgPVxuICAgIHwgJ25vUmVkc2hpZnRQdWJsaWNBY2Nlc3MnXG5cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUnVsZTxPcHRpb25zLCBNZXNzYWdlSWRzPih7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgc2NoZW1hOiBbXSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9SZWRzaGlmdFB1YmxpY0FjY2VzczogJ0FXUyBSZWRzaGlmdCBpbnN0YW5jZXMgc2hvdWxkIG5vdCBiZSBwdWJsaWNseSBhdmFpbGFibGUnLFxuICAgIH0sXG4gICAgZG9jczoge1xuICAgICAgY2F0ZWdvcnk6ICdCZXN0IFByYWN0aWNlcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FXUyBSZWRzaGlmdCBpbnN0YW5jZXMgc2hvdWxkIG5vdCBiZSBwdWJsaWNseSBhdmFpbGFibGUnLFxuICAgICAgcmVjb21tZW5kZWQ6ICd3YXJuJyxcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgfSxcbiAgbmFtZTogJ25vLXJlZHNoaWZ0LXB1YmxpYy1hY2Nlc3MnLFxuICBkZWZhdWx0T3B0aW9uczogW10sXG4gIGNyZWF0ZTogY29udGV4dCA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIE5ld0V4cHJlc3Npb24obm9kZTogVFNFU1RyZWUuTmV3RXhwcmVzc2lvbikge1xuICAgICAgICBjb25zdCBjZGtPYmplY3QgPSB1dGlsLmdldENka0V4cHJlc3Npb24oe1xuICAgICAgICAgIGNvbnN0cnVjdDogJ0NsdXN0ZXInLFxuICAgICAgICAgIGxpYnJhcnk6ICdyZWRzaGlmdCcsXG4gICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICBwcm9wZXJ0eUtleTogJ3B1YmxpY2x5QWNjZXNzaWJsZScsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY2RrT2JqZWN0Py5wcm9wZXJ0eVZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUmVkc2hpZnRQdWJsaWNBY2Nlc3MnLFxuICAgICAgICAgICAgbG9jOiBjZGtPYmplY3QucHJvcGVydHlMb2MsXG4gICAgICAgICAgICBzdWdnZXN0OiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub1JlZHNoaWZ0UHVibGljQWNjZXNzJyxcbiAgICAgICAgICAgICAgICBmaXg6IChmaXhlcjogVFNFU0xpbnQuUnVsZUZpeGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogUnVsZS5GaXhbXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShjZGtPYmplY3QucHJvcGVydHlSYW5nZSEsICdmYWxzZScpLFxuICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVkc2hpZnQtcHVibGljLWFjY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZWRzaGlmdC1wdWJsaWMtYWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBMkU7QUFDM0UsOENBQWdDO0FBRWhDLE1BQU0sVUFBVSxHQUFHLG1CQUFXLENBQUMsV0FBVyxDQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQ2xCLENBQUM7QUFRRixrQkFBZSxVQUFVLENBQXNCO0lBQzdDLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxZQUFZO1FBQ2xCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsUUFBUSxFQUFFO1lBQ1Isc0JBQXNCLEVBQUUseURBQXlEO1NBQ2xGO1FBQ0QsSUFBSSxFQUFFO1lBQ0osVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLHlEQUF5RDtZQUN0RSxXQUFXLEVBQUUsTUFBTTtTQUNwQjtRQUNELE9BQU8sRUFBRSxNQUFNO1FBQ2YsY0FBYyxFQUFFLElBQUk7S0FDckI7SUFDRCxJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNoQixPQUFPO1lBQ0wsYUFBYSxDQUFDLElBQTRCO2dCQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7b0JBQ3RDLFNBQVMsRUFBRSxTQUFTO29CQUNwQixPQUFPLEVBQUUsVUFBVTtvQkFDbkIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsV0FBVyxFQUFFLG9CQUFvQjtpQkFDbEMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsYUFBYSxNQUFLLElBQUksRUFBRTtvQkFDckMsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDYixJQUFJO3dCQUNKLFNBQVMsRUFBRSx3QkFBd0I7d0JBQ25DLEdBQUcsRUFBRSxTQUFTLENBQUMsV0FBVzt3QkFDMUIsT0FBTyxFQUFFOzRCQUNQO2dDQUNFLFNBQVMsRUFBRSx3QkFBd0I7Z0NBQ25DLEdBQUcsRUFBRSxDQUFDLEtBQXlCLEVBQUUsRUFBRTtvQ0FDakMsTUFBTSxLQUFLLEdBQXVCO3dDQUNoQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGFBQWMsRUFBRSxPQUFPLENBQUM7cUNBQzFELENBQUM7b0NBQ0YsT0FBTyxLQUFLLENBQUM7Z0NBQ2YsQ0FBQzs2QkFFRjt5QkFDRjtxQkFDRixDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsT0FBTztpQkFDUjtnQkFDRCxPQUFPO1lBQ1QsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVNMaW50VXRpbHMsIFRTRVNUcmVlLCBUU0VTTGludCB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBjcmVhdGVSdWxlID0gRVNMaW50VXRpbHMuUnVsZUNyZWF0b3IoXG4gIG5hbWUgPT4gYCR7bmFtZX1gLFxuKTtcblxuXG50eXBlIE9wdGlvbnMgPSBbXTtcbnR5cGUgTWVzc2FnZUlkcyA9XG4gICAgfCAnbm9SZWRzaGlmdFB1YmxpY0FjY2VzcydcblxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSdWxlPE9wdGlvbnMsIE1lc3NhZ2VJZHM+KHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBzY2hlbWE6IFtdLFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBub1JlZHNoaWZ0UHVibGljQWNjZXNzOiAnQVdTIFJlZHNoaWZ0IGluc3RhbmNlcyBzaG91bGQgbm90IGJlIHB1YmxpY2x5IGF2YWlsYWJsZScsXG4gICAgfSxcbiAgICBkb2NzOiB7XG4gICAgICBzdWdnZXN0aW9uOiB0cnVlLFxuICAgICAgZGVzY3JpcHRpb246ICdBV1MgUmVkc2hpZnQgaW5zdGFuY2VzIHNob3VsZCBub3QgYmUgcHVibGljbHkgYXZhaWxhYmxlJyxcbiAgICAgIHJlY29tbWVuZGVkOiAnd2FybicsXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gICAgaGFzU3VnZ2VzdGlvbnM6IHRydWUsXG4gIH0sXG4gIG5hbWU6ICduby1yZWRzaGlmdC1wdWJsaWMtYWNjZXNzJyxcbiAgZGVmYXVsdE9wdGlvbnM6IFtdLFxuICBjcmVhdGU6IGNvbnRleHQgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBOZXdFeHByZXNzaW9uKG5vZGU6IFRTRVNUcmVlLk5ld0V4cHJlc3Npb24pIHtcbiAgICAgICAgY29uc3QgY2RrT2JqZWN0ID0gdXRpbC5nZXRDZGtFeHByZXNzaW9uKHtcbiAgICAgICAgICBjb25zdHJ1Y3Q6ICdDbHVzdGVyJyxcbiAgICAgICAgICBsaWJyYXJ5OiAncmVkc2hpZnQnLFxuICAgICAgICAgIG5vZGU6IG5vZGUsXG4gICAgICAgICAgcHJvcGVydHlLZXk6ICdwdWJsaWNseUFjY2Vzc2libGUnLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNka09iamVjdD8ucHJvcGVydHlWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlSWQ6ICdub1JlZHNoaWZ0UHVibGljQWNjZXNzJyxcbiAgICAgICAgICAgIGxvYzogY2RrT2JqZWN0LnByb3BlcnR5TG9jLFxuICAgICAgICAgICAgc3VnZ2VzdDogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9SZWRzaGlmdFB1YmxpY0FjY2VzcycsXG4gICAgICAgICAgICAgICAgZml4OiAoZml4ZXI6IFRTRVNMaW50LlJ1bGVGaXhlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZml4ZXM6IFRTRVNMaW50LlJ1bGVGaXhbXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShjZGtPYmplY3QucHJvcGVydHlSYW5nZSEsICdmYWxzZScpLFxuICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuIl19
@@ -1,4 +1,4 @@
1
- import { TSESLint } from '@typescript-eslint/experimental-utils';
2
- declare type MessageIds = 'noS3PublicRead' | 'bucketAllowsPublicRead' | 'bucketACLAllowsPublicRead' | 'bucketPolicyAllowsPublicRead';
1
+ import { TSESLint } from '@typescript-eslint/utils';
2
+ type MessageIds = 'noS3PublicRead' | 'bucketAllowsPublicRead' | 'bucketACLAllowsPublicRead' | 'bucketPolicyAllowsPublicRead';
3
3
  declare const _default: TSESLint.RuleModule<MessageIds, [], TSESLint.RuleListener>;
4
4
  export default _default;
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -19,9 +23,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
23
  return result;
20
24
  };
21
25
  Object.defineProperty(exports, "__esModule", { value: true });
22
- const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
26
+ const utils_1 = require("@typescript-eslint/utils");
23
27
  const util = __importStar(require("../util"));
24
- const createRule = experimental_utils_1.ESLintUtils.RuleCreator(name => `${name}`);
28
+ const createRule = utils_1.ESLintUtils.RuleCreator(name => `${name}`);
25
29
  exports.default = createRule({
26
30
  meta: {
27
31
  type: 'suggestion',
@@ -34,12 +38,13 @@ exports.default = createRule({
34
38
  },
35
39
  docs: {
36
40
  requiresTypeChecking: true,
37
- category: 'Best Practices',
41
+ suggestion: true,
38
42
  description: 'Buckets should not allow public read access',
39
43
  recommended: 'warn',
40
44
  extendsBaseRule: false,
41
45
  },
42
46
  fixable: 'code',
47
+ hasSuggestions: true,
43
48
  },
44
49
  name: 'no-s3-public-read',
45
50
  defaultOptions: [],
@@ -54,7 +59,7 @@ exports.default = createRule({
54
59
  });
55
60
  (_a = cdkPrincipalObject === null || cdkPrincipalObject === void 0 ? void 0 : cdkPrincipalObject.propertyValue) === null || _a === void 0 ? void 0 : _a.forEach((pr) => {
56
61
  const prop = pr;
57
- if (prop.type === experimental_utils_1.AST_NODE_TYPES.Literal) {
62
+ if (prop.type === utils_1.AST_NODE_TYPES.Literal) {
58
63
  if (prop.value === '*') {
59
64
  context.report({
60
65
  messageId: 'noS3PublicRead',
@@ -76,18 +81,18 @@ exports.default = createRule({
76
81
  sourceCode: context.getSourceCode().ast,
77
82
  });
78
83
  if ('document' in methods) {
79
- if (((_a = methods.document.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
84
+ if (((_a = methods.document.parent) === null || _a === void 0 ? void 0 : _a.type) === utils_1.AST_NODE_TYPES.MemberExpression) {
80
85
  const parentMemberExp = methods.document.parent;
81
- if (((_c = (_b = methods.document.parent) === null || _b === void 0 ? void 0 : _b.parent) === null || _c === void 0 ? void 0 : _c.type) === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
82
- methods.document.parent.parent.arguments.forEach(arg => {
83
- if (arg.type === experimental_utils_1.AST_NODE_TYPES.ArrayExpression) {
84
- arg.elements.forEach(ele => {
85
- if (ele.type === experimental_utils_1.AST_NODE_TYPES.NewExpression) {
86
+ if (((_c = (_b = methods.document.parent) === null || _b === void 0 ? void 0 : _b.parent) === null || _c === void 0 ? void 0 : _c.type) === utils_1.AST_NODE_TYPES.CallExpression) {
87
+ methods.document.parent.parent.arguments.forEach((arg) => {
88
+ if (arg.type === utils_1.AST_NODE_TYPES.ArrayExpression) {
89
+ arg.elements.forEach((ele) => {
90
+ if (ele.type === utils_1.AST_NODE_TYPES.NewExpression) {
86
91
  parsePrincipalsInPolicy(ele);
87
92
  }
88
93
  });
89
94
  }
90
- if (arg.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
95
+ if (arg.type === utils_1.AST_NODE_TYPES.Identifier) {
91
96
  const found = util.findVariable({
92
97
  construct: 'PolicyStatement',
93
98
  library: 'iam',
@@ -99,9 +104,9 @@ exports.default = createRule({
99
104
  parsePrincipalsInPolicy(f);
100
105
  });
101
106
  }
102
- if (arg.type === experimental_utils_1.AST_NODE_TYPES.ArrayExpression) {
103
- arg.elements.forEach(ele => {
104
- if (ele.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
107
+ if (arg.type === utils_1.AST_NODE_TYPES.ArrayExpression) {
108
+ arg.elements.forEach((ele) => {
109
+ if (ele.type === utils_1.AST_NODE_TYPES.Identifier) {
105
110
  const found = util.findVariable({
106
111
  construct: 'PolicyStatement',
107
112
  library: 'iam',
@@ -150,13 +155,13 @@ exports.default = createRule({
150
155
  }
151
156
  else if ('addToResourcePolicy' in methods) {
152
157
  const policy = methods.addToResourcePolicy;
153
- if (policy.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
154
- if (((_a = policy.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
155
- policy.parent.arguments.forEach(arg => {
156
- if (arg.type === experimental_utils_1.AST_NODE_TYPES.NewExpression) {
158
+ if (policy.type === utils_1.AST_NODE_TYPES.MemberExpression) {
159
+ if (((_a = policy.parent) === null || _a === void 0 ? void 0 : _a.type) === utils_1.AST_NODE_TYPES.CallExpression) {
160
+ policy.parent.arguments.forEach((arg) => {
161
+ if (arg.type === utils_1.AST_NODE_TYPES.NewExpression) {
157
162
  parsePrincipalsInPolicy(arg);
158
163
  }
159
- if (arg.type === experimental_utils_1.AST_NODE_TYPES.Identifier) {
164
+ if (arg.type === utils_1.AST_NODE_TYPES.Identifier) {
160
165
  const found = util.findVariable({
161
166
  construct: 'PolicyStatement',
162
167
  library: 'iam',
@@ -260,11 +265,11 @@ exports.default = createRule({
260
265
  ],
261
266
  });
262
267
  }
263
- else if (((_a = cdkObject2 === null || cdkObject2 === void 0 ? void 0 : cdkObject2.propertyValue) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.NewExpression) {
268
+ else if (((_a = cdkObject2 === null || cdkObject2 === void 0 ? void 0 : cdkObject2.propertyValue) === null || _a === void 0 ? void 0 : _a.type) === utils_1.AST_NODE_TYPES.NewExpression) {
264
269
  const properties = {};
265
270
  cdkObject2.propertyValue.arguments.forEach((arg) => {
266
271
  arg.properties.forEach(props => {
267
- if (props.type === experimental_utils_1.AST_NODE_TYPES.Property) {
272
+ if (props.type === utils_1.AST_NODE_TYPES.Property) {
268
273
  const key = props.key;
269
274
  const value = props.value;
270
275
  properties[key.name] = value.raw;
@@ -294,4 +299,4 @@ exports.default = createRule({
294
299
  };
295
300
  },
296
301
  });
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tczMtcHVibGljLXJlYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tczMtcHVibGljLXJlYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOEVBQXdHO0FBRXhHLDhDQUFnQztBQUVoQyxNQUFNLFVBQVUsR0FBRyxnQ0FBVyxDQUFDLFdBQVcsQ0FDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUNsQixDQUFDO0FBV0Ysa0JBQWUsVUFBVSxDQUFzQjtJQUM3QyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRTtZQUNSLGNBQWMsRUFBRSx5Q0FBeUM7WUFDekQseUJBQXlCLEVBQUUsMERBQTBEO1lBQ3JGLHNCQUFzQixFQUFFLG9EQUFvRDtZQUM1RSw0QkFBNEIsRUFBRSxpRUFBaUU7U0FDaEc7UUFDRCxJQUFJLEVBQUU7WUFDSixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsV0FBVyxFQUFFLDZDQUE2QztZQUMxRCxXQUFXLEVBQUUsTUFBTTtZQUNuQixlQUFlLEVBQUUsS0FBSztTQUN2QjtRQUNELE9BQU8sRUFBRSxNQUFNO0tBQ2hCO0lBQ0QsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixjQUFjLEVBQUUsRUFBRTtJQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDaEIsU0FBUyx1QkFBdUIsQ0FBQyxJQUE0Qjs7WUFDM0QsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQy9DLFNBQVMsRUFBRSxpQkFBaUI7Z0JBQzVCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLElBQUk7Z0JBQ0osV0FBVyxFQUFFLFlBQVk7YUFDMUIsQ0FBQyxDQUFDO1lBQ0gsTUFBQSxrQkFBa0IsYUFBbEIsa0JBQWtCLHVCQUFs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QUNKLFNBQVMsRUFBRSxnQkFBZ0I7NEJBQzNCLEdBQUcsRUFBRSxVQUFVLENBQUMsV0FBVzt5QkFDNUIsQ0FBQyxDQUFDO3FCQUNKO3lCQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ3RELE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ2IsSUFBSTs0QkFDSixTQUFTLEVBQUUsZ0JBQWdCOzRCQUMzQixHQUFHLEVBQUUsVUFBVSxDQUFDLFdBQVc7eUJBQzVCLENBQUMsQ0FBQztxQkFDSjtpQkFDRjtxQkFBTTtvQkFDTCxPQUFPO2lCQUNSO2dCQUNELE9BQU87WUFDVCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFU0xpbnRVdGlscywgVFNFU1RyZWUsIFRTRVNMaW50LCBBU1RfTk9ERV9UWVBFUyB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC9leHBlcmltZW50YWwtdXRpbHMnO1xuaW1wb3J0IHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBjcmVhdGVSdWxlID0gRVNMaW50VXRpbHMuUnVsZUNyZWF0b3IoXG4gIG5hbWUgPT4gYCR7bmFtZX1gLFxuKTtcblxuXG50eXBlIE9wdGlvbnMgPSBbXTtcbnR5cGUgTWVzc2FnZUlkcyA9XG4gICAgfCAnbm9TM1B1YmxpY1JlYWQnXG4gICAgfCAnYnVja2V0QWxsb3dzUHVibGljUmVhZCdcbiAgICB8ICdidWNrZXRBQ0xBbGxvd3NQdWJsaWNSZWFkJ1xuICAgIHwgJ2J1Y2tldFBvbGljeUFsbG93c1B1YmxpY1JlYWQnXG5cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUnVsZTxPcHRpb25zLCBNZXNzYWdlSWRzPih7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgc2NoZW1hOiBbXSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9TM1B1YmxpY1JlYWQ6ICdTMyBCdWNrZXRzIHNob3VsZCBub3QgYWxsb3cgcHVibGljIHJlYWQnLFxuICAgICAgYnVja2V0QUNMQWxsb3dzUHVibGljUmVhZDogJ1RoZSBjb25maWd1cmVkIGJ1Y2tldCBBQ0wgaXMgYWxsb3dpbmcgcHVibGljIHJlYWQgYWNjZXNzJyxcbiAgICAgIGJ1Y2tldEFsbG93c1B1YmxpY1JlYWQ6ICdUaGUgYnVja2V0IGNvbmZpZ3VyYXRpb24gYWxsb3dzIHB1YmxpYyByZWFkIGFjY2VzcycsXG4gICAgICBidWNrZXRQb2xpY3lBbGxvd3NQdWJsaWNSZWFkOiAnVGhlIGNvbmZpZ3VyZWQgYnVja2V0IHJlc291cmNlIHBvbGljeSBhbGxvd3MgcHVibGljIHJlYWQgYWNjZXNzJyxcbiAgICB9LFxuICAgIGRvY3M6IHtcbiAgICAgIHJlcXVpcmVzVHlwZUNoZWNraW5nOiB0cnVlLFxuICAgICAgY2F0ZWdvcnk6ICdCZXN0IFByYWN0aWNlcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0J1Y2tldHMgc2hvdWxkIG5vdCBhbGxvdyBwdWJsaWMgcmVhZCBhY2Nlc3MnLFxuICAgICAgcmVjb21tZW5kZWQ6ICd3YXJuJyxcbiAgICAgIGV4dGVuZHNCYXNlUnVsZTogZmFsc2UsXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gIH0sXG4gIG5hbWU6ICduby1zMy1wdWJsaWMtcmVhZCcsXG4gIGRlZmF1bHRPcHRpb25zOiBbXSxcbiAgY3JlYXRlOiBjb250ZXh0ID0+IHtcbiAgICBmdW5jdGlvbiBwYXJzZVByaW5jaXBhbHNJblBvbGljeShub2RlOiBUU0VTVHJlZS5OZXdFeHByZXNzaW9uKSB7XG4gICAgICBjb25zdCBjZGtQcmluY2lwYWxPYmplY3QgPSB1dGlsLmdldENka0V4cHJlc3Npb24oe1xuICAgICAgICBjb25zdHJ1Y3Q6ICdQb2xpY3lTdGF0ZW1lbnQnLFxuICAgICAgICBsaWJyYXJ5OiAnaWFtJyxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgcHJvcGVydHlLZXk6ICdwcmluY2lwYWxzJyxcbiAgICAgIH0pO1xuICAgICAgY2RrUHJpbmNpcGFsT2JqZWN0Py5wcm9wZXJ0eVZhbHVlPy5mb3JFYWNoKChwcjogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3AgPSBwciBhcyBUU0VTVHJlZS5Ob2RlO1xuICAgICAgICBpZiAocHJvcC50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5MaXRlcmFsKSB7XG4gICAgICAgICAgaWYgKHByb3AudmFsdWUgPT09ICcqJykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub1MzUHVibGljUmVhZCcsXG4gICAgICAgICAgICAgIG5vZGU6IG5vZGUsXG4gICAgICAgICAgICAgIGxvYzogcHJvcC5sb2MsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZpbmRCdWNrZXRQb2xpY3lNZXRob2RzKG5vZGU6IFRTRVNUcmVlLk5ld0V4cHJlc3Npb24pIHtcbiAgICAgIGNvbnN0IG1ldGhvZHMgPSB1dGlsLmZpbmRDb25zdHJ1Y3RNZXRob2RzKHtcbiAgICAgICAgY29uc3RydWN0OiAnQnVja2V0UG9saWN5JyxcbiAgICAgICAgbGlicmFyeTogJ3MzJyxcbiAgICAgICAgbWV0aG9kczogW10sXG4gICAgICAgIG5vZGUsXG4gICAgICAgIHNjb3BlOiBjb250ZXh0LmdldFNjb3BlKCksXG4gICAgICAgIHNvdXJjZUNvZGU6IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLmFzdCxcbiAgICAgIH0pO1xuICAgICAgaWYgKCdkb2N1bWVudCcgaW4gbWV0aG9kcykge1xuICAgICAgICBpZiAobWV0aG9kcy5kb2N1bWVudC5wYXJlbnQ/LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLk1lbWJlckV4cHJlc3Npb24pIHtcbiAgICAgICAgICBjb25zdCBwYXJlbnRNZW1iZXJFeHAgPSBtZXRob2RzLmRvY3VtZW50LnBhcmVudDtcbiAgICAgICAgICBpZiAobWV0aG9kcy5kb2N1bWVudC5wYXJlbnQ/LnBhcmVudD8udHlwZSA9PT0gQVNUX05PREVfVFlQRVMuQ2FsbEV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIG1ldGhvZHMuZG9jdW1lbnQucGFyZW50LnBhcmVudC5hcmd1bWVudHMuZm9yRWFjaChhcmcgPT4ge1xuICAgICAgICAgICAgICBpZiAoYXJnLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkFycmF5RXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICAgIGFyZy5lbGVtZW50cy5mb3JFYWNoKGVsZSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoZWxlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLk5ld0V4cHJlc3Npb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VQcmluY2lwYWxzSW5Qb2xpY3koZWxlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoYXJnLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZCA9IHV0aWwuZmluZFZhcmlhYmxlKHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdDogJ1BvbGljeVN0YXRlbWVudCcsXG4gICAgICAgICAgICAgICAgICBsaWJyYXJ5OiAnaWFtJyxcbiAgICAgICAgICAgICAgICAgIHZhcmlhYmxlSWRlbnRpZmllcjogYXJnLm5hbWUsXG4gICAgICAgICAgICAgICAgICBzY29wZTogY29udGV4dC5nZXRTY29wZSgpLFxuICAgICAgICAgICAgICAgICAgbWVtYmVyRXhwcmVzc2lvbjogcGFyZW50TWVtYmVyRXhwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZvdW5kLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICAgICAgICBwYXJzZVByaW5jaXBhbHNJblBvbGljeShmKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoYXJnLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkFycmF5RXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICAgIGFyZy5lbGVtZW50cy5mb3JFYWNoKGVsZSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoZWxlLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSB1dGlsLmZpbmRWYXJpYWJsZSh7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0OiAnUG9saWN5U3RhdGVtZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5OiAnaWFtJyxcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZUlkZW50aWZpZXI6IGVsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHNjb3BlOiBjb250ZXh0LmdldFNjb3BlKCksXG4gICAgICAgICAgICAgICAgICAgICAgbWVtYmVyRXhwcmVzc2lvbjogcGFyZW50TWVtYmVyRXhwLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQuZm9yRWFjaChmID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBwYXJzZVByaW5jaXBhbHNJblBvbGljeShmKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZpbmRCdWNrZXRNZXRob2RzKG5vZGU6IFRTRVNUcmVlLk5ld0V4cHJlc3Npb24pIHtcbiAgICAgIGNvbnN0IG1ldGhvZHMgPSB1dGlsLmZpbmRDb25zdHJ1Y3RNZXRob2RzKHtcbiAgICAgICAgY29uc3RydWN0OiAnQnVja2V0JyxcbiAgICAgICAgbGlicmFyeTogJ3MzJyxcbiAgICAgICAgbWV0aG9kczogW10sXG4gICAgICAgIG5vZGUsXG4gICAgICAgIHNjb3BlOiBjb250ZXh0LmdldFNjb3BlKCksXG4gICAgICAgIHNvdXJjZUNvZGU6IGNvbnRleHQuZ2V0U291cmNlQ29kZSgpLmFzdCxcbiAgICAgIH0pO1xuICAgICAgaWYgKCdncmFudFB1YmxpY0FjY2VzcycgaW4gbWV0aG9kcykge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgbWVzc2FnZUlkOiAnbm9TM1B1YmxpY1JlYWQnLFxuICAgICAgICAgIG5vZGU6IG5vZGUsXG4gICAgICAgICAgbG9jOiBtZXRob2RzLmdyYW50UHVibGljQWNjZXNzLmxvYyxcbiAgICAgICAgICBzdWdnZXN0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ2J1Y2tldEFsbG93c1B1YmxpY1JlYWQnLFxuICAgICAgICAgICAgICBmaXg6IChmaXhlcjogVFNFU0xpbnQuUnVsZUZpeGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZml4ZXM6IFJ1bGUuRml4W10gPSBbXG4gICAgICAgICAgICAgICAgICBmaXhlci5yZW1vdmUobWV0aG9kcy5ncmFudFB1YmxpY0FjY2Vzcy5wYXJlbnQhLnBhcmVudCEpLFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpeGVzO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoJ2FkZFRvUmVzb3VyY2VQb2xpY3knIGluIG1ldGhvZHMpIHtcbiAgICAgICAgY29uc3QgcG9saWN5ID0gbWV0aG9kcy5hZGRUb1Jlc291cmNlUG9saWN5O1xuICAgICAgICBpZiAocG9saWN5LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLk1lbWJlckV4cHJlc3Npb24pIHtcbiAgICAgICAgICBpZiAocG9saWN5LnBhcmVudD8udHlwZSA9PT0gQVNUX05PREVfVFlQRVMuQ2FsbEV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHBvbGljeS5wYXJlbnQuYXJndW1lbnRzLmZvckVhY2goYXJnID0+IHtcbiAgICAgICAgICAgICAgaWYgKGFyZy50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5OZXdFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgcGFyc2VQcmluY2lwYWxzSW5Qb2xpY3koYXJnKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoYXJnLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZCA9IHV0aWwuZmluZFZhcmlhYmxlKHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdDogJ1BvbGljeVN0YXRlbWVudCcsXG4gICAgICAgICAgICAgICAgICBsaWJyYXJ5OiAnaWFtJyxcbiAgICAgICAgICAgICAgICAgIHZhcmlhYmxlSWRlbnRpZmllcjogYXJnLm5hbWUsXG4gICAgICAgICAgICAgICAgICBzY29wZTogY29udGV4dC5nZXRTY29wZSgpLFxuICAgICAgICAgICAgICAgICAgbWVtYmVyRXhwcmVzc2lvbjogcG9saWN5LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZvdW5kLmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICAgICAgICBwYXJzZVByaW5jaXBhbHNJblBvbGljeShmKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIE5ld0V4cHJlc3Npb24obm9kZTogVFNFU1RyZWUuTmV3RXhwcmVzc2lvbikge1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAxLiBQcmV2ZW50IHB1YmxpYyB3cml0ZSB0aHJvdWdoIGFjY2VzcyBjb250cm9sOlxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgbmV3IHMzLkJ1Y2tldCh0aGlzLCAnQnVja2V0Jywge1xuICAgICAgICAgKiAgICAgICBhY2Nlc3NDb250cm9sOiBzMy5CdWNrZXRBY2Nlc3NDb250cm9sLlBVQkxJQ19SRUFEX1dSSVRFLFxuICAgICAgICAgKiAgICAgfSk7XG4gICAgICAgICAqXG4gICAgICAgICovXG4gICAgICAgIGNvbnN0IGNka09iamVjdCA9IHV0aWwuZ2V0Q2RrRXhwcmVzc2lvbih7XG4gICAgICAgICAgY29uc3RydWN0OiAnQnVja2V0JyxcbiAgICAgICAgICBsaWJyYXJ5OiAnczMnLFxuICAgICAgICAgIG5vZGU6IG5vZGUsXG4gICAgICAgICAgcHJvcGVydHlLZXk6ICdhY2Nlc3NDb250cm9sJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3dpdGNoIChjZGtPYmplY3Q/LnByb3BlcnR5VmFsdWUpIHtcbiAgICAgICAgICBjYXNlICdQVUJMSUNfUkVBRF9XUklURSc6XG4gICAgICAgICAgY2FzZSAnUFVCTElDX1JFQUQnOlxuICAgICAgICAgIGNhc2UgJ0FVVEhFTlRJQ0FURURfUkVBRCc6XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUzNQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgICAgbG9jOiBjZGtPYmplY3QucHJvcGVydHlMb2MsXG4gICAgICAgICAgICAgIHN1Z2dlc3Q6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdidWNrZXRBQ0xBbGxvd3NQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgICAgICAgIGZpeDogKGZpeGVyOiBUU0VTTGludC5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZml4ZXM6IFJ1bGUuRml4W10gPSBbXG4gICAgICAgICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShjZGtPYmplY3QucHJvcGVydHlSYW5nZSEsICdQUklWQVRFJyksXG4gICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogMi4gUHJldmVudCBwdWJsaWMgd3JpdGUgdGhyb3VnaCBidWNrZXQgcG9saWN5XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBjb25zdCBidWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnKTtcbiAgICAgICAgICogICAgIGJ1Y2tldC5ncmFudFB1YmxpY0FjY2VzcygpO1xuICAgICAgICAgKi9cbiAgICAgICAgZmluZEJ1Y2tldE1ldGhvZHMobm9kZSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDMuIFByZXZlbnQgcHVibGljIHdyaXRlIHRocm91Z2ggYnVja2V0IHBvbGljeVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY29uc3QgYnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnQnVja2V0Jyk7XG4gICAgICAgICAqICAgICBidWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAqICAgICAgIHByaW5jaXBhbHM6IFsnKiddLFxuICAgICAgICAgKiAgICAgfSkpO1xuICAgICAgICAgKi9cbiAgICAgICAgZmluZEJ1Y2tldFBvbGljeU1ldGhvZHMobm9kZSk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDQuIFByZXZlbnQgcHVibGljIHdyaXRlIHRocm91Z2ggQmxvY2sgUHVibGljIEFjY2VzczpcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIG5ldyBzMy5CdWNrZXQodGhpcywgJ0J1Y2tldCcsIHtcbiAgICAgICAgICogICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FDTFMsXG4gICAgICAgICAqICAgICB9KTtcbiAgICAgICAgICpcbiAgICAgICAgKi9cbiAgICAgICAgY29uc3QgY2RrT2JqZWN0MiA9IHV0aWwuZ2V0Q2RrRXhwcmVzc2lvbih7XG4gICAgICAgICAgY29uc3RydWN0OiAnQnVja2V0JyxcbiAgICAgICAgICBsaWJyYXJ5OiAnczMnLFxuICAgICAgICAgIG5vZGU6IG5vZGUsXG4gICAgICAgICAgcHJvcGVydHlLZXk6ICdibG9ja1B1YmxpY0FjY2VzcycsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY2RrT2JqZWN0Mj8ucHJvcGVydHlWYWx1ZSA9PT0gJ0JMT0NLX0FDTFMnKSB7XG4gICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUzNQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgIGxvYzogY2RrT2JqZWN0Mi5wcm9wZXJ0eUxvYyxcbiAgICAgICAgICAgIHN1Z2dlc3Q6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ2J1Y2tldEFsbG93c1B1YmxpY1JlYWQnLFxuICAgICAgICAgICAgICAgIGZpeDogKGZpeGVyOiBUU0VTTGludC5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZpeGVzOiBSdWxlLkZpeFtdID0gW1xuICAgICAgICAgICAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKGNka09iamVjdDIucHJvcGVydHlSYW5nZSEsICdCTE9DS19BTEwnKSxcbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChjZGtPYmplY3QyPy5wcm9wZXJ0eVZhbHVlPy50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5OZXdFeHByZXNzaW9uKSB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydGllczoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICAgICAgICBjZGtPYmplY3QyLnByb3BlcnR5VmFsdWUuYXJndW1lbnRzLmZvckVhY2goKGFyZzogVFNFU1RyZWUuT2JqZWN0RXhwcmVzc2lvbikgPT4ge1xuICAgICAgICAgICAgYXJnLnByb3BlcnRpZXMuZm9yRWFjaChwcm9wcyA9PiB7XG4gICAgICAgICAgICAgIGlmIChwcm9wcy50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5Qcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IHByb3BzLmtleSBhcyBUU0VTVHJlZS5JZGVudGlmaWVyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcHJvcHMudmFsdWUgYXMgVFNFU1RyZWUuTGl0ZXJhbDtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW2tleS5uYW1lXSA9IHZhbHVlLnJhdztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLmxlbmd0aCAhPSA0KSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUzNQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgICAgbG9jOiBjZGtPYmplY3QyLnByb3BlcnR5TG9jLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChPYmplY3QudmFsdWVzKHByb3BlcnRpZXMpLmluY2x1ZGVzKCdmYWxzZScpKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUzNQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgICAgbG9jOiBjZGtPYmplY3QyLnByb3BlcnR5TG9jLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tczMtcHVibGljLXJlYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tczMtcHVibGljLXJlYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUEyRjtBQUMzRiw4Q0FBZ0M7QUFFaEMsTUFBTSxVQUFVLEdBQUcsbUJBQVcsQ0FBQyxXQUFXLENBQ3hDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FDbEIsQ0FBQztBQVdGLGtCQUFlLFVBQVUsQ0FBc0I7SUFDN0MsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFlBQVk7UUFDbEIsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUU7WUFDUixjQUFjLEVBQUUseUNBQXlDO1lBQ3pELHlCQUF5QixFQUFFLDBEQUEwRDtZQUNyRixzQkFBc0IsRUFBRSxvREFBb0Q7WUFDNUUsNEJBQTRCLEVBQUUsaUVBQWlFO1NBQ2hHO1FBQ0QsSUFBSSxFQUFFO1lBQ0osb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixVQUFVLEVBQUUsSUFBSTtZQUNoQixXQUFXLEVBQUUsNkNBQTZDO1lBQzFELFdBQVcsRUFBRSxNQUFNO1lBQ25CLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCO1FBQ0QsT0FBTyxFQUFFLE1BQU07UUFDZixjQUFjLEVBQUUsSUFBSTtLQUNyQjtJQUNELElBQUksRUFBRSxtQkFBbUI7SUFDekIsY0FBYyxFQUFFLEVBQUU7SUFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ2hCLFNBQVMsdUJBQXVCLENBQUMsSUFBNEI7O1lBQzNELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUMvQyxTQUFTLEVBQUUsaUJBQWlCO2dCQUM1QixPQUFPLEVBQUUsS0FBSztnQkFDZCxJQUFJO2dCQUNKLFdBQVcsRUFBRSxZQUFZO2FBQzFCLENBQUMsQ0FBQztZQUNILE1BQUEsa0JB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RUFBRTt3QkFDdkMsT0FBTyxDQUFDLE1BQU0sQ0FBQzs0QkFDYixJQUFJOzRCQUNKLFNBQVMsRUFBRSxnQkFBZ0I7NEJBQzNCLEdBQUcsRUFBRSxVQUFVLENBQUMsV0FBVzt5QkFDNUIsQ0FBQyxDQUFDO3FCQUNKO3lCQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ3RELE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ2IsSUFBSTs0QkFDSixTQUFTLEVBQUUsZ0JBQWdCOzRCQUMzQixHQUFHLEVBQUUsVUFBVSxDQUFDLFdBQVc7eUJBQzVCLENBQUMsQ0FBQztxQkFDSjtpQkFDRjtxQkFBTTtvQkFDTCxPQUFPO2lCQUNSO2dCQUNELE9BQU87WUFDVCxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFU0xpbnRVdGlscywgVFNFU1RyZWUsIFRTRVNMaW50LCBBU1RfTk9ERV9UWVBFUyB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBjcmVhdGVSdWxlID0gRVNMaW50VXRpbHMuUnVsZUNyZWF0b3IoXG4gIG5hbWUgPT4gYCR7bmFtZX1gLFxuKTtcblxuXG50eXBlIE9wdGlvbnMgPSBbXTtcbnR5cGUgTWVzc2FnZUlkcyA9XG4gICAgfCAnbm9TM1B1YmxpY1JlYWQnXG4gICAgfCAnYnVja2V0QWxsb3dzUHVibGljUmVhZCdcbiAgICB8ICdidWNrZXRBQ0xBbGxvd3NQdWJsaWNSZWFkJ1xuICAgIHwgJ2J1Y2tldFBvbGljeUFsbG93c1B1YmxpY1JlYWQnXG5cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUnVsZTxPcHRpb25zLCBNZXNzYWdlSWRzPih7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgc2NoZW1hOiBbXSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9TM1B1YmxpY1JlYWQ6ICdTMyBCdWNrZXRzIHNob3VsZCBub3QgYWxsb3cgcHVibGljIHJlYWQnLFxuICAgICAgYnVja2V0QUNMQWxsb3dzUHVibGljUmVhZDogJ1RoZSBjb25maWd1cmVkIGJ1Y2tldCBBQ0wgaXMgYWxsb3dpbmcgcHVibGljIHJlYWQgYWNjZXNzJyxcbiAgICAgIGJ1Y2tldEFsbG93c1B1YmxpY1JlYWQ6ICdUaGUgYnVja2V0IGNvbmZpZ3VyYXRpb24gYWxsb3dzIHB1YmxpYyByZWFkIGFjY2VzcycsXG4gICAgICBidWNrZXRQb2xpY3lBbGxvd3NQdWJsaWNSZWFkOiAnVGhlIGNvbmZpZ3VyZWQgYnVja2V0IHJlc291cmNlIHBvbGljeSBhbGxvd3MgcHVibGljIHJlYWQgYWNjZXNzJyxcbiAgICB9LFxuICAgIGRvY3M6IHtcbiAgICAgIHJlcXVpcmVzVHlwZUNoZWNraW5nOiB0cnVlLFxuICAgICAgc3VnZ2VzdGlvbjogdHJ1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQnVja2V0cyBzaG91bGQgbm90IGFsbG93IHB1YmxpYyByZWFkIGFjY2VzcycsXG4gICAgICByZWNvbW1lbmRlZDogJ3dhcm4nLFxuICAgICAgZXh0ZW5kc0Jhc2VSdWxlOiBmYWxzZSxcbiAgICB9LFxuICAgIGZpeGFibGU6ICdjb2RlJyxcbiAgICBoYXNTdWdnZXN0aW9uczogdHJ1ZSxcbiAgfSxcbiAgbmFtZTogJ25vLXMzLXB1YmxpYy1yZWFkJyxcbiAgZGVmYXVsdE9wdGlvbnM6IFtdLFxuICBjcmVhdGU6IGNvbnRleHQgPT4ge1xuICAgIGZ1bmN0aW9uIHBhcnNlUHJpbmNpcGFsc0luUG9saWN5KG5vZGU6IFRTRVNUcmVlLk5ld0V4cHJlc3Npb24pIHtcbiAgICAgIGNvbnN0IGNka1ByaW5jaXBhbE9iamVjdCA9IHV0aWwuZ2V0Q2RrRXhwcmVzc2lvbih7XG4gICAgICAgIGNvbnN0cnVjdDogJ1BvbGljeVN0YXRlbWVudCcsXG4gICAgICAgIGxpYnJhcnk6ICdpYW0nLFxuICAgICAgICBub2RlLFxuICAgICAgICBwcm9wZXJ0eUtleTogJ3ByaW5jaXBhbHMnLFxuICAgICAgfSk7XG4gICAgICBjZGtQcmluY2lwYWxPYmplY3Q/LnByb3BlcnR5VmFsdWU/LmZvckVhY2goKHByOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcHJvcCA9IHByIGFzIFRTRVNUcmVlLk5vZGU7XG4gICAgICAgIGlmIChwcm9wLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkxpdGVyYWwpIHtcbiAgICAgICAgICBpZiAocHJvcC52YWx1ZSA9PT0gJyonKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUzNQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICAgICAgbG9jOiBwcm9wLmxvYyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmluZEJ1Y2tldFBvbGljeU1ldGhvZHMobm9kZTogVFNFU1RyZWUuTmV3RXhwcmVzc2lvbikge1xuICAgICAgY29uc3QgbWV0aG9kcyA9IHV0aWwuZmluZENvbnN0cnVjdE1ldGhvZHMoe1xuICAgICAgICBjb25zdHJ1Y3Q6ICdCdWNrZXRQb2xpY3knLFxuICAgICAgICBsaWJyYXJ5OiAnczMnLFxuICAgICAgICBtZXRob2RzOiBbXSxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgc2NvcGU6IGNvbnRleHQuZ2V0U2NvcGUoKSxcbiAgICAgICAgc291cmNlQ29kZTogY29udGV4dC5nZXRTb3VyY2VDb2RlKCkuYXN0LFxuICAgICAgfSk7XG4gICAgICBpZiAoJ2RvY3VtZW50JyBpbiBtZXRob2RzKSB7XG4gICAgICAgIGlmIChtZXRob2RzLmRvY3VtZW50LnBhcmVudD8udHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTWVtYmVyRXhwcmVzc2lvbikge1xuICAgICAgICAgIGNvbnN0IHBhcmVudE1lbWJlckV4cCA9IG1ldGhvZHMuZG9jdW1lbnQucGFyZW50O1xuICAgICAgICAgIGlmIChtZXRob2RzLmRvY3VtZW50LnBhcmVudD8ucGFyZW50Py50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5DYWxsRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgbWV0aG9kcy5kb2N1bWVudC5wYXJlbnQucGFyZW50LmFyZ3VtZW50cy5mb3JFYWNoKChhcmc6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYXJnLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkFycmF5RXhwcmVzc2lvbikge1xuICAgICAgICAgICAgICAgIGFyZy5lbGVtZW50cy5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGVsZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5OZXdFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlUHJpbmNpcGFsc0luUG9saWN5KGVsZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGFyZy50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSB1dGlsLmZpbmRWYXJpYWJsZSh7XG4gICAgICAgICAgICAgICAgICBjb25zdHJ1Y3Q6ICdQb2xpY3lTdGF0ZW1lbnQnLFxuICAgICAgICAgICAgICAgICAgbGlicmFyeTogJ2lhbScsXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZUlkZW50aWZpZXI6IGFyZy5uYW1lLFxuICAgICAgICAgICAgICAgICAgc2NvcGU6IGNvbnRleHQuZ2V0U2NvcGUoKSxcbiAgICAgICAgICAgICAgICAgIG1lbWJlckV4cHJlc3Npb246IHBhcmVudE1lbWJlckV4cCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBmb3VuZC5mb3JFYWNoKGYgPT4ge1xuICAgICAgICAgICAgICAgICAgcGFyc2VQcmluY2lwYWxzSW5Qb2xpY3koZik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGFyZy50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5BcnJheUV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgICAgICBhcmcuZWxlbWVudHMuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChlbGUudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3VuZCA9IHV0aWwuZmluZFZhcmlhYmxlKHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdHJ1Y3Q6ICdQb2xpY3lTdGF0ZW1lbnQnLFxuICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnk6ICdpYW0nLFxuICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlSWRlbnRpZmllcjogZWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgc2NvcGU6IGNvbnRleHQuZ2V0U2NvcGUoKSxcbiAgICAgICAgICAgICAgICAgICAgICBtZW1iZXJFeHByZXNzaW9uOiBwYXJlbnRNZW1iZXJFeHAsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBmb3VuZC5mb3JFYWNoKGYgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUHJpbmNpcGFsc0luUG9saWN5KGYpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmluZEJ1Y2tldE1ldGhvZHMobm9kZTogVFNFU1RyZWUuTmV3RXhwcmVzc2lvbikge1xuICAgICAgY29uc3QgbWV0aG9kcyA9IHV0aWwuZmluZENvbnN0cnVjdE1ldGhvZHMoe1xuICAgICAgICBjb25zdHJ1Y3Q6ICdCdWNrZXQnLFxuICAgICAgICBsaWJyYXJ5OiAnczMnLFxuICAgICAgICBtZXRob2RzOiBbXSxcbiAgICAgICAgbm9kZSxcbiAgICAgICAgc2NvcGU6IGNvbnRleHQuZ2V0U2NvcGUoKSxcbiAgICAgICAgc291cmNlQ29kZTogY29udGV4dC5nZXRTb3VyY2VDb2RlKCkuYXN0LFxuICAgICAgfSk7XG4gICAgICBpZiAoJ2dyYW50UHVibGljQWNjZXNzJyBpbiBtZXRob2RzKSB7XG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBtZXNzYWdlSWQ6ICdub1MzUHVibGljUmVhZCcsXG4gICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICBsb2M6IG1ldGhvZHMuZ3JhbnRQdWJsaWNBY2Nlc3MubG9jLFxuICAgICAgICAgIHN1Z2dlc3Q6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnYnVja2V0QWxsb3dzUHVibGljUmVhZCcsXG4gICAgICAgICAgICAgIGZpeDogKGZpeGVyOiBUU0VTTGludC5SdWxlRml4ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogVFNFU0xpbnQuUnVsZUZpeFtdID0gW1xuICAgICAgICAgICAgICAgICAgZml4ZXIucmVtb3ZlKG1ldGhvZHMuZ3JhbnRQdWJsaWNBY2Nlc3MucGFyZW50IS5wYXJlbnQhKSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKCdhZGRUb1Jlc291cmNlUG9saWN5JyBpbiBtZXRob2RzKSB7XG4gICAgICAgIGNvbnN0IHBvbGljeSA9IG1ldGhvZHMuYWRkVG9SZXNvdXJjZVBvbGljeTtcbiAgICAgICAgaWYgKHBvbGljeS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uKSB7XG4gICAgICAgICAgaWYgKHBvbGljeS5wYXJlbnQ/LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLkNhbGxFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICBwb2xpY3kucGFyZW50LmFyZ3VtZW50cy5mb3JFYWNoKChhcmc6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYXJnLnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLk5ld0V4cHJlc3Npb24pIHtcbiAgICAgICAgICAgICAgICBwYXJzZVByaW5jaXBhbHNJblBvbGljeShhcmcpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChhcmcudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvdW5kID0gdXRpbC5maW5kVmFyaWFibGUoe1xuICAgICAgICAgICAgICAgICAgY29uc3RydWN0OiAnUG9saWN5U3RhdGVtZW50JyxcbiAgICAgICAgICAgICAgICAgIGxpYnJhcnk6ICdpYW0nLFxuICAgICAgICAgICAgICAgICAgdmFyaWFibGVJZGVudGlmaWVyOiBhcmcubmFtZSxcbiAgICAgICAgICAgICAgICAgIHNjb3BlOiBjb250ZXh0LmdldFNjb3BlKCksXG4gICAgICAgICAgICAgICAgICBtZW1iZXJFeHByZXNzaW9uOiBwb2xpY3ksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZm91bmQuZm9yRWFjaChmID0+IHtcbiAgICAgICAgICAgICAgICAgIHBhcnNlUHJpbmNpcGFsc0luUG9saWN5KGYpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgTmV3RXhwcmVzc2lvbihub2RlOiBUU0VTVHJlZS5OZXdFeHByZXNzaW9uKSB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDEuIFByZXZlbnQgcHVibGljIHdyaXRlIHRocm91Z2ggYWNjZXNzIGNvbnRyb2w6XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnLCB7XG4gICAgICAgICAqICAgICAgIGFjY2Vzc0NvbnRyb2w6IHMzLkJ1Y2tldEFjY2Vzc0NvbnRyb2wuUFVCTElDX1JFQURfV1JJVEUsXG4gICAgICAgICAqICAgICB9KTtcbiAgICAgICAgICpcbiAgICAgICAgKi9cbiAgICAgICAgY29uc3QgY2RrT2JqZWN0ID0gdXRpbC5nZXRDZGtFeHByZXNzaW9uKHtcbiAgICAgICAgICBjb25zdHJ1Y3Q6ICdCdWNrZXQnLFxuICAgICAgICAgIGxpYnJhcnk6ICdzMycsXG4gICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICBwcm9wZXJ0eUtleTogJ2FjY2Vzc0NvbnRyb2wnLFxuICAgICAgICB9KTtcblxuICAgICAgICBzd2l0Y2ggKGNka09iamVjdD8ucHJvcGVydHlWYWx1ZSkge1xuICAgICAgICAgIGNhc2UgJ1BVQkxJQ19SRUFEX1dSSVRFJzpcbiAgICAgICAgICBjYXNlICdQVUJMSUNfUkVBRCc6XG4gICAgICAgICAgY2FzZSAnQVVUSEVOVElDQVRFRF9SRUFEJzpcbiAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9TM1B1YmxpY1JlYWQnLFxuICAgICAgICAgICAgICBsb2M6IGNka09iamVjdC5wcm9wZXJ0eUxvYyxcbiAgICAgICAgICAgICAgc3VnZ2VzdDogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ2J1Y2tldEFDTEFsbG93c1B1YmxpY1JlYWQnLFxuICAgICAgICAgICAgICAgICAgZml4OiAoZml4ZXI6IFRTRVNMaW50LlJ1bGVGaXhlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogVFNFU0xpbnQuUnVsZUZpeFtdID0gW1xuICAgICAgICAgICAgICAgICAgICAgIGZpeGVyLnJlcGxhY2VUZXh0UmFuZ2UoY2RrT2JqZWN0LnByb3BlcnR5UmFuZ2UhLCAnUFJJVkFURScpLFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIDIuIFByZXZlbnQgcHVibGljIHdyaXRlIHRocm91Z2ggYnVja2V0IHBvbGljeVxuICAgICAgICAgKlxuICAgICAgICAgKiAgICAgY29uc3QgYnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnQnVja2V0Jyk7XG4gICAgICAgICAqICAgICBidWNrZXQuZ3JhbnRQdWJsaWNBY2Nlc3MoKTtcbiAgICAgICAgICovXG4gICAgICAgIGZpbmRCdWNrZXRNZXRob2RzKG5vZGUpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiAzLiBQcmV2ZW50IHB1YmxpYyB3cml0ZSB0aHJvdWdoIGJ1Y2tldCBwb2xpY3lcbiAgICAgICAgICpcbiAgICAgICAgICogICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ0J1Y2tldCcpO1xuICAgICAgICAgKiAgICAgYnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgKiAgICAgICBwcmluY2lwYWxzOiBbJyonXSxcbiAgICAgICAgICogICAgIH0pKTtcbiAgICAgICAgICovXG4gICAgICAgIGZpbmRCdWNrZXRQb2xpY3lNZXRob2RzKG5vZGUpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiA0LiBQcmV2ZW50IHB1YmxpYyB3cml0ZSB0aHJvdWdoIEJsb2NrIFB1YmxpYyBBY2Nlc3M6XG4gICAgICAgICAqXG4gICAgICAgICAqICAgICBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnLCB7XG4gICAgICAgICAqICAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BQ0xTLFxuICAgICAgICAgKiAgICAgfSk7XG4gICAgICAgICAqXG4gICAgICAgICovXG4gICAgICAgIGNvbnN0IGNka09iamVjdDIgPSB1dGlsLmdldENka0V4cHJlc3Npb24oe1xuICAgICAgICAgIGNvbnN0cnVjdDogJ0J1Y2tldCcsXG4gICAgICAgICAgbGlicmFyeTogJ3MzJyxcbiAgICAgICAgICBub2RlOiBub2RlLFxuICAgICAgICAgIHByb3BlcnR5S2V5OiAnYmxvY2tQdWJsaWNBY2Nlc3MnLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNka09iamVjdDI/LnByb3BlcnR5VmFsdWUgPT09ICdCTE9DS19BQ0xTJykge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlSWQ6ICdub1MzUHVibGljUmVhZCcsXG4gICAgICAgICAgICBsb2M6IGNka09iamVjdDIucHJvcGVydHlMb2MsXG4gICAgICAgICAgICBzdWdnZXN0OiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdidWNrZXRBbGxvd3NQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgICAgICBmaXg6IChmaXhlcjogVFNFU0xpbnQuUnVsZUZpeGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBmaXhlczogVFNFU0xpbnQuUnVsZUZpeFtdID0gW1xuICAgICAgICAgICAgICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKGNka09iamVjdDIucHJvcGVydHlSYW5nZSEsICdCTE9DS19BTEwnKSxcbiAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZml4ZXM7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChjZGtPYmplY3QyPy5wcm9wZXJ0eVZhbHVlPy50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5OZXdFeHByZXNzaW9uKSB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydGllczoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICAgICAgICBjZGtPYmplY3QyLnByb3BlcnR5VmFsdWUuYXJndW1lbnRzLmZvckVhY2goKGFyZzogVFNFU1RyZWUuT2JqZWN0RXhwcmVzc2lvbikgPT4ge1xuICAgICAgICAgICAgYXJnLnByb3BlcnRpZXMuZm9yRWFjaChwcm9wcyA9PiB7XG4gICAgICAgICAgICAgIGlmIChwcm9wcy50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5Qcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IHByb3BzLmtleSBhcyBUU0VTVHJlZS5JZGVudGlmaWVyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcHJvcHMudmFsdWUgYXMgVFNFU1RyZWUuTGl0ZXJhbDtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW2tleS5uYW1lXSA9IHZhbHVlLnJhdztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLmxlbmd0aCAhPSA0KSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUzNQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgICAgbG9jOiBjZGtPYmplY3QyLnByb3BlcnR5TG9jLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChPYmplY3QudmFsdWVzKHByb3BlcnRpZXMpLmluY2x1ZGVzKCdmYWxzZScpKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vUzNQdWJsaWNSZWFkJyxcbiAgICAgICAgICAgICAgbG9jOiBjZGtPYmplY3QyLnByb3BlcnR5TG9jLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuIl19
@@ -1,4 +1,4 @@
1
- import { TSESLint } from '@typescript-eslint/experimental-utils';
2
- declare type MessageIds = 'noS3PublicWrite' | 'bucketAllowsPublicWrite' | 'bucketACLAllowsPublicWrite' | 'bucketPolicyAllowsPublicWrite';
1
+ import { TSESLint } from '@typescript-eslint/utils';
2
+ type MessageIds = 'noS3PublicWrite' | 'bucketAllowsPublicWrite' | 'bucketACLAllowsPublicWrite' | 'bucketPolicyAllowsPublicWrite';
3
3
  declare const _default: TSESLint.RuleModule<MessageIds, [], TSESLint.RuleListener>;
4
4
  export default _default;