@cloud-copilot/iam-simulate 0.1.12 → 0.1.14

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 (329) hide show
  1. package/dist/cjs/StatementAnalysis.d.ts +14 -0
  2. package/dist/cjs/StatementAnalysis.d.ts.map +1 -1
  3. package/dist/cjs/StatementAnalysis.js +51 -0
  4. package/dist/cjs/StatementAnalysis.js.map +1 -1
  5. package/dist/cjs/action/action.d.ts +13 -3
  6. package/dist/cjs/action/action.d.ts.map +1 -1
  7. package/dist/cjs/action/action.js +43 -21
  8. package/dist/cjs/action/action.js.map +1 -1
  9. package/dist/cjs/condition/BaseConditionOperator.d.ts +6 -1
  10. package/dist/cjs/condition/BaseConditionOperator.d.ts.map +1 -1
  11. package/dist/cjs/condition/arn/ArnEquals.d.ts.map +1 -1
  12. package/dist/cjs/condition/arn/ArnEquals.js +2 -1
  13. package/dist/cjs/condition/arn/ArnEquals.js.map +1 -1
  14. package/dist/cjs/condition/arn/ArnLike.d.ts.map +1 -1
  15. package/dist/cjs/condition/arn/ArnLike.js +8 -40
  16. package/dist/cjs/condition/arn/ArnLike.js.map +1 -1
  17. package/dist/cjs/condition/arn/ArnNotEquals.d.ts.map +1 -1
  18. package/dist/cjs/condition/arn/ArnNotEquals.js +2 -1
  19. package/dist/cjs/condition/arn/ArnNotEquals.js.map +1 -1
  20. package/dist/cjs/condition/arn/ArnNotLike.d.ts.map +1 -1
  21. package/dist/cjs/condition/arn/ArnNotLike.js +8 -3
  22. package/dist/cjs/condition/arn/ArnNotLike.js.map +1 -1
  23. package/dist/cjs/condition/arn/arn.d.ts +12 -0
  24. package/dist/cjs/condition/arn/arn.d.ts.map +1 -0
  25. package/dist/cjs/condition/arn/arn.js +68 -0
  26. package/dist/cjs/condition/arn/arn.js.map +1 -0
  27. package/dist/cjs/condition/baseConditionperatorTests.d.ts +7 -1
  28. package/dist/cjs/condition/baseConditionperatorTests.d.ts.map +1 -1
  29. package/dist/cjs/condition/baseConditionperatorTests.js +17 -1
  30. package/dist/cjs/condition/baseConditionperatorTests.js.map +1 -1
  31. package/dist/cjs/condition/binary/BinaryEquals.d.ts.map +1 -1
  32. package/dist/cjs/condition/binary/BinaryEquals.js +14 -2
  33. package/dist/cjs/condition/binary/BinaryEquals.js.map +1 -1
  34. package/dist/cjs/condition/boolean/Bool.d.ts.map +1 -1
  35. package/dist/cjs/condition/boolean/Bool.js +36 -7
  36. package/dist/cjs/condition/boolean/Bool.js.map +1 -1
  37. package/dist/cjs/condition/condition.d.ts +46 -3
  38. package/dist/cjs/condition/condition.d.ts.map +1 -1
  39. package/dist/cjs/condition/condition.js +242 -48
  40. package/dist/cjs/condition/condition.js.map +1 -1
  41. package/dist/cjs/condition/conditionUtil.d.ts +10 -0
  42. package/dist/cjs/condition/conditionUtil.d.ts.map +1 -0
  43. package/dist/cjs/condition/conditionUtil.js +16 -0
  44. package/dist/cjs/condition/conditionUtil.js.map +1 -0
  45. package/dist/cjs/condition/date/DateEquals.d.ts.map +1 -1
  46. package/dist/cjs/condition/date/DateEquals.js +7 -2
  47. package/dist/cjs/condition/date/DateEquals.js.map +1 -1
  48. package/dist/cjs/condition/date/DateGreaterThan.d.ts.map +1 -1
  49. package/dist/cjs/condition/date/DateGreaterThan.js +7 -2
  50. package/dist/cjs/condition/date/DateGreaterThan.js.map +1 -1
  51. package/dist/cjs/condition/date/DateGreaterThanEquals.d.ts.map +1 -1
  52. package/dist/cjs/condition/date/DateGreaterThanEquals.js +7 -2
  53. package/dist/cjs/condition/date/DateGreaterThanEquals.js.map +1 -1
  54. package/dist/cjs/condition/date/DateLessThan.d.ts.map +1 -1
  55. package/dist/cjs/condition/date/DateLessThan.js +7 -2
  56. package/dist/cjs/condition/date/DateLessThan.js.map +1 -1
  57. package/dist/cjs/condition/date/DateLessThanEquals.d.ts.map +1 -1
  58. package/dist/cjs/condition/date/DateLessThanEquals.js +7 -2
  59. package/dist/cjs/condition/date/DateLessThanEquals.js.map +1 -1
  60. package/dist/cjs/condition/date/DateNotEquals.d.ts.map +1 -1
  61. package/dist/cjs/condition/date/DateNotEquals.js +11 -18
  62. package/dist/cjs/condition/date/DateNotEquals.js.map +1 -1
  63. package/dist/cjs/condition/date/date.d.ts +2 -1
  64. package/dist/cjs/condition/date/date.d.ts.map +1 -1
  65. package/dist/cjs/condition/date/date.js +20 -5
  66. package/dist/cjs/condition/date/date.js.map +1 -1
  67. package/dist/cjs/condition/ipaddress/IpAddress.d.ts.map +1 -1
  68. package/dist/cjs/condition/ipaddress/IpAddress.js +9 -16
  69. package/dist/cjs/condition/ipaddress/IpAddress.js.map +1 -1
  70. package/dist/cjs/condition/ipaddress/NotIpAddress.d.ts.map +1 -1
  71. package/dist/cjs/condition/ipaddress/NotIpAddress.js +9 -20
  72. package/dist/cjs/condition/ipaddress/NotIpAddress.js.map +1 -1
  73. package/dist/cjs/condition/ipaddress/ip.d.ts +10 -0
  74. package/dist/cjs/condition/ipaddress/ip.d.ts.map +1 -0
  75. package/dist/cjs/condition/ipaddress/ip.js +57 -0
  76. package/dist/cjs/condition/ipaddress/ip.js.map +1 -0
  77. package/dist/cjs/condition/numeric/NumericEquals.d.ts.map +1 -1
  78. package/dist/cjs/condition/numeric/NumericEquals.js +7 -2
  79. package/dist/cjs/condition/numeric/NumericEquals.js.map +1 -1
  80. package/dist/cjs/condition/numeric/NumericGreaterThan.d.ts.map +1 -1
  81. package/dist/cjs/condition/numeric/NumericGreaterThan.js +7 -2
  82. package/dist/cjs/condition/numeric/NumericGreaterThan.js.map +1 -1
  83. package/dist/cjs/condition/numeric/NumericGreaterThanEquals.d.ts.map +1 -1
  84. package/dist/cjs/condition/numeric/NumericGreaterThanEquals.js +7 -2
  85. package/dist/cjs/condition/numeric/NumericGreaterThanEquals.js.map +1 -1
  86. package/dist/cjs/condition/numeric/NumericLessThan.d.ts.map +1 -1
  87. package/dist/cjs/condition/numeric/NumericLessThan.js +7 -2
  88. package/dist/cjs/condition/numeric/NumericLessThan.js.map +1 -1
  89. package/dist/cjs/condition/numeric/NumericLessThanEquals.d.ts.map +1 -1
  90. package/dist/cjs/condition/numeric/NumericLessThanEquals.js +7 -2
  91. package/dist/cjs/condition/numeric/NumericLessThanEquals.js.map +1 -1
  92. package/dist/cjs/condition/numeric/NumericNotEquals.d.ts.map +1 -1
  93. package/dist/cjs/condition/numeric/NumericNotEquals.js +11 -18
  94. package/dist/cjs/condition/numeric/NumericNotEquals.js.map +1 -1
  95. package/dist/cjs/condition/numeric/numeric.d.ts +2 -1
  96. package/dist/cjs/condition/numeric/numeric.d.ts.map +1 -1
  97. package/dist/cjs/condition/numeric/numeric.js +18 -3
  98. package/dist/cjs/condition/numeric/numeric.js.map +1 -1
  99. package/dist/cjs/condition/string/StringEquals.d.ts.map +1 -1
  100. package/dist/cjs/condition/string/StringEquals.js +24 -3
  101. package/dist/cjs/condition/string/StringEquals.js.map +1 -1
  102. package/dist/cjs/condition/string/StringEqualsIgnoreCase.d.ts.map +1 -1
  103. package/dist/cjs/condition/string/StringEqualsIgnoreCase.js +23 -5
  104. package/dist/cjs/condition/string/StringEqualsIgnoreCase.js.map +1 -1
  105. package/dist/cjs/condition/string/StringLike.d.ts.map +1 -1
  106. package/dist/cjs/condition/string/StringLike.js +24 -3
  107. package/dist/cjs/condition/string/StringLike.js.map +1 -1
  108. package/dist/cjs/condition/string/StringNotEquals.d.ts.map +1 -1
  109. package/dist/cjs/condition/string/StringNotEquals.js +24 -3
  110. package/dist/cjs/condition/string/StringNotEquals.js.map +1 -1
  111. package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.d.ts.map +1 -1
  112. package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.js +25 -3
  113. package/dist/cjs/condition/string/StringNotEqualsIgnoreCase.js.map +1 -1
  114. package/dist/cjs/condition/string/StringNotLike.d.ts.map +1 -1
  115. package/dist/cjs/condition/string/StringNotLike.js +25 -3
  116. package/dist/cjs/condition/string/StringNotLike.js.map +1 -1
  117. package/dist/cjs/core_engine/coreSimulatorEngine.d.ts +10 -7
  118. package/dist/cjs/core_engine/coreSimulatorEngine.d.ts.map +1 -1
  119. package/dist/cjs/core_engine/coreSimulatorEngine.js +148 -28
  120. package/dist/cjs/core_engine/coreSimulatorEngine.js.map +1 -1
  121. package/dist/cjs/evaluate.d.ts +47 -0
  122. package/dist/cjs/evaluate.d.ts.map +1 -1
  123. package/dist/cjs/explain/displayExplainCli.d.ts +3 -0
  124. package/dist/cjs/explain/displayExplainCli.d.ts.map +1 -0
  125. package/dist/cjs/explain/displayExplainCli.js +249 -0
  126. package/dist/cjs/explain/displayExplainCli.js.map +1 -0
  127. package/dist/cjs/explain/statementExplain.d.ts +51 -0
  128. package/dist/cjs/explain/statementExplain.d.ts.map +1 -0
  129. package/dist/cjs/explain/statementExplain.js +7 -0
  130. package/dist/cjs/explain/statementExplain.js.map +1 -0
  131. package/dist/cjs/index.d.ts +1 -0
  132. package/dist/cjs/index.d.ts.map +1 -1
  133. package/dist/cjs/index.js.map +1 -1
  134. package/dist/cjs/principal/principal.d.ts +28 -6
  135. package/dist/cjs/principal/principal.d.ts.map +1 -1
  136. package/dist/cjs/principal/principal.js +146 -40
  137. package/dist/cjs/principal/principal.js.map +1 -1
  138. package/dist/cjs/resource/resource.d.ts +13 -3
  139. package/dist/cjs/resource/resource.d.ts.map +1 -1
  140. package/dist/cjs/resource/resource.js +68 -15
  141. package/dist/cjs/resource/resource.js.map +1 -1
  142. package/dist/cjs/services/DefaultServiceAuthorizer.d.ts +2 -34
  143. package/dist/cjs/services/DefaultServiceAuthorizer.d.ts.map +1 -1
  144. package/dist/cjs/services/DefaultServiceAuthorizer.js +95 -131
  145. package/dist/cjs/services/DefaultServiceAuthorizer.js.map +1 -1
  146. package/dist/cjs/services/ServiceAuthorizer.d.ts +6 -7
  147. package/dist/cjs/services/ServiceAuthorizer.d.ts.map +1 -1
  148. package/dist/cjs/simulation_engine/simulation.d.ts +4 -0
  149. package/dist/cjs/simulation_engine/simulation.d.ts.map +1 -1
  150. package/dist/cjs/simulation_engine/simulationEngine.d.ts +2 -4
  151. package/dist/cjs/simulation_engine/simulationEngine.d.ts.map +1 -1
  152. package/dist/cjs/simulation_engine/simulationEngine.js +16 -4
  153. package/dist/cjs/simulation_engine/simulationEngine.js.map +1 -1
  154. package/dist/cjs/simulation_engine/unsafeSimulationEngine.d.ts.map +1 -1
  155. package/dist/cjs/simulation_engine/unsafeSimulationEngine.js +5 -2
  156. package/dist/cjs/simulation_engine/unsafeSimulationEngine.js.map +1 -1
  157. package/dist/cjs/util.d.ts +31 -3
  158. package/dist/cjs/util.d.ts.map +1 -1
  159. package/dist/cjs/util.js +74 -32
  160. package/dist/cjs/util.js.map +1 -1
  161. package/dist/esm/StatementAnalysis.d.ts +14 -0
  162. package/dist/esm/StatementAnalysis.d.ts.map +1 -1
  163. package/dist/esm/StatementAnalysis.js +48 -1
  164. package/dist/esm/StatementAnalysis.js.map +1 -1
  165. package/dist/esm/action/action.d.ts +13 -3
  166. package/dist/esm/action/action.d.ts.map +1 -1
  167. package/dist/esm/action/action.js +43 -21
  168. package/dist/esm/action/action.js.map +1 -1
  169. package/dist/esm/condition/BaseConditionOperator.d.ts +6 -1
  170. package/dist/esm/condition/BaseConditionOperator.d.ts.map +1 -1
  171. package/dist/esm/condition/arn/ArnEquals.d.ts.map +1 -1
  172. package/dist/esm/condition/arn/ArnEquals.js +2 -1
  173. package/dist/esm/condition/arn/ArnEquals.js.map +1 -1
  174. package/dist/esm/condition/arn/ArnLike.d.ts.map +1 -1
  175. package/dist/esm/condition/arn/ArnLike.js +8 -40
  176. package/dist/esm/condition/arn/ArnLike.js.map +1 -1
  177. package/dist/esm/condition/arn/ArnNotEquals.d.ts.map +1 -1
  178. package/dist/esm/condition/arn/ArnNotEquals.js +2 -1
  179. package/dist/esm/condition/arn/ArnNotEquals.js.map +1 -1
  180. package/dist/esm/condition/arn/ArnNotLike.d.ts.map +1 -1
  181. package/dist/esm/condition/arn/ArnNotLike.js +8 -3
  182. package/dist/esm/condition/arn/ArnNotLike.js.map +1 -1
  183. package/dist/esm/condition/arn/arn.d.ts +12 -0
  184. package/dist/esm/condition/arn/arn.d.ts.map +1 -0
  185. package/dist/esm/condition/arn/arn.js +65 -0
  186. package/dist/esm/condition/arn/arn.js.map +1 -0
  187. package/dist/esm/condition/baseConditionperatorTests.d.ts +7 -1
  188. package/dist/esm/condition/baseConditionperatorTests.d.ts.map +1 -1
  189. package/dist/esm/condition/baseConditionperatorTests.js +17 -1
  190. package/dist/esm/condition/baseConditionperatorTests.js.map +1 -1
  191. package/dist/esm/condition/binary/BinaryEquals.d.ts.map +1 -1
  192. package/dist/esm/condition/binary/BinaryEquals.js +14 -2
  193. package/dist/esm/condition/binary/BinaryEquals.js.map +1 -1
  194. package/dist/esm/condition/boolean/Bool.d.ts.map +1 -1
  195. package/dist/esm/condition/boolean/Bool.js +37 -8
  196. package/dist/esm/condition/boolean/Bool.js.map +1 -1
  197. package/dist/esm/condition/condition.d.ts +46 -3
  198. package/dist/esm/condition/condition.d.ts.map +1 -1
  199. package/dist/esm/condition/condition.js +239 -48
  200. package/dist/esm/condition/condition.js.map +1 -1
  201. package/dist/esm/condition/conditionUtil.d.ts +10 -0
  202. package/dist/esm/condition/conditionUtil.d.ts.map +1 -0
  203. package/dist/esm/condition/conditionUtil.js +13 -0
  204. package/dist/esm/condition/conditionUtil.js.map +1 -0
  205. package/dist/esm/condition/date/DateEquals.d.ts.map +1 -1
  206. package/dist/esm/condition/date/DateEquals.js +7 -2
  207. package/dist/esm/condition/date/DateEquals.js.map +1 -1
  208. package/dist/esm/condition/date/DateGreaterThan.d.ts.map +1 -1
  209. package/dist/esm/condition/date/DateGreaterThan.js +7 -2
  210. package/dist/esm/condition/date/DateGreaterThan.js.map +1 -1
  211. package/dist/esm/condition/date/DateGreaterThanEquals.d.ts.map +1 -1
  212. package/dist/esm/condition/date/DateGreaterThanEquals.js +7 -2
  213. package/dist/esm/condition/date/DateGreaterThanEquals.js.map +1 -1
  214. package/dist/esm/condition/date/DateLessThan.d.ts.map +1 -1
  215. package/dist/esm/condition/date/DateLessThan.js +7 -2
  216. package/dist/esm/condition/date/DateLessThan.js.map +1 -1
  217. package/dist/esm/condition/date/DateLessThanEquals.d.ts.map +1 -1
  218. package/dist/esm/condition/date/DateLessThanEquals.js +7 -2
  219. package/dist/esm/condition/date/DateLessThanEquals.js.map +1 -1
  220. package/dist/esm/condition/date/DateNotEquals.d.ts.map +1 -1
  221. package/dist/esm/condition/date/DateNotEquals.js +12 -19
  222. package/dist/esm/condition/date/DateNotEquals.js.map +1 -1
  223. package/dist/esm/condition/date/date.d.ts +2 -1
  224. package/dist/esm/condition/date/date.d.ts.map +1 -1
  225. package/dist/esm/condition/date/date.js +20 -5
  226. package/dist/esm/condition/date/date.js.map +1 -1
  227. package/dist/esm/condition/ipaddress/IpAddress.d.ts.map +1 -1
  228. package/dist/esm/condition/ipaddress/IpAddress.js +9 -16
  229. package/dist/esm/condition/ipaddress/IpAddress.js.map +1 -1
  230. package/dist/esm/condition/ipaddress/NotIpAddress.d.ts.map +1 -1
  231. package/dist/esm/condition/ipaddress/NotIpAddress.js +9 -20
  232. package/dist/esm/condition/ipaddress/NotIpAddress.js.map +1 -1
  233. package/dist/esm/condition/ipaddress/ip.d.ts +10 -0
  234. package/dist/esm/condition/ipaddress/ip.d.ts.map +1 -0
  235. package/dist/esm/condition/ipaddress/ip.js +54 -0
  236. package/dist/esm/condition/ipaddress/ip.js.map +1 -0
  237. package/dist/esm/condition/numeric/NumericEquals.d.ts.map +1 -1
  238. package/dist/esm/condition/numeric/NumericEquals.js +7 -2
  239. package/dist/esm/condition/numeric/NumericEquals.js.map +1 -1
  240. package/dist/esm/condition/numeric/NumericGreaterThan.d.ts.map +1 -1
  241. package/dist/esm/condition/numeric/NumericGreaterThan.js +7 -2
  242. package/dist/esm/condition/numeric/NumericGreaterThan.js.map +1 -1
  243. package/dist/esm/condition/numeric/NumericGreaterThanEquals.d.ts.map +1 -1
  244. package/dist/esm/condition/numeric/NumericGreaterThanEquals.js +7 -2
  245. package/dist/esm/condition/numeric/NumericGreaterThanEquals.js.map +1 -1
  246. package/dist/esm/condition/numeric/NumericLessThan.d.ts.map +1 -1
  247. package/dist/esm/condition/numeric/NumericLessThan.js +7 -2
  248. package/dist/esm/condition/numeric/NumericLessThan.js.map +1 -1
  249. package/dist/esm/condition/numeric/NumericLessThanEquals.d.ts.map +1 -1
  250. package/dist/esm/condition/numeric/NumericLessThanEquals.js +7 -2
  251. package/dist/esm/condition/numeric/NumericLessThanEquals.js.map +1 -1
  252. package/dist/esm/condition/numeric/NumericNotEquals.d.ts.map +1 -1
  253. package/dist/esm/condition/numeric/NumericNotEquals.js +12 -19
  254. package/dist/esm/condition/numeric/NumericNotEquals.js.map +1 -1
  255. package/dist/esm/condition/numeric/numeric.d.ts +2 -1
  256. package/dist/esm/condition/numeric/numeric.d.ts.map +1 -1
  257. package/dist/esm/condition/numeric/numeric.js +18 -3
  258. package/dist/esm/condition/numeric/numeric.js.map +1 -1
  259. package/dist/esm/condition/string/StringEquals.d.ts.map +1 -1
  260. package/dist/esm/condition/string/StringEquals.js +25 -4
  261. package/dist/esm/condition/string/StringEquals.js.map +1 -1
  262. package/dist/esm/condition/string/StringEqualsIgnoreCase.d.ts.map +1 -1
  263. package/dist/esm/condition/string/StringEqualsIgnoreCase.js +24 -6
  264. package/dist/esm/condition/string/StringEqualsIgnoreCase.js.map +1 -1
  265. package/dist/esm/condition/string/StringLike.d.ts.map +1 -1
  266. package/dist/esm/condition/string/StringLike.js +25 -4
  267. package/dist/esm/condition/string/StringLike.js.map +1 -1
  268. package/dist/esm/condition/string/StringNotEquals.d.ts.map +1 -1
  269. package/dist/esm/condition/string/StringNotEquals.js +25 -4
  270. package/dist/esm/condition/string/StringNotEquals.js.map +1 -1
  271. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.d.ts.map +1 -1
  272. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.js +25 -3
  273. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.js.map +1 -1
  274. package/dist/esm/condition/string/StringNotLike.d.ts.map +1 -1
  275. package/dist/esm/condition/string/StringNotLike.js +25 -3
  276. package/dist/esm/condition/string/StringNotLike.js.map +1 -1
  277. package/dist/esm/core_engine/coreSimulatorEngine.d.ts +10 -7
  278. package/dist/esm/core_engine/coreSimulatorEngine.d.ts.map +1 -1
  279. package/dist/esm/core_engine/coreSimulatorEngine.js +147 -28
  280. package/dist/esm/core_engine/coreSimulatorEngine.js.map +1 -1
  281. package/dist/esm/evaluate.d.ts +47 -0
  282. package/dist/esm/evaluate.d.ts.map +1 -1
  283. package/dist/esm/explain/displayExplainCli.d.ts +3 -0
  284. package/dist/esm/explain/displayExplainCli.d.ts.map +1 -0
  285. package/dist/esm/explain/displayExplainCli.js +246 -0
  286. package/dist/esm/explain/displayExplainCli.js.map +1 -0
  287. package/dist/esm/explain/statementExplain.d.ts +51 -0
  288. package/dist/esm/explain/statementExplain.d.ts.map +1 -0
  289. package/dist/esm/explain/statementExplain.js +6 -0
  290. package/dist/esm/explain/statementExplain.js.map +1 -0
  291. package/dist/esm/index.d.ts +1 -0
  292. package/dist/esm/index.d.ts.map +1 -1
  293. package/dist/esm/index.js.map +1 -1
  294. package/dist/esm/principal/principal.d.ts +28 -6
  295. package/dist/esm/principal/principal.d.ts.map +1 -1
  296. package/dist/esm/principal/principal.js +144 -38
  297. package/dist/esm/principal/principal.js.map +1 -1
  298. package/dist/esm/resource/resource.d.ts +13 -3
  299. package/dist/esm/resource/resource.d.ts.map +1 -1
  300. package/dist/esm/resource/resource.js +69 -16
  301. package/dist/esm/resource/resource.js.map +1 -1
  302. package/dist/esm/services/DefaultServiceAuthorizer.d.ts +2 -34
  303. package/dist/esm/services/DefaultServiceAuthorizer.d.ts.map +1 -1
  304. package/dist/esm/services/DefaultServiceAuthorizer.js +95 -131
  305. package/dist/esm/services/DefaultServiceAuthorizer.js.map +1 -1
  306. package/dist/esm/services/ServiceAuthorizer.d.ts +6 -7
  307. package/dist/esm/services/ServiceAuthorizer.d.ts.map +1 -1
  308. package/dist/esm/simulation_engine/simulation.d.ts +4 -0
  309. package/dist/esm/simulation_engine/simulation.d.ts.map +1 -1
  310. package/dist/esm/simulation_engine/simulationEngine.d.ts +2 -4
  311. package/dist/esm/simulation_engine/simulationEngine.d.ts.map +1 -1
  312. package/dist/esm/simulation_engine/simulationEngine.js +16 -4
  313. package/dist/esm/simulation_engine/simulationEngine.js.map +1 -1
  314. package/dist/esm/simulation_engine/unsafeSimulationEngine.d.ts.map +1 -1
  315. package/dist/esm/simulation_engine/unsafeSimulationEngine.js +5 -2
  316. package/dist/esm/simulation_engine/unsafeSimulationEngine.js.map +1 -1
  317. package/dist/esm/util.d.ts +31 -3
  318. package/dist/esm/util.d.ts.map +1 -1
  319. package/dist/esm/util.js +70 -31
  320. package/dist/esm/util.js.map +1 -1
  321. package/package.json +2 -2
  322. package/dist/cjs/SCPAnalysis.d.ts +0 -6
  323. package/dist/cjs/SCPAnalysis.d.ts.map +0 -1
  324. package/dist/cjs/SCPAnalysis.js +0 -3
  325. package/dist/cjs/SCPAnalysis.js.map +0 -1
  326. package/dist/esm/SCPAnalysis.d.ts +0 -6
  327. package/dist/esm/SCPAnalysis.d.ts.map +0 -1
  328. package/dist/esm/SCPAnalysis.js +0 -2
  329. package/dist/esm/SCPAnalysis.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NumericGreaterThan.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericGreaterThan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAA0B;IACvD,IAAI,EAAE,oBAAoB;IAE1B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACrC,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,GAAG,UAAU,CAAA;YAClC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"NumericGreaterThan.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericGreaterThan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAA0B;IACvD,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC9C,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,GAAG,UAAU,CAAA;YAClC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YAClD,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumericGreaterThanEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericGreaterThanEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,wBAAwB,EAAE,qBAYtC,CAAA"}
1
+ {"version":3,"file":"NumericGreaterThanEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericGreaterThanEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,wBAAwB,EAAE,qBAkBtC,CAAA"}
@@ -2,13 +2,18 @@ import { checkIfNumeric } from "./numeric.js";
2
2
  export const NumericGreaterThanEquals = {
3
3
  name: 'NumericGreaterThanEquals',
4
4
  matches: (request, keyValue, policyValues) => {
5
- return policyValues.some(policyValue => {
5
+ const explains = policyValues.map(policyValue => {
6
6
  return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
7
  return policyNumber >= testNumber;
8
8
  });
9
9
  });
10
+ return {
11
+ matches: explains.some(explain => explain.matches),
12
+ explains
13
+ };
10
14
  },
11
15
  allowsVariables: false,
12
- allowsWildcards: false
16
+ allowsWildcards: false,
17
+ isNegative: false
13
18
  };
14
19
  //# sourceMappingURL=NumericGreaterThanEquals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumericGreaterThanEquals.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericGreaterThanEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAA0B;IAC7D,IAAI,EAAE,0BAA0B;IAEhC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACrC,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,IAAI,UAAU,CAAA;YACnC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"NumericGreaterThanEquals.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericGreaterThanEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAA0B;IAC7D,IAAI,EAAE,0BAA0B;IAEhC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC9C,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,IAAI,UAAU,CAAA;YACnC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YAClD,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumericLessThan.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericLessThan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,eAAe,EAAE,qBAY7B,CAAA"}
1
+ {"version":3,"file":"NumericLessThan.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericLessThan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,eAAe,EAAE,qBAkB7B,CAAA"}
@@ -2,13 +2,18 @@ import { checkIfNumeric } from "./numeric.js";
2
2
  export const NumericLessThan = {
3
3
  name: 'NumericLessThan',
4
4
  matches: (request, keyValue, policyValues) => {
5
- return policyValues.some(policyValue => {
5
+ const explains = policyValues.map(policyValue => {
6
6
  return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
7
  return policyNumber > testNumber;
8
8
  });
9
9
  });
10
+ return {
11
+ matches: explains.some(explain => explain.matches),
12
+ explains
13
+ };
10
14
  },
11
15
  allowsVariables: false,
12
- allowsWildcards: false
16
+ allowsWildcards: false,
17
+ isNegative: false
13
18
  };
14
19
  //# sourceMappingURL=NumericLessThan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumericLessThan.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericLessThan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,IAAI,EAAE,iBAAiB;IAEvB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACrC,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,GAAG,UAAU,CAAA;YAClC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"NumericLessThan.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericLessThan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,IAAI,EAAE,iBAAiB;IAEvB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC9C,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,GAAG,UAAU,CAAA;YAClC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YAClD,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumericLessThanEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericLessThanEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,qBAAqB,EAAE,qBAYnC,CAAA"}
1
+ {"version":3,"file":"NumericLessThanEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericLessThanEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,qBAAqB,EAAE,qBAkBnC,CAAA"}
@@ -2,13 +2,18 @@ import { checkIfNumeric } from "./numeric.js";
2
2
  export const NumericLessThanEquals = {
3
3
  name: 'NumericLessThanEquals',
4
4
  matches: (request, keyValue, policyValues) => {
5
- return policyValues.some(policyValue => {
5
+ const explains = policyValues.map(policyValue => {
6
6
  return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
7
  return policyNumber >= testNumber;
8
8
  });
9
9
  });
10
+ return {
11
+ matches: explains.some(explain => explain.matches),
12
+ explains
13
+ };
10
14
  },
11
15
  allowsVariables: false,
12
- allowsWildcards: false
16
+ allowsWildcards: false,
17
+ isNegative: false
13
18
  };
14
19
  //# sourceMappingURL=NumericLessThanEquals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumericLessThanEquals.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericLessThanEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D,IAAI,EAAE,uBAAuB;IAE7B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YACrC,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,IAAI,UAAU,CAAA;YACnC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"NumericLessThanEquals.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericLessThanEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D,IAAI,EAAE,uBAAuB;IAE7B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC9C,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,IAAI,UAAU,CAAA;YACnC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YAClD,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NumericNotEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericNotEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,gBAAgB,EAAE,qBAsB9B,CAAA"}
1
+ {"version":3,"file":"NumericNotEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericNotEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,gBAAgB,EAAE,qBAiB9B,CAAA"}
@@ -1,26 +1,19 @@
1
- import { isDefined, isNotDefined } from "../../util.js";
2
- import { parseNumber } from "./numeric.js";
1
+ import { checkIfNumeric } from "./numeric.js";
3
2
  export const NumericNotEquals = {
4
3
  name: 'NumericNotEquals',
5
4
  matches: (request, keyValue, policyValues) => {
6
- //How does this behave with malformed numbers
7
- // return !NumericEquals.matches(request, keyValue, policyValues)
8
- // const numericMatch = policyValues.some(policyValue => {
9
- // return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
10
- // return policyNumber == testNumber
11
- // })
12
- // })
13
- const requestValue = parseNumber(keyValue);
14
- if (isNotDefined(requestValue)) {
15
- return false;
16
- }
17
- const policyNumbers = policyValues.map(value => parseNumber(value)).filter(value => isDefined(value));
18
- if (policyNumbers.length === 0) {
19
- return false;
20
- }
21
- return !policyNumbers.some(policyNumber => policyNumber == requestValue);
5
+ const explains = policyValues.map(policyValue => {
6
+ return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
+ return policyNumber != testNumber;
8
+ });
9
+ });
10
+ return {
11
+ matches: !explains.some(explain => !explain.matches),
12
+ explains
13
+ };
22
14
  },
23
15
  allowsVariables: false,
24
- allowsWildcards: false
16
+ allowsWildcards: false,
17
+ isNegative: true
25
18
  };
26
19
  //# sourceMappingURL=NumericNotEquals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumericNotEquals.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericNotEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACrD,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,6CAA6C;QAC7C,iEAAiE;QACjE,2DAA2D;QAC3D,iFAAiF;QACjF,wCAAwC;QACxC,OAAO;QACP,KAAK;QACL,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC1C,IAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QACrG,IAAG,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,IAAI,YAAY,CAAC,CAAA;IAC1E,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"NumericNotEquals.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericNotEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACrD,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC9C,OAAO,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE;gBACxE,OAAO,YAAY,IAAI,UAAU,CAAA;YACnC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YACpD,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,IAAI;CACjB,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { ConditionValueExplain } from "../../explain/statementExplain.js";
1
2
  /**
2
3
  * Parse a string to a number, returns undefined if the string is not a number
3
4
  *
@@ -13,5 +14,5 @@ export declare function parseNumber(value: string): number | undefined;
13
14
  * @param check
14
15
  * @returns
15
16
  */
16
- export declare function checkIfNumeric(policyValue: string, testValue: string, check: (policyValue: number, testValue: number) => boolean): boolean;
17
+ export declare function checkIfNumeric(policyValue: string, testValue: string, check: (policyValue: number, testValue: number) => boolean): ConditionValueExplain;
17
18
  //# sourceMappingURL=numeric.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/numeric.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY7D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAO1I"}
1
+ {"version":3,"file":"numeric.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/numeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAGzE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY7D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,qBAAqB,CAuBxJ"}
@@ -29,9 +29,24 @@ export function parseNumber(value) {
29
29
  export function checkIfNumeric(policyValue, testValue, check) {
30
30
  const policyNumber = parseNumber(policyValue);
31
31
  const testNumber = parseNumber(testValue);
32
- if (isNotDefined(policyNumber) || isNotDefined(testNumber)) {
33
- return false;
32
+ if (isNotDefined(policyNumber)) {
33
+ return {
34
+ value: policyValue,
35
+ matches: false,
36
+ errors: [`${policyValue} is not a number`]
37
+ };
34
38
  }
35
- return check(policyNumber, testNumber);
39
+ if (isNotDefined(testNumber)) {
40
+ return {
41
+ value: policyValue,
42
+ matches: false,
43
+ errors: [`request value '${testValue}' is not a number`]
44
+ };
45
+ }
46
+ const matches = check(policyNumber, testNumber);
47
+ return {
48
+ value: policyValue,
49
+ matches,
50
+ };
36
51
  }
37
52
  //# sourceMappingURL=numeric.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"numeric.js","sourceRoot":"","sources":["../../../../src/condition/numeric/numeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,MAAM,GAAuB,SAAS,CAAA;IAC1C,IAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC9B,CAAC;IACD,IAAG,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,SAAiB,EAAE,KAA0D;IAC/H,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACzC,IAAG,YAAY,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"numeric.js","sourceRoot":"","sources":["../../../../src/condition/numeric/numeric.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,MAAM,GAAuB,SAAS,CAAA;IAC1C,IAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC9B,CAAC;IACD,IAAG,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,SAAiB,EAAE,KAA0D;IAC/H,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IACzC,IAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,GAAG,WAAW,kBAAkB,CAAC;SAC3C,CAAA;IACH,CAAC;IACD,IAAG,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC,kBAAkB,SAAS,mBAAmB,CAAC;SACzD,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC/C,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,OAAO;KACR,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"StringEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,YAAY,EAAE,qBAQ1B,CAAA"}
1
+ {"version":3,"file":"StringEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringEquals.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,YAAY,EAAE,qBA+B1B,CAAA"}
@@ -1,11 +1,32 @@
1
- import { convertIamStringToRegex } from "../../util.js";
1
+ import { convertIamString } from "../../util.js";
2
+ import { resolvedValue } from "../conditionUtil.js";
2
3
  export const StringEquals = {
3
4
  name: 'StringEquals',
4
5
  matches: (request, keyValue, policyValues) => {
5
- const patterns = policyValues.map(value => convertIamStringToRegex(value, request, { replaceWildcards: false }));
6
- return patterns.some(pattern => pattern.test(keyValue));
6
+ const explains = policyValues.map((value) => {
7
+ const { pattern, errors } = convertIamString(value, request, { replaceWildcards: false });
8
+ if (errors && errors.length > 0) {
9
+ return {
10
+ value,
11
+ matches: false,
12
+ errors
13
+ };
14
+ }
15
+ const matches = pattern.test(keyValue);
16
+ return {
17
+ value,
18
+ matches,
19
+ resolvedValue: resolvedValue(value, request),
20
+ };
21
+ });
22
+ const overallMatch = explains.some(explain => explain.matches);
23
+ return {
24
+ matches: overallMatch,
25
+ explains
26
+ };
7
27
  },
8
28
  allowsVariables: true,
9
- allowsWildcards: false
29
+ allowsWildcards: false,
30
+ isNegative: false
10
31
  };
11
32
  //# sourceMappingURL=StringEquals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringEquals.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAC,CAAA;QAC9G,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"StringEquals.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,YAAY,GAA0B;IACjD,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAA;YACrF,IAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtC,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAGF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC9D,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"StringEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,sBAAsB,EAAE,qBAWpC,CAAA"}
1
+ {"version":3,"file":"StringEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,sBAAsB,EAAE,qBA+BpC,CAAA"}
@@ -1,14 +1,32 @@
1
- import { convertIamStringToRegex } from "../../util.js";
1
+ import { convertIamString } from "../../util.js";
2
+ import { resolvedValue } from "../conditionUtil.js";
2
3
  export const StringEqualsIgnoreCase = {
3
4
  name: 'StringEqualsIgnoreCase',
4
5
  matches: (request, keyValue, policyValues) => {
5
- const patterns = policyValues.map(value => {
6
- const pattern = convertIamStringToRegex(value, request, { replaceWildcards: false });
7
- return new RegExp(pattern, 'i');
6
+ const explains = policyValues.map((value) => {
7
+ const { pattern, errors } = convertIamString(value, request, { replaceWildcards: false });
8
+ if (errors && errors.length > 0) {
9
+ return {
10
+ value,
11
+ matches: false,
12
+ errors
13
+ };
14
+ }
15
+ const matches = new RegExp(pattern, 'i').test(keyValue);
16
+ return {
17
+ value,
18
+ matches,
19
+ resolvedValue: resolvedValue(value, request),
20
+ };
8
21
  });
9
- return patterns.some(pattern => pattern.test(keyValue));
22
+ const overallMatch = explains.some(explain => explain.matches);
23
+ return {
24
+ matches: overallMatch,
25
+ explains
26
+ };
10
27
  },
11
28
  allowsVariables: true,
12
- allowsWildcards: false
29
+ allowsWildcards: false,
30
+ isNegative: false
13
31
  };
14
32
  //# sourceMappingURL=StringEqualsIgnoreCase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,IAAI,EAAE,wBAAwB;IAC9B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxC,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAA;YAClF,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"StringEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,IAAI,EAAE,wBAAwB;IAC9B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAA;YACrF,IAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvD,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAGF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC9D,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"StringLike.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringLike.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,UAAU,EAAE,qBAQxB,CAAA"}
1
+ {"version":3,"file":"StringLike.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringLike.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,UAAU,EAAE,qBAgCxB,CAAA"}
@@ -1,11 +1,32 @@
1
- import { convertIamStringToRegex } from "../../util.js";
1
+ import { convertIamString } from "../../util.js";
2
+ import { resolvedValue } from "../conditionUtil.js";
2
3
  export const StringLike = {
3
4
  name: 'StringLike',
4
5
  matches: (request, keyValue, policyValues) => {
5
- const patterns = policyValues.map(value => convertIamStringToRegex(value, request, { replaceWildcards: true }));
6
- return patterns.some(pattern => pattern.test(keyValue));
6
+ const explains = policyValues.map((value) => {
7
+ const { pattern, errors } = convertIamString(value, request, { replaceWildcards: true });
8
+ if (errors && errors.length > 0) {
9
+ return {
10
+ value,
11
+ matches: false,
12
+ errors
13
+ };
14
+ }
15
+ const matches = pattern.test(keyValue);
16
+ return {
17
+ value,
18
+ matches,
19
+ resolvedValue: resolvedValue(value, request),
20
+ };
21
+ });
22
+ const overallMatch = explains.some(explain => explain.matches);
23
+ return {
24
+ matches: overallMatch,
25
+ explains
26
+ };
7
27
  },
8
28
  allowsVariables: true,
9
- allowsWildcards: true
29
+ allowsWildcards: true,
30
+ isNegative: false
10
31
  };
11
32
  //# sourceMappingURL=StringLike.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringLike.js","sourceRoot":"","sources":["../../../../src/condition/string/StringLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,CAAC,MAAM,UAAU,GAA0B;IAC/C,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,CAAC,CAAC,CAAA;QAC7G,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;CACtB,CAAA"}
1
+ {"version":3,"file":"StringLike.js","sourceRoot":"","sources":["../../../../src/condition/string/StringLike.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,UAAU,GAA0B;IAC/C,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,CAAC,CAAA;YACpF,IAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACtC,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAGF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC9D,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IAEH,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,KAAK;CAClB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,eAAO,MAAM,eAAe,EAAE,qBAQ7B,CAAA"}
1
+ {"version":3,"file":"StringNotEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEquals.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,eAAe,EAAE,qBA8B7B,CAAA"}
@@ -1,11 +1,32 @@
1
- import { convertIamStringToRegex } from "../../util.js";
1
+ import { convertIamString } from "../../util.js";
2
+ import { resolvedValue } from "../conditionUtil.js";
2
3
  export const StringNotEquals = {
3
4
  name: 'StringNotEquals',
4
5
  matches: (request, keyValue, policyValues) => {
5
- const patterns = policyValues.map(value => convertIamStringToRegex(value, request, { replaceWildcards: false }));
6
- return !patterns.some(pattern => pattern.test(keyValue));
6
+ const explains = policyValues.map((value) => {
7
+ const { pattern, errors } = convertIamString(value, request, { replaceWildcards: false });
8
+ if (errors && errors.length > 0) {
9
+ return {
10
+ value,
11
+ matches: false,
12
+ errors
13
+ };
14
+ }
15
+ const matches = !pattern.test(keyValue);
16
+ return {
17
+ value,
18
+ matches,
19
+ resolvedValue: resolvedValue(value, request),
20
+ };
21
+ });
22
+ const overallMatch = !explains.some(explain => !explain.matches);
23
+ return {
24
+ matches: overallMatch,
25
+ explains
26
+ };
7
27
  },
8
28
  allowsVariables: true,
9
- allowsWildcards: false
29
+ allowsWildcards: false,
30
+ isNegative: true
10
31
  };
11
32
  //# sourceMappingURL=StringNotEquals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotEquals.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAC,CAAA;QAC9G,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1D,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"StringNotEquals.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,eAAe,GAA0B;IACpD,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAA;YACrF,IAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvC,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IACH,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,IAAI;CACjB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,yBAAyB,EAAE,qBAOvC,CAAA"}
1
+ {"version":3,"file":"StringNotEqualsIgnoreCase.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,yBAAyB,EAAE,qBA8BvC,CAAA"}
@@ -1,10 +1,32 @@
1
- import { StringEqualsIgnoreCase } from "./StringEqualsIgnoreCase.js";
1
+ import { convertIamString } from "../../util.js";
2
+ import { resolvedValue } from "../conditionUtil.js";
2
3
  export const StringNotEqualsIgnoreCase = {
3
4
  name: 'StringNotEqualsIgnoreCase',
4
5
  matches: (request, keyValue, policyValues) => {
5
- return !StringEqualsIgnoreCase.matches(request, keyValue, policyValues);
6
+ const explains = policyValues.map((value) => {
7
+ const { pattern, errors } = convertIamString(value, request, { replaceWildcards: false });
8
+ if (errors && errors.length > 0) {
9
+ return {
10
+ value,
11
+ matches: false,
12
+ errors
13
+ };
14
+ }
15
+ const matches = !new RegExp(pattern, 'i').test(keyValue);
16
+ return {
17
+ value,
18
+ matches,
19
+ resolvedValue: resolvedValue(value, request),
20
+ };
21
+ });
22
+ const overallMatch = !explains.some(explain => !explain.matches);
23
+ return {
24
+ matches: overallMatch,
25
+ explains
26
+ };
6
27
  },
7
28
  allowsVariables: true,
8
- allowsWildcards: false
29
+ allowsWildcards: false,
30
+ isNegative: true
9
31
  };
10
32
  //# sourceMappingURL=StringNotEqualsIgnoreCase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IACzE,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;CACvB,CAAA"}
1
+ {"version":3,"file":"StringNotEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QACzC,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,KAAK,EAAC,CAAC,CAAA;YACrF,IAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACxD,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IACH,CAAC;IACH,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,IAAI;CACjB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotLike.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,aAAa,EAAE,qBAO3B,CAAA"}
1
+ {"version":3,"file":"StringNotLike.d.ts","sourceRoot":"","sources":["../../../../src/condition/string/StringNotLike.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,aAAa,EAAE,qBAgC3B,CAAA"}
@@ -1,10 +1,32 @@
1
- import { StringLike } from "./StringLike.js";
1
+ import { convertIamString } from "../../util.js";
2
+ import { resolvedValue } from "../conditionUtil.js";
2
3
  export const StringNotLike = {
3
4
  name: 'StringNotLike',
4
5
  matches: (request, keyValue, policyValues) => {
5
- return !StringLike.matches(request, keyValue, policyValues);
6
+ const explains = policyValues.map((value) => {
7
+ const { pattern, errors } = convertIamString(value, request, { replaceWildcards: true });
8
+ if (errors && errors.length > 0) {
9
+ return {
10
+ value,
11
+ matches: false,
12
+ errors
13
+ };
14
+ }
15
+ const matches = !pattern.test(keyValue);
16
+ return {
17
+ value,
18
+ matches,
19
+ resolvedValue: resolvedValue(value, request),
20
+ };
21
+ });
22
+ const overallMatch = !explains.some(explain => !explain.matches);
23
+ return {
24
+ matches: overallMatch,
25
+ explains
26
+ };
6
27
  },
7
28
  allowsVariables: true,
8
- allowsWildcards: true
29
+ allowsWildcards: true,
30
+ isNegative: true
9
31
  };
10
32
  //# sourceMappingURL=StringNotLike.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotLike.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotLike.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IAC7D,CAAC;IACD,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;CACtB,CAAA"}
1
+ {"version":3,"file":"StringNotLike.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotLike.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QACzC,MAAM,QAAQ,GAA4B,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAC,gBAAgB,EAAE,IAAI,EAAC,CAAC,CAAA;YACpF,IAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACvC,OAAO;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7C,CAAA;QACH,CAAC,CAAC,CAAA;QAGF,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,QAAQ;SACT,CAAA;IAEH,CAAC;IACH,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,IAAI;CACjB,CAAA"}
@@ -1,9 +1,7 @@
1
1
  import { Policy } from "@cloud-copilot/iam-policy";
2
- import { EvaluationResult } from "../evaluate.js";
2
+ import { IdentityAnalysis, RequestAnalysis, ResourceAnalysis, ScpAnalysis } from "../evaluate.js";
3
3
  import { AwsRequest } from "../request/request.js";
4
- import { SCPAnalysis } from "../SCPAnalysis.js";
5
4
  import { ServiceAuthorizer } from "../services/ServiceAuthorizer.js";
6
- import { StatementAnalysis } from "../StatementAnalysis.js";
7
5
  /**
8
6
  * A set of service control policies for each level of an organization tree
9
7
  */
@@ -38,6 +36,10 @@ export interface AuthorizationRequest {
38
36
  * The resource policy that applies to the resource being accessed.
39
37
  */
40
38
  resourcePolicy: Policy | undefined;
39
+ /**
40
+ * The permission boundaries that apply to the principal making the request.
41
+ */
42
+ permissionBoundaries: Policy[] | undefined;
41
43
  }
42
44
  /**
43
45
  * Authorizes a request.
@@ -47,7 +49,7 @@ export interface AuthorizationRequest {
47
49
  * @param request the request to authorize
48
50
  * @returns the result of the authorization
49
51
  */
50
- export declare function authorize(request: AuthorizationRequest): EvaluationResult;
52
+ export declare function authorize(request: AuthorizationRequest): RequestAnalysis;
51
53
  /**
52
54
  * Get the appropriate service authorizer for the request. Some services have specific authorization logic in
53
55
  * them. If there is no service specific authorizer, a default one will be used.
@@ -63,7 +65,7 @@ export declare function getServiceAuthorizer(request: AuthorizationRequest): Ser
63
65
  * @param request the request to analyze against
64
66
  * @returns an array of statement analysis results
65
67
  */
66
- export declare function analyzeIdentityPolicies(identityPolicies: Policy[], request: AwsRequest): StatementAnalysis[];
68
+ export declare function analyzeIdentityPolicies(identityPolicies: Policy[], request: AwsRequest): IdentityAnalysis;
67
69
  /**
68
70
  * Analyzes a set of service control policies and the statements within them.
69
71
  *
@@ -71,7 +73,7 @@ export declare function analyzeIdentityPolicies(identityPolicies: Policy[], requ
71
73
  * @param request the request to analyze against
72
74
  * @returns an array of SCP analysis results
73
75
  */
74
- export declare function analyzeServiceControlPolicies(serviceControlPolicies: ServiceControlPolicies[], request: AwsRequest): SCPAnalysis[];
76
+ export declare function analyzeServiceControlPolicies(serviceControlPolicies: ServiceControlPolicies[], request: AwsRequest): ScpAnalysis;
75
77
  /**
76
78
  * Analyze a resource policy and return the results
77
79
  *
@@ -79,5 +81,6 @@ export declare function analyzeServiceControlPolicies(serviceControlPolicies: Se
79
81
  * @param request the request to analyze against
80
82
  * @returns an array of statement analysis results
81
83
  */
82
- export declare function analyzeResourcePolicy(resourcePolicy: Policy, request: AwsRequest): StatementAnalysis[];
84
+ export declare function analyzeResourcePolicy(resourcePolicy: Policy | undefined, request: AwsRequest): ResourceAnalysis;
85
+ export declare function analyzePermissionBoundaryPolicies(permissionBoundaries: Policy[] | undefined, request: AwsRequest): IdentityAnalysis | undefined;
83
86
  //# sourceMappingURL=coreSimulatorEngine.d.ts.map
@@ -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;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAE1B;;;OAGG;IACH,sBAAsB,EAAE,sBAAsB,EAAE,CAAA;IAEhD;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,gBAAgB,CAYzE;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;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,WAAW,EAAE,CAsBlI;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,iBAAiB,EAAE,CAatG"}
1
+ {"version":3,"file":"coreSimulatorEngine.d.ts","sourceRoot":"","sources":["../../../src/core_engine/coreSimulatorEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAoB,gBAAgB,EAAiB,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGnI,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAE1B;;;OAGG;IACH,sBAAsB,EAAE,sBAAsB,EAAE,CAAA;IAEhD;;OAEG;IACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC;;OAEG;IACH,oBAAoB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC5C;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,eAAe,CAcxE;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,gBAAgB,CA0CzG;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,WAAW,CAyDhI;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,gBAAgB,CAkD/G;AAGD,wBAAgB,iCAAiC,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAM/I"}