@cloud-copilot/iam-policy 0.1.4 → 0.1.5-1

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.
Files changed (73) hide show
  1. package/dist/cjs/actions/action.d.ts +7 -1
  2. package/dist/cjs/actions/action.d.ts.map +1 -1
  3. package/dist/cjs/actions/action.js +9 -0
  4. package/dist/cjs/actions/action.js.map +1 -1
  5. package/dist/cjs/annotations/annotations.d.ts +55 -0
  6. package/dist/cjs/annotations/annotations.d.ts.map +1 -0
  7. package/dist/cjs/annotations/annotations.js +29 -0
  8. package/dist/cjs/annotations/annotations.js.map +1 -0
  9. package/dist/cjs/conditions/condition.d.ts +29 -1
  10. package/dist/cjs/conditions/condition.d.ts.map +1 -1
  11. package/dist/cjs/conditions/condition.js +11 -0
  12. package/dist/cjs/conditions/condition.js.map +1 -1
  13. package/dist/cjs/index.d.ts +1 -1
  14. package/dist/cjs/index.d.ts.map +1 -1
  15. package/dist/cjs/index.js +2 -1
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/parser.d.ts +2 -1
  18. package/dist/cjs/parser.d.ts.map +1 -1
  19. package/dist/cjs/parser.js +5 -1
  20. package/dist/cjs/parser.js.map +1 -1
  21. package/dist/cjs/policies/policy.d.ts +28 -3
  22. package/dist/cjs/policies/policy.d.ts.map +1 -1
  23. package/dist/cjs/policies/policy.js +26 -2
  24. package/dist/cjs/policies/policy.js.map +1 -1
  25. package/dist/cjs/principals/principal.d.ts +7 -1
  26. package/dist/cjs/principals/principal.d.ts.map +1 -1
  27. package/dist/cjs/principals/principal.js +9 -0
  28. package/dist/cjs/principals/principal.js.map +1 -1
  29. package/dist/cjs/resources/resource.d.ts +7 -1
  30. package/dist/cjs/resources/resource.d.ts.map +1 -1
  31. package/dist/cjs/resources/resource.js +8 -0
  32. package/dist/cjs/resources/resource.js.map +1 -1
  33. package/dist/cjs/statements/statement.d.ts +112 -12
  34. package/dist/cjs/statements/statement.d.ts.map +1 -1
  35. package/dist/cjs/statements/statement.js +112 -7
  36. package/dist/cjs/statements/statement.js.map +1 -1
  37. package/dist/esm/actions/action.d.ts +7 -1
  38. package/dist/esm/actions/action.d.ts.map +1 -1
  39. package/dist/esm/actions/action.js +8 -0
  40. package/dist/esm/actions/action.js.map +1 -1
  41. package/dist/esm/annotations/annotations.d.ts +55 -0
  42. package/dist/esm/annotations/annotations.d.ts.map +1 -0
  43. package/dist/esm/annotations/annotations.js +24 -0
  44. package/dist/esm/annotations/annotations.js.map +1 -0
  45. package/dist/esm/conditions/condition.d.ts +29 -1
  46. package/dist/esm/conditions/condition.d.ts.map +1 -1
  47. package/dist/esm/conditions/condition.js +11 -0
  48. package/dist/esm/conditions/condition.js.map +1 -1
  49. package/dist/esm/index.d.ts +1 -1
  50. package/dist/esm/index.d.ts.map +1 -1
  51. package/dist/esm/index.js +1 -1
  52. package/dist/esm/index.js.map +1 -1
  53. package/dist/esm/parser.d.ts +2 -1
  54. package/dist/esm/parser.d.ts.map +1 -1
  55. package/dist/esm/parser.js +4 -1
  56. package/dist/esm/parser.js.map +1 -1
  57. package/dist/esm/policies/policy.d.ts +28 -3
  58. package/dist/esm/policies/policy.d.ts.map +1 -1
  59. package/dist/esm/policies/policy.js +23 -2
  60. package/dist/esm/policies/policy.js.map +1 -1
  61. package/dist/esm/principals/principal.d.ts +7 -1
  62. package/dist/esm/principals/principal.d.ts.map +1 -1
  63. package/dist/esm/principals/principal.js +8 -0
  64. package/dist/esm/principals/principal.js.map +1 -1
  65. package/dist/esm/resources/resource.d.ts +7 -1
  66. package/dist/esm/resources/resource.d.ts.map +1 -1
  67. package/dist/esm/resources/resource.js +8 -0
  68. package/dist/esm/resources/resource.js.map +1 -1
  69. package/dist/esm/statements/statement.d.ts +112 -12
  70. package/dist/esm/statements/statement.d.ts.map +1 -1
  71. package/dist/esm/statements/statement.js +103 -7
  72. package/dist/esm/statements/statement.js.map +1 -1
  73. package/package.json +1 -2
@@ -1 +1 @@
1
- {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/conditions/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAQpF,MAAM,OAAO,aAAa;IACxB,YAA6B,EAAU,EAAmB,GAAW,EAAmB,MAAyB;QAApF,OAAE,GAAF,EAAE,CAAQ;QAAmB,QAAG,GAAH,GAAG,CAAQ;QAAmB,WAAM,GAAN,MAAM,CAAmB;IAAG,CAAC;IAE9G,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;CACF"}
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"}
@@ -1,7 +1,7 @@
1
1
  export type { Action, ActionType, ServiceAction, WildcardAction } from './actions/action.js';
2
2
  export type { Condition } from './conditions/condition.js';
3
3
  export type { ConditionOperation, SetOperator } from './conditions/conditionOperation.js';
4
- export { loadPolicy } from './parser.js';
4
+ export { loadAnnotatedPolicy, loadPolicy } from './parser.js';
5
5
  export type { Policy } from './policies/policy.js';
6
6
  export type { AccountPrincipal, AwsPrincipal, CanonicalUserPrincipal, FederatedPrincipal, Principal, PrincipalType, ServicePrincipal, WildcardPrincipal } from './principals/principal.js';
7
7
  export type { Resource } from './resources/resource.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC5F,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC1L,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACnL,OAAO,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC5F,YAAY,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC1L,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACnL,OAAO,EAAE,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACnF,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,6BAA6B,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { loadPolicy } from './parser.js';
1
+ export { loadAnnotatedPolicy, loadPolicy } from './parser.js';
2
2
  export { validatePolicySyntax } from './validate/validate.js';
3
3
  export { validateEndpointPolicy, validateIdentityPolicy, validateResourceControlPolicy, validateResourcePolicy, validateServiceControlPolicy, validateSessionPolicy, validateTrustPolicy } from './validate/validateTypes.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAKxC,OAAO,EAAE,oBAAoB,EAAwB,MAAM,wBAAwB,CAAA;AACnF,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAK7D,OAAO,EAAE,oBAAoB,EAAwB,MAAM,wBAAwB,CAAA;AACnF,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,6BAA6B,CAAA"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,GAAG,GAAG,MAAM,CAEtD"}
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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,cAAmB;IAC5C,OAAO,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;AACxC,CAAC"}
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 { Statement } from '../statements/statement.js';
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 declare class PolicyImpl {
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
- constructor(policyObject: any);
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;AAErE,MAAM,WAAW,MAAM;IACrB,OAAO,IAAI,MAAM,GAAG,SAAS,CAAA;IAC7B,EAAE,IAAI,MAAM,GAAG,SAAS,CAAA;IACxB,UAAU,IAAI,SAAS,EAAE,CAAA;CAC1B;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,GAAG;IAEvC,OAAO,IAAI,MAAM,GAAG,SAAS;IAI7B,EAAE,IAAI,MAAM,GAAG,SAAS;IAIxB,UAAU,IAAI,SAAS,EAAE;CAGjC"}
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
- return [this.policyObject.Statement].flat().map((statement, index) => new StatementImpl(statement, index + 1));
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,EAAa,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAQrE,MAAM,OAAO,UAAU;IACrB,YAA6B,YAAiB;QAAjB,iBAAY,GAAZ,YAAY,CAAK;IAAG,CAAC;IAE3C,OAAO;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAA;IAClC,CAAC;IAEM,EAAE;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAA;IAC7B,CAAC;IAEM,UAAU;QACf,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,CAAC,CAAC,CAAA;IACrH,CAAC;CACF"}
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;IACrK,OAAO,CAAC,QAAQ,CAAC,aAAa;IAAiB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAA1D,aAAa,EAAE,aAAa,EAAmB,WAAW,EAAE,MAAM;IAExF,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
+ {"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":"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"}
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":"AAEA;;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,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,WAAW;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C,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
+ {"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;AAkD7C,MAAM,OAAO,YAAY;IACvB,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD,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"}
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"}
@@ -1,7 +1,8 @@
1
- import { Action } from "../actions/action.js";
2
- import { Condition } from "../conditions/condition.js";
3
- import { Principal } from "../principals/principal.js";
4
- import { Resource } from "../resources/resource.js";
1
+ import { Action, AnnotatedAction } from "../actions/action.js";
2
+ import { Annotated, Annotations } from "../annotations/annotations.js";
3
+ import { AnnotatedCondition, Condition } from "../conditions/condition.js";
4
+ import { AnnotatedPrincipal, Principal } from "../principals/principal.js";
5
+ import { AnnotatedResource, Resource } from "../resources/resource.js";
5
6
  /**
6
7
  * Represents a statement in an IAM policy
7
8
  */
@@ -55,6 +56,15 @@ export interface Statement {
55
56
  */
56
57
  isNotResourceStatement(): this is NotResourceStatement;
57
58
  }
59
+ export interface AnnotatedStatement extends Annotated, Statement {
60
+ isActionStatement(): this is AnnotatedActionStatement;
61
+ isNotActionStatement(): this is AnnotatedNotActionStatement;
62
+ isPrincipalStatement(): this is AnnotatedPrincipalStatement;
63
+ isNotPrincipalStatement(): this is AnnotatedNotPrincipalStatement;
64
+ isResourceStatement(): this is AnnotatedResourceStatement;
65
+ isNotResourceStatement(): this is AnnotatedNotResourceStatement;
66
+ conditions(): AnnotatedCondition[];
67
+ }
58
68
  /**
59
69
  * Represents a statement in an IAM policy that has Action
60
70
  */
@@ -63,6 +73,16 @@ export interface ActionStatement extends Statement {
63
73
  * The actions for the statement
64
74
  */
65
75
  actions(): Action[];
76
+ /**
77
+ * Is the Action element an array of strings
78
+ */
79
+ actionIsArray(): boolean;
80
+ }
81
+ /**
82
+ * Represents a statement in an IAM policy that has Action and is annotated
83
+ */
84
+ export interface AnnotatedActionStatement extends Annotated, ActionStatement {
85
+ actions(): AnnotatedAction[];
66
86
  }
67
87
  /**
68
88
  * Represents a statement in an IAM policy that has NotAction
@@ -72,6 +92,16 @@ export interface NotActionStatement extends Statement {
72
92
  * The not actions for the statement
73
93
  */
74
94
  notActions(): Action[];
95
+ /**
96
+ * Is the NotAction element an array of strings
97
+ */
98
+ notActionIsArray(): boolean;
99
+ }
100
+ /**
101
+ * Represents a statement in an IAM policy that has NotAction and is annotated
102
+ */
103
+ export interface AnnotatedNotActionStatement extends Annotated, NotActionStatement {
104
+ notActions(): AnnotatedAction[];
75
105
  }
76
106
  /**
77
107
  * Represents a statement in an IAM policy that has Resource
@@ -82,9 +112,16 @@ export interface ResourceStatement extends Statement {
82
112
  */
83
113
  resources(): Resource[];
84
114
  /**
85
- * Is the resource element exactly a single wildcard: `"*"`
115
+ * Is the Resource element exactly a single wildcard: `"*"`
86
116
  */
87
117
  hasSingleResourceWildcard(): boolean;
118
+ /**
119
+ * Is the Resource element an array of strings
120
+ */
121
+ resourceIsArray(): boolean;
122
+ }
123
+ export interface AnnotatedResourceStatement extends Annotated, ResourceStatement {
124
+ resources(): AnnotatedResource[];
88
125
  }
89
126
  /**
90
127
  * Represents a statement in an IAM policy that has NotResource
@@ -94,6 +131,17 @@ export interface NotResourceStatement extends Statement {
94
131
  * The not resources for the statement
95
132
  */
96
133
  notResources(): Resource[];
134
+ /**
135
+ * Is the NotResource element exactly a single wildcard: `"*"`
136
+ */
137
+ hasSingleNotResourceWildcard(): boolean;
138
+ /**
139
+ * Is the resource element an array of strings
140
+ */
141
+ notResourceIsArray(): boolean;
142
+ }
143
+ export interface AnnotatedNotResourceStatement extends Annotated, NotResourceStatement {
144
+ notResources(): AnnotatedResource[];
97
145
  }
98
146
  /**
99
147
  * Represents a statement in an IAM policy that has Principal
@@ -103,6 +151,16 @@ export interface PrincipalStatement extends Statement {
103
151
  * The principals for the statement
104
152
  */
105
153
  principals(): Principal[];
154
+ /**
155
+ * Is the Principal type is an array of strings
156
+ *
157
+ * @param principalType the type of the Principal such as "AWS", "Service", etc.
158
+ * @returns true if the principal type is an array of strings in the raw policy
159
+ */
160
+ principalTypeIsArray(principalType: string): boolean;
161
+ }
162
+ export interface AnnotatedPrincipalStatement extends Annotated, PrincipalStatement {
163
+ principals(): AnnotatedPrincipal[];
106
164
  }
107
165
  /**
108
166
  * Represents a statement in an IAM policy that has NotPrincipal
@@ -112,23 +170,50 @@ export interface NotPrincipalStatement extends Statement {
112
170
  * The not principals for the statement
113
171
  */
114
172
  notPrincipals(): Principal[];
173
+ /**
174
+ * Is the NotPrincipal type is an array of strings
175
+ *
176
+ * @param notPrincipalType the type of the NotPrincipal such as "AWS", "Service", etc.
177
+ * @returns true if the NotPrincipal type is an array of strings in the raw policy
178
+ */
179
+ notPrincipalTypeIsArray(notPrincipalType: string): boolean;
180
+ }
181
+ export interface AnnotatedNotPrincipalStatement extends Annotated, NotPrincipalStatement {
182
+ notPrincipals(): AnnotatedPrincipal[];
115
183
  }
116
184
  /**
117
185
  * Implementation of the Statement interface and all its sub-interfaces
118
186
  */
119
- export declare class StatementImpl implements Statement, ActionStatement, NotActionStatement, ResourceStatement, NotResourceStatement, PrincipalStatement {
187
+ export declare class StatementImpl implements Statement, AnnotatedStatement, ActionStatement, AnnotatedStatement, NotActionStatement, ResourceStatement, NotResourceStatement, PrincipalStatement {
120
188
  private readonly statementObject;
121
189
  private readonly _index;
122
- constructor(statementObject: any, _index: number);
190
+ private readonly stateful;
191
+ private readonly annotationStore;
192
+ private actionCache;
193
+ private notActionCache;
194
+ private principalCache;
195
+ private notPrincipalCache;
196
+ private resourceCache;
197
+ private notResourceCache;
198
+ private conditionCache;
199
+ constructor(statementObject: any, _index: number, stateful: boolean);
200
+ addAnnotation(key: string, value: string): void;
201
+ getAnnotations(): Annotations;
123
202
  index(): number;
124
203
  sid(): string | undefined;
125
204
  effect(): string;
126
205
  isAllow(): boolean;
127
206
  isDeny(): boolean;
128
207
  isPrincipalStatement(): this is PrincipalStatement;
208
+ isPrincipalStatement(): this is AnnotatedPrincipalStatement;
129
209
  isNotPrincipalStatement(): this is NotPrincipalStatement;
210
+ isNotPrincipalStatement(): this is AnnotatedNotPrincipalStatement;
130
211
  principals(): Principal[];
212
+ principals(): AnnotatedPrincipal[];
213
+ principalTypeIsArray(principalType: string): boolean;
131
214
  notPrincipals(): Principal[];
215
+ notPrincipals(): AnnotatedPrincipal[];
216
+ notPrincipalTypeIsArray(notPrincipalType: string): boolean;
132
217
  /**
133
218
  * Parse the principal object into PrincipalImpl objects.
134
219
  *
@@ -138,15 +223,30 @@ export declare class StatementImpl implements Statement, ActionStatement, NotAct
138
223
  * @returns the backing principals for a Principal or NotPrincipal object
139
224
  */
140
225
  private parsePrincipalObject;
141
- isActionStatement(): this is ActionStatement;
142
- isNotActionStatement(): this is NotActionStatement;
226
+ isActionStatement(): this is AnnotatedActionStatement;
227
+ isNotActionStatement(): this is AnnotatedNotActionStatement;
143
228
  actions(): Action[];
229
+ actions(): AnnotatedAction[];
230
+ private createNewActions;
231
+ actionIsArray(): boolean;
144
232
  notActions(): Action[];
145
- isResourceStatement(): this is ResourceStatement;
146
- isNotResourceStatement(): this is NotResourceStatement;
233
+ notActions(): AnnotatedAction[];
234
+ private createNewNotActions;
235
+ notActionIsArray(): boolean;
236
+ isResourceStatement(): this is AnnotatedResourceStatement;
237
+ isNotResourceStatement(): this is AnnotatedNotResourceStatement;
147
238
  resources(): Resource[];
148
- notResources(): Resource[];
239
+ resources(): AnnotatedResource[];
240
+ private createNewResources;
149
241
  hasSingleResourceWildcard(): boolean;
242
+ resourceIsArray(): boolean;
243
+ notResources(): Resource[];
244
+ notResources(): AnnotatedResource[];
245
+ private createNewNotResources;
246
+ notResourceIsArray(): boolean;
247
+ hasSingleNotResourceWildcard(): boolean;
150
248
  conditions(): Condition[];
249
+ conditions(): AnnotatedCondition[];
250
+ private createNewConditions;
151
251
  }
152
252
  //# sourceMappingURL=statement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../../src/statements/statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../../src/statements/statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,WAAW,EAAmB,MAAM,+BAA+B,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAiB,MAAM,4BAA4B,CAAA;AACzF,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAgC,MAAM,4BAA4B,CAAA;AACxG,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAgB,MAAM,0BAA0B,CAAA;AAOpF;;GAEG;AACH,MAAM,WAAW,SAAS;IAExB;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,GAAG,IAAI,MAAM,GAAG,SAAS,CAAA;IAEzB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAA;IAElB;;OAEG;IACH,MAAM,IAAI,OAAO,CAAA;IAEjB;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE,CAAA;IAEzB;;OAEG;IACH,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAA;IAElD;;OAEG;IACH,uBAAuB,IAAI,IAAI,IAAI,qBAAqB,CAAA;IAExD;;OAEG;IACH,iBAAiB,IAAI,IAAI,IAAI,eAAe,CAAA;IAE5C;;OAEG;IACH,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAA;IAElD;;OAEG;IACH,mBAAmB,IAAI,IAAI,IAAI,iBAAiB,CAAA;IAEhD;;OAEG;IACH,sBAAsB,IAAI,IAAI,IAAI,oBAAoB,CAAA;CACvD;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS,EAAE,SAAS;IAC9D,iBAAiB,IAAI,IAAI,IAAI,wBAAwB,CAAA;IACrD,oBAAoB,IAAI,IAAI,IAAI,2BAA2B,CAAA;IAC3D,oBAAoB,IAAI,IAAI,IAAI,2BAA2B,CAAA;IAC3D,uBAAuB,IAAI,IAAI,IAAI,8BAA8B,CAAA;IACjE,mBAAmB,IAAI,IAAI,IAAI,0BAA0B,CAAA;IACzD,sBAAsB,IAAI,IAAI,IAAI,6BAA6B,CAAA;IAC/D,UAAU,IAAI,kBAAkB,EAAE,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD;;OAEG;IACH,OAAO,IAAI,MAAM,EAAE,CAAA;IAEnB;;OAEG;IACH,aAAa,IAAI,OAAO,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,SAAS,EAAE,eAAe;IAC1E,OAAO,IAAI,eAAe,EAAE,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IAEnD;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE,CAAA;IAEtB;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,SAAS,EAAE,kBAAkB;IAChF,UAAU,IAAI,eAAe,EAAE,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD;;OAEG;IACH,SAAS,IAAI,QAAQ,EAAE,CAAA;IAEvB;;OAEG;IACH,yBAAyB,IAAI,OAAO,CAAA;IAEpC;;OAEG;IACH,eAAe,IAAI,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,0BAA2B,SAAQ,SAAS,EAAE,iBAAiB;IAC9E,SAAS,IAAI,iBAAiB,EAAE,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD;;OAEG;IACH,YAAY,IAAI,QAAQ,EAAE,CAAA;IAE1B;;OAEG;IACH,4BAA4B,IAAI,OAAO,CAAA;IAEvC;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,6BAA8B,SAAQ,SAAS,EAAE,oBAAoB;IACpF,YAAY,IAAI,iBAAiB,EAAE,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE,CAAA;IAEzB;;;;;OAKG;IACH,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAA;CACrD;AAED,MAAM,WAAW,2BAA4B,SAAQ,SAAS,EAAE,kBAAkB;IAChF,UAAU,IAAI,kBAAkB,EAAE,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IAEtD;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE,CAAA;IAE1B;;;;;KAKC;IACH,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3D;AAED,MAAM,WAAW,8BAA+B,SAAQ,SAAS,EAAE,qBAAqB;IACtF,aAAa,IAAI,kBAAkB,EAAE,CAAA;CACtC;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB;IAU3K,OAAO,CAAC,QAAQ,CAAC,eAAe;IAAO,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAU,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR7G,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,cAAc,CAAyB;gBAClB,eAAe,EAAE,GAAG,EAAmB,MAAM,EAAE,MAAM,EAAmB,QAAQ,EAAE,OAAO;IAI/G,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,cAAc,IAAI,WAAW;IAI7B,KAAK,IAAI,MAAM;IAIf,GAAG,IAAI,MAAM,GAAG,SAAS;IAIzB,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,OAAO;IAIlB,MAAM,IAAI,OAAO;IAIjB,oBAAoB,IAAI,IAAI,IAAI,kBAAkB;IAClD,oBAAoB,IAAI,IAAI,IAAI,2BAA2B;IAK3D,uBAAuB,IAAI,IAAI,IAAI,qBAAqB;IACxD,uBAAuB,IAAI,IAAI,IAAI,8BAA8B;IAKjE,UAAU,IAAI,SAAS,EAAE;IACzB,UAAU,IAAI,kBAAkB,EAAE;IAclC,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAOpD,aAAa,IAAI,SAAS,EAAE;IAC5B,aAAa,IAAI,kBAAkB,EAAE;IAcrC,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO;IAOjE;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAcrB,iBAAiB,IAAI,IAAI,IAAI,wBAAwB;IAKrD,oBAAoB,IAAI,IAAI,IAAI,2BAA2B;IAK3D,OAAO,IAAI,MAAM,EAAE;IACnB,OAAO,IAAI,eAAe,EAAE;IAcnC,OAAO,CAAC,gBAAgB;IAIjB,aAAa,IAAI,OAAO;IAIxB,UAAU,IAAI,MAAM,EAAE;IACtB,UAAU,IAAI,eAAe,EAAE;IActC,OAAO,CAAC,mBAAmB;IAIpB,gBAAgB,IAAI,OAAO;IAI3B,mBAAmB,IAAI,IAAI,IAAI,0BAA0B;IAKzD,sBAAsB,IAAI,IAAI,IAAI,6BAA6B;IAK/D,SAAS,IAAI,QAAQ,EAAE;IACvB,SAAS,IAAI,iBAAiB,EAAE;IAcvC,OAAO,CAAC,kBAAkB;IAInB,yBAAyB,IAAI,OAAO;IAOpC,eAAe,IAAI,OAAO;IAI1B,YAAY,IAAI,QAAQ,EAAE;IAC1B,YAAY,IAAI,iBAAiB,EAAE;IAc1C,OAAO,CAAC,qBAAqB;IAItB,kBAAkB,IAAI,OAAO;IAI7B,4BAA4B,IAAI,OAAO;IAQvC,UAAU,IAAI,SAAS,EAAE;IACzB,UAAU,IAAI,kBAAkB,EAAE;IAWzC,OAAO,CAAC,mBAAmB;CAW5B"}