@cloud-copilot/iam-simulate 0.1.0 → 0.1.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 (239) hide show
  1. package/dist/cjs/condition/baseConditionperatorTests.js +1 -1
  2. package/dist/cjs/condition/baseConditionperatorTests.js.map +1 -1
  3. package/dist/cjs/core_engine/coreSimulatorEngine.d.ts.map +1 -1
  4. package/dist/cjs/core_engine/coreSimulatorEngine.js +4 -1
  5. package/dist/cjs/core_engine/coreSimulatorEngine.js.map +1 -1
  6. package/dist/cjs/index.d.ts +4 -0
  7. package/dist/cjs/index.d.ts.map +1 -1
  8. package/dist/cjs/index.js +8 -0
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/request/request.d.ts +9 -3
  11. package/dist/cjs/request/request.d.ts.map +1 -1
  12. package/dist/cjs/request/request.js +4 -7
  13. package/dist/cjs/request/request.js.map +1 -1
  14. package/dist/cjs/request/requestResource.d.ts +7 -1
  15. package/dist/cjs/request/requestResource.d.ts.map +1 -1
  16. package/dist/cjs/request/requestResource.js +6 -1
  17. package/dist/cjs/request/requestResource.js.map +1 -1
  18. package/dist/cjs/services/DefaultServiceAuthorizer.d.ts.map +1 -1
  19. package/dist/cjs/services/DefaultServiceAuthorizer.js +2 -2
  20. package/dist/cjs/services/DefaultServiceAuthorizer.js.map +1 -1
  21. package/dist/cjs/simulation_engine/contextKeys.d.ts +3 -0
  22. package/dist/cjs/simulation_engine/contextKeys.d.ts.map +1 -0
  23. package/dist/cjs/simulation_engine/contextKeys.js +53 -0
  24. package/dist/cjs/simulation_engine/contextKeys.js.map +1 -0
  25. package/dist/cjs/simulation_engine/simulationEngine.d.ts +25 -0
  26. package/dist/cjs/simulation_engine/simulationEngine.d.ts.map +1 -0
  27. package/dist/cjs/simulation_engine/simulationEngine.js +38 -0
  28. package/dist/cjs/simulation_engine/simulationEngine.js.map +1 -0
  29. package/dist/esm/StatementAnalysis.d.ts +27 -0
  30. package/dist/esm/StatementAnalysis.d.ts.map +1 -0
  31. package/dist/esm/StatementAnalysis.js +2 -0
  32. package/dist/esm/StatementAnalysis.js.map +1 -0
  33. package/dist/esm/action/action.d.ts +9 -1
  34. package/dist/esm/action/action.d.ts.map +1 -1
  35. package/dist/esm/action/action.js +16 -0
  36. package/dist/esm/action/action.js.map +1 -1
  37. package/dist/esm/condition/arn/ArnEquals.d.ts +3 -0
  38. package/dist/esm/condition/arn/ArnEquals.d.ts.map +1 -0
  39. package/dist/esm/condition/arn/ArnEquals.js +8 -0
  40. package/dist/esm/condition/arn/ArnEquals.js.map +1 -0
  41. package/dist/esm/condition/arn/ArnLike.d.ts +3 -0
  42. package/dist/esm/condition/arn/ArnLike.d.ts.map +1 -0
  43. package/dist/esm/condition/arn/ArnLike.js +47 -0
  44. package/dist/esm/condition/arn/ArnLike.js.map +1 -0
  45. package/dist/esm/condition/arn/ArnNotEquals.d.ts +3 -0
  46. package/dist/esm/condition/arn/ArnNotEquals.d.ts.map +1 -0
  47. package/dist/esm/condition/arn/ArnNotEquals.js +8 -0
  48. package/dist/esm/condition/arn/ArnNotEquals.js.map +1 -0
  49. package/dist/esm/condition/arn/ArnNotLike.d.ts +3 -0
  50. package/dist/esm/condition/arn/ArnNotLike.d.ts.map +1 -0
  51. package/dist/esm/condition/arn/ArnNotLike.js +10 -0
  52. package/dist/esm/condition/arn/ArnNotLike.js.map +1 -0
  53. package/dist/esm/condition/baseConditionperatorTests.d.ts +12 -0
  54. package/dist/esm/condition/baseConditionperatorTests.d.ts.map +1 -0
  55. package/dist/esm/condition/baseConditionperatorTests.js +18 -0
  56. package/dist/esm/condition/baseConditionperatorTests.js.map +1 -0
  57. package/dist/esm/condition/binary/BinaryEquals.d.ts +7 -0
  58. package/dist/esm/condition/binary/BinaryEquals.d.ts.map +1 -0
  59. package/dist/esm/condition/binary/BinaryEquals.js +13 -0
  60. package/dist/esm/condition/binary/BinaryEquals.js.map +1 -0
  61. package/dist/esm/condition/boolean/Bool.d.ts +3 -0
  62. package/dist/esm/condition/boolean/Bool.d.ts.map +1 -0
  63. package/dist/esm/condition/boolean/Bool.js +17 -0
  64. package/dist/esm/condition/boolean/Bool.js.map +1 -0
  65. package/dist/esm/condition/condition.d.ts +1 -0
  66. package/dist/esm/condition/condition.d.ts.map +1 -1
  67. package/dist/esm/condition/condition.js +60 -11
  68. package/dist/esm/condition/condition.js.map +1 -1
  69. package/dist/esm/condition/date/DateEquals.d.ts +3 -0
  70. package/dist/esm/condition/date/DateEquals.d.ts.map +1 -0
  71. package/dist/esm/condition/date/DateEquals.js +14 -0
  72. package/dist/esm/condition/date/DateEquals.js.map +1 -0
  73. package/dist/esm/condition/date/DateGreaterThan.d.ts +3 -0
  74. package/dist/esm/condition/date/DateGreaterThan.d.ts.map +1 -0
  75. package/dist/esm/condition/date/DateGreaterThan.js +14 -0
  76. package/dist/esm/condition/date/DateGreaterThan.js.map +1 -0
  77. package/dist/esm/condition/date/DateGreaterThanEquals.d.ts +3 -0
  78. package/dist/esm/condition/date/DateGreaterThanEquals.d.ts.map +1 -0
  79. package/dist/esm/condition/date/DateGreaterThanEquals.js +14 -0
  80. package/dist/esm/condition/date/DateGreaterThanEquals.js.map +1 -0
  81. package/dist/esm/condition/date/DateLessThan.d.ts +3 -0
  82. package/dist/esm/condition/date/DateLessThan.d.ts.map +1 -0
  83. package/dist/esm/condition/date/DateLessThan.js +14 -0
  84. package/dist/esm/condition/date/DateLessThan.js.map +1 -0
  85. package/dist/esm/condition/date/DateLessThanEquals.d.ts +3 -0
  86. package/dist/esm/condition/date/DateLessThanEquals.d.ts.map +1 -0
  87. package/dist/esm/condition/date/DateLessThanEquals.js +14 -0
  88. package/dist/esm/condition/date/DateLessThanEquals.js.map +1 -0
  89. package/dist/esm/condition/date/DateNotEquals.d.ts +3 -0
  90. package/dist/esm/condition/date/DateNotEquals.d.ts.map +1 -0
  91. package/dist/esm/condition/date/DateNotEquals.js +26 -0
  92. package/dist/esm/condition/date/DateNotEquals.js.map +1 -0
  93. package/dist/esm/condition/date/date.d.ts +17 -0
  94. package/dist/esm/condition/date/date.d.ts.map +1 -0
  95. package/dist/esm/condition/date/date.js +38 -0
  96. package/dist/esm/condition/date/date.js.map +1 -0
  97. package/dist/esm/condition/ipaddress/IpAddress.d.ts +3 -0
  98. package/dist/esm/condition/ipaddress/IpAddress.d.ts.map +1 -0
  99. package/dist/esm/condition/ipaddress/IpAddress.js +24 -0
  100. package/dist/esm/condition/ipaddress/IpAddress.js.map +1 -0
  101. package/dist/esm/condition/ipaddress/NotIpAddress.d.ts +3 -0
  102. package/dist/esm/condition/ipaddress/NotIpAddress.d.ts.map +1 -0
  103. package/dist/esm/condition/ipaddress/NotIpAddress.js +28 -0
  104. package/dist/esm/condition/ipaddress/NotIpAddress.js.map +1 -0
  105. package/dist/esm/condition/ipaddress/ipv4.d.ts +24 -0
  106. package/dist/esm/condition/ipaddress/ipv4.d.ts.map +1 -0
  107. package/dist/esm/condition/ipaddress/ipv4.js +54 -0
  108. package/dist/esm/condition/ipaddress/ipv4.js.map +1 -0
  109. package/dist/esm/condition/ipaddress/ipv6.d.ts +24 -0
  110. package/dist/esm/condition/ipaddress/ipv6.d.ts.map +1 -0
  111. package/dist/esm/condition/ipaddress/ipv6.js +106 -0
  112. package/dist/esm/condition/ipaddress/ipv6.js.map +1 -0
  113. package/dist/esm/condition/numeric/NumericEquals.d.ts +3 -0
  114. package/dist/esm/condition/numeric/NumericEquals.d.ts.map +1 -0
  115. package/dist/esm/condition/numeric/NumericEquals.js +14 -0
  116. package/dist/esm/condition/numeric/NumericEquals.js.map +1 -0
  117. package/dist/esm/condition/numeric/NumericGreaterThan.d.ts +3 -0
  118. package/dist/esm/condition/numeric/NumericGreaterThan.d.ts.map +1 -0
  119. package/dist/esm/condition/numeric/NumericGreaterThan.js +14 -0
  120. package/dist/esm/condition/numeric/NumericGreaterThan.js.map +1 -0
  121. package/dist/esm/condition/numeric/NumericGreaterThanEquals.d.ts +3 -0
  122. package/dist/esm/condition/numeric/NumericGreaterThanEquals.d.ts.map +1 -0
  123. package/dist/esm/condition/numeric/NumericGreaterThanEquals.js +14 -0
  124. package/dist/esm/condition/numeric/NumericGreaterThanEquals.js.map +1 -0
  125. package/dist/esm/condition/numeric/NumericLessThan.d.ts +3 -0
  126. package/dist/esm/condition/numeric/NumericLessThan.d.ts.map +1 -0
  127. package/dist/esm/condition/numeric/NumericLessThan.js +14 -0
  128. package/dist/esm/condition/numeric/NumericLessThan.js.map +1 -0
  129. package/dist/esm/condition/numeric/NumericLessThanEquals.d.ts +3 -0
  130. package/dist/esm/condition/numeric/NumericLessThanEquals.d.ts.map +1 -0
  131. package/dist/esm/condition/numeric/NumericLessThanEquals.js +14 -0
  132. package/dist/esm/condition/numeric/NumericLessThanEquals.js.map +1 -0
  133. package/dist/esm/condition/numeric/NumericNotEquals.d.ts +3 -0
  134. package/dist/esm/condition/numeric/NumericNotEquals.d.ts.map +1 -0
  135. package/dist/esm/condition/numeric/NumericNotEquals.js +26 -0
  136. package/dist/esm/condition/numeric/NumericNotEquals.js.map +1 -0
  137. package/dist/esm/condition/numeric/numeric.d.ts +17 -0
  138. package/dist/esm/condition/numeric/numeric.d.ts.map +1 -0
  139. package/dist/esm/condition/numeric/numeric.js +37 -0
  140. package/dist/esm/condition/numeric/numeric.js.map +1 -0
  141. package/dist/esm/condition/string/StringEquals.d.ts.map +1 -0
  142. package/dist/esm/condition/string/StringEquals.js.map +1 -0
  143. package/dist/esm/condition/string/StringEqualsIgnoreCase.d.ts +3 -0
  144. package/dist/esm/condition/string/StringEqualsIgnoreCase.d.ts.map +1 -0
  145. package/dist/esm/condition/string/StringEqualsIgnoreCase.js +14 -0
  146. package/dist/esm/condition/string/StringEqualsIgnoreCase.js.map +1 -0
  147. package/dist/esm/condition/string/StringLike.d.ts +3 -0
  148. package/dist/esm/condition/string/StringLike.d.ts.map +1 -0
  149. package/dist/esm/condition/string/StringLike.js +11 -0
  150. package/dist/esm/condition/string/StringLike.js.map +1 -0
  151. package/dist/esm/condition/string/StringNotEquals.d.ts +3 -0
  152. package/dist/esm/condition/string/StringNotEquals.d.ts.map +1 -0
  153. package/dist/esm/condition/string/StringNotEquals.js +11 -0
  154. package/dist/esm/condition/string/StringNotEquals.js.map +1 -0
  155. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.d.ts +3 -0
  156. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.d.ts.map +1 -0
  157. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.js +10 -0
  158. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.js.map +1 -0
  159. package/dist/esm/condition/string/StringNotLike.d.ts +3 -0
  160. package/dist/esm/condition/string/StringNotLike.d.ts.map +1 -0
  161. package/dist/esm/condition/string/StringNotLike.js +10 -0
  162. package/dist/esm/condition/string/StringNotLike.js.map +1 -0
  163. package/dist/esm/core_engine/coreSimulatorEngine.d.ts +44 -0
  164. package/dist/esm/core_engine/coreSimulatorEngine.d.ts.map +1 -0
  165. package/dist/esm/core_engine/coreSimulatorEngine.js +58 -0
  166. package/dist/esm/core_engine/coreSimulatorEngine.js.map +1 -0
  167. package/dist/esm/evaluate.d.ts +1 -1
  168. package/dist/esm/evaluate.d.ts.map +1 -1
  169. package/dist/esm/index.d.ts +4 -0
  170. package/dist/esm/index.d.ts.map +1 -1
  171. package/dist/esm/index.js +3 -1
  172. package/dist/esm/index.js.map +1 -1
  173. package/dist/esm/principal/principal.d.ts +1 -2
  174. package/dist/esm/principal/principal.d.ts.map +1 -1
  175. package/dist/esm/request/request.d.ts +9 -5
  176. package/dist/esm/request/request.d.ts.map +1 -1
  177. package/dist/esm/request/request.js +4 -8
  178. package/dist/esm/request/request.js.map +1 -1
  179. package/dist/esm/request/requestResource.d.ts +7 -1
  180. package/dist/esm/request/requestResource.d.ts.map +1 -1
  181. package/dist/esm/request/requestResource.js +5 -1
  182. package/dist/esm/request/requestResource.js.map +1 -1
  183. package/dist/esm/resource/resource.d.ts +16 -1
  184. package/dist/esm/resource/resource.d.ts.map +1 -1
  185. package/dist/esm/resource/resource.js +24 -26
  186. package/dist/esm/resource/resource.js.map +1 -1
  187. package/dist/esm/services/DefaultServiceAuthorizer.d.ts +12 -0
  188. package/dist/esm/services/DefaultServiceAuthorizer.d.ts.map +1 -0
  189. package/dist/esm/services/DefaultServiceAuthorizer.js +75 -0
  190. package/dist/esm/services/DefaultServiceAuthorizer.js.map +1 -0
  191. package/dist/esm/services/ServiceAuthorizer.d.ts +11 -0
  192. package/dist/esm/services/ServiceAuthorizer.d.ts.map +1 -0
  193. package/dist/esm/services/ServiceAuthorizer.js +2 -0
  194. package/dist/esm/services/ServiceAuthorizer.js.map +1 -0
  195. package/dist/esm/simulation_engine/contextKeys.d.ts +3 -0
  196. package/dist/esm/simulation_engine/contextKeys.d.ts.map +1 -0
  197. package/dist/esm/simulation_engine/contextKeys.js +49 -0
  198. package/dist/esm/simulation_engine/contextKeys.js.map +1 -0
  199. package/dist/esm/simulation_engine/simulationEngine.d.ts +25 -0
  200. package/dist/esm/simulation_engine/simulationEngine.d.ts.map +1 -0
  201. package/dist/esm/simulation_engine/simulationEngine.js +35 -0
  202. package/dist/esm/simulation_engine/simulationEngine.js.map +1 -0
  203. package/dist/esm/util.d.ts +32 -0
  204. package/dist/esm/util.d.ts.map +1 -1
  205. package/dist/esm/util.js +78 -2
  206. package/dist/esm/util.js.map +1 -1
  207. package/package.json +1 -1
  208. package/dist/cjs/action.d.ts +0 -4
  209. package/dist/cjs/action.d.ts.map +0 -1
  210. package/dist/cjs/action.js +0 -21
  211. package/dist/cjs/action.js.map +0 -1
  212. package/dist/cjs/condition/strings/StringEquals.d.ts.map +0 -1
  213. package/dist/cjs/condition/strings/StringEquals.js +0 -14
  214. package/dist/cjs/condition/strings/StringEquals.js.map +0 -1
  215. package/dist/cjs/request/requestSupplementalData.d.ts +0 -19
  216. package/dist/cjs/request/requestSupplementalData.d.ts.map +0 -1
  217. package/dist/cjs/request/requestSupplementalData.js +0 -37
  218. package/dist/cjs/request/requestSupplementalData.js.map +0 -1
  219. package/dist/cjs/request.d.ts +0 -15
  220. package/dist/cjs/request.d.ts.map +0 -1
  221. package/dist/cjs/request.js +0 -17
  222. package/dist/cjs/request.js.map +0 -1
  223. package/dist/esm/action.d.ts +0 -4
  224. package/dist/esm/action.d.ts.map +0 -1
  225. package/dist/esm/action.js +0 -18
  226. package/dist/esm/action.js.map +0 -1
  227. package/dist/esm/condition/strings/StringEquals.d.ts +0 -3
  228. package/dist/esm/condition/strings/StringEquals.d.ts.map +0 -1
  229. package/dist/esm/condition/strings/StringEquals.js.map +0 -1
  230. package/dist/esm/request/requestSupplementalData.d.ts +0 -19
  231. package/dist/esm/request/requestSupplementalData.d.ts.map +0 -1
  232. package/dist/esm/request/requestSupplementalData.js +0 -30
  233. package/dist/esm/request/requestSupplementalData.js.map +0 -1
  234. package/dist/esm/request.d.ts +0 -15
  235. package/dist/esm/request.d.ts.map +0 -1
  236. package/dist/esm/request.js +0 -9
  237. package/dist/esm/request.js.map +0 -1
  238. /package/dist/{cjs/condition/strings → esm/condition/string}/StringEquals.d.ts +0 -0
  239. /package/dist/esm/condition/{strings → string}/StringEquals.js +0 -0
@@ -9,7 +9,7 @@ function testOperator(name, tests, operator) {
9
9
  for (const test of tests) {
10
10
  it(test.name, () => {
11
11
  //Given the request
12
- const request = new request_js_1.AwsRequestImpl('', '', '', new requestContext_js_1.RequestContextImpl(test.requestContext || {}));
12
+ const request = new request_js_1.AwsRequestImpl('', { resource: '', accountId: '' }, '', new requestContext_js_1.RequestContextImpl(test.requestContext || {}));
13
13
  //When the condition is evaluated
14
14
  const result = operator.matches(request, test.testValue, test.policyValues);
15
15
  //Then the result should be as expected
@@ -1 +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"}
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,EAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,IAAI,sCAAkB,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC5H,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"coreSimulatorEngine.d.ts","sourceRoot":"","sources":["../../../src/core_engine/coreSimulatorEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CAOzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,iBAAiB,CAGrF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,iBAAiB,EAAE,CAgB5G"}
1
+ {"version":3,"file":"coreSimulatorEngine.d.ts","sourceRoot":"","sources":["../../../src/core_engine/coreSimulatorEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAC3B;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CAOzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,iBAAiB,CAMrF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,iBAAiB,EAAE,CAe5G"}
@@ -33,7 +33,10 @@ function authorize(request) {
33
33
  */
34
34
  function getServiceAuthorizer(request) {
35
35
  const serviceName = request.request.action.service().toLowerCase();
36
- return new serviceEngines[serviceName] || new DefaultServiceAuthorizer_js_1.DefaultServiceAuthorizer;
36
+ if (serviceEngines[serviceName]) {
37
+ return new serviceEngines[serviceName]();
38
+ }
39
+ return new DefaultServiceAuthorizer_js_1.DefaultServiceAuthorizer;
37
40
  }
38
41
  /**
39
42
  * Analyzes a set of identity policies
@@ -1 +1 @@
1
- {"version":3,"file":"coreSimulatorEngine.js","sourceRoot":"","sources":["../../../src/core_engine/coreSimulatorEngine.ts"],"names":[],"mappings":";;AAmCA,8BAOC;AASD,oDAGC;AASD,0DAgBC;AA9ED,mDAAqE;AACrE,4DAAqE;AAGrE,yDAA2E;AAC3E,yFAAmF;AAmBnF,MAAM,cAAc,GAAgD,EAAE,CAAC;AAEvE;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,OAA6B;IACrD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5F,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,iBAAiB,CAAC,SAAS,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,kBAAkB,EAAE,gBAAgB;KACrC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,OAA6B;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACnE,OAAO,IAAI,cAAc,CAAC,WAAW,CAAC,IAAI,IAAI,sDAAwB,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,gBAA0B,EAAE,OAAmB;IACrF,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAI,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACrC,KAAI,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YAE3C,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS;gBACT,aAAa,EAAE,IAAA,8CAAgC,EAAC,OAAO,EAAE,SAAS,CAAC;gBACnE,WAAW,EAAE,IAAA,0CAA8B,EAAC,OAAO,EAAE,SAAS,CAAC;gBAC/D,cAAc,EAAE,IAAA,uCAAwB,EAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC;gBACzE,cAAc,EAAE,OAAO;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"coreSimulatorEngine.js","sourceRoot":"","sources":["../../../src/core_engine/coreSimulatorEngine.ts"],"names":[],"mappings":";;AAmCA,8BAOC;AASD,oDAMC;AASD,0DAeC;AAhFD,mDAAqE;AACrE,4DAAqE;AAGrE,yDAA2E;AAC3E,yFAAmF;AAmBnF,MAAM,cAAc,GAAgD,EAAE,CAAC;AAEvE;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,OAA6B;IACrD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5F,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,iBAAiB,CAAC,SAAS,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,kBAAkB,EAAE,gBAAgB;KACrC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,OAA6B;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACnE,IAAG,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,sDAAwB,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,gBAA0B,EAAE,OAAmB;IACrF,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAI,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;QACrC,KAAI,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS;gBACT,aAAa,EAAE,IAAA,8CAAgC,EAAC,OAAO,EAAE,SAAS,CAAC;gBACnE,WAAW,EAAE,IAAA,0CAA8B,EAAC,OAAO,EAAE,SAAS,CAAC;gBAC/D,cAAc,EAAE,IAAA,uCAAwB,EAAC,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC;gBACzE,cAAc,EAAE,OAAO;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1,5 @@
1
+ export { authorize, type AuthorizationRequest } from './core_engine/coreSimulatorEngine.js';
2
+ export { type EvaluationResult } from './evaluate.js';
3
+ export { AwsRequestImpl, type AwsRequest } from './request/request.js';
4
+ export { RequestContextImpl, type RequestContext } from './requestContext.js';
1
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,10 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestContextImpl = exports.AwsRequestImpl = exports.authorize = void 0;
4
+ var coreSimulatorEngine_js_1 = require("./core_engine/coreSimulatorEngine.js");
5
+ Object.defineProperty(exports, "authorize", { enumerable: true, get: function () { return coreSimulatorEngine_js_1.authorize; } });
6
+ var request_js_1 = require("./request/request.js");
7
+ Object.defineProperty(exports, "AwsRequestImpl", { enumerable: true, get: function () { return request_js_1.AwsRequestImpl; } });
8
+ var requestContext_js_1 = require("./requestContext.js");
9
+ Object.defineProperty(exports, "RequestContextImpl", { enumerable: true, get: function () { return requestContext_js_1.RequestContextImpl; } });
2
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+EAA4F;AAAnF,mHAAA,SAAS,OAAA;AAElB,mDAAuE;AAA9D,4GAAA,cAAc,OAAA;AACvB,yDAA8E;AAArE,uHAAA,kBAAkB,OAAA"}
@@ -14,7 +14,7 @@ export interface AwsRequest {
14
14
  /**
15
15
  * The resource to be acted upon
16
16
  */
17
- resource?: RequestResource;
17
+ resource: RequestResource;
18
18
  /**
19
19
  * The context of the request
20
20
  */
@@ -37,10 +37,16 @@ export interface AwsRequest {
37
37
  }
38
38
  export declare class AwsRequestImpl implements AwsRequest {
39
39
  readonly principalString: string;
40
- readonly resourceString: string | undefined;
40
+ readonly resourceIdentifier: {
41
+ resource: string;
42
+ accountId: string;
43
+ };
41
44
  readonly actionString: string;
42
45
  readonly context: RequestContext;
43
- constructor(principalString: string, resourceString: string | undefined, actionString: string, context: RequestContext);
46
+ constructor(principalString: string, resourceIdentifier: {
47
+ resource: string;
48
+ accountId: string;
49
+ }, actionString: string, context: RequestContext);
44
50
  get action(): RequestAction;
45
51
  get resource(): RequestResource;
46
52
  get principal(): RequestPrincipal;
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/request/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,gBAAgB,CAAC;IAE5B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,cAAc,CAAA;IAEvB;;;;;;OAMG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvC;;;;;OAKG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;CAC7C;AAED,qBAAa,cAAe,YAAW,UAAU;aAEnB,eAAe,EAAE,MAAM;aACvB,cAAc,EAAE,MAAM,GAAG,SAAS;aAClC,YAAY,EAAE,MAAM;aACpB,OAAO,EAAE,cAAc;gBAHvB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,cAAc;IAInD,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,QAAQ,IAAI,eAAe,CAK9B;IAED,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAGM,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKtC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CAMnD"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/request/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,gBAAgB,CAAC;IAE5B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B;;OAEG;IACH,OAAO,EAAE,cAAc,CAAA;IAEvB;;;;;;OAMG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvC;;;;;OAKG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC;CAC7C;AAED,qBAAa,cAAe,YAAW,UAAU;aAEnB,eAAe,EAAE,MAAM;aACvB,kBAAkB,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC;aACzD,YAAY,EAAE,MAAM;aACpB,OAAO,EAAE,cAAc;gBAHvB,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,EACzD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,cAAc;IAInD,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,QAAQ,IAAI,eAAe,CAE9B;IAED,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAGM,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKtC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;CAOnD"}
@@ -6,12 +6,12 @@ const requestPrincipal_js_1 = require("./requestPrincipal.js");
6
6
  const requestResource_js_1 = require("./requestResource.js");
7
7
  class AwsRequestImpl {
8
8
  principalString;
9
- resourceString;
9
+ resourceIdentifier;
10
10
  actionString;
11
11
  context;
12
- constructor(principalString, resourceString, actionString, context) {
12
+ constructor(principalString, resourceIdentifier, actionString, context) {
13
13
  this.principalString = principalString;
14
- this.resourceString = resourceString;
14
+ this.resourceIdentifier = resourceIdentifier;
15
15
  this.actionString = actionString;
16
16
  this.context = context;
17
17
  }
@@ -19,10 +19,7 @@ class AwsRequestImpl {
19
19
  return new requestAction_js_1.RequestActionImpl(this.actionString);
20
20
  }
21
21
  get resource() {
22
- if (this.resourceString === undefined) {
23
- throw new Error('Resource is undefined');
24
- }
25
- return new requestResource_js_1.ResourceRequestImpl(this.resourceString);
22
+ return new requestResource_js_1.ResourceRequestImpl(this.resourceIdentifier.resource, this.resourceIdentifier.accountId);
26
23
  }
27
24
  get principal() {
28
25
  return new requestPrincipal_js_1.RequestPrincipalImpl(this.principalString);
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/request/request.ts"],"names":[],"mappings":";;;AACA,yDAAsE;AACtE,+DAA+E;AAC/E,6DAA4E;AAyC5E,MAAa,cAAc;IAEG;IACA;IACA;IACA;IAH5B,YAA4B,eAAuB,EACvB,cAAkC,EAClC,YAAoB,EACpB,OAAuB;QAHvB,oBAAe,GAAf,eAAe,CAAQ;QACvB,mBAAc,GAAd,cAAc,CAAoB;QAClC,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAgB;IAEnD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,oCAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,QAAQ;QACV,IAAG,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,IAAI,wCAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,0CAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACxD,CAAC;IAGM,gBAAgB,CAAC,GAAW;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAGM,kBAAkB,CAAC,GAAW;QACnC,IAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;CACF;AApCD,wCAoCC"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/request/request.ts"],"names":[],"mappings":";;;AACA,yDAAsE;AACtE,+DAA+E;AAC/E,6DAA4E;AAyC5E,MAAa,cAAc;IAEG;IACA;IACA;IACA;IAH5B,YAA4B,eAAuB,EACvB,kBAAyD,EACzD,YAAoB,EACpB,OAAuB;QAHvB,oBAAe,GAAf,eAAe,CAAQ;QACvB,uBAAkB,GAAlB,kBAAkB,CAAuC;QACzD,iBAAY,GAAZ,YAAY,CAAQ;QACpB,YAAO,GAAP,OAAO,CAAgB;IAEnD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,oCAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,wCAAmB,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,0CAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACxD,CAAC;IAGM,gBAAgB,CAAC,GAAW;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAGM,kBAAkB,CAAC,GAAW;QACnC,IAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;CAEF;AAlCD,wCAkCC"}
@@ -23,15 +23,21 @@ export interface RequestResource {
23
23
  * The resource of the ARN
24
24
  */
25
25
  resource(): string;
26
+ /**
27
+ * The account ID of the resource, independent of what is in the ARN
28
+ */
29
+ accountId(): string;
26
30
  }
27
31
  export declare class ResourceRequestImpl implements RequestResource {
28
32
  private readonly rawValue;
29
- constructor(rawValue: string);
33
+ private readonly accountIdString;
34
+ constructor(rawValue: string, accountIdString: string);
30
35
  partition(): string;
31
36
  service(): string;
32
37
  region(): string;
33
38
  account(): string;
34
39
  resource(): string;
35
40
  value(): string;
41
+ accountId(): string;
36
42
  }
37
43
  //# sourceMappingURL=requestResource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestResource.d.ts","sourceRoot":"","sources":["../../../src/request/requestResource.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;IAEnB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAA;CACnB;AAGD,qBAAa,mBAAoB,YAAW,eAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C,SAAS,IAAI,MAAM;IAInB,OAAO,IAAI,MAAM;IAIjB,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,MAAM;IAIjB,QAAQ,IAAI,MAAM;IAIlB,KAAK,IAAI,MAAM;CAGhB"}
1
+ {"version":3,"file":"requestResource.d.ts","sourceRoot":"","sources":["../../../src/request/requestResource.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,IAAI,MAAM,CAAA;IAEf;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;IAEnB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,IAAI,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,IAAI,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAA;IAElB;;OAEG;IACH,SAAS,IAAI,MAAM,CAAA;CACpB;AAGD,qBAAa,mBAAoB,YAAW,eAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAU,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAlD,QAAQ,EAAE,MAAM,EAAmB,eAAe,EAAE,MAAM;IAEvF,SAAS,IAAI,MAAM;IAInB,OAAO,IAAI,MAAM;IAIjB,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,MAAM;IAIjB,QAAQ,IAAI,MAAM;IAIlB,KAAK,IAAI,MAAM;IAIf,SAAS,IAAI,MAAM;CAGpB"}
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ResourceRequestImpl = void 0;
4
4
  class ResourceRequestImpl {
5
5
  rawValue;
6
- constructor(rawValue) {
6
+ accountIdString;
7
+ constructor(rawValue, accountIdString) {
7
8
  this.rawValue = rawValue;
9
+ this.accountIdString = accountIdString;
8
10
  }
9
11
  partition() {
10
12
  return this.value().split(":").at(1);
@@ -24,6 +26,9 @@ class ResourceRequestImpl {
24
26
  value() {
25
27
  return this.rawValue;
26
28
  }
29
+ accountId() {
30
+ return this.accountIdString;
31
+ }
27
32
  }
28
33
  exports.ResourceRequestImpl = ResourceRequestImpl;
29
34
  //# sourceMappingURL=requestResource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requestResource.js","sourceRoot":"","sources":["../../../src/request/requestResource.ts"],"names":[],"mappings":";;;AAkCA,MAAa,mBAAmB;IACD;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEjD,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AA1BD,kDA0BC"}
1
+ {"version":3,"file":"requestResource.js","sourceRoot":"","sources":["../../../src/request/requestResource.ts"],"names":[],"mappings":";;;AAuCA,MAAa,mBAAmB;IACD;IAAmC;IAAhE,YAA6B,QAAgB,EAAmB,eAAuB;QAA1D,aAAQ,GAAR,QAAQ,CAAQ;QAAmB,oBAAe,GAAf,eAAe,CAAQ;IAAI,CAAC;IAE5F,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;CACF;AA9BD,kDA8BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultServiceAuthorizer.d.ts","sourceRoot":"","sources":["../../../src/services/DefaultServiceAuthorizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAIxF,qBAAa,wBAAyB,YAAW,iBAAiB;IACzD,SAAS,CAAC,OAAO,EAAE,2BAA2B,GAAG,gBAAgB;IAqBjE,uBAAuB,CAAC,OAAO,EAAE,2BAA2B,GAAG,gBAAgB;IAoB/E,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO;IAU9D,4BAA4B,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO;IAUnE,2BAA2B,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO;IAUlE,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO;CAS5E"}
1
+ {"version":3,"file":"DefaultServiceAuthorizer.d.ts","sourceRoot":"","sources":["../../../src/services/DefaultServiceAuthorizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAExF,qBAAa,wBAAyB,YAAW,iBAAiB;IACzD,SAAS,CAAC,OAAO,EAAE,2BAA2B,GAAG,gBAAgB;IAqBjE,uBAAuB,CAAC,OAAO,EAAE,2BAA2B,GAAG,gBAAgB;IAoB/E,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO;IAU9D,4BAA4B,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO;IAUnE,2BAA2B,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO;IAUlE,6BAA6B,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO;CAS5E"}
@@ -4,8 +4,8 @@ exports.DefaultServiceAuthorizer = void 0;
4
4
  class DefaultServiceAuthorizer {
5
5
  authorize(request) {
6
6
  const identityStatementResult = this.identityStatementResult(request);
7
- const principalAccount = request.request.principalAccountId;
8
- const resourceAccount = request.request.resourceAccountId;
7
+ const principalAccount = request.request.principal.accountId();
8
+ const resourceAccount = request.request.resource?.accountId();
9
9
  /**
10
10
  * Add checks for:
11
11
  * * resource policies
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultServiceAuthorizer.js","sourceRoot":"","sources":["../../../src/services/DefaultServiceAuthorizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DefaultServiceAuthorizer.js","sourceRoot":"","sources":["../../../src/services/DefaultServiceAuthorizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function allowedContextKeysForRequest(service: string, action: string, resource: string): Promise<string[]>;
2
+ export declare function convertPatternToRegex(pattern: string): string;
3
+ //# sourceMappingURL=contextKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextKeys.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/contextKeys.ts"],"names":[],"mappings":"AAEA,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BvH;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsB7D"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allowedContextKeysForRequest = allowedContextKeysForRequest;
4
+ exports.convertPatternToRegex = convertPatternToRegex;
5
+ const iam_data_1 = require("@cloud-copilot/iam-data");
6
+ async function allowedContextKeysForRequest(service, action, resource) {
7
+ const actionDetails = await (0, iam_data_1.iamActionDetails)(service, action);
8
+ const actionConditionKeys = actionDetails.conditionKeys;
9
+ if (actionDetails.resourceTypes.length === 0) {
10
+ return actionConditionKeys;
11
+ }
12
+ const matchingResourceTypes = [];
13
+ for (const rt of actionDetails.resourceTypes) {
14
+ const resourceType = await (0, iam_data_1.iamResourceTypeDetails)(service, rt.name);
15
+ const pattern = convertPatternToRegex(resourceType.arn);
16
+ const match = resource.match(new RegExp(pattern));
17
+ if (match) {
18
+ matchingResourceTypes.push(resourceType);
19
+ }
20
+ }
21
+ if (matchingResourceTypes.length != 1) {
22
+ const matchNames = matchingResourceTypes.map(rt => rt.key).join(", ");
23
+ throw new Error(`found ${matchingResourceTypes.length} matching resource types for ${resource}: ${matchNames}`);
24
+ }
25
+ console.log(matchingResourceTypes[0].key);
26
+ return [
27
+ ...matchingResourceTypes[0].conditionKeys,
28
+ ...actionConditionKeys
29
+ ];
30
+ }
31
+ function convertPatternToRegex(pattern) {
32
+ const regex = pattern.replace(/\$\{.*?\}/g, (match) => {
33
+ const name = match.substring(2, match.length - 1);
34
+ const camelName = name.at(0)?.toLowerCase() + name.substring(1);
35
+ return `(?<${camelName}>(.*?))`;
36
+ });
37
+ return `^${regex}$`;
38
+ // const parts = pattern.split('/')
39
+ // const lastPart = parts[parts.length - 1]
40
+ // const modifiedParts = parts.map((part) => {
41
+ // if (part.startsWith('${') && part.endsWith('}')) {
42
+ // const name = part.substring(2, part.length - 1)
43
+ // const camelName = name.at(0)?.toLowerCase() + name.substring(1)
44
+ // if (part === lastPart) {
45
+ // return `(?<${camelName}>(.*))`
46
+ // }
47
+ // return `(?<${camelName}>([^\/]+))`
48
+ // }
49
+ // return part
50
+ // })
51
+ // return modifiedParts.join('\/')
52
+ }
53
+ //# sourceMappingURL=contextKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextKeys.js","sourceRoot":"","sources":["../../../src/simulation_engine/contextKeys.ts"],"names":[],"mappings":";;AAEA,oEA4BC;AAED,sDAsBC;AAtDD,sDAAiG;AAE1F,KAAK,UAAU,4BAA4B,CAAC,OAAe,EAAE,MAAc,EAAE,QAAgB;IAClG,MAAM,aAAa,GAAG,MAAM,IAAA,2BAAgB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,mBAAmB,GAAG,aAAa,CAAC,aAAa,CAAC;IACxD,IAAG,aAAa,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,mBAAmB,CAAA;IAC5B,CAAC;IAED,MAAM,qBAAqB,GAAmB,EAAE,CAAC;IACjD,KAAI,MAAM,EAAE,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,MAAM,IAAA,iCAAsB,EAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,IAAG,KAAK,EAAE,CAAC;YACT,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,IAAG,qBAAqB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,SAAS,qBAAqB,CAAC,MAAM,gCAAgC,QAAQ,KAAK,UAAU,EAAE,CAAC,CAAC;IAClH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO;QACL,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,aAAa;QACzC,GAAG,mBAAmB;KACvB,CAAA;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAe;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC/D,OAAO,MAAM,SAAS,SAAS,CAAA;IACjC,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,KAAK,GAAG,CAAA;IAEnB,mCAAmC;IACnC,2CAA2C;IAC3C,8CAA8C;IAC9C,uDAAuD;IACvD,sDAAsD;IACtD,sEAAsE;IACtE,+BAA+B;IAC/B,uCAAuC;IACvC,QAAQ;IACR,yCAAyC;IACzC,MAAM;IACN,gBAAgB;IAChB,KAAK;IACL,kCAAkC;AACpC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { ValidationError } from "@cloud-copilot/iam-policy";
2
+ interface SimulationOptions {
3
+ assumeSecureTransport: boolean;
4
+ }
5
+ interface Simulation {
6
+ request: {
7
+ principal: string;
8
+ action: string;
9
+ resource: {
10
+ resource: string;
11
+ accountId: string;
12
+ };
13
+ contextVariables: Record<string, any>;
14
+ };
15
+ identityPolicies: Record<string, any>[];
16
+ }
17
+ export interface SimulationErrors {
18
+ identityPolicyErrors?: Record<string, ValidationError[]>;
19
+ message: string;
20
+ }
21
+ export interface SimulationResult {
22
+ }
23
+ export declare function runSimulation(simulation: Simulation, simulationOptions: SimulationOptions): Promise<SimulationResult>;
24
+ export {};
25
+ //# sourceMappingURL=simulationEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulationEngine.d.ts","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAElF,UAAU,iBAAiB;IACzB,qBAAqB,EAAE,OAAO,CAAA;CAC/B;AAED,UAAU,UAAU;IAClB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAA;SAClB,CAAA;QACD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACvC,CAAA;IAED,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;CAEhC;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoC3H"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runSimulation = runSimulation;
4
+ const iam_data_1 = require("@cloud-copilot/iam-data");
5
+ const iam_policy_1 = require("@cloud-copilot/iam-policy");
6
+ async function runSimulation(simulation, simulationOptions) {
7
+ const identityPolicyErrors = Object.keys(simulation.identityPolicies).reduce((acc, key) => {
8
+ acc[key] == (0, iam_policy_1.validatePolicySyntax)(simulation.identityPolicies[key]);
9
+ return acc;
10
+ }, {});
11
+ const errorCount = Object.values(identityPolicyErrors).flat().length;
12
+ if (errorCount > 0) {
13
+ return {
14
+ identityPolicyErrors
15
+ };
16
+ }
17
+ if (simulation.request.action.split(":").length != 2) {
18
+ return {
19
+ message: 'invalid.action'
20
+ };
21
+ }
22
+ const [service, action] = simulation.request.action.split(":");
23
+ const validService = await (0, iam_data_1.iamServiceExists)(service);
24
+ if (!validService) {
25
+ return {
26
+ message: 'invalid.service'
27
+ };
28
+ }
29
+ const validAction = await (0, iam_data_1.iamActionExists)(service, action);
30
+ if (!validAction) {
31
+ return {
32
+ message: 'invalid.action'
33
+ };
34
+ }
35
+ // Implementation goes here
36
+ return {};
37
+ }
38
+ //# sourceMappingURL=simulationEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulationEngine.js","sourceRoot":"","sources":["../../../src/simulation_engine/simulationEngine.ts"],"names":[],"mappings":";;AA8BA,sCAoCC;AAlED,sDAA4E;AAC5E,0DAAkF;AA6B3E,KAAK,UAAU,aAAa,CAAC,UAAsB,EAAE,iBAAoC;IAC9F,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAW,EAAE,EAAE;QAChG,GAAG,CAAC,GAAG,CAAC,IAAI,IAAA,iCAAoB,EAAC,UAAU,CAAC,gBAAgB,CAAC,GAAU,CAAC,CAAC,CAAC;QAC1E,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAuC,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;IACrE,IAAG,UAAU,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO;YACL,oBAAoB;SACrB,CAAA;IACH,CAAC;IAED,IAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO;YACL,OAAO,EAAE,gBAAgB;SAC1B,CAAA;IACH,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAgB,EAAC,OAAO,CAAC,CAAC;IACrD,IAAG,CAAC,YAAY,EAAE,CAAC;QACjB,OAAO;YACL,OAAO,EAAE,iBAAiB;SAC3B,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAe,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAG,CAAC,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EAAE,gBAAgB;SAC1B,CAAA;IACH,CAAC;IAED,2BAA2B;IAC3B,OAAO,EAAsB,CAAC;AAEhC,CAAC"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StatementAnalysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatementAnalysis.js","sourceRoot":"","sources":["../../src/StatementAnalysis.ts"],"names":[],"mappings":""}
@@ -1,5 +1,13 @@
1
- import { Action } from "@cloud-copilot/iam-policy";
1
+ import { Action, Statement } from "@cloud-copilot/iam-policy";
2
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;
3
11
  /**
4
12
  * Check if a request matches a set of actions.
5
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/action/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAiBnD;;;;;;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"}
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"}
@@ -1,3 +1,19 @@
1
+ /**
2
+ * Check if a request matches the Action or NotAction elements of a statement.
3
+ *
4
+ * @param request the request to check
5
+ * @param statement the statement to check against
6
+ * @returns true if the request matches the Action or NotAction in the statement, false otherwise
7
+ */
8
+ export function requestMatchesStatementActions(request, statement) {
9
+ if (statement.isActionStatement()) {
10
+ return requestMatchesActions(request, statement.actions());
11
+ }
12
+ else if (statement.isNotActionStatement()) {
13
+ return requestMatchesNotActions(request, statement.notActions());
14
+ }
15
+ throw new Error('Statement has neither Actions nor NotActions');
16
+ }
1
17
  /**
2
18
  * Convert an action action (the part after the colon) to a regular expression.
3
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/action/action.ts"],"names":[],"mappings":"AAGA;;;;;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,MAAM,UAAU,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,MAAM,UAAU,wBAAwB,CAAC,OAAmB,EAAE,OAAiB;IAC7E,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/action/action.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,UAAU,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,MAAM,UAAU,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,MAAM,UAAU,wBAAwB,CAAC,OAAmB,EAAE,OAAiB;IAC7E,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC"}
@@ -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,8 @@
1
+ import { ArnLike } from "./ArnLike.js";
2
+ export const ArnEquals = {
3
+ name: 'ArnEquals',
4
+ matches: ArnLike.matches,
5
+ allowsVariables: ArnLike.allowsVariables,
6
+ allowsWildcards: ArnLike.allowsWildcards
7
+ };
8
+ //# sourceMappingURL=ArnEquals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnEquals.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,SAAS,GAA0B;IAC9C,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO,CAAC,OAAO;IACxB,eAAe,EAAE,OAAO,CAAC,eAAe;IACxC,eAAe,EAAE,OAAO,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,47 @@
1
+ import { convertIamStringToRegex, isNotDefined, splitArnParts } from "../../util.js";
2
+ export const ArnLike = {
3
+ name: 'ArnLike',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return policyValues.some(policyArn => arnMatches(policyArn, keyValue, request));
6
+ },
7
+ allowsVariables: true,
8
+ allowsWildcards: true
9
+ };
10
+ /**
11
+ * Checks to see if a single ARN matches in ArnLike format
12
+ *
13
+ * @param policyArn the ARN to check against
14
+ * @param requestArn the ARN to check
15
+ * @param request the request to check
16
+ * @returns if the ARN matches
17
+ */
18
+ function arnMatches(policyArn, requestArn, request) {
19
+ const policyParts = splitArnParts(policyArn);
20
+ const requestParts = splitArnParts(requestArn);
21
+ // If any of the parts are missing, return false
22
+ if (isNotDefined(policyParts.partition) ||
23
+ isNotDefined(policyParts.service) ||
24
+ isNotDefined(policyParts.region) ||
25
+ isNotDefined(policyParts.accountId) ||
26
+ isNotDefined(policyParts.resource)) {
27
+ return false;
28
+ }
29
+ // If any of the parts are missing, return false
30
+ if (isNotDefined(requestParts.partition) ||
31
+ isNotDefined(requestParts.service) ||
32
+ isNotDefined(requestParts.region) ||
33
+ isNotDefined(requestParts.accountId) ||
34
+ isNotDefined(requestParts.resource)) {
35
+ return false;
36
+ }
37
+ const replaceAndMatch = (policyPart, requestPart) => {
38
+ const pattern = convertIamStringToRegex(policyPart, request, { replaceWildcards: true });
39
+ return pattern.test(requestPart);
40
+ };
41
+ return replaceAndMatch(policyParts.partition, requestParts.partition) &&
42
+ replaceAndMatch(policyParts.service, requestParts.service) &&
43
+ replaceAndMatch(policyParts.region, requestParts.region) &&
44
+ replaceAndMatch(policyParts.accountId, requestParts.accountId) &&
45
+ replaceAndMatch(policyParts.resource, requestParts.resource);
46
+ }
47
+ //# sourceMappingURL=ArnLike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnLike.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnLike.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGrF,MAAM,CAAC,MAAM,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,aAAa,CAAC,SAAS,CAAC,CAAA;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAC9C,gDAAgD;IAChD,IAAG,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC;QACnC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;QACjC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC;QAChC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC;QACnC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,gDAAgD;IAChD,IAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC;QACpC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC;QAClC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC;QACjC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC;QACpC,YAAY,CAAC,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,uBAAuB,CAAC,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,8 @@
1
+ import { ArnNotLike } from "./ArnNotLike.js";
2
+ export const ArnNotEquals = {
3
+ name: 'ArnNotEquals',
4
+ matches: ArnNotLike.matches,
5
+ allowsVariables: ArnNotLike.allowsVariables,
6
+ allowsWildcards: ArnNotLike.allowsWildcards
7
+ };
8
+ //# sourceMappingURL=ArnNotEquals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArnNotEquals.js","sourceRoot":"","sources":["../../../../src/condition/arn/ArnNotEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO;IAC3B,eAAe,EAAE,UAAU,CAAC,eAAe;IAC3C,eAAe,EAAE,UAAU,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,10 @@
1
+ import { ArnLike } from "./ArnLike.js";
2
+ export const ArnNotLike = {
3
+ name: 'ArnNotLike',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return !ArnLike.matches(request, keyValue, policyValues);
6
+ },
7
+ allowsVariables: true,
8
+ allowsWildcards: true
9
+ };
10
+ //# sourceMappingURL=ArnNotLike.js.map