@prosopo/provider 3.2.0 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/api/admin/apiAdminRoutesProvider.js +26 -21
  3. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js +21 -20
  4. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +27 -27
  5. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js +33 -33
  6. package/dist/api/admin/createApiAdminRoutesProvider.js +8 -5
  7. package/dist/api/blacklistRequestInspector.js +115 -98
  8. package/dist/api/block.js +13 -8
  9. package/dist/api/captcha.js +519 -356
  10. package/dist/api/domainMiddleware.js +75 -68
  11. package/dist/api/headerCheckMiddleware.js +26 -25
  12. package/dist/api/ignoreMiddleware.js +12 -10
  13. package/dist/api/ja4Middleware.js +74 -82
  14. package/dist/api/public.js +26 -23
  15. package/dist/api/robotsMiddleware.js +11 -9
  16. package/dist/api/validateAddress.js +20 -18
  17. package/dist/api/verify.js +133 -95
  18. package/dist/cjs/api/captcha.cjs +45 -36
  19. package/dist/cjs/tasks/captchaManager.cjs +24 -10
  20. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +12 -12
  21. package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +1 -1
  22. package/dist/index.js +38 -15
  23. package/dist/rules/lang.js +14 -14
  24. package/dist/schedulers/captchaScheduler.js +28 -23
  25. package/dist/schedulers/getClientList.js +29 -24
  26. package/dist/tasks/captchaManager.js +109 -85
  27. package/dist/tasks/client/clientTasks.js +265 -204
  28. package/dist/tasks/dataset/datasetTasks.js +27 -16
  29. package/dist/tasks/dataset/datasetTasksUtils.js +31 -31
  30. package/dist/tasks/detection/decodePayload.js +378 -208
  31. package/dist/tasks/detection/getBotScore.js +12 -10
  32. package/dist/tasks/frictionless/frictionlessTasks.js +120 -119
  33. package/dist/tasks/frictionless/frictionlessTasksUtils.js +10 -5
  34. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +360 -271
  35. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +23 -16
  36. package/dist/tasks/index.js +4 -2
  37. package/dist/tasks/powCaptcha/powTasks.js +157 -97
  38. package/dist/tasks/powCaptcha/powTasksUtils.js +24 -20
  39. package/dist/tasks/tasks.js +53 -29
  40. package/dist/util.js +98 -88
  41. package/package.json +31 -27
  42. package/vite.cjs.config.ts +4 -1
  43. package/vite.esm.config.ts +20 -0
  44. package/vite.test.config.ts +15 -3
  45. package/dist/api/admin/apiAdminRoutesProvider.d.ts +0 -9
  46. package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +0 -1
  47. package/dist/api/admin/apiAdminRoutesProvider.js.map +0 -1
  48. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts +0 -14
  49. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts.map +0 -1
  50. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js.map +0 -1
  51. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +0 -14
  52. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +0 -1
  53. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +0 -1
  54. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +0 -14
  55. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +0 -1
  56. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +0 -1
  57. package/dist/api/admin/createApiAdminRoutesProvider.d.ts +0 -4
  58. package/dist/api/admin/createApiAdminRoutesProvider.d.ts.map +0 -1
  59. package/dist/api/admin/createApiAdminRoutesProvider.js.map +0 -1
  60. package/dist/api/blacklistRequestInspector.d.ts +0 -39
  61. package/dist/api/blacklistRequestInspector.d.ts.map +0 -1
  62. package/dist/api/blacklistRequestInspector.js.map +0 -1
  63. package/dist/api/block.d.ts +0 -3
  64. package/dist/api/block.d.ts.map +0 -1
  65. package/dist/api/block.js.map +0 -1
  66. package/dist/api/captcha.d.ts +0 -4
  67. package/dist/api/captcha.d.ts.map +0 -1
  68. package/dist/api/captcha.js.map +0 -1
  69. package/dist/api/domainMiddleware.d.ts +0 -4
  70. package/dist/api/domainMiddleware.d.ts.map +0 -1
  71. package/dist/api/domainMiddleware.js.map +0 -1
  72. package/dist/api/headerCheckMiddleware.d.ts +0 -4
  73. package/dist/api/headerCheckMiddleware.d.ts.map +0 -1
  74. package/dist/api/headerCheckMiddleware.js.map +0 -1
  75. package/dist/api/ignoreMiddleware.d.ts +0 -3
  76. package/dist/api/ignoreMiddleware.d.ts.map +0 -1
  77. package/dist/api/ignoreMiddleware.js.map +0 -1
  78. package/dist/api/ja4Middleware.d.ts +0 -10
  79. package/dist/api/ja4Middleware.d.ts.map +0 -1
  80. package/dist/api/ja4Middleware.js.map +0 -1
  81. package/dist/api/public.d.ts +0 -3
  82. package/dist/api/public.d.ts.map +0 -1
  83. package/dist/api/public.js.map +0 -1
  84. package/dist/api/robotsMiddleware.d.ts +0 -3
  85. package/dist/api/robotsMiddleware.d.ts.map +0 -1
  86. package/dist/api/robotsMiddleware.js.map +0 -1
  87. package/dist/api/validateAddress.d.ts +0 -5
  88. package/dist/api/validateAddress.d.ts.map +0 -1
  89. package/dist/api/validateAddress.js.map +0 -1
  90. package/dist/api/verify.d.ts +0 -4
  91. package/dist/api/verify.d.ts.map +0 -1
  92. package/dist/api/verify.js.map +0 -1
  93. package/dist/index.d.ts +0 -15
  94. package/dist/index.d.ts.map +0 -1
  95. package/dist/index.js.map +0 -1
  96. package/dist/rules/lang.d.ts +0 -3
  97. package/dist/rules/lang.d.ts.map +0 -1
  98. package/dist/rules/lang.js.map +0 -1
  99. package/dist/schedulers/captchaScheduler.d.ts +0 -4
  100. package/dist/schedulers/captchaScheduler.d.ts.map +0 -1
  101. package/dist/schedulers/captchaScheduler.js.map +0 -1
  102. package/dist/schedulers/getClientList.d.ts +0 -4
  103. package/dist/schedulers/getClientList.d.ts.map +0 -1
  104. package/dist/schedulers/getClientList.js.map +0 -1
  105. package/dist/tasks/captchaManager.d.ts +0 -48
  106. package/dist/tasks/captchaManager.d.ts.map +0 -1
  107. package/dist/tasks/captchaManager.js.map +0 -1
  108. package/dist/tasks/client/clientTasks.d.ts +0 -21
  109. package/dist/tasks/client/clientTasks.d.ts.map +0 -1
  110. package/dist/tasks/client/clientTasks.js.map +0 -1
  111. package/dist/tasks/dataset/datasetTasks.d.ts +0 -13
  112. package/dist/tasks/dataset/datasetTasks.d.ts.map +0 -1
  113. package/dist/tasks/dataset/datasetTasks.js.map +0 -1
  114. package/dist/tasks/dataset/datasetTasksUtils.d.ts +0 -3
  115. package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +0 -1
  116. package/dist/tasks/dataset/datasetTasksUtils.js.map +0 -1
  117. package/dist/tasks/detection/decodePayload.d.ts +0 -5
  118. package/dist/tasks/detection/decodePayload.d.ts.map +0 -1
  119. package/dist/tasks/detection/decodePayload.js.map +0 -1
  120. package/dist/tasks/detection/getBotScore.d.ts +0 -5
  121. package/dist/tasks/detection/getBotScore.d.ts.map +0 -1
  122. package/dist/tasks/detection/getBotScore.js.map +0 -1
  123. package/dist/tasks/frictionless/frictionlessTasks.d.ts +0 -23
  124. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +0 -1
  125. package/dist/tasks/frictionless/frictionlessTasks.js.map +0 -1
  126. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +0 -5
  127. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +0 -1
  128. package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +0 -1
  129. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +0 -29
  130. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +0 -1
  131. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +0 -1
  132. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +0 -7
  133. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +0 -1
  134. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +0 -1
  135. package/dist/tasks/index.d.ts +0 -2
  136. package/dist/tasks/index.d.ts.map +0 -1
  137. package/dist/tasks/index.js.map +0 -1
  138. package/dist/tasks/powCaptcha/powTasks.d.ts +0 -16
  139. package/dist/tasks/powCaptcha/powTasks.d.ts.map +0 -1
  140. package/dist/tasks/powCaptcha/powTasks.js.map +0 -1
  141. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +0 -3
  142. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +0 -1
  143. package/dist/tasks/powCaptcha/powTasksUtils.js.map +0 -1
  144. package/dist/tasks/tasks.d.ts +0 -25
  145. package/dist/tasks/tasks.d.ts.map +0 -1
  146. package/dist/tasks/tasks.js.map +0 -1
  147. package/dist/tests/index.d.ts +0 -2
  148. package/dist/tests/index.d.ts.map +0 -1
  149. package/dist/tests/index.js +0 -2
  150. package/dist/tests/index.js.map +0 -1
  151. package/dist/tests/integration/accessRules.integration.test.d.ts +0 -2
  152. package/dist/tests/integration/accessRules.integration.test.d.ts.map +0 -1
  153. package/dist/tests/integration/accessRules.integration.test.js +0 -164
  154. package/dist/tests/integration/accessRules.integration.test.js.map +0 -1
  155. package/dist/tests/integration/imgCaptcha.integration.test.d.ts +0 -2
  156. package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +0 -1
  157. package/dist/tests/integration/imgCaptcha.integration.test.js +0 -261
  158. package/dist/tests/integration/imgCaptcha.integration.test.js.map +0 -1
  159. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +0 -32
  160. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +0 -1
  161. package/dist/tests/integration/mocks/solvedTestCaptchas.js +0 -1046
  162. package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +0 -1
  163. package/dist/tests/integration/powCaptcha.integration.test.d.ts +0 -2
  164. package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +0 -1
  165. package/dist/tests/integration/powCaptcha.integration.test.js +0 -306
  166. package/dist/tests/integration/powCaptcha.integration.test.js.map +0 -1
  167. package/dist/tests/integration/registerSitekey.d.ts +0 -3
  168. package/dist/tests/integration/registerSitekey.d.ts.map +0 -1
  169. package/dist/tests/integration/registerSitekey.js +0 -39
  170. package/dist/tests/integration/registerSitekey.js.map +0 -1
  171. package/dist/tests/integration/userAccessPolicy.d.ts +0 -16
  172. package/dist/tests/integration/userAccessPolicy.d.ts.map +0 -1
  173. package/dist/tests/integration/userAccessPolicy.js +0 -55
  174. package/dist/tests/integration/userAccessPolicy.js.map +0 -1
  175. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts +0 -2
  176. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts.map +0 -1
  177. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js +0 -43
  178. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js.map +0 -1
  179. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts +0 -2
  180. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts.map +0 -1
  181. package/dist/tests/unit/api/ja4Middleware.unit.test.js +0 -71
  182. package/dist/tests/unit/api/ja4Middleware.unit.test.js.map +0 -1
  183. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +0 -2
  184. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +0 -1
  185. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +0 -75
  186. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +0 -1
  187. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts +0 -2
  188. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts.map +0 -1
  189. package/dist/tests/unit/tasks/captchaManager.unit.test.js +0 -236
  190. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +0 -1
  191. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +0 -2
  192. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +0 -1
  193. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +0 -277
  194. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +0 -1
  195. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +0 -2
  196. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +0 -1
  197. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +0 -93
  198. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +0 -1
  199. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +0 -2
  200. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +0 -1
  201. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +0 -75
  202. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +0 -1
  203. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts +0 -2
  204. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts.map +0 -1
  205. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +0 -68
  206. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +0 -1
  207. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts +0 -2
  208. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts.map +0 -1
  209. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +0 -37
  210. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +0 -1
  211. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +0 -2
  212. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +0 -1
  213. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +0 -402
  214. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +0 -1
  215. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +0 -2
  216. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +0 -1
  217. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +0 -46
  218. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +0 -1
  219. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +0 -2
  220. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +0 -1
  221. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +0 -228
  222. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +0 -1
  223. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +0 -2
  224. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +0 -1
  225. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +0 -68
  226. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +0 -1
  227. package/dist/tests/unit/util.unit.test.d.ts +0 -2
  228. package/dist/tests/unit/util.unit.test.d.ts.map +0 -1
  229. package/dist/tests/unit/util.unit.test.js +0 -148
  230. package/dist/tests/unit/util.unit.test.js.map +0 -1
  231. package/dist/util.d.ts +0 -13
  232. package/dist/util.d.ts.map +0 -1
  233. package/dist/util.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"frictionlessTasksUtils.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AAEpG,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,eAAe,GAAG;gBACvB,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;aACN,CAAC;YACF,MAAM,MAAM,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,eAAe,GAAG;gBACvB,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;aACN,CAAC;YACF,MAAM,MAAM,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;YACrF,MAAM,eAAe,GAAG;gBACvB,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;gBACN,CAAC,EAAE,GAAG;aACN,CAAC;YACF,MAAM,MAAM,GAAG,wBAAwB,CAAC,eAAe,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=imgCaptchaTasks.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imgCaptchaTasks.unit.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.ts"],"names":[],"mappings":""}
@@ -1,402 +0,0 @@
1
- import { u8aToHex } from "@polkadot/util";
2
- import { ProsopoEnvError, getLogger } from "@prosopo/common";
3
- import { computePendingRequestHash, parseAndSortCaptchaSolutions, } from "@prosopo/datasets";
4
- import { CaptchaStatus, } from "@prosopo/types";
5
- import { getIPAddress } from "@prosopo/util";
6
- import { randomAsHex } from "@prosopo/util-crypto";
7
- import { beforeEach, describe, expect, it, vi } from "vitest";
8
- import { ImgCaptchaManager } from "../../../../tasks/imgCaptcha/imgCaptchaTasks.js";
9
- import { shuffleArray } from "../../../../util.js";
10
- const loggerOuter = getLogger("info", import.meta.url);
11
- vi.mock("@prosopo/datasets", () => ({
12
- computePendingRequestHash: vi.fn(),
13
- compareCaptchaSolutions: vi.fn(),
14
- parseAndSortCaptchaSolutions: vi.fn(),
15
- }));
16
- vi.mock("@prosopo/util-crypto", () => ({
17
- randomAsHex: vi.fn(),
18
- signatureVerify: vi.fn(),
19
- }));
20
- vi.mock("@polkadot/util", () => ({
21
- u8aToHex: vi.fn(),
22
- stringToHex: vi.fn(),
23
- }));
24
- vi.mock("../../../../util.js", async (importOriginal) => {
25
- return {
26
- ...(await importOriginal()),
27
- shuffleArray: vi.fn(),
28
- };
29
- });
30
- vi.mock("../../../../tasks/imgCaptcha/imgCaptchaTasksUtils.js", () => ({
31
- buildTreeAndGetCommitmentId: vi.fn(),
32
- }));
33
- const mockCaptchas = [
34
- {
35
- captchaId: "captcha1",
36
- solution: "solution1",
37
- question: "question1",
38
- options: ["option1"],
39
- datasetId: "datasetId",
40
- solved: true,
41
- },
42
- {
43
- captchaId: "captcha2",
44
- solution: "solution2",
45
- question: "question2",
46
- options: ["option2"],
47
- datasetId: "datasetId",
48
- solved: true,
49
- },
50
- {
51
- captchaId: "captcha3",
52
- solution: "solution3",
53
- question: "question3",
54
- options: ["option3"],
55
- datasetId: "datasetId",
56
- solved: true,
57
- },
58
- {
59
- captchaId: "captcha4",
60
- solution: "solution4",
61
- question: "question4",
62
- options: ["option4"],
63
- datasetId: "datasetId",
64
- solved: true,
65
- },
66
- {
67
- captchaId: "captcha5",
68
- solution: "solution5",
69
- question: "question5",
70
- options: ["option5"],
71
- datasetId: "datasetId",
72
- solved: true,
73
- },
74
- {
75
- captchaId: "captcha6",
76
- solution: "solution6",
77
- question: "question6",
78
- options: ["option6"],
79
- datasetId: "datasetId",
80
- solved: false,
81
- },
82
- {
83
- captchaId: "captcha7",
84
- solution: "solution7",
85
- question: "question7",
86
- options: ["option7"],
87
- datasetId: "datasetId",
88
- solved: false,
89
- },
90
- {
91
- captchaId: "captcha8",
92
- solution: "solution8",
93
- question: "question8",
94
- options: ["option8"],
95
- datasetId: "datasetId",
96
- solved: false,
97
- },
98
- {
99
- captchaId: "captcha9",
100
- solution: "solution9",
101
- question: "question9",
102
- options: ["option9"],
103
- datasetId: "datasetId",
104
- solved: false,
105
- },
106
- ];
107
- describe("ImgCaptchaManager", () => {
108
- let db;
109
- let pair;
110
- let logger;
111
- let captchaConfig;
112
- let imgCaptchaManager;
113
- beforeEach(() => {
114
- db = {
115
- getRandomCaptcha: vi.fn((solved, datasetId, size) => {
116
- console.log("solved", solved, "datasetId", datasetId, "size", size);
117
- return mockCaptchas
118
- .filter((captcha) => captcha.solved === solved && captcha.datasetId === datasetId)
119
- .splice(0, size);
120
- }),
121
- getDatasetDetails: vi.fn(),
122
- storePendingImageCommitment: vi.fn(),
123
- getPendingImageCommitment: vi.fn(),
124
- updatePendingImageCommitmentStatus: vi.fn(),
125
- storeDappUserSolution: vi.fn(),
126
- approveDappUserCommitment: vi.fn(),
127
- getCaptchaById: vi.fn(),
128
- getDappUserCommitmentById: vi.fn(),
129
- getDappUserCommitmentByAccount: vi.fn(),
130
- };
131
- pair = {
132
- sign: vi.fn(),
133
- address: "testAddress",
134
- };
135
- const mockLogger = {
136
- debug: vi.fn().mockImplementation(loggerOuter.debug.bind(loggerOuter)),
137
- log: vi.fn().mockImplementation(loggerOuter.log.bind(loggerOuter)),
138
- info: vi.fn().mockImplementation(loggerOuter.info.bind(loggerOuter)),
139
- error: vi.fn().mockImplementation(loggerOuter.error.bind(loggerOuter)),
140
- trace: vi.fn().mockImplementation(loggerOuter.trace.bind(loggerOuter)),
141
- fatal: vi.fn().mockImplementation(loggerOuter.fatal.bind(loggerOuter)),
142
- warn: vi.fn().mockImplementation(loggerOuter.warn.bind(loggerOuter)),
143
- };
144
- logger = mockLogger;
145
- captchaConfig = {
146
- solved: { count: 5 },
147
- unsolved: { count: 4 },
148
- };
149
- imgCaptchaManager = new ImgCaptchaManager(db, pair, captchaConfig, logger);
150
- vi.clearAllMocks();
151
- });
152
- describe("getCaptchaWithProof", () => {
153
- it("should get captcha with proof", async () => {
154
- const datasetId = "datasetId";
155
- const size = 3;
156
- const solved = true;
157
- const captchaDocs = [
158
- {
159
- captchaId: "captcha1",
160
- solution: "solution1",
161
- question: "question1",
162
- options: ["option1"],
163
- datasetId,
164
- },
165
- ];
166
- db.getRandomCaptcha.mockResolvedValue(captchaDocs);
167
- const result = await imgCaptchaManager.getCaptchaWithProof(datasetId, solved, size);
168
- expect(result).toEqual(captchaDocs);
169
- expect(db.getRandomCaptcha).toHaveBeenCalledWith(solved, datasetId, size);
170
- });
171
- it("should throw an error if get captcha with proof fails", async () => {
172
- const datasetId = "datasetId";
173
- const size = 3;
174
- const solved = true;
175
- db.getRandomCaptcha.mockResolvedValue(null);
176
- await expect(imgCaptchaManager.getCaptchaWithProof(datasetId, solved, size)).rejects.toThrow(new ProsopoEnvError("DATABASE.CAPTCHA_GET_FAILED", {
177
- context: {
178
- failedFuncName: "getCaptchaWithProof",
179
- datasetId,
180
- solved,
181
- size,
182
- },
183
- }));
184
- });
185
- it("should getCaptchaWithProof of specific size", async () => {
186
- const datasetId = "datasetId";
187
- const size = 3;
188
- const solvedResult = await imgCaptchaManager.getCaptchaWithProof(datasetId, true, size);
189
- expect(solvedResult.length).toBe(size);
190
- const unsolvedResult = await imgCaptchaManager.getCaptchaWithProof(datasetId, false, size);
191
- expect(unsolvedResult.length).toBe(size);
192
- });
193
- });
194
- describe("getRandomCaptchasAndRequestHash", () => {
195
- it("should get random captchas and request hash", async () => {
196
- const datasetId = "datasetId";
197
- const userAccount = "userAccount";
198
- const dataset = { datasetId, captchas: [] };
199
- const ipAddress = getIPAddress("1.1.1.1");
200
- const headers = { a: "1", b: "2", c: "3" };
201
- db.getDatasetDetails.mockResolvedValue(dataset);
202
- db.getRandomCaptcha.mockResolvedValue([]);
203
- randomAsHex.mockReturnValue("randomSalt");
204
- computePendingRequestHash.mockReturnValue("computedHash");
205
- pair.sign.mockReturnValue("hexSignedRequestHash");
206
- u8aToHex.mockReturnValue("hexSignedRequestHash");
207
- shuffleArray.mockReturnValue([]);
208
- const result = await imgCaptchaManager.getRandomCaptchasAndRequestHash(datasetId, userAccount, ipAddress, captchaConfig, 0.8);
209
- expect(result).toEqual({
210
- captchas: [],
211
- requestHash: "computedHash",
212
- timestamp: expect.any(Number),
213
- signedRequestHash: "hexSignedRequestHash",
214
- });
215
- });
216
- it("should throw an error if dataset details are not found", async () => {
217
- const datasetId = "datasetId";
218
- const userAccount = "userAccount";
219
- const ipAddress = getIPAddress("1.1.1.1");
220
- const headers = { a: "1", b: "2", c: "3" };
221
- db.getDatasetDetails.mockResolvedValue(null);
222
- await expect(imgCaptchaManager.getRandomCaptchasAndRequestHash(datasetId, userAccount, ipAddress, { solved: { count: 1 }, unsolved: { count: 1 } }, 0.8)).rejects.toThrow(new ProsopoEnvError("DATABASE.DATASET_GET_FAILED", {
223
- context: {
224
- failedFuncName: "getRandomCaptchasAndRequestHash",
225
- dataset: null,
226
- datasetId,
227
- },
228
- }));
229
- });
230
- });
231
- it("should validate received captchas against stored captchas", async () => {
232
- const captchas = [
233
- { captchaId: "captcha1", solution: "solution1", salt: "salt1" },
234
- ];
235
- const storedCaptchas = [
236
- {
237
- captchaId: "captcha1",
238
- solution: "solution1",
239
- question: "question1",
240
- options: ["option1"],
241
- datasetId: "dataset1",
242
- },
243
- ];
244
- parseAndSortCaptchaSolutions.mockReturnValue(captchas);
245
- db.getCaptchaById.mockResolvedValue(storedCaptchas);
246
- const result = await imgCaptchaManager.validateReceivedCaptchasAgainstStoredCaptchas(captchas);
247
- expect(result).toEqual({
248
- storedCaptchas,
249
- receivedCaptchas: captchas,
250
- captchaIds: ["captcha1"],
251
- });
252
- });
253
- it("should throw an error if received captchas length does not match stored captchas", async () => {
254
- const captchas = [
255
- { captchaId: "captcha1", solution: "solution1", salt: "salt1" },
256
- ];
257
- parseAndSortCaptchaSolutions.mockReturnValue(captchas);
258
- db.getCaptchaById.mockResolvedValue([]);
259
- await expect(imgCaptchaManager.validateReceivedCaptchasAgainstStoredCaptchas(captchas)).rejects.toThrow(new ProsopoEnvError("CAPTCHA.INVALID_CAPTCHA_ID", {
260
- context: {
261
- failedFuncName: "validateReceivedCaptchasAgainstStoredCaptchas",
262
- captchas,
263
- },
264
- }));
265
- });
266
- it("should validate dapp user solution request is pending", async () => {
267
- const requestHash = "requestHash";
268
- const timestamp = Date.now() + 10000;
269
- const pendingRecord = {
270
- requestHash: "requestHash",
271
- userAccount: "userAccount",
272
- datasetId: "datasetId",
273
- salt: "salt",
274
- deadlineTimestamp: timestamp,
275
- currentBlockNumber: 0,
276
- };
277
- const userAccount = "userAccount";
278
- const captchaIds = ["captcha1"];
279
- computePendingRequestHash.mockReturnValue("requestHash");
280
- const result = await imgCaptchaManager.validateDappUserSolutionRequestIsPending(requestHash, pendingRecord, userAccount, captchaIds);
281
- expect(result).toBe(true);
282
- });
283
- it("should return false if deadline has expired", async () => {
284
- const requestHash = "requestHash";
285
- const timestamp = Date.now() - 10000;
286
- const pendingRecord = {
287
- requestHash: "requestHash",
288
- userAccount: "userAccount",
289
- datasetId: "datasetId",
290
- salt: "salt",
291
- deadlineTimestamp: timestamp,
292
- currentBlockNumber: 0,
293
- };
294
- const userAccount = "userAccount";
295
- const captchaIds = ["captcha1"];
296
- const result = await imgCaptchaManager.validateDappUserSolutionRequestIsPending(requestHash, pendingRecord, userAccount, captchaIds);
297
- expect(result).toBe(false);
298
- const logFn = logger.info.mock.calls[0][0];
299
- const logObj = logFn();
300
- expect(logObj).toMatchObject({
301
- msg: "Deadline for responding to captcha has expired",
302
- });
303
- });
304
- it("should get dapp user commitment by ID", async () => {
305
- const commitmentId = "commitmentId";
306
- const dappUserCommitment = {
307
- id: "commitmentId",
308
- userAccount: "userAccount",
309
- dappAccount: "dappAccount",
310
- providerAccount: "providerAccount",
311
- datasetId: "datasetId",
312
- result: { status: CaptchaStatus.approved },
313
- userSignature: "",
314
- userSubmitted: true,
315
- serverChecked: false,
316
- requestedAtTimestamp: 0,
317
- ipAddress: getIPAddress("1.1.1.1").bigInt(),
318
- headers: { a: "1", b: "2", c: "3" },
319
- ja4: "ja4",
320
- lastUpdatedTimestamp: Date.now(),
321
- };
322
- db.getDappUserCommitmentById.mockResolvedValue(dappUserCommitment);
323
- const result = await imgCaptchaManager.getDappUserCommitmentById(commitmentId);
324
- expect(result).toEqual(dappUserCommitment);
325
- });
326
- it("should throw an error if dapp user commitment is not found by ID", async () => {
327
- const commitmentId = "commitmentId";
328
- db.getDappUserCommitmentById.mockResolvedValue(null);
329
- await expect(imgCaptchaManager.getDappUserCommitmentById(commitmentId)).rejects.toThrow(new ProsopoEnvError("CAPTCHA.DAPP_USER_SOLUTION_NOT_FOUND", {
330
- context: {
331
- failedFuncName: "getDappUserCommitmentById",
332
- commitmentId: commitmentId,
333
- },
334
- }));
335
- });
336
- it("should get dapp user commitment by account", async () => {
337
- const userAccount = "userAccount";
338
- const dappAccount = "dappAccount";
339
- const dappUserCommitments = [
340
- {
341
- id: "commitmentId",
342
- userAccount,
343
- dappAccount,
344
- providerAccount: "providerAccount",
345
- datasetId: "datasetId",
346
- result: { status: CaptchaStatus.approved },
347
- userSignature: "",
348
- userSubmitted: true,
349
- serverChecked: false,
350
- requestedAtTimestamp: 0,
351
- ipAddress: getIPAddress("1.1.1.1").bigInt(),
352
- headers: { a: "1", b: "2", c: "3" },
353
- ja4: "ja4",
354
- lastUpdatedTimestamp: Date.now(),
355
- },
356
- ];
357
- db.getDappUserCommitmentByAccount.mockResolvedValue(dappUserCommitments);
358
- const result = await imgCaptchaManager.getDappUserCommitmentByAccount(userAccount, dappAccount);
359
- expect(result).toEqual(dappUserCommitments[0]);
360
- });
361
- it("should return undefined if no approved dapp user commitment is found by account", async () => {
362
- const userAccount = "userAccount";
363
- const dappAccount = "dappAccount";
364
- const dappUserCommitments = [];
365
- db.getDappUserCommitmentByAccount.mockResolvedValue(dappUserCommitments);
366
- const result = await imgCaptchaManager.getDappUserCommitmentByAccount(userAccount, dappAccount);
367
- expect(result).toBeUndefined();
368
- });
369
- it("should fail the user if an ip is passed up and it does not match the ip address stored in the commitment", async () => {
370
- const userAccount = "userAccount";
371
- const dappAccount = "dappAccount";
372
- const ipAddress = "1.1.1.1";
373
- const dappUserCommitment = {
374
- id: "commitmentId",
375
- userAccount,
376
- dappAccount,
377
- providerAccount: "providerAccount",
378
- datasetId: "datasetId",
379
- result: { status: CaptchaStatus.approved },
380
- userSignature: "",
381
- userSubmitted: true,
382
- serverChecked: false,
383
- requestedAtTimestamp: 0,
384
- ipAddress: getIPAddress("8.8.8.8").bigInt(),
385
- headers: { a: "1", b: "2", c: "3" },
386
- ja4: "ja4",
387
- };
388
- db.getDappUserCommitmentById.mockResolvedValue(dappUserCommitment);
389
- const verifyResult = await imgCaptchaManager.verifyImageCaptchaSolution(userAccount, dappAccount, "commitmentId", undefined, ipAddress);
390
- expect(verifyResult.verified).toBe(false);
391
- const logFn = logger.info.mock.calls[1][0];
392
- const logObj = logFn();
393
- expect(logObj).toMatchObject({
394
- msg: "IP address mismatch: 8.8.8.8 !== 1.1.1.1",
395
- data: {
396
- challengeIp: "8.8.8.8",
397
- providedIp: "1.1.1.1",
398
- },
399
- });
400
- });
401
- });
402
- //# sourceMappingURL=imgCaptchaTasks.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imgCaptchaTasks.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=imgCaptchaTasksUtils.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imgCaptchaTasksUtils.unit.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.ts"],"names":[],"mappings":""}
@@ -1,46 +0,0 @@
1
- import { ProsopoEnvError } from "@prosopo/common";
2
- import { CaptchaMerkleTree, computeCaptchaSolutionHash, } from "@prosopo/datasets";
3
- import { beforeEach, describe, expect, it, vi } from "vitest";
4
- import { buildTreeAndGetCommitmentId } from "../../../../tasks/imgCaptcha/imgCaptchaTasksUtils.js";
5
- vi.mock("@prosopo/datasets", () => ({
6
- CaptchaMerkleTree: vi.fn().mockImplementation(() => ({
7
- build: vi.fn(),
8
- root: { hash: "mockedRootHash" },
9
- })),
10
- computeCaptchaSolutionHash: vi.fn(),
11
- }));
12
- describe("buildTreeAndGetCommitmentId", () => {
13
- const mockCaptchaSolutions = [
14
- { challenge: "challenge1", solution: "solution1", salt: "salt1" },
15
- { challenge: "challenge2", solution: "solution2", salt: "salt2" },
16
- ];
17
- beforeEach(() => {
18
- vi.clearAllMocks();
19
- });
20
- it("should build a tree and return the commitmentId", () => {
21
- computeCaptchaSolutionHash
22
- .mockReturnValueOnce("hashedSolution1")
23
- .mockReturnValueOnce("hashedSolution2");
24
- const result = buildTreeAndGetCommitmentId(mockCaptchaSolutions);
25
- expect(CaptchaMerkleTree).toHaveBeenCalled();
26
- expect(computeCaptchaSolutionHash).toHaveBeenCalledWith(mockCaptchaSolutions[0]);
27
- expect(computeCaptchaSolutionHash).toHaveBeenCalledWith(mockCaptchaSolutions[1]);
28
- expect(result).toEqual({
29
- tree: expect.any(Object),
30
- commitmentId: "mockedRootHash",
31
- });
32
- });
33
- it("should throw an error if commitmentId does not exist", () => {
34
- CaptchaMerkleTree.mockImplementation(() => ({
35
- build: vi.fn(),
36
- root: { hash: null },
37
- }));
38
- expect(() => buildTreeAndGetCommitmentId(mockCaptchaSolutions)).toThrow(new ProsopoEnvError("CONTRACT.CAPTCHA_SOLUTION_COMMITMENT_DOES_NOT_EXIST", {
39
- context: {
40
- failedFuncName: "buildTreeAndGetCommitmentId",
41
- commitmentId: null,
42
- },
43
- }));
44
- });
45
- });
46
- //# sourceMappingURL=imgCaptchaTasksUtils.unit.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imgCaptchaTasksUtils.unit.test.js","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACN,iBAAiB,EACjB,0BAA0B,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AAEnG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;KAChC,CAAC,CAAC;IACH,0BAA0B,EAAE,EAAE,CAAC,EAAE,EAAE;CACnC,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC5C,MAAM,oBAAoB,GAAG;QAC5B,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;QACjE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;KACjC,CAAC;IAElC,UAAU,CAAC,GAAG,EAAE;QACf,EAAE,CAAC,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAEzD,0BAAkC;aACjC,mBAAmB,CAAC,iBAAiB,CAAC;aACtC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,2BAA2B,CAAC,oBAAoB,CAAC,CAAC;QAEjE,MAAM,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC7C,MAAM,CAAC,0BAA0B,CAAC,CAAC,oBAAoB,CACtD,oBAAoB,CAAC,CAAC,CAAC,CACvB,CAAC;QACF,MAAM,CAAC,0BAA0B,CAAC,CAAC,oBAAoB,CACtD,oBAAoB,CAAC,CAAC,CAAC,CACvB,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;YACxB,YAAY,EAAE,gBAAgB;SAC9B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAE9D,iBAAyB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YACpD,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACpB,CAAC,CAAC,CAAC;QAEJ,MAAM,CAAC,GAAG,EAAE,CAAC,2BAA2B,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CACtE,IAAI,eAAe,CAClB,qDAAqD,EACrD;YACC,OAAO,EAAE;gBACR,cAAc,EAAE,6BAA6B;gBAC7C,YAAY,EAAE,IAAI;aAClB;SACD,CACD,CACD,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=powTasks.unit.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"powTasks.unit.test.d.ts","sourceRoot":"","sources":["../../../../../src/tests/unit/tasks/powCaptcha/powTasks.unit.test.ts"],"names":[],"mappings":""}