@actsecurity/iam-simulate 0.1.194 → 0.1.195
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/dist/cjs/simulation_engine/policyResources.d.ts +9 -6
- package/dist/cjs/simulation_engine/policyResources.d.ts.map +1 -1
- package/dist/cjs/simulation_engine/policyResources.js +38 -11
- package/dist/cjs/simulation_engine/policyResources.js.map +1 -1
- package/dist/cjs/simulation_engine/simulationEngine.d.ts.map +1 -1
- package/dist/cjs/simulation_engine/simulationEngine.js +15 -1
- package/dist/cjs/simulation_engine/simulationEngine.js.map +1 -1
- package/dist/esm/simulation_engine/policyResources.d.ts +9 -6
- package/dist/esm/simulation_engine/policyResources.d.ts.map +1 -1
- package/dist/esm/simulation_engine/policyResources.js +38 -11
- package/dist/esm/simulation_engine/policyResources.js.map +1 -1
- package/dist/esm/simulation_engine/simulationEngine.d.ts.map +1 -1
- package/dist/esm/simulation_engine/simulationEngine.js +15 -1
- package/dist/esm/simulation_engine/simulationEngine.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,20 +9,22 @@ import { type PolicyWithName } from '../core_engine/CoreSimulatorEngine.js';
|
|
|
9
9
|
* @param resourceType The resource type to filter resource strings by
|
|
10
10
|
* @param resourceArnPattern The resource ARN pattern to match against
|
|
11
11
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
12
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
12
13
|
* @returns Array of unique resource strings that match the criteria
|
|
13
14
|
*/
|
|
14
|
-
export declare function getMatchingResourceStringsForPolicies(policies: (PolicyWithName | undefined)[], action: string, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean): string[];
|
|
15
|
+
export declare function getMatchingResourceStringsForPolicies(policies: (PolicyWithName | undefined)[], action: string, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean, effect?: 'allow' | 'deny'): string[];
|
|
15
16
|
/**
|
|
16
|
-
* Extracts resource strings from a
|
|
17
|
+
* Extracts resource strings from a policy statement with the requested effect on the action.
|
|
17
18
|
*
|
|
18
19
|
* @param statement The policy statement to analyze
|
|
19
|
-
* @param action The action to
|
|
20
|
+
* @param action The action to match against the statement
|
|
20
21
|
* @param resourceType The resource type to filter by
|
|
21
22
|
* @param resourceArnPattern The resource ARN pattern to match
|
|
22
23
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
23
|
-
* @
|
|
24
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
25
|
+
* @returns Array of resource strings, or empty array if the statement does not match the action and effect
|
|
24
26
|
*/
|
|
25
|
-
export declare function getResourceStringsFromStatement(statement: Statement, action: string, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean): string[];
|
|
27
|
+
export declare function getResourceStringsFromStatement(statement: Statement, action: string, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean, effect?: 'allow' | 'deny'): string[];
|
|
26
28
|
/**
|
|
27
29
|
* Extracts resource strings from a statement's Resource or NotResource elements that match the given criteria.
|
|
28
30
|
*
|
|
@@ -30,9 +32,10 @@ export declare function getResourceStringsFromStatement(statement: Statement, ac
|
|
|
30
32
|
* @param resourceType The resource type to filter by
|
|
31
33
|
* @param resourceArnPattern The resource ARN pattern to check for overlap
|
|
32
34
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
35
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
33
36
|
* @returns Array of matching resource strings, or ['*'] for certain NotResource cases
|
|
34
37
|
*/
|
|
35
|
-
export declare function statementResourceStringsForResourceTypeAndPattern(statement: Statement, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean): string[];
|
|
38
|
+
export declare function statementResourceStringsForResourceTypeAndPattern(statement: Statement, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean, effect?: 'allow' | 'deny'): string[];
|
|
36
39
|
/**
|
|
37
40
|
* Determines if a policy statement allows the specified action.
|
|
38
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policyResources.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/policyResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAG3E
|
|
1
|
+
{"version":3,"file":"policyResources.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/policyResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAG3E;;;;;;;;;;GAUG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,EAAE,EACxC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,GAAE,OAAO,GAAG,MAAgB,GACjC,MAAM,EAAE,CAqBV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,GAAE,OAAO,GAAG,MAAgB,GACjC,MAAM,EAAE,CAeV;AAED;;;;;;;;;GASG;AACH,wBAAgB,iDAAiD,CAC/D,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,GAAE,OAAO,GAAG,MAAgB,GACjC,MAAM,EAAE,CAmCV;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAkBnF"}
|
|
@@ -14,16 +14,17 @@ const resourceStrings_js_1 = require("../util/resourceStrings.js");
|
|
|
14
14
|
* @param resourceType The resource type to filter resource strings by
|
|
15
15
|
* @param resourceArnPattern The resource ARN pattern to match against
|
|
16
16
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
17
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
17
18
|
* @returns Array of unique resource strings that match the criteria
|
|
18
19
|
*/
|
|
19
|
-
function getMatchingResourceStringsForPolicies(policies, action, resourceType, resourceArnPattern, shouldExpandShortArns) {
|
|
20
|
+
function getMatchingResourceStringsForPolicies(policies, action, resourceType, resourceArnPattern, shouldExpandShortArns, effect = 'allow') {
|
|
20
21
|
const resourceStrings = new Set();
|
|
21
22
|
for (const policy of policies) {
|
|
22
23
|
if (!policy) {
|
|
23
24
|
continue;
|
|
24
25
|
}
|
|
25
26
|
for (const statement of policy.statements()) {
|
|
26
|
-
const stmtResourceStrings = getResourceStringsFromStatement(statement, action, resourceType, resourceArnPattern, shouldExpandShortArns);
|
|
27
|
+
const stmtResourceStrings = getResourceStringsFromStatement(statement, action, resourceType, resourceArnPattern, shouldExpandShortArns, effect);
|
|
27
28
|
for (const rs of stmtResourceStrings) {
|
|
28
29
|
resourceStrings.add(rs);
|
|
29
30
|
}
|
|
@@ -32,18 +33,22 @@ function getMatchingResourceStringsForPolicies(policies, action, resourceType, r
|
|
|
32
33
|
return Array.from(resourceStrings);
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
|
-
* Extracts resource strings from a
|
|
36
|
+
* Extracts resource strings from a policy statement with the requested effect on the action.
|
|
36
37
|
*
|
|
37
38
|
* @param statement The policy statement to analyze
|
|
38
|
-
* @param action The action to
|
|
39
|
+
* @param action The action to match against the statement
|
|
39
40
|
* @param resourceType The resource type to filter by
|
|
40
41
|
* @param resourceArnPattern The resource ARN pattern to match
|
|
41
42
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
42
|
-
* @
|
|
43
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
44
|
+
* @returns Array of resource strings, or empty array if the statement does not match the action and effect
|
|
43
45
|
*/
|
|
44
|
-
function getResourceStringsFromStatement(statement, action, resourceType, resourceArnPattern, shouldExpandShortArns) {
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
function getResourceStringsFromStatement(statement, action, resourceType, resourceArnPattern, shouldExpandShortArns, effect = 'allow') {
|
|
47
|
+
const actionMatches = effect === 'allow'
|
|
48
|
+
? statementAllowsAction(statement, action)
|
|
49
|
+
: statementDeniesAction(statement, action);
|
|
50
|
+
if (actionMatches) {
|
|
51
|
+
return statementResourceStringsForResourceTypeAndPattern(statement, resourceType, resourceArnPattern, shouldExpandShortArns, effect);
|
|
47
52
|
}
|
|
48
53
|
return [];
|
|
49
54
|
}
|
|
@@ -54,10 +59,12 @@ function getResourceStringsFromStatement(statement, action, resourceType, resour
|
|
|
54
59
|
* @param resourceType The resource type to filter by
|
|
55
60
|
* @param resourceArnPattern The resource ARN pattern to check for overlap
|
|
56
61
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
62
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
57
63
|
* @returns Array of matching resource strings, or ['*'] for certain NotResource cases
|
|
58
64
|
*/
|
|
59
|
-
function statementResourceStringsForResourceTypeAndPattern(statement, resourceType, resourceArnPattern, shouldExpandShortArns) {
|
|
60
|
-
|
|
65
|
+
function statementResourceStringsForResourceTypeAndPattern(statement, resourceType, resourceArnPattern, shouldExpandShortArns, effect = 'allow') {
|
|
66
|
+
const hasRequestedEffect = effect === 'allow' ? statement.isAllow() : statement.isDeny();
|
|
67
|
+
if (statement.isResourceStatement() && hasRequestedEffect) {
|
|
61
68
|
const resourceStrings = [];
|
|
62
69
|
for (const stmtResource of statement.resources()) {
|
|
63
70
|
const effectiveValue = shouldExpandShortArns
|
|
@@ -71,7 +78,7 @@ function statementResourceStringsForResourceTypeAndPattern(statement, resourceTy
|
|
|
71
78
|
}
|
|
72
79
|
return resourceStrings;
|
|
73
80
|
}
|
|
74
|
-
if (statement.isNotResourceStatement() &&
|
|
81
|
+
if (statement.isNotResourceStatement() && hasRequestedEffect) {
|
|
75
82
|
for (const stmtNotResource of statement.notResources()) {
|
|
76
83
|
const effectiveValue = shouldExpandShortArns
|
|
77
84
|
? (0, resourceStrings_js_1.expandShortArn)(stmtNotResource.value())
|
|
@@ -113,6 +120,26 @@ function statementAllowsAction(statement, action) {
|
|
|
113
120
|
}
|
|
114
121
|
return false;
|
|
115
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Determines if an explicit deny statement applies to an action.
|
|
125
|
+
*
|
|
126
|
+
* @param statement The policy statement to check
|
|
127
|
+
* @param action The action to test against the statement
|
|
128
|
+
* @returns true when the deny statement applies to the action
|
|
129
|
+
*/
|
|
130
|
+
function statementDeniesAction(statement, action) {
|
|
131
|
+
if (statement.isActionStatement() && statement.isDeny()) {
|
|
132
|
+
return statement
|
|
133
|
+
.actions()
|
|
134
|
+
.some((statementAction) => (0, iam_utils_1.actionMatchesPattern)(action, statementAction.value()));
|
|
135
|
+
}
|
|
136
|
+
if (statement.isNotActionStatement() && statement.isDeny()) {
|
|
137
|
+
return !statement
|
|
138
|
+
.notActions()
|
|
139
|
+
.some((statementAction) => (0, iam_utils_1.actionMatchesPattern)(action, statementAction.value()));
|
|
140
|
+
}
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
116
143
|
function isResourceArnSuperset(arnSuperset, arnSubset) {
|
|
117
144
|
const regexSuperset = (0, iam_utils_1.resourceArnWithWildcardsToRegex)(arnSuperset);
|
|
118
145
|
return regexSuperset.test(arnSubset);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policyResources.js","sourceRoot":"","sources":["../../../src/simulation_engine/policyResources.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"policyResources.js","sourceRoot":"","sources":["../../../src/simulation_engine/policyResources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulationEngine.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAQL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAA;AAahC,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAQ5E,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAiB/D,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAA;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IACxD,0BAA0B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAC9D,2BAA2B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAC/D,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAC5D,oBAAoB,CAAC,EAAE,eAAe,EAAE,CAAA;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IACrD,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,eAAe,CAAA;IAEzB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE7B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,gCAAiC,SAAQ,wBAAwB;IAChF;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,CAAA;IAEnB;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,UAAU,EAAE,QAAQ,CAAA;IAEpB;;OAEG;IACH,aAAa,EAAE,gBAAgB,CAAA;IAE/B;;OAEG;IACH,MAAM,EAAE,wBAAwB,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD;;;OAGG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;;OAGG;IACH,aAAa,EAAE,gBAAgB,CAAA;IAE/B;;;;;OAKG;IACH,OAAO,EAAE,gCAAgC,EAAE,CAAA;CAC5C;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC9B,qBAAqB,GAAG,8BAA8B,GAAG,iCAAiC,CAAA;AAE5F;;GAEG;AACH,MAAM,MAAM,8BAA8B,GACxC,8BAA8B,GAAG,iCAAiC,CAAA;AAEpE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAA;AA2CrE;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAC5C,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"simulationEngine.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -321,6 +321,15 @@ async function runSimulation(simulation, simulationOptions) {
|
|
|
321
321
|
});
|
|
322
322
|
const identityPoliciesThatGrantAccess = [...identityPolicies];
|
|
323
323
|
const resourcePoliciesThatGrantAccess = [resourcePolicy];
|
|
324
|
+
const policiesThatCanDenyAccess = [
|
|
325
|
+
...identityPolicies,
|
|
326
|
+
sessionPolicy,
|
|
327
|
+
...(vpcEndpointPolicies ?? []),
|
|
328
|
+
...serviceControlPolicies.flatMap((controlPolicies) => controlPolicies.policies),
|
|
329
|
+
...resourceControlPolicies.flatMap((controlPolicies) => controlPolicies.policies),
|
|
330
|
+
...(permissionBoundaries ?? []),
|
|
331
|
+
resourcePolicy
|
|
332
|
+
];
|
|
324
333
|
// If there is only one simulation to run, run it
|
|
325
334
|
if (!runMultipleSimulations) {
|
|
326
335
|
const { validContextValues, ignoredContextKeys } = await normalizeSimulationParameters(simulation, undefined);
|
|
@@ -357,8 +366,13 @@ async function runSimulation(simulation, simulationOptions) {
|
|
|
357
366
|
// overlapping identity, resource, and guardrail policy statements.
|
|
358
367
|
const identityResourceStrings = (0, policyResources_js_1.getMatchingResourceStringsForPolicies)(identityPoliciesThatGrantAccess, simulation.request.action, resourceType, simulation.request.resource.resource, true);
|
|
359
368
|
const resourcePolicyResourceStrings = (0, policyResources_js_1.getMatchingResourceStringsForPolicies)(resourcePoliciesThatGrantAccess, simulation.request.action, resourceType, simulation.request.resource.resource, false);
|
|
369
|
+
const deniedResourceStrings = (0, policyResources_js_1.getMatchingResourceStringsForPolicies)(policiesThatCanDenyAccess, simulation.request.action, resourceType, simulation.request.resource.resource, false, 'deny');
|
|
360
370
|
const resourceStrings = [
|
|
361
|
-
...new Set([
|
|
371
|
+
...new Set([
|
|
372
|
+
...identityResourceStrings,
|
|
373
|
+
...resourcePolicyResourceStrings,
|
|
374
|
+
...deniedResourceStrings
|
|
375
|
+
])
|
|
362
376
|
];
|
|
363
377
|
for (const resourceString of resourceStrings) {
|
|
364
378
|
const simulationResult = curriedAuthorize(resourceString, validContextValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulationEngine.js","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":";;AA2OA,sCAwXC;AAED,sEAgDC;AArpBD,oDAK8B;AAC9B,wDASgC;AAChC,sDAA2F;AAC3F,2EAAmF;AACnF,2EAAwE;AACxE,mEAA2F;AAC3F,yGAAkG;AAClG,kFAM8C;AAE9C,sDAAsD;AACtD,4DAAyD;AACzD,qDAA+D;AAC/D,yDAA2D;AAC3D,6DAA4E;AAC5E,mEAA2D;AAC3D,yDAA8D;AAC9D,mDAIwB;AAGxB,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,8EAA8E;IACnF,MAAM,EAAE;QACN,OAAO,EAAE,YAAY;QACrB,SAAS,EAAE;YACT;gBACE,MAAM,EAAE,OAAO;gBACf,SAAS,EAAE,GAAG;gBACd,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,GAAG;aACd;SACF;KACF;CACF,CAAA;AAmID;;;;;;;GAOG;AACH,SAAS,eAAe,CACtB,MAAW,EACX,UAA8C;IAE9C,IAAI,IAAA,8BAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAS,gCAAgC,CAAC,UAAsB;IAC9D,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;IAChD,CAAC;IACD,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IACnD,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,UAAU,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CACjC,UAAsB,EACtB,iBAA6C;IAE7C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAA;IAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAA;IACxD,MAAM,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAErD,IAAI,CAAC,IAAA,4CAA4B,EAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE;gBACN,OAAO,EAAE,mBAAmB;aAC7B;SACF,CAAA;IACH,CAAC;IAED,IAAI,IAAA,2CAA2B,EAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,sBAAsB,GAAG,gCAAgC,CAAC,UAAU,CAAC,CAAA;QAC3E,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE;oBACN,sBAAsB;oBACtB,OAAO,EACL,sBAAsB,CAAC,MAAM,KAAK,CAAC;wBACjC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;wBAC3B,CAAC,CAAC,4BAA4B;iBACnC;aACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QAC7B,IACE,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,CAAC,IAAA,wBAAY,EAAC,SAAS,CAAC,IAAI,CAAC,IAAA,4BAAgB,EAAC,SAAS,CAAC,IAAI,CAAC,IAAA,8BAAkB,EAAC,SAAS,CAAC,CAAC,EAC5F,CAAC;YACD,OAAO;gBACL,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE;oBACN,OAAO,EAAE,kCAAkC;iBAC5C;aACF,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,UAAU,CAAC,aAAa;QAClD,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,aAAa,EAAE,mCAAsB,CAAC;QACnE,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa;QAC5C,CAAC,CAAC,IAAA,uBAAU,EAAC,UAAU,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QACjE,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,oBAAoB,GAAsC,EAAE,CAAA;IAClE,MAAM,gBAAgB,GAAqB,EAAE,CAAA;IAC7C,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;QAC9B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,EAAE,mCAAsB,CAAC,CAAA;QACxE,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,gBAAgB,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;QAC/C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,0BAA0B,GAAsC,EAAE,CAAA;IACxE,MAAM,sBAAsB,GAAsB,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9F,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAA;QAC9B,MAAM,aAAa,GAAqB,EAAE,CAAA;QAE1C,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;YAC9B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,EAAE,yCAA4B,CAAC,CAAA;YAC9E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,0BAA0B,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;YACrD,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAClD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,aAAa;SACxB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,2BAA2B,GAAsC,EAAE,CAAA;IACzE,MAAM,uBAAuB,GAAsB,UAAU,CAAC,uBAAuB,CAAC,GAAG,CACvF,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAA;QAC9B,MAAM,aAAa,GAAqB,EAAE,CAAA;QAC1C,aAAa,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,WAAW,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAE7E,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;YAC9B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,EAAE,0CAA6B,CAAC,CAAA;YAC/E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,2BAA2B,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;YACtD,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YAClD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,aAAa;SACxB,CAAA;IACH,CAAC,CACF,CAAA;IAED,MAAM,oBAAoB,GAAG,UAAU,CAAC,cAAc;QACpD,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,EAAE,mCAAsB,CAAC;QACpE,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,oBAAoB,GAAiC,UAAU,CAAC,0BAA0B;QAC9F,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,wBAAwB,GAAsC,EAAE,CAAA;IACtE,UAAU,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAChD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAC3B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,EAAE,mCAAsB,CAAC,CAAA;QACxE,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,oBAAqB,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC1D,CAAC;aAAM,CAAC;YACN,wBAAwB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;QACnD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,mBAAmB,GAAiC,UAAU,CAAC,mBAAmB;QACtF,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,iBAAiB,GAAsC,EAAE,CAAA;IAC/D,UAAU,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE;QACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAA;QACvC,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,EAAE,mCAAsB,CAAC,CAAA;QACxE,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACjC,mBAAoB,CAAC,IAAI,CAAC,IAAA,uBAAU,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;QAC5C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IACE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,GAAG,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,GAAG,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC;QACzC,oBAAoB,CAAC,MAAM,GAAG,CAAC;QAC/B,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAC9B,CAAC;QACD,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE;gBACN,GAAG,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;gBAC9D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC;gBAC7E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,0BAA0B,EAAE,CAAC;gBACzF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,2BAA2B,EAAE,CAAC;gBAC3F,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,oBAAoB,EAAE,CAAC;gBAChE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,wBAAwB,EAAE,CAAC;gBACrF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;gBACvE,OAAO,EAAE,eAAe;aACzB;SACF,CAAA;IACH,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc;QAC9C,CAAC,CAAC,IAAA,uBAAU,EAAmB,UAAU,CAAC,cAAc,EAAE;YACtD,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,IAAI;SACrC,CAAC;QACJ,CAAC,CAAC,SAAS,CAAA;IAEb,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9D,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAgB,EAAC,OAAO,CAAC,CAAA;IACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE;gBACN,OAAO,EAAE,iBAAiB;aAC3B;SACF,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAe,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE;gBACN,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,IAAA,2BAAgB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7D,MAAM,oBAAoB,GAAG,aAAa,CAAC,cAAc,CAAA;IACzD,MAAM,yBAAyB,GAAG,aAAa,CAAC,SAAS,KAAK,IAAI,CAAA;IAClE,MAAM,sBAAsB,GAAG,mBAAmB,IAAI,CAAC,oBAAoB,CAAA;IAC3E,IAAI,aAAa,GAA+B,SAAS,CAAA;IACzD,IAAI,oBAAoB,EAAE,CAAC;QACzB,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;YACxB,OAAO;gBACL,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE;oBACN,OAAO,EAAE,mBAAmB;iBAC7B;aACF,CAAA;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,mBAAmB,GAAG,MAAM,IAAA,4CAAyB,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;QACzF,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;gBACL,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE;oBACN,OAAO,EAAE,mBAAmB;iBAC7B;aACF,CAAA;QACH,CAAC;aAAM,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAClE,OAAO;gBACL,UAAU,EAAE,OAAO;gBACnB,MAAM,EAAE;oBACN,OAAO,EAAE,yBAAyB;iBACnC;aACF,CAAA;QACH,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,6CAAoB,CAAC,QAAQ,CAClD,iBAAiB,CAAC,cAAgC,CACnD;QACC,CAAC,CAAE,iBAAiB,CAAC,cAAiC;QACtD,CAAC,CAAC,QAAQ,CAAA;IAEZ,yFAAyF;IAEzF,MAAM,8BAA8B,GAClC,cAAc,KAAK,WAAW;QAC5B,CAAC,CAAC,IAAI,kEAA8B,CAAC,iBAAiB,CAAC,8BAA8B,IAAI,EAAE,CAAC;QAC5F,CAAC,CAAC,IAAI,kEAA8B,CAAC,EAAE,CAAC,CAAA;IAE5C,MAAM,gBAAgB,GAAG,CACvB,qBAA6B,EAC7B,oBAAuD,EACvD,EAAE,CACF,IAAA,kCAAS,EAAC;QACR,OAAO,EAAE,IAAI,2BAAc,CACzB,SAAS,EACT;YACE,QAAQ,EAAE,IAAA,mCAAc,EAAC,qBAAqB,CAAC;YAC/C,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS;SACjD,EACD,UAAU,CAAC,OAAO,CAAC,MAAM,EACzB,IAAI,sCAAkB,CAAC,oBAAoB,CAAC,EAC5C,oBAAoB,EACpB,yBAAyB,CAC1B;QACD,aAAa;QACb,gBAAgB;QAChB,sBAAsB;QACtB,uBAAuB;QACvB,cAAc;QACd,oBAAoB;QACpB,mBAAmB;QACnB,oBAAoB,EAAE;YACpB,cAAc,EAAE,cAAc;YAC9B,8BAA8B;SAC/B;QACD,eAAe,EAAE;YACf,EAAE,EAAE;gBACF,iBAAiB,EAAE,UAAU,CAAC,kBAAkB,EAAE,EAAE,EAAE,iBAAiB;aACxE;SACF;KACF,CAAC,CAAA;IAEJ,MAAM,+BAA+B,GAAmC,CAAC,GAAG,gBAAgB,CAAC,CAAA;IAC7F,MAAM,+BAA+B,GAAmC,CAAC,cAAc,CAAC,CAAA;IAExF,iDAAiD;IACjD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,MAAM,6BAA6B,CACpF,UAAU,EACV,SAAS,CACV,CAAA;QACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QACtE,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,aAAa,EAAE,YAAY,CAAC,MAAM;YAClC,MAAM,EAAE;gBACN,QAAQ,EAAE,YAAY;gBACtB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAc,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,kBAAkB;aACnB;SACF,CAAA;IACH,CAAC;IAED,iHAAiH;IACjH,MAAM,iBAAiB,GAAuC,EAAE,CAAA;IAChE,MAAM,uBAAuB,GAC3B,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;IAChE,KAAK,MAAM,YAAY,IAAI,uBAAuB,EAAE,CAAC;QACnD,2GAA2G;QAE3G,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,GAAG,MAAM,6BAA6B,CACpF,UAAU,EACV,YAAY,CACb,CAAA;QAED,iCAAiC;QACjC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QAC5E,IAAI,kBAAkB,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YACrD,iBAAiB,CAAC,IAAI,CAAC;gBACrB,QAAQ,EAAE,kBAAkB;gBAC5B,kBAAkB;gBAClB,YAAY,EAAE,YAAY,CAAC,GAAG;gBAC9B,eAAe,EAAE,WAAW;aAC7B,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,kBAAkB,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;YAC5D,6FAA6F;YAC7F,0FAA0F;YAC1F,mEAAmE;YACnE,MAAM,uBAAuB,GAAG,IAAA,0DAAqC,EACnE,+BAA+B,EAC/B,UAAU,CAAC,OAAO,CAAC,MAAM,EACzB,YAAY,EACZ,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACpC,IAAI,CACL,CAAA;YACD,MAAM,6BAA6B,GAAG,IAAA,0DAAqC,EACzE,+BAA+B,EAC/B,UAAU,CAAC,OAAO,CAAC,MAAM,EACzB,YAAY,EACZ,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACpC,KAAK,CACN,CAAA;YACD,MAAM,eAAe,GAAG;gBACtB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,uBAAuB,EAAE,GAAG,6BAA6B,CAAC,CAAC;aAC3E,CAAA;YAED,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;gBAC7C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;gBAC7E,MAAM,gBAAgB,GACpB,gBAAgB,CAAC,MAAM,KAAK,SAAS;oBACnC,CAAC,CAAC,IAAA,uDAAgC,EAAC;wBAC/B,gBAAgB,CAAC,UAAU;wBAC3B,kBAAkB,CAAC,UAAU;qBAC9B,CAAC;oBACJ,CAAC,CAAC,SAAS,CAAA;gBAEf,iBAAiB,CAAC,IAAI,CAAC;oBACrB,QAAQ,EAAE,gBAAgB;wBACxB,CAAC,CAAC,EAAE,GAAG,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;wBACvD,CAAC,CAAC,gBAAgB;oBACpB,kBAAkB;oBAClB,YAAY,EAAE,YAAY,CAAC,GAAG;oBAC9B,eAAe,EAAE,cAAc;iBAChC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,yCAAsB,EAAC,iBAAiB,CAAC,CAAA;IAC/D,OAAO;QACL,UAAU,EAAE,UAAU;QACtB,aAAa;QACb,OAAO,EAAE,iBAAiB;KAC3B,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,6BAA6B,CACjD,UAAsB,EACtB,qBAA+C;IAK/C,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAA;IACxD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACvC,MAAM,IAAA,6CAA4B,EAChC,OAAO,EACP,MAAM,EACN,WAAW,EACX,CAAC,CAAC,UAAU,CAAC,kBAAkB,EAAE,EAAE,EAAE,iBAAiB,EACtD,qBAAqB,CACtB,CACF,CAAA;IAED,4FAA4F;IAC5F,MAAM,kBAAkB,GAAsC,EAAE,CAAA;IAChE,MAAM,kBAAkB,GAAa,EAAE,CAAA;IACvC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QACtC,IACE,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC;YAC3C,uBAAuB,CAAC,YAAY,EAAE,yBAAyB,CAAC,EAChE,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,IAAA,kCAAiB,EAAC,YAAY,CAAC,CAAA;YAC3D,MAAM,aAAa,GAAG,MAAM,IAAA,wCAAuB,EAAC,GAAG,CAAC,CAAA;YAExD,IAAI,IAAA,wCAAmB,EAAC,aAAa,CAAC,EAAE,CAAC;gBACvC,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;YACpD,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9C,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,aAAa,CAAC,GAAG,KAAK,CAAA;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,OAAO;QACL,kBAAkB;QAClB,kBAAkB;KACnB,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,YAAoB,EAAE,gBAA6B;IAClF,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACjD,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAA;IACzD,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"simulationEngine.js","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,20 +9,22 @@ import { type PolicyWithName } from '../core_engine/CoreSimulatorEngine.js';
|
|
|
9
9
|
* @param resourceType The resource type to filter resource strings by
|
|
10
10
|
* @param resourceArnPattern The resource ARN pattern to match against
|
|
11
11
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
12
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
12
13
|
* @returns Array of unique resource strings that match the criteria
|
|
13
14
|
*/
|
|
14
|
-
export declare function getMatchingResourceStringsForPolicies(policies: (PolicyWithName | undefined)[], action: string, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean): string[];
|
|
15
|
+
export declare function getMatchingResourceStringsForPolicies(policies: (PolicyWithName | undefined)[], action: string, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean, effect?: 'allow' | 'deny'): string[];
|
|
15
16
|
/**
|
|
16
|
-
* Extracts resource strings from a
|
|
17
|
+
* Extracts resource strings from a policy statement with the requested effect on the action.
|
|
17
18
|
*
|
|
18
19
|
* @param statement The policy statement to analyze
|
|
19
|
-
* @param action The action to
|
|
20
|
+
* @param action The action to match against the statement
|
|
20
21
|
* @param resourceType The resource type to filter by
|
|
21
22
|
* @param resourceArnPattern The resource ARN pattern to match
|
|
22
23
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
23
|
-
* @
|
|
24
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
25
|
+
* @returns Array of resource strings, or empty array if the statement does not match the action and effect
|
|
24
26
|
*/
|
|
25
|
-
export declare function getResourceStringsFromStatement(statement: Statement, action: string, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean): string[];
|
|
27
|
+
export declare function getResourceStringsFromStatement(statement: Statement, action: string, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean, effect?: 'allow' | 'deny'): string[];
|
|
26
28
|
/**
|
|
27
29
|
* Extracts resource strings from a statement's Resource or NotResource elements that match the given criteria.
|
|
28
30
|
*
|
|
@@ -30,9 +32,10 @@ export declare function getResourceStringsFromStatement(statement: Statement, ac
|
|
|
30
32
|
* @param resourceType The resource type to filter by
|
|
31
33
|
* @param resourceArnPattern The resource ARN pattern to check for overlap
|
|
32
34
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
35
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
33
36
|
* @returns Array of matching resource strings, or ['*'] for certain NotResource cases
|
|
34
37
|
*/
|
|
35
|
-
export declare function statementResourceStringsForResourceTypeAndPattern(statement: Statement, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean): string[];
|
|
38
|
+
export declare function statementResourceStringsForResourceTypeAndPattern(statement: Statement, resourceType: ResourceType, resourceArnPattern: string, shouldExpandShortArns: boolean, effect?: 'allow' | 'deny'): string[];
|
|
36
39
|
/**
|
|
37
40
|
* Determines if a policy statement allows the specified action.
|
|
38
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policyResources.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/policyResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAG3E
|
|
1
|
+
{"version":3,"file":"policyResources.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/policyResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMxD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uCAAuC,CAAA;AAG3E;;;;;;;;;;GAUG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,CAAC,cAAc,GAAG,SAAS,CAAC,EAAE,EACxC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,GAAE,OAAO,GAAG,MAAgB,GACjC,MAAM,EAAE,CAqBV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,GAAE,OAAO,GAAG,MAAgB,GACjC,MAAM,EAAE,CAeV;AAED;;;;;;;;;GASG;AACH,wBAAgB,iDAAiD,CAC/D,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,OAAO,EAC9B,MAAM,GAAE,OAAO,GAAG,MAAgB,GACjC,MAAM,EAAE,CAmCV;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAkBnF"}
|
|
@@ -11,16 +11,17 @@ import { expandShortArn, resourceArnsOverlap } from '../util/resourceStrings.js'
|
|
|
11
11
|
* @param resourceType The resource type to filter resource strings by
|
|
12
12
|
* @param resourceArnPattern The resource ARN pattern to match against
|
|
13
13
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
14
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
14
15
|
* @returns Array of unique resource strings that match the criteria
|
|
15
16
|
*/
|
|
16
|
-
export function getMatchingResourceStringsForPolicies(policies, action, resourceType, resourceArnPattern, shouldExpandShortArns) {
|
|
17
|
+
export function getMatchingResourceStringsForPolicies(policies, action, resourceType, resourceArnPattern, shouldExpandShortArns, effect = 'allow') {
|
|
17
18
|
const resourceStrings = new Set();
|
|
18
19
|
for (const policy of policies) {
|
|
19
20
|
if (!policy) {
|
|
20
21
|
continue;
|
|
21
22
|
}
|
|
22
23
|
for (const statement of policy.statements()) {
|
|
23
|
-
const stmtResourceStrings = getResourceStringsFromStatement(statement, action, resourceType, resourceArnPattern, shouldExpandShortArns);
|
|
24
|
+
const stmtResourceStrings = getResourceStringsFromStatement(statement, action, resourceType, resourceArnPattern, shouldExpandShortArns, effect);
|
|
24
25
|
for (const rs of stmtResourceStrings) {
|
|
25
26
|
resourceStrings.add(rs);
|
|
26
27
|
}
|
|
@@ -29,18 +30,22 @@ export function getMatchingResourceStringsForPolicies(policies, action, resource
|
|
|
29
30
|
return Array.from(resourceStrings);
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
32
|
-
* Extracts resource strings from a
|
|
33
|
+
* Extracts resource strings from a policy statement with the requested effect on the action.
|
|
33
34
|
*
|
|
34
35
|
* @param statement The policy statement to analyze
|
|
35
|
-
* @param action The action to
|
|
36
|
+
* @param action The action to match against the statement
|
|
36
37
|
* @param resourceType The resource type to filter by
|
|
37
38
|
* @param resourceArnPattern The resource ARN pattern to match
|
|
38
39
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
39
|
-
* @
|
|
40
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
41
|
+
* @returns Array of resource strings, or empty array if the statement does not match the action and effect
|
|
40
42
|
*/
|
|
41
|
-
export function getResourceStringsFromStatement(statement, action, resourceType, resourceArnPattern, shouldExpandShortArns) {
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
export function getResourceStringsFromStatement(statement, action, resourceType, resourceArnPattern, shouldExpandShortArns, effect = 'allow') {
|
|
44
|
+
const actionMatches = effect === 'allow'
|
|
45
|
+
? statementAllowsAction(statement, action)
|
|
46
|
+
: statementDeniesAction(statement, action);
|
|
47
|
+
if (actionMatches) {
|
|
48
|
+
return statementResourceStringsForResourceTypeAndPattern(statement, resourceType, resourceArnPattern, shouldExpandShortArns, effect);
|
|
44
49
|
}
|
|
45
50
|
return [];
|
|
46
51
|
}
|
|
@@ -51,10 +56,12 @@ export function getResourceStringsFromStatement(statement, action, resourceType,
|
|
|
51
56
|
* @param resourceType The resource type to filter by
|
|
52
57
|
* @param resourceArnPattern The resource ARN pattern to check for overlap
|
|
53
58
|
* @param shouldExpandShortArns Whether to expand short ARNs (fewer than 6 segments) by padding with wildcards
|
|
59
|
+
* @param effect Statement effect to extract, defaulting to allow
|
|
54
60
|
* @returns Array of matching resource strings, or ['*'] for certain NotResource cases
|
|
55
61
|
*/
|
|
56
|
-
export function statementResourceStringsForResourceTypeAndPattern(statement, resourceType, resourceArnPattern, shouldExpandShortArns) {
|
|
57
|
-
|
|
62
|
+
export function statementResourceStringsForResourceTypeAndPattern(statement, resourceType, resourceArnPattern, shouldExpandShortArns, effect = 'allow') {
|
|
63
|
+
const hasRequestedEffect = effect === 'allow' ? statement.isAllow() : statement.isDeny();
|
|
64
|
+
if (statement.isResourceStatement() && hasRequestedEffect) {
|
|
58
65
|
const resourceStrings = [];
|
|
59
66
|
for (const stmtResource of statement.resources()) {
|
|
60
67
|
const effectiveValue = shouldExpandShortArns
|
|
@@ -68,7 +75,7 @@ export function statementResourceStringsForResourceTypeAndPattern(statement, res
|
|
|
68
75
|
}
|
|
69
76
|
return resourceStrings;
|
|
70
77
|
}
|
|
71
|
-
if (statement.isNotResourceStatement() &&
|
|
78
|
+
if (statement.isNotResourceStatement() && hasRequestedEffect) {
|
|
72
79
|
for (const stmtNotResource of statement.notResources()) {
|
|
73
80
|
const effectiveValue = shouldExpandShortArns
|
|
74
81
|
? expandShortArn(stmtNotResource.value())
|
|
@@ -110,6 +117,26 @@ export function statementAllowsAction(statement, action) {
|
|
|
110
117
|
}
|
|
111
118
|
return false;
|
|
112
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Determines if an explicit deny statement applies to an action.
|
|
122
|
+
*
|
|
123
|
+
* @param statement The policy statement to check
|
|
124
|
+
* @param action The action to test against the statement
|
|
125
|
+
* @returns true when the deny statement applies to the action
|
|
126
|
+
*/
|
|
127
|
+
function statementDeniesAction(statement, action) {
|
|
128
|
+
if (statement.isActionStatement() && statement.isDeny()) {
|
|
129
|
+
return statement
|
|
130
|
+
.actions()
|
|
131
|
+
.some((statementAction) => actionMatchesPattern(action, statementAction.value()));
|
|
132
|
+
}
|
|
133
|
+
if (statement.isNotActionStatement() && statement.isDeny()) {
|
|
134
|
+
return !statement
|
|
135
|
+
.notActions()
|
|
136
|
+
.some((statementAction) => actionMatchesPattern(action, statementAction.value()));
|
|
137
|
+
}
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
113
140
|
function isResourceArnSuperset(arnSuperset, arnSubset) {
|
|
114
141
|
const regexSuperset = resourceArnWithWildcardsToRegex(arnSuperset);
|
|
115
142
|
return regexSuperset.test(arnSubset);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policyResources.js","sourceRoot":"","sources":["../../../src/simulation_engine/policyResources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAkB,MAAM,yBAAyB,CAAA;AACxD,OAAO,EACL,oBAAoB,EACpB,+BAA+B,EAC/B,wCAAwC,EACzC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAuB,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhF
|
|
1
|
+
{"version":3,"file":"policyResources.js","sourceRoot":"","sources":["../../../src/simulation_engine/policyResources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulationEngine.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAQL,KAAK,eAAe,EACrB,MAAM,yBAAyB,CAAA;AAahC,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAQ5E,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAiB/D,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAA;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IACxD,0BAA0B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAC9D,2BAA2B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAC/D,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IAC5D,oBAAoB,CAAC,EAAE,eAAe,EAAE,CAAA;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;IACrD,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,eAAe,CAAA;IAEzB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE7B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,gCAAiC,SAAQ,wBAAwB;IAChF;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,CAAA;IAEnB;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,UAAU,EAAE,QAAQ,CAAA;IAEpB;;OAEG;IACH,aAAa,EAAE,gBAAgB,CAAA;IAE/B;;OAEG;IACH,MAAM,EAAE,wBAAwB,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD;;;OAGG;IACH,UAAU,EAAE,UAAU,CAAA;IAEtB;;;OAGG;IACH,aAAa,EAAE,gBAAgB,CAAA;IAE/B;;;;;OAKG;IACH,OAAO,EAAE,gCAAgC,EAAE,CAAA;CAC5C;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC9B,qBAAqB,GAAG,8BAA8B,GAAG,iCAAiC,CAAA;AAE5F;;GAEG;AACH,MAAM,MAAM,8BAA8B,GACxC,8BAA8B,GAAG,iCAAiC,CAAA;AAEpE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAA;AA2CrE;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAC5C,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"simulationEngine.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -319,6 +319,15 @@ export async function runSimulation(simulation, simulationOptions) {
|
|
|
319
319
|
});
|
|
320
320
|
const identityPoliciesThatGrantAccess = [...identityPolicies];
|
|
321
321
|
const resourcePoliciesThatGrantAccess = [resourcePolicy];
|
|
322
|
+
const policiesThatCanDenyAccess = [
|
|
323
|
+
...identityPolicies,
|
|
324
|
+
sessionPolicy,
|
|
325
|
+
...(vpcEndpointPolicies ?? []),
|
|
326
|
+
...serviceControlPolicies.flatMap((controlPolicies) => controlPolicies.policies),
|
|
327
|
+
...resourceControlPolicies.flatMap((controlPolicies) => controlPolicies.policies),
|
|
328
|
+
...(permissionBoundaries ?? []),
|
|
329
|
+
resourcePolicy
|
|
330
|
+
];
|
|
322
331
|
// If there is only one simulation to run, run it
|
|
323
332
|
if (!runMultipleSimulations) {
|
|
324
333
|
const { validContextValues, ignoredContextKeys } = await normalizeSimulationParameters(simulation, undefined);
|
|
@@ -355,8 +364,13 @@ export async function runSimulation(simulation, simulationOptions) {
|
|
|
355
364
|
// overlapping identity, resource, and guardrail policy statements.
|
|
356
365
|
const identityResourceStrings = getMatchingResourceStringsForPolicies(identityPoliciesThatGrantAccess, simulation.request.action, resourceType, simulation.request.resource.resource, true);
|
|
357
366
|
const resourcePolicyResourceStrings = getMatchingResourceStringsForPolicies(resourcePoliciesThatGrantAccess, simulation.request.action, resourceType, simulation.request.resource.resource, false);
|
|
367
|
+
const deniedResourceStrings = getMatchingResourceStringsForPolicies(policiesThatCanDenyAccess, simulation.request.action, resourceType, simulation.request.resource.resource, false, 'deny');
|
|
358
368
|
const resourceStrings = [
|
|
359
|
-
...new Set([
|
|
369
|
+
...new Set([
|
|
370
|
+
...identityResourceStrings,
|
|
371
|
+
...resourcePolicyResourceStrings,
|
|
372
|
+
...deniedResourceStrings
|
|
373
|
+
])
|
|
360
374
|
];
|
|
361
375
|
for (const resourceString of resourceStrings) {
|
|
362
376
|
const simulationResult = curriedAuthorize(resourceString, validContextValues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulationEngine.js","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simulationEngine.js","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"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"}
|