@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,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,128 @@
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;
46
- this.logger.info(() => ({
47
- msg: "Address has an image captcha config defined",
48
- }));
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) {
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
+ const loggedKey = decryptKeys.map(
80
+ (k) => k ? `${k.slice(0, 5)}... ${k.slice(k.length - 5, k.length + 5)} ... ${k.slice(-5)}` || "" : ""
81
+ );
82
+ return {
83
+ msg: "Decrypting score",
84
+ data: {
85
+ keysLength: decryptKeys.length,
86
+ keys: loggedKey
87
+ }
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);
59
95
  this.logger.info(() => ({
60
- msg: "Timestamp is older than 10 minutes",
61
- data: { timestamp: new Date(timestamp) },
96
+ msg: "Successfully decrypted score",
97
+ data: {
98
+ key: key ? `${key.slice(0, 5)}...${key.slice(-5)}` : "",
99
+ baseBotScore: s,
100
+ timestamp: t
101
+ }
62
102
  }));
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;
103
+ baseBotScore = s;
104
+ timestamp = t;
105
+ break;
106
+ } catch (err) {
107
+ if (keyIndex === decryptKeys.length - 1) {
108
+ this.logger.warn(() => ({
109
+ msg: "Error decrypting score: no more keys to try"
110
+ }));
111
+ baseBotScore = 1;
112
+ timestamp = 0;
123
113
  }
124
- return { baseBotScore, timestamp };
114
+ }
115
+ }
116
+ if (baseBotScore === void 0 || timestamp === void 0) {
117
+ this.logger.error(() => ({
118
+ msg: "Error decrypting score: baseBotScore or timestamp is undefined"
119
+ }));
120
+ baseBotScore = 1;
121
+ timestamp = 0;
125
122
  }
123
+ return { baseBotScore, timestamp };
124
+ }
126
125
  }
127
- //# sourceMappingURL=frictionlessTasks.js.map
126
+ export {
127
+ FrictionlessManager
128
+ };
@@ -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