@cloud-copilot/iam-shrink 0.1.2 → 0.1.4
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/.github/workflows/guarddog.yml +31 -0
- package/.github/workflows/pr-checks.yml +87 -0
- package/.github/workflows/release.yml +33 -0
- package/.vscode/settings.json +12 -0
- package/CHANGELOG.md +6 -0
- package/LICENSE.txt +68 -81
- package/README.md +45 -35
- package/dist/cjs/cli.d.ts +1 -0
- package/dist/cjs/cli.js +38 -35
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/cli_utils.d.ts +3 -15
- package/dist/cjs/cli_utils.d.ts.map +1 -1
- package/dist/cjs/cli_utils.js +9 -42
- package/dist/cjs/cli_utils.js.map +1 -1
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +3 -3
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/shrink.d.ts.map +1 -1
- package/dist/cjs/shrink.js +28 -29
- package/dist/cjs/shrink.js.map +1 -1
- package/dist/cjs/shrink_file.d.ts +1 -1
- package/dist/cjs/shrink_file.d.ts.map +1 -1
- package/dist/cjs/shrink_file.js.map +1 -1
- package/dist/cjs/validate.d.ts.map +1 -1
- package/dist/cjs/validate.js +1 -1
- package/dist/cjs/validate.js.map +1 -1
- package/dist/esm/cli.d.ts +1 -0
- package/dist/esm/cli.js +41 -38
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli_utils.d.ts +3 -15
- package/dist/esm/cli_utils.d.ts.map +1 -1
- package/dist/esm/cli_utils.js +9 -41
- package/dist/esm/cli_utils.js.map +1 -1
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +3 -3
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/shrink.d.ts.map +1 -1
- package/dist/esm/shrink.js +28 -29
- package/dist/esm/shrink.js.map +1 -1
- package/dist/esm/shrink_file.d.ts +1 -1
- package/dist/esm/shrink_file.d.ts.map +1 -1
- package/dist/esm/shrink_file.js +1 -1
- package/dist/esm/shrink_file.js.map +1 -1
- package/dist/esm/validate.d.ts.map +1 -1
- package/dist/esm/validate.js +2 -2
- package/dist/esm/validate.js.map +1 -1
- package/package.json +72 -3
- package/src/cli.ts +56 -46
- package/src/cli_utils.test.ts +20 -58
- package/src/cli_utils.ts +21 -55
- package/src/errors.ts +14 -10
- package/src/index.ts +3 -4
- package/src/shrink.test.ts +270 -270
- package/src/shrink.ts +166 -134
- package/src/shrink_file.test.ts +4 -4
- package/src/shrink_file.ts +14 -10
- package/src/validate.test.ts +19 -21
- package/src/validate.ts +15 -12
- 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/src/stdin.ts +0 -36
package/dist/esm/cli.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { parseCliArguments } from '@cloud-copilot/cli';
|
|
3
|
+
import { iamDataUpdatedAt, iamDataVersion } from '@cloud-copilot/iam-data';
|
|
4
|
+
import { convertNumberOfIterations, parseStdIn } from './cli_utils.js';
|
|
5
|
+
import { shrink } from './shrink.js';
|
|
5
6
|
const dataPackage = '@cloud-copilot/iam-data';
|
|
6
|
-
async function
|
|
7
|
+
async function shrinkAndPrint(actions, shrinkOptions) {
|
|
7
8
|
try {
|
|
8
9
|
const result = await shrink(actions, shrinkOptions);
|
|
9
10
|
for (const action of result) {
|
|
@@ -15,35 +16,28 @@ async function shrinkAandPrint(actions, shrinkOptions) {
|
|
|
15
16
|
process.exit(1);
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
|
-
function printUsage() {
|
|
19
|
-
console.log('No arguments provided or input from stdin');
|
|
20
|
-
console.log('Usage:');
|
|
21
|
-
console.log(` ${commandName} [options] [action1] [action2] ...`);
|
|
22
|
-
console.log(` <input from stdout> | ${commandName} [options]`);
|
|
23
|
-
console.log('Shrink ActionOptions:');
|
|
24
|
-
console.log(' --iterations: How many iterations of shrinking should be executed, defaults to 2; zero or less means no limit');
|
|
25
|
-
console.log(' Example: --iterations=5');
|
|
26
|
-
console.log(' Example: --iterations=-1');
|
|
27
|
-
console.log('CLI Behavior Options:');
|
|
28
|
-
console.log(' --show-data-version: Print the version of the iam-data package being used and exit');
|
|
29
|
-
console.log(' --read-wait-ms: Millisenconds to wait for the first byte from stdin before timing out.');
|
|
30
|
-
console.log(' Example: --read-wait-ms=10_000');
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
const args = process.argv.slice(2); // Ignore the first two elements
|
|
34
|
-
const actionStrings = [];
|
|
35
|
-
const optionStrings = [];
|
|
36
|
-
for (const arg of args) {
|
|
37
|
-
if (arg.startsWith('--')) {
|
|
38
|
-
optionStrings.push(arg);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
actionStrings.push(arg);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
19
|
async function run() {
|
|
45
|
-
const
|
|
46
|
-
|
|
20
|
+
const cli = parseCliArguments('iam-shrink', {}, {
|
|
21
|
+
iterations: {
|
|
22
|
+
type: 'number',
|
|
23
|
+
description: 'How many iterations of shrinking should be executed, defaults to 2; zero or less means no limit',
|
|
24
|
+
values: 'single'
|
|
25
|
+
},
|
|
26
|
+
readWaitMs: {
|
|
27
|
+
description: 'Milliseconds to wait for the first byte from stdin before timing out',
|
|
28
|
+
values: 'single',
|
|
29
|
+
type: 'number'
|
|
30
|
+
},
|
|
31
|
+
showDataVersion: {
|
|
32
|
+
character: 'v',
|
|
33
|
+
description: 'Print the version of the iam-data package being used and exit',
|
|
34
|
+
values: 'none'
|
|
35
|
+
}
|
|
36
|
+
}, {
|
|
37
|
+
operandsName: 'action',
|
|
38
|
+
allowOperandsFromStdin: true
|
|
39
|
+
});
|
|
40
|
+
if (cli.args.showDataVersion) {
|
|
47
41
|
const version = await iamDataVersion();
|
|
48
42
|
console.log(`${dataPackage} version: ${version}`);
|
|
49
43
|
console.log(`Data last updated: ${await iamDataUpdatedAt()}`);
|
|
@@ -52,9 +46,14 @@ async function run() {
|
|
|
52
46
|
console.log(` npm update -g ${dataPackage}`);
|
|
53
47
|
return;
|
|
54
48
|
}
|
|
49
|
+
const actionStrings = cli.operands;
|
|
50
|
+
const shrinkArgs = { ...cli.args, iterations: convertNumberOfIterations(cli.args.iterations) };
|
|
51
|
+
if (shrinkArgs.iterations === undefined) {
|
|
52
|
+
delete shrinkArgs.iterations;
|
|
53
|
+
}
|
|
55
54
|
if (actionStrings.length === 0) {
|
|
56
55
|
//If no actions are provided, read from stdin
|
|
57
|
-
const stdInResult = await parseStdIn(
|
|
56
|
+
const stdInResult = await parseStdIn(shrinkArgs);
|
|
58
57
|
if (stdInResult.object) {
|
|
59
58
|
console.log(JSON.stringify(stdInResult.object, null, 2));
|
|
60
59
|
return;
|
|
@@ -64,13 +63,17 @@ async function run() {
|
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
65
|
if (actionStrings.length > 0) {
|
|
67
|
-
await
|
|
66
|
+
await shrinkAndPrint(actionStrings, shrinkArgs);
|
|
68
67
|
return;
|
|
69
68
|
}
|
|
70
|
-
|
|
69
|
+
console.log('No actions provided or input from stdin');
|
|
70
|
+
cli.printHelp();
|
|
71
71
|
}
|
|
72
|
-
run()
|
|
72
|
+
run()
|
|
73
|
+
.catch((e) => {
|
|
73
74
|
console.error(e);
|
|
74
75
|
process.exit(1);
|
|
75
|
-
})
|
|
76
|
+
})
|
|
77
|
+
.then(() => { })
|
|
78
|
+
.finally(() => { });
|
|
76
79
|
//# sourceMappingURL=cli.js.map
|
package/dist/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/cli_utils.d.ts
CHANGED
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
import { ShrinkOptions } from
|
|
1
|
+
import { ShrinkOptions } from './shrink.js';
|
|
2
2
|
interface CliOptions extends ShrinkOptions {
|
|
3
3
|
showDataVersion: boolean;
|
|
4
|
-
readWaitMs:
|
|
4
|
+
readWaitMs: number;
|
|
5
5
|
}
|
|
6
|
-
|
|
7
|
-
* Convert a dash-case string to camelCase
|
|
8
|
-
* @param str the string to convert
|
|
9
|
-
* @returns the camelCase string
|
|
10
|
-
*/
|
|
11
|
-
export declare function dashToCamelCase(str: string): string;
|
|
12
|
-
/**
|
|
13
|
-
* Convert an array of option strings to an object
|
|
14
|
-
*
|
|
15
|
-
* @param optionArgs the array of option strings to convert
|
|
16
|
-
* @returns the object representation of the options
|
|
17
|
-
*/
|
|
18
|
-
export declare function convertOptions(optionArgs: string[]): Partial<CliOptions>;
|
|
6
|
+
export declare function convertNumberOfIterations(iterations: number | undefined): number | undefined;
|
|
19
7
|
export declare function extractActionsFromLineOfInput(line: string): string[];
|
|
20
8
|
/**
|
|
21
9
|
* Parse the actions from stdin
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli_utils.d.ts","sourceRoot":"","sources":["../../src/cli_utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli_utils.d.ts","sourceRoot":"","sources":["../../src/cli_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,UAAU,UAAW,SAAQ,aAAa;IACxC,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM5F;AAGD,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMpE;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/esm/cli_utils.js
CHANGED
|
@@ -1,43 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* @returns the camelCase string
|
|
7
|
-
*/
|
|
8
|
-
export function dashToCamelCase(str) {
|
|
9
|
-
str = str.substring(2);
|
|
10
|
-
return str.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Convert an array of option strings to an object
|
|
14
|
-
*
|
|
15
|
-
* @param optionArgs the array of option strings to convert
|
|
16
|
-
* @returns the object representation of the options
|
|
17
|
-
*/
|
|
18
|
-
export function convertOptions(optionArgs) {
|
|
19
|
-
const options = {};
|
|
20
|
-
for (const option of optionArgs) {
|
|
21
|
-
let key = option;
|
|
22
|
-
let value = true;
|
|
23
|
-
if (option.includes('=')) {
|
|
24
|
-
[key, value] = option.split('=');
|
|
25
|
-
}
|
|
26
|
-
options[dashToCamelCase(key)] = value;
|
|
1
|
+
import { readStdin } from '@cloud-copilot/cli';
|
|
2
|
+
import { shrinkJsonDocument } from './shrink_file.js';
|
|
3
|
+
export function convertNumberOfIterations(iterations) {
|
|
4
|
+
if (iterations != undefined && iterations <= 0) {
|
|
5
|
+
return Infinity;
|
|
27
6
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (isNaN(iterationNumber)) {
|
|
31
|
-
delete options.iterations;
|
|
32
|
-
}
|
|
33
|
-
else if (iterationNumber <= 0) {
|
|
34
|
-
options.iterations = Infinity;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
options.iterations = iterationNumber;
|
|
38
|
-
}
|
|
7
|
+
else {
|
|
8
|
+
return iterations;
|
|
39
9
|
}
|
|
40
|
-
return options;
|
|
41
10
|
}
|
|
42
11
|
const actionPattern = /\:?([a-zA-Z0-9-]+:[a-zA-Z0-9*]+)/g;
|
|
43
12
|
export function extractActionsFromLineOfInput(line) {
|
|
@@ -52,8 +21,7 @@ export function extractActionsFromLineOfInput(line) {
|
|
|
52
21
|
* @returns an array of strings from stdin
|
|
53
22
|
*/
|
|
54
23
|
export async function parseStdIn(options) {
|
|
55
|
-
const
|
|
56
|
-
const data = await readStdin(delay);
|
|
24
|
+
const data = await readStdin(options.readWaitMs);
|
|
57
25
|
if (data.length === 0) {
|
|
58
26
|
return {};
|
|
59
27
|
}
|
|
@@ -63,7 +31,7 @@ export async function parseStdIn(options) {
|
|
|
63
31
|
}
|
|
64
32
|
catch (err) { }
|
|
65
33
|
const lines = data.split('\n');
|
|
66
|
-
const actions = lines.flatMap(line => extractActionsFromLineOfInput(line));
|
|
34
|
+
const actions = lines.flatMap((line) => extractActionsFromLineOfInput(line));
|
|
67
35
|
return { strings: actions };
|
|
68
36
|
}
|
|
69
37
|
//# 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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAOrD,MAAM,UAAU,yBAAyB,CAAC,UAA8B;IACtE,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAAG,mCAAmC,CAAA;AACzD,MAAM,UAAU,6BAA6B,CAAC,IAAY;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAE5C,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;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAA4B;IAE5B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,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,kBAAkB,CAAC,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/esm/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAmCA,qBAAa,qBAAsB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAmCA,qBAAa,qBAAsB,SAAQ,KAAK;aAS5B,eAAe,EAAE,MAAM,EAAE;aACzB,UAAU,EAAE,MAAM;IATpC;;;;;;OAMG;gBAEe,eAAe,EAAE,MAAM,EAAE,EACzB,UAAU,EAAE,MAAM;CAUrC"}
|
package/dist/esm/errors.js
CHANGED
|
@@ -40,11 +40,11 @@ export class ShrinkValidationError extends Error {
|
|
|
40
40
|
constructor(desiredPatterns, errorMatch) {
|
|
41
41
|
super([
|
|
42
42
|
`@cloud-copilot/iam-shrink has failed validation and this is a bug.`,
|
|
43
|
-
`Please file a bug at ${bugUrl(desiredPatterns, errorMatch)}
|
|
44
|
-
].join(
|
|
43
|
+
`Please file a bug at ${bugUrl(desiredPatterns, errorMatch)}`
|
|
44
|
+
].join('\n'));
|
|
45
45
|
this.desiredPatterns = desiredPatterns;
|
|
46
46
|
this.errorMatch = errorMatch;
|
|
47
|
-
this.name =
|
|
47
|
+
this.name = 'ShrinkValidationError'; // Set the name of the error
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
//# sourceMappingURL=errors.js.map
|
package/dist/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,wDAAwD,CAAA;AAE3E;;;;GAIG;AACH,SAAS,QAAQ,CAAC,UAAkB;IAClC,OAAO,+BAA+B,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,wDAAwD,CAAA;AAE3E;;;;GAIG;AACH,SAAS,QAAQ,CAAC,UAAkB;IAClC,OAAO,+BAA+B,UAAU,EAAE,CAAA;AACpD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,OAAO,CAAC,UAAkB,EAAE,eAAyB;IAC5D,OAAO,GAAG,UAAU,6BAA6B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAA;AACpF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,MAAM,CAAC,eAAyB,EAAE,UAAkB;IAC3D,OAAO,GAAG,UAAU,qBAAqB,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,CAAA;AACtJ,CAAC;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C;;;;;;OAMG;IACH,YACkB,eAAyB,EACzB,UAAkB;QAElC,KAAK,CACH;YACE,oEAAoE;YACpE,wBAAwB,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE;SAC9D,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;QARe,oBAAe,GAAf,eAAe,CAAU;QACzB,eAAU,GAAV,UAAU,CAAQ;QAQlC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA,CAAC,4BAA4B;IAClE,CAAC;CACF"}
|
package/dist/esm/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,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/esm/shrink.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../src/shrink.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAsB,MAAM,
|
|
1
|
+
{"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../src/shrink.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAsB,MAAM,CAC1B,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GACrC,OAAO,CAAC,MAAM,EAAE,CAAC,CAqCnB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EAAE,GAChB,GAAG,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAWlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,EAAE,MAAM,EAAE,EACzB,UAAU,EAAE,MAAM,GACjB,MAAM,EAAE,CAiCV;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,EAAE,EACxB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,IAAI,EAAE,OAAO,GACZ,MAAM,EAAE,CAuBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CAoER;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAQjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAK5D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAc5F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EAAE,GAChB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CAc3D;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAsBxE"}
|
package/dist/esm/shrink.js
CHANGED
|
@@ -19,21 +19,21 @@ const defaultOptions = {
|
|
|
19
19
|
*/
|
|
20
20
|
export async function shrink(desiredPatterns, shrinkOptions) {
|
|
21
21
|
//Check for an all actions wildcard
|
|
22
|
-
const wildCard = desiredPatterns.find(pattern => collapseAsterisks(pattern) === '*');
|
|
22
|
+
const wildCard = desiredPatterns.find((pattern) => collapseAsterisks(pattern) === '*');
|
|
23
23
|
if (wildCard) {
|
|
24
|
-
return [
|
|
24
|
+
return ['*'];
|
|
25
25
|
}
|
|
26
26
|
const options = { ...defaultOptions, ...shrinkOptions };
|
|
27
|
-
const targetActions = await expandIamActions(desiredPatterns
|
|
27
|
+
const targetActions = await expandIamActions(desiredPatterns);
|
|
28
28
|
const expandedActionsByService = groupActionsByService(targetActions);
|
|
29
29
|
const services = Array.from(expandedActionsByService.keys()).sort();
|
|
30
30
|
const reducedActions = [];
|
|
31
31
|
for (const service of services) {
|
|
32
32
|
const desiredActions = expandedActionsByService.get(service);
|
|
33
|
-
const possibleActions = mapActions(await expandIamActions(`${service}
|
|
33
|
+
const possibleActions = mapActions(await expandIamActions(`${service}:*`));
|
|
34
34
|
const reducedServiceActions = shrinkResolvedList(desiredActions.withoutService, possibleActions, options.iterations);
|
|
35
35
|
//Validation
|
|
36
|
-
const reducedServiceActionsWithService = reducedServiceActions.map(action => `${service}:${action}`);
|
|
36
|
+
const reducedServiceActionsWithService = reducedServiceActions.map((action) => `${service}:${action}`);
|
|
37
37
|
const invalidMatch = await validateShrinkResults(desiredActions.withService, reducedServiceActionsWithService);
|
|
38
38
|
if (invalidMatch) {
|
|
39
39
|
throw new ShrinkValidationError(desiredPatterns, invalidMatch);
|
|
@@ -49,7 +49,7 @@ export async function shrink(desiredPatterns, shrinkOptions) {
|
|
|
49
49
|
* @returns an array of just the action strings such as ['GetObject', 'DescribeInstances']
|
|
50
50
|
*/
|
|
51
51
|
export function mapActions(actions) {
|
|
52
|
-
return actions.map(action => action.split(
|
|
52
|
+
return actions.map((action) => action.split(':')[1]);
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
55
|
* Groups an array of service:action strings by service
|
|
@@ -63,8 +63,8 @@ export function mapActions(actions) {
|
|
|
63
63
|
*/
|
|
64
64
|
export function groupActionsByService(actions) {
|
|
65
65
|
const serviceMap = new Map();
|
|
66
|
-
actions.forEach(actionString => {
|
|
67
|
-
const [service, action] = actionString.split(
|
|
66
|
+
actions.forEach((actionString) => {
|
|
67
|
+
const [service, action] = actionString.split(':');
|
|
68
68
|
if (!serviceMap.has(service)) {
|
|
69
69
|
serviceMap.set(service, { withService: [], withoutService: [] });
|
|
70
70
|
}
|
|
@@ -84,10 +84,10 @@ export function groupActionsByService(actions) {
|
|
|
84
84
|
*/
|
|
85
85
|
export function shrinkResolvedList(desiredActions, possibleActions, iterations) {
|
|
86
86
|
const desiredActionSet = new Set(desiredActions);
|
|
87
|
-
const undesiredActions = possibleActions.filter(action => !desiredActionSet.has(action));
|
|
87
|
+
const undesiredActions = possibleActions.filter((action) => !desiredActionSet.has(action));
|
|
88
88
|
if (undesiredActions.length === 0) {
|
|
89
89
|
// If there are no undesired actions, that means we want all actions
|
|
90
|
-
return [
|
|
90
|
+
return ['*'];
|
|
91
91
|
}
|
|
92
92
|
// Iteratively shrink based on the most commmon sequence until we can't shrink anymore
|
|
93
93
|
let previousActionListLength = desiredActions.length;
|
|
@@ -121,8 +121,7 @@ export function shrinkResolvedList(desiredActions, possibleActions, iterations)
|
|
|
121
121
|
*/
|
|
122
122
|
export function shrinkIteration(desiredActions, undesiredActions, deep) {
|
|
123
123
|
// Find all common words in the strings in the desiredActions array
|
|
124
|
-
const commonSequences = findCommonSequences(desiredActions).filter(sequence => sequence.sequence !=
|
|
125
|
-
;
|
|
124
|
+
const commonSequences = findCommonSequences(desiredActions).filter((sequence) => sequence.sequence != '*');
|
|
126
125
|
commonSequences.sort((a, b) => {
|
|
127
126
|
return b.frequency - a.frequency;
|
|
128
127
|
});
|
|
@@ -130,7 +129,7 @@ export function shrinkIteration(desiredActions, undesiredActions, deep) {
|
|
|
130
129
|
// Reduce the actions based on the common sequences
|
|
131
130
|
let reducedActions = desiredActions;
|
|
132
131
|
for (const sequence of sequencesToProcess) {
|
|
133
|
-
const reducedIteration = Array.from(new Set(reducedActions.map(action => reduceAction(action, sequence.sequence, undesiredActions))));
|
|
132
|
+
const reducedIteration = Array.from(new Set(reducedActions.map((action) => reduceAction(action, sequence.sequence, undesiredActions))));
|
|
134
133
|
reducedActions = consolidateWildcardPatterns(reducedIteration);
|
|
135
134
|
}
|
|
136
135
|
return reducedActions;
|
|
@@ -155,8 +154,8 @@ export function reduceAction(desiredAction, sequence, undesiredActions) {
|
|
|
155
154
|
const tempArray = testArray.slice();
|
|
156
155
|
//Iterate though ever following element and see if replacing the sequence with the first common sequence results in a failure
|
|
157
156
|
for (let i = 1; i < testArray.length; i++) {
|
|
158
|
-
tempArray[i] =
|
|
159
|
-
const tempString = collapseAsterisks(tempArray.join(
|
|
157
|
+
tempArray[i] = '*';
|
|
158
|
+
const tempString = collapseAsterisks(tempArray.join(''));
|
|
160
159
|
const problemMatch = wildcardActionMatchesAnyString(tempString, undesiredActions);
|
|
161
160
|
if (problemMatch) {
|
|
162
161
|
// Stopping here seems to work the best
|
|
@@ -171,8 +170,8 @@ export function reduceAction(desiredAction, sequence, undesiredActions) {
|
|
|
171
170
|
const tempArray = testArray.slice();
|
|
172
171
|
//Iterate through the array backwards and see if replace the items with * results in a failure
|
|
173
172
|
for (let i = testArray.length - 2; i >= 0; i--) {
|
|
174
|
-
tempArray[i] =
|
|
175
|
-
const tempString = collapseAsterisks(tempArray.join(
|
|
173
|
+
tempArray[i] = '*';
|
|
174
|
+
const tempString = collapseAsterisks(tempArray.join(''));
|
|
176
175
|
const problemMatch = wildcardActionMatchesAnyString(tempString, undesiredActions);
|
|
177
176
|
if (problemMatch) {
|
|
178
177
|
// Stopping here seems to work the best
|
|
@@ -186,8 +185,8 @@ export function reduceAction(desiredAction, sequence, undesiredActions) {
|
|
|
186
185
|
const tempArray = testArray.slice();
|
|
187
186
|
//Iterate forward through the array and see if replacing the items with * results in a failure
|
|
188
187
|
for (let i = indexOfSequence + 1; i < testArray.length; i++) {
|
|
189
|
-
tempArray[i] =
|
|
190
|
-
const tempString = collapseAsterisks(tempArray.join(
|
|
188
|
+
tempArray[i] = '*';
|
|
189
|
+
const tempString = collapseAsterisks(tempArray.join(''));
|
|
191
190
|
const problemMatch = wildcardActionMatchesAnyString(tempString, undesiredActions);
|
|
192
191
|
if (problemMatch) {
|
|
193
192
|
//This replacement cased a prolem match, so revert it before going backwards in the strings
|
|
@@ -199,8 +198,8 @@ export function reduceAction(desiredAction, sequence, undesiredActions) {
|
|
|
199
198
|
}
|
|
200
199
|
//Iterate through the array backwards and see if replace the items with * results in a failure
|
|
201
200
|
for (let i = indexOfSequence - 1; i >= 0; i--) {
|
|
202
|
-
tempArray[i] =
|
|
203
|
-
const tempString = collapseAsterisks(tempArray.join(
|
|
201
|
+
tempArray[i] = '*';
|
|
202
|
+
const tempString = collapseAsterisks(tempArray.join(''));
|
|
204
203
|
const problemMatch = wildcardActionMatchesAnyString(tempString, undesiredActions);
|
|
205
204
|
if (problemMatch) {
|
|
206
205
|
// Stopping here seems to work the best
|
|
@@ -228,7 +227,7 @@ export function collapseAsterisks(wildcardAction) {
|
|
|
228
227
|
*/
|
|
229
228
|
export function regexForWildcardAction(wildcardAction) {
|
|
230
229
|
wildcardAction = collapseAsterisks(wildcardAction);
|
|
231
|
-
const pattern =
|
|
230
|
+
const pattern = '^' + wildcardAction.replace(/\*/g, '.*?') + '$';
|
|
232
231
|
return new RegExp(pattern, 'i');
|
|
233
232
|
}
|
|
234
233
|
/**
|
|
@@ -272,9 +271,9 @@ export function splitActionIntoParts(input) {
|
|
|
272
271
|
*/
|
|
273
272
|
export function countSubstrings(substrings, actions) {
|
|
274
273
|
const substringCount = new Map();
|
|
275
|
-
substrings.forEach(substring => {
|
|
274
|
+
substrings.forEach((substring) => {
|
|
276
275
|
let count = 0;
|
|
277
|
-
actions.forEach(action => {
|
|
276
|
+
actions.forEach((action) => {
|
|
278
277
|
if (action.includes(substring)) {
|
|
279
278
|
count++;
|
|
280
279
|
}
|
|
@@ -293,8 +292,8 @@ export function countSubstrings(substrings, actions) {
|
|
|
293
292
|
*/
|
|
294
293
|
export function findCommonSequences(actions) {
|
|
295
294
|
const allSubstrings = new Set();
|
|
296
|
-
actions.forEach(action => {
|
|
297
|
-
splitActionIntoParts(action).forEach(substring => allSubstrings.add(substring));
|
|
295
|
+
actions.forEach((action) => {
|
|
296
|
+
splitActionIntoParts(action).forEach((substring) => allSubstrings.add(substring));
|
|
298
297
|
});
|
|
299
298
|
const substringCount = countSubstrings(Array.from(allSubstrings), actions);
|
|
300
299
|
const result = [];
|
|
@@ -319,12 +318,12 @@ export function consolidateWildcardPatterns(patterns) {
|
|
|
319
318
|
let consolidatedPatterns = [];
|
|
320
319
|
for (const pattern of patterns) {
|
|
321
320
|
//If it's already covered, skip it
|
|
322
|
-
const coveredByExistingPattern = consolidatedPatterns.some(consolidated => matchesPattern(consolidated, pattern));
|
|
321
|
+
const coveredByExistingPattern = consolidatedPatterns.some((consolidated) => matchesPattern(consolidated, pattern));
|
|
323
322
|
if (coveredByExistingPattern) {
|
|
324
323
|
continue;
|
|
325
324
|
}
|
|
326
325
|
//If it subsumes any existing patterns, remove them
|
|
327
|
-
consolidatedPatterns = consolidatedPatterns.filter(consolidated => !matchesPattern(pattern, consolidated));
|
|
326
|
+
consolidatedPatterns = consolidatedPatterns.filter((consolidated) => !matchesPattern(pattern, consolidated));
|
|
328
327
|
consolidatedPatterns.push(pattern);
|
|
329
328
|
}
|
|
330
329
|
return consolidatedPatterns;
|
|
@@ -336,7 +335,7 @@ export function consolidateWildcardPatterns(patterns) {
|
|
|
336
335
|
* @returns true if the specific string matches the general pattern
|
|
337
336
|
*/
|
|
338
337
|
function matchesPattern(general, specific) {
|
|
339
|
-
const regex = new RegExp(
|
|
338
|
+
const regex = new RegExp('^' + general.replace(/\*/g, '.*') + '$');
|
|
340
339
|
return regex.test(specific);
|
|
341
340
|
}
|
|
342
341
|
//# sourceMappingURL=shrink.js.map
|
package/dist/esm/shrink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shrink.js","sourceRoot":"","sources":["../../src/shrink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"shrink.js","sourceRoot":"","sources":["../../src/shrink.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shrink_file.d.ts","sourceRoot":"","sources":["../../src/shrink_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"shrink_file.d.ts","sourceRoot":"","sources":["../../src/shrink_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,aAAa,CAAA;AAEnD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,EAC/B,QAAQ,EAAE,GAAG,EACb,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,GAAG,CAAC,CA0Bd"}
|
package/dist/esm/shrink_file.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shrink_file.js","sourceRoot":"","sources":["../../src/shrink_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"shrink_file.js","sourceRoot":"","sources":["../../src/shrink_file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA+B,EAC/B,QAAa,EACb,GAAY;IAEZ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QAC5C,sCAAsC;QACtC,2CAA2C;QAC3C,IAAI;QACJ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtF,OAAO,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClC,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,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;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,cAAc,EAAE,MAAM,EAAE,EACxB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B"}
|
package/dist/esm/validate.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { expandIamActions } from
|
|
1
|
+
import { expandIamActions } from '@cloud-copilot/iam-expand';
|
|
2
2
|
/**
|
|
3
3
|
* Checks a list of patterns against a list of desired actions to validate:
|
|
4
4
|
* * All desired actions are matched by the patterns
|
|
@@ -10,7 +10,7 @@ import { expandIamActions } from "@cloud-copilot/iam-expand";
|
|
|
10
10
|
*/
|
|
11
11
|
export async function validateShrinkResults(desiredActions, patterns) {
|
|
12
12
|
const desiredActionSet = new Set(desiredActions);
|
|
13
|
-
const expandedAfterActions = await expandIamActions(patterns
|
|
13
|
+
const expandedAfterActions = await expandIamActions(patterns);
|
|
14
14
|
const expandedAfterActionSet = new Set(expandedAfterActions);
|
|
15
15
|
for (const afterAction of expandedAfterActions) {
|
|
16
16
|
if (!desiredActionSet.has(afterAction)) {
|
package/dist/esm/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,cAAwB,EACxB,QAAkB;IAElB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAA;IAChD,MAAM,oBAAoB,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAC7D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAC5D,KAAK,MAAM,WAAW,IAAI,oBAAoB,EAAE,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,OAAO,qBAAqB,WAAW,EAAE,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/C,OAAO,kBAAkB,aAAa,EAAE,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|