@cloud-copilot/iam-simulate 0.1.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 (281) hide show
  1. package/LICENSE.txt +661 -0
  2. package/README.md +5 -0
  3. package/dist/cjs/StatementAnalysis.d.ts +27 -0
  4. package/dist/cjs/StatementAnalysis.d.ts.map +1 -0
  5. package/dist/cjs/StatementAnalysis.js +3 -0
  6. package/dist/cjs/StatementAnalysis.js.map +1 -0
  7. package/dist/cjs/action/action.d.ts +27 -0
  8. package/dist/cjs/action/action.d.ts.map +1 -0
  9. package/dist/cjs/action/action.js +72 -0
  10. package/dist/cjs/action/action.js.map +1 -0
  11. package/dist/cjs/action.d.ts +4 -0
  12. package/dist/cjs/action.d.ts.map +1 -0
  13. package/dist/cjs/action.js +21 -0
  14. package/dist/cjs/action.js.map +1 -0
  15. package/dist/cjs/condition/BaseConditionOperator.d.ts +8 -0
  16. package/dist/cjs/condition/BaseConditionOperator.d.ts.map +1 -0
  17. package/dist/cjs/condition/BaseConditionOperator.js +3 -0
  18. package/dist/cjs/condition/BaseConditionOperator.js.map +1 -0
  19. package/dist/cjs/condition/arn/ArnEquals.d.ts +3 -0
  20. package/dist/cjs/condition/arn/ArnEquals.d.ts.map +1 -0
  21. package/dist/cjs/condition/arn/ArnEquals.js +11 -0
  22. package/dist/cjs/condition/arn/ArnEquals.js.map +1 -0
  23. package/dist/cjs/condition/arn/ArnLike.d.ts +3 -0
  24. package/dist/cjs/condition/arn/ArnLike.d.ts.map +1 -0
  25. package/dist/cjs/condition/arn/ArnLike.js +50 -0
  26. package/dist/cjs/condition/arn/ArnLike.js.map +1 -0
  27. package/dist/cjs/condition/arn/ArnNotEquals.d.ts +3 -0
  28. package/dist/cjs/condition/arn/ArnNotEquals.d.ts.map +1 -0
  29. package/dist/cjs/condition/arn/ArnNotEquals.js +11 -0
  30. package/dist/cjs/condition/arn/ArnNotEquals.js.map +1 -0
  31. package/dist/cjs/condition/arn/ArnNotLike.d.ts +3 -0
  32. package/dist/cjs/condition/arn/ArnNotLike.d.ts.map +1 -0
  33. package/dist/cjs/condition/arn/ArnNotLike.js +13 -0
  34. package/dist/cjs/condition/arn/ArnNotLike.js.map +1 -0
  35. package/dist/cjs/condition/baseConditionperatorTests.d.ts +12 -0
  36. package/dist/cjs/condition/baseConditionperatorTests.d.ts.map +1 -0
  37. package/dist/cjs/condition/baseConditionperatorTests.js +21 -0
  38. package/dist/cjs/condition/baseConditionperatorTests.js.map +1 -0
  39. package/dist/cjs/condition/binary/BinaryEquals.d.ts +7 -0
  40. package/dist/cjs/condition/binary/BinaryEquals.d.ts.map +1 -0
  41. package/dist/cjs/condition/binary/BinaryEquals.js +16 -0
  42. package/dist/cjs/condition/binary/BinaryEquals.js.map +1 -0
  43. package/dist/cjs/condition/boolean/Bool.d.ts +3 -0
  44. package/dist/cjs/condition/boolean/Bool.d.ts.map +1 -0
  45. package/dist/cjs/condition/boolean/Bool.js +20 -0
  46. package/dist/cjs/condition/boolean/Bool.js.map +1 -0
  47. package/dist/cjs/condition/condition.d.ts +6 -0
  48. package/dist/cjs/condition/condition.d.ts.map +1 -0
  49. package/dist/cjs/condition/condition.js +123 -0
  50. package/dist/cjs/condition/condition.js.map +1 -0
  51. package/dist/cjs/condition/date/DateEquals.d.ts +3 -0
  52. package/dist/cjs/condition/date/DateEquals.d.ts.map +1 -0
  53. package/dist/cjs/condition/date/DateEquals.js +17 -0
  54. package/dist/cjs/condition/date/DateEquals.js.map +1 -0
  55. package/dist/cjs/condition/date/DateGreaterThan.d.ts +3 -0
  56. package/dist/cjs/condition/date/DateGreaterThan.d.ts.map +1 -0
  57. package/dist/cjs/condition/date/DateGreaterThan.js +17 -0
  58. package/dist/cjs/condition/date/DateGreaterThan.js.map +1 -0
  59. package/dist/cjs/condition/date/DateGreaterThanEquals.d.ts +3 -0
  60. package/dist/cjs/condition/date/DateGreaterThanEquals.d.ts.map +1 -0
  61. package/dist/cjs/condition/date/DateGreaterThanEquals.js +17 -0
  62. package/dist/cjs/condition/date/DateGreaterThanEquals.js.map +1 -0
  63. package/dist/cjs/condition/date/DateLessThan.d.ts +3 -0
  64. package/dist/cjs/condition/date/DateLessThan.d.ts.map +1 -0
  65. package/dist/cjs/condition/date/DateLessThan.js +17 -0
  66. package/dist/cjs/condition/date/DateLessThan.js.map +1 -0
  67. package/dist/cjs/condition/date/DateLessThanEquals.d.ts +3 -0
  68. package/dist/cjs/condition/date/DateLessThanEquals.d.ts.map +1 -0
  69. package/dist/cjs/condition/date/DateLessThanEquals.js +17 -0
  70. package/dist/cjs/condition/date/DateLessThanEquals.js.map +1 -0
  71. package/dist/cjs/condition/date/DateNotEquals.d.ts +3 -0
  72. package/dist/cjs/condition/date/DateNotEquals.d.ts.map +1 -0
  73. package/dist/cjs/condition/date/DateNotEquals.js +29 -0
  74. package/dist/cjs/condition/date/DateNotEquals.js.map +1 -0
  75. package/dist/cjs/condition/date/date.d.ts +17 -0
  76. package/dist/cjs/condition/date/date.d.ts.map +1 -0
  77. package/dist/cjs/condition/date/date.js +42 -0
  78. package/dist/cjs/condition/date/date.js.map +1 -0
  79. package/dist/cjs/condition/ipaddress/IpAddress.d.ts +3 -0
  80. package/dist/cjs/condition/ipaddress/IpAddress.d.ts.map +1 -0
  81. package/dist/cjs/condition/ipaddress/IpAddress.js +27 -0
  82. package/dist/cjs/condition/ipaddress/IpAddress.js.map +1 -0
  83. package/dist/cjs/condition/ipaddress/NotIpAddress.d.ts +3 -0
  84. package/dist/cjs/condition/ipaddress/NotIpAddress.d.ts.map +1 -0
  85. package/dist/cjs/condition/ipaddress/NotIpAddress.js +31 -0
  86. package/dist/cjs/condition/ipaddress/NotIpAddress.js.map +1 -0
  87. package/dist/cjs/condition/ipaddress/ipv4.d.ts +24 -0
  88. package/dist/cjs/condition/ipaddress/ipv4.d.ts.map +1 -0
  89. package/dist/cjs/condition/ipaddress/ipv4.js +59 -0
  90. package/dist/cjs/condition/ipaddress/ipv4.js.map +1 -0
  91. package/dist/cjs/condition/ipaddress/ipv6.d.ts +24 -0
  92. package/dist/cjs/condition/ipaddress/ipv6.d.ts.map +1 -0
  93. package/dist/cjs/condition/ipaddress/ipv6.js +111 -0
  94. package/dist/cjs/condition/ipaddress/ipv6.js.map +1 -0
  95. package/dist/cjs/condition/numeric/NumericEquals.d.ts +3 -0
  96. package/dist/cjs/condition/numeric/NumericEquals.d.ts.map +1 -0
  97. package/dist/cjs/condition/numeric/NumericEquals.js +17 -0
  98. package/dist/cjs/condition/numeric/NumericEquals.js.map +1 -0
  99. package/dist/cjs/condition/numeric/NumericGreaterThan.d.ts +3 -0
  100. package/dist/cjs/condition/numeric/NumericGreaterThan.d.ts.map +1 -0
  101. package/dist/cjs/condition/numeric/NumericGreaterThan.js +17 -0
  102. package/dist/cjs/condition/numeric/NumericGreaterThan.js.map +1 -0
  103. package/dist/cjs/condition/numeric/NumericGreaterThanEquals.d.ts +3 -0
  104. package/dist/cjs/condition/numeric/NumericGreaterThanEquals.d.ts.map +1 -0
  105. package/dist/cjs/condition/numeric/NumericGreaterThanEquals.js +17 -0
  106. package/dist/cjs/condition/numeric/NumericGreaterThanEquals.js.map +1 -0
  107. package/dist/cjs/condition/numeric/NumericLessThan.d.ts +3 -0
  108. package/dist/cjs/condition/numeric/NumericLessThan.d.ts.map +1 -0
  109. package/dist/cjs/condition/numeric/NumericLessThan.js +17 -0
  110. package/dist/cjs/condition/numeric/NumericLessThan.js.map +1 -0
  111. package/dist/cjs/condition/numeric/NumericLessThanEquals.d.ts +3 -0
  112. package/dist/cjs/condition/numeric/NumericLessThanEquals.d.ts.map +1 -0
  113. package/dist/cjs/condition/numeric/NumericLessThanEquals.js +17 -0
  114. package/dist/cjs/condition/numeric/NumericLessThanEquals.js.map +1 -0
  115. package/dist/cjs/condition/numeric/NumericNotEquals.d.ts +3 -0
  116. package/dist/cjs/condition/numeric/NumericNotEquals.d.ts.map +1 -0
  117. package/dist/cjs/condition/numeric/NumericNotEquals.js +29 -0
  118. package/dist/cjs/condition/numeric/NumericNotEquals.js.map +1 -0
  119. package/dist/cjs/condition/numeric/numeric.d.ts +17 -0
  120. package/dist/cjs/condition/numeric/numeric.d.ts.map +1 -0
  121. package/dist/cjs/condition/numeric/numeric.js +41 -0
  122. package/dist/cjs/condition/numeric/numeric.js.map +1 -0
  123. package/dist/cjs/condition/string/StringEquals.d.ts +3 -0
  124. package/dist/cjs/condition/string/StringEquals.d.ts.map +1 -0
  125. package/dist/cjs/condition/string/StringEquals.js +14 -0
  126. package/dist/cjs/condition/string/StringEquals.js.map +1 -0
  127. package/dist/cjs/condition/string/StringEqualsIgnoreCase.d.ts +3 -0
  128. package/dist/cjs/condition/string/StringEqualsIgnoreCase.d.ts.map +1 -0
  129. package/dist/cjs/condition/string/StringEqualsIgnoreCase.js +17 -0
  130. package/dist/cjs/condition/string/StringEqualsIgnoreCase.js.map +1 -0
  131. package/dist/cjs/condition/string/StringLike.d.ts +3 -0
  132. package/dist/cjs/condition/string/StringLike.d.ts.map +1 -0
  133. package/dist/cjs/condition/string/StringLike.js +14 -0
  134. package/dist/cjs/condition/string/StringLike.js.map +1 -0
  135. package/dist/cjs/condition/string/StringNotEquals.d.ts +3 -0
  136. package/dist/cjs/condition/string/StringNotEquals.d.ts.map +1 -0
  137. package/dist/cjs/condition/string/StringNotEquals.js +14 -0
  138. package/dist/cjs/condition/string/StringNotEquals.js.map +1 -0
  139. package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.d.ts +3 -0
  140. package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.d.ts.map +1 -0
  141. package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.js +13 -0
  142. package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.js.map +1 -0
  143. package/dist/cjs/condition/string/StringNotLike.d.ts +3 -0
  144. package/dist/cjs/condition/string/StringNotLike.d.ts.map +1 -0
  145. package/dist/cjs/condition/string/StringNotLike.js +13 -0
  146. package/dist/cjs/condition/string/StringNotLike.js.map +1 -0
  147. package/dist/cjs/condition/strings/StringEquals.d.ts +3 -0
  148. package/dist/cjs/condition/strings/StringEquals.d.ts.map +1 -0
  149. package/dist/cjs/condition/strings/StringEquals.js +14 -0
  150. package/dist/cjs/condition/strings/StringEquals.js.map +1 -0
  151. package/dist/cjs/core_engine/coreSimulatorEngine.d.ts +44 -0
  152. package/dist/cjs/core_engine/coreSimulatorEngine.d.ts.map +1 -0
  153. package/dist/cjs/core_engine/coreSimulatorEngine.js +60 -0
  154. package/dist/cjs/core_engine/coreSimulatorEngine.js.map +1 -0
  155. package/dist/cjs/evaluate.d.ts +2 -0
  156. package/dist/cjs/evaluate.d.ts.map +1 -0
  157. package/dist/cjs/evaluate.js +3 -0
  158. package/dist/cjs/evaluate.js.map +1 -0
  159. package/dist/cjs/index.d.ts +1 -0
  160. package/dist/cjs/index.d.ts.map +1 -0
  161. package/dist/cjs/index.js +2 -0
  162. package/dist/cjs/index.js.map +1 -0
  163. package/dist/cjs/package.json +3 -0
  164. package/dist/cjs/principal/principal.d.ts +30 -0
  165. package/dist/cjs/principal/principal.d.ts.map +1 -0
  166. package/dist/cjs/principal/principal.js +107 -0
  167. package/dist/cjs/principal/principal.js.map +1 -0
  168. package/dist/cjs/request/request.d.ts +50 -0
  169. package/dist/cjs/request/request.d.ts.map +1 -0
  170. package/dist/cjs/request/request.js +41 -0
  171. package/dist/cjs/request/request.js.map +1 -0
  172. package/dist/cjs/request/requestAction.d.ts +27 -0
  173. package/dist/cjs/request/requestAction.d.ts.map +1 -0
  174. package/dist/cjs/request/requestAction.js +20 -0
  175. package/dist/cjs/request/requestAction.js.map +1 -0
  176. package/dist/cjs/request/requestPrincipal.d.ts +20 -0
  177. package/dist/cjs/request/requestPrincipal.d.ts.map +1 -0
  178. package/dist/cjs/request/requestPrincipal.js +17 -0
  179. package/dist/cjs/request/requestPrincipal.js.map +1 -0
  180. package/dist/cjs/request/requestResource.d.ts +37 -0
  181. package/dist/cjs/request/requestResource.d.ts.map +1 -0
  182. package/dist/cjs/request/requestResource.js +29 -0
  183. package/dist/cjs/request/requestResource.js.map +1 -0
  184. package/dist/cjs/request/requestSupplementalData.d.ts +19 -0
  185. package/dist/cjs/request/requestSupplementalData.d.ts.map +1 -0
  186. package/dist/cjs/request/requestSupplementalData.js +37 -0
  187. package/dist/cjs/request/requestSupplementalData.js.map +1 -0
  188. package/dist/cjs/request.d.ts +15 -0
  189. package/dist/cjs/request.d.ts.map +1 -0
  190. package/dist/cjs/request.js +17 -0
  191. package/dist/cjs/request.js.map +1 -0
  192. package/dist/cjs/requestContext.d.ts +63 -0
  193. package/dist/cjs/requestContext.d.ts.map +1 -0
  194. package/dist/cjs/requestContext.js +46 -0
  195. package/dist/cjs/requestContext.js.map +1 -0
  196. package/dist/cjs/resource/resource.d.ts +27 -0
  197. package/dist/cjs/resource/resource.d.ts.map +1 -0
  198. package/dist/cjs/resource/resource.js +100 -0
  199. package/dist/cjs/resource/resource.js.map +1 -0
  200. package/dist/cjs/services/DefaultServiceAuthorizer.d.ts +12 -0
  201. package/dist/cjs/services/DefaultServiceAuthorizer.d.ts.map +1 -0
  202. package/dist/cjs/services/DefaultServiceAuthorizer.js +79 -0
  203. package/dist/cjs/services/DefaultServiceAuthorizer.js.map +1 -0
  204. package/dist/cjs/services/ServiceAuthorizer.d.ts +11 -0
  205. package/dist/cjs/services/ServiceAuthorizer.d.ts.map +1 -0
  206. package/dist/cjs/services/ServiceAuthorizer.js +3 -0
  207. package/dist/cjs/services/ServiceAuthorizer.js.map +1 -0
  208. package/dist/cjs/util.d.ts +47 -0
  209. package/dist/cjs/util.d.ts.map +1 -0
  210. package/dist/cjs/util.js +180 -0
  211. package/dist/cjs/util.js.map +1 -0
  212. package/dist/esm/action/action.d.ts +19 -0
  213. package/dist/esm/action/action.d.ts.map +1 -0
  214. package/dist/esm/action/action.js +51 -0
  215. package/dist/esm/action/action.js.map +1 -0
  216. package/dist/esm/action.d.ts +4 -0
  217. package/dist/esm/action.d.ts.map +1 -0
  218. package/dist/esm/action.js +18 -0
  219. package/dist/esm/action.js.map +1 -0
  220. package/dist/esm/condition/BaseConditionOperator.d.ts +8 -0
  221. package/dist/esm/condition/BaseConditionOperator.d.ts.map +1 -0
  222. package/dist/esm/condition/BaseConditionOperator.js +2 -0
  223. package/dist/esm/condition/BaseConditionOperator.js.map +1 -0
  224. package/dist/esm/condition/condition.d.ts +5 -0
  225. package/dist/esm/condition/condition.d.ts.map +1 -0
  226. package/dist/esm/condition/condition.js +70 -0
  227. package/dist/esm/condition/condition.js.map +1 -0
  228. package/dist/esm/condition/strings/StringEquals.d.ts +3 -0
  229. package/dist/esm/condition/strings/StringEquals.d.ts.map +1 -0
  230. package/dist/esm/condition/strings/StringEquals.js +11 -0
  231. package/dist/esm/condition/strings/StringEquals.js.map +1 -0
  232. package/dist/esm/evaluate.d.ts +2 -0
  233. package/dist/esm/evaluate.d.ts.map +1 -0
  234. package/dist/esm/evaluate.js +2 -0
  235. package/dist/esm/evaluate.js.map +1 -0
  236. package/dist/esm/index.d.ts +1 -0
  237. package/dist/esm/index.d.ts.map +1 -0
  238. package/dist/esm/index.js +2 -0
  239. package/dist/esm/index.js.map +1 -0
  240. package/dist/esm/package.json +3 -0
  241. package/dist/esm/principal/principal.d.ts +31 -0
  242. package/dist/esm/principal/principal.d.ts.map +1 -0
  243. package/dist/esm/principal/principal.js +100 -0
  244. package/dist/esm/principal/principal.js.map +1 -0
  245. package/dist/esm/request/request.d.ts +52 -0
  246. package/dist/esm/request/request.d.ts.map +1 -0
  247. package/dist/esm/request/request.js +34 -0
  248. package/dist/esm/request/request.js.map +1 -0
  249. package/dist/esm/request/requestAction.d.ts +27 -0
  250. package/dist/esm/request/requestAction.d.ts.map +1 -0
  251. package/dist/esm/request/requestAction.js +15 -0
  252. package/dist/esm/request/requestAction.js.map +1 -0
  253. package/dist/esm/request/requestPrincipal.d.ts +20 -0
  254. package/dist/esm/request/requestPrincipal.d.ts.map +1 -0
  255. package/dist/esm/request/requestPrincipal.js +12 -0
  256. package/dist/esm/request/requestPrincipal.js.map +1 -0
  257. package/dist/esm/request/requestResource.d.ts +37 -0
  258. package/dist/esm/request/requestResource.d.ts.map +1 -0
  259. package/dist/esm/request/requestResource.js +24 -0
  260. package/dist/esm/request/requestResource.js.map +1 -0
  261. package/dist/esm/request/requestSupplementalData.d.ts +19 -0
  262. package/dist/esm/request/requestSupplementalData.d.ts.map +1 -0
  263. package/dist/esm/request/requestSupplementalData.js +30 -0
  264. package/dist/esm/request/requestSupplementalData.js.map +1 -0
  265. package/dist/esm/request.d.ts +15 -0
  266. package/dist/esm/request.d.ts.map +1 -0
  267. package/dist/esm/request.js +9 -0
  268. package/dist/esm/request.js.map +1 -0
  269. package/dist/esm/requestContext.d.ts +63 -0
  270. package/dist/esm/requestContext.d.ts.map +1 -0
  271. package/dist/esm/requestContext.js +39 -0
  272. package/dist/esm/requestContext.js.map +1 -0
  273. package/dist/esm/resource/resource.d.ts +12 -0
  274. package/dist/esm/resource/resource.d.ts.map +1 -0
  275. package/dist/esm/resource/resource.js +97 -0
  276. package/dist/esm/resource/resource.js.map +1 -0
  277. package/dist/esm/util.d.ts +15 -0
  278. package/dist/esm/util.d.ts.map +1 -0
  279. package/dist/esm/util.js +97 -0
  280. package/dist/esm/util.js.map +1 -0
  281. package/package.json +45 -0
@@ -0,0 +1,27 @@
1
+ import { Statement } from "@cloud-copilot/iam-policy";
2
+ import { ConditionMatchResult } from "./condition/condition.js";
3
+ import { PrincipalMatchResult } from "./principal/principal.js";
4
+ /**
5
+ * The result of analyzing a statement against a request.
6
+ *
7
+ */
8
+ export interface StatementAnalysis {
9
+ /**
10
+ * The statement being analyzed.
11
+ */
12
+ statement: Statement;
13
+ /**
14
+ * Whether the Resource or NotResource – if any – matches the request.
15
+ */
16
+ resourceMatch: boolean;
17
+ /**
18
+ * Whether the Action or NotAction matches the request.
19
+ */
20
+ actionMatch: boolean;
21
+ /**
22
+ * Whether the Principal or NotPrincipal – if any – matches the request.
23
+ */
24
+ principalMatch: PrincipalMatchResult;
25
+ conditionMatch: ConditionMatchResult;
26
+ }
27
+ //# sourceMappingURL=StatementAnalysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatementAnalysis.d.ts","sourceRoot":"","sources":["../../src/StatementAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAA;IACpC,cAAc,EAAE,oBAAoB,CAAA;CACrC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=StatementAnalysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatementAnalysis.js","sourceRoot":"","sources":["../../src/StatementAnalysis.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { Action, Statement } from "@cloud-copilot/iam-policy";
2
+ import { AwsRequest } from "../request/request.js";
3
+ /**
4
+ * Check if a request matches the Action or NotAction elements of a statement.
5
+ *
6
+ * @param request the request to check
7
+ * @param statement the statement to check against
8
+ * @returns true if the request matches the Action or NotAction in the statement, false otherwise
9
+ */
10
+ export declare function requestMatchesStatementActions(request: AwsRequest, statement: Statement): boolean;
11
+ /**
12
+ * Check if a request matches a set of actions.
13
+ *
14
+ * @param request the request to check
15
+ * @param actions the actions to check against
16
+ * @returns true if the request matches any of the actions, false otherwise
17
+ */
18
+ export declare function requestMatchesActions(request: AwsRequest, actions: Action[]): boolean;
19
+ /**
20
+ * Check if a request does not match a set of actions.
21
+ *
22
+ * @param request the request to check
23
+ * @param actions the actions to check against
24
+ * @returns true if the request does not match any of the actions, false if the request matches any of the actions
25
+ */
26
+ export declare function requestMatchesNotActions(request: AwsRequest, actions: Action[]): boolean;
27
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/action/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAOjG;AAiBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAiBrF;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAExF"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestMatchesStatementActions = requestMatchesStatementActions;
4
+ exports.requestMatchesActions = requestMatchesActions;
5
+ exports.requestMatchesNotActions = requestMatchesNotActions;
6
+ /**
7
+ * Check if a request matches the Action or NotAction elements of a statement.
8
+ *
9
+ * @param request the request to check
10
+ * @param statement the statement to check against
11
+ * @returns true if the request matches the Action or NotAction in the statement, false otherwise
12
+ */
13
+ function requestMatchesStatementActions(request, statement) {
14
+ if (statement.isActionStatement()) {
15
+ return requestMatchesActions(request, statement.actions());
16
+ }
17
+ else if (statement.isNotActionStatement()) {
18
+ return requestMatchesNotActions(request, statement.notActions());
19
+ }
20
+ throw new Error('Statement has neither Actions nor NotActions');
21
+ }
22
+ /**
23
+ * Convert an action action (the part after the colon) to a regular expression.
24
+ *
25
+ * @param action the action to convert to a regular expression
26
+ * @returns a regular that replaces any wildcards in the action with the appropriate regular expression.
27
+ */
28
+ function convertActionToRegex(action) {
29
+ if (action.indexOf(':') != -1) {
30
+ throw new Error('Action should not contain a colon');
31
+ }
32
+ const pattern = "^" + action.replace(/\?/g, '.').replace(/\*/g, '.*?') + "$";
33
+ return new RegExp(pattern, 'i');
34
+ }
35
+ /**
36
+ * Check if a request matches a set of actions.
37
+ *
38
+ * @param request the request to check
39
+ * @param actions the actions to check against
40
+ * @returns true if the request matches any of the actions, false otherwise
41
+ */
42
+ function requestMatchesActions(request, actions) {
43
+ for (const action of actions) {
44
+ if (action.isWildcardAction()) {
45
+ return true;
46
+ }
47
+ else if (action.isServiceAction()) {
48
+ if (request.action.service() != action.service()) {
49
+ continue;
50
+ }
51
+ const actionRegex = convertActionToRegex(action.action());
52
+ if (actionRegex.test(request.action.action())) {
53
+ return true;
54
+ }
55
+ }
56
+ else {
57
+ throw new Error('Unknown action type');
58
+ }
59
+ }
60
+ return false;
61
+ }
62
+ /**
63
+ * Check if a request does not match a set of actions.
64
+ *
65
+ * @param request the request to check
66
+ * @param actions the actions to check against
67
+ * @returns true if the request does not match any of the actions, false if the request matches any of the actions
68
+ */
69
+ function requestMatchesNotActions(request, actions) {
70
+ return !requestMatchesActions(request, actions);
71
+ }
72
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/action/action.ts"],"names":[],"mappings":";;AAWA,wEAOC;AAwBD,sDAiBC;AASD,4DAEC;AAlED;;;;;;GAMG;AACH,SAAgB,8BAA8B,CAAC,OAAmB,EAAE,SAAoB;IACtF,IAAG,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACjC,OAAO,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,SAAS,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC5C,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,MAAc;IAC1C,IAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAA;IAC5E,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAGD;;;;;;GAMG;AACH,SAAgB,qBAAqB,CAAC,OAAmB,EAAE,OAAiB;IAC1E,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAG,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YACnC,IAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChD,SAAQ;YACV,CAAC;YACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,IAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,OAAmB,EAAE,OAAiB;IAC7E,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Action } from "@cloud-copilot/iam-policy";
2
+ import { Request } from "./request.js";
3
+ export declare function requestMatchesAction(request: Request, actions: Action[]): boolean;
4
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAMvC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAajF"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestMatchesAction = requestMatchesAction;
4
+ function convertActionToRegex(action) {
5
+ return action.replace(/\?/g, '.').replace(/\*/g, '.*');
6
+ }
7
+ function requestMatchesAction(request, actions) {
8
+ for (const action of actions) {
9
+ if (action.isWildcardAction()) {
10
+ return true;
11
+ }
12
+ else if (action.isServiceAction()) {
13
+ const actionRegex = new RegExp(convertActionToRegex(action.value()));
14
+ if (actionRegex.test(request.action)) {
15
+ return true;
16
+ }
17
+ }
18
+ }
19
+ return false;
20
+ }
21
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../src/action.ts"],"names":[],"mappings":";;AAOA,oDAaC;AAjBD,SAAS,oBAAoB,CAAC,MAAc;IAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAgB,EAAE,OAAiB;IACtE,KAAI,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAG,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACrE,IAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IAEH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { AwsRequest } from "../request/request.js";
2
+ export interface BaseConditionOperator {
3
+ name: string;
4
+ matches: (request: AwsRequest, keyValue: string, policyValues: string[]) => boolean;
5
+ allowsVariables: boolean;
6
+ allowsWildcards: boolean;
7
+ }
8
+ //# sourceMappingURL=BaseConditionOperator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseConditionOperator.d.ts","sourceRoot":"","sources":["../../../src/condition/BaseConditionOperator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,OAAO,CAAA;IACnF,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=BaseConditionOperator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseConditionOperator.js","sourceRoot":"","sources":["../../../src/condition/BaseConditionOperator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const ArnEquals: BaseConditionOperator;
3
+ //# sourceMappingURL=ArnEquals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/arn/ArnEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,SAAS,EAAE,qBAKvB,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArnEquals = void 0;
4
+ const ArnLike_js_1 = require("./ArnLike.js");
5
+ exports.ArnEquals = {
6
+ name: 'ArnEquals',
7
+ matches: ArnLike_js_1.ArnLike.matches,
8
+ allowsVariables: ArnLike_js_1.ArnLike.allowsVariables,
9
+ allowsWildcards: ArnLike_js_1.ArnLike.allowsWildcards
10
+ };
11
+ //# sourceMappingURL=ArnEquals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnEquals.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnEquals.ts"],"names":[],"mappings":";;;AACA,6CAAuC;AAE1B,QAAA,SAAS,GAA0B;IAC9C,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,oBAAO,CAAC,OAAO;IACxB,eAAe,EAAE,oBAAO,CAAC,eAAe;IACxC,eAAe,EAAE,oBAAO,CAAC,eAAe;CACzC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const ArnLike: BaseConditionOperator;
3
+ //# sourceMappingURL=ArnLike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnLike.d.ts","sourceRoot":"","sources":["../../../../src/condition/arn/ArnLike.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,OAAO,EAAE,qBAOrB,CAAA"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArnLike = void 0;
4
+ const util_js_1 = require("../../util.js");
5
+ exports.ArnLike = {
6
+ name: 'ArnLike',
7
+ matches: (request, keyValue, policyValues) => {
8
+ return policyValues.some(policyArn => arnMatches(policyArn, keyValue, request));
9
+ },
10
+ allowsVariables: true,
11
+ allowsWildcards: true
12
+ };
13
+ /**
14
+ * Checks to see if a single ARN matches in ArnLike format
15
+ *
16
+ * @param policyArn the ARN to check against
17
+ * @param requestArn the ARN to check
18
+ * @param request the request to check
19
+ * @returns if the ARN matches
20
+ */
21
+ function arnMatches(policyArn, requestArn, request) {
22
+ const policyParts = (0, util_js_1.splitArnParts)(policyArn);
23
+ const requestParts = (0, util_js_1.splitArnParts)(requestArn);
24
+ // If any of the parts are missing, return false
25
+ if ((0, util_js_1.isNotDefined)(policyParts.partition) ||
26
+ (0, util_js_1.isNotDefined)(policyParts.service) ||
27
+ (0, util_js_1.isNotDefined)(policyParts.region) ||
28
+ (0, util_js_1.isNotDefined)(policyParts.accountId) ||
29
+ (0, util_js_1.isNotDefined)(policyParts.resource)) {
30
+ return false;
31
+ }
32
+ // If any of the parts are missing, return false
33
+ if ((0, util_js_1.isNotDefined)(requestParts.partition) ||
34
+ (0, util_js_1.isNotDefined)(requestParts.service) ||
35
+ (0, util_js_1.isNotDefined)(requestParts.region) ||
36
+ (0, util_js_1.isNotDefined)(requestParts.accountId) ||
37
+ (0, util_js_1.isNotDefined)(requestParts.resource)) {
38
+ return false;
39
+ }
40
+ const replaceAndMatch = (policyPart, requestPart) => {
41
+ const pattern = (0, util_js_1.convertIamStringToRegex)(policyPart, request, { replaceWildcards: true });
42
+ return pattern.test(requestPart);
43
+ };
44
+ return replaceAndMatch(policyParts.partition, requestParts.partition) &&
45
+ replaceAndMatch(policyParts.service, requestParts.service) &&
46
+ replaceAndMatch(policyParts.region, requestParts.region) &&
47
+ replaceAndMatch(policyParts.accountId, requestParts.accountId) &&
48
+ replaceAndMatch(policyParts.resource, requestParts.resource);
49
+ }
50
+ //# sourceMappingURL=ArnLike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnLike.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnLike.ts"],"names":[],"mappings":";;;AACA,2CAAqF;AAGxE,QAAA,OAAO,GAA0B;IAC5C,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IACjF,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;CACtB,CAAA;AAED;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,SAAiB,EAAE,UAAkB,EAAE,OAAmB;IAC5E,MAAM,WAAW,GAAG,IAAA,uBAAa,EAAC,SAAS,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAG,IAAA,uBAAa,EAAC,UAAU,CAAC,CAAA;IAC9C,gDAAgD;IAChD,IAAG,IAAA,sBAAY,EAAC,WAAW,CAAC,SAAS,CAAC;QACnC,IAAA,sBAAY,EAAC,WAAW,CAAC,OAAO,CAAC;QACjC,IAAA,sBAAY,EAAC,WAAW,CAAC,MAAM,CAAC;QAChC,IAAA,sBAAY,EAAC,WAAW,CAAC,SAAS,CAAC;QACnC,IAAA,sBAAY,EAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,gDAAgD;IAChD,IAAG,IAAA,sBAAY,EAAC,YAAY,CAAC,SAAS,CAAC;QACpC,IAAA,sBAAY,EAAC,YAAY,CAAC,OAAO,CAAC;QAClC,IAAA,sBAAY,EAAC,YAAY,CAAC,MAAM,CAAC;QACjC,IAAA,sBAAY,EAAC,YAAY,CAAC,SAAS,CAAC;QACpC,IAAA,sBAAY,EAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,UAAkB,EAAE,WAAmB,EAAW,EAAE;QAC3E,MAAM,OAAO,GAAG,IAAA,iCAAuB,EAAC,UAAU,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,CAAC,CAAA;QACtF,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,OAAO,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;QAC9D,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;QAC1D,eAAe,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;QACxD,eAAe,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;QAC9D,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;AAErE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const ArnNotEquals: BaseConditionOperator;
3
+ //# sourceMappingURL=ArnNotEquals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnNotEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,YAAY,EAAE,qBAK1B,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArnNotEquals = void 0;
4
+ const ArnNotLike_js_1 = require("./ArnNotLike.js");
5
+ exports.ArnNotEquals = {
6
+ name: 'ArnNotEquals',
7
+ matches: ArnNotLike_js_1.ArnNotLike.matches,
8
+ allowsVariables: ArnNotLike_js_1.ArnNotLike.allowsVariables,
9
+ allowsWildcards: ArnNotLike_js_1.ArnNotLike.allowsWildcards
10
+ };
11
+ //# sourceMappingURL=ArnNotEquals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnNotEquals.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotEquals.ts"],"names":[],"mappings":";;;AACA,mDAA6C;AAEhC,QAAA,YAAY,GAA0B;IACjD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,0BAAU,CAAC,OAAO;IAC3B,eAAe,EAAE,0BAAU,CAAC,eAAe;IAC3C,eAAe,EAAE,0BAAU,CAAC,eAAe;CAC5C,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const ArnNotLike: BaseConditionOperator;
3
+ //# sourceMappingURL=ArnNotLike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnNotLike.d.ts","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,UAAU,EAAE,qBAOxB,CAAA"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArnNotLike = void 0;
4
+ const ArnLike_js_1 = require("./ArnLike.js");
5
+ exports.ArnNotLike = {
6
+ name: 'ArnNotLike',
7
+ matches: (request, keyValue, policyValues) => {
8
+ return !ArnLike_js_1.ArnLike.matches(request, keyValue, policyValues);
9
+ },
10
+ allowsVariables: true,
11
+ allowsWildcards: true
12
+ };
13
+ //# sourceMappingURL=ArnNotLike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnNotLike.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotLike.ts"],"names":[],"mappings":";;;AACA,6CAAuC;AAE1B,QAAA,UAAU,GAA0B;IAC/C,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,CAAC,oBAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC1D,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;CACtB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { BaseConditionOperator } from "./BaseConditionOperator.js";
2
+ export interface BaseOperatorTest {
3
+ name: string;
4
+ requestContext?: {
5
+ [key: string]: string;
6
+ };
7
+ policyValues: string[];
8
+ testValue: string;
9
+ expected: boolean;
10
+ }
11
+ export declare function testOperator(name: string, tests: BaseOperatorTest[], operator: BaseConditionOperator): void;
12
+ //# sourceMappingURL=baseConditionperatorTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseConditionperatorTests.d.ts","sourceRoot":"","sources":["../../../src/condition/baseConditionperatorTests.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;IAC1C,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,EAAE,qBAAqB,QAcpG"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.testOperator = testOperator;
4
+ const vitest_1 = require("vitest");
5
+ const request_js_1 = require("../request/request.js");
6
+ const requestContext_js_1 = require("../requestContext.js");
7
+ function testOperator(name, tests, operator) {
8
+ (0, vitest_1.describe)(name, it => {
9
+ for (const test of tests) {
10
+ it(test.name, () => {
11
+ //Given the request
12
+ const request = new request_js_1.AwsRequestImpl('', '', '', new requestContext_js_1.RequestContextImpl(test.requestContext || {}));
13
+ //When the condition is evaluated
14
+ const result = operator.matches(request, test.testValue, test.policyValues);
15
+ //Then the result should be as expected
16
+ (0, vitest_1.expect)(result).toBe(test.expected);
17
+ });
18
+ }
19
+ });
20
+ }
21
+ //# sourceMappingURL=baseConditionperatorTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseConditionperatorTests.js","sourceRoot":"","sources":["../../../src/condition/baseConditionperatorTests.ts"],"names":[],"mappings":";;AAaA,oCAcC;AA3BD,mCAAyC;AACzC,sDAAsD;AACtD,4DAAyD;AAWzD,SAAgB,YAAY,CAAC,IAAY,EAAE,KAAyB,EAAE,QAA+B;IACnG,IAAA,iBAAQ,EAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QAClB,KAAI,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACxB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;gBACjB,mBAAmB;gBACnB,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,sCAAkB,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAA;gBACjG,iCAAiC;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;gBAE3E,uCAAuC;gBACvC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACpC,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ /**
3
+ * For Binary we don't really have the ability to accept binary
4
+ * values right now, so just do a string match.
5
+ */
6
+ export declare const BinaryEquals: BaseConditionOperator;
7
+ //# sourceMappingURL=BinaryEquals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/binary/BinaryEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,qBAO1B,CAAA"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BinaryEquals = void 0;
4
+ /**
5
+ * For Binary we don't really have the ability to accept binary
6
+ * values right now, so just do a string match.
7
+ */
8
+ exports.BinaryEquals = {
9
+ name: 'BinaryEquals',
10
+ matches: (request, keyValue, policyValues) => {
11
+ return policyValues.includes(keyValue);
12
+ },
13
+ allowsVariables: true,
14
+ allowsWildcards: false
15
+ };
16
+ //# sourceMappingURL=BinaryEquals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryEquals.js","sourceRoot":"","sources":["../../../../src/condition/binary/BinaryEquals.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,YAAY,GAA0B;IACjD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;CACvB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const Bool: BaseConditionOperator;
3
+ //# sourceMappingURL=Bool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bool.d.ts","sourceRoot":"","sources":["../../../../src/condition/boolean/Bool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,IAAI,EAAE,qBAclB,CAAA"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Bool = void 0;
4
+ const util_js_1 = require("../../util.js");
5
+ exports.Bool = {
6
+ name: 'Bool',
7
+ matches: (request, keyValue, policyValues) => {
8
+ return policyValues.some(policyValue => {
9
+ const pattern = (0, util_js_1.convertIamStringToRegex)(policyValue, request, { replaceWildcards: false });
10
+ const lowercasePattern = pattern.source.toLowerCase();
11
+ if (lowercasePattern != '^true$' && lowercasePattern != '^false$') {
12
+ return false;
13
+ }
14
+ return new RegExp(pattern, 'i').test(keyValue);
15
+ });
16
+ },
17
+ allowsVariables: true,
18
+ allowsWildcards: false
19
+ };
20
+ //# sourceMappingURL=Bool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bool.js","sourceRoot":"","sources":["../../../../src/condition/boolean/Bool.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAG3C,QAAA,IAAI,GAA0B;IACzC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACrC,MAAM,OAAO,GAAG,IAAA,iCAAuB,EAAC,WAAW,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAA;YACxF,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;YACrD,IAAG,gBAAgB,IAAI,QAAQ,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC;gBACjE,OAAO,KAAK,CAAA;YACd,CAAC;YACD,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChD,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;CACvB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { Condition } from '@cloud-copilot/iam-policy';
2
+ import { AwsRequest } from '../request/request';
3
+ export type ConditionMatchResult = 'Match' | 'NoMatch' | 'Unknown';
4
+ export declare function requestMatchesConditions(request: AwsRequest, conditions: Condition[]): ConditionMatchResult;
5
+ export declare function singleConditionMatchesRequest(request: AwsRequest, condition: Condition): ConditionMatchResult;
6
+ //# sourceMappingURL=condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/condition/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA4BhD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;AAiBlE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,oBAAoB,CAW3G;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,oBAAoB,CAiE7G"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requestMatchesConditions = requestMatchesConditions;
4
+ exports.singleConditionMatchesRequest = singleConditionMatchesRequest;
5
+ const ArnEquals_js_1 = require("./arn/ArnEquals.js");
6
+ const ArnLike_js_1 = require("./arn/ArnLike.js");
7
+ const ArnNotEquals_js_1 = require("./arn/ArnNotEquals.js");
8
+ const ArnNotLike_js_1 = require("./arn/ArnNotLike.js");
9
+ const BinaryEquals_js_1 = require("./binary/BinaryEquals.js");
10
+ const Bool_js_1 = require("./boolean/Bool.js");
11
+ const DateEquals_js_1 = require("./date/DateEquals.js");
12
+ const DateGreaterThan_js_1 = require("./date/DateGreaterThan.js");
13
+ const DateGreaterThanEquals_js_1 = require("./date/DateGreaterThanEquals.js");
14
+ const DateLessThan_js_1 = require("./date/DateLessThan.js");
15
+ const DateLessThanEquals_js_1 = require("./date/DateLessThanEquals.js");
16
+ const DateNotEquals_js_1 = require("./date/DateNotEquals.js");
17
+ const IpAddress_js_1 = require("./ipaddress/IpAddress.js");
18
+ const NotIpAddress_js_1 = require("./ipaddress/NotIpAddress.js");
19
+ const NumericEquals_js_1 = require("./numeric/NumericEquals.js");
20
+ const NumericGreaterThan_js_1 = require("./numeric/NumericGreaterThan.js");
21
+ const NumericGreaterThanEquals_js_1 = require("./numeric/NumericGreaterThanEquals.js");
22
+ const NumericLessThan_js_1 = require("./numeric/NumericLessThan.js");
23
+ const NumericNotEquals_js_1 = require("./numeric/NumericNotEquals.js");
24
+ const StringEquals_js_1 = require("./string/StringEquals.js");
25
+ const StringEqualsIgnoreCase_js_1 = require("./string/StringEqualsIgnoreCase.js");
26
+ const StringLike_js_1 = require("./string/StringLike.js");
27
+ const StringNotEquals_js_1 = require("./string/StringNotEquals.js");
28
+ const StringNotEqualsIgnoreCase_js_1 = require("./string/StringNotEqualsIgnoreCase.js");
29
+ const StringNotLike_js_1 = require("./string/StringNotLike.js");
30
+ const allOperators = [
31
+ StringEquals_js_1.StringEquals, StringNotEquals_js_1.StringNotEquals, StringEqualsIgnoreCase_js_1.StringEqualsIgnoreCase, StringNotEqualsIgnoreCase_js_1.StringNotEqualsIgnoreCase, StringLike_js_1.StringLike, StringNotLike_js_1.StringNotLike,
32
+ NumericEquals_js_1.NumericEquals, NumericNotEquals_js_1.NumericNotEquals, NumericLessThan_js_1.NumericLessThan, NumericNotEquals_js_1.NumericNotEquals, NumericGreaterThan_js_1.NumericGreaterThan, NumericGreaterThanEquals_js_1.NumericGreaterThanEquals,
33
+ DateEquals_js_1.DateEquals, DateNotEquals_js_1.DateNotEquals, DateLessThan_js_1.DateLessThan, DateLessThanEquals_js_1.DateLessThanEquals, DateGreaterThan_js_1.DateGreaterThan, DateGreaterThanEquals_js_1.DateGreaterThanEquals,
34
+ Bool_js_1.Bool,
35
+ BinaryEquals_js_1.BinaryEquals,
36
+ IpAddress_js_1.IpAddress, NotIpAddress_js_1.NotIpAddress,
37
+ ArnLike_js_1.ArnLike, ArnEquals_js_1.ArnEquals, ArnNotLike_js_1.ArnNotLike, ArnNotEquals_js_1.ArnNotEquals
38
+ ];
39
+ const baseOperations = {};
40
+ for (const operator of allOperators) {
41
+ baseOperations[operator.name.toLowerCase()] = operator;
42
+ }
43
+ function requestMatchesConditions(request, conditions) {
44
+ const results = conditions.map(condition => singleConditionMatchesRequest(request, condition));
45
+ const unknowns = results.filter(result => result === 'Unknown');
46
+ if (unknowns.length > 0) {
47
+ return 'Unknown';
48
+ }
49
+ const noMatches = results.filter(result => result === 'NoMatch');
50
+ if (noMatches.length > 0) {
51
+ return 'NoMatch';
52
+ }
53
+ return 'Match';
54
+ }
55
+ function singleConditionMatchesRequest(request, condition) {
56
+ const key = condition.conditionKey();
57
+ const policyValues = condition.conditionValues();
58
+ const baseOperation = baseOperations[condition.operation().baseOperator().toLowerCase()]?.matches;
59
+ const keyExists = request.contextKeyExists(key);
60
+ const keyValue = keyExists ? request.getContextKeyValue(key) : undefined;
61
+ if (condition.operation().value().toLowerCase() == 'null' || condition.operation().baseOperator()?.toLowerCase() == 'null') {
62
+ return testNull(condition, keyExists);
63
+ }
64
+ if (condition.operation().setOperator()) {
65
+ const setOperator = condition.operation().setOperator();
66
+ if (setOperator === 'ForAnyValue') {
67
+ if (!keyExists || !keyValue || !keyValue.isArrayValue()) {
68
+ return 'NoMatch';
69
+ }
70
+ if (!baseOperation) {
71
+ return 'Unknown';
72
+ }
73
+ //Do the loop
74
+ const anyMatch = keyValue.values.some(value => {
75
+ return baseOperation(request, value, policyValues);
76
+ });
77
+ return anyMatch ? 'Match' : 'NoMatch';
78
+ }
79
+ else if (setOperator === 'ForAllValues') {
80
+ if (!keyExists) {
81
+ return 'Match';
82
+ }
83
+ if (!keyValue || !keyValue.isArrayValue()) {
84
+ return 'NoMatch';
85
+ }
86
+ if (!baseOperation) {
87
+ return 'Unknown';
88
+ }
89
+ //Do the loop
90
+ const anyNotMatch = keyValue.values.some(value => {
91
+ return !baseOperation(request, value, policyValues);
92
+ });
93
+ return anyNotMatch ? 'NoMatch' : 'Match';
94
+ }
95
+ else {
96
+ throw new Error(`Unknown set operator: ${setOperator}`);
97
+ }
98
+ }
99
+ if (condition.operation().isIfExists() || condition.operation().baseOperator().toLowerCase().includes('not')) {
100
+ //Check if it exists, return true if it doesn't
101
+ //Double check what happens here if the key is not a valid key or is of the wrong type
102
+ if (!keyExists) {
103
+ return 'Match';
104
+ }
105
+ }
106
+ if (!keyValue || !keyValue.isStringValue()) {
107
+ //Set operator is required for a multi-value key
108
+ return 'NoMatch';
109
+ }
110
+ if (!baseOperation) {
111
+ return 'Unknown';
112
+ }
113
+ const matches = baseOperation(request, keyValue.value, policyValues);
114
+ return matches ? 'Match' : 'NoMatch';
115
+ }
116
+ function testNull(condition, keyExists) {
117
+ const lowerCaseValues = condition.conditionValues().map(value => value.toLowerCase());
118
+ if (keyExists) {
119
+ return lowerCaseValues.includes('false') ? 'Match' : 'NoMatch';
120
+ }
121
+ return lowerCaseValues.includes('true') ? 'Match' : 'NoMatch';
122
+ }
123
+ //# sourceMappingURL=condition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/condition/condition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const DateEquals: BaseConditionOperator;
3
+ //# sourceMappingURL=DateEquals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/date/DateEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,UAAU,EAAE,qBAYxB,CAAA"}