@cloud-copilot/iam-simulate 0.1.0
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 +661 -0
- package/README.md +5 -0
- package/dist/cjs/StatementAnalysis.d.ts +27 -0
- package/dist/cjs/StatementAnalysis.d.ts.map +1 -0
- package/dist/cjs/StatementAnalysis.js +3 -0
- package/dist/cjs/StatementAnalysis.js.map +1 -0
- package/dist/cjs/action/action.d.ts +27 -0
- package/dist/cjs/action/action.d.ts.map +1 -0
- package/dist/cjs/action/action.js +72 -0
- package/dist/cjs/action/action.js.map +1 -0
- package/dist/cjs/action.d.ts +4 -0
- package/dist/cjs/action.d.ts.map +1 -0
- package/dist/cjs/action.js +21 -0
- package/dist/cjs/action.js.map +1 -0
- package/dist/cjs/condition/BaseConditionOperator.d.ts +8 -0
- package/dist/cjs/condition/BaseConditionOperator.d.ts.map +1 -0
- package/dist/cjs/condition/BaseConditionOperator.js +3 -0
- package/dist/cjs/condition/BaseConditionOperator.js.map +1 -0
- package/dist/cjs/condition/arn/ArnEquals.d.ts +3 -0
- package/dist/cjs/condition/arn/ArnEquals.d.ts.map +1 -0
- package/dist/cjs/condition/arn/ArnEquals.js +11 -0
- package/dist/cjs/condition/arn/ArnEquals.js.map +1 -0
- package/dist/cjs/condition/arn/ArnLike.d.ts +3 -0
- package/dist/cjs/condition/arn/ArnLike.d.ts.map +1 -0
- package/dist/cjs/condition/arn/ArnLike.js +50 -0
- package/dist/cjs/condition/arn/ArnLike.js.map +1 -0
- package/dist/cjs/condition/arn/ArnNotEquals.d.ts +3 -0
- package/dist/cjs/condition/arn/ArnNotEquals.d.ts.map +1 -0
- package/dist/cjs/condition/arn/ArnNotEquals.js +11 -0
- package/dist/cjs/condition/arn/ArnNotEquals.js.map +1 -0
- package/dist/cjs/condition/arn/ArnNotLike.d.ts +3 -0
- package/dist/cjs/condition/arn/ArnNotLike.d.ts.map +1 -0
- package/dist/cjs/condition/arn/ArnNotLike.js +13 -0
- package/dist/cjs/condition/arn/ArnNotLike.js.map +1 -0
- package/dist/cjs/condition/baseConditionperatorTests.d.ts +12 -0
- package/dist/cjs/condition/baseConditionperatorTests.d.ts.map +1 -0
- package/dist/cjs/condition/baseConditionperatorTests.js +21 -0
- package/dist/cjs/condition/baseConditionperatorTests.js.map +1 -0
- package/dist/cjs/condition/binary/BinaryEquals.d.ts +7 -0
- package/dist/cjs/condition/binary/BinaryEquals.d.ts.map +1 -0
- package/dist/cjs/condition/binary/BinaryEquals.js +16 -0
- package/dist/cjs/condition/binary/BinaryEquals.js.map +1 -0
- package/dist/cjs/condition/boolean/Bool.d.ts +3 -0
- package/dist/cjs/condition/boolean/Bool.d.ts.map +1 -0
- package/dist/cjs/condition/boolean/Bool.js +20 -0
- package/dist/cjs/condition/boolean/Bool.js.map +1 -0
- package/dist/cjs/condition/condition.d.ts +6 -0
- package/dist/cjs/condition/condition.d.ts.map +1 -0
- package/dist/cjs/condition/condition.js +123 -0
- package/dist/cjs/condition/condition.js.map +1 -0
- package/dist/cjs/condition/date/DateEquals.d.ts +3 -0
- package/dist/cjs/condition/date/DateEquals.d.ts.map +1 -0
- package/dist/cjs/condition/date/DateEquals.js +17 -0
- package/dist/cjs/condition/date/DateEquals.js.map +1 -0
- package/dist/cjs/condition/date/DateGreaterThan.d.ts +3 -0
- package/dist/cjs/condition/date/DateGreaterThan.d.ts.map +1 -0
- package/dist/cjs/condition/date/DateGreaterThan.js +17 -0
- package/dist/cjs/condition/date/DateGreaterThan.js.map +1 -0
- package/dist/cjs/condition/date/DateGreaterThanEquals.d.ts +3 -0
- package/dist/cjs/condition/date/DateGreaterThanEquals.d.ts.map +1 -0
- package/dist/cjs/condition/date/DateGreaterThanEquals.js +17 -0
- package/dist/cjs/condition/date/DateGreaterThanEquals.js.map +1 -0
- package/dist/cjs/condition/date/DateLessThan.d.ts +3 -0
- package/dist/cjs/condition/date/DateLessThan.d.ts.map +1 -0
- package/dist/cjs/condition/date/DateLessThan.js +17 -0
- package/dist/cjs/condition/date/DateLessThan.js.map +1 -0
- package/dist/cjs/condition/date/DateLessThanEquals.d.ts +3 -0
- package/dist/cjs/condition/date/DateLessThanEquals.d.ts.map +1 -0
- package/dist/cjs/condition/date/DateLessThanEquals.js +17 -0
- package/dist/cjs/condition/date/DateLessThanEquals.js.map +1 -0
- package/dist/cjs/condition/date/DateNotEquals.d.ts +3 -0
- package/dist/cjs/condition/date/DateNotEquals.d.ts.map +1 -0
- package/dist/cjs/condition/date/DateNotEquals.js +29 -0
- package/dist/cjs/condition/date/DateNotEquals.js.map +1 -0
- package/dist/cjs/condition/date/date.d.ts +17 -0
- package/dist/cjs/condition/date/date.d.ts.map +1 -0
- package/dist/cjs/condition/date/date.js +42 -0
- package/dist/cjs/condition/date/date.js.map +1 -0
- package/dist/cjs/condition/ipaddress/IpAddress.d.ts +3 -0
- package/dist/cjs/condition/ipaddress/IpAddress.d.ts.map +1 -0
- package/dist/cjs/condition/ipaddress/IpAddress.js +27 -0
- package/dist/cjs/condition/ipaddress/IpAddress.js.map +1 -0
- package/dist/cjs/condition/ipaddress/NotIpAddress.d.ts +3 -0
- package/dist/cjs/condition/ipaddress/NotIpAddress.d.ts.map +1 -0
- package/dist/cjs/condition/ipaddress/NotIpAddress.js +31 -0
- package/dist/cjs/condition/ipaddress/NotIpAddress.js.map +1 -0
- package/dist/cjs/condition/ipaddress/ipv4.d.ts +24 -0
- package/dist/cjs/condition/ipaddress/ipv4.d.ts.map +1 -0
- package/dist/cjs/condition/ipaddress/ipv4.js +59 -0
- package/dist/cjs/condition/ipaddress/ipv4.js.map +1 -0
- package/dist/cjs/condition/ipaddress/ipv6.d.ts +24 -0
- package/dist/cjs/condition/ipaddress/ipv6.d.ts.map +1 -0
- package/dist/cjs/condition/ipaddress/ipv6.js +111 -0
- package/dist/cjs/condition/ipaddress/ipv6.js.map +1 -0
- package/dist/cjs/condition/numeric/NumericEquals.d.ts +3 -0
- package/dist/cjs/condition/numeric/NumericEquals.d.ts.map +1 -0
- package/dist/cjs/condition/numeric/NumericEquals.js +17 -0
- package/dist/cjs/condition/numeric/NumericEquals.js.map +1 -0
- package/dist/cjs/condition/numeric/NumericGreaterThan.d.ts +3 -0
- package/dist/cjs/condition/numeric/NumericGreaterThan.d.ts.map +1 -0
- package/dist/cjs/condition/numeric/NumericGreaterThan.js +17 -0
- package/dist/cjs/condition/numeric/NumericGreaterThan.js.map +1 -0
- package/dist/cjs/condition/numeric/NumericGreaterThanEquals.d.ts +3 -0
- package/dist/cjs/condition/numeric/NumericGreaterThanEquals.d.ts.map +1 -0
- package/dist/cjs/condition/numeric/NumericGreaterThanEquals.js +17 -0
- package/dist/cjs/condition/numeric/NumericGreaterThanEquals.js.map +1 -0
- package/dist/cjs/condition/numeric/NumericLessThan.d.ts +3 -0
- package/dist/cjs/condition/numeric/NumericLessThan.d.ts.map +1 -0
- package/dist/cjs/condition/numeric/NumericLessThan.js +17 -0
- package/dist/cjs/condition/numeric/NumericLessThan.js.map +1 -0
- package/dist/cjs/condition/numeric/NumericLessThanEquals.d.ts +3 -0
- package/dist/cjs/condition/numeric/NumericLessThanEquals.d.ts.map +1 -0
- package/dist/cjs/condition/numeric/NumericLessThanEquals.js +17 -0
- package/dist/cjs/condition/numeric/NumericLessThanEquals.js.map +1 -0
- package/dist/cjs/condition/numeric/NumericNotEquals.d.ts +3 -0
- package/dist/cjs/condition/numeric/NumericNotEquals.d.ts.map +1 -0
- package/dist/cjs/condition/numeric/NumericNotEquals.js +29 -0
- package/dist/cjs/condition/numeric/NumericNotEquals.js.map +1 -0
- package/dist/cjs/condition/numeric/numeric.d.ts +17 -0
- package/dist/cjs/condition/numeric/numeric.d.ts.map +1 -0
- package/dist/cjs/condition/numeric/numeric.js +41 -0
- package/dist/cjs/condition/numeric/numeric.js.map +1 -0
- package/dist/cjs/condition/string/StringEquals.d.ts +3 -0
- package/dist/cjs/condition/string/StringEquals.d.ts.map +1 -0
- package/dist/cjs/condition/string/StringEquals.js +14 -0
- package/dist/cjs/condition/string/StringEquals.js.map +1 -0
- package/dist/cjs/condition/string/StringEqualsIgnoreCase.d.ts +3 -0
- package/dist/cjs/condition/string/StringEqualsIgnoreCase.d.ts.map +1 -0
- package/dist/cjs/condition/string/StringEqualsIgnoreCase.js +17 -0
- package/dist/cjs/condition/string/StringEqualsIgnoreCase.js.map +1 -0
- package/dist/cjs/condition/string/StringLike.d.ts +3 -0
- package/dist/cjs/condition/string/StringLike.d.ts.map +1 -0
- package/dist/cjs/condition/string/StringLike.js +14 -0
- package/dist/cjs/condition/string/StringLike.js.map +1 -0
- package/dist/cjs/condition/string/StringNotEquals.d.ts +3 -0
- package/dist/cjs/condition/string/StringNotEquals.d.ts.map +1 -0
- package/dist/cjs/condition/string/StringNotEquals.js +14 -0
- package/dist/cjs/condition/string/StringNotEquals.js.map +1 -0
- package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.d.ts +3 -0
- package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.d.ts.map +1 -0
- package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.js +13 -0
- package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.js.map +1 -0
- package/dist/cjs/condition/string/StringNotLike.d.ts +3 -0
- package/dist/cjs/condition/string/StringNotLike.d.ts.map +1 -0
- package/dist/cjs/condition/string/StringNotLike.js +13 -0
- package/dist/cjs/condition/string/StringNotLike.js.map +1 -0
- package/dist/cjs/condition/strings/StringEquals.d.ts +3 -0
- package/dist/cjs/condition/strings/StringEquals.d.ts.map +1 -0
- package/dist/cjs/condition/strings/StringEquals.js +14 -0
- package/dist/cjs/condition/strings/StringEquals.js.map +1 -0
- package/dist/cjs/core_engine/coreSimulatorEngine.d.ts +44 -0
- package/dist/cjs/core_engine/coreSimulatorEngine.d.ts.map +1 -0
- package/dist/cjs/core_engine/coreSimulatorEngine.js +60 -0
- package/dist/cjs/core_engine/coreSimulatorEngine.js.map +1 -0
- package/dist/cjs/evaluate.d.ts +2 -0
- package/dist/cjs/evaluate.d.ts.map +1 -0
- package/dist/cjs/evaluate.js +3 -0
- package/dist/cjs/evaluate.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/principal/principal.d.ts +30 -0
- package/dist/cjs/principal/principal.d.ts.map +1 -0
- package/dist/cjs/principal/principal.js +107 -0
- package/dist/cjs/principal/principal.js.map +1 -0
- package/dist/cjs/request/request.d.ts +50 -0
- package/dist/cjs/request/request.d.ts.map +1 -0
- package/dist/cjs/request/request.js +41 -0
- package/dist/cjs/request/request.js.map +1 -0
- package/dist/cjs/request/requestAction.d.ts +27 -0
- package/dist/cjs/request/requestAction.d.ts.map +1 -0
- package/dist/cjs/request/requestAction.js +20 -0
- package/dist/cjs/request/requestAction.js.map +1 -0
- package/dist/cjs/request/requestPrincipal.d.ts +20 -0
- package/dist/cjs/request/requestPrincipal.d.ts.map +1 -0
- package/dist/cjs/request/requestPrincipal.js +17 -0
- package/dist/cjs/request/requestPrincipal.js.map +1 -0
- package/dist/cjs/request/requestResource.d.ts +37 -0
- package/dist/cjs/request/requestResource.d.ts.map +1 -0
- package/dist/cjs/request/requestResource.js +29 -0
- package/dist/cjs/request/requestResource.js.map +1 -0
- package/dist/cjs/request/requestSupplementalData.d.ts +19 -0
- package/dist/cjs/request/requestSupplementalData.d.ts.map +1 -0
- package/dist/cjs/request/requestSupplementalData.js +37 -0
- package/dist/cjs/request/requestSupplementalData.js.map +1 -0
- package/dist/cjs/request.d.ts +15 -0
- package/dist/cjs/request.d.ts.map +1 -0
- package/dist/cjs/request.js +17 -0
- package/dist/cjs/request.js.map +1 -0
- package/dist/cjs/requestContext.d.ts +63 -0
- package/dist/cjs/requestContext.d.ts.map +1 -0
- package/dist/cjs/requestContext.js +46 -0
- package/dist/cjs/requestContext.js.map +1 -0
- package/dist/cjs/resource/resource.d.ts +27 -0
- package/dist/cjs/resource/resource.d.ts.map +1 -0
- package/dist/cjs/resource/resource.js +100 -0
- package/dist/cjs/resource/resource.js.map +1 -0
- package/dist/cjs/services/DefaultServiceAuthorizer.d.ts +12 -0
- package/dist/cjs/services/DefaultServiceAuthorizer.d.ts.map +1 -0
- package/dist/cjs/services/DefaultServiceAuthorizer.js +79 -0
- package/dist/cjs/services/DefaultServiceAuthorizer.js.map +1 -0
- package/dist/cjs/services/ServiceAuthorizer.d.ts +11 -0
- package/dist/cjs/services/ServiceAuthorizer.d.ts.map +1 -0
- package/dist/cjs/services/ServiceAuthorizer.js +3 -0
- package/dist/cjs/services/ServiceAuthorizer.js.map +1 -0
- package/dist/cjs/util.d.ts +47 -0
- package/dist/cjs/util.d.ts.map +1 -0
- package/dist/cjs/util.js +180 -0
- package/dist/cjs/util.js.map +1 -0
- package/dist/esm/action/action.d.ts +19 -0
- package/dist/esm/action/action.d.ts.map +1 -0
- package/dist/esm/action/action.js +51 -0
- package/dist/esm/action/action.js.map +1 -0
- package/dist/esm/action.d.ts +4 -0
- package/dist/esm/action.d.ts.map +1 -0
- package/dist/esm/action.js +18 -0
- package/dist/esm/action.js.map +1 -0
- package/dist/esm/condition/BaseConditionOperator.d.ts +8 -0
- package/dist/esm/condition/BaseConditionOperator.d.ts.map +1 -0
- package/dist/esm/condition/BaseConditionOperator.js +2 -0
- package/dist/esm/condition/BaseConditionOperator.js.map +1 -0
- package/dist/esm/condition/condition.d.ts +5 -0
- package/dist/esm/condition/condition.d.ts.map +1 -0
- package/dist/esm/condition/condition.js +70 -0
- package/dist/esm/condition/condition.js.map +1 -0
- package/dist/esm/condition/strings/StringEquals.d.ts +3 -0
- package/dist/esm/condition/strings/StringEquals.d.ts.map +1 -0
- package/dist/esm/condition/strings/StringEquals.js +11 -0
- package/dist/esm/condition/strings/StringEquals.js.map +1 -0
- package/dist/esm/evaluate.d.ts +2 -0
- package/dist/esm/evaluate.d.ts.map +1 -0
- package/dist/esm/evaluate.js +2 -0
- package/dist/esm/evaluate.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/principal/principal.d.ts +31 -0
- package/dist/esm/principal/principal.d.ts.map +1 -0
- package/dist/esm/principal/principal.js +100 -0
- package/dist/esm/principal/principal.js.map +1 -0
- package/dist/esm/request/request.d.ts +52 -0
- package/dist/esm/request/request.d.ts.map +1 -0
- package/dist/esm/request/request.js +34 -0
- package/dist/esm/request/request.js.map +1 -0
- package/dist/esm/request/requestAction.d.ts +27 -0
- package/dist/esm/request/requestAction.d.ts.map +1 -0
- package/dist/esm/request/requestAction.js +15 -0
- package/dist/esm/request/requestAction.js.map +1 -0
- package/dist/esm/request/requestPrincipal.d.ts +20 -0
- package/dist/esm/request/requestPrincipal.d.ts.map +1 -0
- package/dist/esm/request/requestPrincipal.js +12 -0
- package/dist/esm/request/requestPrincipal.js.map +1 -0
- package/dist/esm/request/requestResource.d.ts +37 -0
- package/dist/esm/request/requestResource.d.ts.map +1 -0
- package/dist/esm/request/requestResource.js +24 -0
- package/dist/esm/request/requestResource.js.map +1 -0
- package/dist/esm/request/requestSupplementalData.d.ts +19 -0
- package/dist/esm/request/requestSupplementalData.d.ts.map +1 -0
- package/dist/esm/request/requestSupplementalData.js +30 -0
- package/dist/esm/request/requestSupplementalData.js.map +1 -0
- package/dist/esm/request.d.ts +15 -0
- package/dist/esm/request.d.ts.map +1 -0
- package/dist/esm/request.js +9 -0
- package/dist/esm/request.js.map +1 -0
- package/dist/esm/requestContext.d.ts +63 -0
- package/dist/esm/requestContext.d.ts.map +1 -0
- package/dist/esm/requestContext.js +39 -0
- package/dist/esm/requestContext.js.map +1 -0
- package/dist/esm/resource/resource.d.ts +12 -0
- package/dist/esm/resource/resource.d.ts.map +1 -0
- package/dist/esm/resource/resource.js +97 -0
- package/dist/esm/resource/resource.js.map +1 -0
- package/dist/esm/util.d.ts +15 -0
- package/dist/esm/util.d.ts.map +1 -0
- package/dist/esm/util.js +97 -0
- package/dist/esm/util.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Statement } from "@cloud-copilot/iam-policy";
|
|
2
|
+
import { ConditionMatchResult } from "./condition/condition.js";
|
|
3
|
+
import { PrincipalMatchResult } from "./principal/principal.js";
|
|
4
|
+
/**
|
|
5
|
+
* The result of analyzing a statement against a request.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export interface StatementAnalysis {
|
|
9
|
+
/**
|
|
10
|
+
* The statement being analyzed.
|
|
11
|
+
*/
|
|
12
|
+
statement: Statement;
|
|
13
|
+
/**
|
|
14
|
+
* Whether the Resource or NotResource – if any – matches the request.
|
|
15
|
+
*/
|
|
16
|
+
resourceMatch: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the Action or NotAction matches the request.
|
|
19
|
+
*/
|
|
20
|
+
actionMatch: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Whether the Principal or NotPrincipal – if any – matches the request.
|
|
23
|
+
*/
|
|
24
|
+
principalMatch: PrincipalMatchResult;
|
|
25
|
+
conditionMatch: ConditionMatchResult;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=StatementAnalysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatementAnalysis.d.ts","sourceRoot":"","sources":["../../src/StatementAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAA;IACpC,cAAc,EAAE,oBAAoB,CAAA;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatementAnalysis.js","sourceRoot":"","sources":["../../src/StatementAnalysis.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Action, Statement } from "@cloud-copilot/iam-policy";
|
|
2
|
+
import { AwsRequest } from "../request/request.js";
|
|
3
|
+
/**
|
|
4
|
+
* Check if a request matches the Action or NotAction elements of a statement.
|
|
5
|
+
*
|
|
6
|
+
* @param request the request to check
|
|
7
|
+
* @param statement the statement to check against
|
|
8
|
+
* @returns true if the request matches the Action or NotAction in the statement, false otherwise
|
|
9
|
+
*/
|
|
10
|
+
export declare function requestMatchesStatementActions(request: AwsRequest, statement: Statement): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Check if a request matches a set of actions.
|
|
13
|
+
*
|
|
14
|
+
* @param request the request to check
|
|
15
|
+
* @param actions the actions to check against
|
|
16
|
+
* @returns true if the request matches any of the actions, false otherwise
|
|
17
|
+
*/
|
|
18
|
+
export declare function requestMatchesActions(request: AwsRequest, actions: Action[]): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Check if a request does not match a set of actions.
|
|
21
|
+
*
|
|
22
|
+
* @param request the request to check
|
|
23
|
+
* @param actions the actions to check against
|
|
24
|
+
* @returns true if the request does not match any of the actions, false if the request matches any of the actions
|
|
25
|
+
*/
|
|
26
|
+
export declare function requestMatchesNotActions(request: AwsRequest, actions: Action[]): boolean;
|
|
27
|
+
//# sourceMappingURL=action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/action/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAOjG;AAiBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAiBrF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAExF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestMatchesStatementActions = requestMatchesStatementActions;
|
|
4
|
+
exports.requestMatchesActions = requestMatchesActions;
|
|
5
|
+
exports.requestMatchesNotActions = requestMatchesNotActions;
|
|
6
|
+
/**
|
|
7
|
+
* Check if a request matches the Action or NotAction elements of a statement.
|
|
8
|
+
*
|
|
9
|
+
* @param request the request to check
|
|
10
|
+
* @param statement the statement to check against
|
|
11
|
+
* @returns true if the request matches the Action or NotAction in the statement, false otherwise
|
|
12
|
+
*/
|
|
13
|
+
function requestMatchesStatementActions(request, statement) {
|
|
14
|
+
if (statement.isActionStatement()) {
|
|
15
|
+
return requestMatchesActions(request, statement.actions());
|
|
16
|
+
}
|
|
17
|
+
else if (statement.isNotActionStatement()) {
|
|
18
|
+
return requestMatchesNotActions(request, statement.notActions());
|
|
19
|
+
}
|
|
20
|
+
throw new Error('Statement has neither Actions nor NotActions');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Convert an action action (the part after the colon) to a regular expression.
|
|
24
|
+
*
|
|
25
|
+
* @param action the action to convert to a regular expression
|
|
26
|
+
* @returns a regular that replaces any wildcards in the action with the appropriate regular expression.
|
|
27
|
+
*/
|
|
28
|
+
function convertActionToRegex(action) {
|
|
29
|
+
if (action.indexOf(':') != -1) {
|
|
30
|
+
throw new Error('Action should not contain a colon');
|
|
31
|
+
}
|
|
32
|
+
const pattern = "^" + action.replace(/\?/g, '.').replace(/\*/g, '.*?') + "$";
|
|
33
|
+
return new RegExp(pattern, 'i');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check if a request matches a set of actions.
|
|
37
|
+
*
|
|
38
|
+
* @param request the request to check
|
|
39
|
+
* @param actions the actions to check against
|
|
40
|
+
* @returns true if the request matches any of the actions, false otherwise
|
|
41
|
+
*/
|
|
42
|
+
function requestMatchesActions(request, actions) {
|
|
43
|
+
for (const action of actions) {
|
|
44
|
+
if (action.isWildcardAction()) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
else if (action.isServiceAction()) {
|
|
48
|
+
if (request.action.service() != action.service()) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const actionRegex = convertActionToRegex(action.action());
|
|
52
|
+
if (actionRegex.test(request.action.action())) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
throw new Error('Unknown action type');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if a request does not match a set of actions.
|
|
64
|
+
*
|
|
65
|
+
* @param request the request to check
|
|
66
|
+
* @param actions the actions to check against
|
|
67
|
+
* @returns true if the request does not match any of the actions, false if the request matches any of the actions
|
|
68
|
+
*/
|
|
69
|
+
function requestMatchesNotActions(request, actions) {
|
|
70
|
+
return !requestMatchesActions(request, actions);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/action/action.ts"],"names":[],"mappings":";;AAWA,wEAOC;AAwBD,sDAiBC;AASD,4DAEC;AAlED;;;;;;GAMG;AACH,SAAgB,8BAA8B,CAAC,OAAmB,EAAE,SAAoB;IACtF,IAAG,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACjC,OAAO,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,SAAS,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC5C,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,MAAc;IAC1C,IAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAA;IAC5E,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAGD;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,OAAmB,EAAE,OAAiB;IAC1E,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAG,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YACnC,IAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,SAAQ;YACV,CAAC;YACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,IAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,OAAmB,EAAE,OAAiB;IAC7E,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAMvC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAajF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestMatchesAction = requestMatchesAction;
|
|
4
|
+
function convertActionToRegex(action) {
|
|
5
|
+
return action.replace(/\?/g, '.').replace(/\*/g, '.*');
|
|
6
|
+
}
|
|
7
|
+
function requestMatchesAction(request, actions) {
|
|
8
|
+
for (const action of actions) {
|
|
9
|
+
if (action.isWildcardAction()) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
else if (action.isServiceAction()) {
|
|
13
|
+
const actionRegex = new RegExp(convertActionToRegex(action.value()));
|
|
14
|
+
if (actionRegex.test(request.action)) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.ts"],"names":[],"mappings":";;AAOA,oDAaC;AAjBD,SAAS,oBAAoB,CAAC,MAAc;IAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAgB,EAAE,OAAiB;IACtE,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAG,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrE,IAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IAEH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AwsRequest } from "../request/request.js";
|
|
2
|
+
export interface BaseConditionOperator {
|
|
3
|
+
name: string;
|
|
4
|
+
matches: (request: AwsRequest, keyValue: string, policyValues: string[]) => boolean;
|
|
5
|
+
allowsVariables: boolean;
|
|
6
|
+
allowsWildcards: boolean;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=BaseConditionOperator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseConditionOperator.d.ts","sourceRoot":"","sources":["../../../src/condition/BaseConditionOperator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,OAAO,CAAA;IACnF,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseConditionOperator.js","sourceRoot":"","sources":["../../../src/condition/BaseConditionOperator.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArnEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/arn/ArnEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,SAAS,EAAE,qBAKvB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArnEquals = void 0;
|
|
4
|
+
const ArnLike_js_1 = require("./ArnLike.js");
|
|
5
|
+
exports.ArnEquals = {
|
|
6
|
+
name: 'ArnEquals',
|
|
7
|
+
matches: ArnLike_js_1.ArnLike.matches,
|
|
8
|
+
allowsVariables: ArnLike_js_1.ArnLike.allowsVariables,
|
|
9
|
+
allowsWildcards: ArnLike_js_1.ArnLike.allowsWildcards
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=ArnEquals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArnEquals.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnEquals.ts"],"names":[],"mappings":";;;AACA,6CAAuC;AAE1B,QAAA,SAAS,GAA0B;IAC9C,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,oBAAO,CAAC,OAAO;IACxB,eAAe,EAAE,oBAAO,CAAC,eAAe;IACxC,eAAe,EAAE,oBAAO,CAAC,eAAe;CACzC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArnLike.d.ts","sourceRoot":"","sources":["../../../../src/condition/arn/ArnLike.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,OAAO,EAAE,qBAOrB,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArnLike = void 0;
|
|
4
|
+
const util_js_1 = require("../../util.js");
|
|
5
|
+
exports.ArnLike = {
|
|
6
|
+
name: 'ArnLike',
|
|
7
|
+
matches: (request, keyValue, policyValues) => {
|
|
8
|
+
return policyValues.some(policyArn => arnMatches(policyArn, keyValue, request));
|
|
9
|
+
},
|
|
10
|
+
allowsVariables: true,
|
|
11
|
+
allowsWildcards: true
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Checks to see if a single ARN matches in ArnLike format
|
|
15
|
+
*
|
|
16
|
+
* @param policyArn the ARN to check against
|
|
17
|
+
* @param requestArn the ARN to check
|
|
18
|
+
* @param request the request to check
|
|
19
|
+
* @returns if the ARN matches
|
|
20
|
+
*/
|
|
21
|
+
function arnMatches(policyArn, requestArn, request) {
|
|
22
|
+
const policyParts = (0, util_js_1.splitArnParts)(policyArn);
|
|
23
|
+
const requestParts = (0, util_js_1.splitArnParts)(requestArn);
|
|
24
|
+
// If any of the parts are missing, return false
|
|
25
|
+
if ((0, util_js_1.isNotDefined)(policyParts.partition) ||
|
|
26
|
+
(0, util_js_1.isNotDefined)(policyParts.service) ||
|
|
27
|
+
(0, util_js_1.isNotDefined)(policyParts.region) ||
|
|
28
|
+
(0, util_js_1.isNotDefined)(policyParts.accountId) ||
|
|
29
|
+
(0, util_js_1.isNotDefined)(policyParts.resource)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
// If any of the parts are missing, return false
|
|
33
|
+
if ((0, util_js_1.isNotDefined)(requestParts.partition) ||
|
|
34
|
+
(0, util_js_1.isNotDefined)(requestParts.service) ||
|
|
35
|
+
(0, util_js_1.isNotDefined)(requestParts.region) ||
|
|
36
|
+
(0, util_js_1.isNotDefined)(requestParts.accountId) ||
|
|
37
|
+
(0, util_js_1.isNotDefined)(requestParts.resource)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
const replaceAndMatch = (policyPart, requestPart) => {
|
|
41
|
+
const pattern = (0, util_js_1.convertIamStringToRegex)(policyPart, request, { replaceWildcards: true });
|
|
42
|
+
return pattern.test(requestPart);
|
|
43
|
+
};
|
|
44
|
+
return replaceAndMatch(policyParts.partition, requestParts.partition) &&
|
|
45
|
+
replaceAndMatch(policyParts.service, requestParts.service) &&
|
|
46
|
+
replaceAndMatch(policyParts.region, requestParts.region) &&
|
|
47
|
+
replaceAndMatch(policyParts.accountId, requestParts.accountId) &&
|
|
48
|
+
replaceAndMatch(policyParts.resource, requestParts.resource);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ArnLike.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArnLike.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnLike.ts"],"names":[],"mappings":";;;AACA,2CAAqF;AAGxE,QAAA,OAAO,GAA0B;IAC5C,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IACjF,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;CACtB,CAAA;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,SAAiB,EAAE,UAAkB,EAAE,OAAmB;IAC5E,MAAM,WAAW,GAAG,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAG,IAAA,uBAAa,EAAC,UAAU,CAAC,CAAA;IAC9C,gDAAgD;IAChD,IAAG,IAAA,sBAAY,EAAC,WAAW,CAAC,SAAS,CAAC;QACnC,IAAA,sBAAY,EAAC,WAAW,CAAC,OAAO,CAAC;QACjC,IAAA,sBAAY,EAAC,WAAW,CAAC,MAAM,CAAC;QAChC,IAAA,sBAAY,EAAC,WAAW,CAAC,SAAS,CAAC;QACnC,IAAA,sBAAY,EAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,gDAAgD;IAChD,IAAG,IAAA,sBAAY,EAAC,YAAY,CAAC,SAAS,CAAC;QACpC,IAAA,sBAAY,EAAC,YAAY,CAAC,OAAO,CAAC;QAClC,IAAA,sBAAY,EAAC,YAAY,CAAC,MAAM,CAAC;QACjC,IAAA,sBAAY,EAAC,YAAY,CAAC,SAAS,CAAC;QACpC,IAAA,sBAAY,EAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,WAAmB,EAAW,EAAE;QAC3E,MAAM,OAAO,GAAG,IAAA,iCAAuB,EAAC,UAAU,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,CAAC,CAAA;QACtF,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,OAAO,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;QAC9D,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;QAC1D,eAAe,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;QACxD,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;QAC9D,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;AAErE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArnNotEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,YAAY,EAAE,qBAK1B,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArnNotEquals = void 0;
|
|
4
|
+
const ArnNotLike_js_1 = require("./ArnNotLike.js");
|
|
5
|
+
exports.ArnNotEquals = {
|
|
6
|
+
name: 'ArnNotEquals',
|
|
7
|
+
matches: ArnNotLike_js_1.ArnNotLike.matches,
|
|
8
|
+
allowsVariables: ArnNotLike_js_1.ArnNotLike.allowsVariables,
|
|
9
|
+
allowsWildcards: ArnNotLike_js_1.ArnNotLike.allowsWildcards
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=ArnNotEquals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArnNotEquals.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotEquals.ts"],"names":[],"mappings":";;;AACA,mDAA6C;AAEhC,QAAA,YAAY,GAA0B;IACjD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,0BAAU,CAAC,OAAO;IAC3B,eAAe,EAAE,0BAAU,CAAC,eAAe;IAC3C,eAAe,EAAE,0BAAU,CAAC,eAAe;CAC5C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArnNotLike.d.ts","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,UAAU,EAAE,qBAOxB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArnNotLike = void 0;
|
|
4
|
+
const ArnLike_js_1 = require("./ArnLike.js");
|
|
5
|
+
exports.ArnNotLike = {
|
|
6
|
+
name: 'ArnNotLike',
|
|
7
|
+
matches: (request, keyValue, policyValues) => {
|
|
8
|
+
return !ArnLike_js_1.ArnLike.matches(request, keyValue, policyValues);
|
|
9
|
+
},
|
|
10
|
+
allowsVariables: true,
|
|
11
|
+
allowsWildcards: true
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=ArnNotLike.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArnNotLike.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotLike.ts"],"names":[],"mappings":";;;AACA,6CAAuC;AAE1B,QAAA,UAAU,GAA0B;IAC/C,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,CAAC,oBAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC1D,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;CACtB,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseConditionOperator } from "./BaseConditionOperator.js";
|
|
2
|
+
export interface BaseOperatorTest {
|
|
3
|
+
name: string;
|
|
4
|
+
requestContext?: {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
};
|
|
7
|
+
policyValues: string[];
|
|
8
|
+
testValue: string;
|
|
9
|
+
expected: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function testOperator(name: string, tests: BaseOperatorTest[], operator: BaseConditionOperator): void;
|
|
12
|
+
//# sourceMappingURL=baseConditionperatorTests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseConditionperatorTests.d.ts","sourceRoot":"","sources":["../../../src/condition/baseConditionperatorTests.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IAC1C,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,qBAAqB,QAcpG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.testOperator = testOperator;
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const request_js_1 = require("../request/request.js");
|
|
6
|
+
const requestContext_js_1 = require("../requestContext.js");
|
|
7
|
+
function testOperator(name, tests, operator) {
|
|
8
|
+
(0, vitest_1.describe)(name, it => {
|
|
9
|
+
for (const test of tests) {
|
|
10
|
+
it(test.name, () => {
|
|
11
|
+
//Given the request
|
|
12
|
+
const request = new request_js_1.AwsRequestImpl('', '', '', new requestContext_js_1.RequestContextImpl(test.requestContext || {}));
|
|
13
|
+
//When the condition is evaluated
|
|
14
|
+
const result = operator.matches(request, test.testValue, test.policyValues);
|
|
15
|
+
//Then the result should be as expected
|
|
16
|
+
(0, vitest_1.expect)(result).toBe(test.expected);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=baseConditionperatorTests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseConditionperatorTests.js","sourceRoot":"","sources":["../../../src/condition/baseConditionperatorTests.ts"],"names":[],"mappings":";;AAaA,oCAcC;AA3BD,mCAAyC;AACzC,sDAAsD;AACtD,4DAAyD;AAWzD,SAAgB,YAAY,CAAC,IAAY,EAAE,KAAyB,EAAE,QAA+B;IACnG,IAAA,iBAAQ,EAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QAClB,KAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACxB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;gBACjB,mBAAmB;gBACnB,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,sCAAkB,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAA;gBACjG,iCAAiC;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;gBAE3E,uCAAuC;gBACvC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpC,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseConditionOperator } from "../BaseConditionOperator.js";
|
|
2
|
+
/**
|
|
3
|
+
* For Binary we don't really have the ability to accept binary
|
|
4
|
+
* values right now, so just do a string match.
|
|
5
|
+
*/
|
|
6
|
+
export declare const BinaryEquals: BaseConditionOperator;
|
|
7
|
+
//# sourceMappingURL=BinaryEquals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinaryEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/binary/BinaryEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,qBAO1B,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BinaryEquals = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* For Binary we don't really have the ability to accept binary
|
|
6
|
+
* values right now, so just do a string match.
|
|
7
|
+
*/
|
|
8
|
+
exports.BinaryEquals = {
|
|
9
|
+
name: 'BinaryEquals',
|
|
10
|
+
matches: (request, keyValue, policyValues) => {
|
|
11
|
+
return policyValues.includes(keyValue);
|
|
12
|
+
},
|
|
13
|
+
allowsVariables: true,
|
|
14
|
+
allowsWildcards: false
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=BinaryEquals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinaryEquals.js","sourceRoot":"","sources":["../../../../src/condition/binary/BinaryEquals.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,YAAY,GAA0B;IACjD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;CACvB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bool.d.ts","sourceRoot":"","sources":["../../../../src/condition/boolean/Bool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,IAAI,EAAE,qBAclB,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Bool = void 0;
|
|
4
|
+
const util_js_1 = require("../../util.js");
|
|
5
|
+
exports.Bool = {
|
|
6
|
+
name: 'Bool',
|
|
7
|
+
matches: (request, keyValue, policyValues) => {
|
|
8
|
+
return policyValues.some(policyValue => {
|
|
9
|
+
const pattern = (0, util_js_1.convertIamStringToRegex)(policyValue, request, { replaceWildcards: false });
|
|
10
|
+
const lowercasePattern = pattern.source.toLowerCase();
|
|
11
|
+
if (lowercasePattern != '^true$' && lowercasePattern != '^false$') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return new RegExp(pattern, 'i').test(keyValue);
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
allowsVariables: true,
|
|
18
|
+
allowsWildcards: false
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=Bool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bool.js","sourceRoot":"","sources":["../../../../src/condition/boolean/Bool.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAG3C,QAAA,IAAI,GAA0B;IACzC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACrC,MAAM,OAAO,GAAG,IAAA,iCAAuB,EAAC,WAAW,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAA;YACxF,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;YACrD,IAAG,gBAAgB,IAAI,QAAQ,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAA;YACd,CAAC;YACD,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;CACvB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Condition } from '@cloud-copilot/iam-policy';
|
|
2
|
+
import { AwsRequest } from '../request/request';
|
|
3
|
+
export type ConditionMatchResult = 'Match' | 'NoMatch' | 'Unknown';
|
|
4
|
+
export declare function requestMatchesConditions(request: AwsRequest, conditions: Condition[]): ConditionMatchResult;
|
|
5
|
+
export declare function singleConditionMatchesRequest(request: AwsRequest, condition: Condition): ConditionMatchResult;
|
|
6
|
+
//# sourceMappingURL=condition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/condition/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA4BhD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;AAiBlE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,oBAAoB,CAW3G;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,oBAAoB,CAiE7G"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestMatchesConditions = requestMatchesConditions;
|
|
4
|
+
exports.singleConditionMatchesRequest = singleConditionMatchesRequest;
|
|
5
|
+
const ArnEquals_js_1 = require("./arn/ArnEquals.js");
|
|
6
|
+
const ArnLike_js_1 = require("./arn/ArnLike.js");
|
|
7
|
+
const ArnNotEquals_js_1 = require("./arn/ArnNotEquals.js");
|
|
8
|
+
const ArnNotLike_js_1 = require("./arn/ArnNotLike.js");
|
|
9
|
+
const BinaryEquals_js_1 = require("./binary/BinaryEquals.js");
|
|
10
|
+
const Bool_js_1 = require("./boolean/Bool.js");
|
|
11
|
+
const DateEquals_js_1 = require("./date/DateEquals.js");
|
|
12
|
+
const DateGreaterThan_js_1 = require("./date/DateGreaterThan.js");
|
|
13
|
+
const DateGreaterThanEquals_js_1 = require("./date/DateGreaterThanEquals.js");
|
|
14
|
+
const DateLessThan_js_1 = require("./date/DateLessThan.js");
|
|
15
|
+
const DateLessThanEquals_js_1 = require("./date/DateLessThanEquals.js");
|
|
16
|
+
const DateNotEquals_js_1 = require("./date/DateNotEquals.js");
|
|
17
|
+
const IpAddress_js_1 = require("./ipaddress/IpAddress.js");
|
|
18
|
+
const NotIpAddress_js_1 = require("./ipaddress/NotIpAddress.js");
|
|
19
|
+
const NumericEquals_js_1 = require("./numeric/NumericEquals.js");
|
|
20
|
+
const NumericGreaterThan_js_1 = require("./numeric/NumericGreaterThan.js");
|
|
21
|
+
const NumericGreaterThanEquals_js_1 = require("./numeric/NumericGreaterThanEquals.js");
|
|
22
|
+
const NumericLessThan_js_1 = require("./numeric/NumericLessThan.js");
|
|
23
|
+
const NumericNotEquals_js_1 = require("./numeric/NumericNotEquals.js");
|
|
24
|
+
const StringEquals_js_1 = require("./string/StringEquals.js");
|
|
25
|
+
const StringEqualsIgnoreCase_js_1 = require("./string/StringEqualsIgnoreCase.js");
|
|
26
|
+
const StringLike_js_1 = require("./string/StringLike.js");
|
|
27
|
+
const StringNotEquals_js_1 = require("./string/StringNotEquals.js");
|
|
28
|
+
const StringNotEqualsIgnoreCase_js_1 = require("./string/StringNotEqualsIgnoreCase.js");
|
|
29
|
+
const StringNotLike_js_1 = require("./string/StringNotLike.js");
|
|
30
|
+
const allOperators = [
|
|
31
|
+
StringEquals_js_1.StringEquals, StringNotEquals_js_1.StringNotEquals, StringEqualsIgnoreCase_js_1.StringEqualsIgnoreCase, StringNotEqualsIgnoreCase_js_1.StringNotEqualsIgnoreCase, StringLike_js_1.StringLike, StringNotLike_js_1.StringNotLike,
|
|
32
|
+
NumericEquals_js_1.NumericEquals, NumericNotEquals_js_1.NumericNotEquals, NumericLessThan_js_1.NumericLessThan, NumericNotEquals_js_1.NumericNotEquals, NumericGreaterThan_js_1.NumericGreaterThan, NumericGreaterThanEquals_js_1.NumericGreaterThanEquals,
|
|
33
|
+
DateEquals_js_1.DateEquals, DateNotEquals_js_1.DateNotEquals, DateLessThan_js_1.DateLessThan, DateLessThanEquals_js_1.DateLessThanEquals, DateGreaterThan_js_1.DateGreaterThan, DateGreaterThanEquals_js_1.DateGreaterThanEquals,
|
|
34
|
+
Bool_js_1.Bool,
|
|
35
|
+
BinaryEquals_js_1.BinaryEquals,
|
|
36
|
+
IpAddress_js_1.IpAddress, NotIpAddress_js_1.NotIpAddress,
|
|
37
|
+
ArnLike_js_1.ArnLike, ArnEquals_js_1.ArnEquals, ArnNotLike_js_1.ArnNotLike, ArnNotEquals_js_1.ArnNotEquals
|
|
38
|
+
];
|
|
39
|
+
const baseOperations = {};
|
|
40
|
+
for (const operator of allOperators) {
|
|
41
|
+
baseOperations[operator.name.toLowerCase()] = operator;
|
|
42
|
+
}
|
|
43
|
+
function requestMatchesConditions(request, conditions) {
|
|
44
|
+
const results = conditions.map(condition => singleConditionMatchesRequest(request, condition));
|
|
45
|
+
const unknowns = results.filter(result => result === 'Unknown');
|
|
46
|
+
if (unknowns.length > 0) {
|
|
47
|
+
return 'Unknown';
|
|
48
|
+
}
|
|
49
|
+
const noMatches = results.filter(result => result === 'NoMatch');
|
|
50
|
+
if (noMatches.length > 0) {
|
|
51
|
+
return 'NoMatch';
|
|
52
|
+
}
|
|
53
|
+
return 'Match';
|
|
54
|
+
}
|
|
55
|
+
function singleConditionMatchesRequest(request, condition) {
|
|
56
|
+
const key = condition.conditionKey();
|
|
57
|
+
const policyValues = condition.conditionValues();
|
|
58
|
+
const baseOperation = baseOperations[condition.operation().baseOperator().toLowerCase()]?.matches;
|
|
59
|
+
const keyExists = request.contextKeyExists(key);
|
|
60
|
+
const keyValue = keyExists ? request.getContextKeyValue(key) : undefined;
|
|
61
|
+
if (condition.operation().value().toLowerCase() == 'null' || condition.operation().baseOperator()?.toLowerCase() == 'null') {
|
|
62
|
+
return testNull(condition, keyExists);
|
|
63
|
+
}
|
|
64
|
+
if (condition.operation().setOperator()) {
|
|
65
|
+
const setOperator = condition.operation().setOperator();
|
|
66
|
+
if (setOperator === 'ForAnyValue') {
|
|
67
|
+
if (!keyExists || !keyValue || !keyValue.isArrayValue()) {
|
|
68
|
+
return 'NoMatch';
|
|
69
|
+
}
|
|
70
|
+
if (!baseOperation) {
|
|
71
|
+
return 'Unknown';
|
|
72
|
+
}
|
|
73
|
+
//Do the loop
|
|
74
|
+
const anyMatch = keyValue.values.some(value => {
|
|
75
|
+
return baseOperation(request, value, policyValues);
|
|
76
|
+
});
|
|
77
|
+
return anyMatch ? 'Match' : 'NoMatch';
|
|
78
|
+
}
|
|
79
|
+
else if (setOperator === 'ForAllValues') {
|
|
80
|
+
if (!keyExists) {
|
|
81
|
+
return 'Match';
|
|
82
|
+
}
|
|
83
|
+
if (!keyValue || !keyValue.isArrayValue()) {
|
|
84
|
+
return 'NoMatch';
|
|
85
|
+
}
|
|
86
|
+
if (!baseOperation) {
|
|
87
|
+
return 'Unknown';
|
|
88
|
+
}
|
|
89
|
+
//Do the loop
|
|
90
|
+
const anyNotMatch = keyValue.values.some(value => {
|
|
91
|
+
return !baseOperation(request, value, policyValues);
|
|
92
|
+
});
|
|
93
|
+
return anyNotMatch ? 'NoMatch' : 'Match';
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
throw new Error(`Unknown set operator: ${setOperator}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (condition.operation().isIfExists() || condition.operation().baseOperator().toLowerCase().includes('not')) {
|
|
100
|
+
//Check if it exists, return true if it doesn't
|
|
101
|
+
//Double check what happens here if the key is not a valid key or is of the wrong type
|
|
102
|
+
if (!keyExists) {
|
|
103
|
+
return 'Match';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (!keyValue || !keyValue.isStringValue()) {
|
|
107
|
+
//Set operator is required for a multi-value key
|
|
108
|
+
return 'NoMatch';
|
|
109
|
+
}
|
|
110
|
+
if (!baseOperation) {
|
|
111
|
+
return 'Unknown';
|
|
112
|
+
}
|
|
113
|
+
const matches = baseOperation(request, keyValue.value, policyValues);
|
|
114
|
+
return matches ? 'Match' : 'NoMatch';
|
|
115
|
+
}
|
|
116
|
+
function testNull(condition, keyExists) {
|
|
117
|
+
const lowerCaseValues = condition.conditionValues().map(value => value.toLowerCase());
|
|
118
|
+
if (keyExists) {
|
|
119
|
+
return lowerCaseValues.includes('false') ? 'Match' : 'NoMatch';
|
|
120
|
+
}
|
|
121
|
+
return lowerCaseValues.includes('true') ? 'Match' : 'NoMatch';
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=condition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/condition/condition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/date/DateEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,UAAU,EAAE,qBAYxB,CAAA"}
|