@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.
Files changed (71) 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/parser.d.ts +2 -1
  14. package/dist/cjs/parser.d.ts.map +1 -1
  15. package/dist/cjs/parser.js +5 -1
  16. package/dist/cjs/parser.js.map +1 -1
  17. package/dist/cjs/policies/policy.d.ts +28 -3
  18. package/dist/cjs/policies/policy.d.ts.map +1 -1
  19. package/dist/cjs/policies/policy.js +26 -2
  20. package/dist/cjs/policies/policy.js.map +1 -1
  21. package/dist/cjs/principals/principal.d.ts +7 -1
  22. package/dist/cjs/principals/principal.d.ts.map +1 -1
  23. package/dist/cjs/principals/principal.js +9 -0
  24. package/dist/cjs/principals/principal.js.map +1 -1
  25. package/dist/cjs/resources/resource.d.ts +7 -1
  26. package/dist/cjs/resources/resource.d.ts.map +1 -1
  27. package/dist/cjs/resources/resource.js +8 -0
  28. package/dist/cjs/resources/resource.js.map +1 -1
  29. package/dist/cjs/statements/statement.d.ts +112 -12
  30. package/dist/cjs/statements/statement.d.ts.map +1 -1
  31. package/dist/cjs/statements/statement.js +112 -7
  32. package/dist/cjs/statements/statement.js.map +1 -1
  33. package/dist/cjs/validate/validate.d.ts.map +1 -1
  34. package/dist/cjs/validate/validate.js +76 -1
  35. package/dist/cjs/validate/validate.js.map +1 -1
  36. package/dist/esm/actions/action.d.ts +7 -1
  37. package/dist/esm/actions/action.d.ts.map +1 -1
  38. package/dist/esm/actions/action.js +8 -0
  39. package/dist/esm/actions/action.js.map +1 -1
  40. package/dist/esm/annotations/annotations.d.ts +55 -0
  41. package/dist/esm/annotations/annotations.d.ts.map +1 -0
  42. package/dist/esm/annotations/annotations.js +24 -0
  43. package/dist/esm/annotations/annotations.js.map +1 -0
  44. package/dist/esm/conditions/condition.d.ts +29 -1
  45. package/dist/esm/conditions/condition.d.ts.map +1 -1
  46. package/dist/esm/conditions/condition.js +11 -0
  47. package/dist/esm/conditions/condition.js.map +1 -1
  48. package/dist/esm/parser.d.ts +2 -1
  49. package/dist/esm/parser.d.ts.map +1 -1
  50. package/dist/esm/parser.js +4 -1
  51. package/dist/esm/parser.js.map +1 -1
  52. package/dist/esm/policies/policy.d.ts +28 -3
  53. package/dist/esm/policies/policy.d.ts.map +1 -1
  54. package/dist/esm/policies/policy.js +23 -2
  55. package/dist/esm/policies/policy.js.map +1 -1
  56. package/dist/esm/principals/principal.d.ts +7 -1
  57. package/dist/esm/principals/principal.d.ts.map +1 -1
  58. package/dist/esm/principals/principal.js +8 -0
  59. package/dist/esm/principals/principal.js.map +1 -1
  60. package/dist/esm/resources/resource.d.ts +7 -1
  61. package/dist/esm/resources/resource.d.ts.map +1 -1
  62. package/dist/esm/resources/resource.js +8 -0
  63. package/dist/esm/resources/resource.js.map +1 -1
  64. package/dist/esm/statements/statement.d.ts +112 -12
  65. package/dist/esm/statements/statement.d.ts.map +1 -1
  66. package/dist/esm/statements/statement.js +103 -7
  67. package/dist/esm/statements/statement.js.map +1 -1
  68. package/dist/esm/validate/validate.d.ts.map +1 -1
  69. package/dist/esm/validate/validate.js +76 -1
  70. package/dist/esm/validate/validate.js.map +1 -1
  71. package/package.json +1 -2
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAiB,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,SAAS,EAAgC,MAAM,4BAA4B,CAAA;AACpF,OAAO,EAAE,QAAQ,EAAgB,MAAM,0BAA0B,CAAA;AAEjE;;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;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD;;OAEG;IACH,OAAO,IAAI,MAAM,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IAEnD;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD;;OAEG;IACH,SAAS,IAAI,QAAQ,EAAE,CAAA;IAEvB;;OAEG;IACH,yBAAyB,IAAI,OAAO,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD;;OAEG;IACH,YAAY,IAAI,QAAQ,EAAE,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD;;OAEG;IACH,UAAU,IAAI,SAAS,EAAE,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IAEtD;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE,CAAA;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB;IACnI,OAAO,CAAC,QAAQ,CAAC,eAAe;IAAO,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA7C,eAAe,EAAE,GAAG,EAAmB,MAAM,EAAE,MAAM;IAE3E,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;IAIlD,uBAAuB,IAAI,IAAI,IAAI,qBAAqB;IAIxD,UAAU,IAAI,SAAS,EAAE;IAOzB,aAAa,IAAI,SAAS,EAAE;IAOnC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAcrB,iBAAiB,IAAI,IAAI,IAAI,eAAe;IAI5C,oBAAoB,IAAI,IAAI,IAAI,kBAAkB;IAIlD,OAAO,IAAI,MAAM,EAAE;IAOnB,UAAU,IAAI,MAAM,EAAE;IAOtB,mBAAmB,IAAI,IAAI,IAAI,iBAAiB;IAIhD,sBAAsB,IAAI,IAAI,IAAI,oBAAoB;IAItD,SAAS,IAAI,QAAQ,EAAE;IAOvB,YAAY,IAAI,QAAQ,EAAE;IAO1B,yBAAyB,IAAI,OAAO;IAOpC,UAAU,IAAI,SAAS,EAAE;CAWjC"}
1
+ {"version":3,"file":"statement.d.ts","sourceRoot":"","sources":["../../../src/statements/statement.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StatementImpl = void 0;
4
4
  const action_js_1 = require("../actions/action.js");
5
+ const annotations_js_1 = require("../annotations/annotations.js");
5
6
  const condition_js_1 = require("../conditions/condition.js");
6
7
  const principal_js_1 = require("../principals/principal.js");
7
8
  const resource_js_1 = require("../resources/resource.js");
@@ -11,9 +12,26 @@ const resource_js_1 = require("../resources/resource.js");
11
12
  class StatementImpl {
12
13
  statementObject;
13
14
  _index;
14
- constructor(statementObject, _index) {
15
+ stateful;
16
+ annotationStore;
17
+ actionCache;
18
+ notActionCache;
19
+ principalCache;
20
+ notPrincipalCache;
21
+ resourceCache;
22
+ notResourceCache;
23
+ conditionCache;
24
+ constructor(statementObject, _index, stateful) {
15
25
  this.statementObject = statementObject;
16
26
  this._index = _index;
27
+ this.stateful = stateful;
28
+ this.annotationStore = new annotations_js_1.AnnotationStore();
29
+ }
30
+ addAnnotation(key, value) {
31
+ this.annotationStore.addAnnotation(key, value);
32
+ }
33
+ getAnnotations() {
34
+ return this.annotationStore;
17
35
  }
18
36
  index() {
19
37
  return this._index;
@@ -40,13 +58,37 @@ class StatementImpl {
40
58
  if (!this.isPrincipalStatement()) {
41
59
  throw new Error('Called principals on a statement without Principal, use isPrincipalStatement before calling principals');
42
60
  }
43
- return this.parsePrincipalObject(this.statementObject.Principal);
61
+ if (!this.stateful) {
62
+ return this.parsePrincipalObject(this.statementObject.Principal);
63
+ }
64
+ if (!this.principalCache) {
65
+ this.principalCache = this.parsePrincipalObject(this.statementObject.Principal);
66
+ }
67
+ return this.principalCache;
68
+ }
69
+ principalTypeIsArray(principalType) {
70
+ if (!this.isPrincipalStatement()) {
71
+ throw new Error('Called principalTypeIsArray on a statement without Principal, use isPrincipalStatement before calling principalTypeIsArray');
72
+ }
73
+ return typeof this.statementObject.Principal === "object" && Array.isArray(this.statementObject.Principal[principalType]);
44
74
  }
45
75
  notPrincipals() {
46
76
  if (!this.isNotPrincipalStatement()) {
47
77
  throw new Error('Called notPrincipals on a statement without NotPrincipal, use isNotPrincipalStatement before calling notPrincipals');
48
78
  }
49
- return this.parsePrincipalObject(this.statementObject.NotPrincipal);
79
+ if (!this.stateful) {
80
+ return this.parsePrincipalObject(this.statementObject.NotPrincipal);
81
+ }
82
+ if (!this.notPrincipalCache) {
83
+ this.notPrincipalCache = this.parsePrincipalObject(this.statementObject.NotPrincipal);
84
+ }
85
+ return this.notPrincipalCache;
86
+ }
87
+ notPrincipalTypeIsArray(notPrincipalType) {
88
+ if (!this.isNotPrincipalStatement()) {
89
+ throw new Error('Called notPrincipalTypeIsArray on a statement without NotPrincipal, use isNotPrincipalStatement before calling notPrincipalTypeIsArray');
90
+ }
91
+ return typeof this.statementObject.NotPrincipal === "object" && Array.isArray(this.statementObject.NotPrincipal[notPrincipalType]);
50
92
  }
51
93
  /**
52
94
  * Parse the principal object into PrincipalImpl objects.
@@ -79,14 +121,38 @@ class StatementImpl {
79
121
  if (!this.isActionStatement()) {
80
122
  throw new Error('Called actions on a statement without Action, use isActionStatement before calling actions');
81
123
  }
124
+ if (!this.stateful) {
125
+ return this.createNewActions();
126
+ }
127
+ if (!this.actionCache) {
128
+ this.actionCache = this.createNewActions();
129
+ }
130
+ return this.actionCache;
131
+ }
132
+ createNewActions() {
82
133
  return [this.statementObject.Action].flat().map((action) => new action_js_1.ActionImpl(action));
83
134
  }
135
+ actionIsArray() {
136
+ return Array.isArray(this.statementObject.Action);
137
+ }
84
138
  notActions() {
85
139
  if (!this.isNotActionStatement()) {
86
140
  throw new Error('Called notActions on a statement without NotAction, use isNotActionStatement before calling notActions');
87
141
  }
142
+ if (!this.stateful) {
143
+ return this.createNewNotActions();
144
+ }
145
+ if (!this.notActionCache) {
146
+ this.notActionCache = this.createNewNotActions();
147
+ }
148
+ return this.notActionCache;
149
+ }
150
+ createNewNotActions() {
88
151
  return [this.statementObject.NotAction].flat().map((action) => new action_js_1.ActionImpl(action));
89
152
  }
153
+ notActionIsArray() {
154
+ return Array.isArray(this.statementObject.NotAction);
155
+ }
90
156
  isResourceStatement() {
91
157
  return this.statementObject.Resource !== undefined;
92
158
  }
@@ -97,21 +163,60 @@ class StatementImpl {
97
163
  if (!this.isResourceStatement()) {
98
164
  throw new Error('Called resources on a statement without Resource, use isResourceStatement before calling resources');
99
165
  }
166
+ if (!this.stateful) {
167
+ return this.createNewResources();
168
+ }
169
+ if (!this.resourceCache) {
170
+ this.resourceCache = this.createNewResources();
171
+ }
172
+ return this.resourceCache;
173
+ }
174
+ createNewResources() {
100
175
  return [this.statementObject.Resource].flat().map((resource) => new resource_js_1.ResourceImpl(resource));
101
176
  }
177
+ hasSingleResourceWildcard() {
178
+ if (!this.isResourceStatement()) {
179
+ throw new Error('Called hasSingleResourceWildcard on a statement without Resource, use isResourceStatement before calling hasSingleResourceWildcard');
180
+ }
181
+ return this.statementObject.Resource === '*';
182
+ }
183
+ resourceIsArray() {
184
+ return Array.isArray(this.statementObject.Resource);
185
+ }
102
186
  notResources() {
103
187
  if (!this.isNotResourceStatement()) {
104
188
  throw new Error('Called notResources on a statement without NotResource, use isNotResourceStatement before calling notResources');
105
189
  }
190
+ if (!this.stateful) {
191
+ return this.createNewNotResources();
192
+ }
193
+ if (!this.notResourceCache) {
194
+ this.notResourceCache = this.createNewNotResources();
195
+ }
196
+ return this.notResourceCache;
197
+ }
198
+ createNewNotResources() {
106
199
  return [this.statementObject.NotResource].flat().map((resource) => new resource_js_1.ResourceImpl(resource));
107
200
  }
108
- hasSingleResourceWildcard() {
109
- if (!this.isResourceStatement()) {
110
- throw new Error('Called hasSingleResourceWildcard on a statement without Resource, use isResourceStatement before calling hasSingleResourceWildcard');
201
+ notResourceIsArray() {
202
+ return Array.isArray(this.statementObject.NotResource);
203
+ }
204
+ hasSingleNotResourceWildcard() {
205
+ if (!this.isNotResourceStatement()) {
206
+ throw new Error('Called hasSingleNotResourceWildcard on a statement without NotResource, use isNotResourceStatement before calling hasSingleNotResourceWildcard');
111
207
  }
112
- return this.isResourceStatement() && this.statementObject.Resource === '*';
208
+ return this.statementObject.NotResource === '*';
113
209
  }
114
210
  conditions() {
211
+ if (!this.stateful) {
212
+ return this.createNewConditions();
213
+ }
214
+ if (!this.conditionCache) {
215
+ this.conditionCache = this.createNewConditions();
216
+ }
217
+ return this.conditionCache;
218
+ }
219
+ createNewConditions() {
115
220
  if (!this.statementObject.Condition) {
116
221
  return [];
117
222
  }
@@ -1 +1 @@
1
- {"version":3,"file":"statement.js","sourceRoot":"","sources":["../../../src/statements/statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statement.js","sourceRoot":"","sources":["../../../src/statements/statement.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/validate/validate.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AASD,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IACvE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IACpE,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IAC1E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IACvE,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IAC7E,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IACxE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;CAC/E;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,GAAG,EAAE,mBAAmB,GAAE,mBAAwB,GAAG,eAAe,EAAE,CA0C1H"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/validate/validate.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAYD,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IACvE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IACpE,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IAC1E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IACvE,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IAC7E,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;IACxE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,eAAe,EAAE,CAAA;CAC/E;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,GAAG,EAAE,mBAAmB,GAAE,mBAAwB,GAAG,eAAe,EAAE,CA0C1H"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validatePolicySyntax = validatePolicySyntax;
4
+ const serviceRegex = /^[a-zA-Z0-9-]+$/;
5
+ const actionRegex = /^[a-zA-Z0-9*\?]+$/;
4
6
  const allowedPolicyKeys = new Set(['Version', 'Statement', 'Id']);
5
7
  const allowedStatementKeys = new Set(['Sid', 'Effect', 'Action', 'NotAction', 'Resource', 'NotResource', 'Principal', 'NotPrincipal', 'Condition']);
6
8
  const allowedPrincipalKeys = new Set(['AWS', 'Service', 'Federated', 'CanonicalUser']);
@@ -15,7 +17,7 @@ function validatePolicySyntax(policyDocument, validationCallbacks = {}) {
15
17
  return [{ path: '', message: 'Policy must be an object, received an array' }];
16
18
  }
17
19
  allErrors.push(...validateKeys(policyDocument, allowedPolicyKeys, ''));
18
- allErrors.push(...validateDataTypeIfExists(policyDocument.Version, 'Version', 'string'));
20
+ allErrors.push(...validatePolicyVersion(policyDocument.Version));
19
21
  allErrors.push(...validateDataTypeIfExists(policyDocument.Id, 'Id', 'string'));
20
22
  if (!policyDocument.Statement) {
21
23
  allErrors.push({
@@ -48,6 +50,28 @@ function validatePolicySyntax(policyDocument, validationCallbacks = {}) {
48
50
  }
49
51
  return allErrors;
50
52
  }
53
+ function validatePolicyVersion(version) {
54
+ if (version === undefined || version === null) {
55
+ return [];
56
+ }
57
+ if (typeof version !== 'string') {
58
+ return [
59
+ {
60
+ path: 'Version',
61
+ message: `Version must be a string if present`
62
+ }
63
+ ];
64
+ }
65
+ if (version === '2012-10-17' || version === '2008-10-17') {
66
+ return [];
67
+ }
68
+ return [
69
+ {
70
+ path: 'Version',
71
+ message: `Version must be either "2012-10-17" or "2008-10-17"`
72
+ }
73
+ ];
74
+ }
51
75
  function validateStatement(statement, path, validationCallbacks) {
52
76
  const statementErrors = [];
53
77
  statementErrors.push(...validateKeys(statement, allowedStatementKeys, path));
@@ -61,6 +85,8 @@ function validateStatement(statement, path, validationCallbacks) {
61
85
  statementErrors.push(...validateOnlyOneOf(statement, path, 'Principal', 'NotPrincipal'));
62
86
  statementErrors.push(...validateTypeOrArrayOfTypeIfExists(statement.Action, `${path}.Action`, 'string'));
63
87
  statementErrors.push(...validateTypeOrArrayOfTypeIfExists(statement.NotAction, `${path}.NotAction`, 'string'));
88
+ statementErrors.push(...validateActionIfPresent(statement.Action, `${path}.Action`));
89
+ statementErrors.push(...validateActionIfPresent(statement.NotAction, `${path}.NotAction`));
64
90
  statementErrors.push(...validateStringOrArrayStringCallback(statement, 'Action', path, validationCallbacks.validateAction));
65
91
  statementErrors.push(...validateStringOrArrayStringCallback(statement, 'NotAction', path, validationCallbacks.validateNotAction));
66
92
  statementErrors.push(...validateResource(statement.Resource, `${path}.Resource`));
@@ -123,6 +149,55 @@ function validateResourceString(resourceString, path) {
123
149
  }
124
150
  return [];
125
151
  }
152
+ function validateActionIfPresent(action, path) {
153
+ if (action === undefined || action === null) {
154
+ return [];
155
+ }
156
+ //Type errors are caught elsewhere
157
+ if (typeof action === 'string') {
158
+ return validateActionString(action, path);
159
+ }
160
+ else if (Array.isArray(action)) {
161
+ const actionErrors = [];
162
+ for (let i = 0; i < action.length; i++) {
163
+ const value = action[i];
164
+ if (typeof value === 'string') {
165
+ actionErrors.push(...validateActionString(action[i], `${path}[${i}]`));
166
+ }
167
+ }
168
+ return actionErrors;
169
+ }
170
+ return [];
171
+ }
172
+ function validateActionString(string, path) {
173
+ if (string === '*') {
174
+ return [];
175
+ }
176
+ const parts = string.split(':');
177
+ if (parts.length != 2) {
178
+ return [
179
+ {
180
+ path,
181
+ message: `Action must be a wildcard (*) or have 2 segments`
182
+ }
183
+ ];
184
+ }
185
+ const [service, action] = parts;
186
+ const errors = [];
187
+ if (!serviceRegex.test(service)) {
188
+ errors.push({
189
+ path,
190
+ message: `Service can only contain letters, numbers, and hyphens`
191
+ });
192
+ }
193
+ if (!actionRegex.test(action)) {
194
+ errors.push({
195
+ path,
196
+ message: `Action can only contain letters, numbers, asterisks, and question marks`
197
+ });
198
+ }
199
+ return errors;
200
+ }
126
201
  function validateCondition(condition, path) {
127
202
  const conditionErrors = [];
128
203
  if (condition === undefined || condition === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/validate/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/validate/validate.ts"],"names":[],"mappings":"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"}
@@ -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":"AAEA,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;;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,EAAG,cAAc,EAAE,aAAa;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEtC,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
+ {"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"}