@prosopo/provider 3.13.7 → 3.15.0

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 (320) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +14 -10
  2. package/.turbo/turbo-build$colon$tsc.log +65 -0
  3. package/.turbo/turbo-build.log +18 -11
  4. package/CHANGELOG.md +163 -0
  5. package/dist/api/admin/apiAdminRoutesProvider.d.ts +9 -0
  6. package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +1 -0
  7. package/dist/api/admin/apiAdminRoutesProvider.js.map +1 -0
  8. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts +14 -0
  9. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts.map +1 -0
  10. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js.map +1 -0
  11. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +23 -0
  12. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -0
  13. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +1 -0
  14. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts +13 -0
  15. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts.map +1 -0
  16. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js.map +1 -0
  17. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +14 -0
  18. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +1 -0
  19. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +1 -0
  20. package/dist/api/admin/createApiAdminRoutesProvider.d.ts +4 -0
  21. package/dist/api/admin/createApiAdminRoutesProvider.d.ts.map +1 -0
  22. package/dist/api/admin/createApiAdminRoutesProvider.js.map +1 -0
  23. package/dist/api/blacklistRequestInspector.d.ts +19 -0
  24. package/dist/api/blacklistRequestInspector.d.ts.map +1 -0
  25. package/dist/api/blacklistRequestInspector.js +4 -3
  26. package/dist/api/blacklistRequestInspector.js.map +1 -0
  27. package/dist/api/block.d.ts +3 -0
  28. package/dist/api/block.d.ts.map +1 -0
  29. package/dist/api/block.js.map +1 -0
  30. package/dist/api/captcha/contextAwareValidation.d.ts +4 -0
  31. package/dist/api/captcha/contextAwareValidation.d.ts.map +1 -0
  32. package/dist/api/captcha/contextAwareValidation.js.map +1 -0
  33. package/dist/api/captcha/getFrictionlessCaptchaChallenge.d.ts +8 -0
  34. package/dist/api/captcha/getFrictionlessCaptchaChallenge.d.ts.map +1 -0
  35. package/dist/api/captcha/getFrictionlessCaptchaChallenge.js.map +1 -0
  36. package/dist/api/captcha/getImageCaptchaChallenge.d.ts +7 -0
  37. package/dist/api/captcha/getImageCaptchaChallenge.d.ts.map +1 -0
  38. package/dist/api/captcha/getImageCaptchaChallenge.js.map +1 -0
  39. package/dist/api/captcha/getPoWCaptchaChallenge.d.ts +7 -0
  40. package/dist/api/captcha/getPoWCaptchaChallenge.d.ts.map +1 -0
  41. package/dist/api/captcha/getPoWCaptchaChallenge.js.map +1 -0
  42. package/dist/api/captcha/submitImageCaptchaSolution.d.ts +7 -0
  43. package/dist/api/captcha/submitImageCaptchaSolution.d.ts.map +1 -0
  44. package/dist/api/captcha/submitImageCaptchaSolution.js.map +1 -0
  45. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts +6 -0
  46. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -0
  47. package/dist/api/captcha/submitPoWCaptchaSolution.js +13 -2
  48. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -0
  49. package/dist/api/captcha.d.ts +4 -0
  50. package/dist/api/captcha.d.ts.map +1 -0
  51. package/dist/api/captcha.js.map +1 -0
  52. package/dist/api/domainMiddleware.d.ts +4 -0
  53. package/dist/api/domainMiddleware.d.ts.map +1 -0
  54. package/dist/api/domainMiddleware.js.map +1 -0
  55. package/dist/api/headerCheckMiddleware.d.ts +4 -0
  56. package/dist/api/headerCheckMiddleware.d.ts.map +1 -0
  57. package/dist/api/headerCheckMiddleware.js.map +1 -0
  58. package/dist/api/ignoreMiddleware.d.ts +3 -0
  59. package/dist/api/ignoreMiddleware.d.ts.map +1 -0
  60. package/dist/api/ignoreMiddleware.js.map +1 -0
  61. package/dist/api/ja4Middleware.d.ts +10 -0
  62. package/dist/api/ja4Middleware.d.ts.map +1 -0
  63. package/dist/api/ja4Middleware.js.map +1 -0
  64. package/dist/api/public.d.ts +4 -0
  65. package/dist/api/public.d.ts.map +1 -0
  66. package/dist/api/public.js.map +1 -0
  67. package/dist/api/robotsMiddleware.d.ts +3 -0
  68. package/dist/api/robotsMiddleware.d.ts.map +1 -0
  69. package/dist/api/robotsMiddleware.js.map +1 -0
  70. package/dist/api/validateAddress.d.ts +5 -0
  71. package/dist/api/validateAddress.d.ts.map +1 -0
  72. package/dist/api/validateAddress.js.map +1 -0
  73. package/dist/api/verify.d.ts +4 -0
  74. package/dist/api/verify.d.ts.map +1 -0
  75. package/dist/api/verify.js +3 -1
  76. package/dist/api/verify.js.map +1 -0
  77. package/dist/cjs/api/blacklistRequestInspector.cjs +4 -3
  78. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +13 -2
  79. package/dist/cjs/api/verify.cjs +3 -1
  80. package/dist/cjs/index.cjs +4 -0
  81. package/dist/cjs/tasks/client/clientTasks.cjs +1 -1
  82. package/dist/cjs/tasks/detection/decodeBehavior.cjs +328 -0
  83. package/dist/cjs/tasks/detection/decodeBehavior.js +15 -0
  84. package/dist/cjs/tasks/detection/decodePayload.cjs +638 -679
  85. package/dist/cjs/tasks/detection/decodePayload.js +15 -0
  86. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +4 -1
  87. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +210 -5
  88. package/dist/compositeIpAddress.d.ts +5 -0
  89. package/dist/compositeIpAddress.d.ts.map +1 -0
  90. package/dist/compositeIpAddress.js.map +1 -0
  91. package/dist/index.d.ts +19 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +4 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/pairs.d.ts +3 -0
  96. package/dist/pairs.d.ts.map +1 -0
  97. package/dist/pairs.js.map +1 -0
  98. package/dist/rules/lang.d.ts +3 -0
  99. package/dist/rules/lang.d.ts.map +1 -0
  100. package/dist/rules/lang.js.map +1 -0
  101. package/dist/schedulers/captchaScheduler.d.ts +4 -0
  102. package/dist/schedulers/captchaScheduler.d.ts.map +1 -0
  103. package/dist/schedulers/captchaScheduler.js.map +1 -0
  104. package/dist/schedulers/getClientList.d.ts +4 -0
  105. package/dist/schedulers/getClientList.d.ts.map +1 -0
  106. package/dist/schedulers/getClientList.js.map +1 -0
  107. package/dist/schedulers/setClientEntropy.d.ts +4 -0
  108. package/dist/schedulers/setClientEntropy.d.ts.map +1 -0
  109. package/dist/schedulers/setClientEntropy.js.map +1 -0
  110. package/dist/services/ipComparison.d.ts +3 -0
  111. package/dist/services/ipComparison.d.ts.map +1 -0
  112. package/dist/services/ipComparison.js.map +1 -0
  113. package/dist/services/ipInfo.d.ts +3 -0
  114. package/dist/services/ipInfo.d.ts.map +1 -0
  115. package/dist/services/ipInfo.js.map +1 -0
  116. package/dist/tasks/captchaManager.d.ts +34 -0
  117. package/dist/tasks/captchaManager.d.ts.map +1 -0
  118. package/dist/tasks/captchaManager.js.map +1 -0
  119. package/dist/tasks/client/clientTasks.d.ts +22 -0
  120. package/dist/tasks/client/clientTasks.d.ts.map +1 -0
  121. package/dist/tasks/client/clientTasks.js +1 -1
  122. package/dist/tasks/client/clientTasks.js.map +1 -0
  123. package/dist/tasks/dataset/datasetTasks.d.ts +13 -0
  124. package/dist/tasks/dataset/datasetTasks.d.ts.map +1 -0
  125. package/dist/tasks/dataset/datasetTasks.js.map +1 -0
  126. package/dist/tasks/dataset/datasetTasksUtils.d.ts +3 -0
  127. package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +1 -0
  128. package/dist/tasks/dataset/datasetTasksUtils.js.map +1 -0
  129. package/dist/tasks/detection/decodeBehavior.d.ts +3 -0
  130. package/dist/tasks/detection/decodeBehavior.d.ts.map +1 -0
  131. package/dist/tasks/detection/decodeBehavior.js +15 -0
  132. package/dist/tasks/detection/decodeBehavior.js.map +1 -0
  133. package/dist/tasks/detection/decodePayload.d.ts +5 -0
  134. package/dist/tasks/detection/decodePayload.d.ts.map +1 -0
  135. package/dist/tasks/detection/decodePayload.js +15 -849
  136. package/dist/tasks/detection/decodePayload.js.map +1 -0
  137. package/dist/tasks/detection/getBehavioralData.d.ts +4 -0
  138. package/dist/tasks/detection/getBehavioralData.d.ts.map +1 -0
  139. package/dist/tasks/detection/getBehavioralData.js +51 -0
  140. package/dist/tasks/detection/getBehavioralData.js.map +1 -0
  141. package/dist/tasks/detection/getBotScore.d.ts +20 -0
  142. package/dist/tasks/detection/getBotScore.d.ts.map +1 -0
  143. package/dist/tasks/detection/getBotScore.js +2 -2
  144. package/dist/tasks/detection/getBotScore.js.map +1 -0
  145. package/dist/tasks/frictionless/frictionlessTasks.d.ts +63 -0
  146. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -0
  147. package/dist/tasks/frictionless/frictionlessTasks.js +4 -1
  148. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -0
  149. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +6 -0
  150. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +1 -0
  151. package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +1 -0
  152. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +29 -0
  153. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -0
  154. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -0
  155. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +7 -0
  156. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -0
  157. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -0
  158. package/dist/tasks/index.d.ts +2 -0
  159. package/dist/tasks/index.d.ts.map +1 -0
  160. package/dist/tasks/index.js.map +1 -0
  161. package/dist/tasks/powCaptcha/powTasks.d.ts +20 -0
  162. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -0
  163. package/dist/tasks/powCaptcha/powTasks.js +211 -6
  164. package/dist/tasks/powCaptcha/powTasks.js.map +1 -0
  165. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +3 -0
  166. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +1 -0
  167. package/dist/tasks/powCaptcha/powTasksUtils.js.map +1 -0
  168. package/dist/tasks/tasks.d.ts +25 -0
  169. package/dist/tasks/tasks.d.ts.map +1 -0
  170. package/dist/tasks/tasks.js.map +1 -0
  171. package/dist/tests/index.d.ts +2 -0
  172. package/dist/tests/index.d.ts.map +1 -0
  173. package/dist/tests/index.js +2 -0
  174. package/dist/tests/index.js.map +1 -0
  175. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts +2 -0
  176. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts.map +1 -0
  177. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +78 -0
  178. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +1 -0
  179. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts +2 -0
  180. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts.map +1 -0
  181. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +486 -0
  182. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +1 -0
  183. package/dist/tests/integration/imgCaptcha.integration.test.d.ts +2 -0
  184. package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +1 -0
  185. package/dist/tests/integration/imgCaptcha.integration.test.js +272 -0
  186. package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -0
  187. package/dist/tests/integration/ipValidation.integration.test.d.ts +2 -0
  188. package/dist/tests/integration/ipValidation.integration.test.d.ts.map +1 -0
  189. package/dist/tests/integration/ipValidation.integration.test.js +75 -0
  190. package/dist/tests/integration/ipValidation.integration.test.js.map +1 -0
  191. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +32 -0
  192. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +1 -0
  193. package/dist/tests/integration/mocks/solvedTestCaptchas.js +1046 -0
  194. package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +1 -0
  195. package/dist/tests/integration/powCaptcha.integration.test.d.ts +2 -0
  196. package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +1 -0
  197. package/dist/tests/integration/powCaptcha.integration.test.js +307 -0
  198. package/dist/tests/integration/powCaptcha.integration.test.js.map +1 -0
  199. package/dist/tests/integration/registerSitekey.d.ts +3 -0
  200. package/dist/tests/integration/registerSitekey.d.ts.map +1 -0
  201. package/dist/tests/integration/registerSitekey.js +21 -0
  202. package/dist/tests/integration/registerSitekey.js.map +1 -0
  203. package/dist/tests/integration/userAccessPolicy.d.ts +2 -0
  204. package/dist/tests/integration/userAccessPolicy.d.ts.map +1 -0
  205. package/dist/tests/integration/userAccessPolicy.js +2 -0
  206. package/dist/tests/integration/userAccessPolicy.js.map +1 -0
  207. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts +2 -0
  208. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts.map +1 -0
  209. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +60 -0
  210. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +1 -0
  211. package/dist/tests/unit/api/contextAwareValidation.unit.test.d.ts +2 -0
  212. package/dist/tests/unit/api/contextAwareValidation.unit.test.d.ts.map +1 -0
  213. package/dist/tests/unit/api/contextAwareValidation.unit.test.js +84 -0
  214. package/dist/tests/unit/api/contextAwareValidation.unit.test.js.map +1 -0
  215. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.d.ts +2 -0
  216. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.d.ts.map +1 -0
  217. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +242 -0
  218. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -0
  219. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts +2 -0
  220. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts.map +1 -0
  221. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js +43 -0
  222. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js.map +1 -0
  223. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts +2 -0
  224. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts.map +1 -0
  225. package/dist/tests/unit/api/ja4Middleware.unit.test.js +57 -0
  226. package/dist/tests/unit/api/ja4Middleware.unit.test.js.map +1 -0
  227. package/dist/tests/unit/compositeIpAddress.unit.test.d.ts +2 -0
  228. package/dist/tests/unit/compositeIpAddress.unit.test.d.ts.map +1 -0
  229. package/dist/tests/unit/compositeIpAddress.unit.test.js +86 -0
  230. package/dist/tests/unit/compositeIpAddress.unit.test.js.map +1 -0
  231. package/dist/tests/unit/pairs.unit.test.d.ts +2 -0
  232. package/dist/tests/unit/pairs.unit.test.d.ts.map +1 -0
  233. package/dist/tests/unit/pairs.unit.test.js +83 -0
  234. package/dist/tests/unit/pairs.unit.test.js.map +1 -0
  235. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +2 -0
  236. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +1 -0
  237. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +75 -0
  238. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -0
  239. package/dist/tests/unit/services/ipComparison.unit.test.d.ts +2 -0
  240. package/dist/tests/unit/services/ipComparison.unit.test.d.ts.map +1 -0
  241. package/dist/tests/unit/services/ipComparison.unit.test.js +258 -0
  242. package/dist/tests/unit/services/ipComparison.unit.test.js.map +1 -0
  243. package/dist/tests/unit/services/ipInfo.unit.test.d.ts +2 -0
  244. package/dist/tests/unit/services/ipInfo.unit.test.d.ts.map +1 -0
  245. package/dist/tests/unit/services/ipInfo.unit.test.js +210 -0
  246. package/dist/tests/unit/services/ipInfo.unit.test.js.map +1 -0
  247. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts +2 -0
  248. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts.map +1 -0
  249. package/dist/tests/unit/tasks/captchaManager.unit.test.js +321 -0
  250. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -0
  251. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +2 -0
  252. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +1 -0
  253. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +332 -0
  254. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -0
  255. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +2 -0
  256. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +1 -0
  257. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +92 -0
  258. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +1 -0
  259. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +2 -0
  260. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +1 -0
  261. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +75 -0
  262. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +1 -0
  263. package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.d.ts +2 -0
  264. package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.d.ts.map +1 -0
  265. package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.js +109 -0
  266. package/dist/tests/unit/tasks/detection/getBehavioralData.unit.test.js.map +1 -0
  267. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts +2 -0
  268. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts.map +1 -0
  269. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +142 -0
  270. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +1 -0
  271. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts +2 -0
  272. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts.map +1 -0
  273. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +145 -0
  274. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -0
  275. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts +2 -0
  276. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts.map +1 -0
  277. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +68 -0
  278. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +1 -0
  279. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +2 -0
  280. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +1 -0
  281. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +388 -0
  282. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -0
  283. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +2 -0
  284. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +1 -0
  285. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +50 -0
  286. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +1 -0
  287. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +2 -0
  288. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +1 -0
  289. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +498 -0
  290. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -0
  291. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +2 -0
  292. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +1 -0
  293. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +69 -0
  294. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +1 -0
  295. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts +2 -0
  296. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts.map +1 -0
  297. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js +505 -0
  298. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js.map +1 -0
  299. package/dist/tests/unit/util.ipDistance.unit.test.d.ts +2 -0
  300. package/dist/tests/unit/util.ipDistance.unit.test.d.ts.map +1 -0
  301. package/dist/tests/unit/util.ipDistance.unit.test.js +93 -0
  302. package/dist/tests/unit/util.ipDistance.unit.test.js.map +1 -0
  303. package/dist/tests/unit/util.unit.test.d.ts +2 -0
  304. package/dist/tests/unit/util.unit.test.d.ts.map +1 -0
  305. package/dist/tests/unit/util.unit.test.js +170 -0
  306. package/dist/tests/unit/util.unit.test.js.map +1 -0
  307. package/dist/util.d.ts +24 -0
  308. package/dist/util.d.ts.map +1 -0
  309. package/dist/util.js.map +1 -0
  310. package/dist/utils/hashUserAgent.d.ts +2 -0
  311. package/dist/utils/hashUserAgent.d.ts.map +1 -0
  312. package/dist/utils/hashUserAgent.js.map +1 -0
  313. package/dist/utils/hashUserIp.d.ts +2 -0
  314. package/dist/utils/hashUserIp.d.ts.map +1 -0
  315. package/dist/utils/hashUserIp.js.map +1 -0
  316. package/package.json +20 -19
  317. package/vite.cjs.config.ts +17 -5
  318. package/vite.esm.config.ts +18 -4
  319. package/vite.test.config.ts +1 -1
  320. package/vite.threads.test.config.ts +1 -1
@@ -1,18 +1,58 @@
1
1
  import { u8aToHex, stringToHex } from "@polkadot/util";
2
2
  import { ProsopoApiError, ProsopoEnvError } from "@prosopo/common";
3
3
  import { POW_SEPARATOR, ApiParams, CaptchaStatus } from "@prosopo/types";
4
- import { at, verifyRecency } from "@prosopo/util";
4
+ import { AccessPolicyType } from "@prosopo/user-access-policy";
5
+ import { at, extractData, verifyRecency } from "@prosopo/util";
6
+ import { getRequestUserScope } from "../../api/blacklistRequestInspector.js";
5
7
  import { getIpAddressFromComposite, getCompositeIpAddress } from "../../compositeIpAddress.js";
6
8
  import { deepValidateIpAddress } from "../../util.js";
7
9
  import { CaptchaManager } from "../captchaManager.js";
8
10
  import { computeFrictionlessScore } from "../frictionless/frictionlessTasksUtils.js";
9
11
  import { checkPowSignature, validateSolution } from "./powTasksUtils.js";
12
+ const findHardBlockPolicy = (accessPolicies) => {
13
+ return accessPolicies.find(
14
+ (policy) => policy.type === AccessPolicyType.Block && !policy.captchaType
15
+ );
16
+ };
10
17
  const DEFAULT_POW_DIFFICULTY = 4;
11
18
  class PowCaptchaManager extends CaptchaManager {
12
19
  constructor(db, pair, config, logger) {
13
20
  super(db, pair, config, logger);
14
21
  this.POW_SEPARATOR = POW_SEPARATOR;
15
22
  }
23
+ /**
24
+ * Checks if a user should be hard blocked based on access policies
25
+ * Only checks for Block policies without captchaType
26
+ *
27
+ * @returns The blocking policy if user should be blocked, undefined otherwise
28
+ */
29
+ async checkForHardBlock(userAccessRulesStorage, challengeRecord, userAccount, headers, coords) {
30
+ let headHash;
31
+ if (challengeRecord.sessionId) {
32
+ const sessionRecord = await this.db.getSessionRecordBySessionId(
33
+ challengeRecord.sessionId
34
+ );
35
+ headHash = sessionRecord?.decryptedHeadHash;
36
+ }
37
+ const coordsString = coords ? JSON.stringify(coords) : void 0;
38
+ const ipAddressRecord = getIpAddressFromComposite(
39
+ challengeRecord.ipAddress
40
+ );
41
+ const userScope = getRequestUserScope(
42
+ headers,
43
+ challengeRecord.ja4,
44
+ ipAddressRecord.address,
45
+ userAccount,
46
+ headHash,
47
+ coordsString
48
+ );
49
+ const accessPolicies = await this.getPrioritisedAccessPolicies(
50
+ userAccessRulesStorage,
51
+ challengeRecord.dappAccount,
52
+ userScope
53
+ );
54
+ return findHardBlockPolicy(accessPolicies);
55
+ }
16
56
  /**
17
57
  * @description Generates a PoW Captcha for a given user and dapp
18
58
  *
@@ -45,8 +85,9 @@ class PowCaptchaManager extends CaptchaManager {
45
85
  * @param {string} userTimestampSignature
46
86
  * @param ipAddress
47
87
  * @param headers
88
+ * @param salt
48
89
  */
49
- async verifyPowCaptchaSolution(challenge, providerChallengeSignature, nonce, timeout, userTimestampSignature, ipAddress, headers) {
90
+ async verifyPowCaptchaSolution(challenge, providerChallengeSignature, nonce, timeout, userTimestampSignature, ipAddress, headers, behavioralData, salt) {
50
91
  checkPowSignature(
51
92
  challenge,
52
93
  providerChallengeSignature,
@@ -70,6 +111,21 @@ class PowCaptchaManager extends CaptchaManager {
70
111
  return false;
71
112
  }
72
113
  const difficulty = challengeRecord.difficulty;
114
+ let coords;
115
+ if (salt) {
116
+ try {
117
+ const extractedData = extractData(salt);
118
+ if (extractedData.length >= 2) {
119
+ coords = [[[extractedData[0], extractedData[1]]]];
120
+ }
121
+ } catch (error) {
122
+ this.logger.warn(() => ({
123
+ msg: "Failed to extract coordinates from salt",
124
+ error,
125
+ salt
126
+ }));
127
+ }
128
+ }
73
129
  if (!verifyRecency(challenge, timeout)) {
74
130
  await this.db.updatePowCaptchaRecordResult(
75
131
  challenge,
@@ -81,7 +137,8 @@ class PowCaptchaManager extends CaptchaManager {
81
137
  //serverchecked
82
138
  true,
83
139
  // usersubmitted
84
- userTimestampSignature
140
+ userTimestampSignature,
141
+ coords
85
142
  );
86
143
  return false;
87
144
  }
@@ -98,8 +155,53 @@ class PowCaptchaManager extends CaptchaManager {
98
155
  result,
99
156
  false,
100
157
  true,
101
- userTimestampSignature
158
+ userTimestampSignature,
159
+ coords
102
160
  );
161
+ if (behavioralData) {
162
+ try {
163
+ const decryptKeys = [
164
+ // Process DB keys first, then env var key last as env key will likely be invalid
165
+ ...await this.getDetectorKeys(),
166
+ process.env.BOT_DECRYPTION_KEY
167
+ ];
168
+ const decryptedData = await this.decryptBehavioralData(
169
+ behavioralData,
170
+ decryptKeys
171
+ );
172
+ if (decryptedData) {
173
+ const dappAccount = at(challengeSplit, 2);
174
+ this.logger?.info(() => ({
175
+ msg: "Behavioral analysis completed",
176
+ data: {
177
+ userAccount,
178
+ dappAccount,
179
+ challenge,
180
+ mouseEventsCount: decryptedData.collector1?.length || 0,
181
+ touchEventsCount: decryptedData.collector2?.length || 0,
182
+ clickEventsCount: decryptedData.collector3?.length || 0,
183
+ deviceCapability: decryptedData.deviceCapability,
184
+ captchaResult: correct ? "passed" : "failed"
185
+ }
186
+ }));
187
+ const packedData = {
188
+ c1: decryptedData.collector1 || [],
189
+ c2: decryptedData.collector2 || [],
190
+ c3: decryptedData.collector3 || [],
191
+ d: decryptedData.deviceCapability
192
+ };
193
+ await this.db.updatePowCaptchaRecord(challenge, {
194
+ behavioralDataPacked: packedData,
195
+ deviceCapability: decryptedData.deviceCapability
196
+ });
197
+ }
198
+ } catch (error) {
199
+ this.logger?.error(() => ({
200
+ msg: "Failed to process behavioral data",
201
+ err: error
202
+ }));
203
+ }
204
+ }
103
205
  return correct;
104
206
  }
105
207
  /**
@@ -109,9 +211,11 @@ class PowCaptchaManager extends CaptchaManager {
109
211
  * @param {string} dappAccount - the dapp that is requesting the captcha
110
212
  * @param {string} challenge - the starting string for the PoW challenge
111
213
  * @param {number} timeout - the time in milliseconds since the Provider was selected to provide the PoW captcha
112
- * @param ip
214
+ * @param env - provider environment
215
+ * @param ip - optional IP address for validation
216
+ * @param userAccessRulesStorage - storage for querying user access policies
113
217
  */
114
- async serverVerifyPowCaptchaSolution(dappAccount, challenge, timeout, env, ip) {
218
+ async serverVerifyPowCaptchaSolution(dappAccount, challenge, timeout, env, ip, userAccessRulesStorage) {
115
219
  const notVerifiedResponse = { verified: false };
116
220
  const challengeRecord = await this.db.getPowCaptchaRecordByChallenge(challenge);
117
221
  if (!challengeRecord) {
@@ -144,8 +248,48 @@ class PowCaptchaManager extends CaptchaManager {
144
248
  ]);
145
249
  const recent = verifyRecency(challenge, timeout);
146
250
  if (!recent) {
251
+ await this.db.updatePowCaptchaRecord(challengeRecord.challenge, {
252
+ result: {
253
+ status: CaptchaStatus.disapproved,
254
+ reason: "API.TIMESTAMP_TOO_OLD"
255
+ }
256
+ });
147
257
  return notVerifiedResponse;
148
258
  }
259
+ if (userAccessRulesStorage) {
260
+ try {
261
+ const blockPolicy = await this.checkForHardBlock(
262
+ userAccessRulesStorage,
263
+ challengeRecord,
264
+ challengeRecord.userAccount,
265
+ challengeRecord.headers,
266
+ challengeRecord.coords
267
+ );
268
+ if (blockPolicy) {
269
+ this.logger.info(() => ({
270
+ msg: "User blocked by access policy in server PoW verification",
271
+ data: {
272
+ challenge,
273
+ userAccount: challengeRecord.userAccount,
274
+ dappAccount,
275
+ policy: blockPolicy
276
+ }
277
+ }));
278
+ await this.db.updatePowCaptchaRecord(challengeRecord.challenge, {
279
+ result: {
280
+ status: CaptchaStatus.disapproved,
281
+ reason: "API.ACCESS_POLICY_BLOCK"
282
+ }
283
+ });
284
+ return notVerifiedResponse;
285
+ }
286
+ } catch (error) {
287
+ this.logger.warn(() => ({
288
+ msg: "Failed to check user access policies in server PoW verification",
289
+ error
290
+ }));
291
+ }
292
+ }
149
293
  if (ip) {
150
294
  const challengeIpAddress = getIpAddressFromComposite(
151
295
  challengeRecord.ipAddress
@@ -173,6 +317,12 @@ class PowCaptchaManager extends CaptchaManager {
173
317
  distanceKm: ipValidation.distanceKm
174
318
  }
175
319
  }));
320
+ await this.db.updatePowCaptchaRecord(challengeRecord.challenge, {
321
+ result: {
322
+ status: CaptchaStatus.disapproved,
323
+ reason: "API.FAILED_IP_VALIDATION"
324
+ }
325
+ });
176
326
  return notVerifiedResponse;
177
327
  }
178
328
  }
@@ -193,6 +343,61 @@ class PowCaptchaManager extends CaptchaManager {
193
343
  }
194
344
  return { verified: true, ...score ? { score } : {} };
195
345
  }
346
+ /**
347
+ * Decrypts behavioral data
348
+ * @param encryptedData - The encrypted behavioral data
349
+ * @param decryptKeys - Array of possible decryption keys to try
350
+ * @returns Decrypted behavioral data in unpacked format, or null if decryption fails
351
+ */
352
+ async decryptBehavioralData(encryptedData, decryptKeys) {
353
+ const decryptBehavioralData = (await import("../detection/decodeBehavior.js")).default;
354
+ const validKeys = decryptKeys.filter((k) => k);
355
+ if (validKeys.length === 0) {
356
+ this.logger?.error(() => ({
357
+ msg: "No decryption keys provided for behavioral data"
358
+ }));
359
+ return null;
360
+ }
361
+ for (const [keyIndex, key] of validKeys.entries()) {
362
+ try {
363
+ this.logger?.debug(() => ({
364
+ msg: "Attempting to decrypt behavioral data",
365
+ data: {
366
+ keyIndex: keyIndex + 1,
367
+ totalKeys: validKeys.length
368
+ }
369
+ }));
370
+ const result = await decryptBehavioralData(encryptedData, key);
371
+ this.logger?.info(() => ({
372
+ msg: "Behavioral data decrypted successfully",
373
+ data: {
374
+ keyIndex: keyIndex + 1,
375
+ c1Length: result.collector1?.length || 0,
376
+ c2Length: result.collector2?.length || 0,
377
+ c3Length: result.collector3?.length || 0,
378
+ deviceCapability: result.deviceCapability
379
+ }
380
+ }));
381
+ return result;
382
+ } catch (error) {
383
+ this.logger?.debug(() => ({
384
+ msg: "Failed to decrypt with key, trying next",
385
+ data: {
386
+ keyIndex: keyIndex + 1,
387
+ totalKeys: validKeys.length,
388
+ err: error
389
+ }
390
+ }));
391
+ }
392
+ }
393
+ this.logger?.error(() => ({
394
+ msg: "Failed to decrypt behavioral data with all available keys",
395
+ data: {
396
+ totalKeysAttempted: validKeys.length
397
+ }
398
+ }));
399
+ return null;
400
+ }
196
401
  }
197
402
  export {
198
403
  PowCaptchaManager
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powTasks.js","sourceRoot":"","sources":["../../../src/tasks/powCaptcha/powTasks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const validateSolution: (nonce: number, challenge: string, difficulty: number) => boolean;
2
+ export declare const checkPowSignature: (message: string, signature: string, address: string, signatureType?: string) => void;
3
+ //# sourceMappingURL=powTasksUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powTasksUtils.d.ts","sourceRoot":"","sources":["../../../src/tasks/powCaptcha/powTasksUtils.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,gBAAgB,UACrB,MAAM,aACF,MAAM,cACL,MAAM,KAChB,OAIkC,CAAC;AAEtC,eAAO,MAAM,iBAAiB,YACpB,MAAM,aACJ,MAAM,WACR,MAAM,kBACC,MAAM,KACpB,IAkBF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powTasksUtils.js","sourceRoot":"","sources":["../../../src/tasks/powCaptcha/powTasksUtils.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,KAAa,EACb,SAAiB,EACjB,UAAkB,EACR,EAAE,CACZ,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;KAC7D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KACjD,IAAI,CAAC,EAAE,CAAC;KACR,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,OAAe,EACf,SAAiB,EACjB,OAAe,EACf,aAAsB,EACf,EAAE;IACT,MAAM,qBAAqB,GAAG,eAAe,CAC5C,WAAW,CAAC,OAAO,CAAC,EACpB,SAAS,EACT,OAAO,CACP,CAAC;IACF,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CAAC,2BAA2B,EAAE;YACtD,OAAO,EAAE;gBACR,KAAK,EAAE,0CAA0C,aAAa,EAAE;gBAChE,cAAc,EAAE,iBAAiB,CAAC,IAAI;gBACtC,OAAO;gBACP,OAAO;gBACP,SAAS;gBACT,aAAa;aACb;SACD,CAAC,CAAC;IACJ,CAAC;AACF,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type Logger } from "@prosopo/common";
2
+ import type { KeyringPair } from "@prosopo/types";
3
+ import type { ProsopoCaptchaCountConfigSchemaOutput, ProsopoConfigOutput } from "@prosopo/types";
4
+ import type { IProviderDatabase } from "@prosopo/types-database";
5
+ import type { ProviderEnvironment } from "@prosopo/types-env";
6
+ import { ClientTaskManager } from "./client/clientTasks.js";
7
+ import { DatasetManager } from "./dataset/datasetTasks.js";
8
+ import { FrictionlessManager } from "./frictionless/frictionlessTasks.js";
9
+ import { ImgCaptchaManager } from "./imgCaptcha/imgCaptchaTasks.js";
10
+ import { PowCaptchaManager } from "./powCaptcha/powTasks.js";
11
+ export declare class Tasks {
12
+ db: IProviderDatabase;
13
+ captchaConfig: ProsopoCaptchaCountConfigSchemaOutput;
14
+ logger: Logger;
15
+ config: ProsopoConfigOutput;
16
+ pair: KeyringPair;
17
+ powCaptchaManager: PowCaptchaManager;
18
+ datasetManager: DatasetManager;
19
+ imgCaptchaManager: ImgCaptchaManager;
20
+ clientTaskManager: ClientTaskManager;
21
+ frictionlessManager: FrictionlessManager;
22
+ constructor(env: ProviderEnvironment, logger?: Logger);
23
+ setLogger(logger: Logger): void;
24
+ }
25
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,MAAM,EAIX,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAclD,OAAO,KAAK,EACX,qCAAqC,EACrC,mBAAmB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAK7D,qBAAa,KAAK;IACjB,EAAE,EAAE,iBAAiB,CAAC;IACtB,aAAa,EAAE,qCAAqC,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,cAAc,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,mBAAmB,CAAC;gBAE7B,GAAG,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,MAAM;IA4CrD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAU/B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/tasks/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,eAAe,EACf,SAAS,EACT,aAAa,GACb,MAAM,iBAAiB,CAAC;AAqBzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAK7D,MAAM,OAAO,KAAK;IAYjB,YAAY,GAAwB,EAAE,MAAe;QACpD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,MAAM;YACV,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,iCAAiC,EAAE;gBAC5D,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE;aAChD,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAErB,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC7C,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CACX,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACvC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,EAAE,CACP,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC7C,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CACX,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC7C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,EAAE,CACP,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CACjD,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CACX,CAAC;IACH,CAAC;IAED,SAAS,CAAC,MAAc;QAEvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,MAAM,CAAC;QACpC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=apiRegisterSiteKeyEndpoint.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiRegisterSiteKeyEndpoint.integration.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
1
+ import { ApiEndpointResponseStatus } from "@prosopo/api-route";
2
+ import { CaptchaType, ContextType, Tier, contextAwareThresholdDefault, } 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
+ contextAware: {
31
+ enabled: false,
32
+ contexts: {
33
+ default: {
34
+ type: ContextType.Default,
35
+ threshold: contextAwareThresholdDefault,
36
+ },
37
+ },
38
+ },
39
+ },
40
+ };
41
+ const db = getMockDb();
42
+ const endpointResponse = await registerSiteKey(db, record);
43
+ expect(db.updateClientRecords).toHaveBeenCalledTimes(1);
44
+ expect(db.updateClientRecords).toHaveBeenCalledWith([
45
+ record,
46
+ ]);
47
+ expect(endpointResponse).toEqual({
48
+ status: ApiEndpointResponseStatus.SUCCESS,
49
+ });
50
+ });
51
+ it("should throw an api error for an invalid site key", async () => {
52
+ const record = {
53
+ account: "invalidAccount",
54
+ tier: Tier.Free,
55
+ settings: {
56
+ captchaType: CaptchaType.frictionless,
57
+ domains: [],
58
+ frictionlessThreshold: 0.5,
59
+ imageThreshold: 0.5,
60
+ powDifficulty: 0.5,
61
+ disallowWebView: false,
62
+ contextAware: {
63
+ enabled: false,
64
+ contexts: {
65
+ default: {
66
+ type: ContextType.Default,
67
+ threshold: contextAwareThresholdDefault,
68
+ },
69
+ },
70
+ },
71
+ },
72
+ };
73
+ const db = getMockDb();
74
+ const registerPromise = registerSiteKey(db, record);
75
+ await expect(registerPromise).rejects.toThrowError("API.INVALID_SITE_KEY");
76
+ });
77
+ });
78
+ //# 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":"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"}
@@ -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":""}