@cloud-copilot/iam-policy 0.0.1 → 0.0.2

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 (80) hide show
  1. package/README.md +93 -58
  2. package/dist/actions/action.d.ts +51 -0
  3. package/dist/actions/action.d.ts.map +1 -0
  4. package/dist/actions/action.js +33 -0
  5. package/dist/actions/action.js.map +1 -0
  6. package/dist/actions/actions.test.d.ts +2 -0
  7. package/dist/actions/actions.test.d.ts.map +1 -0
  8. package/dist/actions/actions.test.js +91 -0
  9. package/dist/actions/actions.test.js.map +1 -0
  10. package/dist/cjs/conditions/condition.d.ts +3 -2
  11. package/dist/cjs/conditions/condition.d.ts.map +1 -1
  12. package/dist/cjs/conditions/condition.js +2 -1
  13. package/dist/cjs/conditions/condition.js.map +1 -1
  14. package/dist/cjs/conditions/conditionOperation.d.ts +31 -0
  15. package/dist/cjs/conditions/conditionOperation.d.ts.map +1 -0
  16. package/dist/cjs/conditions/conditionOperation.js +31 -0
  17. package/dist/cjs/conditions/conditionOperation.js.map +1 -0
  18. package/dist/cjs/index.d.ts +1 -0
  19. package/dist/cjs/index.d.ts.map +1 -1
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/conditions/condition.d.ts +16 -0
  22. package/dist/conditions/condition.d.ts.map +1 -0
  23. package/dist/conditions/condition.js +25 -0
  24. package/dist/conditions/condition.js.map +1 -0
  25. package/dist/conditions/conditionOperation.d.ts +31 -0
  26. package/dist/conditions/conditionOperation.d.ts.map +1 -0
  27. package/dist/conditions/conditionOperation.js +31 -0
  28. package/dist/conditions/conditionOperation.js.map +1 -0
  29. package/dist/esm/conditions/condition.d.ts +3 -2
  30. package/dist/esm/conditions/condition.d.ts.map +1 -1
  31. package/dist/esm/conditions/condition.js +2 -1
  32. package/dist/esm/conditions/condition.js.map +1 -1
  33. package/dist/esm/conditions/conditionOperation.d.ts +31 -0
  34. package/dist/esm/conditions/conditionOperation.d.ts.map +1 -0
  35. package/dist/esm/conditions/conditionOperation.js +26 -0
  36. package/dist/esm/conditions/conditionOperation.js.map +1 -0
  37. package/dist/esm/index.d.ts +1 -0
  38. package/dist/esm/index.d.ts.map +1 -1
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/index.d.ts +9 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +6 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/parser.d.ts +9 -0
  45. package/dist/parser.d.ts.map +1 -0
  46. package/dist/parser.js +14 -0
  47. package/dist/parser.js.map +1 -0
  48. package/dist/policies/policy.d.ts +14 -0
  49. package/dist/policies/policy.d.ts.map +1 -0
  50. package/dist/policies/policy.js +21 -0
  51. package/dist/policies/policy.js.map +1 -0
  52. package/dist/policies/policy.test.d.ts +2 -0
  53. package/dist/policies/policy.test.d.ts.map +1 -0
  54. package/dist/policies/policy.test.js +74 -0
  55. package/dist/policies/policy.test.js.map +1 -0
  56. package/dist/principals/principal.d.ts +21 -0
  57. package/dist/principals/principal.d.ts.map +1 -0
  58. package/dist/principals/principal.js +35 -0
  59. package/dist/principals/principal.js.map +1 -0
  60. package/dist/resources/resource.d.ts +20 -0
  61. package/dist/resources/resource.d.ts.map +1 -0
  62. package/dist/resources/resource.js +18 -0
  63. package/dist/resources/resource.js.map +1 -0
  64. package/dist/resources/resource.test.d.ts +2 -0
  65. package/dist/resources/resource.test.d.ts.map +1 -0
  66. package/dist/resources/resource.test.js +35 -0
  67. package/dist/resources/resource.test.js.map +1 -0
  68. package/dist/statements/statement.d.ts +146 -0
  69. package/dist/statements/statement.d.ts.map +1 -0
  70. package/dist/statements/statement.js +121 -0
  71. package/dist/statements/statement.js.map +1 -0
  72. package/dist/statements/statement.test.d.ts +2 -0
  73. package/dist/statements/statement.test.d.ts.map +1 -0
  74. package/dist/statements/statement.test.js +479 -0
  75. package/dist/statements/statement.test.js.map +1 -0
  76. package/dist/utils.d.ts +8 -0
  77. package/dist/utils.d.ts.map +1 -0
  78. package/dist/utils.js +13 -0
  79. package/dist/utils.js.map +1 -0
  80. package/package.json +1 -1
@@ -0,0 +1,479 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const statement_js_1 = require("./statement.js");
5
+ (0, vitest_1.describe)('StatementImpl', () => {
6
+ (0, vitest_1.describe)('sid', () => {
7
+ (0, vitest_1.it)('should return the sid of the statement', () => {
8
+ //Given a statement with a sid of 'MySid'
9
+ const statementDoc = { Sid: 'MySid' };
10
+ //When a StatementImpl is created with the statement
11
+ const statement = new statement_js_1.StatementImpl(statementDoc);
12
+ //Then the sid should be 'MySid'
13
+ (0, vitest_1.expect)(statement.sid()).toBe('MySid');
14
+ });
15
+ });
16
+ (0, vitest_1.describe)('effect', () => {
17
+ (0, vitest_1.it)('should return the effect of the statement', () => {
18
+ //Given a statement with an effect of 'Deny'
19
+ const statementDoc = { Effect: 'Deny' };
20
+ //When a StatementImpl is created with the statement
21
+ const statement = new statement_js_1.StatementImpl(statementDoc);
22
+ //Then the effect should be 'Deny'
23
+ (0, vitest_1.expect)(statement.effect()).toBe('Deny');
24
+ });
25
+ });
26
+ (0, vitest_1.describe)('isAllow', () => {
27
+ (0, vitest_1.it)('should return true if the effect is Allow', () => {
28
+ //Given a statement with an effect of 'Allow'
29
+ const statementDoc = { Effect: 'Allow' };
30
+ //When a StatementImpl is created with the statement
31
+ const statement = new statement_js_1.StatementImpl(statementDoc);
32
+ //Then isAllow should return true
33
+ (0, vitest_1.expect)(statement.isAllow()).toBe(true);
34
+ });
35
+ (0, vitest_1.it)('should return false if the effect is not Allow', () => {
36
+ //Given a statement with an effect of 'Deny'
37
+ const statementDoc = { Effect: 'Deny' };
38
+ //When a StatementImpl is created with the statement
39
+ const statement = new statement_js_1.StatementImpl(statementDoc);
40
+ //Then isAllow should return false
41
+ (0, vitest_1.expect)(statement.isAllow()).toBe(false);
42
+ });
43
+ });
44
+ (0, vitest_1.describe)('isDeny', () => {
45
+ (0, vitest_1.it)('should return true if the effect is Deny', () => {
46
+ //Given a statement with an effect of 'Deny'
47
+ const statementDoc = { Effect: 'Deny' };
48
+ //When a StatementImpl is created with the statement
49
+ const statement = new statement_js_1.StatementImpl(statementDoc);
50
+ //Then isDeny should return true
51
+ (0, vitest_1.expect)(statement.isDeny()).toBe(true);
52
+ });
53
+ (0, vitest_1.it)('should return false if the effect is not Deny', () => {
54
+ //Given a statement with an effect of 'Allow'
55
+ const statementDoc = { Effect: 'Allow' };
56
+ //When a StatementImpl is created with the statement
57
+ const statement = new statement_js_1.StatementImpl(statementDoc);
58
+ //Then isDeny should return false
59
+ (0, vitest_1.expect)(statement.isDeny()).toBe(false);
60
+ });
61
+ });
62
+ (0, vitest_1.describe)('isPrincipalStatement', () => {
63
+ (0, vitest_1.it)('should return true if the statement has a Principal', () => {
64
+ //Given a statement with a Principal
65
+ const statementDoc = { Principal: {} };
66
+ //When a StatementImpl is created with the statement
67
+ const statement = new statement_js_1.StatementImpl(statementDoc);
68
+ //Then isPrincipalStatement should return true
69
+ (0, vitest_1.expect)(statement.isPrincipalStatement()).toBe(true);
70
+ });
71
+ (0, vitest_1.it)('should return false if the statement does not have a Principal', () => {
72
+ //Given a statement without a Principal
73
+ const statementDoc = {};
74
+ //When a StatementImpl is created with the statement
75
+ const statement = new statement_js_1.StatementImpl(statementDoc);
76
+ //Then isPrincipalStatement should return false
77
+ (0, vitest_1.expect)(statement.isPrincipalStatement()).toBe(false);
78
+ });
79
+ });
80
+ (0, vitest_1.describe)('isNotPrincipalStatement', () => {
81
+ (0, vitest_1.it)('should return true if the statement has a NotPrincipal', () => {
82
+ //Given a statement with a NotPrincipal
83
+ const statementDoc = { NotPrincipal: {} };
84
+ //When a StatementImpl is created with the statement
85
+ const statement = new statement_js_1.StatementImpl(statementDoc);
86
+ //Then isNotPrincipalStatement should return true
87
+ (0, vitest_1.expect)(statement.isNotPrincipalStatement()).toBe(true);
88
+ });
89
+ (0, vitest_1.it)('should return false if the statement does not have a NotPrincipal', () => {
90
+ //Given a statement without a NotPrincipal
91
+ const statementDoc = {};
92
+ //When a StatementImpl is created with the statement
93
+ const statement = new statement_js_1.StatementImpl(statementDoc);
94
+ //Then isNotPrincipalStatement should return false
95
+ (0, vitest_1.expect)(statement.isNotPrincipalStatement()).toBe(false);
96
+ });
97
+ });
98
+ (0, vitest_1.describe)('principals', () => {
99
+ (0, vitest_1.it)('should return a wildcard principal string', () => {
100
+ //Given a statement with a Principal with a wildcard
101
+ const statementDoc = { Principal: '*' };
102
+ //When a StatementImpl is created with the statement
103
+ const statement = new statement_js_1.StatementImpl(statementDoc);
104
+ //Then principals should return a Principal with a wildcard
105
+ (0, vitest_1.expect)(statement.principals().length).toEqual(1);
106
+ (0, vitest_1.expect)(statement.principals()[0].type()).toEqual('AWS');
107
+ (0, vitest_1.expect)(statement.principals()[0].value()).toEqual('*');
108
+ });
109
+ (0, vitest_1.it)('should return an AWS principal string', () => {
110
+ //Given a statement with a Principal with an AWS principal
111
+ const statementDoc = { Principal: { "AWS": "*" } };
112
+ //When a StatementImpl is created with the statement
113
+ const statement = new statement_js_1.StatementImpl(statementDoc);
114
+ //Then principals should return a Principal with an AWS principal
115
+ (0, vitest_1.expect)(statement.principals().length).toEqual(1);
116
+ (0, vitest_1.expect)(statement.principals()[0].type()).toEqual('AWS');
117
+ (0, vitest_1.expect)(statement.principals()[0].value()).toEqual('*');
118
+ });
119
+ (0, vitest_1.it)('should return multiple AWS principals', () => {
120
+ //Given a statement with a Principal with multiple AWS principals
121
+ const statementDoc = { Principal: { "AWS": ["arn:aws:iam::123456789012:root", "arn:aws:iam::123456789012:user/Bob"] } };
122
+ //When a StatementImpl is created with the statement
123
+ const statement = new statement_js_1.StatementImpl(statementDoc);
124
+ //Then principals should return multiple Principals with AWS principals
125
+ (0, vitest_1.expect)(statement.principals().length).toEqual(2);
126
+ (0, vitest_1.expect)(statement.principals()[0].type()).toEqual('AWS');
127
+ (0, vitest_1.expect)(statement.principals()[0].value()).toEqual('arn:aws:iam::123456789012:root');
128
+ (0, vitest_1.expect)(statement.principals()[1].type()).toEqual('AWS');
129
+ (0, vitest_1.expect)(statement.principals()[1].value()).toEqual('arn:aws:iam::123456789012:user/Bob');
130
+ });
131
+ (0, vitest_1.it)('should throw an error if principals is called on a statement without Principal', () => {
132
+ //Given a statement without a Principal
133
+ const statementDoc = {};
134
+ //When a StatementImpl is created with the statement
135
+ const statement = new statement_js_1.StatementImpl(statementDoc);
136
+ //Then principals should throw an error
137
+ (0, vitest_1.expect)(() => statement.principals()).toThrow('Called principals on a statement without Principal, use isPrincipalStatement before calling principals');
138
+ });
139
+ });
140
+ (0, vitest_1.describe)('notPrincipals', () => {
141
+ // We don't have as many tests for notPrincipals because the implementation is the same as principals
142
+ (0, vitest_1.it)('should return a wildcard principal string', () => {
143
+ //Given a statement with a NotPrincipal with a wildcard
144
+ const statementDoc = { NotPrincipal: '*' };
145
+ //When a StatementImpl is created with the statement
146
+ const statement = new statement_js_1.StatementImpl(statementDoc);
147
+ //Then notPrincipals should return a Principal with a wildcard
148
+ (0, vitest_1.expect)(statement.notPrincipals().length).toEqual(1);
149
+ (0, vitest_1.expect)(statement.notPrincipals()[0].type()).toEqual('AWS');
150
+ (0, vitest_1.expect)(statement.notPrincipals()[0].value()).toEqual('*');
151
+ });
152
+ (0, vitest_1.it)('should throw an error if notPrincipals is called on a statement without NotPrincipal', () => {
153
+ //Given a statement without a NotPrincipal
154
+ const statementDoc = {};
155
+ //When a StatementImpl is created with the statement
156
+ const statement = new statement_js_1.StatementImpl(statementDoc);
157
+ //Then notPrincipals should throw an error
158
+ (0, vitest_1.expect)(() => statement.notPrincipals()).toThrow('Called notPrincipals on a statement without NotPrincipal, use isNotPrincipalStatement before calling notPrincipals');
159
+ });
160
+ });
161
+ (0, vitest_1.describe)('isActionStatement', () => {
162
+ (0, vitest_1.it)('should return true if the statement has an Action', () => {
163
+ //Given a statement with an Action
164
+ const statementDoc = { Action: {} };
165
+ //When a StatementImpl is created with the statement
166
+ const statement = new statement_js_1.StatementImpl(statementDoc);
167
+ //Then isActionStatement should return true
168
+ (0, vitest_1.expect)(statement.isActionStatement()).toBe(true);
169
+ });
170
+ (0, vitest_1.it)('should return false if the statement does not have an Action', () => {
171
+ //Given a statement without an Action
172
+ const statementDoc = {};
173
+ //When a StatementImpl is created with the statement
174
+ const statement = new statement_js_1.StatementImpl(statementDoc);
175
+ //Then isActionStatement should return false
176
+ (0, vitest_1.expect)(statement.isActionStatement()).toBe(false);
177
+ });
178
+ });
179
+ (0, vitest_1.describe)('isNotActionStatement', () => {
180
+ (0, vitest_1.it)('should return true if the statement has a NotAction', () => {
181
+ //Given a statement with a NotAction
182
+ const statementDoc = { NotAction: {} };
183
+ //When a StatementImpl is created with the statement
184
+ const statement = new statement_js_1.StatementImpl(statementDoc);
185
+ //Then isNotActionStatement should return true
186
+ (0, vitest_1.expect)(statement.isNotActionStatement()).toBe(true);
187
+ });
188
+ (0, vitest_1.it)('should return false if the statement does not have a NotAction', () => {
189
+ //Given a statement without a NotAction
190
+ const statementDoc = {};
191
+ //When a StatementImpl is created with the statement
192
+ const statement = new statement_js_1.StatementImpl(statementDoc);
193
+ //Then isNotActionStatement should return false
194
+ (0, vitest_1.expect)(statement.isNotActionStatement()).toBe(false);
195
+ });
196
+ });
197
+ (0, vitest_1.describe)('actions', () => {
198
+ (0, vitest_1.it)('should return a wildcard action string', () => {
199
+ //Given a statement with an Action with a wildcard
200
+ const statementDoc = { Action: '*' };
201
+ //When a StatementImpl is created with the statement
202
+ const statement = new statement_js_1.StatementImpl(statementDoc);
203
+ //Then actions should return an Action with a wildcard
204
+ (0, vitest_1.expect)(statement.actions().length).toEqual(1);
205
+ (0, vitest_1.expect)(statement.actions()[0].value()).toEqual('*');
206
+ (0, vitest_1.expect)(statement.actions()[0].isWildcardAction()).toBe(true);
207
+ });
208
+ (0, vitest_1.it)('should return an action string', () => {
209
+ //Given a statement with an Action
210
+ const statementDoc = { Action: 's3:GetObject' };
211
+ //When a StatementImpl is created with the statement
212
+ const statement = new statement_js_1.StatementImpl(statementDoc);
213
+ //Then actions should return an Action
214
+ (0, vitest_1.expect)(statement.actions().length).toEqual(1);
215
+ (0, vitest_1.expect)(statement.actions()[0].value()).toEqual('s3:GetObject');
216
+ });
217
+ (0, vitest_1.it)('should return multiple actions', () => {
218
+ //Given a statement with multiple Actions
219
+ const statementDoc = { Action: ['s3:GetObject', 's3:PutObject'] };
220
+ //When a StatementImpl is created with the statement
221
+ const statement = new statement_js_1.StatementImpl(statementDoc);
222
+ //Then actions should return multiple Actions
223
+ (0, vitest_1.expect)(statement.actions().length).toEqual(2);
224
+ (0, vitest_1.expect)(statement.actions()[0].value()).toEqual('s3:GetObject');
225
+ (0, vitest_1.expect)(statement.actions()[1].value()).toEqual('s3:PutObject');
226
+ });
227
+ (0, vitest_1.it)('should throw an error if actions is called on a statement without Action', () => {
228
+ //Given a statement without an Action
229
+ const statementDoc = {};
230
+ //When a StatementImpl is created with the statement
231
+ const statement = new statement_js_1.StatementImpl(statementDoc);
232
+ //Then actions should throw an error
233
+ (0, vitest_1.expect)(() => statement.actions()).toThrow('Called actions on a statement without Action, use isActionStatement before calling actions');
234
+ });
235
+ });
236
+ (0, vitest_1.describe)('notActions', () => {
237
+ (0, vitest_1.it)('should return a wildcard action string', () => {
238
+ //Given a statement with a NotAction with a wildcard
239
+ const statementDoc = { NotAction: '*' };
240
+ //When a StatementImpl is created with the statement
241
+ const statement = new statement_js_1.StatementImpl(statementDoc);
242
+ //Then notActions should return an Action with a wildcard
243
+ (0, vitest_1.expect)(statement.notActions().length).toEqual(1);
244
+ (0, vitest_1.expect)(statement.notActions()[0].value()).toEqual('*');
245
+ (0, vitest_1.expect)(statement.notActions()[0].isWildcardAction()).toBe(true);
246
+ });
247
+ (0, vitest_1.it)('should return multiple actions', () => {
248
+ //Given a statement with multiple NotActions
249
+ const statementDoc = { NotAction: ['s3:GetObject', 's3:PutObject'] };
250
+ //When a StatementImpl is created with the statement
251
+ const statement = new statement_js_1.StatementImpl(statementDoc);
252
+ //Then notActions should return multiple Actions
253
+ (0, vitest_1.expect)(statement.notActions().length).toEqual(2);
254
+ (0, vitest_1.expect)(statement.notActions()[0].value()).toEqual('s3:GetObject');
255
+ (0, vitest_1.expect)(statement.notActions()[1].value()).toEqual('s3:PutObject');
256
+ });
257
+ (0, vitest_1.it)('should throw an error if notActions is called on a statement without NotAction', () => {
258
+ //Given a statement without a NotAction
259
+ const statementDoc = {};
260
+ //When a StatementImpl is created with the statement
261
+ const statement = new statement_js_1.StatementImpl(statementDoc);
262
+ //Then notActions should throw an error
263
+ (0, vitest_1.expect)(() => statement.notActions()).toThrow('Called notActions on a statement without NotAction, use isNotActionStatement before calling notActions');
264
+ });
265
+ });
266
+ (0, vitest_1.describe)('isResourceStatement', () => {
267
+ (0, vitest_1.it)('should return true if the statement has a Resource', () => {
268
+ //Given a statement with a Resource
269
+ const statementDoc = { Resource: {} };
270
+ //When a StatementImpl is created with the statement
271
+ const statement = new statement_js_1.StatementImpl(statementDoc);
272
+ //Then isResourceStatement should return true
273
+ (0, vitest_1.expect)(statement.isResourceStatement()).toBe(true);
274
+ });
275
+ (0, vitest_1.it)('should return false if the statement does not have a Resource', () => {
276
+ //Given a statement without a Resource
277
+ const statementDoc = {};
278
+ //When a StatementImpl is created with the statement
279
+ const statement = new statement_js_1.StatementImpl(statementDoc);
280
+ //Then isResourceStatement should return false
281
+ (0, vitest_1.expect)(statement.isResourceStatement()).toBe(false);
282
+ });
283
+ });
284
+ (0, vitest_1.describe)('isNotResourceStatement', () => {
285
+ (0, vitest_1.it)('should return true if the statement has a NotResource', () => {
286
+ //Given a statement with a NotResource
287
+ const statementDoc = { NotResource: {} };
288
+ //When a StatementImpl is created with the statement
289
+ const statement = new statement_js_1.StatementImpl(statementDoc);
290
+ //Then isNotResourceStatement should return true
291
+ (0, vitest_1.expect)(statement.isNotResourceStatement()).toBe(true);
292
+ });
293
+ (0, vitest_1.it)('should return false if the statement does not have a NotResource', () => {
294
+ //Given a statement without a NotResource
295
+ const statementDoc = {};
296
+ //When a StatementImpl is created with the statement
297
+ const statement = new statement_js_1.StatementImpl(statementDoc);
298
+ //Then isNotResourceStatement should return false
299
+ (0, vitest_1.expect)(statement.isNotResourceStatement()).toBe(false);
300
+ });
301
+ });
302
+ (0, vitest_1.describe)('resources', () => {
303
+ (0, vitest_1.it)('should return a wildcard resource string', () => {
304
+ //Given a statement with a Resource with a wildcard
305
+ const statementDoc = { Resource: '*' };
306
+ //When a StatementImpl is created with the statement
307
+ const statement = new statement_js_1.StatementImpl(statementDoc);
308
+ //Then resources should return a Resource with a wildcard
309
+ (0, vitest_1.expect)(statement.resources().length).toEqual(1);
310
+ (0, vitest_1.expect)(statement.resources()[0].value()).toEqual('*');
311
+ });
312
+ (0, vitest_1.it)('should return a resource string', () => {
313
+ //Given a statement with a Resource
314
+ const statementDoc = { Resource: 'arn:aws:s3:::my_bucket' };
315
+ //When a StatementImpl is created with the statement
316
+ const statement = new statement_js_1.StatementImpl(statementDoc);
317
+ //Then resources should return a Resource
318
+ (0, vitest_1.expect)(statement.resources().length).toEqual(1);
319
+ (0, vitest_1.expect)(statement.resources()[0].value()).toEqual('arn:aws:s3:::my_bucket');
320
+ });
321
+ (0, vitest_1.it)('should return multiple resources', () => {
322
+ //Given a statement with multiple Resources
323
+ const statementDoc = { Resource: ['arn:aws:s3:::my_bucket', 'arn:aws:s3:::my_other_bucket'] };
324
+ //When a StatementImpl is created with the statement
325
+ const statement = new statement_js_1.StatementImpl(statementDoc);
326
+ //Then resources should return multiple Resources
327
+ (0, vitest_1.expect)(statement.resources().length).toEqual(2);
328
+ (0, vitest_1.expect)(statement.resources()[0].value()).toEqual('arn:aws:s3:::my_bucket');
329
+ (0, vitest_1.expect)(statement.resources()[1].value()).toEqual('arn:aws:s3:::my_other_bucket');
330
+ });
331
+ (0, vitest_1.it)('should throw an error if resources is called on a statement without Resource', () => {
332
+ //Given a statement without a Resource
333
+ const statementDoc = {};
334
+ //When a StatementImpl is created with the statement
335
+ const statement = new statement_js_1.StatementImpl(statementDoc);
336
+ //Then resources should throw an error
337
+ (0, vitest_1.expect)(() => statement.resources()).toThrow('Called resources on a statement without Resource, use isResourceStatement before calling resources');
338
+ });
339
+ });
340
+ (0, vitest_1.describe)('notResources', () => {
341
+ (0, vitest_1.it)('should return a wildcard resource string', () => {
342
+ //Given a statement with a NotResource with a wildcard
343
+ const statementDoc = { NotResource: '*' };
344
+ //When a StatementImpl is created with the statement
345
+ const statement = new statement_js_1.StatementImpl(statementDoc);
346
+ //Then notResources should return a Resource with a wildcard
347
+ (0, vitest_1.expect)(statement.notResources().length).toEqual(1);
348
+ (0, vitest_1.expect)(statement.notResources()[0].value()).toEqual('*');
349
+ });
350
+ (0, vitest_1.it)('should return multiple resources', () => {
351
+ //Given a statement with multiple NotResources
352
+ const statementDoc = { NotResource: ['arn:aws:s3:::my_bucket', 'arn:aws:s3:::my_other_bucket'] };
353
+ //When a StatementImpl is created with the statement
354
+ const statement = new statement_js_1.StatementImpl(statementDoc);
355
+ //Then notResources should return multiple Resources
356
+ (0, vitest_1.expect)(statement.notResources().length).toEqual(2);
357
+ (0, vitest_1.expect)(statement.notResources()[0].value()).toEqual('arn:aws:s3:::my_bucket');
358
+ (0, vitest_1.expect)(statement.notResources()[1].value()).toEqual('arn:aws:s3:::my_other_bucket');
359
+ });
360
+ (0, vitest_1.it)('should throw an error if notResources is called on a statement without NotResource', () => {
361
+ //Given a statement without a NotResource
362
+ const statementDoc = {};
363
+ //When a StatementImpl is created with the statement
364
+ const statement = new statement_js_1.StatementImpl(statementDoc);
365
+ //Then notResources should throw an error
366
+ (0, vitest_1.expect)(() => statement.notResources()).toThrow('Called notResources on a statement without NotResource, use isNotResourceStatement before calling notResources');
367
+ });
368
+ });
369
+ (0, vitest_1.describe)('hasSingleResourceWildcard', () => {
370
+ (0, vitest_1.it)('should return true if the statement has a single Resource wildcard', () => {
371
+ //Given a statement with a single Resource wildcard
372
+ const statementDoc = { Resource: '*' };
373
+ //When a StatementImpl is created with the statement
374
+ const statement = new statement_js_1.StatementImpl(statementDoc);
375
+ //Then hasSingleResourceWildcard should return true
376
+ (0, vitest_1.expect)(statement.hasSingleResourceWildcard()).toBe(true);
377
+ });
378
+ (0, vitest_1.it)('should return false if the statement has an array with a single Resource wildcard', () => {
379
+ //Given a statement with an array with a single Resource wildcard
380
+ const statementDoc = { Resource: ['*'] };
381
+ //When a StatementImpl is created with the statement
382
+ const statement = new statement_js_1.StatementImpl(statementDoc);
383
+ //Then hasSingleResourceWildcard should return false
384
+ (0, vitest_1.expect)(statement.hasSingleResourceWildcard()).toBe(false);
385
+ });
386
+ (0, vitest_1.it)('should return false if the statement does not have a single Resource wildcard', () => {
387
+ //Given a statement without a single Resource wildcard
388
+ const statementDoc = { Resource: ['arn:aws:s3:::my_bucket', 'arn:aws:s3:::my_other_bucket'] };
389
+ //When a StatementImpl is created with the statement
390
+ const statement = new statement_js_1.StatementImpl(statementDoc);
391
+ //Then hasSingleResourceWildcard should return false
392
+ (0, vitest_1.expect)(statement.hasSingleResourceWildcard()).toBe(false);
393
+ });
394
+ (0, vitest_1.it)('should throw an error if hasSingleResourceWildcard is called on a statement without Resource', () => {
395
+ //Given a statement without a Resource
396
+ const statementDoc = {};
397
+ //When a StatementImpl is created with the statement
398
+ const statement = new statement_js_1.StatementImpl(statementDoc);
399
+ //Then hasSingleResourceWildcard should throw an error
400
+ (0, vitest_1.expect)(() => statement.hasSingleResourceWildcard()).toThrow('Called hasSingleResourceWildcard on a statement without Resource, use isResourceStatement before calling hasSingleResourceWildcard');
401
+ });
402
+ });
403
+ (0, vitest_1.describe)('conditions', () => {
404
+ (0, vitest_1.it)('should return an empty array if the statement does not have a Condition', () => {
405
+ //Given a statement without a Condition
406
+ const statementDoc = {};
407
+ //When a StatementImpl is created with the statement
408
+ const statement = new statement_js_1.StatementImpl(statementDoc);
409
+ //Then conditions should return an empty array
410
+ (0, vitest_1.expect)(statement.conditions()).toEqual([]);
411
+ });
412
+ (0, vitest_1.it)('should return the conditions when the condition value is a string', () => {
413
+ //Given a statement with a Condition with a string value
414
+ const statementDoc = {
415
+ Condition: {
416
+ StringEquals: {
417
+ "s3:prefix": "home/${aws:username}"
418
+ }
419
+ }
420
+ };
421
+ //When a StatementImpl is created with the statement
422
+ const statement = new statement_js_1.StatementImpl(statementDoc);
423
+ //Then conditions should return the Condition
424
+ (0, vitest_1.expect)(statement.conditions().length).toEqual(1);
425
+ (0, vitest_1.expect)(statement.conditions()[0].operation()).toEqual('StringEquals');
426
+ (0, vitest_1.expect)(statement.conditions()[0].conditionKey()).toEqual('s3:prefix');
427
+ (0, vitest_1.expect)(statement.conditions()[0].conditionValues()).toEqual(['home/${aws:username}']);
428
+ });
429
+ (0, vitest_1.it)('should return the conditions when the condition value is a string array', () => {
430
+ //Given a statement with a Condition with a string array value
431
+ const statementDoc = {
432
+ Condition: {
433
+ StringEquals: {
434
+ "s3:prefix": ["home/${aws:username}", "home/${aws:username}/"]
435
+ }
436
+ }
437
+ };
438
+ //When a StatementImpl is created with the statement
439
+ const statement = new statement_js_1.StatementImpl(statementDoc);
440
+ //Then conditions should return the Condition
441
+ (0, vitest_1.expect)(statement.conditions().length).toEqual(1);
442
+ (0, vitest_1.expect)(statement.conditions()[0].operation()).toEqual('StringEquals');
443
+ (0, vitest_1.expect)(statement.conditions()[0].conditionKey()).toEqual('s3:prefix');
444
+ (0, vitest_1.expect)(statement.conditions()[0].conditionValues()).toEqual(['home/${aws:username}', 'home/${aws:username}/']);
445
+ });
446
+ (0, vitest_1.it)('should return multiple conditions', () => {
447
+ //Given a statement with multiple Conditions
448
+ const statementDoc = {
449
+ Condition: {
450
+ StringEquals: {
451
+ "s3:prefix": "home/${aws:username}",
452
+ "aws:PrincipalOrgID": "o-1234567890"
453
+ },
454
+ StringLike: {
455
+ "s3:prefix": "home/${aws:username}",
456
+ "aws:TagKeys/Foo": "Bar*"
457
+ }
458
+ }
459
+ };
460
+ //When a StatementImpl is created with the statement
461
+ const statement = new statement_js_1.StatementImpl(statementDoc);
462
+ //Then conditions should return multiple Conditions
463
+ (0, vitest_1.expect)(statement.conditions().length).toEqual(4);
464
+ (0, vitest_1.expect)(statement.conditions()[0].operation()).toEqual('StringEquals');
465
+ (0, vitest_1.expect)(statement.conditions()[0].conditionKey()).toEqual('s3:prefix');
466
+ (0, vitest_1.expect)(statement.conditions()[0].conditionValues()).toEqual(['home/${aws:username}']);
467
+ (0, vitest_1.expect)(statement.conditions()[1].operation()).toEqual('StringEquals');
468
+ (0, vitest_1.expect)(statement.conditions()[1].conditionKey()).toEqual('aws:PrincipalOrgID');
469
+ (0, vitest_1.expect)(statement.conditions()[1].conditionValues()).toEqual(['o-1234567890']);
470
+ (0, vitest_1.expect)(statement.conditions()[2].operation()).toEqual('StringLike');
471
+ (0, vitest_1.expect)(statement.conditions()[2].conditionKey()).toEqual('s3:prefix');
472
+ (0, vitest_1.expect)(statement.conditions()[2].conditionValues()).toEqual(['home/${aws:username}']);
473
+ (0, vitest_1.expect)(statement.conditions()[3].operation()).toEqual('StringLike');
474
+ (0, vitest_1.expect)(statement.conditions()[3].conditionKey()).toEqual('aws:TagKeys/Foo');
475
+ (0, vitest_1.expect)(statement.conditions()[3].conditionValues()).toEqual(['Bar*']);
476
+ });
477
+ });
478
+ });
479
+ //# sourceMappingURL=statement.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statement.test.js","sourceRoot":"","sources":["../../src/statements/statement.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Checks if a string is all wildcards(*)
3
+ *
4
+ * @param value The value to check if it is a wildcard
5
+ * @returns True if the value is all wildcards, false otherwise
6
+ */
7
+ export declare function isAllWildcards(value: string): boolean;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD"}
package/dist/utils.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAllWildcards = isAllWildcards;
4
+ /**
5
+ * Checks if a string is all wildcards(*)
6
+ *
7
+ * @param value The value to check if it is a wildcard
8
+ * @returns True if the value is all wildcards, false otherwise
9
+ */
10
+ function isAllWildcards(value) {
11
+ return value.match(/^\**$/) !== null;
12
+ }
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAOA,wCAEC;AARD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-copilot/iam-policy",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "An ORM for AWS IAM policies",
5
5
  "repository": {
6
6
  "type": "git",