@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
@@ -33,9 +33,24 @@ function parseNumber(value) {
33
33
  function checkIfNumeric(policyValue, testValue, check) {
34
34
  const policyNumber = parseNumber(policyValue);
35
35
  const testNumber = parseNumber(testValue);
36
- if ((0, util_js_1.isNotDefined)(policyNumber) || (0, util_js_1.isNotDefined)(testNumber)) {
37
- return false;
36
+ if ((0, util_js_1.isNotDefined)(policyNumber)) {
37
+ return {
38
+ value: policyValue,
39
+ matches: false,
40
+ errors: [`${policyValue} is not a number`]
41
+ };
38
42
  }
39
- return check(policyNumber, testNumber);
43
+ if ((0, util_js_1.isNotDefined)(testNumber)) {
44
+ return {
45
+ value: policyValue,
46
+ matches: false,
47
+ errors: [`request value '${testValue}' is not a number`]
48
+ };
49
+ }
50
+ const matches = check(policyNumber, testNumber);
51
+ return {
52
+ value: policyValue,
53
+ matches,
54
+ };
40
55
  }
41
56
  //# sourceMappingURL=numeric.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"numeric.js","sourceRoot":"","sources":["../../../../src/condition/numeric/numeric.ts"],"names":[],"mappings":";;AAQA,kCAYC;AAUD,wCAOC;AArCD,2CAA4C;AAE5C;;;;;GAKG;AACH,SAAgB,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,IAAA,sBAAY,EAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,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,IAAA,sBAAY,EAAC,YAAY,CAAC,IAAI,IAAA,sBAAY,EAAC,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":";;AASA,kCAYC;AAUD,wCAuBC;AArDD,2CAA4C;AAE5C;;;;;GAKG;AACH,SAAgB,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,IAAA,sBAAY,EAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,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,IAAA,sBAAY,EAAC,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,IAAA,sBAAY,EAAC,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"}
@@ -2,13 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringEquals = void 0;
4
4
  const util_js_1 = require("../../util.js");
5
+ const conditionUtil_js_1 = require("../conditionUtil.js");
5
6
  exports.StringEquals = {
6
7
  name: 'StringEquals',
7
8
  matches: (request, keyValue, policyValues) => {
8
- const patterns = policyValues.map(value => (0, util_js_1.convertIamStringToRegex)(value, request, { replaceWildcards: false }));
9
- return patterns.some(pattern => pattern.test(keyValue));
9
+ const explains = policyValues.map((value) => {
10
+ const { pattern, errors } = (0, util_js_1.convertIamString)(value, request, { replaceWildcards: false });
11
+ if (errors && errors.length > 0) {
12
+ return {
13
+ value,
14
+ matches: false,
15
+ errors
16
+ };
17
+ }
18
+ const matches = pattern.test(keyValue);
19
+ return {
20
+ value,
21
+ matches,
22
+ resolvedValue: (0, conditionUtil_js_1.resolvedValue)(value, request),
23
+ };
24
+ });
25
+ const overallMatch = explains.some(explain => explain.matches);
26
+ return {
27
+ matches: overallMatch,
28
+ explains
29
+ };
10
30
  },
11
31
  allowsVariables: true,
12
- allowsWildcards: false
32
+ allowsWildcards: false,
33
+ isNegative: false
13
34
  };
14
35
  //# sourceMappingURL=StringEquals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringEquals.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEquals.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAG3C,QAAA,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,IAAA,iCAAuB,EAAC,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,2CAAiD;AAEjD,0DAAoD;AAEvC,QAAA,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,IAAA,0BAAgB,EAAC,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,IAAA,gCAAa,EAAC,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"}
@@ -2,16 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringEqualsIgnoreCase = void 0;
4
4
  const util_js_1 = require("../../util.js");
5
+ const conditionUtil_js_1 = require("../conditionUtil.js");
5
6
  exports.StringEqualsIgnoreCase = {
6
7
  name: 'StringEqualsIgnoreCase',
7
8
  matches: (request, keyValue, policyValues) => {
8
- const patterns = policyValues.map(value => {
9
- const pattern = (0, util_js_1.convertIamStringToRegex)(value, request, { replaceWildcards: false });
10
- return new RegExp(pattern, 'i');
9
+ const explains = policyValues.map((value) => {
10
+ const { pattern, errors } = (0, util_js_1.convertIamString)(value, request, { replaceWildcards: false });
11
+ if (errors && errors.length > 0) {
12
+ return {
13
+ value,
14
+ matches: false,
15
+ errors
16
+ };
17
+ }
18
+ const matches = new RegExp(pattern, 'i').test(keyValue);
19
+ return {
20
+ value,
21
+ matches,
22
+ resolvedValue: (0, conditionUtil_js_1.resolvedValue)(value, request),
23
+ };
11
24
  });
12
- return patterns.some(pattern => pattern.test(keyValue));
25
+ const overallMatch = explains.some(explain => explain.matches);
26
+ return {
27
+ matches: overallMatch,
28
+ explains
29
+ };
13
30
  },
14
31
  allowsVariables: true,
15
- allowsWildcards: false
32
+ allowsWildcards: false,
33
+ isNegative: false
16
34
  };
17
35
  //# sourceMappingURL=StringEqualsIgnoreCase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringEqualsIgnoreCase.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAG3C,QAAA,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,IAAA,iCAAuB,EAAC,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,2CAAiD;AAEjD,0DAAoD;AAEvC,QAAA,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,IAAA,0BAAgB,EAAC,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,IAAA,gCAAa,EAAC,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"}
@@ -2,13 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringLike = void 0;
4
4
  const util_js_1 = require("../../util.js");
5
+ const conditionUtil_js_1 = require("../conditionUtil.js");
5
6
  exports.StringLike = {
6
7
  name: 'StringLike',
7
8
  matches: (request, keyValue, policyValues) => {
8
- const patterns = policyValues.map(value => (0, util_js_1.convertIamStringToRegex)(value, request, { replaceWildcards: true }));
9
- return patterns.some(pattern => pattern.test(keyValue));
9
+ const explains = policyValues.map((value) => {
10
+ const { pattern, errors } = (0, util_js_1.convertIamString)(value, request, { replaceWildcards: true });
11
+ if (errors && errors.length > 0) {
12
+ return {
13
+ value,
14
+ matches: false,
15
+ errors
16
+ };
17
+ }
18
+ const matches = pattern.test(keyValue);
19
+ return {
20
+ value,
21
+ matches,
22
+ resolvedValue: (0, conditionUtil_js_1.resolvedValue)(value, request),
23
+ };
24
+ });
25
+ const overallMatch = explains.some(explain => explain.matches);
26
+ return {
27
+ matches: overallMatch,
28
+ explains
29
+ };
10
30
  },
11
31
  allowsVariables: true,
12
- allowsWildcards: true
32
+ allowsWildcards: true,
33
+ isNegative: false
13
34
  };
14
35
  //# sourceMappingURL=StringLike.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringLike.js","sourceRoot":"","sources":["../../../../src/condition/string/StringLike.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAG3C,QAAA,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,IAAA,iCAAuB,EAAC,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,2CAAiD;AAEjD,0DAAoD;AAEvC,QAAA,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,IAAA,0BAAgB,EAAC,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,IAAA,gCAAa,EAAC,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"}
@@ -2,13 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringNotEquals = void 0;
4
4
  const util_js_1 = require("../../util.js");
5
+ const conditionUtil_js_1 = require("../conditionUtil.js");
5
6
  exports.StringNotEquals = {
6
7
  name: 'StringNotEquals',
7
8
  matches: (request, keyValue, policyValues) => {
8
- const patterns = policyValues.map(value => (0, util_js_1.convertIamStringToRegex)(value, request, { replaceWildcards: false }));
9
- return !patterns.some(pattern => pattern.test(keyValue));
9
+ const explains = policyValues.map((value) => {
10
+ const { pattern, errors } = (0, util_js_1.convertIamString)(value, request, { replaceWildcards: false });
11
+ if (errors && errors.length > 0) {
12
+ return {
13
+ value,
14
+ matches: false,
15
+ errors
16
+ };
17
+ }
18
+ const matches = !pattern.test(keyValue);
19
+ return {
20
+ value,
21
+ matches,
22
+ resolvedValue: (0, conditionUtil_js_1.resolvedValue)(value, request),
23
+ };
24
+ });
25
+ const overallMatch = !explains.some(explain => !explain.matches);
26
+ return {
27
+ matches: overallMatch,
28
+ explains
29
+ };
10
30
  },
11
31
  allowsVariables: true,
12
- allowsWildcards: false
32
+ allowsWildcards: false,
33
+ isNegative: true
13
34
  };
14
35
  //# sourceMappingURL=StringNotEquals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotEquals.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEquals.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAG3C,QAAA,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,IAAA,iCAAuB,EAAC,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,2CAAiD;AAEjD,0DAAoD;AAEvC,QAAA,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,IAAA,0BAAgB,EAAC,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,IAAA,gCAAa,EAAC,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,13 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringNotEqualsIgnoreCase = void 0;
4
- const StringEqualsIgnoreCase_js_1 = require("./StringEqualsIgnoreCase.js");
4
+ const util_js_1 = require("../../util.js");
5
+ const conditionUtil_js_1 = require("../conditionUtil.js");
5
6
  exports.StringNotEqualsIgnoreCase = {
6
7
  name: 'StringNotEqualsIgnoreCase',
7
8
  matches: (request, keyValue, policyValues) => {
8
- return !StringEqualsIgnoreCase_js_1.StringEqualsIgnoreCase.matches(request, keyValue, policyValues);
9
+ const explains = policyValues.map((value) => {
10
+ const { pattern, errors } = (0, util_js_1.convertIamString)(value, request, { replaceWildcards: false });
11
+ if (errors && errors.length > 0) {
12
+ return {
13
+ value,
14
+ matches: false,
15
+ errors
16
+ };
17
+ }
18
+ const matches = !new RegExp(pattern, 'i').test(keyValue);
19
+ return {
20
+ value,
21
+ matches,
22
+ resolvedValue: (0, conditionUtil_js_1.resolvedValue)(value, request),
23
+ };
24
+ });
25
+ const overallMatch = !explains.some(explain => !explain.matches);
26
+ return {
27
+ matches: overallMatch,
28
+ explains
29
+ };
9
30
  },
10
31
  allowsVariables: true,
11
- allowsWildcards: false
32
+ allowsWildcards: false,
33
+ isNegative: true
12
34
  };
13
35
  //# sourceMappingURL=StringNotEqualsIgnoreCase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotEqualsIgnoreCase.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotEqualsIgnoreCase.ts"],"names":[],"mappings":";;;AACA,2EAAqE;AAExD,QAAA,yBAAyB,GAA0B;IAC9D,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,CAAC,kDAAsB,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,2CAAiD;AAEjD,0DAAoD;AAEvC,QAAA,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,IAAA,0BAAgB,EAAC,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,IAAA,gCAAa,EAAC,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,13 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StringNotLike = void 0;
4
- const StringLike_js_1 = require("./StringLike.js");
4
+ const util_js_1 = require("../../util.js");
5
+ const conditionUtil_js_1 = require("../conditionUtil.js");
5
6
  exports.StringNotLike = {
6
7
  name: 'StringNotLike',
7
8
  matches: (request, keyValue, policyValues) => {
8
- return !StringLike_js_1.StringLike.matches(request, keyValue, policyValues);
9
+ const explains = policyValues.map((value) => {
10
+ const { pattern, errors } = (0, util_js_1.convertIamString)(value, request, { replaceWildcards: true });
11
+ if (errors && errors.length > 0) {
12
+ return {
13
+ value,
14
+ matches: false,
15
+ errors
16
+ };
17
+ }
18
+ const matches = !pattern.test(keyValue);
19
+ return {
20
+ value,
21
+ matches,
22
+ resolvedValue: (0, conditionUtil_js_1.resolvedValue)(value, request),
23
+ };
24
+ });
25
+ const overallMatch = !explains.some(explain => !explain.matches);
26
+ return {
27
+ matches: overallMatch,
28
+ explains
29
+ };
9
30
  },
10
31
  allowsVariables: true,
11
- allowsWildcards: true
32
+ allowsWildcards: true,
33
+ isNegative: true
12
34
  };
13
35
  //# sourceMappingURL=StringNotLike.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringNotLike.js","sourceRoot":"","sources":["../../../../src/condition/string/StringNotLike.ts"],"names":[],"mappings":";;;AACA,mDAA6C;AAEhC,QAAA,aAAa,GAA0B;IAClD,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE;QAC3C,OAAO,CAAC,0BAAU,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,2CAAiD;AAEjD,0DAAoD;AAEvC,QAAA,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,IAAA,0BAAgB,EAAC,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,IAAA,gCAAa,EAAC,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"}