@prosopo/provider 3.3.0 → 3.12.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 (377) hide show
  1. package/CHANGELOG.md +718 -0
  2. package/coverage/base.css +224 -0
  3. package/coverage/block-navigation.js +87 -0
  4. package/coverage/clover.xml +4278 -0
  5. package/coverage/coverage-final.json +42 -0
  6. package/coverage/favicon.png +0 -0
  7. package/coverage/index.html +311 -0
  8. package/coverage/prettify.css +1 -0
  9. package/coverage/prettify.js +2 -0
  10. package/coverage/sort-arrow-sprite.png +0 -0
  11. package/coverage/sorter.js +210 -0
  12. package/coverage/src/api/admin/apiAdminRoutesProvider.ts.html +214 -0
  13. package/coverage/src/api/admin/apiRegisterSiteKeyEndpoint.ts.html +259 -0
  14. package/coverage/src/api/admin/apiRemoveDetectorKeyEndpoint.ts.html +283 -0
  15. package/coverage/src/api/admin/apiToggleMaintenanceModeEndpoint.ts.html +334 -0
  16. package/coverage/src/api/admin/apiUpdateDetectorKeyEndpoint.ts.html +298 -0
  17. package/coverage/src/api/admin/createApiAdminRoutesProvider.ts.html +163 -0
  18. package/coverage/src/api/admin/index.html +191 -0
  19. package/coverage/src/api/blacklistRequestInspector.ts.html +751 -0
  20. package/coverage/src/api/block.ts.html +187 -0
  21. package/coverage/src/api/captcha.ts.html +2803 -0
  22. package/coverage/src/api/domainMiddleware.ts.html +493 -0
  23. package/coverage/src/api/headerCheckMiddleware.ts.html +256 -0
  24. package/coverage/src/api/ignoreMiddleware.ts.html +181 -0
  25. package/coverage/src/api/index.html +266 -0
  26. package/coverage/src/api/ja4Middleware.ts.html +400 -0
  27. package/coverage/src/api/public.ts.html +343 -0
  28. package/coverage/src/api/robotsMiddleware.ts.html +157 -0
  29. package/coverage/src/api/validateAddress.ts.html +214 -0
  30. package/coverage/src/api/verify.ts.html +871 -0
  31. package/coverage/src/compositeIpAddress.ts.html +340 -0
  32. package/coverage/src/index.html +161 -0
  33. package/coverage/src/index.ts.html +175 -0
  34. package/coverage/src/pairs.ts.html +238 -0
  35. package/coverage/src/rules/index.html +116 -0
  36. package/coverage/src/rules/lang.ts.html +187 -0
  37. package/coverage/src/schedulers/captchaScheduler.ts.html +250 -0
  38. package/coverage/src/schedulers/getClientList.ts.html +271 -0
  39. package/coverage/src/schedulers/index.html +131 -0
  40. package/coverage/src/services/index.html +131 -0
  41. package/coverage/src/services/ipComparison.ts.html +685 -0
  42. package/coverage/src/services/ipInfo.ts.html +490 -0
  43. package/coverage/src/tasks/captchaManager.ts.html +865 -0
  44. package/coverage/src/tasks/client/clientTasks.ts.html +1381 -0
  45. package/coverage/src/tasks/client/index.html +116 -0
  46. package/coverage/src/tasks/dataset/datasetTasks.ts.html +268 -0
  47. package/coverage/src/tasks/dataset/datasetTasksUtils.ts.html +271 -0
  48. package/coverage/src/tasks/dataset/index.html +131 -0
  49. package/coverage/src/tasks/detection/decodePayload.js.html +127 -0
  50. package/coverage/src/tasks/detection/getBotScore.ts.html +244 -0
  51. package/coverage/src/tasks/detection/index.html +131 -0
  52. package/coverage/src/tasks/frictionless/frictionlessTasks.ts.html +1216 -0
  53. package/coverage/src/tasks/frictionless/frictionlessTasksUtils.ts.html +247 -0
  54. package/coverage/src/tasks/frictionless/index.html +131 -0
  55. package/coverage/src/tasks/imgCaptcha/imgCaptchaTasks.ts.html +1972 -0
  56. package/coverage/src/tasks/imgCaptcha/imgCaptchaTasksUtils.ts.html +232 -0
  57. package/coverage/src/tasks/imgCaptcha/index.html +131 -0
  58. package/coverage/src/tasks/index.html +146 -0
  59. package/coverage/src/tasks/index.ts.html +127 -0
  60. package/coverage/src/tasks/powCaptcha/index.html +131 -0
  61. package/coverage/src/tasks/powCaptcha/powTasks.ts.html +961 -0
  62. package/coverage/src/tasks/powCaptcha/powTasksUtils.ts.html +244 -0
  63. package/coverage/src/tasks/tasks.ts.html +388 -0
  64. package/coverage/src/util.ts.html +1627 -0
  65. package/coverage/src/utils/hashUserAgent.ts.html +184 -0
  66. package/coverage/src/utils/index.html +116 -0
  67. package/dist/api/admin/apiAdminRoutesProvider.d.ts +9 -0
  68. package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +1 -0
  69. package/dist/api/admin/apiAdminRoutesProvider.js +13 -18
  70. package/dist/api/admin/apiAdminRoutesProvider.js.map +1 -0
  71. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts +14 -0
  72. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts.map +1 -0
  73. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js.map +1 -0
  74. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +23 -0
  75. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -0
  76. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +7 -4
  77. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +1 -0
  78. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts +13 -0
  79. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts.map +1 -0
  80. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js +40 -0
  81. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js.map +1 -0
  82. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +14 -0
  83. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +1 -0
  84. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +1 -0
  85. package/dist/api/admin/createApiAdminRoutesProvider.d.ts +4 -0
  86. package/dist/api/admin/createApiAdminRoutesProvider.d.ts.map +1 -0
  87. package/dist/api/admin/createApiAdminRoutesProvider.js.map +1 -0
  88. package/dist/api/blacklistRequestInspector.d.ts +19 -0
  89. package/dist/api/blacklistRequestInspector.d.ts.map +1 -0
  90. package/dist/api/blacklistRequestInspector.js +14 -12
  91. package/dist/api/blacklistRequestInspector.js.map +1 -0
  92. package/dist/api/block.d.ts +3 -0
  93. package/dist/api/block.d.ts.map +1 -0
  94. package/dist/api/block.js.map +1 -0
  95. package/dist/api/captcha.d.ts +4 -0
  96. package/dist/api/captcha.d.ts.map +1 -0
  97. package/dist/api/captcha.js +226 -48
  98. package/dist/api/captcha.js.map +1 -0
  99. package/dist/api/domainMiddleware.d.ts +4 -0
  100. package/dist/api/domainMiddleware.d.ts.map +1 -0
  101. package/dist/api/domainMiddleware.js +8 -8
  102. package/dist/api/domainMiddleware.js.map +1 -0
  103. package/dist/api/headerCheckMiddleware.d.ts +4 -0
  104. package/dist/api/headerCheckMiddleware.d.ts.map +1 -0
  105. package/dist/api/headerCheckMiddleware.js +4 -0
  106. package/dist/api/headerCheckMiddleware.js.map +1 -0
  107. package/dist/api/ignoreMiddleware.d.ts +3 -0
  108. package/dist/api/ignoreMiddleware.d.ts.map +1 -0
  109. package/dist/api/ignoreMiddleware.js +4 -1
  110. package/dist/api/ignoreMiddleware.js.map +1 -0
  111. package/dist/api/ja4Middleware.d.ts +10 -0
  112. package/dist/api/ja4Middleware.d.ts.map +1 -0
  113. package/dist/api/ja4Middleware.js +5 -23
  114. package/dist/api/ja4Middleware.js.map +1 -0
  115. package/dist/api/public.d.ts +4 -0
  116. package/dist/api/public.d.ts.map +1 -0
  117. package/dist/api/public.js +26 -3
  118. package/dist/api/public.js.map +1 -0
  119. package/dist/api/robotsMiddleware.d.ts +3 -0
  120. package/dist/api/robotsMiddleware.d.ts.map +1 -0
  121. package/dist/api/robotsMiddleware.js.map +1 -0
  122. package/dist/api/validateAddress.d.ts +5 -0
  123. package/dist/api/validateAddress.d.ts.map +1 -0
  124. package/dist/api/validateAddress.js.map +1 -0
  125. package/dist/api/verify.d.ts +4 -0
  126. package/dist/api/verify.d.ts.map +1 -0
  127. package/dist/api/verify.js +27 -3
  128. package/dist/api/verify.js.map +1 -0
  129. package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +13 -18
  130. package/dist/cjs/api/admin/apiRegisterSiteKeyEndpoint.cjs +2 -1
  131. package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +9 -5
  132. package/dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs +41 -0
  133. package/dist/cjs/api/blacklistRequestInspector.cjs +13 -11
  134. package/dist/cjs/api/captcha.cjs +226 -48
  135. package/dist/cjs/api/domainMiddleware.cjs +8 -8
  136. package/dist/cjs/api/headerCheckMiddleware.cjs +4 -0
  137. package/dist/cjs/api/ignoreMiddleware.cjs +3 -0
  138. package/dist/cjs/api/ja4Middleware.cjs +6 -23
  139. package/dist/cjs/api/public.cjs +26 -3
  140. package/dist/cjs/api/verify.cjs +27 -3
  141. package/dist/cjs/compositeIpAddress.cjs +53 -0
  142. package/dist/cjs/index.cjs +7 -0
  143. package/dist/cjs/pairs.cjs +27 -0
  144. package/dist/cjs/services/ipComparison.cjs +123 -0
  145. package/dist/cjs/services/ipInfo.cjs +87 -0
  146. package/dist/cjs/tasks/captchaManager.cjs +41 -10
  147. package/dist/cjs/tasks/client/clientTasks.cjs +31 -43
  148. package/dist/cjs/tasks/detection/decodePayload.cjs +616 -281
  149. package/dist/cjs/tasks/detection/getBotScore.cjs +28 -4
  150. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +227 -36
  151. package/dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs +17 -0
  152. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +78 -30
  153. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +49 -21
  154. package/dist/cjs/util.cjs +262 -17
  155. package/dist/cjs/utils/hashUserAgent.cjs +10 -0
  156. package/dist/compositeIpAddress.d.ts +5 -0
  157. package/dist/compositeIpAddress.d.ts.map +1 -0
  158. package/dist/compositeIpAddress.js +53 -0
  159. package/dist/compositeIpAddress.js.map +1 -0
  160. package/dist/index.d.ts +17 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +8 -1
  163. package/dist/index.js.map +1 -0
  164. package/dist/pairs.d.ts +3 -0
  165. package/dist/pairs.d.ts.map +1 -0
  166. package/dist/pairs.js +27 -0
  167. package/dist/pairs.js.map +1 -0
  168. package/dist/rules/lang.d.ts +3 -0
  169. package/dist/rules/lang.d.ts.map +1 -0
  170. package/dist/rules/lang.js.map +1 -0
  171. package/dist/schedulers/captchaScheduler.d.ts +4 -0
  172. package/dist/schedulers/captchaScheduler.d.ts.map +1 -0
  173. package/dist/schedulers/captchaScheduler.js.map +1 -0
  174. package/dist/schedulers/getClientList.d.ts +4 -0
  175. package/dist/schedulers/getClientList.d.ts.map +1 -0
  176. package/dist/schedulers/getClientList.js.map +1 -0
  177. package/dist/schedulers/setClientEntropy.d.ts +4 -0
  178. package/dist/schedulers/setClientEntropy.d.ts.map +1 -0
  179. package/dist/schedulers/setClientEntropy.js +31 -0
  180. package/dist/schedulers/setClientEntropy.js.map +1 -0
  181. package/dist/services/ipComparison.d.ts +3 -0
  182. package/dist/services/ipComparison.d.ts.map +1 -0
  183. package/dist/services/ipComparison.js +123 -0
  184. package/dist/services/ipComparison.js.map +1 -0
  185. package/dist/services/ipInfo.d.ts +3 -0
  186. package/dist/services/ipInfo.d.ts.map +1 -0
  187. package/dist/services/ipInfo.js +87 -0
  188. package/dist/services/ipInfo.js.map +1 -0
  189. package/dist/tasks/captchaManager.d.ts +34 -0
  190. package/dist/tasks/captchaManager.d.ts.map +1 -0
  191. package/dist/tasks/captchaManager.js +39 -9
  192. package/dist/tasks/captchaManager.js.map +1 -0
  193. package/dist/tasks/client/clientTasks.d.ts +21 -0
  194. package/dist/tasks/client/clientTasks.d.ts.map +1 -0
  195. package/dist/tasks/client/clientTasks.js +31 -43
  196. package/dist/tasks/client/clientTasks.js.map +1 -0
  197. package/dist/tasks/dataset/datasetTasks.d.ts +13 -0
  198. package/dist/tasks/dataset/datasetTasks.d.ts.map +1 -0
  199. package/dist/tasks/dataset/datasetTasks.js.map +1 -0
  200. package/dist/tasks/dataset/datasetTasksUtils.d.ts +3 -0
  201. package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +1 -0
  202. package/dist/tasks/dataset/datasetTasksUtils.js.map +1 -0
  203. package/dist/tasks/detection/decodePayload.d.ts +5 -0
  204. package/dist/tasks/detection/decodePayload.d.ts.map +1 -0
  205. package/dist/tasks/detection/decodePayload.js +616 -281
  206. package/dist/tasks/detection/decodePayload.js.map +1 -0
  207. package/dist/tasks/detection/getBotScore.d.ts +20 -0
  208. package/dist/tasks/detection/getBotScore.d.ts.map +1 -0
  209. package/dist/tasks/detection/getBotScore.js +29 -5
  210. package/dist/tasks/detection/getBotScore.js.map +1 -0
  211. package/dist/tasks/frictionless/frictionlessTasks.d.ts +67 -0
  212. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -0
  213. package/dist/tasks/frictionless/frictionlessTasks.js +227 -36
  214. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -0
  215. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +6 -0
  216. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +1 -0
  217. package/dist/tasks/frictionless/frictionlessTasksUtils.js +18 -1
  218. package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +1 -0
  219. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +30 -0
  220. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -0
  221. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +80 -32
  222. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -0
  223. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +7 -0
  224. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -0
  225. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -0
  226. package/dist/tasks/index.d.ts +2 -0
  227. package/dist/tasks/index.d.ts.map +1 -0
  228. package/dist/tasks/index.js.map +1 -0
  229. package/dist/tasks/powCaptcha/powTasks.d.ts +17 -0
  230. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -0
  231. package/dist/tasks/powCaptcha/powTasks.js +50 -22
  232. package/dist/tasks/powCaptcha/powTasks.js.map +1 -0
  233. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +3 -0
  234. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +1 -0
  235. package/dist/tasks/powCaptcha/powTasksUtils.js.map +1 -0
  236. package/dist/tasks/tasks.d.ts +25 -0
  237. package/dist/tasks/tasks.d.ts.map +1 -0
  238. package/dist/tasks/tasks.js.map +1 -0
  239. package/dist/tests/index.d.ts +2 -0
  240. package/dist/tests/index.d.ts.map +1 -0
  241. package/dist/tests/index.js +2 -0
  242. package/dist/tests/index.js.map +1 -0
  243. package/dist/tests/integration/accessRules.integration.test.d.ts +2 -0
  244. package/dist/tests/integration/accessRules.integration.test.d.ts.map +1 -0
  245. package/dist/tests/integration/accessRules.integration.test.js +588 -0
  246. package/dist/tests/integration/accessRules.integration.test.js.map +1 -0
  247. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts +2 -0
  248. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts.map +1 -0
  249. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +60 -0
  250. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +1 -0
  251. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts +2 -0
  252. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts.map +1 -0
  253. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +368 -0
  254. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +1 -0
  255. package/dist/tests/integration/imgCaptcha.integration.test.d.ts +2 -0
  256. package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +1 -0
  257. package/dist/tests/integration/imgCaptcha.integration.test.js +272 -0
  258. package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -0
  259. package/dist/tests/integration/ipValidation.integration.test.d.ts +2 -0
  260. package/dist/tests/integration/ipValidation.integration.test.d.ts.map +1 -0
  261. package/dist/tests/integration/ipValidation.integration.test.js +75 -0
  262. package/dist/tests/integration/ipValidation.integration.test.js.map +1 -0
  263. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +32 -0
  264. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +1 -0
  265. package/dist/tests/integration/mocks/solvedTestCaptchas.js +1046 -0
  266. package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +1 -0
  267. package/dist/tests/integration/powCaptcha.integration.test.d.ts +2 -0
  268. package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +1 -0
  269. package/dist/tests/integration/powCaptcha.integration.test.js +308 -0
  270. package/dist/tests/integration/powCaptcha.integration.test.js.map +1 -0
  271. package/dist/tests/integration/registerSitekey.d.ts +3 -0
  272. package/dist/tests/integration/registerSitekey.d.ts.map +1 -0
  273. package/dist/tests/integration/registerSitekey.js +24 -0
  274. package/dist/tests/integration/registerSitekey.js.map +1 -0
  275. package/dist/tests/integration/userAccessPolicy.d.ts +2 -0
  276. package/dist/tests/integration/userAccessPolicy.d.ts.map +1 -0
  277. package/dist/tests/integration/userAccessPolicy.js +2 -0
  278. package/dist/tests/integration/userAccessPolicy.js.map +1 -0
  279. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts +2 -0
  280. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts.map +1 -0
  281. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +60 -0
  282. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +1 -0
  283. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts +2 -0
  284. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts.map +1 -0
  285. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js +43 -0
  286. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js.map +1 -0
  287. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts +2 -0
  288. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts.map +1 -0
  289. package/dist/tests/unit/api/ja4Middleware.unit.test.js +57 -0
  290. package/dist/tests/unit/api/ja4Middleware.unit.test.js.map +1 -0
  291. package/dist/tests/unit/compositeIpAddress.unit.test.d.ts +2 -0
  292. package/dist/tests/unit/compositeIpAddress.unit.test.d.ts.map +1 -0
  293. package/dist/tests/unit/compositeIpAddress.unit.test.js +86 -0
  294. package/dist/tests/unit/compositeIpAddress.unit.test.js.map +1 -0
  295. package/dist/tests/unit/pairs.unit.test.d.ts +2 -0
  296. package/dist/tests/unit/pairs.unit.test.d.ts.map +1 -0
  297. package/dist/tests/unit/pairs.unit.test.js +83 -0
  298. package/dist/tests/unit/pairs.unit.test.js.map +1 -0
  299. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +2 -0
  300. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +1 -0
  301. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +75 -0
  302. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -0
  303. package/dist/tests/unit/services/ipComparison.unit.test.d.ts +2 -0
  304. package/dist/tests/unit/services/ipComparison.unit.test.d.ts.map +1 -0
  305. package/dist/tests/unit/services/ipComparison.unit.test.js +258 -0
  306. package/dist/tests/unit/services/ipComparison.unit.test.js.map +1 -0
  307. package/dist/tests/unit/services/ipInfo.unit.test.d.ts +2 -0
  308. package/dist/tests/unit/services/ipInfo.unit.test.d.ts.map +1 -0
  309. package/dist/tests/unit/services/ipInfo.unit.test.js +210 -0
  310. package/dist/tests/unit/services/ipInfo.unit.test.js.map +1 -0
  311. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts +2 -0
  312. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts.map +1 -0
  313. package/dist/tests/unit/tasks/captchaManager.unit.test.js +311 -0
  314. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -0
  315. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +2 -0
  316. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +1 -0
  317. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +289 -0
  318. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -0
  319. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +2 -0
  320. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +1 -0
  321. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +92 -0
  322. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +1 -0
  323. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +2 -0
  324. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +1 -0
  325. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +75 -0
  326. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +1 -0
  327. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts +2 -0
  328. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts.map +1 -0
  329. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +143 -0
  330. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +1 -0
  331. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts +2 -0
  332. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts.map +1 -0
  333. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +145 -0
  334. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -0
  335. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts +2 -0
  336. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts.map +1 -0
  337. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +64 -0
  338. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +1 -0
  339. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +2 -0
  340. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +1 -0
  341. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +388 -0
  342. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -0
  343. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +2 -0
  344. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +1 -0
  345. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +46 -0
  346. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +1 -0
  347. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +2 -0
  348. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +1 -0
  349. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +216 -0
  350. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -0
  351. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +2 -0
  352. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +1 -0
  353. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +69 -0
  354. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +1 -0
  355. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts +2 -0
  356. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts.map +1 -0
  357. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js +505 -0
  358. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js.map +1 -0
  359. package/dist/tests/unit/util.ipDistance.unit.test.d.ts +2 -0
  360. package/dist/tests/unit/util.ipDistance.unit.test.d.ts.map +1 -0
  361. package/dist/tests/unit/util.ipDistance.unit.test.js +93 -0
  362. package/dist/tests/unit/util.ipDistance.unit.test.js.map +1 -0
  363. package/dist/tests/unit/util.unit.test.d.ts +2 -0
  364. package/dist/tests/unit/util.unit.test.d.ts.map +1 -0
  365. package/dist/tests/unit/util.unit.test.js +170 -0
  366. package/dist/tests/unit/util.unit.test.js.map +1 -0
  367. package/dist/util.d.ts +24 -0
  368. package/dist/util.d.ts.map +1 -0
  369. package/dist/util.js +263 -18
  370. package/dist/util.js.map +1 -0
  371. package/dist/utils/hashUserAgent.d.ts +2 -0
  372. package/dist/utils/hashUserAgent.d.ts.map +1 -0
  373. package/dist/utils/hashUserAgent.js +10 -0
  374. package/dist/utils/hashUserAgent.js.map +1 -0
  375. package/package.json +31 -29
  376. package/vite.test.config.ts +3 -2
  377. package/vite.threads.test.config.ts +33 -0
@@ -0,0 +1,60 @@
1
+ import { ApiEndpointResponseStatus } from "@prosopo/api-route";
2
+ import { CaptchaType, Tier } from "@prosopo/types";
3
+ import { describe, expect, it, vi } from "vitest";
4
+ import { ApiRegisterSiteKeyEndpoint } from "../../../../api/admin/apiRegisterSiteKeyEndpoint.js";
5
+ import { ClientTaskManager } from "../../../../tasks/client/clientTasks.js";
6
+ describe("apiRegisterSiteKeyEndpoint", () => {
7
+ const mockConfig = {};
8
+ const mockLogger = new Proxy({}, {
9
+ get: () => () => { },
10
+ });
11
+ const getMockDb = () => ({
12
+ updateClientRecords: vi.fn(),
13
+ });
14
+ const registerSiteKey = (db, record) => new ApiRegisterSiteKeyEndpoint(new ClientTaskManager(mockConfig, mockLogger, db)).processRequest({
15
+ siteKey: record.account || "",
16
+ tier: record.tier || Tier.Free,
17
+ settings: record.settings,
18
+ });
19
+ it("should register or update site key", async () => {
20
+ const record = {
21
+ account: "5EjTA28bKSbFPPyMbUjNtArxyqjwq38r1BapVmLZShaqEedV",
22
+ tier: Tier.Free,
23
+ settings: {
24
+ captchaType: CaptchaType.frictionless,
25
+ domains: [],
26
+ frictionlessThreshold: 0.5,
27
+ imageThreshold: 0.5,
28
+ powDifficulty: 0.5,
29
+ disallowWebView: false,
30
+ },
31
+ };
32
+ const db = getMockDb();
33
+ const endpointResponse = await registerSiteKey(db, record);
34
+ expect(db.updateClientRecords).toHaveBeenCalledTimes(1);
35
+ expect(db.updateClientRecords).toHaveBeenCalledWith([
36
+ record,
37
+ ]);
38
+ expect(endpointResponse).toEqual({
39
+ status: ApiEndpointResponseStatus.SUCCESS,
40
+ });
41
+ });
42
+ it("should throw an api error for an invalid site key", async () => {
43
+ const record = {
44
+ account: "invalidAccount",
45
+ tier: Tier.Free,
46
+ settings: {
47
+ captchaType: CaptchaType.frictionless,
48
+ domains: [],
49
+ frictionlessThreshold: 0.5,
50
+ imageThreshold: 0.5,
51
+ powDifficulty: 0.5,
52
+ disallowWebView: false,
53
+ },
54
+ };
55
+ const db = getMockDb();
56
+ const registerPromise = registerSiteKey(db, record);
57
+ await expect(registerPromise).rejects.toThrowError("API.INVALID_SITE_KEY");
58
+ });
59
+ });
60
+ //# sourceMappingURL=apiRegisterSiteKeyEndpoint.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiRegisterSiteKeyEndpoint.integration.test.js","sourceRoot":"","sources":["../../../../../src/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAA4B,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAE5E,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC3C,MAAM,UAAU,GAAG,EAAoC,CAAC;IAExD,MAAM,UAAU,GAAG,IAAI,KAAK,CAC3B,EAAE,EACF;QACC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC;KACnB,CACS,CAAC;IAEZ,MAAM,SAAS,GAAG,GAAG,EAAE,CACtB,CAAC;QACA,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE;KAC5B,CAAiC,CAAC;IAEpC,MAAM,eAAe,GAAG,CACvB,EAAqB,EACrB,MAA6B,EAC5B,EAAE,CACH,IAAI,0BAA0B,CAC7B,IAAI,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CACjD,CAAC,cAAc,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;QAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KACzB,CAAC,CAAC;IAEJ,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAA0B;YAErC,OAAO,EAAE,kDAAkD;YAC3D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE;gBACT,WAAW,EAAE,WAAW,CAAC,YAAY;gBACrC,OAAO,EAAE,EAAE;gBACX,qBAAqB,EAAE,GAAG;gBAC1B,cAAc,EAAE,GAAG;gBACnB,aAAa,EAAE,GAAG;gBAClB,eAAe,EAAE,KAAK;aACtB;SACD,CAAC;QACF,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QAEvB,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAE3D,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC;YACnD,MAAsB;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;YAChC,MAAM,EAAE,yBAAyB,CAAC,OAAO;SACzC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,MAAM,GAA0B;YACrC,OAAO,EAAE,gBAAgB;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE;gBACT,WAAW,EAAE,WAAW,CAAC,YAAY;gBACrC,OAAO,EAAE,EAAE;gBACX,qBAAqB,EAAE,GAAG;gBAC1B,cAAc,EAAE,GAAG;gBACnB,aAAa,EAAE,GAAG;gBAClB,eAAe,EAAE,KAAK;aACtB;SACD,CAAC;QACF,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QAEvB,MAAM,eAAe,GAAG,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpD,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=blacklistRequestInspector.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blacklistRequestInspector.integration.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/integration/api/blacklistRequestInspector.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,368 @@
1
+ import { ProviderEnvironment } from "@prosopo/env";
2
+ import { generateMnemonic } from "@prosopo/keyring";
3
+ import { DatabaseTypes, ProsopoConfigSchema } from "@prosopo/types";
4
+ import { AccessPolicyType, FilterScopeMatch, accessRuleInput, userScopeInput, } from "@prosopo/user-access-policy";
5
+ import { getIPAddressFromBigInt } from "@prosopo/util";
6
+ import { randomAsHex } from "@prosopo/util-crypto";
7
+ import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
8
+ import { getPrioritisedAccessRule } from "../../../api/blacklistRequestInspector.js";
9
+ describe("blacklistRequestInspector Integration Tests", () => {
10
+ describe("getPrioritisedAccessRule", () => {
11
+ let env;
12
+ let accessRulesStorage;
13
+ const userAgent1 = "testuseragent1";
14
+ const userAgent2 = "testuseragent2";
15
+ const userAgent3 = "testuseragent3";
16
+ const ja4Hash1 = "t13d1516h2_8daaf6152771_8eba31f8906f";
17
+ const ja4Hash2 = "t13d1516h2_8daaf6152771_8eba31f8906g";
18
+ let siteKey;
19
+ let siteKeyMnemonic;
20
+ beforeAll(async () => {
21
+ const config = ProsopoConfigSchema.parse({
22
+ defaultEnvironment: "development",
23
+ host: "http://localhost:9229",
24
+ account: {
25
+ secret: process.env.PROVIDER_MNEMONIC ||
26
+ "puppy cream effort carbon despair leg pyramid cotton endorse immense drill peasant",
27
+ },
28
+ authAccount: {
29
+ secret: process.env.ADMIN_MNEMONIC ||
30
+ "puppy cream effort carbon despair leg pyramid cotton endorse immense drill peasant",
31
+ },
32
+ database: {
33
+ development: {
34
+ type: DatabaseTypes.enum.provider,
35
+ endpoint: "mongodb://127.0.0.1:27017",
36
+ dbname: process.env.PROSOPO_DATABASE_NAME || "prosopo_test",
37
+ authSource: process.env.PROSOPO_DATABASE_AUTH_SOURCE,
38
+ },
39
+ },
40
+ ipApi: {
41
+ baseUrl: "https://dummyUrl.com",
42
+ apiKey: "dummyKey",
43
+ },
44
+ });
45
+ config.redisConnection.indexName = randomAsHex(16);
46
+ env = new ProviderEnvironment(config);
47
+ await env.isReady();
48
+ const db = env.getDb();
49
+ await db.getRedisAccessRulesConnection().getClient();
50
+ accessRulesStorage = env.getDb().getUserAccessRulesStorage();
51
+ });
52
+ beforeEach(async () => {
53
+ [siteKeyMnemonic, siteKey] = await generateMnemonic();
54
+ await accessRulesStorage.deleteAllRules();
55
+ });
56
+ it("should return a rule when a JA4-UserAgent rule exists and the user matches the User Agent and the JA4", async () => {
57
+ const accessRule = accessRuleInput.parse({
58
+ type: AccessPolicyType.Restrict,
59
+ clientId: siteKey,
60
+ ja4Hash: ja4Hash1,
61
+ userAgent: userAgent1,
62
+ });
63
+ await accessRulesStorage.insertRules([
64
+ {
65
+ rule: accessRule,
66
+ },
67
+ ]);
68
+ const spy = vi.spyOn(accessRulesStorage, "findRules");
69
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
70
+ ja4Hash: ja4Hash1,
71
+ userAgent: userAgent1,
72
+ }, siteKey);
73
+ expect(spy).toHaveBeenCalledTimes(6);
74
+ expect(spy).toHaveBeenCalledWith({
75
+ policyScope: {
76
+ clientId: siteKey,
77
+ },
78
+ policyScopeMatch: FilterScopeMatch.Exact,
79
+ userScope: userScopeInput.parse({
80
+ ja4Hash: ja4Hash1,
81
+ userAgent: userAgent1,
82
+ }),
83
+ userScopeMatch: FilterScopeMatch.Exact,
84
+ }, true, true);
85
+ expect(spy).toHaveBeenCalledWith({
86
+ policyScope: {
87
+ clientId: siteKey,
88
+ },
89
+ policyScopeMatch: FilterScopeMatch.Exact,
90
+ userScope: userScopeInput.parse({
91
+ userAgent: userAgent1,
92
+ }),
93
+ userScopeMatch: FilterScopeMatch.Exact,
94
+ }, true, true);
95
+ expect(spy).toHaveBeenCalledWith({
96
+ policyScope: {
97
+ clientId: siteKey,
98
+ },
99
+ policyScopeMatch: FilterScopeMatch.Exact,
100
+ userScope: userScopeInput.parse({
101
+ ja4Hash: ja4Hash1,
102
+ }),
103
+ userScopeMatch: FilterScopeMatch.Exact,
104
+ }, true, true);
105
+ expect(spy).toHaveBeenCalledWith({
106
+ policyScopeMatch: FilterScopeMatch.Exact,
107
+ userScope: userScopeInput.parse({
108
+ ja4Hash: ja4Hash1,
109
+ userAgent: userAgent1,
110
+ }),
111
+ userScopeMatch: FilterScopeMatch.Exact,
112
+ }, true, true);
113
+ expect(spy).toHaveBeenCalledWith({
114
+ policyScopeMatch: FilterScopeMatch.Exact,
115
+ userScope: userScopeInput.parse({
116
+ userAgent: userAgent1,
117
+ }),
118
+ userScopeMatch: FilterScopeMatch.Exact,
119
+ }, true, true);
120
+ expect(spy).toHaveBeenCalledWith({
121
+ policyScopeMatch: FilterScopeMatch.Exact,
122
+ userScope: userScopeInput.parse({
123
+ ja4Hash: ja4Hash1,
124
+ }),
125
+ userScopeMatch: FilterScopeMatch.Exact,
126
+ }, true, true);
127
+ expect(result).toHaveLength(1);
128
+ });
129
+ it("should not return a rule when a JA4-UserAgent rule exists and the user matches the JA4 but not the user agent", async () => {
130
+ const accessRule = accessRuleInput.parse({
131
+ type: AccessPolicyType.Restrict,
132
+ clientId: siteKey,
133
+ ja4Hash: ja4Hash1,
134
+ userAgent: userAgent2,
135
+ });
136
+ await accessRulesStorage.insertRules([
137
+ {
138
+ rule: accessRule,
139
+ },
140
+ ]);
141
+ const spy = vi.spyOn(accessRulesStorage, "findRules");
142
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
143
+ ja4Hash: ja4Hash1,
144
+ userAgent: userAgent1,
145
+ }, siteKey);
146
+ expect(spy).toHaveBeenCalledTimes(6);
147
+ expect(spy).toHaveBeenCalledWith({
148
+ policyScopeMatch: FilterScopeMatch.Exact,
149
+ userScope: userScopeInput.parse({
150
+ ja4Hash: ja4Hash1,
151
+ userAgent: userAgent1,
152
+ }),
153
+ userScopeMatch: FilterScopeMatch.Exact,
154
+ }, true, true);
155
+ expect(spy).toHaveBeenCalledWith({
156
+ policyScopeMatch: FilterScopeMatch.Exact,
157
+ userScope: userScopeInput.parse({
158
+ userAgent: userAgent1,
159
+ }),
160
+ userScopeMatch: FilterScopeMatch.Exact,
161
+ }, true, true);
162
+ expect(spy).toHaveBeenCalledWith({
163
+ policyScopeMatch: FilterScopeMatch.Exact,
164
+ userScope: userScopeInput.parse({
165
+ ja4Hash: ja4Hash1,
166
+ }),
167
+ userScopeMatch: FilterScopeMatch.Exact,
168
+ }, true, true);
169
+ expect(spy).toHaveBeenCalledWith({
170
+ policyScope: {
171
+ clientId: siteKey,
172
+ },
173
+ policyScopeMatch: FilterScopeMatch.Exact,
174
+ userScope: userScopeInput.parse({
175
+ ja4Hash: ja4Hash1,
176
+ userAgent: userAgent1,
177
+ }),
178
+ userScopeMatch: FilterScopeMatch.Exact,
179
+ }, true, true);
180
+ expect(spy).toHaveBeenCalledWith({
181
+ policyScope: {
182
+ clientId: siteKey,
183
+ },
184
+ policyScopeMatch: FilterScopeMatch.Exact,
185
+ userScope: userScopeInput.parse({
186
+ userAgent: userAgent1,
187
+ }),
188
+ userScopeMatch: FilterScopeMatch.Exact,
189
+ }, true, true);
190
+ expect(spy).toHaveBeenCalledWith({
191
+ policyScope: {
192
+ clientId: siteKey,
193
+ },
194
+ policyScopeMatch: FilterScopeMatch.Exact,
195
+ userScope: userScopeInput.parse({
196
+ ja4Hash: ja4Hash1,
197
+ }),
198
+ userScopeMatch: FilterScopeMatch.Exact,
199
+ }, true, true);
200
+ expect(result).toHaveLength(0);
201
+ });
202
+ it("should return multiple matching rules", async () => {
203
+ const accessRule1 = accessRuleInput.parse({
204
+ type: AccessPolicyType.Restrict,
205
+ clientId: siteKey,
206
+ ja4Hash: ja4Hash2,
207
+ });
208
+ const accessRule2 = accessRuleInput.parse({
209
+ type: AccessPolicyType.Restrict,
210
+ clientId: siteKey,
211
+ numericIp: BigInt(16843009),
212
+ });
213
+ await accessRulesStorage.insertRules([
214
+ {
215
+ rule: accessRule1,
216
+ },
217
+ ]);
218
+ await accessRulesStorage.insertRules([
219
+ {
220
+ rule: accessRule2,
221
+ },
222
+ ]);
223
+ const spy = vi.spyOn(accessRulesStorage, "findRules");
224
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
225
+ ja4Hash: ja4Hash2,
226
+ numericIp: BigInt(16843009),
227
+ }, siteKey);
228
+ expect(spy).toHaveBeenCalledTimes(6);
229
+ expect(result.length).toBe(2);
230
+ });
231
+ it("should return multiple matching rules in order of specificity", async () => {
232
+ const accessRule1 = accessRuleInput.parse({
233
+ type: AccessPolicyType.Restrict,
234
+ clientId: siteKey,
235
+ ja4Hash: ja4Hash2,
236
+ numericIp: BigInt(16843009),
237
+ });
238
+ const accessRule2 = accessRuleInput.parse({
239
+ type: AccessPolicyType.Restrict,
240
+ clientId: siteKey,
241
+ numericIp: BigInt(16843009),
242
+ });
243
+ await accessRulesStorage.insertRules([{ rule: accessRule1 }]);
244
+ await accessRulesStorage.insertRules([
245
+ {
246
+ rule: accessRule2,
247
+ },
248
+ ]);
249
+ const spy = vi.spyOn(accessRulesStorage, "findRules");
250
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
251
+ ja4Hash: ja4Hash2,
252
+ numericIp: BigInt(16843009),
253
+ }, siteKey);
254
+ expect(spy).toHaveBeenCalledTimes(6);
255
+ expect(result.length).toBe(2);
256
+ expect(result).toStrictEqual([accessRule1, accessRule2]);
257
+ const nonClientResult = await getPrioritisedAccessRule(accessRulesStorage, {
258
+ ja4Hash: ja4Hash2,
259
+ numericIp: BigInt(16843009),
260
+ });
261
+ expect(nonClientResult.length).toBe(0);
262
+ });
263
+ it("should not return a match for a different IP", async () => {
264
+ const accessRule1 = accessRuleInput.parse({
265
+ type: AccessPolicyType.Restrict,
266
+ clientId: siteKey,
267
+ ja4Hash: ja4Hash2,
268
+ userAgent: userAgent1,
269
+ numericIp: BigInt(16843009),
270
+ });
271
+ await accessRulesStorage.insertRules([
272
+ {
273
+ rule: accessRule1,
274
+ },
275
+ ]);
276
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
277
+ ja4Hash: ja4Hash2,
278
+ userAgent: userAgent1,
279
+ numericIp: BigInt(17843009),
280
+ }, siteKey);
281
+ expect(result.length).toBe(0);
282
+ });
283
+ it("should return a match for the same IP", async () => {
284
+ const numericIp = BigInt(16843009);
285
+ const accessRule1 = accessRuleInput.parse({
286
+ type: AccessPolicyType.Restrict,
287
+ clientId: siteKey,
288
+ ja4Hash: ja4Hash2,
289
+ userAgent: userAgent1,
290
+ numericIp: numericIp,
291
+ });
292
+ await accessRulesStorage.insertRules([
293
+ {
294
+ rule: accessRule1,
295
+ },
296
+ ]);
297
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
298
+ ja4Hash: ja4Hash2,
299
+ userAgent: userAgent1,
300
+ ip: getIPAddressFromBigInt(numericIp).address,
301
+ }, siteKey);
302
+ expect(result.length).toBe(1);
303
+ });
304
+ it("should not return a match for a different IP", async () => {
305
+ const accessRule1 = accessRuleInput.parse({
306
+ type: AccessPolicyType.Restrict,
307
+ clientId: siteKey,
308
+ ja4Hash: ja4Hash2,
309
+ userAgent: userAgent1,
310
+ numericIp: BigInt(16843009),
311
+ });
312
+ await accessRulesStorage.insertRules([
313
+ {
314
+ rule: accessRule1,
315
+ },
316
+ ]);
317
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
318
+ ja4Hash: ja4Hash2,
319
+ userAgent: userAgent1,
320
+ ip: "1.1.1.2",
321
+ }, siteKey);
322
+ expect(result).toEqual([]);
323
+ expect(result.length).toBe(0);
324
+ });
325
+ it("should not return a match for a different IP 2", async () => {
326
+ const accessRule1 = accessRuleInput.parse({
327
+ type: AccessPolicyType.Restrict,
328
+ clientId: siteKey,
329
+ ja4Hash: ja4Hash2,
330
+ userAgent: userAgent1,
331
+ numericIp: BigInt(16843009),
332
+ });
333
+ await accessRulesStorage.insertRules([
334
+ {
335
+ rule: accessRule1,
336
+ },
337
+ ]);
338
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
339
+ ja4Hash: ja4Hash2,
340
+ userAgent: userAgent1,
341
+ numericIp: BigInt(16843010),
342
+ }, siteKey);
343
+ expect(result.length).toBe(0);
344
+ });
345
+ it("should not return a match for a different IP 3", async () => {
346
+ const accessRule1 = accessRuleInput.parse({
347
+ type: AccessPolicyType.Restrict,
348
+ clientId: siteKey,
349
+ ja4Hash: ja4Hash2,
350
+ userAgent: userAgent1,
351
+ numericIp: BigInt(16843009),
352
+ });
353
+ await accessRulesStorage.insertRules([
354
+ {
355
+ rule: accessRule1,
356
+ },
357
+ ]);
358
+ const result = await getPrioritisedAccessRule(accessRulesStorage, {
359
+ ja4Hash: ja4Hash2,
360
+ userAgent: userAgent1,
361
+ numericIpMaskMin: BigInt(16843010),
362
+ numericIpMaskMax: BigInt(16843010),
363
+ }, siteKey);
364
+ expect(result.length).toBe(0);
365
+ });
366
+ });
367
+ });
368
+ //# sourceMappingURL=blacklistRequestInspector.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blacklistRequestInspector.integration.test.js","sourceRoot":"","sources":["../../../../src/tests/integration/api/blacklistRequestInspector.integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=imgCaptcha.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imgCaptcha.integration.test.d.ts","sourceRoot":"","sources":["../../../src/tests/integration/imgCaptcha.integration.test.ts"],"names":[],"mappings":""}