@cloud-copilot/iam-simulate 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/dist/cjs/condition/baseConditionperatorTests.js +1 -1
  2. package/dist/cjs/condition/baseConditionperatorTests.js.map +1 -1
  3. package/dist/cjs/core_engine/coreSimulatorEngine.d.ts.map +1 -1
  4. package/dist/cjs/core_engine/coreSimulatorEngine.js +4 -1
  5. package/dist/cjs/core_engine/coreSimulatorEngine.js.map +1 -1
  6. package/dist/cjs/index.d.ts +4 -0
  7. package/dist/cjs/index.d.ts.map +1 -1
  8. package/dist/cjs/index.js +8 -0
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/request/request.d.ts +9 -3
  11. package/dist/cjs/request/request.d.ts.map +1 -1
  12. package/dist/cjs/request/request.js +4 -7
  13. package/dist/cjs/request/request.js.map +1 -1
  14. package/dist/cjs/request/requestResource.d.ts +7 -1
  15. package/dist/cjs/request/requestResource.d.ts.map +1 -1
  16. package/dist/cjs/request/requestResource.js +6 -1
  17. package/dist/cjs/request/requestResource.js.map +1 -1
  18. package/dist/cjs/services/DefaultServiceAuthorizer.d.ts.map +1 -1
  19. package/dist/cjs/services/DefaultServiceAuthorizer.js +2 -2
  20. package/dist/cjs/services/DefaultServiceAuthorizer.js.map +1 -1
  21. package/dist/cjs/simulation_engine/contextKeys.d.ts +3 -0
  22. package/dist/cjs/simulation_engine/contextKeys.d.ts.map +1 -0
  23. package/dist/cjs/simulation_engine/contextKeys.js +53 -0
  24. package/dist/cjs/simulation_engine/contextKeys.js.map +1 -0
  25. package/dist/cjs/simulation_engine/simulationEngine.d.ts +25 -0
  26. package/dist/cjs/simulation_engine/simulationEngine.d.ts.map +1 -0
  27. package/dist/cjs/simulation_engine/simulationEngine.js +38 -0
  28. package/dist/cjs/simulation_engine/simulationEngine.js.map +1 -0
  29. package/dist/esm/StatementAnalysis.d.ts +27 -0
  30. package/dist/esm/StatementAnalysis.d.ts.map +1 -0
  31. package/dist/esm/StatementAnalysis.js +2 -0
  32. package/dist/esm/StatementAnalysis.js.map +1 -0
  33. package/dist/esm/action/action.d.ts +9 -1
  34. package/dist/esm/action/action.d.ts.map +1 -1
  35. package/dist/esm/action/action.js +16 -0
  36. package/dist/esm/action/action.js.map +1 -1
  37. package/dist/esm/condition/arn/ArnEquals.d.ts +3 -0
  38. package/dist/esm/condition/arn/ArnEquals.d.ts.map +1 -0
  39. package/dist/esm/condition/arn/ArnEquals.js +8 -0
  40. package/dist/esm/condition/arn/ArnEquals.js.map +1 -0
  41. package/dist/esm/condition/arn/ArnLike.d.ts +3 -0
  42. package/dist/esm/condition/arn/ArnLike.d.ts.map +1 -0
  43. package/dist/esm/condition/arn/ArnLike.js +47 -0
  44. package/dist/esm/condition/arn/ArnLike.js.map +1 -0
  45. package/dist/esm/condition/arn/ArnNotEquals.d.ts +3 -0
  46. package/dist/esm/condition/arn/ArnNotEquals.d.ts.map +1 -0
  47. package/dist/esm/condition/arn/ArnNotEquals.js +8 -0
  48. package/dist/esm/condition/arn/ArnNotEquals.js.map +1 -0
  49. package/dist/esm/condition/arn/ArnNotLike.d.ts +3 -0
  50. package/dist/esm/condition/arn/ArnNotLike.d.ts.map +1 -0
  51. package/dist/esm/condition/arn/ArnNotLike.js +10 -0
  52. package/dist/esm/condition/arn/ArnNotLike.js.map +1 -0
  53. package/dist/esm/condition/baseConditionperatorTests.d.ts +12 -0
  54. package/dist/esm/condition/baseConditionperatorTests.d.ts.map +1 -0
  55. package/dist/esm/condition/baseConditionperatorTests.js +18 -0
  56. package/dist/esm/condition/baseConditionperatorTests.js.map +1 -0
  57. package/dist/esm/condition/binary/BinaryEquals.d.ts +7 -0
  58. package/dist/esm/condition/binary/BinaryEquals.d.ts.map +1 -0
  59. package/dist/esm/condition/binary/BinaryEquals.js +13 -0
  60. package/dist/esm/condition/binary/BinaryEquals.js.map +1 -0
  61. package/dist/esm/condition/boolean/Bool.d.ts +3 -0
  62. package/dist/esm/condition/boolean/Bool.d.ts.map +1 -0
  63. package/dist/esm/condition/boolean/Bool.js +17 -0
  64. package/dist/esm/condition/boolean/Bool.js.map +1 -0
  65. package/dist/esm/condition/condition.d.ts +1 -0
  66. package/dist/esm/condition/condition.d.ts.map +1 -1
  67. package/dist/esm/condition/condition.js +60 -11
  68. package/dist/esm/condition/condition.js.map +1 -1
  69. package/dist/esm/condition/date/DateEquals.d.ts +3 -0
  70. package/dist/esm/condition/date/DateEquals.d.ts.map +1 -0
  71. package/dist/esm/condition/date/DateEquals.js +14 -0
  72. package/dist/esm/condition/date/DateEquals.js.map +1 -0
  73. package/dist/esm/condition/date/DateGreaterThan.d.ts +3 -0
  74. package/dist/esm/condition/date/DateGreaterThan.d.ts.map +1 -0
  75. package/dist/esm/condition/date/DateGreaterThan.js +14 -0
  76. package/dist/esm/condition/date/DateGreaterThan.js.map +1 -0
  77. package/dist/esm/condition/date/DateGreaterThanEquals.d.ts +3 -0
  78. package/dist/esm/condition/date/DateGreaterThanEquals.d.ts.map +1 -0
  79. package/dist/esm/condition/date/DateGreaterThanEquals.js +14 -0
  80. package/dist/esm/condition/date/DateGreaterThanEquals.js.map +1 -0
  81. package/dist/esm/condition/date/DateLessThan.d.ts +3 -0
  82. package/dist/esm/condition/date/DateLessThan.d.ts.map +1 -0
  83. package/dist/esm/condition/date/DateLessThan.js +14 -0
  84. package/dist/esm/condition/date/DateLessThan.js.map +1 -0
  85. package/dist/esm/condition/date/DateLessThanEquals.d.ts +3 -0
  86. package/dist/esm/condition/date/DateLessThanEquals.d.ts.map +1 -0
  87. package/dist/esm/condition/date/DateLessThanEquals.js +14 -0
  88. package/dist/esm/condition/date/DateLessThanEquals.js.map +1 -0
  89. package/dist/esm/condition/date/DateNotEquals.d.ts +3 -0
  90. package/dist/esm/condition/date/DateNotEquals.d.ts.map +1 -0
  91. package/dist/esm/condition/date/DateNotEquals.js +26 -0
  92. package/dist/esm/condition/date/DateNotEquals.js.map +1 -0
  93. package/dist/esm/condition/date/date.d.ts +17 -0
  94. package/dist/esm/condition/date/date.d.ts.map +1 -0
  95. package/dist/esm/condition/date/date.js +38 -0
  96. package/dist/esm/condition/date/date.js.map +1 -0
  97. package/dist/esm/condition/ipaddress/IpAddress.d.ts +3 -0
  98. package/dist/esm/condition/ipaddress/IpAddress.d.ts.map +1 -0
  99. package/dist/esm/condition/ipaddress/IpAddress.js +24 -0
  100. package/dist/esm/condition/ipaddress/IpAddress.js.map +1 -0
  101. package/dist/esm/condition/ipaddress/NotIpAddress.d.ts +3 -0
  102. package/dist/esm/condition/ipaddress/NotIpAddress.d.ts.map +1 -0
  103. package/dist/esm/condition/ipaddress/NotIpAddress.js +28 -0
  104. package/dist/esm/condition/ipaddress/NotIpAddress.js.map +1 -0
  105. package/dist/esm/condition/ipaddress/ipv4.d.ts +24 -0
  106. package/dist/esm/condition/ipaddress/ipv4.d.ts.map +1 -0
  107. package/dist/esm/condition/ipaddress/ipv4.js +54 -0
  108. package/dist/esm/condition/ipaddress/ipv4.js.map +1 -0
  109. package/dist/esm/condition/ipaddress/ipv6.d.ts +24 -0
  110. package/dist/esm/condition/ipaddress/ipv6.d.ts.map +1 -0
  111. package/dist/esm/condition/ipaddress/ipv6.js +106 -0
  112. package/dist/esm/condition/ipaddress/ipv6.js.map +1 -0
  113. package/dist/esm/condition/numeric/NumericEquals.d.ts +3 -0
  114. package/dist/esm/condition/numeric/NumericEquals.d.ts.map +1 -0
  115. package/dist/esm/condition/numeric/NumericEquals.js +14 -0
  116. package/dist/esm/condition/numeric/NumericEquals.js.map +1 -0
  117. package/dist/esm/condition/numeric/NumericGreaterThan.d.ts +3 -0
  118. package/dist/esm/condition/numeric/NumericGreaterThan.d.ts.map +1 -0
  119. package/dist/esm/condition/numeric/NumericGreaterThan.js +14 -0
  120. package/dist/esm/condition/numeric/NumericGreaterThan.js.map +1 -0
  121. package/dist/esm/condition/numeric/NumericGreaterThanEquals.d.ts +3 -0
  122. package/dist/esm/condition/numeric/NumericGreaterThanEquals.d.ts.map +1 -0
  123. package/dist/esm/condition/numeric/NumericGreaterThanEquals.js +14 -0
  124. package/dist/esm/condition/numeric/NumericGreaterThanEquals.js.map +1 -0
  125. package/dist/esm/condition/numeric/NumericLessThan.d.ts +3 -0
  126. package/dist/esm/condition/numeric/NumericLessThan.d.ts.map +1 -0
  127. package/dist/esm/condition/numeric/NumericLessThan.js +14 -0
  128. package/dist/esm/condition/numeric/NumericLessThan.js.map +1 -0
  129. package/dist/esm/condition/numeric/NumericLessThanEquals.d.ts +3 -0
  130. package/dist/esm/condition/numeric/NumericLessThanEquals.d.ts.map +1 -0
  131. package/dist/esm/condition/numeric/NumericLessThanEquals.js +14 -0
  132. package/dist/esm/condition/numeric/NumericLessThanEquals.js.map +1 -0
  133. package/dist/esm/condition/numeric/NumericNotEquals.d.ts +3 -0
  134. package/dist/esm/condition/numeric/NumericNotEquals.d.ts.map +1 -0
  135. package/dist/esm/condition/numeric/NumericNotEquals.js +26 -0
  136. package/dist/esm/condition/numeric/NumericNotEquals.js.map +1 -0
  137. package/dist/esm/condition/numeric/numeric.d.ts +17 -0
  138. package/dist/esm/condition/numeric/numeric.d.ts.map +1 -0
  139. package/dist/esm/condition/numeric/numeric.js +37 -0
  140. package/dist/esm/condition/numeric/numeric.js.map +1 -0
  141. package/dist/esm/condition/string/StringEquals.d.ts.map +1 -0
  142. package/dist/esm/condition/string/StringEquals.js.map +1 -0
  143. package/dist/esm/condition/string/StringEqualsIgnoreCase.d.ts +3 -0
  144. package/dist/esm/condition/string/StringEqualsIgnoreCase.d.ts.map +1 -0
  145. package/dist/esm/condition/string/StringEqualsIgnoreCase.js +14 -0
  146. package/dist/esm/condition/string/StringEqualsIgnoreCase.js.map +1 -0
  147. package/dist/esm/condition/string/StringLike.d.ts +3 -0
  148. package/dist/esm/condition/string/StringLike.d.ts.map +1 -0
  149. package/dist/esm/condition/string/StringLike.js +11 -0
  150. package/dist/esm/condition/string/StringLike.js.map +1 -0
  151. package/dist/esm/condition/string/StringNotEquals.d.ts +3 -0
  152. package/dist/esm/condition/string/StringNotEquals.d.ts.map +1 -0
  153. package/dist/esm/condition/string/StringNotEquals.js +11 -0
  154. package/dist/esm/condition/string/StringNotEquals.js.map +1 -0
  155. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.d.ts +3 -0
  156. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.d.ts.map +1 -0
  157. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.js +10 -0
  158. package/dist/esm/condition/string/StringNotEqualsIgnoreCase.js.map +1 -0
  159. package/dist/esm/condition/string/StringNotLike.d.ts +3 -0
  160. package/dist/esm/condition/string/StringNotLike.d.ts.map +1 -0
  161. package/dist/esm/condition/string/StringNotLike.js +10 -0
  162. package/dist/esm/condition/string/StringNotLike.js.map +1 -0
  163. package/dist/esm/core_engine/coreSimulatorEngine.d.ts +44 -0
  164. package/dist/esm/core_engine/coreSimulatorEngine.d.ts.map +1 -0
  165. package/dist/esm/core_engine/coreSimulatorEngine.js +58 -0
  166. package/dist/esm/core_engine/coreSimulatorEngine.js.map +1 -0
  167. package/dist/esm/evaluate.d.ts +1 -1
  168. package/dist/esm/evaluate.d.ts.map +1 -1
  169. package/dist/esm/index.d.ts +4 -0
  170. package/dist/esm/index.d.ts.map +1 -1
  171. package/dist/esm/index.js +3 -1
  172. package/dist/esm/index.js.map +1 -1
  173. package/dist/esm/principal/principal.d.ts +1 -2
  174. package/dist/esm/principal/principal.d.ts.map +1 -1
  175. package/dist/esm/request/request.d.ts +9 -5
  176. package/dist/esm/request/request.d.ts.map +1 -1
  177. package/dist/esm/request/request.js +4 -8
  178. package/dist/esm/request/request.js.map +1 -1
  179. package/dist/esm/request/requestResource.d.ts +7 -1
  180. package/dist/esm/request/requestResource.d.ts.map +1 -1
  181. package/dist/esm/request/requestResource.js +5 -1
  182. package/dist/esm/request/requestResource.js.map +1 -1
  183. package/dist/esm/resource/resource.d.ts +16 -1
  184. package/dist/esm/resource/resource.d.ts.map +1 -1
  185. package/dist/esm/resource/resource.js +24 -26
  186. package/dist/esm/resource/resource.js.map +1 -1
  187. package/dist/esm/services/DefaultServiceAuthorizer.d.ts +12 -0
  188. package/dist/esm/services/DefaultServiceAuthorizer.d.ts.map +1 -0
  189. package/dist/esm/services/DefaultServiceAuthorizer.js +75 -0
  190. package/dist/esm/services/DefaultServiceAuthorizer.js.map +1 -0
  191. package/dist/esm/services/ServiceAuthorizer.d.ts +11 -0
  192. package/dist/esm/services/ServiceAuthorizer.d.ts.map +1 -0
  193. package/dist/esm/services/ServiceAuthorizer.js +2 -0
  194. package/dist/esm/services/ServiceAuthorizer.js.map +1 -0
  195. package/dist/esm/simulation_engine/contextKeys.d.ts +3 -0
  196. package/dist/esm/simulation_engine/contextKeys.d.ts.map +1 -0
  197. package/dist/esm/simulation_engine/contextKeys.js +49 -0
  198. package/dist/esm/simulation_engine/contextKeys.js.map +1 -0
  199. package/dist/esm/simulation_engine/simulationEngine.d.ts +25 -0
  200. package/dist/esm/simulation_engine/simulationEngine.d.ts.map +1 -0
  201. package/dist/esm/simulation_engine/simulationEngine.js +35 -0
  202. package/dist/esm/simulation_engine/simulationEngine.js.map +1 -0
  203. package/dist/esm/util.d.ts +32 -0
  204. package/dist/esm/util.d.ts.map +1 -1
  205. package/dist/esm/util.js +78 -2
  206. package/dist/esm/util.js.map +1 -1
  207. package/package.json +1 -1
  208. package/dist/cjs/action.d.ts +0 -4
  209. package/dist/cjs/action.d.ts.map +0 -1
  210. package/dist/cjs/action.js +0 -21
  211. package/dist/cjs/action.js.map +0 -1
  212. package/dist/cjs/condition/strings/StringEquals.d.ts.map +0 -1
  213. package/dist/cjs/condition/strings/StringEquals.js +0 -14
  214. package/dist/cjs/condition/strings/StringEquals.js.map +0 -1
  215. package/dist/cjs/request/requestSupplementalData.d.ts +0 -19
  216. package/dist/cjs/request/requestSupplementalData.d.ts.map +0 -1
  217. package/dist/cjs/request/requestSupplementalData.js +0 -37
  218. package/dist/cjs/request/requestSupplementalData.js.map +0 -1
  219. package/dist/cjs/request.d.ts +0 -15
  220. package/dist/cjs/request.d.ts.map +0 -1
  221. package/dist/cjs/request.js +0 -17
  222. package/dist/cjs/request.js.map +0 -1
  223. package/dist/esm/action.d.ts +0 -4
  224. package/dist/esm/action.d.ts.map +0 -1
  225. package/dist/esm/action.js +0 -18
  226. package/dist/esm/action.js.map +0 -1
  227. package/dist/esm/condition/strings/StringEquals.d.ts +0 -3
  228. package/dist/esm/condition/strings/StringEquals.d.ts.map +0 -1
  229. package/dist/esm/condition/strings/StringEquals.js.map +0 -1
  230. package/dist/esm/request/requestSupplementalData.d.ts +0 -19
  231. package/dist/esm/request/requestSupplementalData.d.ts.map +0 -1
  232. package/dist/esm/request/requestSupplementalData.js +0 -30
  233. package/dist/esm/request/requestSupplementalData.js.map +0 -1
  234. package/dist/esm/request.d.ts +0 -15
  235. package/dist/esm/request.d.ts.map +0 -1
  236. package/dist/esm/request.js +0 -9
  237. package/dist/esm/request.js.map +0 -1
  238. /package/dist/{cjs/condition/strings → esm/condition/string}/StringEquals.d.ts +0 -0
  239. /package/dist/esm/condition/{strings → string}/StringEquals.js +0 -0
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Determines if a given IP address is within a specified CIDR block.
3
+ *
4
+ * @param ip - The IP address to check (e.g., '192.168.1.10').
5
+ * @param cidr - The CIDR block (e.g., '192.168.1.0/24').
6
+ * @returns True if the IP address is within the CIDR block; otherwise, false.
7
+ * @throws Error if either the IP address or CIDR block is invalid.
8
+ */
9
+ export function isIpInCidrV4(ip, cidr) {
10
+ if (!isValidIpV4(ip)) {
11
+ throw new Error('Invalid IP address');
12
+ }
13
+ if (!isValidCidrV4(cidr)) {
14
+ throw new Error('Invalid CIDR block');
15
+ }
16
+ const [cidrIp, prefixLengthStr] = cidr.split('/');
17
+ const prefixLength = parseInt(prefixLengthStr, 10);
18
+ const ipLong = ipV4ToLong(ip);
19
+ const cidrIpLong = ipV4ToLong(cidrIp);
20
+ const mask = -1 << (32 - prefixLength);
21
+ return (ipLong & mask) === (cidrIpLong & mask);
22
+ }
23
+ /**
24
+ * Validates an IPv4 address.
25
+ *
26
+ * @param ip - The IP address to validate.
27
+ * @returns True if the IP address is valid; otherwise, false.
28
+ */
29
+ export function isValidIpV4(ip) {
30
+ const ipRegex = /^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}$/;
31
+ return ipRegex.test(ip);
32
+ }
33
+ /**
34
+ * Validates an IPv4 CIDR block.
35
+ *
36
+ * @param cidr - The CIDR block to validate.
37
+ * @returns True if the CIDR block is valid; otherwise, false.
38
+ */
39
+ export function isValidCidrV4(cidr) {
40
+ const cidrRegex = /^((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3})\/([0-9]|[1-2][0-9]|3[0-2])$/;
41
+ return cidrRegex.test(cidr);
42
+ }
43
+ /**
44
+ * Converts an IPv4 address to a 32-bit number.
45
+ *
46
+ * @param ip - The IP address to convert.
47
+ * @returns The numeric representation of the IP address.
48
+ */
49
+ function ipV4ToLong(ip) {
50
+ return ip.split('.').reduce((acc, octet) => {
51
+ return (acc << 8) + parseInt(octet, 10);
52
+ }, 0) >>> 0;
53
+ }
54
+ //# sourceMappingURL=ipv4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipv4.js","sourceRoot":"","sources":["../../../../src/condition/ipaddress/ipv4.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,IAAY;IACnD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,CAAC;IAEvC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,MAAM,OAAO,GACX,+EAA+E,CAAC;IAClF,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,SAAS,GACb,4GAA4G,CAAC;IAC/G,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACzC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACd,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Determines if a given IPv6 address is within a specified CIDR block.
3
+ *
4
+ * @param ip - The IPv6 address to check (e.g., '2001:0db8:85a3::8a2e:0370:7334').
5
+ * @param cidr - The IPv6 CIDR block (e.g., '2001:0db8::/32').
6
+ * @returns True if the IP address is within the CIDR block; otherwise, false.
7
+ * @throws Error if either the IP address or CIDR block is invalid.
8
+ */
9
+ export declare function isIpInCidrV6(ip: string, cidr: string): boolean;
10
+ /**
11
+ * Validates an IPv6 address.
12
+ *
13
+ * @param ip - The IPv6 address to validate.
14
+ * @returns True if the IPv6 address is valid; otherwise, false.
15
+ */
16
+ export declare function isValidIpV6(ip: string): boolean;
17
+ /**
18
+ * Validates an IPv6 CIDR block.
19
+ *
20
+ * @param cidr - The IPv6 CIDR block to validate.
21
+ * @returns True if the CIDR block is valid; otherwise, false.
22
+ */
23
+ export declare function isValidIpCidrV6(cidr: string): boolean;
24
+ //# sourceMappingURL=ipv6.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipv6.d.ts","sourceRoot":"","sources":["../../../../src/condition/ipaddress/ipv6.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAkB9D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAuB/C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAarD"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Determines if a given IPv6 address is within a specified CIDR block.
3
+ *
4
+ * @param ip - The IPv6 address to check (e.g., '2001:0db8:85a3::8a2e:0370:7334').
5
+ * @param cidr - The IPv6 CIDR block (e.g., '2001:0db8::/32').
6
+ * @returns True if the IP address is within the CIDR block; otherwise, false.
7
+ * @throws Error if either the IP address or CIDR block is invalid.
8
+ */
9
+ export function isIpInCidrV6(ip, cidr) {
10
+ if (!isValidIpV6(ip)) {
11
+ throw new Error('Invalid IPv6 address');
12
+ }
13
+ if (!isValidIpCidrV6(cidr)) {
14
+ throw new Error('Invalid IPv6 CIDR block');
15
+ }
16
+ const [cidrIp, prefixLengthStr] = cidr.split('/');
17
+ const prefixLength = parseInt(prefixLengthStr, 10);
18
+ const ipBigInt = ipv6ToBigInt(ip);
19
+ const cidrIpBigInt = ipv6ToBigInt(cidrIp);
20
+ const mask = BigInt(-1) << BigInt(128 - prefixLength);
21
+ return (ipBigInt & mask) === (cidrIpBigInt & mask);
22
+ }
23
+ /**
24
+ * Validates an IPv6 address.
25
+ *
26
+ * @param ip - The IPv6 address to validate.
27
+ * @returns True if the IPv6 address is valid; otherwise, false.
28
+ */
29
+ export function isValidIpV6(ip) {
30
+ const ipv6Regex = new RegExp('^(' +
31
+ '(([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|' +
32
+ '(([0-9A-Fa-f]{1,4}:){1,7}:)|' +
33
+ '(([0-9A-Fa-f]{1,4}:){1,6}:[0-9A-Fa-f]{1,4})|' +
34
+ '(([0-9A-Fa-f]{1,4}:){1,5}(:[0-9A-Fa-f]{1,4}){1,2})|' +
35
+ '(([0-9A-Fa-f]{1,4}:){1,4}(:[0-9A-Fa-f]{1,4}){1,3})|' +
36
+ '(([0-9A-Fa-f]{1,4}:){1,3}(:[0-9A-Fa-f]{1,4}){1,4})|' +
37
+ '(([0-9A-Fa-f]{1,4}:){1,2}(:[0-9A-Fa-f]{1,4}){1,5})|' +
38
+ '([0-9A-Fa-f]{1,4}:)((:[0-9A-Fa-f]{1,4}){1,6})|' +
39
+ '(:)((:[0-9A-Fa-f]{1,4}){1,7}|:)|' +
40
+ 'fe80:(:[0-9A-Fa-f]{0,4}){0,4}%[0-9a-zA-Z]{1,}|' +
41
+ '::(ffff(:0{1,4}){0,1}:){0,1}' +
42
+ '(([0-9A-Fa-f]{1,4}:){1,4}:)?' +
43
+ '((25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])\.){3,3}' +
44
+ '(25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])|' +
45
+ '([0-9A-Fa-f]{1,4}:){1,4}:' +
46
+ '((25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])\.){3,3}' +
47
+ '(25[0-5]|(2[0-4]|1{0,1}[0-9])?[0-9])' +
48
+ ')$');
49
+ return ipv6Regex.test(ip);
50
+ }
51
+ /**
52
+ * Validates an IPv6 CIDR block.
53
+ *
54
+ * @param cidr - The IPv6 CIDR block to validate.
55
+ * @returns True if the CIDR block is valid; otherwise, false.
56
+ */
57
+ export function isValidIpCidrV6(cidr) {
58
+ const parts = cidr.split('/');
59
+ if (parts.length !== 2) {
60
+ return false;
61
+ }
62
+ const [cidrIp, prefixLengthStr] = parts;
63
+ if (!isValidIpV6(cidrIp)) {
64
+ return false;
65
+ }
66
+ const prefixLength = parseInt(prefixLengthStr, 10);
67
+ return prefixLength >= 0 && prefixLength <= 128;
68
+ }
69
+ /**
70
+ * Converts an IPv6 address to a BigInt representation.
71
+ *
72
+ * @param ip - The IPv6 address to convert.
73
+ * @returns A BigInt representing the IPv6 address.
74
+ */
75
+ function ipv6ToBigInt(ip) {
76
+ const fullIp = expandIpv6Address(ip);
77
+ const parts = fullIp.split(':');
78
+ let result = BigInt(0);
79
+ for (const part of parts) {
80
+ result = (result << BigInt(16)) + BigInt(parseInt(part, 16));
81
+ }
82
+ return result;
83
+ }
84
+ /**
85
+ * Expands an abbreviated IPv6 address to its full form.
86
+ *
87
+ * @param ip - The IPv6 address to expand.
88
+ * @returns The expanded IPv6 address.
89
+ */
90
+ function expandIpv6Address(ip) {
91
+ // Replace '::' with the appropriate number of ':0'
92
+ const numColons = (ip.match(/:/g) || []).length;
93
+ const numMissingSections = 8 - numColons + (ip.includes('::') ? 1 : 0);
94
+ if (ip.startsWith('::')) {
95
+ ip = ip.replace('::', '0:'.repeat(numMissingSections));
96
+ }
97
+ else if (ip.endsWith('::')) {
98
+ ip = ip.replace('::', ':0'.repeat(numMissingSections));
99
+ }
100
+ else if (ip.includes('::')) {
101
+ ip = ip.replace('::', ':' + '0:'.repeat(numMissingSections - 1));
102
+ }
103
+ const parts = ip.split(':').map(part => part.padStart(4, '0'));
104
+ return parts.join(':');
105
+ }
106
+ //# sourceMappingURL=ipv6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipv6.js","sourceRoot":"","sources":["../../../../src/condition/ipaddress/ipv6.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const NumericEquals: BaseConditionOperator;
3
+ //# sourceMappingURL=NumericEquals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumericEquals.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericEquals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,aAAa,EAAE,qBAY3B,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { checkIfNumeric } from "./numeric.js";
2
+ export const NumericEquals = {
3
+ name: 'NumericEquals',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return policyValues.some(policyValue => {
6
+ return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
+ return policyNumber == testNumber;
8
+ });
9
+ });
10
+ },
11
+ allowsVariables: false,
12
+ allowsWildcards: false
13
+ };
14
+ //# sourceMappingURL=NumericEquals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumericEquals.js","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAA0B;IAClD,IAAI,EAAE,eAAe;IAErB,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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const NumericGreaterThan: BaseConditionOperator;
3
+ //# sourceMappingURL=NumericGreaterThan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumericGreaterThan.d.ts","sourceRoot":"","sources":["../../../../src/condition/numeric/NumericGreaterThan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,eAAO,MAAM,kBAAkB,EAAE,qBAYhC,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { checkIfNumeric } from "./numeric.js";
2
+ export const NumericGreaterThan = {
3
+ name: 'NumericGreaterThan',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return policyValues.some(policyValue => {
6
+ return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
+ return policyNumber > testNumber;
8
+ });
9
+ });
10
+ },
11
+ allowsVariables: false,
12
+ allowsWildcards: false
13
+ };
14
+ //# sourceMappingURL=NumericGreaterThan.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const NumericGreaterThanEquals: BaseConditionOperator;
3
+ //# sourceMappingURL=NumericGreaterThanEquals.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { checkIfNumeric } from "./numeric.js";
2
+ export const NumericGreaterThanEquals = {
3
+ name: 'NumericGreaterThanEquals',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return policyValues.some(policyValue => {
6
+ return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
+ return policyNumber >= testNumber;
8
+ });
9
+ });
10
+ },
11
+ allowsVariables: false,
12
+ allowsWildcards: false
13
+ };
14
+ //# sourceMappingURL=NumericGreaterThanEquals.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const NumericLessThan: BaseConditionOperator;
3
+ //# sourceMappingURL=NumericLessThan.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { checkIfNumeric } from "./numeric.js";
2
+ export const NumericLessThan = {
3
+ name: 'NumericLessThan',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return policyValues.some(policyValue => {
6
+ return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
+ return policyNumber > testNumber;
8
+ });
9
+ });
10
+ },
11
+ allowsVariables: false,
12
+ allowsWildcards: false
13
+ };
14
+ //# sourceMappingURL=NumericLessThan.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const NumericLessThanEquals: BaseConditionOperator;
3
+ //# sourceMappingURL=NumericLessThanEquals.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { checkIfNumeric } from "./numeric.js";
2
+ export const NumericLessThanEquals = {
3
+ name: 'NumericLessThanEquals',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return policyValues.some(policyValue => {
6
+ return checkIfNumeric(policyValue, keyValue, (policyNumber, testNumber) => {
7
+ return policyNumber >= testNumber;
8
+ });
9
+ });
10
+ },
11
+ allowsVariables: false,
12
+ allowsWildcards: false
13
+ };
14
+ //# sourceMappingURL=NumericLessThanEquals.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const NumericNotEquals: BaseConditionOperator;
3
+ //# sourceMappingURL=NumericNotEquals.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,26 @@
1
+ import { isDefined, isNotDefined } from "../../util.js";
2
+ import { parseNumber } from "./numeric.js";
3
+ export const NumericNotEquals = {
4
+ name: 'NumericNotEquals',
5
+ 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);
22
+ },
23
+ allowsVariables: false,
24
+ allowsWildcards: false
25
+ };
26
+ //# sourceMappingURL=NumericNotEquals.js.map
@@ -0,0 +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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Parse a string to a number, returns undefined if the string is not a number
3
+ *
4
+ * @param value the string to parse
5
+ * @returns the number or undefined
6
+ */
7
+ export declare function parseNumber(value: string): number | undefined;
8
+ /**
9
+ * Test two values to see if they are numbers, if they are, run the check function
10
+ *
11
+ * @param policyValue
12
+ * @param testValue
13
+ * @param check
14
+ * @returns
15
+ */
16
+ export declare function checkIfNumeric(policyValue: string, testValue: string, check: (policyValue: number, testValue: number) => boolean): boolean;
17
+ //# sourceMappingURL=numeric.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,37 @@
1
+ import { isNotDefined } from "../../util.js";
2
+ /**
3
+ * Parse a string to a number, returns undefined if the string is not a number
4
+ *
5
+ * @param value the string to parse
6
+ * @returns the number or undefined
7
+ */
8
+ export function parseNumber(value) {
9
+ let number = undefined;
10
+ if (value.includes('.')) {
11
+ number = parseFloat(value);
12
+ }
13
+ else {
14
+ number = parseInt(value, 10);
15
+ }
16
+ if (isNotDefined(number) || isNaN(number)) {
17
+ return undefined;
18
+ }
19
+ return number;
20
+ }
21
+ /**
22
+ * Test two values to see if they are numbers, if they are, run the check function
23
+ *
24
+ * @param policyValue
25
+ * @param testValue
26
+ * @param check
27
+ * @returns
28
+ */
29
+ export function checkIfNumeric(policyValue, testValue, check) {
30
+ const policyNumber = parseNumber(policyValue);
31
+ const testNumber = parseNumber(testValue);
32
+ if (isNotDefined(policyNumber) || isNotDefined(testNumber)) {
33
+ return false;
34
+ }
35
+ return check(policyNumber, testNumber);
36
+ }
37
+ //# sourceMappingURL=numeric.js.map
@@ -0,0 +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"}
@@ -0,0 +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"}
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const StringEqualsIgnoreCase: BaseConditionOperator;
3
+ //# sourceMappingURL=StringEqualsIgnoreCase.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { convertIamStringToRegex } from "../../util.js";
2
+ export const StringEqualsIgnoreCase = {
3
+ name: 'StringEqualsIgnoreCase',
4
+ matches: (request, keyValue, policyValues) => {
5
+ const patterns = policyValues.map(value => {
6
+ const pattern = convertIamStringToRegex(value, request, { replaceWildcards: false });
7
+ return new RegExp(pattern, 'i');
8
+ });
9
+ return patterns.some(pattern => pattern.test(keyValue));
10
+ },
11
+ allowsVariables: true,
12
+ allowsWildcards: false
13
+ };
14
+ //# sourceMappingURL=StringEqualsIgnoreCase.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const StringLike: BaseConditionOperator;
3
+ //# sourceMappingURL=StringLike.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ import { convertIamStringToRegex } from "../../util.js";
2
+ export const StringLike = {
3
+ name: 'StringLike',
4
+ matches: (request, keyValue, policyValues) => {
5
+ const patterns = policyValues.map(value => convertIamStringToRegex(value, request, { replaceWildcards: true }));
6
+ return patterns.some(pattern => pattern.test(keyValue));
7
+ },
8
+ allowsVariables: true,
9
+ allowsWildcards: true
10
+ };
11
+ //# sourceMappingURL=StringLike.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const StringNotEquals: BaseConditionOperator;
3
+ //# sourceMappingURL=StringNotEquals.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ import { convertIamStringToRegex } from "../../util.js";
2
+ export const StringNotEquals = {
3
+ name: 'StringNotEquals',
4
+ matches: (request, keyValue, policyValues) => {
5
+ const patterns = policyValues.map(value => convertIamStringToRegex(value, request, { replaceWildcards: false }));
6
+ return !patterns.some(pattern => pattern.test(keyValue));
7
+ },
8
+ allowsVariables: true,
9
+ allowsWildcards: false
10
+ };
11
+ //# sourceMappingURL=StringNotEquals.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const StringNotEqualsIgnoreCase: BaseConditionOperator;
3
+ //# sourceMappingURL=StringNotEqualsIgnoreCase.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ import { StringEqualsIgnoreCase } from "./StringEqualsIgnoreCase.js";
2
+ export const StringNotEqualsIgnoreCase = {
3
+ name: 'StringNotEqualsIgnoreCase',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return !StringEqualsIgnoreCase.matches(request, keyValue, policyValues);
6
+ },
7
+ allowsVariables: true,
8
+ allowsWildcards: false
9
+ };
10
+ //# sourceMappingURL=StringNotEqualsIgnoreCase.js.map
@@ -0,0 +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"}
@@ -0,0 +1,3 @@
1
+ import { BaseConditionOperator } from "../BaseConditionOperator.js";
2
+ export declare const StringNotLike: BaseConditionOperator;
3
+ //# sourceMappingURL=StringNotLike.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,10 @@
1
+ import { StringLike } from "./StringLike.js";
2
+ export const StringNotLike = {
3
+ name: 'StringNotLike',
4
+ matches: (request, keyValue, policyValues) => {
5
+ return !StringLike.matches(request, keyValue, policyValues);
6
+ },
7
+ allowsVariables: true,
8
+ allowsWildcards: true
9
+ };
10
+ //# sourceMappingURL=StringNotLike.js.map
@@ -0,0 +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"}