@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
@@ -1,11 +1,13 @@
1
- import getBotScoreFromPayload from "./decodePayload.js";
2
- export const getBotScore = async (payload, privateKeyString) => {
3
- const result = (await getBotScoreFromPayload(payload, privateKeyString));
4
- const baseBotScore = result.score;
5
- const timestamp = result.timestamp;
6
- if (baseBotScore === undefined) {
7
- return { baseBotScore: 1, timestamp: 0 };
8
- }
9
- return { baseBotScore, timestamp };
1
+ import uTahDN from "./decodePayload.js";
2
+ const getBotScore = async (payload, privateKeyString) => {
3
+ const result = await uTahDN(payload, privateKeyString);
4
+ const baseBotScore = result.score;
5
+ const timestamp = result.timestamp;
6
+ if (baseBotScore === void 0) {
7
+ return { baseBotScore: 1, timestamp: 0 };
8
+ }
9
+ return { baseBotScore, timestamp };
10
+ };
11
+ export {
12
+ getBotScore
10
13
  };
11
- //# sourceMappingURL=getBotScore.js.map
@@ -1,127 +1,125 @@
1
- import { CaptchaType, } from "@prosopo/types";
2
- import { ApiParams } from "@prosopo/types";
3
- import { v4 as uuidv4 } from "uuid";
1
+ import { CaptchaType, ApiParams } from "@prosopo/types";
2
+ import { v4 } from "uuid";
4
3
  import { checkLangRules } from "../../rules/lang.js";
5
4
  import { CaptchaManager } from "../captchaManager.js";
6
5
  import { getBotScore } from "../detection/getBotScore.js";
7
- const DEFAULT_MAX_TIMESTAMP_AGE = 60 * 10 * 1000;
8
- export class FrictionlessManager extends CaptchaManager {
9
- constructor(db, pair, config, logger) {
10
- super(db, pair, logger);
11
- this.config = config;
12
- }
13
- checkLangRules(acceptLanguage) {
14
- return checkLangRules(this.config, acceptLanguage);
15
- }
16
- async createSession(tokenId, captchaType) {
17
- const sessionRecord = {
18
- sessionId: uuidv4(),
19
- createdAt: new Date(),
20
- tokenId: tokenId,
21
- captchaType,
22
- };
23
- await this.db.storeSessionRecord(sessionRecord);
24
- return sessionRecord;
25
- }
26
- async sendImageCaptcha(tokenId) {
27
- const sessionRecord = await this.createSession(tokenId, CaptchaType.image);
28
- return {
29
- [ApiParams.captchaType]: CaptchaType.image,
30
- [ApiParams.sessionId]: sessionRecord.sessionId,
31
- [ApiParams.status]: "ok",
32
- };
33
- }
34
- async sendPowCaptcha(tokenId) {
35
- const sessionRecord = await this.createSession(tokenId, CaptchaType.pow);
36
- return {
37
- [ApiParams.captchaType]: CaptchaType.pow,
38
- [ApiParams.sessionId]: sessionRecord.sessionId,
39
- [ApiParams.status]: "ok",
40
- };
41
- }
42
- async scoreIncreaseAccessPolicy(accessPolicy, baseBotScore, botScore, tokenId) {
43
- const accessPolicyPenalty = accessPolicy?.frictionlessScore ||
44
- this.config.penalties.PENALTY_ACCESS_RULE;
45
- botScore += accessPolicyPenalty;
6
+ const DEFAULT_MAX_TIMESTAMP_AGE = 60 * 10 * 1e3;
7
+ class FrictionlessManager extends CaptchaManager {
8
+ constructor(db, pair, config, logger) {
9
+ super(db, pair, logger);
10
+ this.config = config;
11
+ }
12
+ checkLangRules(acceptLanguage) {
13
+ return checkLangRules(this.config, acceptLanguage);
14
+ }
15
+ async createSession(tokenId, captchaType) {
16
+ const sessionRecord = {
17
+ sessionId: v4(),
18
+ createdAt: /* @__PURE__ */ new Date(),
19
+ tokenId,
20
+ captchaType
21
+ };
22
+ await this.db.storeSessionRecord(sessionRecord);
23
+ return sessionRecord;
24
+ }
25
+ async sendImageCaptcha(tokenId) {
26
+ const sessionRecord = await this.createSession(tokenId, CaptchaType.image);
27
+ return {
28
+ [ApiParams.captchaType]: CaptchaType.image,
29
+ [ApiParams.sessionId]: sessionRecord.sessionId,
30
+ [ApiParams.status]: "ok"
31
+ };
32
+ }
33
+ async sendPowCaptcha(tokenId) {
34
+ const sessionRecord = await this.createSession(tokenId, CaptchaType.pow);
35
+ return {
36
+ [ApiParams.captchaType]: CaptchaType.pow,
37
+ [ApiParams.sessionId]: sessionRecord.sessionId,
38
+ [ApiParams.status]: "ok"
39
+ };
40
+ }
41
+ async scoreIncreaseAccessPolicy(accessPolicy, baseBotScore, botScore, tokenId) {
42
+ const accessPolicyPenalty = accessPolicy?.frictionlessScore || this.config.penalties.PENALTY_ACCESS_RULE;
43
+ botScore += accessPolicyPenalty;
44
+ await this.db.updateFrictionlessTokenRecord(tokenId, {
45
+ score: botScore,
46
+ scoreComponents: {
47
+ baseScore: baseBotScore,
48
+ accessPolicy: accessPolicyPenalty
49
+ }
50
+ });
51
+ return botScore;
52
+ }
53
+ async scoreIncreaseTimestamp(timestamp, baseBotScore, botScore, tokenId) {
54
+ this.logger.info(() => ({
55
+ msg: "Timestamp is older than 10 minutes",
56
+ data: { timestamp: new Date(timestamp) }
57
+ }));
58
+ botScore += this.config.penalties.PENALTY_OLD_TIMESTAMP;
59
+ await this.db.updateFrictionlessTokenRecord(tokenId, {
60
+ score: botScore,
61
+ scoreComponents: {
62
+ baseScore: baseBotScore,
63
+ timeout: this.config.penalties.PENALTY_OLD_TIMESTAMP
64
+ }
65
+ });
66
+ return botScore;
67
+ }
68
+ static timestampTooOld(timestamp) {
69
+ const now = Date.now();
70
+ const diff = now - timestamp;
71
+ return diff > DEFAULT_MAX_TIMESTAMP_AGE;
72
+ }
73
+ async decryptPayload(token) {
74
+ const decryptKeys = [
75
+ process.env.BOT_DECRYPTION_KEY,
76
+ ...await this.getDetectorKeys()
77
+ ].filter((k) => k);
78
+ this.logger.debug(() => ({
79
+ msg: "Decrypting score",
80
+ data: {
81
+ keysLength: decryptKeys.length,
82
+ keys: decryptKeys.map(
83
+ (k) => k ? `${k.slice(0, 5)}...${k.slice(-5)}` || "" : ""
84
+ )
85
+ }
86
+ }));
87
+ let baseBotScore;
88
+ let timestamp;
89
+ for (const [keyIndex, key] of decryptKeys.entries()) {
90
+ try {
91
+ const { baseBotScore: s, timestamp: t } = await getBotScore(token, key);
46
92
  this.logger.info(() => ({
47
- msg: "Address has an image captcha config defined",
93
+ msg: "Successfully decrypted score",
94
+ data: {
95
+ key: key ? `${key.slice(0, 5)}...${key.slice(-5)}` : "",
96
+ baseBotScore: s,
97
+ timestamp: t
98
+ }
48
99
  }));
49
- await this.db.updateFrictionlessTokenRecord(tokenId, {
50
- score: botScore,
51
- scoreComponents: {
52
- baseScore: baseBotScore,
53
- accessPolicy: accessPolicyPenalty,
54
- },
55
- });
56
- return botScore;
57
- }
58
- async scoreIncreaseTimestamp(timestamp, baseBotScore, botScore, tokenId) {
59
- this.logger.info(() => ({
60
- msg: "Timestamp is older than 10 minutes",
61
- data: { timestamp: new Date(timestamp) },
62
- }));
63
- botScore += this.config.penalties.PENALTY_OLD_TIMESTAMP;
64
- await this.db.updateFrictionlessTokenRecord(tokenId, {
65
- score: botScore,
66
- scoreComponents: {
67
- baseScore: baseBotScore,
68
- timeout: this.config.penalties.PENALTY_OLD_TIMESTAMP,
69
- },
70
- });
71
- return botScore;
72
- }
73
- static timestampTooOld(timestamp) {
74
- const now = Date.now();
75
- const diff = now - timestamp;
76
- return diff > DEFAULT_MAX_TIMESTAMP_AGE;
77
- }
78
- async decryptPayload(token) {
79
- const decryptKeys = [
80
- process.env.BOT_DECRYPTION_KEY,
81
- ...(await this.getDetectorKeys()),
82
- ].filter((k) => k);
83
- this.logger.debug(() => ({
84
- msg: "Decrypting score",
85
- data: {
86
- keysLength: decryptKeys.length,
87
- keys: decryptKeys.map((k) => k ? `${k.slice(0, 5)}...${k.slice(-5)}` || "" : ""),
88
- },
89
- }));
90
- let baseBotScore;
91
- let timestamp;
92
- for (const [keyIndex, key] of decryptKeys.entries()) {
93
- try {
94
- const { baseBotScore: s, timestamp: t } = await getBotScore(token, key);
95
- this.logger.info(() => ({
96
- msg: "Successfully decrypted score",
97
- data: {
98
- key: key ? `${key.slice(0, 5)}...${key.slice(-5)}` : "",
99
- baseBotScore: s,
100
- timestamp: t,
101
- },
102
- }));
103
- baseBotScore = s;
104
- timestamp = t;
105
- break;
106
- }
107
- catch (err) {
108
- if (keyIndex === decryptKeys.length - 1) {
109
- this.logger.warn(() => ({
110
- msg: "Error decrypting score: no more keys to try",
111
- }));
112
- baseBotScore = 1;
113
- timestamp = 0;
114
- }
115
- }
116
- }
117
- if (baseBotScore === undefined || timestamp === undefined) {
118
- this.logger.error(() => ({
119
- msg: "Error decrypting score: baseBotScore or timestamp is undefined",
120
- }));
121
- baseBotScore = 1;
122
- timestamp = 0;
100
+ baseBotScore = s;
101
+ timestamp = t;
102
+ break;
103
+ } catch (err) {
104
+ if (keyIndex === decryptKeys.length - 1) {
105
+ this.logger.warn(() => ({
106
+ msg: "Error decrypting score: no more keys to try"
107
+ }));
108
+ baseBotScore = 1;
109
+ timestamp = 0;
123
110
  }
124
- return { baseBotScore, timestamp };
111
+ }
112
+ }
113
+ if (baseBotScore === void 0 || timestamp === void 0) {
114
+ this.logger.error(() => ({
115
+ msg: "Error decrypting score: baseBotScore or timestamp is undefined"
116
+ }));
117
+ baseBotScore = 1;
118
+ timestamp = 0;
125
119
  }
120
+ return { baseBotScore, timestamp };
121
+ }
126
122
  }
127
- //# sourceMappingURL=frictionlessTasks.js.map
123
+ export {
124
+ FrictionlessManager
125
+ };
@@ -1,6 +1,11 @@
1
- export const computeFrictionlessScore = (scoreComponents) => {
2
- return Number(Math.min(1, Object.values(scoreComponents)
3
- .filter((x) => x !== undefined)
4
- .reduce((acc, val) => acc + val, 0)).toFixed(2));
1
+ const computeFrictionlessScore = (scoreComponents) => {
2
+ return Number(
3
+ Math.min(
4
+ 1,
5
+ Object.values(scoreComponents).filter((x) => x !== void 0).reduce((acc, val) => acc + val, 0)
6
+ ).toFixed(2)
7
+ );
8
+ };
9
+ export {
10
+ computeFrictionlessScore
5
11
  };
6
- //# sourceMappingURL=frictionlessTasksUtils.js.map