@cloud-copilot/iam-expand 0.11.0 → 0.11.2
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/LICENSE.txt +68 -81
- package/README.md +80 -29
- package/dist/cjs/cli.js +71 -49
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/cli_utils.d.ts +4 -16
- package/dist/cjs/cli_utils.d.ts.map +1 -1
- package/dist/cjs/cli_utils.js +11 -44
- package/dist/cjs/cli_utils.js.map +1 -1
- package/dist/cjs/expand.d.ts.map +1 -1
- package/dist/cjs/expand.js +9 -7
- package/dist/cjs/expand.js.map +1 -1
- package/dist/cjs/expand_file.d.ts +1 -1
- package/dist/cjs/expand_file.d.ts.map +1 -1
- package/dist/cjs/expand_file.js +5 -2
- package/dist/cjs/expand_file.js.map +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/invert.d.ts.map +1 -1
- package/dist/cjs/invert.js +10 -6
- package/dist/cjs/invert.js.map +1 -1
- package/dist/cjs/util.js +1 -1
- package/dist/cjs/util.js.map +1 -1
- package/dist/esm/cli.js +75 -53
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli_utils.d.ts +4 -16
- package/dist/esm/cli_utils.d.ts.map +1 -1
- package/dist/esm/cli_utils.js +12 -44
- package/dist/esm/cli_utils.js.map +1 -1
- package/dist/esm/expand.d.ts.map +1 -1
- package/dist/esm/expand.js +9 -7
- package/dist/esm/expand.js.map +1 -1
- package/dist/esm/expand_file.d.ts +1 -1
- package/dist/esm/expand_file.d.ts.map +1 -1
- package/dist/esm/expand_file.js +7 -4
- package/dist/esm/expand_file.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/invert.d.ts.map +1 -1
- package/dist/esm/invert.js +12 -8
- package/dist/esm/invert.js.map +1 -1
- package/dist/esm/util.js +1 -1
- package/dist/esm/util.js.map +1 -1
- package/package.json +72 -3
- package/dist/cjs/stdin.d.ts +0 -7
- package/dist/cjs/stdin.d.ts.map +0 -1
- package/dist/cjs/stdin.js +0 -36
- package/dist/cjs/stdin.js.map +0 -1
- package/dist/esm/stdin.d.ts +0 -7
- package/dist/esm/stdin.d.ts.map +0 -1
- package/dist/esm/stdin.js +0 -33
- package/dist/esm/stdin.js.map +0 -1
package/dist/cjs/cli.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const cli_1 = require("@cloud-copilot/cli");
|
|
4
5
|
const iam_data_1 = require("@cloud-copilot/iam-data");
|
|
5
6
|
const cli_utils_js_1 = require("./cli_utils.js");
|
|
6
7
|
const expand_js_1 = require("./expand.js");
|
|
7
8
|
const invert_js_1 = require("./invert.js");
|
|
8
|
-
const commandName = 'iam-expand';
|
|
9
9
|
const dataPackage = '@cloud-copilot/iam-data';
|
|
10
10
|
const fiveDays = 432_000_000;
|
|
11
11
|
/**
|
|
@@ -36,31 +36,6 @@ async function checkDataAge() {
|
|
|
36
36
|
console.warn(` iam-expand --show-data-version`);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Print the usage of the CLI to the console
|
|
41
|
-
*/
|
|
42
|
-
function printUsage() {
|
|
43
|
-
console.log('No arguments provided or input from stdin.');
|
|
44
|
-
console.log('Usage:');
|
|
45
|
-
console.log(` ${commandName} [options] [action1] [action2] ...`);
|
|
46
|
-
console.log(` <input from stdout> | ${commandName} [options]`);
|
|
47
|
-
console.log('Action Expanding Options:');
|
|
48
|
-
console.log(' --expand-asterisk: Expand the * action to all actions');
|
|
49
|
-
console.log(' --error-on-invalid-format: Throw an error if the action string is not in the correct format');
|
|
50
|
-
console.log(' --error-on-invalid-service: Throw an error if a service is not found');
|
|
51
|
-
console.log(' --invalid-action-behavior: What to do when an invalid action is encountered:');
|
|
52
|
-
console.log(' --invalid-action-behavior=remove: Remove the invalid action');
|
|
53
|
-
console.log(' --invalid-action-behavior=include: Include the invalid action');
|
|
54
|
-
console.log(' --invalid-action-behavior=error: Throw an error if an invalid action is encountered');
|
|
55
|
-
console.log('Inverting Actions:');
|
|
56
|
-
console.log(' --invert: If not JSON, print the inverse of the actions provided');
|
|
57
|
-
console.log(' --invert-not-actions: If JSON, replace NotAction strings or arrays with Action arrays that have the inverse actions');
|
|
58
|
-
console.log('CLI Behavior Options:');
|
|
59
|
-
console.log(' --show-data-version: Print the version of the iam-data package being used and exit');
|
|
60
|
-
console.log(' --read-wait-ms: Milliseconds to wait for the first byte from stdin before timing out.');
|
|
61
|
-
console.log(' Example: --read-wait-ms=10_000');
|
|
62
|
-
process.exit(1);
|
|
63
|
-
}
|
|
64
39
|
/**
|
|
65
40
|
* Print a list of warnings to the console
|
|
66
41
|
*
|
|
@@ -71,20 +46,56 @@ function printWarnings(warnings) {
|
|
|
71
46
|
console.warn(`Notice: ${warning}`);
|
|
72
47
|
}
|
|
73
48
|
}
|
|
74
|
-
const args = process.argv.slice(2); // Ignore the first two elements
|
|
75
49
|
const actionStrings = [];
|
|
76
|
-
const optionStrings = [];
|
|
77
|
-
for (const arg of args) {
|
|
78
|
-
if (arg.startsWith('--')) {
|
|
79
|
-
optionStrings.push(arg);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
actionStrings.push(arg);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
50
|
async function run() {
|
|
86
|
-
const
|
|
87
|
-
|
|
51
|
+
const cli = (0, cli_1.parseCliArguments)('iam-expand', {}, {
|
|
52
|
+
expandAsterisk: {
|
|
53
|
+
character: 'e',
|
|
54
|
+
description: 'Expand the * action to all actions',
|
|
55
|
+
values: 'none'
|
|
56
|
+
},
|
|
57
|
+
errorOnInvalidFormat: {
|
|
58
|
+
character: 'f',
|
|
59
|
+
description: 'Throw an error if the action string is not in the correct format',
|
|
60
|
+
values: 'none'
|
|
61
|
+
},
|
|
62
|
+
errorOnInvalidService: {
|
|
63
|
+
character: 's',
|
|
64
|
+
description: 'Throw an error if a service is not found',
|
|
65
|
+
values: 'none'
|
|
66
|
+
},
|
|
67
|
+
invalidActionBehavior: {
|
|
68
|
+
description: 'What to do when an invalid action is encountered',
|
|
69
|
+
values: 'single',
|
|
70
|
+
type: 'enum',
|
|
71
|
+
validValues: ['remove', 'include', 'error']
|
|
72
|
+
},
|
|
73
|
+
invert: {
|
|
74
|
+
character: 'i',
|
|
75
|
+
description: 'If not JSON, print the inverse of the actions provided',
|
|
76
|
+
values: 'none'
|
|
77
|
+
},
|
|
78
|
+
invertNotActions: {
|
|
79
|
+
character: 'n',
|
|
80
|
+
description: 'If JSON, replace NotAction strings or arrays with Action arrays that have the inverse actions',
|
|
81
|
+
values: 'none'
|
|
82
|
+
},
|
|
83
|
+
showDataVersion: {
|
|
84
|
+
character: 'v',
|
|
85
|
+
description: 'Print the version of the iam-data package being used and exit',
|
|
86
|
+
values: 'none'
|
|
87
|
+
},
|
|
88
|
+
readWaitMs: {
|
|
89
|
+
description: 'Milliseconds to wait for the first byte from stdin before timing out',
|
|
90
|
+
values: 'single',
|
|
91
|
+
type: 'number'
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
operandsName: 'action',
|
|
95
|
+
envPrefix: 'IAM_EXPAND',
|
|
96
|
+
allowOperandsFromStdin: true
|
|
97
|
+
});
|
|
98
|
+
if (cli.args.showDataVersion) {
|
|
88
99
|
const version = await (0, iam_data_1.iamDataVersion)();
|
|
89
100
|
const updatedAt = await (0, iam_data_1.iamDataUpdatedAt)();
|
|
90
101
|
console.log(`${dataPackage} version: ${version}`);
|
|
@@ -95,13 +106,20 @@ async function run() {
|
|
|
95
106
|
return;
|
|
96
107
|
}
|
|
97
108
|
const warnings = [];
|
|
109
|
+
const argsWithDefaults = {
|
|
110
|
+
...cli.args,
|
|
111
|
+
invalidActionBehavior: (0, cli_utils_js_1.invalidActionBehaviorForString)(cli.args.invalidActionBehavior)
|
|
112
|
+
};
|
|
113
|
+
actionStrings.push(...cli.operands);
|
|
98
114
|
if (actionStrings.length === 0) {
|
|
99
115
|
//If no actions are provided, read from stdin
|
|
100
|
-
const stdInResult = await (0, cli_utils_js_1.parseStdIn)(
|
|
116
|
+
const stdInResult = await (0, cli_utils_js_1.parseStdIn)(argsWithDefaults);
|
|
101
117
|
if (stdInResult.object) {
|
|
102
118
|
console.log(JSON.stringify(stdInResult.object, null, 2));
|
|
103
|
-
if (
|
|
104
|
-
printWarnings([
|
|
119
|
+
if (cli.args.invert) {
|
|
120
|
+
printWarnings([
|
|
121
|
+
'--invert is not supported when processing JSON, ignoring. Did you mean --invert-not-actions ?'
|
|
122
|
+
]);
|
|
105
123
|
}
|
|
106
124
|
await checkDataAge();
|
|
107
125
|
return;
|
|
@@ -109,7 +127,7 @@ async function run() {
|
|
|
109
127
|
else if (stdInResult.strings) {
|
|
110
128
|
const otherActions = stdInResult.strings;
|
|
111
129
|
if (otherActions.length > 0) {
|
|
112
|
-
if (
|
|
130
|
+
if (cli.args.expandAsterisk) {
|
|
113
131
|
warnings.push('--expand-asterisk is not supported when reading from stdin, ignoring.');
|
|
114
132
|
}
|
|
115
133
|
}
|
|
@@ -117,23 +135,27 @@ async function run() {
|
|
|
117
135
|
}
|
|
118
136
|
}
|
|
119
137
|
if (actionStrings.length > 0) {
|
|
120
|
-
if (
|
|
138
|
+
if (cli.args.invertNotActions) {
|
|
121
139
|
warnings.push('--invert-not-actions is only supported when processing JSON, ignoring.');
|
|
122
140
|
}
|
|
123
|
-
if (
|
|
124
|
-
await runAndPrint(() => (0, invert_js_1.invertIamActions)(actionStrings,
|
|
141
|
+
if (cli.args.invert) {
|
|
142
|
+
await runAndPrint(() => (0, invert_js_1.invertIamActions)(actionStrings, argsWithDefaults));
|
|
125
143
|
}
|
|
126
144
|
else {
|
|
127
|
-
await runAndPrint(() => (0, expand_js_1.expandIamActions)(actionStrings,
|
|
145
|
+
await runAndPrint(() => (0, expand_js_1.expandIamActions)(actionStrings, argsWithDefaults));
|
|
128
146
|
}
|
|
129
147
|
printWarnings(warnings);
|
|
130
148
|
await checkDataAge();
|
|
131
149
|
return;
|
|
132
150
|
}
|
|
133
|
-
|
|
151
|
+
console.log('No actions provided or input from stdin');
|
|
152
|
+
cli.printHelp();
|
|
134
153
|
}
|
|
135
|
-
run()
|
|
154
|
+
run()
|
|
155
|
+
.catch((e) => {
|
|
136
156
|
console.error(e);
|
|
137
157
|
process.exit(1);
|
|
138
|
-
})
|
|
158
|
+
})
|
|
159
|
+
.then(() => { })
|
|
160
|
+
.finally(() => { });
|
|
139
161
|
//# sourceMappingURL=cli.js.map
|
package/dist/cjs/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/cli_utils.d.ts
CHANGED
|
@@ -1,24 +1,12 @@
|
|
|
1
|
-
import { ExpandIamActionsOptions } from
|
|
2
|
-
import { ExpandJsonDocumentOptions } from
|
|
1
|
+
import { ExpandIamActionsOptions, InvalidActionBehavior } from './expand.js';
|
|
2
|
+
import { ExpandJsonDocumentOptions } from './expand_file.js';
|
|
3
3
|
interface CliOptions extends ExpandIamActionsOptions, ExpandJsonDocumentOptions {
|
|
4
4
|
invert: boolean;
|
|
5
5
|
showDataVersion: boolean;
|
|
6
|
-
readWaitMs:
|
|
6
|
+
readWaitMs: number | undefined;
|
|
7
7
|
}
|
|
8
|
-
/**
|
|
9
|
-
* Convert a dash-case string to camelCase
|
|
10
|
-
* @param str the string to convert
|
|
11
|
-
* @returns the camelCase string
|
|
12
|
-
*/
|
|
13
|
-
export declare function dashToCamelCase(str: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* Convert an array of option strings to an object
|
|
16
|
-
*
|
|
17
|
-
* @param optionArgs the array of option strings to convert
|
|
18
|
-
* @returns the object representation of the options
|
|
19
|
-
*/
|
|
20
|
-
export declare function convertOptions(optionArgs: string[]): Partial<CliOptions>;
|
|
21
8
|
export declare function extractActionsFromLineOfInput(line: string): string[];
|
|
9
|
+
export declare function invalidActionBehaviorForString(behaviorString: string | undefined): InvalidActionBehavior | undefined;
|
|
22
10
|
/**
|
|
23
11
|
* Parse the actions from stdin
|
|
24
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli_utils.d.ts","sourceRoot":"","sources":["../../src/cli_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"cli_utils.d.ts","sourceRoot":"","sources":["../../src/cli_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAsB,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAEhF,UAAU,UAAW,SAAQ,uBAAuB,EAAE,yBAAyB;IAC7E,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B;AAGD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKpE;AAED,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,qBAAqB,GAAG,SAAS,CAOnC;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,CAc/C"}
|
package/dist/cjs/cli_utils.js
CHANGED
|
@@ -1,50 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dashToCamelCase = dashToCamelCase;
|
|
4
|
-
exports.convertOptions = convertOptions;
|
|
5
3
|
exports.extractActionsFromLineOfInput = extractActionsFromLineOfInput;
|
|
4
|
+
exports.invalidActionBehaviorForString = invalidActionBehaviorForString;
|
|
6
5
|
exports.parseStdIn = parseStdIn;
|
|
6
|
+
const cli_1 = require("@cloud-copilot/cli");
|
|
7
7
|
const expand_js_1 = require("./expand.js");
|
|
8
8
|
const expand_file_js_1 = require("./expand_file.js");
|
|
9
|
-
const stdin_js_1 = require("./stdin.js");
|
|
10
|
-
/**
|
|
11
|
-
* Convert a dash-case string to camelCase
|
|
12
|
-
* @param str the string to convert
|
|
13
|
-
* @returns the camelCase string
|
|
14
|
-
*/
|
|
15
|
-
function dashToCamelCase(str) {
|
|
16
|
-
str = str.substring(2);
|
|
17
|
-
return str.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Convert an array of option strings to an object
|
|
21
|
-
*
|
|
22
|
-
* @param optionArgs the array of option strings to convert
|
|
23
|
-
* @returns the object representation of the options
|
|
24
|
-
*/
|
|
25
|
-
function convertOptions(optionArgs) {
|
|
26
|
-
const options = {};
|
|
27
|
-
for (const option of optionArgs) {
|
|
28
|
-
let key = option;
|
|
29
|
-
let value = true;
|
|
30
|
-
if (option.includes('=')) {
|
|
31
|
-
[key, value] = option.split('=');
|
|
32
|
-
}
|
|
33
|
-
options[dashToCamelCase(key)] = value;
|
|
34
|
-
}
|
|
35
|
-
if (typeof (options.invalidActionBehavior) === 'string') {
|
|
36
|
-
const behaviorString = options.invalidActionBehavior;
|
|
37
|
-
const cleanedInput = behaviorString.charAt(0).toUpperCase() + behaviorString.slice(1).toLowerCase();
|
|
38
|
-
const behavior = expand_js_1.InvalidActionBehavior[cleanedInput];
|
|
39
|
-
if (behavior) {
|
|
40
|
-
options.invalidActionBehavior = behavior;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
delete options['invalidActionBehavior'];
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return options;
|
|
47
|
-
}
|
|
48
9
|
const actionPattern = /\:?((\\u[0-9]{4}|[a-zA-Z0-9-])+:(\\u[0-9]{4}|[a-zA-Z0-9*\?]|)+)/g;
|
|
49
10
|
function extractActionsFromLineOfInput(line) {
|
|
50
11
|
const matches = line.matchAll(actionPattern);
|
|
@@ -52,14 +13,20 @@ function extractActionsFromLineOfInput(line) {
|
|
|
52
13
|
.filter((match) => !match[0].startsWith('arn:') && !match[0].startsWith(':'))
|
|
53
14
|
.map((match) => match[1]);
|
|
54
15
|
}
|
|
16
|
+
function invalidActionBehaviorForString(behaviorString) {
|
|
17
|
+
if (!behaviorString) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const cleanedInput = behaviorString.charAt(0).toUpperCase() + behaviorString.slice(1).toLowerCase();
|
|
21
|
+
return expand_js_1.InvalidActionBehavior[cleanedInput];
|
|
22
|
+
}
|
|
55
23
|
/**
|
|
56
24
|
* Parse the actions from stdin
|
|
57
25
|
*
|
|
58
26
|
* @returns an array of strings from stdin
|
|
59
27
|
*/
|
|
60
28
|
async function parseStdIn(options) {
|
|
61
|
-
const
|
|
62
|
-
const data = await (0, stdin_js_1.readStdin)(delay);
|
|
29
|
+
const data = await (0, cli_1.readStdin)(options.readWaitMs);
|
|
63
30
|
if (data.length === 0) {
|
|
64
31
|
return {};
|
|
65
32
|
}
|
|
@@ -69,7 +36,7 @@ async function parseStdIn(options) {
|
|
|
69
36
|
}
|
|
70
37
|
catch (err) { }
|
|
71
38
|
const lines = data.split('\n');
|
|
72
|
-
const actions = lines.flatMap(line => extractActionsFromLineOfInput(line));
|
|
39
|
+
const actions = lines.flatMap((line) => extractActionsFromLineOfInput(line));
|
|
73
40
|
return { strings: actions };
|
|
74
41
|
}
|
|
75
42
|
//# sourceMappingURL=cli_utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli_utils.js","sourceRoot":"","sources":["../../src/cli_utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"cli_utils.js","sourceRoot":"","sources":["../../src/cli_utils.ts"],"names":[],"mappings":";;AAWA,sEAKC;AAED,wEASC;AAOD,gCAgBC;AAlDD,4CAA8C;AAC9C,2CAA4E;AAC5E,qDAAgF;AAQhF,MAAM,aAAa,GAAG,kEAAkE,CAAA;AACxF,SAAgB,6BAA6B,CAAC,IAAY;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SACvB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,SAAgB,8BAA8B,CAC5C,cAAkC;IAElC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,YAAY,GAChB,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAChF,OAAO,iCAAqB,CAAC,YAAkD,CAAC,CAAA;AAClF,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAC9B,OAA4B;IAE5B,MAAM,IAAI,GAAG,MAAM,IAAA,eAAS,EAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAkB,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAClE,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC,CAAA,CAAC;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AAC7B,CAAC"}
|
package/dist/cjs/expand.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../src/expand.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expand.d.ts","sourceRoot":"","sources":["../../src/expand.ts"],"names":[],"mappings":"AASA,oBAAY,qBAAqB;IAC/B,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAA;IAEvB;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAA;IAE7B;;;;OAIG;IACH,qBAAqB,EAAE,OAAO,CAAA;IAE9B;;;;;;;OAOG;IACH,qBAAqB,EAAE,qBAAqB,CAAA;CAC7C;AASD;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,qBAAqB,EAAE,MAAM,GAAG,MAAM,EAAE,EACxC,eAAe,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACjD,OAAO,CAAC,MAAM,EAAE,CAAC,CA4FnB"}
|
package/dist/cjs/expand.js
CHANGED
|
@@ -14,7 +14,7 @@ const defaultOptions = {
|
|
|
14
14
|
expandAsterisk: false,
|
|
15
15
|
errorOnInvalidFormat: false,
|
|
16
16
|
errorOnInvalidService: false,
|
|
17
|
-
invalidActionBehavior: InvalidActionBehavior.Remove
|
|
17
|
+
invalidActionBehavior: InvalidActionBehavior.Remove
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
20
|
* Expands an IAM action string that contains wildcards.
|
|
@@ -49,7 +49,7 @@ async function expandIamActions(actionStringOrStrings, overrideOptions) {
|
|
|
49
49
|
const serviceKeys = await (0, iam_data_1.iamServiceKeys)();
|
|
50
50
|
for await (const service of serviceKeys) {
|
|
51
51
|
const serviceActions = await (0, iam_data_1.iamActionsForService)(service);
|
|
52
|
-
allActions.push(...serviceActions.map(action => `${service}:${action}`));
|
|
52
|
+
allActions.push(...serviceActions.map((action) => `${service}:${action}`));
|
|
53
53
|
}
|
|
54
54
|
return allActions;
|
|
55
55
|
}
|
|
@@ -68,8 +68,8 @@ async function expandIamActions(actionStringOrStrings, overrideOptions) {
|
|
|
68
68
|
}
|
|
69
69
|
return [];
|
|
70
70
|
}
|
|
71
|
-
const [service, wildcardActions] = parts.map(part => part.toLowerCase());
|
|
72
|
-
if (!await (0, iam_data_1.iamServiceExists)(service)) {
|
|
71
|
+
const [service, wildcardActions] = parts.map((part) => part.toLowerCase());
|
|
72
|
+
if (!(await (0, iam_data_1.iamServiceExists)(service))) {
|
|
73
73
|
if (options.errorOnInvalidService) {
|
|
74
74
|
throw new Error(`Service not found: ${service}`);
|
|
75
75
|
}
|
|
@@ -77,13 +77,13 @@ async function expandIamActions(actionStringOrStrings, overrideOptions) {
|
|
|
77
77
|
}
|
|
78
78
|
if (wildcardActions.match(util_js_1.allAsterisksPattern)) {
|
|
79
79
|
const actionsForService = await (0, iam_data_1.iamActionsForService)(service);
|
|
80
|
-
return actionsForService.map(action => `${service}:${action}`);
|
|
80
|
+
return actionsForService.map((action) => `${service}:${action}`);
|
|
81
81
|
}
|
|
82
82
|
if (!actionString.includes('*') && !actionString.includes('?')) {
|
|
83
83
|
const actionExists = await (0, iam_data_1.iamActionExists)(service, wildcardActions);
|
|
84
84
|
if (actionExists) {
|
|
85
85
|
const details = await (0, iam_data_1.iamActionDetails)(service, wildcardActions);
|
|
86
|
-
return [service +
|
|
86
|
+
return [service + ':' + details.name];
|
|
87
87
|
}
|
|
88
88
|
if (options.invalidActionBehavior === InvalidActionBehavior.Remove) {
|
|
89
89
|
return [];
|
|
@@ -101,7 +101,9 @@ async function expandIamActions(actionStringOrStrings, overrideOptions) {
|
|
|
101
101
|
}
|
|
102
102
|
const allActions = await (0, iam_data_1.iamActionsForService)(service);
|
|
103
103
|
const regex = (0, util_js_1.convertStringToPattern)(wildcardActions);
|
|
104
|
-
const matchingActions = allActions
|
|
104
|
+
const matchingActions = allActions
|
|
105
|
+
.filter((action) => regex.test(action))
|
|
106
|
+
.map((action) => `${service}:${action}`);
|
|
105
107
|
matchingActions.sort();
|
|
106
108
|
return matchingActions;
|
|
107
109
|
}
|
package/dist/cjs/expand.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/expand.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"expand.js","sourceRoot":"","sources":["../../src/expand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand_file.d.ts","sourceRoot":"","sources":["../../src/expand_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,uBAAuB,EAAE,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"expand_file.d.ts","sourceRoot":"","sources":["../../src/expand_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAGvE,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAMD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAC3C,QAAQ,EAAE,GAAG,EACb,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,GAAG,CAAC,CAmCd"}
|
package/dist/cjs/expand_file.js
CHANGED
|
@@ -30,7 +30,9 @@ async function expandJsonDocument(options, document, key) {
|
|
|
30
30
|
return results;
|
|
31
31
|
}
|
|
32
32
|
if (typeof document === 'object' && document !== null) {
|
|
33
|
-
if (options.invertNotActions &&
|
|
33
|
+
if (options.invertNotActions &&
|
|
34
|
+
document.NotAction &&
|
|
35
|
+
isStringOrArrayofStrings(document.NotAction)) {
|
|
34
36
|
document.Action = (0, invert_js_1.invertIamActions)(document.NotAction);
|
|
35
37
|
delete document.NotAction;
|
|
36
38
|
}
|
|
@@ -48,6 +50,7 @@ async function expandJsonDocument(options, document, key) {
|
|
|
48
50
|
* @returns
|
|
49
51
|
*/
|
|
50
52
|
function isStringOrArrayofStrings(value) {
|
|
51
|
-
return typeof value === 'string' ||
|
|
53
|
+
return (typeof value === 'string' ||
|
|
54
|
+
(Array.isArray(value) && value.length > 0 && typeof value[0] === 'string'));
|
|
52
55
|
}
|
|
53
56
|
//# sourceMappingURL=expand_file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand_file.js","sourceRoot":"","sources":["../../src/expand_file.ts"],"names":[],"mappings":";;AAoBA,
|
|
1
|
+
{"version":3,"file":"expand_file.js","sourceRoot":"","sources":["../../src/expand_file.ts"],"names":[],"mappings":";;AAoBA,gDAuCC;AA3DD,2CAAuE;AACvE,2CAA8C;AAM9C,MAAM,cAAc,GAAwD;IAC1E,gBAAgB,EAAE,KAAK;CACxB,CAAA;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,kBAAkB,CACtC,OAA2C,EAC3C,QAAa,EACb,GAAY;IAEZ,OAAO,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAA;IAE3C,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QAC5C,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,OAAO,IAAA,4BAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,IACE,OAAO,CAAC,gBAAgB;YACxB,QAAQ,CAAC,SAAS;YAClB,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC5C,CAAC;YACD,QAAQ,CAAC,MAAM,GAAG,IAAA,4BAAgB,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YACtD,OAAO,QAAQ,CAAC,SAAS,CAAA;QAC3B,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;QACvE,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,KAAU;IAC1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAC3E,CAAA;AACH,CAAC"}
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC3B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+CAA8D;AAArD,6HAAA,6BAA6B,OAAA;AACtC,yCAIoB;AAHlB,6GAAA,gBAAgB,OAAA;AAIlB,mDAAqF;AAA5E,oHAAA,kBAAkB,OAAA;AAC3B,yCAA8C;AAArC,6GAAA,gBAAgB,OAAA"}
|
package/dist/cjs/invert.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invert.d.ts","sourceRoot":"","sources":["../../src/invert.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;
|
|
1
|
+
{"version":3,"file":"invert.d.ts","sourceRoot":"","sources":["../../src/invert.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;CAAG;AAI3C,wBAAsB,gBAAgB,CACpC,qBAAqB,EAAE,MAAM,GAAG,MAAM,EAAE,EACxC,eAAe,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GACjD,OAAO,CAAC,MAAM,EAAE,CAAC,CA0DnB"}
|
package/dist/cjs/invert.js
CHANGED
|
@@ -12,7 +12,9 @@ async function invertIamActions(actionStringOrStrings, overrideOptions) {
|
|
|
12
12
|
let allActionsFound = false;
|
|
13
13
|
const servicesToExclude = new Set();
|
|
14
14
|
const excludePatterns = {};
|
|
15
|
-
const actionsToInvert = Array.isArray(actionStringOrStrings)
|
|
15
|
+
const actionsToInvert = Array.isArray(actionStringOrStrings)
|
|
16
|
+
? actionStringOrStrings
|
|
17
|
+
: [actionStringOrStrings];
|
|
16
18
|
for (const action of actionsToInvert) {
|
|
17
19
|
if (action.match(util_js_1.allAsterisksPattern)) {
|
|
18
20
|
allActionsFound = true;
|
|
@@ -22,7 +24,7 @@ async function invertIamActions(actionStringOrStrings, overrideOptions) {
|
|
|
22
24
|
if (parts.length !== 2) {
|
|
23
25
|
continue;
|
|
24
26
|
}
|
|
25
|
-
const [service, wildcardActions] = parts.map(part => part.toLowerCase());
|
|
27
|
+
const [service, wildcardActions] = parts.map((part) => part.toLowerCase());
|
|
26
28
|
if (wildcardActions.match(util_js_1.allAsterisksPattern)) {
|
|
27
29
|
servicesToExclude.add(service);
|
|
28
30
|
continue;
|
|
@@ -43,11 +45,13 @@ async function invertIamActions(actionStringOrStrings, overrideOptions) {
|
|
|
43
45
|
const serviceActions = await (0, iam_data_1.iamActionsForService)(serviceKey);
|
|
44
46
|
const excludePatternsForService = excludePatterns[serviceKey] || [];
|
|
45
47
|
if (excludePatternsForService.length === 0) {
|
|
46
|
-
return serviceActions.map(action => `${serviceKey}:${action}`);
|
|
48
|
+
return serviceActions.map((action) => `${serviceKey}:${action}`);
|
|
47
49
|
}
|
|
48
|
-
return serviceActions
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
return serviceActions
|
|
51
|
+
.filter((action) => {
|
|
52
|
+
return !excludePatternsForService.some((pattern) => action.match(pattern));
|
|
53
|
+
})
|
|
54
|
+
.map((action) => `${serviceKey}:${action}`);
|
|
51
55
|
}));
|
|
52
56
|
return Array.from(new Set(actionLists.flat())).sort();
|
|
53
57
|
}
|
package/dist/cjs/invert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invert.js","sourceRoot":"","sources":["../../src/invert.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"invert.js","sourceRoot":"","sources":["../../src/invert.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/util.js
CHANGED
|
@@ -5,7 +5,7 @@ exports.convertStringToPattern = convertStringToPattern;
|
|
|
5
5
|
exports.unescapeUnicodeCharacters = unescapeUnicodeCharacters;
|
|
6
6
|
exports.allAsterisksPattern = /^\*+$/i;
|
|
7
7
|
function convertStringToPattern(actionString) {
|
|
8
|
-
const pattern =
|
|
8
|
+
const pattern = '^' + actionString.replace(/\?/g, '.').replace(/\*/g, '.*?') + '$';
|
|
9
9
|
return new RegExp(pattern, 'i');
|
|
10
10
|
}
|
|
11
11
|
/**
|
package/dist/cjs/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAEA,wDAGC;AAQD,8DAIC;AAjBY,QAAA,mBAAmB,GAAG,QAAQ,CAAA;AAE3C,SAAgB,sBAAsB,CAAC,YAAoB;IACzD,MAAM,OAAO,GAAG,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAA;IAClF,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,GAAW;IACnD,OAAO,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACzD,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAEA,wDAGC;AAQD,8DAIC;AAjBY,QAAA,mBAAmB,GAAG,QAAQ,CAAA;AAE3C,SAAgB,sBAAsB,CAAC,YAAoB;IACzD,MAAM,OAAO,GAAG,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAA;IAClF,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,GAAW;IACnD,OAAO,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACzD,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACJ,CAAC"}
|