@prosopo/provider 3.1.3 → 3.2.1

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 (227) hide show
  1. package/CHANGELOG.md +54 -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 +116 -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 +75 -80
  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/blacklistRequestInspector.cjs +4 -6
  19. package/dist/cjs/api/captcha.cjs +45 -36
  20. package/dist/cjs/api/ja4Middleware.cjs +4 -1
  21. package/dist/cjs/tasks/captchaManager.cjs +24 -10
  22. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +0 -3
  23. package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +1 -1
  24. package/dist/index.js +38 -15
  25. package/dist/rules/lang.js +14 -14
  26. package/dist/schedulers/captchaScheduler.js +28 -23
  27. package/dist/schedulers/getClientList.js +29 -24
  28. package/dist/tasks/captchaManager.js +109 -85
  29. package/dist/tasks/client/clientTasks.js +265 -204
  30. package/dist/tasks/dataset/datasetTasks.js +27 -16
  31. package/dist/tasks/dataset/datasetTasksUtils.js +31 -31
  32. package/dist/tasks/detection/decodePayload.js +378 -208
  33. package/dist/tasks/detection/getBotScore.js +12 -10
  34. package/dist/tasks/frictionless/frictionlessTasks.js +117 -119
  35. package/dist/tasks/frictionless/frictionlessTasksUtils.js +10 -5
  36. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +360 -271
  37. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +23 -16
  38. package/dist/tasks/index.js +4 -2
  39. package/dist/tasks/powCaptcha/powTasks.js +157 -97
  40. package/dist/tasks/powCaptcha/powTasksUtils.js +24 -20
  41. package/dist/tasks/tasks.js +53 -29
  42. package/dist/util.js +98 -88
  43. package/package.json +31 -27
  44. package/vite.cjs.config.ts +4 -1
  45. package/vite.esm.config.ts +20 -0
  46. package/vite.test.config.ts +15 -3
  47. package/dist/api/admin/apiAdminRoutesProvider.d.ts +0 -9
  48. package/dist/api/admin/apiAdminRoutesProvider.d.ts.map +0 -1
  49. package/dist/api/admin/apiAdminRoutesProvider.js.map +0 -1
  50. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts +0 -14
  51. package/dist/api/admin/apiRegisterSiteKeyEndpoint.d.ts.map +0 -1
  52. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js.map +0 -1
  53. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts +0 -14
  54. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +0 -1
  55. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js.map +0 -1
  56. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts +0 -14
  57. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.d.ts.map +0 -1
  58. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js.map +0 -1
  59. package/dist/api/admin/createApiAdminRoutesProvider.d.ts +0 -4
  60. package/dist/api/admin/createApiAdminRoutesProvider.d.ts.map +0 -1
  61. package/dist/api/admin/createApiAdminRoutesProvider.js.map +0 -1
  62. package/dist/api/blacklistRequestInspector.d.ts +0 -44
  63. package/dist/api/blacklistRequestInspector.d.ts.map +0 -1
  64. package/dist/api/blacklistRequestInspector.js.map +0 -1
  65. package/dist/api/block.d.ts +0 -3
  66. package/dist/api/block.d.ts.map +0 -1
  67. package/dist/api/block.js.map +0 -1
  68. package/dist/api/captcha.d.ts +0 -4
  69. package/dist/api/captcha.d.ts.map +0 -1
  70. package/dist/api/captcha.js.map +0 -1
  71. package/dist/api/domainMiddleware.d.ts +0 -4
  72. package/dist/api/domainMiddleware.d.ts.map +0 -1
  73. package/dist/api/domainMiddleware.js.map +0 -1
  74. package/dist/api/headerCheckMiddleware.d.ts +0 -4
  75. package/dist/api/headerCheckMiddleware.d.ts.map +0 -1
  76. package/dist/api/headerCheckMiddleware.js.map +0 -1
  77. package/dist/api/ignoreMiddleware.d.ts +0 -3
  78. package/dist/api/ignoreMiddleware.d.ts.map +0 -1
  79. package/dist/api/ignoreMiddleware.js.map +0 -1
  80. package/dist/api/ja4Middleware.d.ts +0 -10
  81. package/dist/api/ja4Middleware.d.ts.map +0 -1
  82. package/dist/api/ja4Middleware.js.map +0 -1
  83. package/dist/api/public.d.ts +0 -3
  84. package/dist/api/public.d.ts.map +0 -1
  85. package/dist/api/public.js.map +0 -1
  86. package/dist/api/robotsMiddleware.d.ts +0 -3
  87. package/dist/api/robotsMiddleware.d.ts.map +0 -1
  88. package/dist/api/robotsMiddleware.js.map +0 -1
  89. package/dist/api/validateAddress.d.ts +0 -5
  90. package/dist/api/validateAddress.d.ts.map +0 -1
  91. package/dist/api/validateAddress.js.map +0 -1
  92. package/dist/api/verify.d.ts +0 -4
  93. package/dist/api/verify.d.ts.map +0 -1
  94. package/dist/api/verify.js.map +0 -1
  95. package/dist/index.d.ts +0 -15
  96. package/dist/index.d.ts.map +0 -1
  97. package/dist/index.js.map +0 -1
  98. package/dist/rules/lang.d.ts +0 -3
  99. package/dist/rules/lang.d.ts.map +0 -1
  100. package/dist/rules/lang.js.map +0 -1
  101. package/dist/schedulers/captchaScheduler.d.ts +0 -4
  102. package/dist/schedulers/captchaScheduler.d.ts.map +0 -1
  103. package/dist/schedulers/captchaScheduler.js.map +0 -1
  104. package/dist/schedulers/getClientList.d.ts +0 -4
  105. package/dist/schedulers/getClientList.d.ts.map +0 -1
  106. package/dist/schedulers/getClientList.js.map +0 -1
  107. package/dist/tasks/captchaManager.d.ts +0 -48
  108. package/dist/tasks/captchaManager.d.ts.map +0 -1
  109. package/dist/tasks/captchaManager.js.map +0 -1
  110. package/dist/tasks/client/clientTasks.d.ts +0 -21
  111. package/dist/tasks/client/clientTasks.d.ts.map +0 -1
  112. package/dist/tasks/client/clientTasks.js.map +0 -1
  113. package/dist/tasks/dataset/datasetTasks.d.ts +0 -13
  114. package/dist/tasks/dataset/datasetTasks.d.ts.map +0 -1
  115. package/dist/tasks/dataset/datasetTasks.js.map +0 -1
  116. package/dist/tasks/dataset/datasetTasksUtils.d.ts +0 -3
  117. package/dist/tasks/dataset/datasetTasksUtils.d.ts.map +0 -1
  118. package/dist/tasks/dataset/datasetTasksUtils.js.map +0 -1
  119. package/dist/tasks/detection/decodePayload.d.ts +0 -5
  120. package/dist/tasks/detection/decodePayload.d.ts.map +0 -1
  121. package/dist/tasks/detection/decodePayload.js.map +0 -1
  122. package/dist/tasks/detection/getBotScore.d.ts +0 -5
  123. package/dist/tasks/detection/getBotScore.d.ts.map +0 -1
  124. package/dist/tasks/detection/getBotScore.js.map +0 -1
  125. package/dist/tasks/frictionless/frictionlessTasks.d.ts +0 -23
  126. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +0 -1
  127. package/dist/tasks/frictionless/frictionlessTasks.js.map +0 -1
  128. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts +0 -5
  129. package/dist/tasks/frictionless/frictionlessTasksUtils.d.ts.map +0 -1
  130. package/dist/tasks/frictionless/frictionlessTasksUtils.js.map +0 -1
  131. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts +0 -29
  132. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +0 -1
  133. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +0 -1
  134. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts +0 -7
  135. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.d.ts.map +0 -1
  136. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js.map +0 -1
  137. package/dist/tasks/index.d.ts +0 -2
  138. package/dist/tasks/index.d.ts.map +0 -1
  139. package/dist/tasks/index.js.map +0 -1
  140. package/dist/tasks/powCaptcha/powTasks.d.ts +0 -16
  141. package/dist/tasks/powCaptcha/powTasks.d.ts.map +0 -1
  142. package/dist/tasks/powCaptcha/powTasks.js.map +0 -1
  143. package/dist/tasks/powCaptcha/powTasksUtils.d.ts +0 -3
  144. package/dist/tasks/powCaptcha/powTasksUtils.d.ts.map +0 -1
  145. package/dist/tasks/powCaptcha/powTasksUtils.js.map +0 -1
  146. package/dist/tasks/tasks.d.ts +0 -25
  147. package/dist/tasks/tasks.d.ts.map +0 -1
  148. package/dist/tasks/tasks.js.map +0 -1
  149. package/dist/tests/index.d.ts +0 -2
  150. package/dist/tests/index.d.ts.map +0 -1
  151. package/dist/tests/index.js +0 -2
  152. package/dist/tests/index.js.map +0 -1
  153. package/dist/tests/integration/imgCaptcha.integration.test.d.ts +0 -2
  154. package/dist/tests/integration/imgCaptcha.integration.test.d.ts.map +0 -1
  155. package/dist/tests/integration/imgCaptcha.integration.test.js +0 -261
  156. package/dist/tests/integration/imgCaptcha.integration.test.js.map +0 -1
  157. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts +0 -32
  158. package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.map +0 -1
  159. package/dist/tests/integration/mocks/solvedTestCaptchas.js +0 -1046
  160. package/dist/tests/integration/mocks/solvedTestCaptchas.js.map +0 -1
  161. package/dist/tests/integration/powCaptcha.integration.test.d.ts +0 -2
  162. package/dist/tests/integration/powCaptcha.integration.test.d.ts.map +0 -1
  163. package/dist/tests/integration/powCaptcha.integration.test.js +0 -299
  164. package/dist/tests/integration/powCaptcha.integration.test.js.map +0 -1
  165. package/dist/tests/integration/registerSitekey.d.ts +0 -3
  166. package/dist/tests/integration/registerSitekey.d.ts.map +0 -1
  167. package/dist/tests/integration/registerSitekey.js +0 -39
  168. package/dist/tests/integration/registerSitekey.js.map +0 -1
  169. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts +0 -2
  170. package/dist/tests/unit/api/ignoreMiddleware.unit.test.d.ts.map +0 -1
  171. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js +0 -43
  172. package/dist/tests/unit/api/ignoreMiddleware.unit.test.js.map +0 -1
  173. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts +0 -2
  174. package/dist/tests/unit/api/ja4Middleware.unit.test.d.ts.map +0 -1
  175. package/dist/tests/unit/api/ja4Middleware.unit.test.js +0 -71
  176. package/dist/tests/unit/api/ja4Middleware.unit.test.js.map +0 -1
  177. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts +0 -2
  178. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.d.ts.map +0 -1
  179. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +0 -75
  180. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +0 -1
  181. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts +0 -2
  182. package/dist/tests/unit/tasks/captchaManager.unit.test.d.ts.map +0 -1
  183. package/dist/tests/unit/tasks/captchaManager.unit.test.js +0 -236
  184. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +0 -1
  185. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts +0 -2
  186. package/dist/tests/unit/tasks/client/clientTasks.unit.test.d.ts.map +0 -1
  187. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +0 -277
  188. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +0 -1
  189. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts +0 -2
  190. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.d.ts.map +0 -1
  191. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +0 -93
  192. package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +0 -1
  193. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts +0 -2
  194. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.d.ts.map +0 -1
  195. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +0 -75
  196. package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +0 -1
  197. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts +0 -2
  198. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.d.ts.map +0 -1
  199. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +0 -68
  200. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +0 -1
  201. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts +0 -2
  202. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.d.ts.map +0 -1
  203. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js +0 -37
  204. package/dist/tests/unit/tasks/frictionless/frictionlessTasksUtils.unit.test.js.map +0 -1
  205. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts +0 -2
  206. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.d.ts.map +0 -1
  207. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +0 -402
  208. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +0 -1
  209. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts +0 -2
  210. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.d.ts.map +0 -1
  211. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +0 -46
  212. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +0 -1
  213. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts +0 -2
  214. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.d.ts.map +0 -1
  215. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +0 -228
  216. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +0 -1
  217. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts +0 -2
  218. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.d.ts.map +0 -1
  219. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js +0 -68
  220. package/dist/tests/unit/tasks/powCaptcha/powTasksUtils.unit.test.js.map +0 -1
  221. package/dist/tests/unit/util.unit.test.d.ts +0 -2
  222. package/dist/tests/unit/util.unit.test.d.ts.map +0 -1
  223. package/dist/tests/unit/util.unit.test.js +0 -148
  224. package/dist/tests/unit/util.unit.test.js.map +0 -1
  225. package/dist/util.d.ts +0 -13
  226. package/dist/util.d.ts.map +0 -1
  227. package/dist/util.js.map +0 -1
@@ -3,28 +3,33 @@ import { ScheduledTaskNames } from "@prosopo/types";
3
3
  import { CronJob } from "cron";
4
4
  import { Tasks } from "../tasks/tasks.js";
5
5
  import { checkIfTaskIsRunning } from "../util.js";
6
- export async function storeCaptchasExternally(pair, cronSchedule, config) {
7
- const env = new ProviderEnvironment(config, pair);
8
- await env.isReady();
9
- const tasks = new Tasks(env);
10
- const job = new CronJob(cronSchedule, async () => {
11
- const taskRunning = await checkIfTaskIsRunning(ScheduledTaskNames.StoreCommitmentsExternal, env.getDb());
12
- env.logger.info(() => ({
13
- data: { taskRunning },
14
- msg: `${ScheduledTaskNames.StoreCommitmentsExternal} task running: ${taskRunning}`,
6
+ async function storeCaptchasExternally(pair, cronSchedule, config) {
7
+ const env = new ProviderEnvironment(config, pair);
8
+ await env.isReady();
9
+ const tasks = new Tasks(env);
10
+ const job = new CronJob(cronSchedule, async () => {
11
+ const taskRunning = await checkIfTaskIsRunning(
12
+ ScheduledTaskNames.StoreCommitmentsExternal,
13
+ env.getDb()
14
+ );
15
+ env.logger.info(() => ({
16
+ data: { taskRunning },
17
+ msg: `${ScheduledTaskNames.StoreCommitmentsExternal} task running: ${taskRunning}`
18
+ }));
19
+ if (!taskRunning) {
20
+ env.logger.info(() => ({
21
+ msg: `${ScheduledTaskNames.StoreCommitmentsExternal} task....`
22
+ }));
23
+ await tasks.clientTaskManager.storeCommitmentsExternal().catch((err) => {
24
+ env.logger.error(() => ({
25
+ err,
26
+ msg: "Error storing commitments externally"
15
27
  }));
16
- if (!taskRunning) {
17
- env.logger.info(() => ({
18
- msg: `${ScheduledTaskNames.StoreCommitmentsExternal} task....`,
19
- }));
20
- await tasks.clientTaskManager.storeCommitmentsExternal().catch((err) => {
21
- env.logger.error(() => ({
22
- err,
23
- msg: "Error storing commitments externally",
24
- }));
25
- });
26
- }
27
- });
28
- job.start();
28
+ });
29
+ }
30
+ });
31
+ job.start();
29
32
  }
30
- //# sourceMappingURL=captchaScheduler.js.map
33
+ export {
34
+ storeCaptchasExternally
35
+ };
@@ -3,29 +3,34 @@ import { ScheduledTaskNames } from "@prosopo/types";
3
3
  import { CronJob } from "cron";
4
4
  import { Tasks } from "../tasks/tasks.js";
5
5
  import { checkIfTaskIsRunning } from "../util.js";
6
- export async function getClientList(pair, cronSchedule, config) {
7
- const env = new ProviderEnvironment(config, pair);
8
- await env.isReady();
9
- const tasks = new Tasks(env);
10
- const job = new CronJob(cronSchedule, async () => {
11
- const taskRunning = await checkIfTaskIsRunning(ScheduledTaskNames.GetClientList, env.getDb());
12
- env.logger.info(() => ({
13
- msg: `${ScheduledTaskNames.GetClientList} task running: ${taskRunning}`,
14
- data: { taskRunning },
6
+ async function getClientList(pair, cronSchedule, config) {
7
+ const env = new ProviderEnvironment(config, pair);
8
+ await env.isReady();
9
+ const tasks = new Tasks(env);
10
+ const job = new CronJob(cronSchedule, async () => {
11
+ const taskRunning = await checkIfTaskIsRunning(
12
+ ScheduledTaskNames.GetClientList,
13
+ env.getDb()
14
+ );
15
+ env.logger.info(() => ({
16
+ msg: `${ScheduledTaskNames.GetClientList} task running: ${taskRunning}`,
17
+ data: { taskRunning }
18
+ }));
19
+ if (!taskRunning) {
20
+ env.logger.info(() => ({
21
+ msg: `${ScheduledTaskNames.GetClientList} task....`,
22
+ data: {}
23
+ }));
24
+ await tasks.clientTaskManager.getClientList().catch((err) => {
25
+ env.logger.error(() => ({
26
+ err,
27
+ msg: "Error getting client list"
15
28
  }));
16
- if (!taskRunning) {
17
- env.logger.info(() => ({
18
- msg: `${ScheduledTaskNames.GetClientList} task....`,
19
- data: {},
20
- }));
21
- await tasks.clientTaskManager.getClientList().catch((err) => {
22
- env.logger.error(() => ({
23
- err,
24
- msg: "Error getting client list",
25
- }));
26
- });
27
- }
28
- });
29
- job.start();
29
+ });
30
+ }
31
+ });
32
+ job.start();
30
33
  }
31
- //# sourceMappingURL=getClientList.js.map
34
+ export {
35
+ getClientList
36
+ };
@@ -1,96 +1,120 @@
1
1
  import { getLogger } from "@prosopo/common";
2
- import { ApiParams, CaptchaType, Tier } from "@prosopo/types";
2
+ import { CaptchaType, ApiParams, Tier } from "@prosopo/types";
3
3
  import { getPrioritisedAccessRule } from "../api/blacklistRequestInspector.js";
4
- export class CaptchaManager {
5
- constructor(db, pair, logger) {
6
- this.pair = pair;
7
- this.db = db;
8
- this.logger = logger || getLogger("info", import.meta.url);
9
- }
10
- async getFrictionlessTokenIdFromSession(sessionRecord) {
11
- const tokenRecord = await this.db.getFrictionlessTokenRecordByTokenId(sessionRecord.tokenId);
12
- return tokenRecord ? tokenRecord._id : undefined;
4
+ class CaptchaManager {
5
+ constructor(db, pair, logger) {
6
+ this.pair = pair;
7
+ this.db = db;
8
+ this.logger = logger || getLogger("info", import.meta.url);
9
+ }
10
+ async getFrictionlessTokenIdFromSession(sessionRecord) {
11
+ const tokenRecord = await this.db.getFrictionlessTokenRecordByTokenId(
12
+ sessionRecord.tokenId
13
+ );
14
+ return tokenRecord ? tokenRecord._id : void 0;
15
+ }
16
+ async isValidRequest(clientSettings, requestedCaptchaType, sessionId, userAccessPolicy) {
17
+ this.logger.debug(() => ({
18
+ msg: "Validating request",
19
+ data: {
20
+ captchaType: requestedCaptchaType,
21
+ sessionId
22
+ }
23
+ }));
24
+ if (userAccessPolicy && userAccessPolicy.captchaType !== requestedCaptchaType) {
25
+ this.logger.warn(() => ({
26
+ msg: "Invalid captcha type for user access policy",
27
+ data: {
28
+ account: clientSettings.account,
29
+ captchaType: userAccessPolicy.captchaType
30
+ }
31
+ }));
32
+ return {
33
+ valid: false,
34
+ reason: "API.INCORRECT_CAPTCHA_TYPE",
35
+ type: requestedCaptchaType
36
+ };
13
37
  }
14
- async isValidRequest(clientSettings, captchaType, sessionId) {
15
- this.logger.debug(() => ({
16
- msg: "Validating request",
38
+ if (sessionId) {
39
+ if (clientSettings?.settings?.captchaType === CaptchaType.frictionless) {
40
+ const sessionRecord = await this.db.checkAndRemoveSession(sessionId);
41
+ if (!sessionRecord) {
42
+ this.logger.warn(() => ({
43
+ msg: "No frictionless session found",
17
44
  data: {
18
- captchaType,
19
- sessionId,
20
- },
21
- }));
22
- if (sessionId) {
23
- if (clientSettings?.settings?.captchaType === CaptchaType.frictionless) {
24
- const sessionRecord = await this.db.checkAndRemoveSession(sessionId);
25
- if (!sessionRecord) {
26
- this.logger.warn(() => ({
27
- msg: "No frictionless session found",
28
- data: {
29
- account: clientSettings.account,
30
- sessionId: sessionId,
31
- },
32
- }));
33
- return {
34
- valid: false,
35
- reason: "CAPTCHA.NO_SESSION_FOUND",
36
- type: captchaType,
37
- };
38
- }
39
- const frictionlessTokenId = await this.getFrictionlessTokenIdFromSession(sessionRecord);
40
- return {
41
- valid: true,
42
- frictionlessTokenId,
43
- type: captchaType,
44
- };
45
+ account: clientSettings.account,
46
+ sessionId
45
47
  }
46
- this.logger.warn(() => ({
47
- msg: "Invalid frictionless request",
48
- data: {
49
- account: clientSettings.account,
50
- sessionId: sessionId,
51
- settingsCaptchaType: clientSettings?.settings?.captchaType,
52
- },
53
- }));
54
- return {
55
- valid: false,
56
- reason: "API.INCORRECT_CAPTCHA_TYPE",
57
- type: captchaType,
58
- };
48
+ }));
49
+ return {
50
+ valid: false,
51
+ reason: "CAPTCHA.NO_SESSION_FOUND",
52
+ type: requestedCaptchaType
53
+ };
59
54
  }
60
- if (clientSettings?.settings?.captchaType !== captchaType) {
61
- this.logger.warn(() => ({
62
- msg: `Invalid ${captchaType} request`,
63
- data: {
64
- account: clientSettings.account,
65
- requestedCaptchaType: captchaType,
66
- settingsCaptchaType: clientSettings?.settings?.captchaType,
67
- },
68
- }));
69
- return {
70
- valid: false,
71
- reason: "API.INCORRECT_CAPTCHA_TYPE",
72
- type: captchaType,
73
- };
74
- }
75
- return { valid: true, type: captchaType };
76
- }
77
- getVerificationResponse(verified, clientRecord, translateFn, score) {
55
+ const frictionlessTokenId = await this.getFrictionlessTokenIdFromSession(sessionRecord);
78
56
  return {
79
- status: translateFn(verified ? "API.USER_VERIFIED" : "API.USER_NOT_VERIFIED"),
80
- [ApiParams.verified]: verified,
81
- ...(CaptchaManager.canClientSeeScore(clientRecord.tier, score) && {
82
- [ApiParams.score]: score,
83
- }),
57
+ valid: true,
58
+ frictionlessTokenId,
59
+ type: requestedCaptchaType
84
60
  };
61
+ }
62
+ this.logger.warn(() => ({
63
+ msg: "Invalid frictionless request",
64
+ data: {
65
+ account: clientSettings.account,
66
+ sessionId,
67
+ settingsCaptchaType: clientSettings?.settings?.captchaType
68
+ }
69
+ }));
70
+ return {
71
+ valid: false,
72
+ reason: "API.INCORRECT_CAPTCHA_TYPE",
73
+ type: requestedCaptchaType
74
+ };
85
75
  }
86
- async getPrioritisedAccessPolicies(userAccessRulesStorage, clientId, userScope) {
87
- return getPrioritisedAccessRule(userAccessRulesStorage, userScope, clientId);
88
- }
89
- async getDetectorKeys() {
90
- return await this.db.getDetectorKeys();
91
- }
92
- static canClientSeeScore(tier, score) {
93
- return score && tier && tier !== Tier.Free;
76
+ if (clientSettings?.settings?.captchaType !== requestedCaptchaType) {
77
+ this.logger.warn(() => ({
78
+ msg: `Invalid ${requestedCaptchaType} request`,
79
+ data: {
80
+ account: clientSettings.account,
81
+ requestedCaptchaType,
82
+ settingsCaptchaType: clientSettings?.settings?.captchaType
83
+ }
84
+ }));
85
+ return {
86
+ valid: false,
87
+ reason: "API.INCORRECT_CAPTCHA_TYPE",
88
+ type: requestedCaptchaType
89
+ };
94
90
  }
91
+ return { valid: true, type: requestedCaptchaType };
92
+ }
93
+ getVerificationResponse(verified, clientRecord, translateFn, score) {
94
+ return {
95
+ status: translateFn(
96
+ verified ? "API.USER_VERIFIED" : "API.USER_NOT_VERIFIED"
97
+ ),
98
+ [ApiParams.verified]: verified,
99
+ ...CaptchaManager.canClientSeeScore(clientRecord.tier, score) && {
100
+ [ApiParams.score]: score
101
+ }
102
+ };
103
+ }
104
+ async getPrioritisedAccessPolicies(userAccessRulesStorage, clientId, userScope) {
105
+ return getPrioritisedAccessRule(
106
+ userAccessRulesStorage,
107
+ userScope,
108
+ clientId
109
+ );
110
+ }
111
+ async getDetectorKeys() {
112
+ return await this.db.getDetectorKeys();
113
+ }
114
+ static canClientSeeScore(tier, score) {
115
+ return score && tier && tier !== Tier.Free;
116
+ }
95
117
  }
96
- //# sourceMappingURL=captchaManager.js.map
118
+ export {
119
+ CaptchaManager
120
+ };