@cloud-copilot/iam-policy 0.1.4 → 0.1.5-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/dist/cjs/actions/action.d.ts +7 -1
- package/dist/cjs/actions/action.d.ts.map +1 -1
- package/dist/cjs/actions/action.js +9 -0
- package/dist/cjs/actions/action.js.map +1 -1
- package/dist/cjs/annotations/annotations.d.ts +55 -0
- package/dist/cjs/annotations/annotations.d.ts.map +1 -0
- package/dist/cjs/annotations/annotations.js +29 -0
- package/dist/cjs/annotations/annotations.js.map +1 -0
- package/dist/cjs/conditions/condition.d.ts +29 -1
- package/dist/cjs/conditions/condition.d.ts.map +1 -1
- package/dist/cjs/conditions/condition.js +11 -0
- package/dist/cjs/conditions/condition.js.map +1 -1
- package/dist/cjs/parser.d.ts +2 -1
- package/dist/cjs/parser.d.ts.map +1 -1
- package/dist/cjs/parser.js +5 -1
- package/dist/cjs/parser.js.map +1 -1
- package/dist/cjs/policies/policy.d.ts +28 -3
- package/dist/cjs/policies/policy.d.ts.map +1 -1
- package/dist/cjs/policies/policy.js +26 -2
- package/dist/cjs/policies/policy.js.map +1 -1
- package/dist/cjs/principals/principal.d.ts +7 -1
- package/dist/cjs/principals/principal.d.ts.map +1 -1
- package/dist/cjs/principals/principal.js +9 -0
- package/dist/cjs/principals/principal.js.map +1 -1
- package/dist/cjs/resources/resource.d.ts +7 -1
- package/dist/cjs/resources/resource.d.ts.map +1 -1
- package/dist/cjs/resources/resource.js +8 -0
- package/dist/cjs/resources/resource.js.map +1 -1
- package/dist/cjs/statements/statement.d.ts +112 -12
- package/dist/cjs/statements/statement.d.ts.map +1 -1
- package/dist/cjs/statements/statement.js +112 -7
- package/dist/cjs/statements/statement.js.map +1 -1
- package/dist/esm/actions/action.d.ts +7 -1
- package/dist/esm/actions/action.d.ts.map +1 -1
- package/dist/esm/actions/action.js +8 -0
- package/dist/esm/actions/action.js.map +1 -1
- package/dist/esm/annotations/annotations.d.ts +55 -0
- package/dist/esm/annotations/annotations.d.ts.map +1 -0
- package/dist/esm/annotations/annotations.js +24 -0
- package/dist/esm/annotations/annotations.js.map +1 -0
- package/dist/esm/conditions/condition.d.ts +29 -1
- package/dist/esm/conditions/condition.d.ts.map +1 -1
- package/dist/esm/conditions/condition.js +11 -0
- package/dist/esm/conditions/condition.js.map +1 -1
- package/dist/esm/parser.d.ts +2 -1
- package/dist/esm/parser.d.ts.map +1 -1
- package/dist/esm/parser.js +4 -1
- package/dist/esm/parser.js.map +1 -1
- package/dist/esm/policies/policy.d.ts +28 -3
- package/dist/esm/policies/policy.d.ts.map +1 -1
- package/dist/esm/policies/policy.js +23 -2
- package/dist/esm/policies/policy.js.map +1 -1
- package/dist/esm/principals/principal.d.ts +7 -1
- package/dist/esm/principals/principal.d.ts.map +1 -1
- package/dist/esm/principals/principal.js +8 -0
- package/dist/esm/principals/principal.js.map +1 -1
- package/dist/esm/resources/resource.d.ts +7 -1
- package/dist/esm/resources/resource.d.ts.map +1 -1
- package/dist/esm/resources/resource.js +8 -0
- package/dist/esm/resources/resource.js.map +1 -1
- package/dist/esm/statements/statement.d.ts +112 -12
- package/dist/esm/statements/statement.d.ts.map +1 -1
- package/dist/esm/statements/statement.js +103 -7
- package/dist/esm/statements/statement.js.map +1 -1
- package/package.json +1 -2
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Annotated, Annotations } from "../annotations/annotations.js";
|
1
2
|
export type ActionType = 'service' | 'wildcard';
|
2
3
|
/**
|
3
4
|
* An Action string in an IAM policy
|
@@ -20,6 +21,8 @@ export interface Action {
|
|
20
21
|
*/
|
21
22
|
isServiceAction(): this is ServiceAction;
|
22
23
|
}
|
24
|
+
export interface AnnotatedAction extends Action, Annotated {
|
25
|
+
}
|
23
26
|
/**
|
24
27
|
* A wildcard action: `"*"`
|
25
28
|
*/
|
@@ -46,9 +49,12 @@ export interface ServiceAction extends Action {
|
|
46
49
|
*/
|
47
50
|
action(): string;
|
48
51
|
}
|
49
|
-
export declare class ActionImpl implements Action, WildcardAction, ServiceAction {
|
52
|
+
export declare class ActionImpl implements Action, AnnotatedAction, WildcardAction, ServiceAction {
|
50
53
|
private readonly rawValue;
|
54
|
+
private readonly annotationStore;
|
51
55
|
constructor(rawValue: string);
|
56
|
+
addAnnotation(key: string, value: string): void;
|
57
|
+
getAnnotations(): Annotations;
|
52
58
|
type(): ActionType;
|
53
59
|
wildcardValue(): '*';
|
54
60
|
value(): string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/actions/action.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/actions/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,+BAA+B,CAAA;AAGvF,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAE/C;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,IAAI,IAAI,UAAU,CAAA;IAElB;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,gBAAgB,IAAI,IAAI,IAAI,cAAc,CAAA;IAE1C;;OAEG;IACH,eAAe,IAAI,IAAI,IAAI,aAAa,CAAA;CACzC;AAED,MAAM,WAAW,eAAgB,SAAQ,MAAM,EAAE,SAAS;CAEzD;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C;;;;OAIG;IACH,aAAa,IAAI,GAAG,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM;IAC3C;;;;OAIG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAA;CACjB;AAED,qBAAa,UAAW,YAAW,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa;IAG3E,OAAO,CAAC,QAAQ,CAAC,QAAQ;IADrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;gBACpB,QAAQ,EAAE,MAAM;IAItC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,cAAc,IAAI,WAAW;IAI7B,IAAI,IAAI,UAAU;IAOlB,aAAa,IAAI,GAAG;IAIpB,KAAK,IAAI,MAAM;IAIf,gBAAgB,IAAI,IAAI,IAAI,cAAc;IAI1C,eAAe,IAAI,IAAI,IAAI,aAAa;IAIxC,OAAO,IAAI,MAAM;IAIjB,MAAM,IAAI,MAAM;CAGxB"}
|
@@ -1,11 +1,20 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.ActionImpl = void 0;
|
4
|
+
const annotations_js_1 = require("../annotations/annotations.js");
|
4
5
|
const utils_js_1 = require("../utils.js");
|
5
6
|
class ActionImpl {
|
6
7
|
rawValue;
|
8
|
+
annotationStore;
|
7
9
|
constructor(rawValue) {
|
8
10
|
this.rawValue = rawValue;
|
11
|
+
this.annotationStore = new annotations_js_1.AnnotationStore();
|
12
|
+
}
|
13
|
+
addAnnotation(key, value) {
|
14
|
+
this.annotationStore.addAnnotation(key, value);
|
15
|
+
}
|
16
|
+
getAnnotations() {
|
17
|
+
return this.annotationStore;
|
9
18
|
}
|
10
19
|
type() {
|
11
20
|
if ((0, utils_js_1.isAllWildcards)(this.rawValue)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/actions/action.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/actions/action.ts"],"names":[],"mappings":";;;AAAA,kEAAuF;AACvF,0CAA4C;AA8D5C,MAAa,UAAU;IAGQ;IADZ,eAAe,CAAiB;IACjD,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,gCAAe,EAAE,CAAA;IAC9C,CAAC;IAEM,aAAa,CAAC,GAAW,EAAE,KAAa;QAC7C,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAEM,IAAI;QACT,IAAG,IAAA,yBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEM,aAAa;QAClB,OAAO,GAAG,CAAA;IACZ,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,CAAA;IACnC,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,CAAA;IAClC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAA;IACnD,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;CACF;AA7CD,gCA6CC"}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/**
|
2
|
+
* The annotations on a policy element
|
3
|
+
*/
|
4
|
+
export interface Annotations {
|
5
|
+
/**
|
6
|
+
* The string keys that have annotations
|
7
|
+
*
|
8
|
+
* @returns the keys that have annotations
|
9
|
+
*/
|
10
|
+
keys(): string[];
|
11
|
+
/**
|
12
|
+
* Get the values for a key
|
13
|
+
*
|
14
|
+
* @param key the key to get the values for
|
15
|
+
* @returns the values for the key or an empty array if the key does not exist
|
16
|
+
*/
|
17
|
+
values(key: string): string[];
|
18
|
+
/**
|
19
|
+
* Checks if a key is present in the annotations
|
20
|
+
*
|
21
|
+
* @param key the key to check
|
22
|
+
* @returns true if the key is present, false otherwise
|
23
|
+
*/
|
24
|
+
hasKey(key: string): boolean;
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* A store for policy annotations
|
28
|
+
*/
|
29
|
+
export declare class AnnotationStore implements Annotations {
|
30
|
+
private annotations;
|
31
|
+
constructor();
|
32
|
+
addAnnotation(key: string, value: string): void;
|
33
|
+
keys(): string[];
|
34
|
+
hasKey(key: string): boolean;
|
35
|
+
values(key: string): string[];
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* Standard methods for an object that can be annotated
|
39
|
+
*/
|
40
|
+
export interface Annotated {
|
41
|
+
/**
|
42
|
+
* Add an annotation to the object
|
43
|
+
*
|
44
|
+
* @param key the key of the annotation
|
45
|
+
* @param value the value of the annotation
|
46
|
+
*/
|
47
|
+
addAnnotation(key: string, value: string): void;
|
48
|
+
/**
|
49
|
+
* Get the annotations on the object
|
50
|
+
*
|
51
|
+
* @returns the annotations on the object
|
52
|
+
*/
|
53
|
+
getAnnotations(): Annotations;
|
54
|
+
}
|
55
|
+
//# sourceMappingURL=annotations.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../src/annotations/annotations.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,WAAW;IAE1B;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE,CAAA;IAEhB;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAE7B;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAC7B;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,WAAW,CAA2B;;IAK9C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOxC,IAAI,IAAI,MAAM,EAAE;IAIhB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;CAG9B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IAExB;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/C;;;;OAIG;IACH,cAAc,IAAI,WAAW,CAAA;CAC9B"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.AnnotationStore = void 0;
|
4
|
+
/**
|
5
|
+
* A store for policy annotations
|
6
|
+
*/
|
7
|
+
class AnnotationStore {
|
8
|
+
annotations;
|
9
|
+
constructor() {
|
10
|
+
this.annotations = {};
|
11
|
+
}
|
12
|
+
addAnnotation(key, value) {
|
13
|
+
if (!this.annotations[key]) {
|
14
|
+
this.annotations[key] = [];
|
15
|
+
}
|
16
|
+
this.annotations[key].push(value);
|
17
|
+
}
|
18
|
+
keys() {
|
19
|
+
return Object.keys(this.annotations);
|
20
|
+
}
|
21
|
+
hasKey(key) {
|
22
|
+
return this.annotations[key] !== undefined;
|
23
|
+
}
|
24
|
+
values(key) {
|
25
|
+
return this.annotations[key] || [];
|
26
|
+
}
|
27
|
+
}
|
28
|
+
exports.AnnotationStore = AnnotationStore;
|
29
|
+
//# sourceMappingURL=annotations.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../src/annotations/annotations.ts"],"names":[],"mappings":";;;AA8BA;;GAEG;AACH,MAAa,eAAe;IAClB,WAAW,CAA2B;IAC9C;QACE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;CACF;AAxBD,0CAwBC"}
|
@@ -1,16 +1,44 @@
|
|
1
|
+
import { Annotated, Annotations } from "../annotations/annotations.js";
|
1
2
|
import { ConditionOperation } from "./conditionOperation.js";
|
2
3
|
export interface Condition {
|
4
|
+
/**
|
5
|
+
* Returns the operation of the condition. For example "StringEquals" or "StringLike".
|
6
|
+
*
|
7
|
+
* @returns the operation of the condition.
|
8
|
+
*/
|
3
9
|
operation(): ConditionOperation;
|
10
|
+
/**
|
11
|
+
* Returns the key of the condition. For example "aws:PrincipalOrgID".
|
12
|
+
*
|
13
|
+
* @returns the condition key of the action
|
14
|
+
*/
|
4
15
|
conditionKey(): string;
|
16
|
+
/**
|
17
|
+
* Returns the values of the condition. For example ["o-1234567890abcdef0"].
|
18
|
+
*
|
19
|
+
* @returns the values of the condition.
|
20
|
+
*/
|
5
21
|
conditionValues(): string[];
|
22
|
+
/**
|
23
|
+
* Checks if the the condition values are an array.
|
24
|
+
*
|
25
|
+
* @returns true if the condition values are an array, false otherwise.
|
26
|
+
*/
|
27
|
+
valueIsArray(): boolean;
|
6
28
|
}
|
7
|
-
export
|
29
|
+
export interface AnnotatedCondition extends Condition, Annotated {
|
30
|
+
}
|
31
|
+
export declare class ConditionImpl implements Condition, AnnotatedCondition {
|
8
32
|
private readonly op;
|
9
33
|
private readonly key;
|
10
34
|
private readonly values;
|
35
|
+
private readonly annotations;
|
11
36
|
constructor(op: string, key: string, values: string | string[]);
|
37
|
+
addAnnotation(key: string, value: string): void;
|
38
|
+
getAnnotations(): Annotations;
|
12
39
|
operation(): ConditionOperation;
|
13
40
|
conditionKey(): string;
|
14
41
|
conditionValues(): string[];
|
42
|
+
valueIsArray(): boolean;
|
15
43
|
}
|
16
44
|
//# sourceMappingURL=condition.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA0B,MAAM,yBAAyB,CAAA;AAEpF,MAAM,WAAW,SAAS;IACxB,SAAS,IAAI,kBAAkB,CAAA;
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAA0B,MAAM,yBAAyB,CAAA;AAEpF,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,SAAS,IAAI,kBAAkB,CAAA;IAE/B;;;;OAIG;IACH,YAAY,IAAI,MAAM,CAAA;IAEtB;;;;OAIG;IACH,eAAe,IAAI,MAAM,EAAE,CAAA;IAE3B;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS,EAAE,SAAS;CAAG;AAEnE,qBAAa,aAAc,YAAW,SAAS,EAAE,kBAAkB;IAGrD,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAU,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAU,OAAO,CAAC,QAAQ,CAAC,MAAM;IAD9F,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;gBACxC,EAAE,EAAE,MAAM,EAAmB,GAAG,EAAE,MAAM,EAAmB,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAE1G,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,cAAc,IAAI,WAAW;IAI7B,SAAS,IAAI,kBAAkB;IAI/B,YAAY,IAAI,MAAM;IAItB,eAAe,IAAI,MAAM,EAAE;IAI3B,YAAY,IAAI,OAAO;CAK/B"}
|
@@ -1,16 +1,24 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.ConditionImpl = void 0;
|
4
|
+
const annotations_js_1 = require("../annotations/annotations.js");
|
4
5
|
const conditionOperation_js_1 = require("./conditionOperation.js");
|
5
6
|
class ConditionImpl {
|
6
7
|
op;
|
7
8
|
key;
|
8
9
|
values;
|
10
|
+
annotations = new annotations_js_1.AnnotationStore();
|
9
11
|
constructor(op, key, values) {
|
10
12
|
this.op = op;
|
11
13
|
this.key = key;
|
12
14
|
this.values = values;
|
13
15
|
}
|
16
|
+
addAnnotation(key, value) {
|
17
|
+
this.annotations.addAnnotation(key, value);
|
18
|
+
}
|
19
|
+
getAnnotations() {
|
20
|
+
return this.annotations;
|
21
|
+
}
|
14
22
|
operation() {
|
15
23
|
return new conditionOperation_js_1.ConditionOperationImpl(this.op);
|
16
24
|
}
|
@@ -20,6 +28,9 @@ class ConditionImpl {
|
|
20
28
|
conditionValues() {
|
21
29
|
return typeof this.values === 'string' ? [this.values] : this.values;
|
22
30
|
}
|
31
|
+
valueIsArray() {
|
32
|
+
return Array.isArray(this.values);
|
33
|
+
}
|
23
34
|
}
|
24
35
|
exports.ConditionImpl = ConditionImpl;
|
25
36
|
//# sourceMappingURL=condition.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":";;;AAAA,mEAAoF;
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":";;;AAAA,kEAAuF;AACvF,mEAAoF;AAkCpF,MAAa,aAAa;IAGK;IAA6B;IAA8B;IADvE,WAAW,GAAoB,IAAI,gCAAe,EAAE,CAAA;IACrE,YAA6B,EAAU,EAAmB,GAAW,EAAmB,MAAyB;QAApF,OAAE,GAAF,EAAE,CAAQ;QAAmB,QAAG,GAAH,GAAG,CAAQ;QAAmB,WAAM,GAAN,MAAM,CAAmB;IAAG,CAAC;IAE9G,aAAa,CAAC,GAAW,EAAE,KAAa;QAC7C,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC5C,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,8CAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAEM,eAAe;QACpB,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IACtE,CAAC;IAEM,YAAY;QACjB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;CAGF;AA9BD,sCA8BC"}
|
package/dist/cjs/parser.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Policy } from "./policies/policy.js";
|
1
|
+
import { AnnotatedPolicy, type Policy } from "./policies/policy.js";
|
2
2
|
/**
|
3
3
|
* Load a Policy from a policy document
|
4
4
|
*
|
@@ -6,4 +6,5 @@ import { Policy } from "./policies/policy.js";
|
|
6
6
|
* @returns the Policy object for the backing policy document
|
7
7
|
*/
|
8
8
|
export declare function loadPolicy(policyDocument: any): Policy;
|
9
|
+
export declare function loadAnnotatedPolicy(policyDocument: any): AnnotatedPolicy;
|
9
10
|
//# sourceMappingURL=parser.d.ts.map
|
package/dist/cjs/parser.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAC;
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,GAAG,GAAG,MAAM,CAEtD;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,GAAG,GAAG,eAAe,CAExE"}
|
package/dist/cjs/parser.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.loadPolicy = loadPolicy;
|
4
|
+
exports.loadAnnotatedPolicy = loadAnnotatedPolicy;
|
4
5
|
const policy_js_1 = require("./policies/policy.js");
|
5
6
|
/**
|
6
7
|
* Load a Policy from a policy document
|
@@ -9,6 +10,9 @@ const policy_js_1 = require("./policies/policy.js");
|
|
9
10
|
* @returns the Policy object for the backing policy document
|
10
11
|
*/
|
11
12
|
function loadPolicy(policyDocument) {
|
12
|
-
return new policy_js_1.PolicyImpl(policyDocument);
|
13
|
+
return new policy_js_1.PolicyImpl(policyDocument, false);
|
14
|
+
}
|
15
|
+
function loadAnnotatedPolicy(policyDocument) {
|
16
|
+
return new policy_js_1.PolicyImpl(policyDocument, true);
|
13
17
|
}
|
14
18
|
//# sourceMappingURL=parser.js.map
|
package/dist/cjs/parser.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":";;AAQA,gCAEC;
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":";;AAQA,gCAEC;AAED,kDAEC;AAdD,oDAAgF;AAEhF;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,cAAmB;IAC5C,OAAO,IAAI,sBAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,mBAAmB,CAAC,cAAmB;IACrD,OAAO,IAAI,sBAAU,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC"}
|
@@ -1,14 +1,39 @@
|
|
1
|
-
import {
|
1
|
+
import { Annotated, Annotations } from '../annotations/annotations.js';
|
2
|
+
import { AnnotatedStatement, Statement } from '../statements/statement.js';
|
2
3
|
export interface Policy {
|
4
|
+
/**
|
5
|
+
* The version of the policy
|
6
|
+
*/
|
3
7
|
version(): string | undefined;
|
8
|
+
/**
|
9
|
+
* The ID of the policy
|
10
|
+
*/
|
4
11
|
id(): string | undefined;
|
12
|
+
/**
|
13
|
+
* The statements in the policy
|
14
|
+
*/
|
5
15
|
statements(): Statement[];
|
16
|
+
/**
|
17
|
+
* Whether the statement is an array
|
18
|
+
*/
|
19
|
+
statementIsArray(): boolean;
|
6
20
|
}
|
7
|
-
export
|
21
|
+
export interface AnnotatedPolicy extends Policy, Annotated {
|
22
|
+
statements(): AnnotatedStatement[];
|
23
|
+
}
|
24
|
+
export declare class PolicyImpl implements Policy, AnnotatedPolicy {
|
8
25
|
private readonly policyObject;
|
9
|
-
|
26
|
+
private readonly stateful;
|
27
|
+
private readonly annotationStore;
|
28
|
+
private statementsCache;
|
29
|
+
constructor(policyObject: any, stateful: boolean);
|
10
30
|
version(): string | undefined;
|
11
31
|
id(): string | undefined;
|
12
32
|
statements(): Statement[];
|
33
|
+
statements(): AnnotatedStatement[];
|
34
|
+
private newStatements;
|
35
|
+
addAnnotation(key: string, value: string): void;
|
36
|
+
getAnnotations(): Annotations;
|
37
|
+
statementIsArray(): boolean;
|
13
38
|
}
|
14
39
|
//# sourceMappingURL=policy.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/policies/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,4BAA4B,CAAA;
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/policies/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAiB,MAAM,4BAA4B,CAAA;AAEzF,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,OAAO,IAAI,MAAM,GAAG,SAAS,CAAA;IAE7B;;OAEG;IACH,EAAE,IAAI,MAAM,GAAG,SAAS,CAAA;IAExB;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE,CAAA;IAEzB;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,MAAM,EAAE,SAAS;IACxD,UAAU,IAAI,kBAAkB,EAAE,CAAA;CACnC;AAED,qBAAa,UAAW,YAAW,MAAM,EAAE,eAAe;IAI5C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFzE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,eAAe,CAAyB;gBACnB,YAAY,EAAE,GAAG,EAAmB,QAAQ,EAAE,OAAO;IAI3E,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,EAAE,IAAI,MAAM,GAAG,SAAS;IAIxB,UAAU,IAAI,SAAS,EAAE;IACzB,UAAU,IAAI,kBAAkB,EAAE;IAYzC,OAAO,CAAC,aAAa;IAId,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,cAAc,IAAI,WAAW;IAI7B,gBAAgB,IAAI,OAAO;CAGnC"}
|
@@ -1,11 +1,17 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.PolicyImpl = void 0;
|
4
|
+
const annotations_js_1 = require("../annotations/annotations.js");
|
4
5
|
const statement_js_1 = require("../statements/statement.js");
|
5
6
|
class PolicyImpl {
|
6
7
|
policyObject;
|
7
|
-
|
8
|
+
stateful;
|
9
|
+
annotationStore;
|
10
|
+
statementsCache;
|
11
|
+
constructor(policyObject, stateful) {
|
8
12
|
this.policyObject = policyObject;
|
13
|
+
this.stateful = stateful;
|
14
|
+
this.annotationStore = new annotations_js_1.AnnotationStore();
|
9
15
|
}
|
10
16
|
version() {
|
11
17
|
return this.policyObject.Version;
|
@@ -14,7 +20,25 @@ class PolicyImpl {
|
|
14
20
|
return this.policyObject.Id;
|
15
21
|
}
|
16
22
|
statements() {
|
17
|
-
|
23
|
+
if (!this.stateful) {
|
24
|
+
return this.newStatements();
|
25
|
+
}
|
26
|
+
if (!this.statementsCache) {
|
27
|
+
this.statementsCache = this.newStatements();
|
28
|
+
}
|
29
|
+
return this.statementsCache;
|
30
|
+
}
|
31
|
+
newStatements() {
|
32
|
+
return [this.policyObject.Statement].flat().map((statement, index) => new statement_js_1.StatementImpl(statement, index + 1, this.stateful));
|
33
|
+
}
|
34
|
+
addAnnotation(key, value) {
|
35
|
+
this.annotationStore.addAnnotation(key, value);
|
36
|
+
}
|
37
|
+
getAnnotations() {
|
38
|
+
return this.annotationStore;
|
39
|
+
}
|
40
|
+
statementIsArray() {
|
41
|
+
return Array.isArray(this.policyObject.Statement);
|
18
42
|
}
|
19
43
|
}
|
20
44
|
exports.PolicyImpl = PolicyImpl;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/policies/policy.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/policies/policy.ts"],"names":[],"mappings":";;;AAAA,kEAAuF;AACvF,6DAAyF;AA4BzF,MAAa,UAAU;IAIQ;IAAoC;IAFhD,eAAe,CAAiB;IACzC,eAAe,CAAyB;IAChD,YAA6B,YAAiB,EAAmB,QAAiB;QAArD,iBAAY,GAAZ,YAAY,CAAK;QAAmB,aAAQ,GAAR,QAAQ,CAAS;QAChF,IAAI,CAAC,eAAe,GAAG,IAAI,gCAAe,EAAE,CAAA;IAC9C,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAA;IAClC,CAAC;IAEM,EAAE;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAA;IAC7B,CAAC;IAIM,UAAU;QACf,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;QAC7B,CAAC;QAED,IAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAEO,aAAa;QACnB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,SAAc,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,4BAAa,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACpI,CAAC;IAEM,aAAa,CAAC,GAAW,EAAE,KAAa;QAC7C,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAEM,gBAAgB;QACrB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IACnD,CAAC;CACF;AA5CD,gCA4CC"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Annotated, Annotations } from "../annotations/annotations.js";
|
1
2
|
export type PrincipalType = 'AWS' | 'Service' | 'Federated' | 'CanonicalUser';
|
2
3
|
/**
|
3
4
|
* A Principal in a policy statement
|
@@ -40,6 +41,8 @@ export interface Principal {
|
|
40
41
|
*/
|
41
42
|
isAccountPrincipal(): this is AccountPrincipal;
|
42
43
|
}
|
44
|
+
export interface AnnotatedPrincipal extends Principal, Annotated {
|
45
|
+
}
|
43
46
|
/**
|
44
47
|
* A wildcard principal: `"*"`
|
45
48
|
*/
|
@@ -98,10 +101,13 @@ export interface CanonicalUserPrincipal extends Principal {
|
|
98
101
|
*/
|
99
102
|
canonicalUser(): string;
|
100
103
|
}
|
101
|
-
export declare class PrincipalImpl implements Principal, WildcardPrincipal, AccountPrincipal, UniqueIdPrincipal, AwsPrincipal, ServicePrincipal, FederatedPrincipal, CanonicalUserPrincipal {
|
104
|
+
export declare class PrincipalImpl implements Principal, AnnotatedPrincipal, WildcardPrincipal, AccountPrincipal, UniqueIdPrincipal, AwsPrincipal, ServicePrincipal, FederatedPrincipal, CanonicalUserPrincipal {
|
102
105
|
private readonly principalType;
|
103
106
|
private readonly principalId;
|
107
|
+
private readonly annotationStore;
|
104
108
|
constructor(principalType: PrincipalType, principalId: string);
|
109
|
+
addAnnotation(key: string, value: string): void;
|
110
|
+
getAnnotations(): Annotations;
|
105
111
|
value(): string;
|
106
112
|
type(): PrincipalType;
|
107
113
|
isWildcardPrincipal(): this is WildcardPrincipal;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../../../src/principals/principal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,eAAe,CAAA;AAE7E;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,IAAI,aAAa,CAAA;IAErB;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,mBAAmB,IAAI,IAAI,IAAI,iBAAiB,CAAA;IAEhD;;OAEG;IACH,kBAAkB,IAAI,IAAI,IAAI,gBAAgB,CAAA;IAE9C;;OAEG;IACH,cAAc,IAAI,IAAI,IAAI,YAAY,CAAA;IAEtC;;OAEG;IACH,mBAAmB,IAAI,IAAI,IAAI,iBAAiB,CAAA;IAEhD;;OAEG;IACH,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAA;IAElD;;OAEG;IACH,wBAAwB,IAAI,IAAI,IAAI,sBAAsB,CAAA;IAE1D;;OAEG;IACH,kBAAkB,IAAI,IAAI,IAAI,gBAAgB,CAAA;CAE/C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD;;OAEG;IACH,QAAQ,IAAI,GAAG,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAEjD;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,GAAG,IAAI,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,QAAQ,IAAI,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAEjD;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD;;OAEG;IACH,aAAa,IAAI,MAAM,CAAA;CACxB;AAMD,qBAAa,aAAc,YAAW,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,sBAAsB;
|
1
|
+
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../../../src/principals/principal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,+BAA+B,CAAA;AAEvF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,eAAe,CAAA;AAE7E;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,IAAI,IAAI,aAAa,CAAA;IAErB;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,mBAAmB,IAAI,IAAI,IAAI,iBAAiB,CAAA;IAEhD;;OAEG;IACH,kBAAkB,IAAI,IAAI,IAAI,gBAAgB,CAAA;IAE9C;;OAEG;IACH,cAAc,IAAI,IAAI,IAAI,YAAY,CAAA;IAEtC;;OAEG;IACH,mBAAmB,IAAI,IAAI,IAAI,iBAAiB,CAAA;IAEhD;;OAEG;IACH,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAA;IAElD;;OAEG;IACH,wBAAwB,IAAI,IAAI,IAAI,sBAAsB,CAAA;IAE1D;;OAEG;IACH,kBAAkB,IAAI,IAAI,IAAI,gBAAgB,CAAA;CAE/C;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS,EAAE,SAAS;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD;;OAEG;IACH,QAAQ,IAAI,GAAG,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAEjD;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,GAAG,IAAI,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,QAAQ,IAAI,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAEjD;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD;;OAEG;IACH,aAAa,IAAI,MAAM,CAAA;CACxB;AAMD,qBAAa,aAAc,YAAW,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,sBAAsB;IAGzL,OAAO,CAAC,QAAQ,CAAC,aAAa;IAAiB,OAAO,CAAC,QAAQ,CAAC,WAAW;IADvF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;gBACpB,aAAa,EAAE,aAAa,EAAmB,WAAW,EAAE,MAAM;IAIxF,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,cAAc,IAAI,WAAW;IAI7B,KAAK,IAAI,MAAM;IAIf,IAAI,IAAI,aAAa;IAIrB,mBAAmB,IAAI,IAAI,IAAI,iBAAiB;IAIhD,kBAAkB,IAAI,IAAI,IAAI,gBAAgB;IAO9C,mBAAmB,IAAI,IAAI,IAAI,iBAAiB;IAOhD,cAAc,IAAI,IAAI,IAAI,YAAY;IAQtC,kBAAkB,IAAI,IAAI,IAAI,gBAAgB;IAI9C,oBAAoB,IAAI,IAAI,IAAI,kBAAkB;IAIlD,wBAAwB,IAAI,IAAI,IAAI,sBAAsB;IAI1D,QAAQ,IAAI,GAAG;IAOf,SAAS,IAAI,MAAM;IAUnB,QAAQ,IAAI,MAAM;IAOlB,GAAG,IAAI,MAAM;IAOb,OAAO,IAAI,MAAM;IAOjB,SAAS,IAAI,MAAM;IAOnB,aAAa,IAAI,MAAM;CAO/B"}
|
@@ -1,15 +1,24 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.PrincipalImpl = void 0;
|
4
|
+
const annotations_js_1 = require("../annotations/annotations.js");
|
4
5
|
const accountIdRegex = /^[0-9]{12}$/;
|
5
6
|
const accountArnRegex = /^arn:.*?:iam::[0-9]{12}:root$/;
|
6
7
|
const uniqueIdRegex = /^A[0-9A-Z]+$/;
|
7
8
|
class PrincipalImpl {
|
8
9
|
principalType;
|
9
10
|
principalId;
|
11
|
+
annotationStore;
|
10
12
|
constructor(principalType, principalId) {
|
11
13
|
this.principalType = principalType;
|
12
14
|
this.principalId = principalId;
|
15
|
+
this.annotationStore = new annotations_js_1.AnnotationStore();
|
16
|
+
}
|
17
|
+
addAnnotation(key, value) {
|
18
|
+
this.annotationStore.addAnnotation(key, value);
|
19
|
+
}
|
20
|
+
getAnnotations() {
|
21
|
+
return this.annotationStore;
|
13
22
|
}
|
14
23
|
value() {
|
15
24
|
return this.principalId;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../../../src/principals/principal.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../../../src/principals/principal.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Annotated, Annotations } from "../annotations/annotations.js";
|
1
2
|
/**
|
2
3
|
* A resource string in an IAM policy
|
3
4
|
*/
|
@@ -15,6 +16,8 @@ export interface Resource {
|
|
15
16
|
*/
|
16
17
|
isArnResource(): this is ArnResource;
|
17
18
|
}
|
19
|
+
export interface AnnotatedResource extends Resource, Annotated {
|
20
|
+
}
|
18
21
|
export interface ArnResource extends Resource {
|
19
22
|
/**
|
20
23
|
* The partition of the ARN
|
@@ -37,9 +40,12 @@ export interface ArnResource extends Resource {
|
|
37
40
|
*/
|
38
41
|
resource(): string;
|
39
42
|
}
|
40
|
-
export declare class ResourceImpl implements Resource, ArnResource {
|
43
|
+
export declare class ResourceImpl implements Resource, AnnotatedResource, ArnResource {
|
41
44
|
private readonly rawValue;
|
45
|
+
private readonly annotationStore;
|
42
46
|
constructor(rawValue: string);
|
47
|
+
addAnnotation(key: string, value: string): void;
|
48
|
+
getAnnotations(): Annotations;
|
43
49
|
partition(): string;
|
44
50
|
service(): string;
|
45
51
|
region(): string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/resources/resource.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/resources/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,+BAA+B,CAAC;AAGxF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,cAAc,IAAI,OAAO,CAAA;IAEzB;;OAEG;IACH,aAAa,IAAI,IAAI,IAAI,WAAW,CAAA;CACrC;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,EAAE,SAAS;CAAG;AAEjE,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;IAEnB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAA;CACnB;AAGD,qBAAa,YAAa,YAAW,QAAQ,EAAE,iBAAiB,EAAE,WAAW;IAE/D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IADrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0C;gBAC7C,QAAQ,EAAE,MAAM;IAG7C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,cAAc,IAAI,WAAW;IAI7B,SAAS,IAAI,MAAM;IAOnB,OAAO,IAAI,MAAM;IAOjB,MAAM,IAAI,MAAM;IAOhB,OAAO,IAAI,MAAM;IAOjB,QAAQ,IAAI,MAAM;IAOlB,KAAK,IAAI,MAAM;IAIf,cAAc,IAAI,OAAO;IAIzB,aAAa,IAAI,IAAI,IAAI,WAAW;CAGrC"}
|
@@ -1,12 +1,20 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.ResourceImpl = void 0;
|
4
|
+
const annotations_js_1 = require("../annotations/annotations.js");
|
4
5
|
const utils_js_1 = require("../utils.js");
|
5
6
|
class ResourceImpl {
|
6
7
|
rawValue;
|
8
|
+
annotationStore = new annotations_js_1.AnnotationStore();
|
7
9
|
constructor(rawValue) {
|
8
10
|
this.rawValue = rawValue;
|
9
11
|
}
|
12
|
+
addAnnotation(key, value) {
|
13
|
+
this.annotationStore.addAnnotation(key, value);
|
14
|
+
}
|
15
|
+
getAnnotations() {
|
16
|
+
return this.annotationStore;
|
17
|
+
}
|
10
18
|
partition() {
|
11
19
|
if (!this.isArnResource()) {
|
12
20
|
throw new Error('Called partition on a resource without an ARN, use isArnResource before calling partition');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/resources/resource.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/resources/resource.ts"],"names":[],"mappings":";;;AAAA,kEAAwF;AACxF,0CAA6C;AAoD7C,MAAa,YAAY;IAEM;IADZ,eAAe,GAAoB,IAAI,gCAAe,EAAE,CAAC;IAC1E,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAGjD,aAAa,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAED,SAAS;QACP,IAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAA;QAC9G,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,IAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAA;QAC1G,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,MAAM;QACJ,IAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAA;QACxG,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,IAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAA;QAC1G,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,QAAQ;QACN,IAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAA;QAC5G,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,cAAc;QACZ,OAAO,IAAA,yBAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,aAAa;QACX,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAChC,CAAC;CACF;AA3DD,oCA2DC"}
|