@prosopo/provider 3.12.3 → 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 (351) hide show
  1. package/CHANGELOG.md +173 -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.map +1 -0
  77. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts +13 -0
  78. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.d.ts.map +1 -0
  79. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js +40 -0
  80. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js.map +1 -0
  81. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +14 -0
  82. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +1 -0
  83. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +1 -0
  84. package/dist/api/admin/createApiAdminRoutesProvider.d.ts +4 -0
  85. package/dist/api/admin/createApiAdminRoutesProvider.d.ts.map +1 -0
  86. package/dist/api/admin/createApiAdminRoutesProvider.js.map +1 -0
  87. package/dist/api/blacklistRequestInspector.d.ts +19 -0
  88. package/dist/api/blacklistRequestInspector.d.ts.map +1 -0
  89. package/dist/api/blacklistRequestInspector.js +4 -4
  90. package/dist/api/blacklistRequestInspector.js.map +1 -0
  91. package/dist/api/block.d.ts +3 -0
  92. package/dist/api/block.d.ts.map +1 -0
  93. package/dist/api/block.js.map +1 -0
  94. package/dist/api/captcha.d.ts +4 -0
  95. package/dist/api/captcha.d.ts.map +1 -0
  96. package/dist/api/captcha.js +130 -40
  97. package/dist/api/captcha.js.map +1 -0
  98. package/dist/api/domainMiddleware.d.ts +4 -0
  99. package/dist/api/domainMiddleware.d.ts.map +1 -0
  100. package/dist/api/domainMiddleware.js.map +1 -0
  101. package/dist/api/headerCheckMiddleware.d.ts +4 -0
  102. package/dist/api/headerCheckMiddleware.d.ts.map +1 -0
  103. package/dist/api/headerCheckMiddleware.js.map +1 -0
  104. package/dist/api/ignoreMiddleware.d.ts +3 -0
  105. package/dist/api/ignoreMiddleware.d.ts.map +1 -0
  106. package/dist/api/ignoreMiddleware.js.map +1 -0
  107. package/dist/api/ja4Middleware.d.ts +10 -0
  108. package/dist/api/ja4Middleware.d.ts.map +1 -0
  109. package/dist/api/ja4Middleware.js.map +1 -0
  110. package/dist/api/public.d.ts +4 -0
  111. package/dist/api/public.d.ts.map +1 -0
  112. package/dist/api/public.js.map +1 -0
  113. package/dist/api/robotsMiddleware.d.ts +3 -0
  114. package/dist/api/robotsMiddleware.d.ts.map +1 -0
  115. package/dist/api/robotsMiddleware.js.map +1 -0
  116. package/dist/api/validateAddress.d.ts +5 -0
  117. package/dist/api/validateAddress.d.ts.map +1 -0
  118. package/dist/api/validateAddress.js.map +1 -0
  119. package/dist/api/verify.d.ts +4 -0
  120. package/dist/api/verify.d.ts.map +1 -0
  121. package/dist/api/verify.js +23 -1
  122. package/dist/api/verify.js.map +1 -0
  123. package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +13 -18
  124. package/dist/cjs/api/admin/apiRegisterSiteKeyEndpoint.cjs +2 -1
  125. package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +3 -2
  126. package/dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs +41 -0
  127. package/dist/cjs/api/blacklistRequestInspector.cjs +3 -3
  128. package/dist/cjs/api/captcha.cjs +130 -40
  129. package/dist/cjs/api/ja4Middleware.cjs +2 -1
  130. package/dist/cjs/api/verify.cjs +23 -1
  131. package/dist/cjs/tasks/captchaManager.cjs +5 -21
  132. package/dist/cjs/tasks/client/clientTasks.cjs +3 -36
  133. package/dist/cjs/tasks/detection/decodePayload.cjs +570 -669
  134. package/dist/cjs/tasks/detection/getBotScore.cjs +15 -2
  135. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +116 -29
  136. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +18 -12
  137. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +6 -6
  138. package/dist/cjs/util.cjs +14 -1
  139. package/dist/compositeIpAddress.d.ts +5 -0
  140. package/dist/compositeIpAddress.d.ts.map +1 -0
  141. package/dist/compositeIpAddress.js.map +1 -0
  142. package/dist/index.d.ts +17 -0
  143. package/dist/index.d.ts.map +1 -0
  144. package/dist/index.js.map +1 -0
  145. package/dist/pairs.d.ts +3 -0
  146. package/dist/pairs.d.ts.map +1 -0
  147. package/dist/pairs.js.map +1 -0
  148. package/dist/rules/lang.d.ts +3 -0
  149. package/dist/rules/lang.d.ts.map +1 -0
  150. package/dist/rules/lang.js.map +1 -0
  151. package/dist/schedulers/captchaScheduler.d.ts +4 -0
  152. package/dist/schedulers/captchaScheduler.d.ts.map +1 -0
  153. package/dist/schedulers/captchaScheduler.js.map +1 -0
  154. package/dist/schedulers/getClientList.d.ts +4 -0
  155. package/dist/schedulers/getClientList.d.ts.map +1 -0
  156. package/dist/schedulers/getClientList.js.map +1 -0
  157. package/dist/schedulers/setClientEntropy.d.ts +4 -0
  158. package/dist/schedulers/setClientEntropy.d.ts.map +1 -0
  159. package/dist/schedulers/setClientEntropy.js +31 -0
  160. package/dist/schedulers/setClientEntropy.js.map +1 -0
  161. package/dist/services/ipComparison.d.ts +3 -0
  162. package/dist/services/ipComparison.d.ts.map +1 -0
  163. package/dist/services/ipComparison.js.map +1 -0
  164. package/dist/services/ipInfo.d.ts +3 -0
  165. package/dist/services/ipInfo.d.ts.map +1 -0
  166. package/dist/services/ipInfo.js.map +1 -0
  167. package/dist/tasks/captchaManager.d.ts +34 -0
  168. package/dist/tasks/captchaManager.d.ts.map +1 -0
  169. package/dist/tasks/captchaManager.js +3 -20
  170. package/dist/tasks/captchaManager.js.map +1 -0
  171. package/dist/tasks/client/clientTasks.d.ts +21 -0
  172. package/dist/tasks/client/clientTasks.d.ts.map +1 -0
  173. package/dist/tasks/client/clientTasks.js +3 -36
  174. package/dist/tasks/client/clientTasks.js.map +1 -0
  175. package/dist/tasks/dataset/datasetTasks.d.ts +13 -0
  176. package/dist/tasks/dataset/datasetTasks.d.ts.map +1 -0
  177. package/dist/tasks/dataset/datasetTasks.js.map +1 -0
  178. package/dist/tasks/dataset/datasetTasksUtils.d.ts +3 -0
  179. package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +1 -0
  180. package/dist/tasks/dataset/datasetTasksUtils.js.map +1 -0
  181. package/dist/tasks/detection/decodePayload.d.ts +5 -0
  182. package/dist/tasks/detection/decodePayload.d.ts.map +1 -0
  183. package/dist/tasks/detection/decodePayload.js +570 -669
  184. package/dist/tasks/detection/decodePayload.js.map +1 -0
  185. package/dist/tasks/detection/getBotScore.d.ts +20 -0
  186. package/dist/tasks/detection/getBotScore.d.ts.map +1 -0
  187. package/dist/tasks/detection/getBotScore.js +17 -4
  188. package/dist/tasks/detection/getBotScore.js.map +1 -0
  189. package/dist/tasks/frictionless/frictionlessTasks.d.ts +67 -0
  190. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -0
  191. package/dist/tasks/frictionless/frictionlessTasks.js +116 -29
  192. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -0
  193. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +6 -0
  194. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +1 -0
  195. package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +1 -0
  196. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +30 -0
  197. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -0
  198. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +18 -12
  199. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -0
  200. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +7 -0
  201. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +1 -0
  202. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +1 -0
  203. package/dist/tasks/index.d.ts +2 -0
  204. package/dist/tasks/index.d.ts.map +1 -0
  205. package/dist/tasks/index.js.map +1 -0
  206. package/dist/tasks/powCaptcha/powTasks.d.ts +17 -0
  207. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -0
  208. package/dist/tasks/powCaptcha/powTasks.js +6 -6
  209. package/dist/tasks/powCaptcha/powTasks.js.map +1 -0
  210. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +3 -0
  211. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +1 -0
  212. package/dist/tasks/powCaptcha/powTasksUtils.js.map +1 -0
  213. package/dist/tasks/tasks.d.ts +25 -0
  214. package/dist/tasks/tasks.d.ts.map +1 -0
  215. package/dist/tasks/tasks.js.map +1 -0
  216. package/dist/tests/index.d.ts +2 -0
  217. package/dist/tests/index.d.ts.map +1 -0
  218. package/dist/tests/index.js +2 -0
  219. package/dist/tests/index.js.map +1 -0
  220. package/dist/tests/integration/accessRules.integration.test.d.ts +2 -0
  221. package/dist/tests/integration/accessRules.integration.test.d.ts.map +1 -0
  222. package/dist/tests/integration/accessRules.integration.test.js +588 -0
  223. package/dist/tests/integration/accessRules.integration.test.js.map +1 -0
  224. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts +2 -0
  225. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.d.ts.map +1 -0
  226. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +60 -0
  227. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +1 -0
  228. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts +2 -0
  229. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.d.ts.map +1 -0
  230. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +368 -0
  231. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +1 -0
  232. package/dist/tests/integration/imgCaptcha.integration.test.d.ts +2 -0
  233. package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +1 -0
  234. package/dist/tests/integration/imgCaptcha.integration.test.js +272 -0
  235. package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -0
  236. package/dist/tests/integration/ipValidation.integration.test.d.ts +2 -0
  237. package/dist/tests/integration/ipValidation.integration.test.d.ts.map +1 -0
  238. package/dist/tests/integration/ipValidation.integration.test.js +75 -0
  239. package/dist/tests/integration/ipValidation.integration.test.js.map +1 -0
  240. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +32 -0
  241. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +1 -0
  242. package/dist/tests/integration/mocks/solvedTestCaptchas.js +1046 -0
  243. package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +1 -0
  244. package/dist/tests/integration/powCaptcha.integration.test.d.ts +2 -0
  245. package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +1 -0
  246. package/dist/tests/integration/powCaptcha.integration.test.js +308 -0
  247. package/dist/tests/integration/powCaptcha.integration.test.js.map +1 -0
  248. package/dist/tests/integration/registerSitekey.d.ts +3 -0
  249. package/dist/tests/integration/registerSitekey.d.ts.map +1 -0
  250. package/dist/tests/integration/registerSitekey.js +24 -0
  251. package/dist/tests/integration/registerSitekey.js.map +1 -0
  252. package/dist/tests/integration/userAccessPolicy.d.ts +2 -0
  253. package/dist/tests/integration/userAccessPolicy.d.ts.map +1 -0
  254. package/dist/tests/integration/userAccessPolicy.js +2 -0
  255. package/dist/tests/integration/userAccessPolicy.js.map +1 -0
  256. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts +2 -0
  257. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.d.ts.map +1 -0
  258. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +60 -0
  259. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +1 -0
  260. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts +2 -0
  261. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts.map +1 -0
  262. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js +43 -0
  263. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js.map +1 -0
  264. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts +2 -0
  265. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts.map +1 -0
  266. package/dist/tests/unit/api/ja4Middleware.unit.test.js +57 -0
  267. package/dist/tests/unit/api/ja4Middleware.unit.test.js.map +1 -0
  268. package/dist/tests/unit/compositeIpAddress.unit.test.d.ts +2 -0
  269. package/dist/tests/unit/compositeIpAddress.unit.test.d.ts.map +1 -0
  270. package/dist/tests/unit/compositeIpAddress.unit.test.js +86 -0
  271. package/dist/tests/unit/compositeIpAddress.unit.test.js.map +1 -0
  272. package/dist/tests/unit/pairs.unit.test.d.ts +2 -0
  273. package/dist/tests/unit/pairs.unit.test.d.ts.map +1 -0
  274. package/dist/tests/unit/pairs.unit.test.js +83 -0
  275. package/dist/tests/unit/pairs.unit.test.js.map +1 -0
  276. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +2 -0
  277. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +1 -0
  278. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +75 -0
  279. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -0
  280. package/dist/tests/unit/services/ipComparison.unit.test.d.ts +2 -0
  281. package/dist/tests/unit/services/ipComparison.unit.test.d.ts.map +1 -0
  282. package/dist/tests/unit/services/ipComparison.unit.test.js +258 -0
  283. package/dist/tests/unit/services/ipComparison.unit.test.js.map +1 -0
  284. package/dist/tests/unit/services/ipInfo.unit.test.d.ts +2 -0
  285. package/dist/tests/unit/services/ipInfo.unit.test.d.ts.map +1 -0
  286. package/dist/tests/unit/services/ipInfo.unit.test.js +210 -0
  287. package/dist/tests/unit/services/ipInfo.unit.test.js.map +1 -0
  288. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts +2 -0
  289. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts.map +1 -0
  290. package/dist/tests/unit/tasks/captchaManager.unit.test.js +311 -0
  291. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -0
  292. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +2 -0
  293. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +1 -0
  294. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +289 -0
  295. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -0
  296. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +2 -0
  297. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +1 -0
  298. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +92 -0
  299. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +1 -0
  300. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +2 -0
  301. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +1 -0
  302. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +75 -0
  303. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +1 -0
  304. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts +2 -0
  305. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.d.ts.map +1 -0
  306. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +143 -0
  307. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +1 -0
  308. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts +2 -0
  309. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts.map +1 -0
  310. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +145 -0
  311. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -0
  312. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts +2 -0
  313. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts.map +1 -0
  314. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +64 -0
  315. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +1 -0
  316. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +2 -0
  317. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +1 -0
  318. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +388 -0
  319. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -0
  320. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +2 -0
  321. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +1 -0
  322. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +46 -0
  323. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +1 -0
  324. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +2 -0
  325. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +1 -0
  326. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +216 -0
  327. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -0
  328. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +2 -0
  329. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +1 -0
  330. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +69 -0
  331. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +1 -0
  332. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts +2 -0
  333. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.d.ts.map +1 -0
  334. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js +505 -0
  335. package/dist/tests/unit/util.evaluateIpValidationRules.unit.test.js.map +1 -0
  336. package/dist/tests/unit/util.ipDistance.unit.test.d.ts +2 -0
  337. package/dist/tests/unit/util.ipDistance.unit.test.d.ts.map +1 -0
  338. package/dist/tests/unit/util.ipDistance.unit.test.js +93 -0
  339. package/dist/tests/unit/util.ipDistance.unit.test.js.map +1 -0
  340. package/dist/tests/unit/util.unit.test.d.ts +2 -0
  341. package/dist/tests/unit/util.unit.test.d.ts.map +1 -0
  342. package/dist/tests/unit/util.unit.test.js +170 -0
  343. package/dist/tests/unit/util.unit.test.js.map +1 -0
  344. package/dist/util.d.ts +24 -0
  345. package/dist/util.d.ts.map +1 -0
  346. package/dist/util.js +14 -1
  347. package/dist/util.js.map +1 -0
  348. package/dist/utils/hashUserAgent.d.ts +2 -0
  349. package/dist/utils/hashUserAgent.d.ts.map +1 -0
  350. package/dist/utils/hashUserAgent.js.map +1 -0
  351. package/package.json +24 -25
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const apiRoute = require("@prosopo/api-route");
4
+ const common = require("@prosopo/common");
5
+ const types = require("@prosopo/types");
6
+ var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
7
+ function getMaintenanceMode() {
8
+ return process.env.MAINTENANCE_MODE?.toLowerCase() === "true";
9
+ }
10
+ function setMaintenanceMode(enabled) {
11
+ process.env.MAINTENANCE_MODE = enabled ? "true" : "false";
12
+ }
13
+ class ApiToggleMaintenanceModeEndpoint {
14
+ async processRequest(args, logger) {
15
+ const { enabled } = args;
16
+ logger = logger || common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("api/admin/apiToggleMaintenanceModeEndpoint.cjs", document.baseURI).href);
17
+ const previousMode = getMaintenanceMode();
18
+ logger.info(() => ({
19
+ data: { enabled, previous: previousMode },
20
+ msg: "Toggling maintenance mode"
21
+ }));
22
+ setMaintenanceMode(enabled);
23
+ const currentMode = getMaintenanceMode();
24
+ logger.info(() => ({
25
+ data: { enabled: currentMode },
26
+ msg: "Maintenance mode updated"
27
+ }));
28
+ return {
29
+ status: apiRoute.ApiEndpointResponseStatus.SUCCESS,
30
+ data: {
31
+ maintenanceMode: currentMode
32
+ }
33
+ };
34
+ }
35
+ getRequestArgsSchema() {
36
+ return types.ToggleMaintenanceModeBody;
37
+ }
38
+ }
39
+ exports.ApiToggleMaintenanceModeEndpoint = ApiToggleMaintenanceModeEndpoint;
40
+ exports.getMaintenanceMode = getMaintenanceMode;
41
+ exports.setMaintenanceMode = setMaintenanceMode;
@@ -34,16 +34,16 @@ const getPrioritisedAccessRule = async (userAccessRulesStorage, userScope, clien
34
34
  if (Object.values(scope).every((value) => value === void 0)) {
35
35
  continue;
36
36
  }
37
- const parsedUserScope = userAccessPolicy.userScopeInputSchema.parse(scope);
37
+ const parsedUserScope = userAccessPolicy.userScopeInput.parse(scope);
38
38
  const filter = {
39
39
  ...clientOrUndefined && {
40
40
  policyScope: {
41
41
  clientId: clientOrUndefined
42
42
  }
43
43
  },
44
- policyScopeMatch: userAccessPolicy.ScopeMatch.Exact,
44
+ policyScopeMatch: userAccessPolicy.FilterScopeMatch.Exact,
45
45
  userScope: parsedUserScope,
46
- userScopeMatch: userAccessPolicy.ScopeMatch.Exact
46
+ userScopeMatch: userAccessPolicy.FilterScopeMatch.Exact
47
47
  };
48
48
  policyPromises.push(userAccessRulesStorage.findRules(filter, true, true));
49
49
  }
@@ -11,6 +11,7 @@ const frictionlessTasks = require("../tasks/frictionless/frictionlessTasks.cjs")
11
11
  const frictionlessTasksUtils = require("../tasks/frictionless/frictionlessTasksUtils.cjs");
12
12
  const tasks = require("../tasks/tasks.cjs");
13
13
  const hashUserAgent = require("../utils/hashUserAgent.cjs");
14
+ const apiToggleMaintenanceModeEndpoint = require("./admin/apiToggleMaintenanceModeEndpoint.cjs");
14
15
  const blacklistRequestInspector = require("./blacklistRequestInspector.cjs");
15
16
  const validateAddress = require("./validateAddress.cjs");
16
17
  const DEFAULT_FRICTIONLESS_THRESHOLD = 0.5;
@@ -68,7 +69,12 @@ function prosopoRouter(env) {
68
69
  dapp,
69
70
  userScope
70
71
  ))[0];
71
- const { valid, reason, frictionlessTokenId, solvedImagesCount } = await tasks$1.imgCaptchaManager.isValidRequest(
72
+ const {
73
+ valid,
74
+ reason,
75
+ sessionId: validSessionId,
76
+ solvedImagesCount
77
+ } = await tasks$1.imgCaptchaManager.isValidRequest(
72
78
  clientRecord,
73
79
  types.CaptchaType.image,
74
80
  env,
@@ -103,7 +109,7 @@ function prosopoRouter(env) {
103
109
  ipAddress,
104
110
  captchaConfig,
105
111
  clientRecord.settings.imageThreshold ?? 0.8,
106
- frictionlessTokenId
112
+ validSessionId
107
113
  );
108
114
  const captchaResponse = {
109
115
  [types.ApiParams.status]: "ok",
@@ -159,6 +165,17 @@ function prosopoRouter(env) {
159
165
  types.ClientApiPaths.SubmitImageCaptchaSolution,
160
166
  async (req, res, next) => {
161
167
  const tasks$1 = new tasks.Tasks(env, req.logger);
168
+ if (apiToggleMaintenanceModeEndpoint.getMaintenanceMode()) {
169
+ req.logger.info(() => ({
170
+ msg: "Maintenance mode active - returning verified for image captcha"
171
+ }));
172
+ const result = {
173
+ status: "ok",
174
+ captchas: [],
175
+ verified: true
176
+ };
177
+ return res.json(result);
178
+ }
162
179
  let parsed;
163
180
  try {
164
181
  parsed = types.CaptchaSolutionBody.parse(req.body);
@@ -264,7 +281,12 @@ function prosopoRouter(env) {
264
281
  dapp,
265
282
  userScope
266
283
  ))[0];
267
- const { valid, reason, frictionlessTokenId, powDifficulty } = await tasks$1.powCaptchaManager.isValidRequest(
284
+ const {
285
+ valid,
286
+ reason,
287
+ sessionId: validSessionId,
288
+ powDifficulty
289
+ } = await tasks$1.powCaptchaManager.isValidRequest(
268
290
  clientSettings,
269
291
  types.CaptchaType.pow,
270
292
  env,
@@ -319,7 +341,7 @@ function prosopoRouter(env) {
319
341
  compositeIpAddress.getCompositeIpAddress(req.ip || ""),
320
342
  util.flatten(req.headers),
321
343
  req.ja4,
322
- frictionlessTokenId
344
+ validSessionId
323
345
  );
324
346
  const getPowCaptchaResponse = {
325
347
  [types.ApiParams.status]: "ok",
@@ -369,6 +391,16 @@ function prosopoRouter(env) {
369
391
  async (req, res, next) => {
370
392
  let parsed;
371
393
  const tasks$1 = new tasks.Tasks(env, req.logger);
394
+ if (apiToggleMaintenanceModeEndpoint.getMaintenanceMode()) {
395
+ req.logger.info(() => ({
396
+ msg: "Maintenance mode active - returning verified"
397
+ }));
398
+ const response = {
399
+ status: "ok",
400
+ verified: true
401
+ };
402
+ return res.json(response);
403
+ }
372
404
  try {
373
405
  parsed = types.SubmitPowCaptchaSolutionBody.parse(req.body);
374
406
  } catch (err) {
@@ -430,8 +462,30 @@ function prosopoRouter(env) {
430
462
  async (req, res, next) => {
431
463
  try {
432
464
  const tasks$1 = new tasks.Tasks(env, req.logger);
433
- const { token, dapp, user } = types.GetFrictionlessCaptchaChallengeRequestBody.parse(req.body);
434
- const existingToken = await tasks$1.db.getFrictionlessTokenRecordByToken(token);
465
+ const { token, headHash, dapp, user } = types.GetFrictionlessCaptchaChallengeRequestBody.parse(req.body);
466
+ if (apiToggleMaintenanceModeEndpoint.getMaintenanceMode()) {
467
+ req.logger.info(() => ({
468
+ msg: "Maintenance mode active - storing dummy token and sending PoW captcha",
469
+ data: { dapp, user }
470
+ }));
471
+ return res.json(
472
+ await tasks$1.frictionlessManager.sendPowCaptcha({
473
+ token,
474
+ score: 0,
475
+ threshold: 0.5,
476
+ scoreComponents: {
477
+ baseScore: 0
478
+ },
479
+ providerSelectEntropy: 0,
480
+ ipAddress: compositeIpAddress.getCompositeIpAddress(req.ip || ""),
481
+ powDifficulty: void 0,
482
+ webView: false,
483
+ iFrame: false,
484
+ decryptedHeadHash: ""
485
+ })
486
+ );
487
+ }
488
+ const existingToken = await tasks$1.db.getSessionRecordByToken(token);
435
489
  if (existingToken) {
436
490
  req.logger.info(() => ({
437
491
  token: existingToken,
@@ -457,8 +511,11 @@ function prosopoRouter(env) {
457
511
  timestamp,
458
512
  providerSelectEntropy,
459
513
  userId,
460
- userAgent
461
- } = await tasks$1.frictionlessManager.decryptPayload(token);
514
+ userAgent,
515
+ webView,
516
+ iFrame,
517
+ decryptedHeadHash
518
+ } = await tasks$1.frictionlessManager.decryptPayload(token, headHash);
462
519
  req.logger.debug(() => ({
463
520
  msg: "Decrypted payload",
464
521
  data: {
@@ -466,7 +523,8 @@ function prosopoRouter(env) {
466
523
  timestamp,
467
524
  providerSelectEntropy,
468
525
  userId,
469
- userAgent
526
+ userAgent,
527
+ webView
470
528
  }
471
529
  }));
472
530
  let botScore = baseBotScore + lScore;
@@ -499,16 +557,21 @@ function prosopoRouter(env) {
499
557
  );
500
558
  }
501
559
  const botThreshold = clientRecord.settings?.frictionlessThreshold || DEFAULT_FRICTIONLESS_THRESHOLD;
502
- const tokenId = await tasks$1.db.storeFrictionlessTokenRecord({
560
+ let scoreComponents = {
561
+ baseScore: baseBotScore,
562
+ ...lScore && { lScore }
563
+ };
564
+ const ipAddress = compositeIpAddress.getCompositeIpAddress(req.ip || "");
565
+ tasks$1.frictionlessManager.setSessionParams({
503
566
  token,
504
567
  score: botScore,
505
568
  threshold: botThreshold,
506
- scoreComponents: {
507
- baseScore: baseBotScore,
508
- ...lScore && { lScore }
509
- },
569
+ scoreComponents,
510
570
  providerSelectEntropy,
511
- ipAddress: compositeIpAddress.getCompositeIpAddress(req.ip || "")
571
+ ipAddress,
572
+ webView,
573
+ iFrame,
574
+ decryptedHeadHash
512
575
  });
513
576
  const userScope = blacklistRequestInspector.getRequestUserScope(
514
577
  util.flatten(req.headers),
@@ -537,57 +600,83 @@ function prosopoRouter(env) {
537
600
  }
538
601
  }));
539
602
  return res.json(
540
- await tasks$1.frictionlessManager.sendImageCaptcha(
541
- tokenId,
542
- frictionlessTasksUtils.timestampDecayFunction(timestamp)
543
- )
603
+ await tasks$1.frictionlessManager.sendImageCaptcha({
604
+ solvedImagesCount: frictionlessTasksUtils.timestampDecayFunction(timestamp)
605
+ })
544
606
  );
545
607
  }
546
608
  if (userAccessPolicy) {
547
- await tasks$1.frictionlessManager.scoreIncreaseAccessPolicy(
609
+ const scoreUpdate = tasks$1.frictionlessManager.scoreIncreaseAccessPolicy(
548
610
  userAccessPolicy,
549
611
  baseBotScore,
550
612
  botScore,
551
- tokenId
613
+ scoreComponents
552
614
  );
615
+ botScore = scoreUpdate.score;
616
+ scoreComponents = scoreUpdate.scoreComponents;
617
+ tasks$1.frictionlessManager.updateScore(botScore, scoreComponents);
553
618
  if (userAccessPolicy.captchaType === types.CaptchaType.image) {
554
619
  return res.json(
555
- await tasks$1.frictionlessManager.sendImageCaptcha(
556
- tokenId,
557
- userAccessPolicy.solvedImagesCount
558
- )
620
+ await tasks$1.frictionlessManager.sendImageCaptcha({
621
+ solvedImagesCount: userAccessPolicy.solvedImagesCount
622
+ })
559
623
  );
560
624
  }
561
625
  if (userAccessPolicy.captchaType === types.CaptchaType.pow) {
562
626
  return res.json(
563
- await tasks$1.frictionlessManager.sendPowCaptcha(tokenId)
627
+ await tasks$1.frictionlessManager.sendPowCaptcha({
628
+ powDifficulty: void 0
629
+ })
564
630
  );
565
631
  }
566
632
  }
633
+ if (clientRecord.settings.disallowWebView && webView) {
634
+ tasks$1.logger.info(() => ({
635
+ msg: "WebView detected"
636
+ }));
637
+ const scoreUpdate = tasks$1.frictionlessManager.scoreIncreaseWebView(
638
+ baseBotScore,
639
+ botScore,
640
+ scoreComponents
641
+ );
642
+ botScore = scoreUpdate.score;
643
+ scoreComponents = scoreUpdate.scoreComponents;
644
+ tasks$1.frictionlessManager.updateScore(botScore, scoreComponents);
645
+ return res.json(
646
+ await tasks$1.frictionlessManager.sendImageCaptcha({
647
+ solvedImagesCount: env.config.captchas.solved.count * 2
648
+ })
649
+ );
650
+ }
567
651
  if (frictionlessTasks.FrictionlessManager.timestampTooOld(timestamp)) {
568
- await tasks$1.frictionlessManager.scoreIncreaseTimestamp(
652
+ const scoreUpdate = tasks$1.frictionlessManager.scoreIncreaseTimestamp(
569
653
  timestamp,
570
654
  baseBotScore,
571
655
  botScore,
572
- tokenId
656
+ scoreComponents
573
657
  );
658
+ botScore = scoreUpdate.score;
659
+ scoreComponents = scoreUpdate.scoreComponents;
660
+ tasks$1.frictionlessManager.updateScore(botScore, scoreComponents);
574
661
  return res.json(
575
- await tasks$1.frictionlessManager.sendImageCaptcha(
576
- tokenId,
577
- frictionlessTasksUtils.timestampDecayFunction(timestamp)
578
- )
662
+ await tasks$1.frictionlessManager.sendImageCaptcha({
663
+ solvedImagesCount: frictionlessTasksUtils.timestampDecayFunction(timestamp)
664
+ })
579
665
  );
580
666
  }
581
667
  const hostVerified = await tasks$1.frictionlessManager.hostVerified(
582
668
  providerSelectEntropy
583
669
  );
584
670
  if (!hostVerified.verified) {
585
- botScore = await tasks$1.frictionlessManager.scoreIncreaseUnverifiedHost(
671
+ const scoreUpdate = tasks$1.frictionlessManager.scoreIncreaseUnverifiedHost(
586
672
  hostVerified.domain,
587
673
  baseBotScore,
588
674
  botScore,
589
- tokenId
675
+ scoreComponents
590
676
  );
677
+ botScore = scoreUpdate.score;
678
+ scoreComponents = scoreUpdate.scoreComponents;
679
+ tasks$1.frictionlessManager.updateScore(botScore, scoreComponents);
591
680
  }
592
681
  if (Number(botScore) > botThreshold) {
593
682
  req.logger.info(() => ({
@@ -595,18 +684,19 @@ function prosopoRouter(env) {
595
684
  data: {
596
685
  botScore,
597
686
  botThreshold,
598
- tokenId
687
+ token
599
688
  }
600
689
  }));
601
690
  return res.json(
602
- await tasks$1.frictionlessManager.sendImageCaptcha(
603
- tokenId,
604
- env.config.captchas.solved.count
605
- )
691
+ await tasks$1.frictionlessManager.sendImageCaptcha({
692
+ solvedImagesCount: env.config.captchas.solved.count
693
+ })
606
694
  );
607
695
  }
608
696
  return res.json(
609
- await tasks$1.frictionlessManager.sendPowCaptcha(tokenId)
697
+ await tasks$1.frictionlessManager.sendPowCaptcha({
698
+ powDifficulty: void 0
699
+ })
610
700
  );
611
701
  } catch (err) {
612
702
  req.logger.error(() => ({
@@ -5,9 +5,10 @@ const apiExpressRouter = require("@prosopo/api-express-router");
5
5
  const common = require("@prosopo/common");
6
6
  const utilCrypto = require("@prosopo/util-crypto");
7
7
  const readTlsClientHello = require("read-tls-client-hello");
8
+ var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
8
9
  const DEFAULT_JA4 = "ja4";
9
10
  const getJA4 = async (headers, logger) => {
10
- logger = logger || common.getLogger("info", module);
11
+ logger = logger || common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("api/ja4Middleware.cjs", document.baseURI).href);
11
12
  if (process.env.NODE_ENV === "development") {
12
13
  return {
13
14
  ja4PlusFingerprint: `${DEFAULT_JA4}${utilCrypto.randomAsHex().slice(28, 32)}`
@@ -6,12 +6,23 @@ const types = require("@prosopo/types");
6
6
  const utilCrypto = require("@prosopo/util-crypto");
7
7
  const express = require("express");
8
8
  const tasks = require("../tasks/tasks.cjs");
9
+ const apiToggleMaintenanceModeEndpoint = require("./admin/apiToggleMaintenanceModeEndpoint.cjs");
9
10
  function prosopoVerifyRouter(env) {
10
11
  const router = express.Router();
11
12
  router.post(
12
13
  types.ClientApiPaths.VerifyImageCaptchaSolutionDapp,
13
14
  async (req, res, next) => {
14
15
  const tasks$1 = new tasks.Tasks(env, req.logger);
16
+ if (apiToggleMaintenanceModeEndpoint.getMaintenanceMode()) {
17
+ req.logger.info(() => ({
18
+ msg: "Maintenance mode active - returning verified for image captcha verification"
19
+ }));
20
+ const verificationResponse = {
21
+ status: "ok",
22
+ verified: true
23
+ };
24
+ return res.json(verificationResponse);
25
+ }
15
26
  let parsed;
16
27
  try {
17
28
  parsed = types.VerifySolutionBody.parse(req.body);
@@ -47,7 +58,8 @@ function prosopoVerifyRouter(env) {
47
58
  commitmentId,
48
59
  env,
49
60
  maxVerifiedTime,
50
- ip
61
+ ip,
62
+ clientRecord.settings.disallowWebView
51
63
  );
52
64
  req.logger.debug(() => ({ data: { response } }));
53
65
  const verificationResponse = tasks$1.imgCaptchaManager.getVerificationResponse(
@@ -74,6 +86,16 @@ function prosopoVerifyRouter(env) {
74
86
  types.ClientApiPaths.VerifyPowCaptchaSolution,
75
87
  async (req, res, next) => {
76
88
  const tasks$1 = new tasks.Tasks(env, req.logger);
89
+ if (apiToggleMaintenanceModeEndpoint.getMaintenanceMode()) {
90
+ req.logger.info(() => ({
91
+ msg: "Maintenance mode active - returning verified for PoW captcha verification"
92
+ }));
93
+ const verificationResponse = {
94
+ status: "ok",
95
+ verified: true
96
+ };
97
+ return res.json(verificationResponse);
98
+ }
77
99
  let parsed;
78
100
  try {
79
101
  parsed = types.ServerPowCaptchaVerifyRequestBody.parse(req.body);
@@ -3,29 +3,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const common = require("@prosopo/common");
4
4
  const types = require("@prosopo/types");
5
5
  const blacklistRequestInspector = require("../api/blacklistRequestInspector.cjs");
6
+ var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
6
7
  class CaptchaManager {
7
8
  constructor(db, pair, logger) {
8
9
  this.pair = pair;
9
10
  this.db = db;
10
- this.logger = logger || common.getLogger("info", module);
11
+ this.logger = logger || common.getLogger("info", typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("tasks/captchaManager.cjs", document.baseURI).href);
11
12
  }
12
- async getFrictionlessTokenIdFromSession(sessionRecord) {
13
- const tokenRecord = await this.db.getFrictionlessTokenRecordByTokenId(
14
- sessionRecord.tokenId
15
- );
16
- return tokenRecord ? tokenRecord._id : void 0;
17
- }
18
- async validateFrictionlessTokenIP(sessionRecord, currentIP, env) {
19
- const tokenRecord = await this.db.getFrictionlessTokenRecordByTokenId(
20
- sessionRecord.tokenId
21
- );
22
- if (!tokenRecord) {
23
- this.logger.info(() => ({
24
- msg: "No frictionless token found for session",
25
- data: { sessionId: sessionRecord.sessionId }
26
- }));
27
- return { valid: false, reason: "CAPTCHA.NO_SESSION_FOUND" };
28
- }
13
+ async validateSessionIP(sessionRecord, currentIP, env) {
29
14
  return { valid: true };
30
15
  }
31
16
  async isValidRequest(clientSettings, requestedCaptchaType, env, sessionId, userAccessPolicy, currentIP) {
@@ -68,7 +53,7 @@ class CaptchaManager {
68
53
  };
69
54
  }
70
55
  if (currentIP) {
71
- const ipValidation = await this.validateFrictionlessTokenIP(
56
+ const ipValidation = await this.validateSessionIP(
72
57
  sessionRecord,
73
58
  currentIP,
74
59
  env
@@ -81,7 +66,6 @@ class CaptchaManager {
81
66
  };
82
67
  }
83
68
  }
84
- const frictionlessTokenId = await this.getFrictionlessTokenIdFromSession(sessionRecord);
85
69
  if (sessionRecord.captchaType !== requestedCaptchaType) {
86
70
  this.logger.warn(() => ({
87
71
  msg: "Invalid frictionless request",
@@ -98,7 +82,7 @@ class CaptchaManager {
98
82
  }
99
83
  return {
100
84
  valid: true,
101
- frictionlessTokenId,
85
+ sessionId: sessionRecord.sessionId,
102
86
  type: requestedCaptchaType,
103
87
  ...sessionRecord.powDifficulty && {
104
88
  powDifficulty: sessionRecord.powDifficulty
@@ -102,44 +102,11 @@ class ClientTaskManager {
102
102
  async (skip) => await this.providerDB.getUnstoredSessionRecords(BATCH_SIZE, skip),
103
103
  async (batch) => {
104
104
  const filteredBatch = lastTask?.updated ? batch.filter((record) => this.isRecordUpdated(record)) : batch;
105
- const frictionlessTokenRecords = await this.providerDB.getFrictionlessTokenRecordsByTokenIds(
106
- filteredBatch.map((record) => record.tokenId)
107
- );
108
- this.logger.info(() => ({
109
- msg: `Frictionless token records: ${frictionlessTokenRecords.length}`
110
- }));
111
- const filteredBatchWithScores = filteredBatch.map((record) => {
112
- const tokenRecord = frictionlessTokenRecords.find(
113
- (tokenRecord2) => tokenRecord2._id?.toString() === record.tokenId.toString()
114
- );
115
- if (!tokenRecord) {
116
- this.logger.error(() => ({
117
- msg: "No token record found",
118
- data: { tokenId: record.tokenId }
119
- }));
120
- return {
121
- ...record,
122
- score: 0,
123
- scoreComponents: {
124
- baseScore: 0
125
- },
126
- threshold: 0
127
- };
128
- }
129
- const { _id, token, ...tokenRecordWithoutId } = tokenRecord;
130
- return {
131
- ...record,
132
- ...tokenRecordWithoutId
133
- };
134
- });
135
105
  if (filteredBatch.length > 0) {
136
- await captchaDB.saveCaptchas(filteredBatchWithScores, [], []);
106
+ await captchaDB.saveCaptchas(filteredBatch, [], []);
137
107
  await this.providerDB.markSessionRecordsStored(
138
108
  filteredBatch.map((record) => record.sessionId)
139
109
  );
140
- await this.providerDB.markFrictionlessTokenRecordsStored(
141
- filteredBatch.map((record) => record.tokenId).filter((id) => !!id)
142
- );
143
110
  }
144
111
  processedSessionRecords += filteredBatch.length;
145
112
  }
@@ -196,7 +163,7 @@ class ClientTaskManager {
196
163
  this.logger
197
164
  );
198
165
  const tenMinuteWindow = 10 * 60 * 1e3;
199
- const updatedAtTimestamp = lastTask?.updated ? lastTask.updated - tenMinuteWindow || 0 : 0;
166
+ const updatedAtTimestamp = lastTask?.updated ? lastTask.updated.getTime() - tenMinuteWindow || 0 : 0;
200
167
  this.logger.info(() => ({
201
168
  msg: `Getting updated client records since ${new Date(updatedAtTimestamp).toDateString()}`
202
169
  }));
@@ -295,7 +262,7 @@ class ClientTaskManager {
295
262
  }
296
263
  isRecordUpdated(record) {
297
264
  const { lastUpdatedTimestamp, storedAtTimestamp } = record;
298
- return !lastUpdatedTimestamp || !storedAtTimestamp || lastUpdatedTimestamp > storedAtTimestamp;
265
+ return !lastUpdatedTimestamp || !storedAtTimestamp || lastUpdatedTimestamp.getTime() > storedAtTimestamp.getTime();
299
266
  }
300
267
  async processBatchesWithCursor(fetchBatch, processBatch) {
301
268
  let skip = 0;