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.
- package/.gitattributes +21 -20
- package/.projenrc.ts +3 -4
- package/README.md +2 -0
- package/lib/index.d.ts +16 -16
- package/lib/rules/index.d.ts +16 -16
- package/lib/rules/no-iam-admin-permissions.d.ts +1 -1
- package/lib/rules/no-iam-admin-permissions.js +10 -7
- package/lib/rules/no-iam-star-actions.d.ts +1 -1
- package/lib/rules/no-iam-star-actions.js +9 -6
- package/lib/rules/no-kms-key-delete.d.ts +1 -1
- package/lib/rules/no-kms-key-delete.js +10 -5
- package/lib/rules/no-policy-allow-kms-decrypt.d.ts +1 -1
- package/lib/rules/no-policy-allow-kms-decrypt.js +10 -7
- package/lib/rules/no-public-ingress.d.ts +2 -2
- package/lib/rules/no-public-ingress.js +10 -11
- package/lib/rules/no-rds-public-access.d.ts +2 -2
- package/lib/rules/no-rds-public-access.js +17 -12
- package/lib/rules/no-redshift-public-access.d.ts +1 -1
- package/lib/rules/no-redshift-public-access.js +10 -5
- package/lib/rules/no-s3-public-read.d.ts +2 -2
- package/lib/rules/no-s3-public-read.js +28 -23
- package/lib/rules/no-s3-public-write.d.ts +2 -2
- package/lib/rules/no-s3-public-write.js +24 -19
- package/lib/rules/require-bucket-encryption.d.ts +2 -2
- package/lib/rules/require-bucket-encryption.js +13 -7
- package/lib/rules/require-bucket-private.d.ts +2 -2
- package/lib/rules/require-bucket-private.js +10 -5
- package/lib/rules/require-bucket-ssl.d.ts +1 -1
- package/lib/rules/require-bucket-ssl.js +12 -7
- package/lib/rules/require-cloudfront-default-root-object.d.ts +1 -1
- package/lib/rules/require-cloudfront-default-root-object.js +8 -5
- package/lib/rules/require-dynamodb-autoscale.d.ts +1 -1
- package/lib/rules/require-dynamodb-autoscale.js +13 -10
- package/lib/rules/require-dynamodb-ptr.d.ts +1 -1
- package/lib/rules/require-dynamodb-ptr.js +10 -5
- package/lib/rules/require-sns-topic-encryption.d.ts +1 -1
- package/lib/rules/require-sns-topic-encryption.js +8 -5
- package/lib/util/findClassProperty.d.ts +1 -1
- package/lib/util/findClassProperty.js +8 -8
- package/lib/util/findConstructMethods.d.ts +1 -1
- package/lib/util/findConstructMethods.js +7 -7
- package/lib/util/findImportNode.d.ts +1 -1
- package/lib/util/findImportNode.js +7 -4
- package/lib/util/findMethods.d.ts +1 -1
- package/lib/util/findMethods.js +14 -14
- package/lib/util/findNewExpression.d.ts +1 -1
- package/lib/util/findNewExpression.js +5 -5
- package/lib/util/findVariable.d.ts +1 -1
- package/lib/util/findVariable.js +6 -6
- package/lib/util/getCdkExpression.d.ts +1 -1
- package/lib/util/getCdkExpression.js +10 -10
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.js +7 -2
- package/lib/util/utils.d.ts +2 -0
- package/lib/util/utils.js +16 -0
- package/package.json +35 -35
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
4
4
|
// import { Rule } from 'eslint';
|
|
5
5
|
// import * as util from '../util';
|
|
6
|
-
const createRule =
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
62
|
+
else if (callee.object.type === utils_1.AST_NODE_TYPES.Identifier) {
|
|
64
63
|
if (callee.object.name === 'Peer') {
|
|
65
|
-
if (callee.property.type ===
|
|
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 ===
|
|
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,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcHVibGljLWluZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnVsZXMvbm8tcHVibGljLWluZ3Jlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxvREFBaUY7QUFDakYsaUNBQWlDO0FBQ2pDLG1DQUFtQztBQUVuQyxNQUFNLFVBQVUsR0FBRyxtQkFBVyxDQUFDLFdBQVcsQ0FDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUNsQixDQUFDO0FBVUYsa0JBQWUsVUFBVSxDQUFzQjtJQUM3QyxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRTtZQUNSLG1CQUFtQixFQUFFLHVFQUF1RTtZQUM1Riw4QkFBOEIsRUFBRSxzR0FBc0c7WUFDdEksa0JBQWtCLEVBQUUseUNBQXlDO1NBQzlEO1FBQ0QsSUFBSSxFQUFFO1lBQ0osb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixXQUFXLEVBQUUsNERBQTREO1lBQ3pFLFdBQVcsRUFBRSxNQUFNO1lBQ25CLGVBQWUsRUFBRSxLQUFLO1NBQ3ZCO0tBQ0Y7SUFDRCxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNoQixTQUFTLGNBQWMsQ0FBQyxJQUFxQjtZQUMzQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxPQUFPLEVBQUU7Z0JBQzNDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7b0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPO1lBQ0wsY0FBYyxDQUFDLElBQTZCO2dCQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFtQyxDQUFDO29CQUV4RCwwQkFBMEI7b0JBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDMUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUErQixDQUFDO3dCQUUvRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsVUFBVSxFQUFFOzRCQUNsRixRQUFRLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dDQUM1QixLQUFLLFNBQVM7b0NBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQzt3Q0FDYixJQUFJO3dDQUNKLFNBQVMsRUFBRSxvQkFBb0I7cUNBQ2hDLENBQUMsQ0FBQztvQ0FDSCxNQUFNO2dDQUNSLEtBQUssTUFBTTtvQ0FDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO3dDQUN6QixPQUFPLENBQUMsTUFBTSxDQUFDOzRDQUNiLElBQUk7NENBQ0osU0FBUyxFQUFFLG9CQUFvQjt5Q0FDaEMsQ0FBQyxDQUFDO3FDQUNKO29DQUNELE1BQU07NkJBQ1Q7eUJBQ0Y7d0JBQ0Qsc0JBQXNCO3FCQUN2Qjt5QkFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLHNCQUFjLENBQUMsVUFBVSxFQUFFO3dCQUMzRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTs0QkFDakMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxzQkFBYyxDQUFDLFVBQVUsRUFBRTtnQ0FDdEQsUUFBUSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtvQ0FDNUIsS0FBSyxTQUFTO3dDQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUM7NENBQ2IsSUFBSTs0Q0FDSixTQUFTLEVBQUUsb0JBQW9CO3lDQUNoQyxDQUFDLENBQUM7d0NBQ0gsTUFBTTtvQ0FDUixLQUFLLE1BQU07d0NBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTs0Q0FDekIsT0FBTyxDQUFDLE1BQU0sQ0FBQztnREFDYixJQUFJO2dEQUNKLFNBQVMsRUFBRSxvQkFBb0I7NkNBQ2hDLENBQUMsQ0FBQzt5Q0FDSjt3Q0FDRCxNQUFNO2lDQUNUOzZCQUNGO3lCQUNGO3FCQUNGO29CQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssc0JBQWMsQ0FBQyxVQUFVLEVBQUU7d0JBQ3RELFFBQVEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7NEJBQzVCLEtBQUssa0JBQWtCO2dDQUNyQixPQUFPLENBQUMsTUFBTSxDQUFDO29DQUNiLElBQUk7b0NBQ0osU0FBUyxFQUFFLG9CQUFvQjtpQ0FDaEMsQ0FBQyxDQUFDO2dDQUNILE1BQU07NEJBQ1IsS0FBSyw2QkFBNkI7Z0NBQ2hDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0NBQ2IsSUFBSTtvQ0FDSixTQUFTLEVBQUUsZ0NBQWdDO2lDQUM1QyxDQUFDLENBQUM7Z0NBQ0gsTUFBTTt5QkFDVDtxQkFDRjtpQkFDRjtnQkFDRCxPQUFPO1lBQ1QsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVNMaW50VXRpbHMsIFRTRVNUcmVlLCBBU1RfTk9ERV9UWVBFUyB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG4vLyBpbXBvcnQgeyBSdWxlIH0gZnJvbSAnZXNsaW50Jztcbi8vIGltcG9ydCAqIGFzIHV0aWwgZnJvbSAnLi4vdXRpbCc7XG5cbmNvbnN0IGNyZWF0ZVJ1bGUgPSBFU0xpbnRVdGlscy5SdWxlQ3JlYXRvcihcbiAgbmFtZSA9PiBgJHtuYW1lfWAsXG4pO1xuXG5cbnR5cGUgT3B0aW9ucyA9IFtdO1xudHlwZSBNZXNzYWdlSWRzID1cbiAgICB8ICdub0FsbG93RnJvbUFueXdoZXJlJ1xuICAgIHwgJ25vQWxsb3dEZWZhdWx0UG9ydEZyb21Bbnl3aGVyZSdcbiAgICB8ICdub0lwdjRGcm9tQW55d2hlcmUnXG5cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlUnVsZTxPcHRpb25zLCBNZXNzYWdlSWRzPih7XG4gIG1ldGE6IHtcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbicsXG4gICAgc2NoZW1hOiBbXSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgbm9BbGxvd0Zyb21Bbnl3aGVyZTogJ1VzaW5nIGFsbG93RnJvbUFueUlwdjQoKSB3aWxsIGFkZCBhbiBpbmdyZXNzIHJ1bGUgZnJvbSBmcm9tIDAuMC4wLjAvMCcsXG4gICAgICBub0FsbG93RGVmYXVsdFBvcnRGcm9tQW55d2hlcmU6ICdVc2luZyBhbGxvd0RlZmF1bHRQb3J0RnJvbUFueUlwdjQoKSB3aWxsIGFkZCBhbiBpbmdyZXNzIHJ1bGUgZnJvbSBmcm9tIDAuMC4wLjAvMCBvbiB0aGUgZGVmYXVsdCBwb3J0JyxcbiAgICAgIG5vSXB2NEZyb21Bbnl3aGVyZTogJ1lvdSBhcmUgYWxsb3dpbmcgaW5ncmVzcyBmcm9tIDAuMC4wLjAvMCcsXG4gICAgfSxcbiAgICBkb2NzOiB7XG4gICAgICByZXF1aXJlc1R5cGVDaGVja2luZzogdHJ1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2VjdXJpdHkgR3JvdXAgcnVsZXMgc2hvdWxkIG5vdCBhbGxvdyBhY2Nlc3MgZnJvbSBhbnl3aGVyZScsXG4gICAgICByZWNvbW1lbmRlZDogJ3dhcm4nLFxuICAgICAgZXh0ZW5kc0Jhc2VSdWxlOiBmYWxzZSxcbiAgICB9LFxuICB9LFxuICBuYW1lOiAnbm8tcHVibGljLWluZ3Jlc3MnLFxuICBkZWZhdWx0T3B0aW9uczogW10sXG4gIGNyZWF0ZTogY29udGV4dCA9PiB7XG4gICAgZnVuY3Rpb24gcGFyc2VBcmd1bWVudHMoYXJnczogVFNFU1RyZWUuTm9kZVtdKTogYm9vbGVhbiB7XG4gICAgICBpZiAoYXJnc1swXS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5MaXRlcmFsKSB7XG4gICAgICAgIGlmIChhcmdzWzBdLnZhbHVlID09PSAnMC4wLjAuMC8wJykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBDYWxsRXhwcmVzc2lvbihub2RlOiBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbikge1xuICAgICAgICBjb25zdCBhcmdzID0gbm9kZS5hcmd1bWVudHM7XG4gICAgICAgIGlmIChub2RlLmNhbGxlZS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5NZW1iZXJFeHByZXNzaW9uKSB7XG4gICAgICAgICAgY29uc3QgY2FsbGVlID0gbm9kZS5jYWxsZWUgYXMgVFNFU1RyZWUuTWVtYmVyRXhwcmVzc2lvbjtcblxuICAgICAgICAgIC8vIGUuZy4gZWMyLlBlZXIuYW55SXB2NCgpXG4gICAgICAgICAgaWYgKGNhbGxlZS5vYmplY3QudHlwZSA9PT0gQVNUX05PREVfVFlQRVMuTWVtYmVyRXhwcmVzc2lvbikge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSBjYWxsZWUub2JqZWN0LnByb3BlcnR5IGFzIFRTRVNUcmVlLklkZW50aWZpZXI7XG5cbiAgICAgICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lID09PSAnUGVlcicgJiYgY2FsbGVlLnByb3BlcnR5LnR5cGUgPT09IEFTVF9OT0RFX1RZUEVTLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgICAgc3dpdGNoIChjYWxsZWUucHJvcGVydHkubmFtZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2FueUlwdjQnOlxuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0lwdjRGcm9tQW55d2hlcmUnLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdpcHY0JzpcbiAgICAgICAgICAgICAgICAgIGlmICghcGFyc2VBcmd1bWVudHMoYXJncykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9JcHY0RnJvbUFueXdoZXJlJyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZS5nLiBQZWVyLmFueUlwdjQoKVxuICAgICAgICAgIH0gZWxzZSBpZiAoY2FsbGVlLm9iamVjdC50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZiAoY2FsbGVlLm9iamVjdC5uYW1lID09PSAnUGVlcicpIHtcbiAgICAgICAgICAgICAgaWYgKGNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjYWxsZWUucHJvcGVydHkubmFtZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSAnYW55SXB2NCc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vSXB2NEZyb21Bbnl3aGVyZScsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgJ2lwdjQnOlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcnNlQXJndW1lbnRzKGFyZ3MpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogJ25vSXB2NEZyb21Bbnl3aGVyZScsXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSBBU1RfTk9ERV9UWVBFUy5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGNhbGxlZS5wcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ2FsbG93RnJvbUFueUlwdjQnOlxuICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0lwdjRGcm9tQW55d2hlcmUnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdhbGxvd0RlZmF1bHRQb3J0RnJvbUFueUlwdjQnOlxuICAgICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6ICdub0FsbG93RGVmYXVsdFBvcnRGcm9tQW55d2hlcmUnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TSESLint } from '@typescript-eslint/
|
|
2
|
-
|
|
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.
|
|
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
|
|
26
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
23
27
|
const util = __importStar(require("../util"));
|
|
24
|
-
const createRule =
|
|
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
|
-
|
|
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 ===
|
|
61
|
-
if (p.value.type ===
|
|
62
|
-
if (p.value.object.type ===
|
|
63
|
-
if (p.value.property.type ===
|
|
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 ===
|
|
93
|
-
if (p.value.object.property.type ===
|
|
94
|
-
if (p.value.property.type ===
|
|
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,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.
|
|
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
|
|
26
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
23
27
|
const util = __importStar(require("../util"));
|
|
24
|
-
const createRule =
|
|
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
|
-
|
|
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,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVkc2hpZnQtcHVibGljLWFjY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZWRzaGlmdC1wdWJsaWMtYWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBMkU7QUFDM0UsOENBQWdDO0FBRWhDLE1BQU0sVUFBVSxHQUFHLG1CQUFXLENBQUMsV0FBVyxDQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQ2xCLENBQUM7QUFRRixrQkFBZSxVQUFVLENBQXNCO0lBQzdDLElBQUksRUFBRTtRQUNKLElBQUksRUFBRSxZQUFZO1FBQ2xCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsUUFBUSxFQUFFO1lBQ1Isc0JBQXNCLEVBQUUseURBQXlEO1NBQ2xGO1FBQ0QsSUFBSSxFQUFFO1lBQ0osVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLHlEQUF5RDtZQUN0RSxXQUFXLEVBQUUsTUFBTTtTQUNwQjtRQUNELE9BQU8sRUFBRSxNQUFNO1FBQ2YsY0FBYyxFQUFFLElBQUk7S0FDckI7SUFDRCxJQUFJLEVBQUUsMkJBQTJCO0lBQ2pDLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNoQixPQUFPO1lBQ0wsYUFBYSxDQUFDLElBQTRCO2dCQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7b0JBQ3RDLFNBQVMsRUFBRSxTQUFTO29CQUNwQixPQUFPLEVBQUUsVUFBVTtvQkFDbkIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsV0FBVyxFQUFFLG9CQUFvQjtpQkFDbEMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsYUFBYSxNQUFLLElBQUksRUFBRTtvQkFDckMsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFDYixJQUFJO3dCQUNKLFNBQVMsRUFBRSx3QkFBd0I7d0JBQ25DLEdBQUcsRUFBRSxTQUFTLENBQUMsV0FBVzt3QkFDMUIsT0FBTyxFQUFFOzRCQUNQO2dDQUNFLFNBQVMsRUFBRSx3QkFBd0I7Z0NBQ25DLEdBQUcsRUFBRSxDQUFDLEtBQXlCLEVBQUUsRUFBRTtvQ0FDakMsTUFBTSxLQUFLLEdBQXVCO3dDQUNoQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGFBQWMsRUFBRSxPQUFPLENBQUM7cUNBQzFELENBQUM7b0NBQ0YsT0FBTyxLQUFLLENBQUM7Z0NBQ2YsQ0FBQzs2QkFFRjt5QkFDRjtxQkFDRixDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsT0FBTztpQkFDUjtnQkFDRCxPQUFPO1lBQ1QsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRVNMaW50VXRpbHMsIFRTRVNUcmVlLCBUU0VTTGludCB9IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgKiBhcyB1dGlsIGZyb20gJy4uL3V0aWwnO1xuXG5jb25zdCBjcmVhdGVSdWxlID0gRVNMaW50VXRpbHMuUnVsZUNyZWF0b3IoXG4gIG5hbWUgPT4gYCR7bmFtZX1gLFxuKTtcblxuXG50eXBlIE9wdGlvbnMgPSBbXTtcbnR5cGUgTWVzc2FnZUlkcyA9XG4gICAgfCAnbm9SZWRzaGlmdFB1YmxpY0FjY2VzcydcblxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVSdWxlPE9wdGlvbnMsIE1lc3NhZ2VJZHM+KHtcbiAgbWV0YToge1xuICAgIHR5cGU6ICdzdWdnZXN0aW9uJyxcbiAgICBzY2hlbWE6IFtdLFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBub1JlZHNoaWZ0UHVibGljQWNjZXNzOiAnQVdTIFJlZHNoaWZ0IGluc3RhbmNlcyBzaG91bGQgbm90IGJlIHB1YmxpY2x5IGF2YWlsYWJsZScsXG4gICAgfSxcbiAgICBkb2NzOiB7XG4gICAgICBzdWdnZXN0aW9uOiB0cnVlLFxuICAgICAgZGVzY3JpcHRpb246ICdBV1MgUmVkc2hpZnQgaW5zdGFuY2VzIHNob3VsZCBub3QgYmUgcHVibGljbHkgYXZhaWxhYmxlJyxcbiAgICAgIHJlY29tbWVuZGVkOiAnd2FybicsXG4gICAgfSxcbiAgICBmaXhhYmxlOiAnY29kZScsXG4gICAgaGFzU3VnZ2VzdGlvbnM6IHRydWUsXG4gIH0sXG4gIG5hbWU6ICduby1yZWRzaGlmdC1wdWJsaWMtYWNjZXNzJyxcbiAgZGVmYXVsdE9wdGlvbnM6IFtdLFxuICBjcmVhdGU6IGNvbnRleHQgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBOZXdFeHByZXNzaW9uKG5vZGU6IFRTRVNUcmVlLk5ld0V4cHJlc3Npb24pIHtcbiAgICAgICAgY29uc3QgY2RrT2JqZWN0ID0gdXRpbC5nZXRDZGtFeHByZXNzaW9uKHtcbiAgICAgICAgICBjb25zdHJ1Y3Q6ICdDbHVzdGVyJyxcbiAgICAgICAgICBsaWJyYXJ5OiAncmVkc2hpZnQnLFxuICAgICAgICAgIG5vZGU6IG5vZGUsXG4gICAgICAgICAgcHJvcGVydHlLZXk6ICdwdWJsaWNseUFjY2Vzc2libGUnLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNka09iamVjdD8ucHJvcGVydHlWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBtZXNzYWdlSWQ6ICdub1JlZHNoaWZ0UHVibGljQWNjZXNzJyxcbiAgICAgICAgICAgIGxvYzogY2RrT2JqZWN0LnByb3BlcnR5TG9jLFxuICAgICAgICAgICAgc3VnZ2VzdDogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiAnbm9SZWRzaGlmdFB1YmxpY0FjY2VzcycsXG4gICAgICAgICAgICAgICAgZml4OiAoZml4ZXI6IFRTRVNMaW50LlJ1bGVGaXhlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZml4ZXM6IFRTRVNMaW50LlJ1bGVGaXhbXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgZml4ZXIucmVwbGFjZVRleHRSYW5nZShjZGtPYmplY3QucHJvcGVydHlSYW5nZSEsICdmYWxzZScpLFxuICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBmaXhlcztcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59KTtcblxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TSESLint } from '@typescript-eslint/
|
|
2
|
-
|
|
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.
|
|
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
|
|
26
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
23
27
|
const util = __importStar(require("../util"));
|
|
24
|
-
const createRule =
|
|
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
|
-
|
|
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 ===
|
|
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) ===
|
|
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) ===
|
|
82
|
-
methods.document.parent.parent.arguments.forEach(arg => {
|
|
83
|
-
if (arg.type ===
|
|
84
|
-
arg.elements.forEach(ele => {
|
|
85
|
-
if (ele.type ===
|
|
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 ===
|
|
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 ===
|
|
103
|
-
arg.elements.forEach(ele => {
|
|
104
|
-
if (ele.type ===
|
|
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 ===
|
|
154
|
-
if (((_a = policy.parent) === null || _a === void 0 ? void 0 : _a.type) ===
|
|
155
|
-
policy.parent.arguments.forEach(arg => {
|
|
156
|
-
if (arg.type ===
|
|
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 ===
|
|
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) ===
|
|
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 ===
|
|
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/
|
|
2
|
-
|
|
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;
|