@prosopo/provider 3.12.14 → 3.13.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 (356) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/api/captcha/getFrictionlessCaptchaChallenge.js +338 -0
  3. package/dist/api/captcha/getImageCaptchaChallenge.js +150 -0
  4. package/dist/api/captcha/getPoWCaptchaChallenge.js +156 -0
  5. package/dist/api/captcha/submitImageCaptchaSolution.js +87 -0
  6. package/dist/api/captcha/submitPoWCaptchaSolution.js +77 -0
  7. package/dist/api/captcha.js +18 -696
  8. package/dist/api/verify.js +2 -1
  9. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge.cjs +337 -0
  10. package/dist/cjs/api/captcha/getImageCaptchaChallenge.cjs +149 -0
  11. package/dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs +155 -0
  12. package/dist/cjs/api/captcha/submitImageCaptchaSolution.cjs +86 -0
  13. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +76 -0
  14. package/dist/cjs/api/captcha.cjs +17 -695
  15. package/dist/cjs/api/verify.cjs +2 -1
  16. package/dist/cjs/index.cjs +2 -0
  17. package/dist/cjs/schedulers/setClientEntropy.cjs +36 -0
  18. package/dist/cjs/tasks/captchaManager.cjs +2 -1
  19. package/dist/cjs/tasks/client/clientTasks.cjs +15 -0
  20. package/dist/cjs/tasks/detection/decodePayload.cjs +379 -609
  21. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +28 -9
  22. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +8 -2
  23. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +2 -2
  24. package/dist/cjs/tasks/tasks.cjs +1 -0
  25. package/dist/cjs/utils/hashUserIp.cjs +9 -0
  26. package/dist/index.js +2 -0
  27. package/dist/schedulers/setClientEntropy.js +29 -24
  28. package/dist/tasks/captchaManager.js +2 -1
  29. package/dist/tasks/client/clientTasks.js +16 -1
  30. package/dist/tasks/detection/decodePayload.js +379 -609
  31. package/dist/tasks/detection/getBotScore.js +2 -2
  32. package/dist/tasks/frictionless/frictionlessTasks.js +29 -10
  33. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +8 -2
  34. package/dist/tasks/powCaptcha/powTasks.js +2 -2
  35. package/dist/tasks/tasks.js +1 -0
  36. package/dist/utils/hashUserIp.js +9 -0
  37. package/package.json +18 -18
  38. package/coverage/base.css +0 -224
  39. package/coverage/block-navigation.js +0 -87
  40. package/coverage/clover.xml +0 -4278
  41. package/coverage/coverage-final.json +0 -42
  42. package/coverage/favicon.png +0 -0
  43. package/coverage/index.html +0 -311
  44. package/coverage/prettify.css +0 -1
  45. package/coverage/prettify.js +0 -2
  46. package/coverage/sort-arrow-sprite.png +0 -0
  47. package/coverage/sorter.js +0 -210
  48. package/coverage/src/api/admin/apiAdminRoutesProvider.ts.html +0 -214
  49. package/coverage/src/api/admin/apiRegisterSiteKeyEndpoint.ts.html +0 -259
  50. package/coverage/src/api/admin/apiRemoveDetectorKeyEndpoint.ts.html +0 -283
  51. package/coverage/src/api/admin/apiToggleMaintenanceModeEndpoint.ts.html +0 -334
  52. package/coverage/src/api/admin/apiUpdateDetectorKeyEndpoint.ts.html +0 -298
  53. package/coverage/src/api/admin/createApiAdminRoutesProvider.ts.html +0 -163
  54. package/coverage/src/api/admin/index.html +0 -191
  55. package/coverage/src/api/blacklistRequestInspector.ts.html +0 -751
  56. package/coverage/src/api/block.ts.html +0 -187
  57. package/coverage/src/api/captcha.ts.html +0 -2803
  58. package/coverage/src/api/domainMiddleware.ts.html +0 -493
  59. package/coverage/src/api/headerCheckMiddleware.ts.html +0 -256
  60. package/coverage/src/api/ignoreMiddleware.ts.html +0 -181
  61. package/coverage/src/api/index.html +0 -266
  62. package/coverage/src/api/ja4Middleware.ts.html +0 -400
  63. package/coverage/src/api/public.ts.html +0 -343
  64. package/coverage/src/api/robotsMiddleware.ts.html +0 -157
  65. package/coverage/src/api/validateAddress.ts.html +0 -214
  66. package/coverage/src/api/verify.ts.html +0 -871
  67. package/coverage/src/compositeIpAddress.ts.html +0 -340
  68. package/coverage/src/index.html +0 -161
  69. package/coverage/src/index.ts.html +0 -175
  70. package/coverage/src/pairs.ts.html +0 -238
  71. package/coverage/src/rules/index.html +0 -116
  72. package/coverage/src/rules/lang.ts.html +0 -187
  73. package/coverage/src/schedulers/captchaScheduler.ts.html +0 -250
  74. package/coverage/src/schedulers/getClientList.ts.html +0 -271
  75. package/coverage/src/schedulers/index.html +0 -131
  76. package/coverage/src/services/index.html +0 -131
  77. package/coverage/src/services/ipComparison.ts.html +0 -685
  78. package/coverage/src/services/ipInfo.ts.html +0 -490
  79. package/coverage/src/tasks/captchaManager.ts.html +0 -865
  80. package/coverage/src/tasks/client/clientTasks.ts.html +0 -1381
  81. package/coverage/src/tasks/client/index.html +0 -116
  82. package/coverage/src/tasks/dataset/datasetTasks.ts.html +0 -268
  83. package/coverage/src/tasks/dataset/datasetTasksUtils.ts.html +0 -271
  84. package/coverage/src/tasks/dataset/index.html +0 -131
  85. package/coverage/src/tasks/detection/decodePayload.js.html +0 -127
  86. package/coverage/src/tasks/detection/getBotScore.ts.html +0 -244
  87. package/coverage/src/tasks/detection/index.html +0 -131
  88. package/coverage/src/tasks/frictionless/frictionlessTasks.ts.html +0 -1216
  89. package/coverage/src/tasks/frictionless/frictionlessTasksUtils.ts.html +0 -247
  90. package/coverage/src/tasks/frictionless/index.html +0 -131
  91. package/coverage/src/tasks/imgCaptcha/imgCaptchaTasks.ts.html +0 -1972
  92. package/coverage/src/tasks/imgCaptcha/imgCaptchaTasksUtils.ts.html +0 -232
  93. package/coverage/src/tasks/imgCaptcha/index.html +0 -131
  94. package/coverage/src/tasks/index.html +0 -146
  95. package/coverage/src/tasks/index.ts.html +0 -127
  96. package/coverage/src/tasks/powCaptcha/index.html +0 -131
  97. package/coverage/src/tasks/powCaptcha/powTasks.ts.html +0 -961
  98. package/coverage/src/tasks/powCaptcha/powTasksUtils.ts.html +0 -244
  99. package/coverage/src/tasks/tasks.ts.html +0 -388
  100. package/coverage/src/util.ts.html +0 -1627
  101. package/coverage/src/utils/hashUserAgent.ts.html +0 -184
  102. package/coverage/src/utils/index.html +0 -116
  103. package/dist/api/admin/apiAdminRoutesProvider.d.ts +0 -9
  104. package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +0 -1
  105. package/dist/api/admin/apiAdminRoutesProvider.js.map +0 -1
  106. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts +0 -14
  107. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts.map +0 -1
  108. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js.map +0 -1
  109. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +0 -23
  110. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +0 -1
  111. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +0 -1
  112. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts +0 -13
  113. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts.map +0 -1
  114. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js.map +0 -1
  115. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +0 -14
  116. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +0 -1
  117. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +0 -1
  118. package/dist/api/admin/createApiAdminRoutesProvider.d.ts +0 -4
  119. package/dist/api/admin/createApiAdminRoutesProvider.d.ts.map +0 -1
  120. package/dist/api/admin/createApiAdminRoutesProvider.js.map +0 -1
  121. package/dist/api/blacklistRequestInspector.d.ts +0 -19
  122. package/dist/api/blacklistRequestInspector.d.ts.map +0 -1
  123. package/dist/api/blacklistRequestInspector.js.map +0 -1
  124. package/dist/api/block.d.ts +0 -3
  125. package/dist/api/block.d.ts.map +0 -1
  126. package/dist/api/block.js.map +0 -1
  127. package/dist/api/captcha.d.ts +0 -4
  128. package/dist/api/captcha.d.ts.map +0 -1
  129. package/dist/api/captcha.js.map +0 -1
  130. package/dist/api/domainMiddleware.d.ts +0 -4
  131. package/dist/api/domainMiddleware.d.ts.map +0 -1
  132. package/dist/api/domainMiddleware.js.map +0 -1
  133. package/dist/api/headerCheckMiddleware.d.ts +0 -4
  134. package/dist/api/headerCheckMiddleware.d.ts.map +0 -1
  135. package/dist/api/headerCheckMiddleware.js.map +0 -1
  136. package/dist/api/ignoreMiddleware.d.ts +0 -3
  137. package/dist/api/ignoreMiddleware.d.ts.map +0 -1
  138. package/dist/api/ignoreMiddleware.js.map +0 -1
  139. package/dist/api/ja4Middleware.d.ts +0 -10
  140. package/dist/api/ja4Middleware.d.ts.map +0 -1
  141. package/dist/api/ja4Middleware.js.map +0 -1
  142. package/dist/api/public.d.ts +0 -4
  143. package/dist/api/public.d.ts.map +0 -1
  144. package/dist/api/public.js.map +0 -1
  145. package/dist/api/robotsMiddleware.d.ts +0 -3
  146. package/dist/api/robotsMiddleware.d.ts.map +0 -1
  147. package/dist/api/robotsMiddleware.js.map +0 -1
  148. package/dist/api/validateAddress.d.ts +0 -5
  149. package/dist/api/validateAddress.d.ts.map +0 -1
  150. package/dist/api/validateAddress.js.map +0 -1
  151. package/dist/api/verify.d.ts +0 -4
  152. package/dist/api/verify.d.ts.map +0 -1
  153. package/dist/api/verify.js.map +0 -1
  154. package/dist/compositeIpAddress.d.ts +0 -5
  155. package/dist/compositeIpAddress.d.ts.map +0 -1
  156. package/dist/compositeIpAddress.js.map +0 -1
  157. package/dist/index.d.ts +0 -17
  158. package/dist/index.d.ts.map +0 -1
  159. package/dist/index.js.map +0 -1
  160. package/dist/pairs.d.ts +0 -3
  161. package/dist/pairs.d.ts.map +0 -1
  162. package/dist/pairs.js.map +0 -1
  163. package/dist/rules/lang.d.ts +0 -3
  164. package/dist/rules/lang.d.ts.map +0 -1
  165. package/dist/rules/lang.js.map +0 -1
  166. package/dist/schedulers/captchaScheduler.d.ts +0 -4
  167. package/dist/schedulers/captchaScheduler.d.ts.map +0 -1
  168. package/dist/schedulers/captchaScheduler.js.map +0 -1
  169. package/dist/schedulers/getClientList.d.ts +0 -4
  170. package/dist/schedulers/getClientList.d.ts.map +0 -1
  171. package/dist/schedulers/getClientList.js.map +0 -1
  172. package/dist/schedulers/setClientEntropy.d.ts +0 -4
  173. package/dist/schedulers/setClientEntropy.d.ts.map +0 -1
  174. package/dist/schedulers/setClientEntropy.js.map +0 -1
  175. package/dist/services/ipComparison.d.ts +0 -3
  176. package/dist/services/ipComparison.d.ts.map +0 -1
  177. package/dist/services/ipComparison.js.map +0 -1
  178. package/dist/services/ipInfo.d.ts +0 -3
  179. package/dist/services/ipInfo.d.ts.map +0 -1
  180. package/dist/services/ipInfo.js.map +0 -1
  181. package/dist/tasks/captchaManager.d.ts +0 -34
  182. package/dist/tasks/captchaManager.d.ts.map +0 -1
  183. package/dist/tasks/captchaManager.js.map +0 -1
  184. package/dist/tasks/client/clientTasks.d.ts +0 -21
  185. package/dist/tasks/client/clientTasks.d.ts.map +0 -1
  186. package/dist/tasks/client/clientTasks.js.map +0 -1
  187. package/dist/tasks/dataset/datasetTasks.d.ts +0 -13
  188. package/dist/tasks/dataset/datasetTasks.d.ts.map +0 -1
  189. package/dist/tasks/dataset/datasetTasks.js.map +0 -1
  190. package/dist/tasks/dataset/datasetTasksUtils.d.ts +0 -3
  191. package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +0 -1
  192. package/dist/tasks/dataset/datasetTasksUtils.js.map +0 -1
  193. package/dist/tasks/detection/decodePayload.d.ts +0 -5
  194. package/dist/tasks/detection/decodePayload.d.ts.map +0 -1
  195. package/dist/tasks/detection/decodePayload.js.map +0 -1
  196. package/dist/tasks/detection/getBotScore.d.ts +0 -20
  197. package/dist/tasks/detection/getBotScore.d.ts.map +0 -1
  198. package/dist/tasks/detection/getBotScore.js.map +0 -1
  199. package/dist/tasks/frictionless/frictionlessTasks.d.ts +0 -67
  200. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +0 -1
  201. package/dist/tasks/frictionless/frictionlessTasks.js.map +0 -1
  202. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +0 -6
  203. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +0 -1
  204. package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +0 -1
  205. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +0 -30
  206. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +0 -1
  207. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +0 -1
  208. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +0 -7
  209. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +0 -1
  210. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +0 -1
  211. package/dist/tasks/index.d.ts +0 -2
  212. package/dist/tasks/index.d.ts.map +0 -1
  213. package/dist/tasks/index.js.map +0 -1
  214. package/dist/tasks/powCaptcha/powTasks.d.ts +0 -17
  215. package/dist/tasks/powCaptcha/powTasks.d.ts.map +0 -1
  216. package/dist/tasks/powCaptcha/powTasks.js.map +0 -1
  217. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +0 -3
  218. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +0 -1
  219. package/dist/tasks/powCaptcha/powTasksUtils.js.map +0 -1
  220. package/dist/tasks/tasks.d.ts +0 -25
  221. package/dist/tasks/tasks.d.ts.map +0 -1
  222. package/dist/tasks/tasks.js.map +0 -1
  223. package/dist/tests/index.d.ts +0 -2
  224. package/dist/tests/index.d.ts.map +0 -1
  225. package/dist/tests/index.js +0 -2
  226. package/dist/tests/index.js.map +0 -1
  227. package/dist/tests/integration/accessRules.integration.test.d.ts +0 -2
  228. package/dist/tests/integration/accessRules.integration.test.d.ts.map +0 -1
  229. package/dist/tests/integration/accessRules.integration.test.js +0 -588
  230. package/dist/tests/integration/accessRules.integration.test.js.map +0 -1
  231. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts +0 -2
  232. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts.map +0 -1
  233. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +0 -60
  234. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +0 -1
  235. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts +0 -2
  236. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts.map +0 -1
  237. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +0 -368
  238. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +0 -1
  239. package/dist/tests/integration/imgCaptcha.integration.test.d.ts +0 -2
  240. package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +0 -1
  241. package/dist/tests/integration/imgCaptcha.integration.test.js +0 -272
  242. package/dist/tests/integration/imgCaptcha.integration.test.js.map +0 -1
  243. package/dist/tests/integration/ipValidation.integration.test.d.ts +0 -2
  244. package/dist/tests/integration/ipValidation.integration.test.d.ts.map +0 -1
  245. package/dist/tests/integration/ipValidation.integration.test.js +0 -75
  246. package/dist/tests/integration/ipValidation.integration.test.js.map +0 -1
  247. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +0 -32
  248. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +0 -1
  249. package/dist/tests/integration/mocks/solvedTestCaptchas.js +0 -1046
  250. package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +0 -1
  251. package/dist/tests/integration/powCaptcha.integration.test.d.ts +0 -2
  252. package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +0 -1
  253. package/dist/tests/integration/powCaptcha.integration.test.js +0 -308
  254. package/dist/tests/integration/powCaptcha.integration.test.js.map +0 -1
  255. package/dist/tests/integration/registerSitekey.d.ts +0 -3
  256. package/dist/tests/integration/registerSitekey.d.ts.map +0 -1
  257. package/dist/tests/integration/registerSitekey.js +0 -24
  258. package/dist/tests/integration/registerSitekey.js.map +0 -1
  259. package/dist/tests/integration/userAccessPolicy.d.ts +0 -2
  260. package/dist/tests/integration/userAccessPolicy.d.ts.map +0 -1
  261. package/dist/tests/integration/userAccessPolicy.js +0 -2
  262. package/dist/tests/integration/userAccessPolicy.js.map +0 -1
  263. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts +0 -2
  264. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts.map +0 -1
  265. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +0 -60
  266. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +0 -1
  267. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts +0 -2
  268. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts.map +0 -1
  269. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js +0 -43
  270. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js.map +0 -1
  271. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts +0 -2
  272. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts.map +0 -1
  273. package/dist/tests/unit/api/ja4Middleware.unit.test.js +0 -57
  274. package/dist/tests/unit/api/ja4Middleware.unit.test.js.map +0 -1
  275. package/dist/tests/unit/compositeIpAddress.unit.test.d.ts +0 -2
  276. package/dist/tests/unit/compositeIpAddress.unit.test.d.ts.map +0 -1
  277. package/dist/tests/unit/compositeIpAddress.unit.test.js +0 -86
  278. package/dist/tests/unit/compositeIpAddress.unit.test.js.map +0 -1
  279. package/dist/tests/unit/pairs.unit.test.d.ts +0 -2
  280. package/dist/tests/unit/pairs.unit.test.d.ts.map +0 -1
  281. package/dist/tests/unit/pairs.unit.test.js +0 -83
  282. package/dist/tests/unit/pairs.unit.test.js.map +0 -1
  283. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +0 -2
  284. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +0 -1
  285. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +0 -75
  286. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +0 -1
  287. package/dist/tests/unit/services/ipComparison.unit.test.d.ts +0 -2
  288. package/dist/tests/unit/services/ipComparison.unit.test.d.ts.map +0 -1
  289. package/dist/tests/unit/services/ipComparison.unit.test.js +0 -258
  290. package/dist/tests/unit/services/ipComparison.unit.test.js.map +0 -1
  291. package/dist/tests/unit/services/ipInfo.unit.test.d.ts +0 -2
  292. package/dist/tests/unit/services/ipInfo.unit.test.d.ts.map +0 -1
  293. package/dist/tests/unit/services/ipInfo.unit.test.js +0 -210
  294. package/dist/tests/unit/services/ipInfo.unit.test.js.map +0 -1
  295. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts +0 -2
  296. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts.map +0 -1
  297. package/dist/tests/unit/tasks/captchaManager.unit.test.js +0 -311
  298. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +0 -1
  299. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +0 -2
  300. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +0 -1
  301. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +0 -289
  302. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +0 -1
  303. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +0 -2
  304. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +0 -1
  305. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +0 -92
  306. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +0 -1
  307. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +0 -2
  308. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +0 -1
  309. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +0 -75
  310. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +0 -1
  311. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts +0 -2
  312. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts.map +0 -1
  313. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +0 -143
  314. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +0 -1
  315. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts +0 -2
  316. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts.map +0 -1
  317. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +0 -145
  318. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +0 -1
  319. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts +0 -2
  320. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts.map +0 -1
  321. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +0 -64
  322. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +0 -1
  323. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +0 -2
  324. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +0 -1
  325. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +0 -388
  326. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +0 -1
  327. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +0 -2
  328. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +0 -1
  329. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +0 -46
  330. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +0 -1
  331. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +0 -2
  332. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +0 -1
  333. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +0 -216
  334. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +0 -1
  335. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +0 -2
  336. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +0 -1
  337. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +0 -69
  338. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +0 -1
  339. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts +0 -2
  340. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts.map +0 -1
  341. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js +0 -505
  342. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js.map +0 -1
  343. package/dist/tests/unit/util.ipDistance.unit.test.d.ts +0 -2
  344. package/dist/tests/unit/util.ipDistance.unit.test.d.ts.map +0 -1
  345. package/dist/tests/unit/util.ipDistance.unit.test.js +0 -93
  346. package/dist/tests/unit/util.ipDistance.unit.test.js.map +0 -1
  347. package/dist/tests/unit/util.unit.test.d.ts +0 -2
  348. package/dist/tests/unit/util.unit.test.d.ts.map +0 -1
  349. package/dist/tests/unit/util.unit.test.js +0 -170
  350. package/dist/tests/unit/util.unit.test.js.map +0 -1
  351. package/dist/util.d.ts +0 -24
  352. package/dist/util.d.ts.map +0 -1
  353. package/dist/util.js.map +0 -1
  354. package/dist/utils/hashUserAgent.d.ts +0 -2
  355. package/dist/utils/hashUserAgent.d.ts.map +0 -1
  356. package/dist/utils/hashUserAgent.js.map +0 -1
@@ -1,210 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import { getIPInfo } from "../../../services/ipInfo.js";
3
- const mockFetch = vi.fn();
4
- global.fetch = mockFetch;
5
- const mockApiResponse = {
6
- ip: "8.8.8.8",
7
- rir: "ARIN",
8
- is_bogon: false,
9
- is_mobile: false,
10
- is_satellite: false,
11
- is_crawler: false,
12
- is_datacenter: true,
13
- is_tor: false,
14
- is_proxy: false,
15
- is_vpn: false,
16
- is_abuser: false,
17
- company: {
18
- name: "Google LLC",
19
- abuser_score: "0.001 (Very Low)",
20
- domain: "google.com",
21
- type: "business",
22
- network: "8.8.8.0 - 8.8.8.255",
23
- whois: "https://api.service/?whois=8.8.8.0",
24
- },
25
- location: {
26
- is_eu_member: false,
27
- calling_code: "1",
28
- currency_code: "USD",
29
- continent: "NA",
30
- country: "United States",
31
- country_code: "US",
32
- state: "California",
33
- city: "Mountain View",
34
- latitude: 37.4056,
35
- longitude: -122.0775,
36
- zip: "94043",
37
- timezone: "America/Los_Angeles",
38
- local_time: "2025-02-18T10:00:00-08:00",
39
- local_time_unix: 1708278000,
40
- is_dst: false,
41
- },
42
- asn: {
43
- asn: 15169,
44
- abuser_score: "0.001 (Very Low)",
45
- route: "8.8.8.0/24",
46
- descr: "GOOGLE, US",
47
- country: "us",
48
- active: true,
49
- org: "Google LLC",
50
- domain: "google.com",
51
- abuse: "abuse@google.com",
52
- type: "business",
53
- created: "2000-03-30",
54
- updated: "2012-02-24",
55
- rir: "ARIN",
56
- whois: "https://api.service/?whois=AS15169",
57
- },
58
- elapsed_ms: 0.15,
59
- };
60
- describe("getIPInfo", () => {
61
- beforeEach(() => {
62
- vi.clearAllMocks();
63
- });
64
- afterEach(() => {
65
- vi.restoreAllMocks();
66
- });
67
- it("should return error for invalid IP input", async () => {
68
- const result = (await getIPInfo("", "test-api-url"));
69
- expect(result.isValid).toBe(false);
70
- expect(result.error).toBe("Invalid IP address provided");
71
- expect(mockFetch).not.toHaveBeenCalled();
72
- });
73
- it("should return error for non-string IP input", async () => {
74
- const result = (await getIPInfo(null));
75
- expect(result.isValid).toBe(false);
76
- expect(result.error).toBe("Invalid IP address provided");
77
- expect(result.ip).toBe("undefined");
78
- expect(mockFetch).not.toHaveBeenCalled();
79
- });
80
- it("should make correct API request without API key", async () => {
81
- mockFetch.mockResolvedValueOnce({
82
- ok: true,
83
- json: vi.fn().mockResolvedValueOnce(mockApiResponse),
84
- });
85
- await getIPInfo("8.8.8.8", "test-api-url");
86
- expect(mockFetch).toHaveBeenCalledWith("test-api-url", {
87
- method: "POST",
88
- headers: {
89
- "Content-Type": "application/json",
90
- Accept: "application/json",
91
- },
92
- body: JSON.stringify({ q: "8.8.8.8" }),
93
- });
94
- });
95
- it("should make correct API request with API key", async () => {
96
- mockFetch.mockResolvedValueOnce({
97
- ok: true,
98
- json: vi.fn().mockResolvedValueOnce(mockApiResponse),
99
- });
100
- await getIPInfo("8.8.8.8", "test-api-url", "test-api-key");
101
- expect(mockFetch).toHaveBeenCalledWith("test-api-url", {
102
- method: "POST",
103
- headers: {
104
- "Content-Type": "application/json",
105
- Accept: "application/json",
106
- },
107
- body: JSON.stringify({ q: "8.8.8.8", key: "test-api-key" }),
108
- });
109
- });
110
- it("should return error when API request fails", async () => {
111
- mockFetch.mockResolvedValueOnce({
112
- ok: false,
113
- status: 500,
114
- statusText: "Internal Server Error",
115
- });
116
- const result = (await getIPInfo("8.8.8.8", "test-api-url"));
117
- expect(result.isValid).toBe(false);
118
- expect(result.error).toBe("API request failed with status 500: Internal Server Error");
119
- expect(result.ip).toBe("8.8.8.8");
120
- });
121
- it("should return error for bogon IP", async () => {
122
- const bogonResponse = { ...mockApiResponse, is_bogon: true };
123
- mockFetch.mockResolvedValueOnce({
124
- ok: true,
125
- json: vi.fn().mockResolvedValueOnce(bogonResponse),
126
- });
127
- const result = (await getIPInfo("127.0.0.1", "test-api-url"));
128
- expect(result.isValid).toBe(false);
129
- expect(result.error).toBe("IP address is bogon (non-routable)");
130
- expect(result.ip).toBe("127.0.0.1");
131
- });
132
- it("should return structured IP info for valid response", async () => {
133
- mockFetch.mockResolvedValueOnce({
134
- ok: true,
135
- json: vi.fn().mockResolvedValueOnce(mockApiResponse),
136
- });
137
- const result = await getIPInfo("8.8.8.8", "test-api-url");
138
- expect(result.isValid).toBe(true);
139
- if (result.isValid) {
140
- expect(result.ip).toBe("8.8.8.8");
141
- expect(result.isDatacenter).toBe(true);
142
- expect(result.isVPN).toBe(false);
143
- expect(result.isTor).toBe(false);
144
- expect(result.providerName).toBe("Google LLC");
145
- expect(result.country).toBe("United States");
146
- expect(result.countryCode).toBe("US");
147
- expect(result.latitude).toBe(37.4056);
148
- expect(result.longitude).toBe(-122.0775);
149
- expect(result.asnNumber).toBe(15169);
150
- }
151
- });
152
- it("should include raw response when requested", async () => {
153
- mockFetch.mockResolvedValueOnce({
154
- ok: true,
155
- json: vi.fn().mockResolvedValueOnce(mockApiResponse),
156
- });
157
- const result = await getIPInfo("8.8.8.8", "test-api-url", undefined, true);
158
- expect(result.isValid).toBe(true);
159
- if (result.isValid) {
160
- expect(result.rawResponse).toEqual(mockApiResponse);
161
- }
162
- });
163
- it("should handle VPN detection", async () => {
164
- const vpnResponse = {
165
- ...mockApiResponse,
166
- is_vpn: true,
167
- vpn: {
168
- ip: "185.254.75.23",
169
- service: "MullvadVPN",
170
- url: "https://mullvad.net",
171
- type: "exit_node",
172
- last_seen: 1708278000,
173
- last_seen_str: "2025-02-18T10:00:00Z",
174
- country_code: "se",
175
- city_name: "Stockholm",
176
- latitude: 59.3293,
177
- longitude: 18.0686,
178
- },
179
- };
180
- mockFetch.mockResolvedValueOnce({
181
- ok: true,
182
- json: vi.fn().mockResolvedValueOnce(vpnResponse),
183
- });
184
- const result = await getIPInfo("185.254.75.23", "test-api-url");
185
- expect(result.isValid).toBe(true);
186
- if (result.isValid) {
187
- expect(result.isVPN).toBe(true);
188
- expect(result.vpnService).toBe("MullvadVPN");
189
- expect(result.vpnType).toBe("exit_node");
190
- }
191
- });
192
- it("should handle network errors", async () => {
193
- mockFetch.mockRejectedValueOnce(new Error("Network error"));
194
- const result = (await getIPInfo("8.8.8.8", "test-api-url"));
195
- expect(result.isValid).toBe(false);
196
- expect(result.error).toBe("Network or parsing error: Network error");
197
- expect(result.ip).toBe("8.8.8.8");
198
- });
199
- it("should handle JSON parsing errors", async () => {
200
- mockFetch.mockResolvedValueOnce({
201
- ok: true,
202
- json: vi.fn().mockRejectedValueOnce(new Error("Invalid JSON")),
203
- });
204
- const result = (await getIPInfo("8.8.8.8", "test-api-url"));
205
- expect(result.isValid).toBe(false);
206
- expect(result.error).toBe("Network or parsing error: Invalid JSON");
207
- expect(result.ip).toBe("8.8.8.8");
208
- });
209
- });
210
- //# sourceMappingURL=ipInfo.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipInfo.unit.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/services/ipInfo.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=captchaManager.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"captchaManager.unit.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/unit/tasks/captchaManager.unit.test.ts"],"names":[],"mappings":""}
@@ -1,311 +0,0 @@
1
- import { getLogger } from "@prosopo/common";
2
- import { CaptchaType, Tier } from "@prosopo/types";
3
- import { beforeEach, describe, expect, it, vi } from "vitest";
4
- import { CaptchaManager } from "../../../tasks/captchaManager.js";
5
- const loggerOuter = getLogger("info", import.meta.url);
6
- const defaultUserSettings = {
7
- frictionlessThreshold: 0.8,
8
- domains: [],
9
- captchaType: CaptchaType.frictionless,
10
- powDifficulty: 4,
11
- imageThreshold: 0.8,
12
- disallowWebView: false,
13
- };
14
- describe("CaptchaManager", () => {
15
- let db;
16
- let pair;
17
- let logger;
18
- let captchaManager;
19
- let mockEnv;
20
- beforeEach(() => {
21
- db = {
22
- checkAndRemoveSession: vi.fn(),
23
- };
24
- pair = {
25
- sign: vi.fn(),
26
- address: "testAddress",
27
- };
28
- const mockLogger = {
29
- debug: vi.fn().mockImplementation(loggerOuter.debug.bind(loggerOuter)),
30
- log: vi.fn().mockImplementation(loggerOuter.log.bind(loggerOuter)),
31
- info: vi.fn().mockImplementation(loggerOuter.info.bind(loggerOuter)),
32
- error: vi.fn().mockImplementation(loggerOuter.error.bind(loggerOuter)),
33
- trace: vi.fn().mockImplementation(loggerOuter.trace.bind(loggerOuter)),
34
- fatal: vi.fn().mockImplementation(loggerOuter.fatal.bind(loggerOuter)),
35
- warn: vi.fn().mockImplementation(loggerOuter.warn.bind(loggerOuter)),
36
- };
37
- logger = mockLogger;
38
- captchaManager = new CaptchaManager(db, pair, logger);
39
- mockEnv = {
40
- config: {
41
- ipApi: {
42
- apiKey: "testKey",
43
- baseUrl: "https://api.ipapi.is",
44
- },
45
- },
46
- };
47
- vi.clearAllMocks();
48
- });
49
- describe("isValidRequest", () => {
50
- it("should validate a request for an image captcha when the client settings are set to image and no session ID is passed", async () => {
51
- const result = await captchaManager.isValidRequest({
52
- account: "account",
53
- tier: Tier.Free,
54
- settings: {
55
- ...defaultUserSettings,
56
- captchaType: CaptchaType.image,
57
- },
58
- }, CaptchaType.image, mockEnv);
59
- expect(result).toEqual({
60
- valid: true,
61
- type: CaptchaType.image,
62
- });
63
- });
64
- it("should validate a request for an pow captcha when the client settings are set to pow and no session ID is passed", async () => {
65
- const result = await captchaManager.isValidRequest({
66
- account: "account",
67
- tier: Tier.Free,
68
- settings: {
69
- ...defaultUserSettings,
70
- captchaType: CaptchaType.pow,
71
- },
72
- }, CaptchaType.pow, mockEnv);
73
- expect(result).toEqual({
74
- valid: true,
75
- type: CaptchaType.pow,
76
- });
77
- });
78
- it("should validate a request for an pow captcha when the client settings are set to frictionless and a session ID is passed and found with captcha type pow", async () => {
79
- db.checkAndRemoveSession.mockResolvedValue({
80
- sessionId: "sessionId",
81
- captchaType: CaptchaType.pow,
82
- });
83
- const result = await captchaManager.isValidRequest({
84
- account: "account",
85
- tier: Tier.Free,
86
- settings: {
87
- ...defaultUserSettings,
88
- captchaType: CaptchaType.frictionless,
89
- },
90
- }, CaptchaType.pow, mockEnv, "sessionId", undefined, "127.0.0.1");
91
- expect(result).toEqual({
92
- valid: true,
93
- type: CaptchaType.pow,
94
- sessionId: "sessionId",
95
- });
96
- });
97
- it("should validate a request for an image captcha when the client settings are set to frictionless and a session ID is passed and found with captcha type image", async () => {
98
- db.checkAndRemoveSession.mockResolvedValue({
99
- sessionId: "sessionId",
100
- captchaType: CaptchaType.image,
101
- });
102
- const result = await captchaManager.isValidRequest({
103
- account: "account",
104
- tier: Tier.Free,
105
- settings: {
106
- ...defaultUserSettings,
107
- captchaType: CaptchaType.frictionless,
108
- },
109
- }, CaptchaType.image, mockEnv, "sessionId", undefined, "127.0.0.1");
110
- expect(result).toEqual({
111
- valid: true,
112
- type: CaptchaType.image,
113
- sessionId: "sessionId",
114
- });
115
- });
116
- it("should not validate a request for an image captcha when the client settings are set to frictionless and a session ID is passed and found with captcha type pow", async () => {
117
- db.checkAndRemoveSession.mockResolvedValue({
118
- sessionId: "sessionId",
119
- captchaType: CaptchaType.pow,
120
- });
121
- const result = await captchaManager.isValidRequest({
122
- account: "account",
123
- tier: Tier.Free,
124
- settings: {
125
- ...defaultUserSettings,
126
- captchaType: CaptchaType.frictionless,
127
- },
128
- }, CaptchaType.image, mockEnv, "sessionId");
129
- expect(result).toEqual({
130
- valid: false,
131
- reason: "CAPTCHA.NO_SESSION_FOUND",
132
- type: CaptchaType.image,
133
- });
134
- });
135
- it("should not validate a request for a pow captcha when the client settings are set to frictionless and a session ID is passed and found with captcha type image", async () => {
136
- db.checkAndRemoveSession.mockResolvedValue({
137
- sessionId: "sessionId",
138
- captchaType: CaptchaType.image,
139
- });
140
- const result = await captchaManager.isValidRequest({
141
- account: "account",
142
- tier: Tier.Free,
143
- settings: {
144
- ...defaultUserSettings,
145
- captchaType: CaptchaType.frictionless,
146
- },
147
- }, CaptchaType.pow, mockEnv, "sessionId");
148
- expect(result).toEqual({
149
- valid: false,
150
- reason: "CAPTCHA.NO_SESSION_FOUND",
151
- type: CaptchaType.pow,
152
- });
153
- });
154
- it("should not validate a request for an image captcha when the client settings are set to frictionless and a session ID is passed but not found", async () => {
155
- db.checkAndRemoveSession.mockResolvedValue(undefined);
156
- const sessionId = "sessionId";
157
- const result = await captchaManager.isValidRequest({
158
- account: "account",
159
- tier: Tier.Free,
160
- settings: {
161
- ...defaultUserSettings,
162
- captchaType: CaptchaType.frictionless,
163
- },
164
- }, CaptchaType.image, mockEnv, sessionId);
165
- expect(result).toEqual({
166
- valid: false,
167
- reason: "CAPTCHA.NO_SESSION_FOUND",
168
- type: CaptchaType.image,
169
- });
170
- });
171
- it("should not validate a request for a pow captcha when the client settings are set to frictionless and a session ID is passed but not found", async () => {
172
- db.checkAndRemoveSession.mockResolvedValue(undefined);
173
- const sessionId = "sessionId";
174
- const result = await captchaManager.isValidRequest({
175
- account: "account",
176
- tier: Tier.Free,
177
- settings: {
178
- ...defaultUserSettings,
179
- captchaType: CaptchaType.frictionless,
180
- },
181
- }, CaptchaType.pow, mockEnv, sessionId);
182
- expect(result).toEqual({
183
- valid: false,
184
- reason: "CAPTCHA.NO_SESSION_FOUND",
185
- type: CaptchaType.pow,
186
- });
187
- });
188
- it("should not validate a request for a pow captcha when the client settings are set to frictionless but no session ID is passed in", async () => {
189
- const result = await captchaManager.isValidRequest({
190
- account: "account",
191
- tier: Tier.Free,
192
- settings: {
193
- ...defaultUserSettings,
194
- captchaType: CaptchaType.frictionless,
195
- },
196
- }, CaptchaType.pow, mockEnv, undefined);
197
- expect(result).toEqual({
198
- valid: false,
199
- reason: "API.INCORRECT_CAPTCHA_TYPE",
200
- type: CaptchaType.pow,
201
- });
202
- });
203
- it("should not validate a request for an image captcha when the client settings are set to frictionless but no session ID is passed in", async () => {
204
- const result = await captchaManager.isValidRequest({
205
- account: "account",
206
- tier: Tier.Free,
207
- settings: {
208
- ...defaultUserSettings,
209
- captchaType: CaptchaType.frictionless,
210
- },
211
- }, CaptchaType.image, mockEnv, undefined);
212
- expect(result).toEqual({
213
- valid: false,
214
- reason: "API.INCORRECT_CAPTCHA_TYPE",
215
- type: CaptchaType.image,
216
- });
217
- });
218
- it("should not validate a request for a pow captcha when the client settings are set to image", async () => {
219
- const result = await captchaManager.isValidRequest({
220
- account: "account",
221
- tier: Tier.Free,
222
- settings: {
223
- ...defaultUserSettings,
224
- captchaType: CaptchaType.image,
225
- },
226
- }, CaptchaType.pow, mockEnv);
227
- expect(result).toEqual({
228
- valid: false,
229
- reason: "API.INCORRECT_CAPTCHA_TYPE",
230
- type: CaptchaType.pow,
231
- });
232
- });
233
- it("should not validate a request for an image captcha when the client settings are set to pow", async () => {
234
- const result = await captchaManager.isValidRequest({
235
- account: "account",
236
- tier: Tier.Free,
237
- settings: {
238
- ...defaultUserSettings,
239
- captchaType: CaptchaType.pow,
240
- },
241
- }, CaptchaType.image, mockEnv);
242
- expect(result).toEqual({
243
- valid: false,
244
- reason: "API.INCORRECT_CAPTCHA_TYPE",
245
- type: CaptchaType.image,
246
- });
247
- });
248
- it("should validate a request when no IP is stored on frictionless token", async () => {
249
- db.checkAndRemoveSession.mockResolvedValue({
250
- sessionId: "sessionId",
251
- captchaType: CaptchaType.image,
252
- });
253
- const result = await captchaManager.isValidRequest({
254
- account: "account",
255
- tier: Tier.Free,
256
- settings: {
257
- ...defaultUserSettings,
258
- captchaType: CaptchaType.frictionless,
259
- },
260
- }, CaptchaType.image, mockEnv, "sessionId", undefined, "192.168.1.100");
261
- expect(result).toEqual({
262
- valid: true,
263
- type: CaptchaType.image,
264
- sessionId: "sessionId",
265
- });
266
- });
267
- it("should validate a request when no currentIP is provided even with IP stored on token", async () => {
268
- db.checkAndRemoveSession.mockResolvedValue({
269
- sessionId: "sessionId",
270
- captchaType: CaptchaType.image,
271
- });
272
- const result = await captchaManager.isValidRequest({
273
- account: "account",
274
- tier: Tier.Free,
275
- settings: {
276
- ...defaultUserSettings,
277
- captchaType: CaptchaType.frictionless,
278
- },
279
- }, CaptchaType.image, mockEnv, "sessionId", undefined, undefined);
280
- expect(result).toEqual({
281
- valid: true,
282
- type: CaptchaType.image,
283
- sessionId: "sessionId",
284
- });
285
- });
286
- });
287
- describe("getVerificationResponse", () => {
288
- it("should return a verification response with a score if the tier is not free", async () => {
289
- const result = captchaManager.getVerificationResponse(true, {
290
- account: "account",
291
- tier: Tier.Professional,
292
- }, () => "translated", 0.5);
293
- expect(result).toEqual({
294
- status: "translated",
295
- verified: true,
296
- score: 0.5,
297
- });
298
- });
299
- it("should return a verification response without a score if the tier is free", async () => {
300
- const result = captchaManager.getVerificationResponse(true, {
301
- account: "account",
302
- tier: Tier.Free,
303
- }, () => "translated", 0.5);
304
- expect(result).toEqual({
305
- status: "translated",
306
- verified: true,
307
- });
308
- });
309
- });
310
- });
311
- //# sourceMappingURL=captchaManager.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"captchaManager.unit.test.js","sourceRoot":"","sources":["../../../../src/tests/unit/tasks/captchaManager.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=clientTasks.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clientTasks.unit.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/client/clientTasks.unit.test.ts"],"names":[],"mappings":""}