@actsecurity/iam-simulate 0.1.191 → 0.1.193
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/condition/string/StringEqualsIgnoreCase.d.ts.map +1 -1
- package/dist/cjs/condition/string/StringEqualsIgnoreCase.js +3 -2
- package/dist/cjs/condition/string/StringEqualsIgnoreCase.js.map +1 -1
- package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.d.ts.map +1 -1
- package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.js +3 -2
- package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.js.map +1 -1
- package/dist/cjs/condition/string/ignoreCaseEquals.d.ts +13 -0
- package/dist/cjs/condition/string/ignoreCaseEquals.d.ts.map +1 -0
- package/dist/cjs/condition/string/ignoreCaseEquals.js +31 -0
- package/dist/cjs/condition/string/ignoreCaseEquals.js.map +1 -0
- package/dist/cjs/util.d.ts +12 -0
- package/dist/cjs/util.d.ts.map +1 -1
- package/dist/cjs/util.js +22 -3
- package/dist/cjs/util.js.map +1 -1
- package/dist/esm/condition/string/StringEqualsIgnoreCase.d.ts.map +1 -1
- package/dist/esm/condition/string/StringEqualsIgnoreCase.js +4 -3
- package/dist/esm/condition/string/StringEqualsIgnoreCase.js.map +1 -1
- package/dist/esm/condition/string/StringNotEqualsIgnoreCase.d.ts.map +1 -1
- package/dist/esm/condition/string/StringNotEqualsIgnoreCase.js +4 -3
- package/dist/esm/condition/string/StringNotEqualsIgnoreCase.js.map +1 -1
- package/dist/esm/condition/string/ignoreCaseEquals.d.ts +13 -0
- package/dist/esm/condition/string/ignoreCaseEquals.d.ts.map +1 -0
- package/dist/esm/condition/string/ignoreCaseEquals.js +28 -0
- package/dist/esm/condition/string/ignoreCaseEquals.js.map +1 -0
- package/dist/esm/util.d.ts +12 -0
- package/dist/esm/util.d.ts.map +1 -1
- package/dist/esm/util.js +21 -3
- package/dist/esm/util.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"StringEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAIxE,eAAO,MAAM,sBAAsB,EAAE,qBA8BpC,CAAA"}
|
|
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StringEqualsIgnoreCase = void 0;
|
|
4
4
|
const util_js_1 = require("../../util.js");
|
|
5
5
|
const conditionUtil_js_1 = require("../conditionUtil.js");
|
|
6
|
+
const ignoreCaseEquals_js_1 = require("./ignoreCaseEquals.js");
|
|
6
7
|
exports.StringEqualsIgnoreCase = {
|
|
7
8
|
name: 'StringEqualsIgnoreCase',
|
|
8
9
|
matches: (request, keyValue, policyValues) => {
|
|
9
10
|
const explains = policyValues.map((value) => {
|
|
10
|
-
const {
|
|
11
|
+
const { value: resolved, errors } = (0, util_js_1.resolveIamConditionString)(value, request);
|
|
11
12
|
if (errors && errors.length > 0) {
|
|
12
13
|
return {
|
|
13
14
|
value,
|
|
@@ -15,7 +16,7 @@ exports.StringEqualsIgnoreCase = {
|
|
|
15
16
|
errors
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
const matches =
|
|
19
|
+
const matches = (0, ignoreCaseEquals_js_1.ignoreCaseEquals)(resolved, keyValue);
|
|
19
20
|
return {
|
|
20
21
|
value,
|
|
21
22
|
matches,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"StringEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAEzD,0DAAmD;AACnD,+DAAwD;AAE3C,QAAA,sBAAsB,GAA0B;IAC3D,IAAI,EAAE,wBAAwB;IAC9B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAA,mCAAyB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC7E,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,IAAA,sCAAgB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACpD,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,IAAA,gCAAa,EAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringNotEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"StringNotEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAIxE,eAAO,MAAM,yBAAyB,EAAE,qBA8BvC,CAAA"}
|
|
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StringNotEqualsIgnoreCase = void 0;
|
|
4
4
|
const util_js_1 = require("../../util.js");
|
|
5
5
|
const conditionUtil_js_1 = require("../conditionUtil.js");
|
|
6
|
+
const ignoreCaseEquals_js_1 = require("./ignoreCaseEquals.js");
|
|
6
7
|
exports.StringNotEqualsIgnoreCase = {
|
|
7
8
|
name: 'StringNotEqualsIgnoreCase',
|
|
8
9
|
matches: (request, keyValue, policyValues) => {
|
|
9
10
|
const explains = policyValues.map((value) => {
|
|
10
|
-
const {
|
|
11
|
+
const { value: resolved, errors } = (0, util_js_1.resolveIamConditionString)(value, request);
|
|
11
12
|
if (errors && errors.length > 0) {
|
|
12
13
|
return {
|
|
13
14
|
value,
|
|
@@ -15,7 +16,7 @@ exports.StringNotEqualsIgnoreCase = {
|
|
|
15
16
|
errors
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
|
-
const matches = !
|
|
19
|
+
const matches = !(0, ignoreCaseEquals_js_1.ignoreCaseEquals)(resolved, keyValue);
|
|
19
20
|
return {
|
|
20
21
|
value,
|
|
21
22
|
matches,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringNotEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"StringNotEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":";;;AACA,2CAAyD;AAEzD,0DAAmD;AACnD,+DAAwD;AAE3C,QAAA,yBAAyB,GAA0B;IAC9D,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAA,mCAAyB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC7E,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,IAAA,sCAAgB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACrD,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,IAAA,gCAAa,EAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAClE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,IAAI;CACjB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare strings using the case behavior observed in AWS IAM's policy simulator.
|
|
3
|
+
*
|
|
4
|
+
* Lowercase each UTF-16 code unit independently, rather than applying Unicode case
|
|
5
|
+
* folding or lowercasing whole strings. This is an empirical approximation: the
|
|
6
|
+
* mappings depend on the JavaScript runtime's Unicode version.
|
|
7
|
+
*
|
|
8
|
+
* @param left the first string to compare
|
|
9
|
+
* @param right the second string to compare
|
|
10
|
+
* @returns whether the strings compare equal ignoring case
|
|
11
|
+
*/
|
|
12
|
+
export declare function ignoreCaseEquals(left: string, right: string): boolean;
|
|
13
|
+
//# sourceMappingURL=ignoreCaseEquals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignoreCaseEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/ignoreCaseEquals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAErE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ignoreCaseEquals = ignoreCaseEquals;
|
|
4
|
+
/**
|
|
5
|
+
* Compare strings using the case behavior observed in AWS IAM's policy simulator.
|
|
6
|
+
*
|
|
7
|
+
* Lowercase each UTF-16 code unit independently, rather than applying Unicode case
|
|
8
|
+
* folding or lowercasing whole strings. This is an empirical approximation: the
|
|
9
|
+
* mappings depend on the JavaScript runtime's Unicode version.
|
|
10
|
+
*
|
|
11
|
+
* @param left the first string to compare
|
|
12
|
+
* @param right the second string to compare
|
|
13
|
+
* @returns whether the strings compare equal ignoring case
|
|
14
|
+
*/
|
|
15
|
+
function ignoreCaseEquals(left, right) {
|
|
16
|
+
return lowerCodeUnits(left) === lowerCodeUnits(right);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Lowercase individual UTF-16 code units, including mappings that expand to multiple units.
|
|
20
|
+
*
|
|
21
|
+
* @param value the string to transform
|
|
22
|
+
* @returns the concatenation of the lowercase code units
|
|
23
|
+
*/
|
|
24
|
+
function lowerCodeUnits(value) {
|
|
25
|
+
let result = '';
|
|
26
|
+
for (let index = 0; index < value.length; index++) {
|
|
27
|
+
result += value[index].toLowerCase();
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ignoreCaseEquals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignoreCaseEquals.js","sourceRoot":"","sources":["../../../../src/condition/string/ignoreCaseEquals.ts"],"names":[],"mappings":";;AAWA,4CAEC;AAbD;;;;;;;;;;GAUG;AACH,SAAgB,gBAAgB,CAAC,IAAY,EAAE,KAAa;IAC1D,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,KAAK,CAAC,CAAA;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IACtC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/cjs/util.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type AwsRequest } from './request/request.js';
|
|
|
3
3
|
export interface StringReplaceOptions {
|
|
4
4
|
replaceWildcards: boolean;
|
|
5
5
|
convertToRegex: boolean;
|
|
6
|
+
resolveLiteralEscapes?: boolean;
|
|
6
7
|
}
|
|
7
8
|
/**
|
|
8
9
|
* This will convert a string to a regex that can be used to match against a string.
|
|
@@ -20,6 +21,17 @@ export declare function convertIamString(value: string, request: AwsRequest, rep
|
|
|
20
21
|
pattern: RegExp;
|
|
21
22
|
errors?: string[];
|
|
22
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Resolve an IAM condition value as literal text, retaining variable resolution errors.
|
|
26
|
+
*
|
|
27
|
+
* @param value the IAM string to resolve
|
|
28
|
+
* @param request the request supplying policy variables
|
|
29
|
+
* @returns the resolved literal value and any resolution errors
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveIamConditionString(value: string, request: AwsRequest): {
|
|
32
|
+
value: string;
|
|
33
|
+
errors: string[];
|
|
34
|
+
};
|
|
23
35
|
export interface ArnParts {
|
|
24
36
|
partition: string | undefined;
|
|
25
37
|
service: string | undefined;
|
package/dist/cjs/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAItD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAItD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAOD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,KAAK,CAAA;CAAE,GACpE,MAAM,CAAA;AACT,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,cAAc,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC7C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAsBzC;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,GAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CASrC;AA2OD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAG7B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAenD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BxE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,SAAS,CAExE;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAY9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAa1D"}
|
package/dist/cjs/util.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.convertIamString = convertIamString;
|
|
4
|
+
exports.resolveIamConditionString = resolveIamConditionString;
|
|
4
5
|
exports.splitArnParts = splitArnParts;
|
|
5
6
|
exports.getResourceSegments = getResourceSegments;
|
|
6
7
|
exports.isDefined = isDefined;
|
|
@@ -27,6 +28,18 @@ function convertIamString(value, request, replaceOptions) {
|
|
|
27
28
|
}
|
|
28
29
|
return { pattern: new RegExp('^' + newValue + '$') };
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve an IAM condition value as literal text, retaining variable resolution errors.
|
|
33
|
+
*
|
|
34
|
+
* @param value the IAM string to resolve
|
|
35
|
+
* @param request the request supplying policy variables
|
|
36
|
+
* @returns the resolved literal value and any resolution errors
|
|
37
|
+
*/
|
|
38
|
+
function resolveIamConditionString(value, request) {
|
|
39
|
+
const errors = [];
|
|
40
|
+
const resolved = replaceIamStringTokens(value, request, { replaceWildcards: false, convertToRegex: false, resolveLiteralEscapes: true }, errors);
|
|
41
|
+
return { value: resolved, errors };
|
|
42
|
+
}
|
|
30
43
|
/**
|
|
31
44
|
* Replace IAM wildcard and variable tokens while escaping literal spans for regex conversion.
|
|
32
45
|
*
|
|
@@ -94,13 +107,19 @@ function replaceIamStringToken(match, request, options, errors) {
|
|
|
94
107
|
return replacementValue(match, '\\*', '.*?', options);
|
|
95
108
|
}
|
|
96
109
|
else if (match == '${*}') {
|
|
97
|
-
return
|
|
110
|
+
return options.resolveLiteralEscapes
|
|
111
|
+
? '*'
|
|
112
|
+
: replacementValue(match, '\\$\\{\\*\\}', '\\*', options);
|
|
98
113
|
}
|
|
99
114
|
else if (match == '${?}') {
|
|
100
|
-
return
|
|
115
|
+
return options.resolveLiteralEscapes
|
|
116
|
+
? '?'
|
|
117
|
+
: replacementValue(match, '\\$\\{\\?\\}', '\\?', options);
|
|
101
118
|
}
|
|
102
119
|
else if (match == '${$}') {
|
|
103
|
-
return
|
|
120
|
+
return options.resolveLiteralEscapes
|
|
121
|
+
? '$'
|
|
122
|
+
: replacementValue(match, '\\$\\{\\$\\}', '\\$', options);
|
|
104
123
|
}
|
|
105
124
|
//This means it's a variable
|
|
106
125
|
const inTheBrackets = match.slice(2, -1);
|
package/dist/cjs/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"StringEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAIxE,eAAO,MAAM,sBAAsB,EAAE,qBA8BpC,CAAA"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {} from '../../explain/statementExplain.js';
|
|
2
|
-
import {
|
|
2
|
+
import { resolveIamConditionString } from '../../util.js';
|
|
3
3
|
import {} from '../BaseConditionOperator.js';
|
|
4
4
|
import { resolvedValue } from '../conditionUtil.js';
|
|
5
|
+
import { ignoreCaseEquals } from './ignoreCaseEquals.js';
|
|
5
6
|
export const StringEqualsIgnoreCase = {
|
|
6
7
|
name: 'StringEqualsIgnoreCase',
|
|
7
8
|
matches: (request, keyValue, policyValues) => {
|
|
8
9
|
const explains = policyValues.map((value) => {
|
|
9
|
-
const {
|
|
10
|
+
const { value: resolved, errors } = resolveIamConditionString(value, request);
|
|
10
11
|
if (errors && errors.length > 0) {
|
|
11
12
|
return {
|
|
12
13
|
value,
|
|
@@ -14,7 +15,7 @@ export const StringEqualsIgnoreCase = {
|
|
|
14
15
|
errors
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
|
-
const matches =
|
|
18
|
+
const matches = ignoreCaseEquals(resolved, keyValue);
|
|
18
19
|
return {
|
|
19
20
|
value,
|
|
20
21
|
matches,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"StringEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAA8B,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,IAAI,EAAE,wBAAwB;IAC9B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC7E,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACpD,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringNotEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"StringNotEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAIxE,eAAO,MAAM,yBAAyB,EAAE,qBA8BvC,CAAA"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {} from '../../explain/statementExplain.js';
|
|
2
|
-
import {
|
|
2
|
+
import { resolveIamConditionString } from '../../util.js';
|
|
3
3
|
import {} from '../BaseConditionOperator.js';
|
|
4
4
|
import { resolvedValue } from '../conditionUtil.js';
|
|
5
|
+
import { ignoreCaseEquals } from './ignoreCaseEquals.js';
|
|
5
6
|
export const StringNotEqualsIgnoreCase = {
|
|
6
7
|
name: 'StringNotEqualsIgnoreCase',
|
|
7
8
|
matches: (request, keyValue, policyValues) => {
|
|
8
9
|
const explains = policyValues.map((value) => {
|
|
9
|
-
const {
|
|
10
|
+
const { value: resolved, errors } = resolveIamConditionString(value, request);
|
|
10
11
|
if (errors && errors.length > 0) {
|
|
11
12
|
return {
|
|
12
13
|
value,
|
|
@@ -14,7 +15,7 @@ export const StringNotEqualsIgnoreCase = {
|
|
|
14
15
|
errors
|
|
15
16
|
};
|
|
16
17
|
}
|
|
17
|
-
const matches = !
|
|
18
|
+
const matches = !ignoreCaseEquals(resolved, keyValue);
|
|
18
19
|
return {
|
|
19
20
|
value,
|
|
20
21
|
matches,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringNotEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"StringNotEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAA8B,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YAC7E,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACrD,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAClE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,IAAI;CACjB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare strings using the case behavior observed in AWS IAM's policy simulator.
|
|
3
|
+
*
|
|
4
|
+
* Lowercase each UTF-16 code unit independently, rather than applying Unicode case
|
|
5
|
+
* folding or lowercasing whole strings. This is an empirical approximation: the
|
|
6
|
+
* mappings depend on the JavaScript runtime's Unicode version.
|
|
7
|
+
*
|
|
8
|
+
* @param left the first string to compare
|
|
9
|
+
* @param right the second string to compare
|
|
10
|
+
* @returns whether the strings compare equal ignoring case
|
|
11
|
+
*/
|
|
12
|
+
export declare function ignoreCaseEquals(left: string, right: string): boolean;
|
|
13
|
+
//# sourceMappingURL=ignoreCaseEquals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignoreCaseEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/ignoreCaseEquals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAErE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare strings using the case behavior observed in AWS IAM's policy simulator.
|
|
3
|
+
*
|
|
4
|
+
* Lowercase each UTF-16 code unit independently, rather than applying Unicode case
|
|
5
|
+
* folding or lowercasing whole strings. This is an empirical approximation: the
|
|
6
|
+
* mappings depend on the JavaScript runtime's Unicode version.
|
|
7
|
+
*
|
|
8
|
+
* @param left the first string to compare
|
|
9
|
+
* @param right the second string to compare
|
|
10
|
+
* @returns whether the strings compare equal ignoring case
|
|
11
|
+
*/
|
|
12
|
+
export function ignoreCaseEquals(left, right) {
|
|
13
|
+
return lowerCodeUnits(left) === lowerCodeUnits(right);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Lowercase individual UTF-16 code units, including mappings that expand to multiple units.
|
|
17
|
+
*
|
|
18
|
+
* @param value the string to transform
|
|
19
|
+
* @returns the concatenation of the lowercase code units
|
|
20
|
+
*/
|
|
21
|
+
function lowerCodeUnits(value) {
|
|
22
|
+
let result = '';
|
|
23
|
+
for (let index = 0; index < value.length; index++) {
|
|
24
|
+
result += value[index].toLowerCase();
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ignoreCaseEquals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignoreCaseEquals.js","sourceRoot":"","sources":["../../../../src/condition/string/ignoreCaseEquals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,KAAa;IAC1D,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,KAAK,CAAC,CAAA;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IACtC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/esm/util.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type AwsRequest } from './request/request.js';
|
|
|
3
3
|
export interface StringReplaceOptions {
|
|
4
4
|
replaceWildcards: boolean;
|
|
5
5
|
convertToRegex: boolean;
|
|
6
|
+
resolveLiteralEscapes?: boolean;
|
|
6
7
|
}
|
|
7
8
|
/**
|
|
8
9
|
* This will convert a string to a regex that can be used to match against a string.
|
|
@@ -20,6 +21,17 @@ export declare function convertIamString(value: string, request: AwsRequest, rep
|
|
|
20
21
|
pattern: RegExp;
|
|
21
22
|
errors?: string[];
|
|
22
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Resolve an IAM condition value as literal text, retaining variable resolution errors.
|
|
26
|
+
*
|
|
27
|
+
* @param value the IAM string to resolve
|
|
28
|
+
* @param request the request supplying policy variables
|
|
29
|
+
* @returns the resolved literal value and any resolution errors
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveIamConditionString(value: string, request: AwsRequest): {
|
|
32
|
+
value: string;
|
|
33
|
+
errors: string[];
|
|
34
|
+
};
|
|
23
35
|
export interface ArnParts {
|
|
24
36
|
partition: string | undefined;
|
|
25
37
|
service: string | undefined;
|
package/dist/esm/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAItD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAItD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,CAAA;IACzB,cAAc,EAAE,OAAO,CAAA;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAOD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,KAAK,CAAA;CAAE,GACpE,MAAM,CAAA;AACT,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,EACnB,cAAc,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC7C;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAsBzC;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,GAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CASrC;AA2OD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAG7B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAenD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BxE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,IAAI,SAAS,CAExE;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAY9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAa1D"}
|
package/dist/esm/util.js
CHANGED
|
@@ -18,6 +18,18 @@ export function convertIamString(value, request, replaceOptions) {
|
|
|
18
18
|
}
|
|
19
19
|
return { pattern: new RegExp('^' + newValue + '$') };
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolve an IAM condition value as literal text, retaining variable resolution errors.
|
|
23
|
+
*
|
|
24
|
+
* @param value the IAM string to resolve
|
|
25
|
+
* @param request the request supplying policy variables
|
|
26
|
+
* @returns the resolved literal value and any resolution errors
|
|
27
|
+
*/
|
|
28
|
+
export function resolveIamConditionString(value, request) {
|
|
29
|
+
const errors = [];
|
|
30
|
+
const resolved = replaceIamStringTokens(value, request, { replaceWildcards: false, convertToRegex: false, resolveLiteralEscapes: true }, errors);
|
|
31
|
+
return { value: resolved, errors };
|
|
32
|
+
}
|
|
21
33
|
/**
|
|
22
34
|
* Replace IAM wildcard and variable tokens while escaping literal spans for regex conversion.
|
|
23
35
|
*
|
|
@@ -85,13 +97,19 @@ function replaceIamStringToken(match, request, options, errors) {
|
|
|
85
97
|
return replacementValue(match, '\\*', '.*?', options);
|
|
86
98
|
}
|
|
87
99
|
else if (match == '${*}') {
|
|
88
|
-
return
|
|
100
|
+
return options.resolveLiteralEscapes
|
|
101
|
+
? '*'
|
|
102
|
+
: replacementValue(match, '\\$\\{\\*\\}', '\\*', options);
|
|
89
103
|
}
|
|
90
104
|
else if (match == '${?}') {
|
|
91
|
-
return
|
|
105
|
+
return options.resolveLiteralEscapes
|
|
106
|
+
? '?'
|
|
107
|
+
: replacementValue(match, '\\$\\{\\?\\}', '\\?', options);
|
|
92
108
|
}
|
|
93
109
|
else if (match == '${$}') {
|
|
94
|
-
return
|
|
110
|
+
return options.resolveLiteralEscapes
|
|
111
|
+
? '$'
|
|
112
|
+
: replacementValue(match, '\\$\\{\\$\\}', '\\$', options);
|
|
95
113
|
}
|
|
96
114
|
//This means it's a variable
|
|
97
115
|
const inTheBrackets = match.slice(2, -1);
|
package/dist/esm/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAiB,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAmB,MAAM,sBAAsB,CAAA;AAEtD,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|