@cloud-copilot/iam-policy 0.1.3 → 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/cjs/validate/validate.d.ts.map +1 -1
- package/dist/cjs/validate/validate.js +76 -1
- package/dist/cjs/validate/validate.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/dist/esm/validate/validate.d.ts.map +1 -1
- package/dist/esm/validate/validate.js +76 -1
- package/dist/esm/validate/validate.js.map +1 -1
- package/package.json +1 -2
@@ -1,7 +1,15 @@
|
|
1
|
+
import { AnnotationStore } from "../annotations/annotations.js";
|
1
2
|
import { isAllWildcards } from "../utils.js";
|
2
3
|
export class ActionImpl {
|
3
4
|
constructor(rawValue) {
|
4
5
|
this.rawValue = rawValue;
|
6
|
+
this.annotationStore = new AnnotationStore();
|
7
|
+
}
|
8
|
+
addAnnotation(key, value) {
|
9
|
+
this.annotationStore.addAnnotation(key, value);
|
10
|
+
}
|
11
|
+
getAnnotations() {
|
12
|
+
return this.annotationStore;
|
5
13
|
}
|
6
14
|
type() {
|
7
15
|
if (isAllWildcards(this.rawValue)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/actions/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/actions/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AA8D5C,MAAM,OAAO,UAAU;IAGrB,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,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,cAAc,CAAC,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"}
|
@@ -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,24 @@
|
|
1
|
+
/**
|
2
|
+
* A store for policy annotations
|
3
|
+
*/
|
4
|
+
export class AnnotationStore {
|
5
|
+
constructor() {
|
6
|
+
this.annotations = {};
|
7
|
+
}
|
8
|
+
addAnnotation(key, value) {
|
9
|
+
if (!this.annotations[key]) {
|
10
|
+
this.annotations[key] = [];
|
11
|
+
}
|
12
|
+
this.annotations[key].push(value);
|
13
|
+
}
|
14
|
+
keys() {
|
15
|
+
return Object.keys(this.annotations);
|
16
|
+
}
|
17
|
+
hasKey(key) {
|
18
|
+
return this.annotations[key] !== undefined;
|
19
|
+
}
|
20
|
+
values(key) {
|
21
|
+
return this.annotations[key] || [];
|
22
|
+
}
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=annotations.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../src/annotations/annotations.ts"],"names":[],"mappings":"AA8BA;;GAEG;AACH,MAAM,OAAO,eAAe;IAE1B;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"}
|
@@ -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,9 +1,17 @@
|
|
1
|
+
import { AnnotationStore } from "../annotations/annotations.js";
|
1
2
|
import { ConditionOperationImpl } from "./conditionOperation.js";
|
2
3
|
export class ConditionImpl {
|
3
4
|
constructor(op, key, values) {
|
4
5
|
this.op = op;
|
5
6
|
this.key = key;
|
6
7
|
this.values = values;
|
8
|
+
this.annotations = new AnnotationStore();
|
9
|
+
}
|
10
|
+
addAnnotation(key, value) {
|
11
|
+
this.annotations.addAnnotation(key, value);
|
12
|
+
}
|
13
|
+
getAnnotations() {
|
14
|
+
return this.annotations;
|
7
15
|
}
|
8
16
|
operation() {
|
9
17
|
return new ConditionOperationImpl(this.op);
|
@@ -14,5 +22,8 @@ export class ConditionImpl {
|
|
14
22
|
conditionValues() {
|
15
23
|
return typeof this.values === 'string' ? [this.values] : this.values;
|
16
24
|
}
|
25
|
+
valueIsArray() {
|
26
|
+
return Array.isArray(this.values);
|
27
|
+
}
|
17
28
|
}
|
18
29
|
//# sourceMappingURL=condition.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAsB,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAkCpF,MAAM,OAAO,aAAa;IAGxB,YAA6B,EAAU,EAAmB,GAAW,EAAmB,MAAyB;QAApF,OAAE,GAAF,EAAE,CAAQ;QAAmB,QAAG,GAAH,GAAG,CAAQ;QAAmB,WAAM,GAAN,MAAM,CAAmB;QADhG,gBAAW,GAAoB,IAAI,eAAe,EAAE,CAAA;IAC+C,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,sBAAsB,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"}
|
package/dist/esm/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/esm/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/esm/parser.js
CHANGED
@@ -6,6 +6,9 @@ import { PolicyImpl } from "./policies/policy.js";
|
|
6
6
|
* @returns the Policy object for the backing policy document
|
7
7
|
*/
|
8
8
|
export function loadPolicy(policyDocument) {
|
9
|
-
return new PolicyImpl(policyDocument);
|
9
|
+
return new PolicyImpl(policyDocument, false);
|
10
|
+
}
|
11
|
+
export function loadAnnotatedPolicy(policyDocument) {
|
12
|
+
return new PolicyImpl(policyDocument, true);
|
10
13
|
}
|
11
14
|
//# sourceMappingURL=parser.js.map
|
package/dist/esm/parser.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,cAAmB;IAC5C,OAAO,IAAI,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,cAAmB;IACrD,OAAO,IAAI,UAAU,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,7 +1,10 @@
|
|
1
|
+
import { AnnotationStore } from '../annotations/annotations.js';
|
1
2
|
import { StatementImpl } from '../statements/statement.js';
|
2
3
|
export class PolicyImpl {
|
3
|
-
constructor(policyObject) {
|
4
|
+
constructor(policyObject, stateful) {
|
4
5
|
this.policyObject = policyObject;
|
6
|
+
this.stateful = stateful;
|
7
|
+
this.annotationStore = new AnnotationStore();
|
5
8
|
}
|
6
9
|
version() {
|
7
10
|
return this.policyObject.Version;
|
@@ -10,7 +13,25 @@ export class PolicyImpl {
|
|
10
13
|
return this.policyObject.Id;
|
11
14
|
}
|
12
15
|
statements() {
|
13
|
-
|
16
|
+
if (!this.stateful) {
|
17
|
+
return this.newStatements();
|
18
|
+
}
|
19
|
+
if (!this.statementsCache) {
|
20
|
+
this.statementsCache = this.newStatements();
|
21
|
+
}
|
22
|
+
return this.statementsCache;
|
23
|
+
}
|
24
|
+
newStatements() {
|
25
|
+
return [this.policyObject.Statement].flat().map((statement, index) => new StatementImpl(statement, index + 1, this.stateful));
|
26
|
+
}
|
27
|
+
addAnnotation(key, value) {
|
28
|
+
this.annotationStore.addAnnotation(key, value);
|
29
|
+
}
|
30
|
+
getAnnotations() {
|
31
|
+
return this.annotationStore;
|
32
|
+
}
|
33
|
+
statementIsArray() {
|
34
|
+
return Array.isArray(this.policyObject.Statement);
|
14
35
|
}
|
15
36
|
}
|
16
37
|
//# sourceMappingURL=policy.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/policies/policy.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/policies/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAiC,aAAa,EAAE,MAAM,4BAA4B,CAAA;AA4BzF,MAAM,OAAO,UAAU;IAIrB,YAA6B,YAAiB,EAAmB,QAAiB;QAArD,iBAAY,GAAZ,YAAY,CAAK;QAAmB,aAAQ,GAAR,QAAQ,CAAS;QAChF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,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,aAAa,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"}
|
@@ -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,3 +1,4 @@
|
|
1
|
+
import { AnnotationStore } from "../annotations/annotations.js";
|
1
2
|
const accountIdRegex = /^[0-9]{12}$/;
|
2
3
|
const accountArnRegex = /^arn:.*?:iam::[0-9]{12}:root$/;
|
3
4
|
const uniqueIdRegex = /^A[0-9A-Z]+$/;
|
@@ -5,6 +6,13 @@ export class PrincipalImpl {
|
|
5
6
|
constructor(principalType, principalId) {
|
6
7
|
this.principalType = principalType;
|
7
8
|
this.principalId = principalId;
|
9
|
+
this.annotationStore = new AnnotationStore();
|
10
|
+
}
|
11
|
+
addAnnotation(key, value) {
|
12
|
+
this.annotationStore.addAnnotation(key, value);
|
13
|
+
}
|
14
|
+
getAnnotations() {
|
15
|
+
return this.annotationStore;
|
8
16
|
}
|
9
17
|
value() {
|
10
18
|
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,7 +1,15 @@
|
|
1
|
+
import { AnnotationStore } from "../annotations/annotations.js";
|
1
2
|
import { isAllWildcards } from "../utils.js";
|
2
3
|
export class ResourceImpl {
|
3
4
|
constructor(rawValue) {
|
4
5
|
this.rawValue = rawValue;
|
6
|
+
this.annotationStore = new AnnotationStore();
|
7
|
+
}
|
8
|
+
addAnnotation(key, value) {
|
9
|
+
this.annotationStore.addAnnotation(key, value);
|
10
|
+
}
|
11
|
+
getAnnotations() {
|
12
|
+
return this.annotationStore;
|
5
13
|
}
|
6
14
|
partition() {
|
7
15
|
if (!this.isArnResource()) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/resources/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/resources/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAoD7C,MAAM,OAAO,YAAY;IAEvB,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAD5B,oBAAe,GAAoB,IAAI,eAAe,EAAE,CAAC;IAC1B,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,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,aAAa;QACX,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAChC,CAAC;CACF"}
|