@prosopo/provider 4.15.14 → 4.15.15

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 (232) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +106 -106
  2. package/.turbo/turbo-build$colon$tsc.log +24 -24
  3. package/.turbo/turbo-build.log +107 -104
  4. package/CHANGELOG.md +49 -0
  5. package/dist/_virtual/_rolldown/runtime.js +3 -0
  6. package/dist/api/admin/apiAdminRoutesProvider.js +27 -46
  7. package/dist/api/admin/apiClearAllCountersEndpoint.js +62 -57
  8. package/dist/api/admin/apiDnsEventEndpoint.js +79 -92
  9. package/dist/api/admin/apiGetAllDecisionMachinesEndpoint.js +43 -45
  10. package/dist/api/admin/apiGetDecisionMachineEndpoint.js +40 -40
  11. package/dist/api/admin/apiRegisterSiteKeyEndpoint.js +23 -22
  12. package/dist/api/admin/apiRegisterSiteKeysEndpoint.js +26 -30
  13. package/dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js +35 -37
  14. package/dist/api/admin/apiRemoveDecisionMachineEndpoint.js +40 -40
  15. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -1
  16. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.js +29 -31
  17. package/dist/api/admin/apiRemoveSiteKeyEndpoint.js +33 -29
  18. package/dist/api/admin/apiRemoveSiteKeysEndpoint.js +32 -31
  19. package/dist/api/admin/apiToggleMaintenanceModeEndpoint.js +43 -35
  20. package/dist/api/admin/apiUpdateDecisionMachineEndpoint.js +43 -63
  21. package/dist/api/admin/apiUpdateDetectorKeyEndpoint.js +36 -35
  22. package/dist/api/admin/createApiAdminRoutesProvider.js +6 -8
  23. package/dist/api/blacklistRequestInspector.js +285 -377
  24. package/dist/api/block.js +17 -30
  25. package/dist/api/captcha/checkSpamEmail.js +88 -98
  26. package/dist/api/captcha/contextAwareValidation.js +21 -15
  27. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js +126 -140
  28. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js +11 -12
  29. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js +236 -299
  30. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js +10 -13
  31. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +336 -462
  32. package/dist/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.js +17 -14
  33. package/dist/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.js +27 -27
  34. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +42 -63
  35. package/dist/api/captcha/getFrictionlessCaptchaChallenge.js +2 -4
  36. package/dist/api/captcha/getImageCaptchaChallenge.js +136 -207
  37. package/dist/api/captcha/getPoWCaptchaChallenge.js +128 -198
  38. package/dist/api/captcha/getPuzzleCaptchaChallenge.js +132 -201
  39. package/dist/api/captcha/maintenanceModeResponses.js +38 -47
  40. package/dist/api/captcha/submitImageCaptchaSolution.js +75 -101
  41. package/dist/api/captcha/submitPoWCaptchaSolution.js +137 -207
  42. package/dist/api/captcha/submitPuzzleCaptchaSolution.js +73 -105
  43. package/dist/api/captcha.js +76 -58
  44. package/dist/api/dnsEventUrl.js +20 -22
  45. package/dist/api/domainMiddleware.js +104 -115
  46. package/dist/api/forwardVerify.js +62 -48
  47. package/dist/api/handshakeTimingMiddleware.js +43 -62
  48. package/dist/api/hardBlockVerdictCache.js +114 -117
  49. package/dist/api/headerCheckMiddleware.js +34 -34
  50. package/dist/api/ignoreMiddleware.js +13 -15
  51. package/dist/api/ipInfoMiddleware.js +17 -19
  52. package/dist/api/ja4.js +149 -188
  53. package/dist/api/ja4Middleware.js +39 -54
  54. package/dist/api/metrics.js +245 -257
  55. package/dist/api/public.js +52 -54
  56. package/dist/api/robotsMiddleware.js +10 -10
  57. package/dist/api/startProviderApi.js +205 -232
  58. package/dist/api/testSiteKey.js +16 -16
  59. package/dist/api/validateAddress.js +23 -21
  60. package/dist/api/verify.js +334 -377
  61. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  62. package/dist/cjs/api/admin/apiAdminRoutesProvider.cjs +40 -59
  63. package/dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs +63 -58
  64. package/dist/cjs/api/admin/apiDnsEventEndpoint.cjs +82 -93
  65. package/dist/cjs/api/admin/apiGetAllDecisionMachinesEndpoint.cjs +46 -48
  66. package/dist/cjs/api/admin/apiGetDecisionMachineEndpoint.cjs +41 -41
  67. package/dist/cjs/api/admin/apiRegisterSiteKeyEndpoint.cjs +25 -24
  68. package/dist/cjs/api/admin/apiRegisterSiteKeysEndpoint.cjs +28 -32
  69. package/dist/cjs/api/admin/apiRemoveAllDecisionMachinesEndpoint.cjs +38 -40
  70. package/dist/cjs/api/admin/apiRemoveDecisionMachineEndpoint.cjs +41 -41
  71. package/dist/cjs/api/admin/apiRemoveDetectorKeyEndpoint.cjs +31 -33
  72. package/dist/cjs/api/admin/apiRemoveSiteKeyEndpoint.cjs +35 -31
  73. package/dist/cjs/api/admin/apiRemoveSiteKeysEndpoint.cjs +34 -33
  74. package/dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs +45 -35
  75. package/dist/cjs/api/admin/apiUpdateDecisionMachineEndpoint.cjs +45 -65
  76. package/dist/cjs/api/admin/apiUpdateDetectorKeyEndpoint.cjs +38 -37
  77. package/dist/cjs/api/admin/createApiAdminRoutesProvider.cjs +7 -8
  78. package/dist/cjs/api/blacklistRequestInspector.cjs +288 -376
  79. package/dist/cjs/api/block.cjs +18 -30
  80. package/dist/cjs/api/captcha/checkSpamEmail.cjs +90 -100
  81. package/dist/cjs/api/captcha/contextAwareValidation.cjs +21 -14
  82. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs +125 -140
  83. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/constants.cjs +10 -10
  84. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs +238 -301
  85. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.cjs +9 -12
  86. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +349 -473
  87. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.cjs +18 -14
  88. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.cjs +26 -26
  89. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +42 -63
  90. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge.cjs +2 -3
  91. package/dist/cjs/api/captcha/getImageCaptchaChallenge.cjs +138 -208
  92. package/dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs +131 -200
  93. package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +135 -203
  94. package/dist/cjs/api/captcha/maintenanceModeResponses.cjs +38 -44
  95. package/dist/cjs/api/captcha/submitImageCaptchaSolution.cjs +77 -102
  96. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +140 -209
  97. package/dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs +76 -107
  98. package/dist/cjs/api/captcha.cjs +79 -58
  99. package/dist/cjs/api/dnsEventUrl.cjs +20 -21
  100. package/dist/cjs/api/domainMiddleware.cjs +106 -117
  101. package/dist/cjs/api/forwardVerify.cjs +63 -49
  102. package/dist/cjs/api/handshakeTimingMiddleware.cjs +43 -61
  103. package/dist/cjs/api/hardBlockVerdictCache.cjs +114 -114
  104. package/dist/cjs/api/headerCheckMiddleware.cjs +34 -34
  105. package/dist/cjs/api/ignoreMiddleware.cjs +12 -14
  106. package/dist/cjs/api/ipInfoMiddleware.cjs +16 -18
  107. package/dist/cjs/api/ja4.cjs +149 -187
  108. package/dist/cjs/api/ja4Middleware.cjs +40 -53
  109. package/dist/cjs/api/metrics.cjs +229 -228
  110. package/dist/cjs/api/public.cjs +57 -57
  111. package/dist/cjs/api/robotsMiddleware.cjs +9 -9
  112. package/dist/cjs/api/startProviderApi.cjs +219 -237
  113. package/dist/cjs/api/testSiteKey.cjs +15 -14
  114. package/dist/cjs/api/validateAddress.cjs +24 -21
  115. package/dist/cjs/api/verify.cjs +338 -379
  116. package/dist/cjs/compositeIpAddress.cjs +40 -47
  117. package/dist/cjs/index.cjs +65 -71
  118. package/dist/cjs/pairs.cjs +31 -35
  119. package/dist/cjs/rules/lang.cjs +10 -14
  120. package/dist/cjs/schedulers/captchaScheduler.cjs +26 -32
  121. package/dist/cjs/schedulers/getClientList.cjs +35 -33
  122. package/dist/cjs/schedulers/setClientEntropy.cjs +35 -33
  123. package/dist/cjs/schedulers/updateSpamEmailDomains.cjs +39 -43
  124. package/dist/cjs/services/ipComparison.cjs +122 -119
  125. package/dist/cjs/tasks/captchaManager.cjs +407 -486
  126. package/dist/cjs/tasks/client/clientTasks.cjs +347 -470
  127. package/dist/cjs/tasks/dataset/datasetTasks.cjs +25 -29
  128. package/dist/cjs/tasks/dataset/datasetTasksUtils.cjs +16 -32
  129. package/dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs +220 -307
  130. package/dist/cjs/tasks/detection/decodeBehavior.cjs +408 -317
  131. package/dist/cjs/tasks/detection/decodePayload.cjs +686 -468
  132. package/dist/cjs/tasks/detection/decodeSimd.cjs +462 -304
  133. package/dist/cjs/tasks/detection/getBotScore.cjs +37 -43
  134. package/dist/cjs/tasks/dnsEvent/enrichDnsEvent.cjs +88 -71
  135. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +348 -486
  136. package/dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs +13 -30
  137. package/dist/cjs/tasks/frictionless/routingMachine.cjs +71 -55
  138. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +555 -806
  139. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs +22 -23
  140. package/dist/cjs/tasks/index.cjs +2 -4
  141. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +491 -687
  142. package/dist/cjs/tasks/powCaptcha/powTasksUtils.cjs +17 -29
  143. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +422 -591
  144. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasksUtils.cjs +8 -5
  145. package/dist/cjs/tasks/spam/checkSpamEmail.cjs +133 -141
  146. package/dist/cjs/tasks/spam/checkTrafficFilter.cjs +118 -76
  147. package/dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs +75 -84
  148. package/dist/cjs/tasks/spam/updateSpamEmailDomains.cjs +40 -56
  149. package/dist/cjs/tasks/tasks.cjs +107 -158
  150. package/dist/cjs/util/usageCounters.cjs +220 -211
  151. package/dist/cjs/util.cjs +329 -359
  152. package/dist/cjs/utils/devicePlatform.cjs +14 -8
  153. package/dist/cjs/utils/dns.cjs +68 -93
  154. package/dist/cjs/utils/hashUserAgent.cjs +14 -7
  155. package/dist/cjs/utils/hashUserIp.cjs +14 -6
  156. package/dist/cjs/utils/honeypot/encoders.cjs +74 -80
  157. package/dist/cjs/utils/honeypot/phraseBank.cjs +51 -44
  158. package/dist/cjs/utils/normalizeRequestIp.cjs +33 -25
  159. package/dist/compositeIpAddress.js +38 -46
  160. package/dist/index.js +12 -56
  161. package/dist/pairs.js +31 -37
  162. package/dist/rules/lang.js +11 -15
  163. package/dist/schedulers/captchaScheduler.js +25 -31
  164. package/dist/schedulers/getClientList.js +34 -32
  165. package/dist/schedulers/setClientEntropy.js +34 -32
  166. package/dist/schedulers/updateSpamEmailDomains.js +38 -42
  167. package/dist/services/ipComparison.js +122 -119
  168. package/dist/tasks/captchaManager.js +403 -483
  169. package/dist/tasks/client/clientTasks.js +343 -467
  170. package/dist/tasks/dataset/datasetTasks.js +24 -28
  171. package/dist/tasks/dataset/datasetTasksUtils.js +15 -31
  172. package/dist/tasks/decisionMachine/decisionMachineRunner.js +217 -306
  173. package/dist/tasks/detection/getBotScore.js +37 -43
  174. package/dist/tasks/dnsEvent/enrichDnsEvent.d.ts.map +1 -1
  175. package/dist/tasks/dnsEvent/enrichDnsEvent.js +88 -74
  176. package/dist/tasks/dnsEvent/enrichDnsEvent.js.map +1 -1
  177. package/dist/tasks/frictionless/frictionlessTasks.js +342 -479
  178. package/dist/tasks/frictionless/frictionlessTasksUtils.js +14 -32
  179. package/dist/tasks/frictionless/routingMachine.js +72 -56
  180. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +550 -801
  181. package/dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js +21 -22
  182. package/dist/tasks/index.js +1 -3
  183. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  184. package/dist/tasks/powCaptcha/powTasks.js +486 -682
  185. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  186. package/dist/tasks/powCaptcha/powTasksUtils.js +15 -28
  187. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  188. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +417 -586
  189. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  190. package/dist/tasks/puzzleCaptcha/puzzleTasksUtils.js +9 -6
  191. package/dist/tasks/spam/checkSpamEmail.js +133 -141
  192. package/dist/tasks/spam/checkTrafficFilter.d.ts +1 -0
  193. package/dist/tasks/spam/checkTrafficFilter.d.ts.map +1 -1
  194. package/dist/tasks/spam/checkTrafficFilter.js +117 -77
  195. package/dist/tasks/spam/checkTrafficFilter.js.map +1 -1
  196. package/dist/tasks/spam/evaluateEmailSpamRules.js +75 -86
  197. package/dist/tasks/spam/updateSpamEmailDomains.js +36 -54
  198. package/dist/tasks/tasks.js +98 -150
  199. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +4 -1
  200. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +1 -1
  201. package/dist/tests/unit/api/block.unit.test.js +8 -4
  202. package/dist/tests/unit/api/block.unit.test.js.map +1 -1
  203. package/dist/tests/unit/api/captcha/maintenanceModeShortCircuit.unit.test.js +8 -6
  204. package/dist/tests/unit/api/captcha/maintenanceModeShortCircuit.unit.test.js.map +1 -1
  205. package/dist/tests/unit/api/forwardVerify.unit.test.js +3 -1
  206. package/dist/tests/unit/api/forwardVerify.unit.test.js.map +1 -1
  207. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +15 -7
  208. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
  209. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +24 -18
  210. package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -1
  211. package/dist/tests/unit/schedulers/getClientList.unit.test.js +19 -13
  212. package/dist/tests/unit/schedulers/getClientList.unit.test.js.map +1 -1
  213. package/dist/tests/unit/schedulers/setClientEntropy.unit.test.js +19 -13
  214. package/dist/tests/unit/schedulers/setClientEntropy.unit.test.js.map +1 -1
  215. package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -1
  216. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js +22 -16
  217. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasksUtils.unit.test.js.map +1 -1
  218. package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js +140 -0
  219. package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js.map +1 -1
  220. package/dist/tests/unit/testUtils/mockProviderEnv.d.ts +7 -7
  221. package/dist/util/usageCounters.js +220 -212
  222. package/dist/util.d.ts.map +1 -1
  223. package/dist/util.js +327 -364
  224. package/dist/util.js.map +1 -1
  225. package/dist/utils/devicePlatform.js +15 -9
  226. package/dist/utils/dns.js +64 -77
  227. package/dist/utils/hashUserAgent.js +14 -7
  228. package/dist/utils/hashUserIp.js +14 -6
  229. package/dist/utils/honeypot/encoders.js +74 -80
  230. package/dist/utils/honeypot/phraseBank.js +49 -44
  231. package/dist/utils/normalizeRequestIp.js +34 -26
  232. package/package.json +24 -24
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/provider@4.15.14 build
2
+ > @prosopo/provider@4.15.15 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/provider@4.15.14 build:cross-env
6
+ > @prosopo/provider@4.15.15 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -53,110 +53,113 @@ ViteEsmConfig: .
53
53
  '@prosopo/load-balancer'
54
54
  ]
55
55
  }
56
- vite v6.4.1 building SSR bundle for production...
56
+ The plugin "vite-tsconfig-paths" is detected. Vite now supports tsconfig paths resolution natively via the resolve.tsconfigPaths option. You can remove the plugin and set resolve.tsconfigPaths: true in your Vite config instead.
57
+ vite v8.1.5 building ssr environment for production...
57
58
  Bundle build started
58
- transforming...
59
- Build end
60
- ✓ 97 modules transformed.
59
+ 
60
+ ✓ 98 modules transformed.
61
61
  rendering chunks...
62
- dist/tasks/index.js  0.06 kB
63
- dist/api/captcha/getFrictionlessCaptchaChallenge.js  0.12 kB
64
- dist/utils/hashUserIp.js  0.23 kB
65
- dist/tasks/puzzleCaptcha/puzzleTasksUtils.js  0.24 kB
66
- dist/utils/hashUserAgent.js  0.25 kB
67
- dist/api/robotsMiddleware.js  0.33 kB
68
- dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js  0.34 kB
69
- dist/api/admin/createApiAdminRoutesProvider.js  0.35 kB
70
- dist/api/ignoreMiddleware.js  0.39 kB
71
- dist/rules/lang.js  0.40 kB
72
- dist/utils/devicePlatform.js  0.40 kB
73
- dist/api/ipInfoMiddleware.js  0.42 kB
74
- dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js  0.44 kB
75
- dist/api/testSiteKey.js  0.54 kB
76
- dist/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.js  0.55 kB
77
- dist/api/captcha/contextAwareValidation.js  0.63 kB
78
- dist/api/validateAddress.js  0.71 kB
79
- dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js  0.74 kB
80
- dist/utils/normalizeRequestIp.js  0.79 kB
81
- dist/api/dnsEventUrl.js  0.85 kB
82
- dist/tasks/dataset/datasetTasks.js  0.85 kB
83
- dist/tasks/frictionless/frictionlessTasksUtils.js  0.91 kB
84
- dist/api/block.js  0.95 kB
85
- dist/api/admin/apiRegisterSiteKeyEndpoint.js  0.96 kB
86
- dist/api/headerCheckMiddleware.js  0.97 kB
87
- dist/tasks/powCaptcha/powTasksUtils.js  0.98 kB
88
- dist/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.js  0.98 kB
89
- dist/api/admin/apiRemoveSiteKeyEndpoint.js  1.06 kB
90
- dist/api/admin/apiRemoveSiteKeysEndpoint.js  1.06 kB
91
- dist/api/admin/apiRegisterSiteKeysEndpoint.js  1.08 kB
92
- dist/schedulers/getClientList.js  1.10 kB
93
- dist/api/admin/apiRemoveDetectorKeyEndpoint.js  1.10 kB
94
- dist/schedulers/setClientEntropy.js  1.13 kB
95
- dist/schedulers/captchaScheduler.js  1.16 kB
96
- dist/pairs.js  1.18 kB
97
- dist/api/admin/apiUpdateDetectorKeyEndpoint.js  1.21 kB
98
- dist/api/admin/apiGetDecisionMachineEndpoint.js  1.28 kB
99
- dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js  1.29 kB
100
- dist/api/admin/apiRemoveDecisionMachineEndpoint.js  1.31 kB
101
- dist/tasks/detection/getBotScore.js  1.32 kB
102
- dist/api/admin/apiToggleMaintenanceModeEndpoint.js  1.35 kB
103
- dist/tasks/dataset/datasetTasksUtils.js  1.36 kB
104
- dist/compositeIpAddress.js  1.44 kB
105
- dist/schedulers/updateSpamEmailDomains.js  1.50 kB
106
- dist/api/admin/apiGetAllDecisionMachinesEndpoint.js  1.53 kB
107
- dist/utils/honeypot/phraseBank.js  1.57 kB
108
- dist/api/forwardVerify.js  1.62 kB
109
- dist/utils/honeypot/encoders.js  1.71 kB
110
- dist/api/admin/apiClearAllCountersEndpoint.js  1.74 kB
111
- dist/tasks/frictionless/routingMachine.js  1.76 kB
112
- dist/api/ja4Middleware.js  1.78 kB
113
- dist/api/captcha/maintenanceModeResponses.js  1.78 kB
114
- dist/api/public.js  1.88 kB
115
- dist/api/admin/apiUpdateDecisionMachineEndpoint.js  1.88 kB
116
- dist/api/handshakeTimingMiddleware.js  1.95 kB
117
- dist/tasks/spam/updateSpamEmailDomains.js  2.03 kB
118
- dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js  2.09 kB
119
- dist/api/captcha.js  2.42 kB
120
- dist/utils/dns.js  2.57 kB
121
- dist/api/admin/apiDnsEventEndpoint.js  2.73 kB
122
- dist/api/captcha/checkSpamEmail.js  2.80 kB
123
- dist/tasks/spam/evaluateEmailSpamRules.js  2.84 kB
124
- dist/index.js  2.88 kB
125
- dist/api/captcha/submitPuzzleCaptchaSolution.js  2.92 kB
126
- dist/tasks/dnsEvent/enrichDnsEvent.js  2.95 kB
127
- dist/api/admin/apiAdminRoutesProvider.js  2.99 kB
128
- dist/api/captcha/submitImageCaptchaSolution.js  3.07 kB
129
- dist/tasks/spam/checkTrafficFilter.js  3.11 kB
130
- dist/api/hardBlockVerdictCache.js  3.87 kB
131
- dist/api/domainMiddleware.js  3.89 kB
132
- dist/services/ipComparison.js  4.00 kB
133
- dist/tasks/spam/checkSpamEmail.js  4.29 kB
134
- dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js  4.29 kB
135
- dist/tasks/tasks.js  5.12 kB
136
- dist/util/usageCounters.js  5.69 kB
137
- dist/api/captcha/getPoWCaptchaChallenge.js  6.18 kB
138
- dist/api/captcha/getPuzzleCaptchaChallenge.js  6.34 kB
139
- dist/api/captcha/getImageCaptchaChallenge.js  6.38 kB
140
- dist/api/captcha/submitPoWCaptchaSolution.js  6.77 kB
141
- dist/api/ja4.js  7.01 kB
142
- dist/api/metrics.js  7.38 kB
143
- dist/api/startProviderApi.js  8.32 kB
144
- dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js  9.77 kB
145
- dist/tasks/decisionMachine/decisionMachineRunner.js 10.54 kB
146
- dist/api/blacklistRequestInspector.js 12.81 kB
147
- dist/util.js 12.84 kB
148
- dist/api/verify.js 13.06 kB
149
- dist/tasks/client/clientTasks.js 15.48 kB
150
- dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 16.64 kB
151
- dist/tasks/frictionless/frictionlessTasks.js 17.33 kB
152
- dist/tasks/captchaManager.js 17.92 kB
153
- dist/tasks/detection/decodeBehavior.js 19.02 kB
154
- dist/tasks/puzzleCaptcha/puzzleTasks.js 21.31 kB
155
- dist/tasks/detection/decodeSimd.js 21.39 kB
156
- dist/tasks/powCaptcha/powTasks.js 24.54 kB
157
- dist/tasks/imgCaptcha/imgCaptchaTasks.js 28.54 kB
158
- dist/tasks/detection/decodePayload.js 29.92 kB
159
- ✓ built in 1.33s
62
+ computing gzip size...
63
+ dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
64
+ dist/tasks/index.js 0.05 kB │ gzip: 0.06 kB
65
+ dist/api/captcha/getFrictionlessCaptchaChallenge.js 0.11 kB │ gzip: 0.10 kB
66
+ dist/api/admin/createApiAdminRoutesProvider.js 0.35 kB │ gzip: 0.18 kB
67
+ dist/api/robotsMiddleware.js 0.36 kB │ gzip: 0.24 kB
68
+ dist/tasks/puzzleCaptcha/puzzleTasksUtils.js 0.37 kB │ gzip: 0.24 kB
69
+ dist/rules/lang.js 0.39 kB │ gzip: 0.24 kB
70
+ dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js 0.40 kB │ gzip: 0.23 kB
71
+ dist/api/ignoreMiddleware.js 0.41 kB │ gzip: 0.26 kB
72
+ dist/api/ipInfoMiddleware.js 0.41 kB │ gzip: 0.26 kB
73
+ dist/api/captcha/getFrictionlessCaptchaChallenge/decryptSimdReadings.js 0.51 kB │ gzip: 0.29 kB
74
+ dist/utils/hashUserIp.js 0.52 kB │ gzip: 0.33 kB
75
+ dist/api/testSiteKey.js 0.56 kB │ gzip: 0.30 kB
76
+ dist/utils/hashUserAgent.js 0.63 kB │ gzip: 0.39 kB
77
+ dist/api/validateAddress.js 0.70 kB │ gzip: 0.33 kB
78
+ dist/utils/devicePlatform.js 0.74 kB │ gzip: 0.45 kB
79
+ dist/api/block.js 0.80 kB │ gzip: 0.36 kB
80
+ dist/api/dnsEventUrl.js 0.80 kB │ gzip: 0.44 kB
81
+ dist/tasks/dataset/datasetTasks.js 0.85 kB │ gzip: 0.39 kB
82
+ dist/tasks/frictionless/frictionlessTasksUtils.js 0.87 kB │ gzip: 0.45 kB
83
+ dist/tasks/powCaptcha/powTasksUtils.js 0.89 kB │ gzip: 0.46 kB
84
+ dist/api/headerCheckMiddleware.js 0.91 kB │ gzip: 0.43 kB
85
+ dist/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.js 0.95 kB │ gzip: 0.51 kB
86
+ dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js 0.96 kB │ gzip: 0.48 kB
87
+ dist/api/admin/apiRegisterSiteKeyEndpoint.js 1.00 kB │ gzip: 0.46 kB
88
+ dist/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.js 1.01 kB │ gzip: 0.45 kB
89
+ dist/api/admin/apiRemoveSiteKeysEndpoint.js 1.07 kB │ gzip: 0.48 kB
90
+ dist/api/admin/apiRegisterSiteKeysEndpoint.js 1.08 kB │ gzip: 0.50 kB
91
+ dist/api/admin/apiRemoveSiteKeyEndpoint.js 1.08 kB │ gzip: 0.48 kB
92
+ dist/api/captcha/contextAwareValidation.js 1.09 kB │ gzip: 0.45 kB
93
+ dist/api/admin/apiRemoveDetectorKeyEndpoint.js 1.09 kB │ gzip: 0.49 kB
94
+ dist/schedulers/captchaScheduler.js 1.11 kB │ gzip: 0.48 kB
95
+ dist/utils/normalizeRequestIp.js 1.14 kB │ gzip: 0.52 kB
96
+ dist/pairs.js 1.19 kB │ gzip: 0.58 kB
97
+ dist/schedulers/getClientList.js 1.19 kB │ gzip: 0.53 kB
98
+ dist/schedulers/setClientEntropy.js 1.20 kB │ gzip: 0.52 kB
99
+ dist/api/admin/apiUpdateDetectorKeyEndpoint.js 1.20 kB │ gzip: 0.50 kB
100
+ dist/api/admin/apiGetDecisionMachineEndpoint.js 1.26 kB │ gzip: 0.50 kB
101
+ dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js 1.27 kB │ gzip: 0.51 kB
102
+ dist/api/admin/apiRemoveDecisionMachineEndpoint.js 1.29 kB │ gzip: 0.51 kB
103
+ dist/tasks/detection/getBotScore.js 1.29 kB │ gzip: 0.47 kB
104
+ dist/tasks/dataset/datasetTasksUtils.js 1.30 kB │ gzip: 0.48 kB
105
+ dist/compositeIpAddress.js 1.36 kB │ gzip: 0.55 kB
106
+ dist/api/admin/apiGetAllDecisionMachinesEndpoint.js 1.48 kB │ gzip: 0.57 kB
107
+ dist/schedulers/updateSpamEmailDomains.js 1.52 kB │ gzip: 0.60 kB
108
+ dist/api/ja4Middleware.js 1.59 kB │ gzip: 0.75 kB
109
+ dist/utils/honeypot/encoders.js 1.62 kB │ gzip: 0.67 kB
110
+ dist/api/admin/apiToggleMaintenanceModeEndpoint.js 1.66 kB │ gzip: 0.69 kB
111
+ dist/api/admin/apiUpdateDecisionMachineEndpoint.js 1.68 kB │ gzip: 0.58 kB
112
+ dist/utils/honeypot/phraseBank.js 1.69 kB │ gzip: 0.84 kB
113
+ dist/api/handshakeTimingMiddleware.js 1.75 kB │ gzip: 0.69 kB
114
+ dist/api/captcha/maintenanceModeResponses.js 1.76 kB │ gzip: 0.57 kB
115
+ dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 1.87 kB │ gzip: 0.79 kB
116
+ dist/tasks/spam/updateSpamEmailDomains.js 1.87 kB │ gzip: 0.77 kB
117
+ dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
118
+ dist/api/public.js 1.90 kB │ gzip: 0.83 kB
119
+ dist/tasks/frictionless/routingMachine.js 2.16 kB │ gzip: 0.91 kB
120
+ dist/utils/dns.js 2.36 kB │ gzip: 0.95 kB
121
+ dist/api/admin/apiDnsEventEndpoint.js 2.43 kB │ gzip: 0.96 kB
122
+ dist/api/captcha/checkSpamEmail.js 2.47 kB │ gzip: 0.91 kB
123
+ dist/api/captcha/submitPuzzleCaptchaSolution.js 2.55 kB │ gzip: 0.96 kB
124
+ dist/api/forwardVerify.js 2.59 kB │ gzip: 1.10 kB
125
+ dist/api/captcha/submitImageCaptchaSolution.js 2.59 kB │ gzip: 1.00 kB
126
+ dist/tasks/spam/evaluateEmailSpamRules.js 2.77 kB │ gzip: 1.20 kB
127
+ dist/index.js 2.78 kB │ gzip: 0.76 kB
128
+ dist/api/admin/apiAdminRoutesProvider.js 2.84 kB │ gzip: 0.54 kB
129
+ dist/api/domainMiddleware.js 3.52 kB │ gzip: 1.22 kB
130
+ dist/api/captcha.js 3.72 kB │ gzip: 1.21 kB
131
+ dist/services/ipComparison.js 3.96 kB │ gzip: 1.19 kB
132
+ dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js 3.99 kB │ gzip: 0.99 kB
133
+ dist/api/hardBlockVerdictCache.js 4.08 kB │ gzip: 1.66 kB
134
+ dist/tasks/spam/checkSpamEmail.js 4.12 kB │ gzip: 1.12 kB
135
+ dist/tasks/dnsEvent/enrichDnsEvent.js 4.23 kB │ gzip: 1.50 kB
136
+ dist/tasks/tasks.js 4.69 kB │ gzip: 1.51 kB
137
+ dist/api/captcha/getPoWCaptchaChallenge.js 5.13 kB │ gzip: 1.61 kB
138
+ dist/api/captcha/getPuzzleCaptchaChallenge.js 5.35 kB │ gzip: 1.64 kB
139
+ dist/api/captcha/getImageCaptchaChallenge.js 5.39 kB │ gzip: 1.74 kB
140
+ dist/tasks/spam/checkTrafficFilter.js 5.63 kB │ gzip: 2.05 kB
141
+ dist/util/usageCounters.js 5.65 kB │ gzip: 2.01 kB
142
+ dist/api/captcha/submitPoWCaptchaSolution.js 6.16 kB │ gzip: 2.09 kB
143
+ dist/api/metrics.js 6.96 kB │ gzip: 2.09 kB
144
+ dist/api/ja4.js 7.06 kB │ gzip: 2.23 kB
145
+ dist/api/startProviderApi.js 8.47 kB │ gzip: 2.81 kB
146
+ dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 8.91 kB │ gzip: 2.03 kB
147
+ dist/tasks/decisionMachine/decisionMachineRunner.js 9.40 kB │ gzip: 2.86 kB
148
+ dist/api/blacklistRequestInspector.js 11.57 kB │ gzip: 4.19 kB
149
+ dist/api/verify.js 12.03 kB │ gzip: 2.44 kB
150
+ dist/util.js 12.92 kB │ gzip: 3.16 kB
151
+ dist/tasks/client/clientTasks.js 13.21 kB │ gzip: 3.28 kB
152
+ dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 13.94 kB │ gzip: 3.55 kB
153
+ dist/tasks/frictionless/frictionlessTasks.js 14.62 kB │ gzip: 3.94 kB
154
+ dist/tasks/captchaManager.js 16.63 kB │ gzip: 4.85 kB
155
+ dist/tasks/detection/decodeBehavior.js 17.15 kB │ gzip: 6.60 kB
156
+ dist/tasks/puzzleCaptcha/puzzleTasks.js 17.94 kB │ gzip: 4.31 kB
157
+ dist/tasks/detection/decodeSimd.js 19.34 kB │ gzip: 8.30 kB
158
+ dist/tasks/powCaptcha/powTasks.js 20.18 kB │ gzip: 5.24 kB
159
+ dist/tasks/imgCaptcha/imgCaptchaTasks.js 23.90 kB │ gzip: 5.84 kB
160
+ dist/tasks/detection/decodePayload.js 26.98 kB │ gzip: 9.17 kB
161
+
162
+ ✓ built in 161ms
160
163
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeBehavior.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodeBehavior.js
161
164
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodePayload.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodePayload.js
162
165
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeSimd.js to /home/runner/work/captcha/captcha/packages/provider/dist/tasks/detection/decodeSimd.js
package/CHANGELOG.md CHANGED
@@ -1,5 +1,54 @@
1
1
  # @prosopo/provider
2
2
 
3
+ ## 4.15.15
4
+ ### Patch Changes
5
+
6
+ - 103318c: feat(traffic-filter): add `datacenterNameDenylist` alongside the existing allowlist
7
+
8
+ Operators can now name datacenter / provider / ASN organisations they want
9
+ force-included in the datacenter block, mirroring the shape of
10
+ `datacenterNameAllowlist`. Denylist entries take precedence over the
11
+ `providerType === "isp"` short-circuit and over the allowlist for the same
12
+ name, so operators can opt named providers back into the datacenter rule when
13
+ upstream classifies them as ISP.
14
+
15
+ Same case-insensitive / whitespace-trimmed matching, same three name sources
16
+ (`datacenterName`, `providerName`, `asnOrganization`), same
17
+ `MAX_DATACENTER_ALLOWLIST_ENTRIES` / `MAX_DATACENTER_ALLOWLIST_ENTRY_LENGTH`
18
+ validators. Missing or empty denylist preserves existing behaviour.
19
+
20
+ Wired through the mongoose `ClientSettings.trafficFilter` schema, the zod
21
+ `TrafficFilterSchema`, `checkTrafficFilter`, and `enrichDnsEvent.countDc` so
22
+ the denylist is honoured on both the primary rule and the DNS-asymmetry
23
+ scoring. Unit tests cover the ISP-bypass override, the allowlist-precedence
24
+ edge case, category-suppression interaction, and the extras path.
25
+ - 8a400eb: fix(provider): return 400 not 500 for CAPTCHA.INVALID_SOLUTION
26
+ - e14fce6: chore(deps): bump vite to 6.4.3 and mongoose to 8.24.1, and adjust types for the mongoose 8.24 Document/ObjectId changes
27
+ - Updated dependencies [a58d007]
28
+ - Updated dependencies [2c47bb7]
29
+ - Updated dependencies [0e1171c]
30
+ - Updated dependencies [103318c]
31
+ - Updated dependencies [270a8d8]
32
+ - Updated dependencies [e14fce6]
33
+ - @prosopo/api-route@2.6.53
34
+ - @prosopo/util@3.3.5
35
+ - @prosopo/locale@3.2.8
36
+ - @prosopo/types@4.10.0
37
+ - @prosopo/types-database@4.11.17
38
+ - @prosopo/ipinfo@0.3.0
39
+ - @prosopo/api@3.5.20
40
+ - @prosopo/common@3.1.48
41
+ - @prosopo/database@3.15.20
42
+ - @prosopo/datasets@3.1.55
43
+ - @prosopo/env@3.6.20
44
+ - @prosopo/keyring@2.9.61
45
+ - @prosopo/load-balancer@2.10.16
46
+ - @prosopo/redis-client@1.0.30
47
+ - @prosopo/types-env@2.10.17
48
+ - @prosopo/user-access-policy@3.12.9
49
+ - @prosopo/api-express-router@3.1.51
50
+ - @prosopo/logger@2.0.4
51
+
3
52
  ## 4.15.14
4
53
  ### Patch Changes
5
54
 
@@ -0,0 +1,3 @@
1
+ import "node:module";
2
+ //#endregion
3
+ export {};
@@ -1,4 +1,4 @@
1
- import { AdminApiPaths } from "@prosopo/types";
1
+ import { ApiToggleMaintenanceModeEndpoint } from "./apiToggleMaintenanceModeEndpoint.js";
2
2
  import { ApiClearAllCountersEndpoint } from "./apiClearAllCountersEndpoint.js";
3
3
  import { ApiDnsEventEndpoint } from "./apiDnsEventEndpoint.js";
4
4
  import { ApiGetAllDecisionMachinesEndpoint } from "./apiGetAllDecisionMachinesEndpoint.js";
@@ -10,51 +10,32 @@ import { ApiRemoveDecisionMachineEndpoint } from "./apiRemoveDecisionMachineEndp
10
10
  import { ApiRemoveDetectorKeyEndpoint } from "./apiRemoveDetectorKeyEndpoint.js";
11
11
  import { ApiRemoveSiteKeyEndpoint } from "./apiRemoveSiteKeyEndpoint.js";
12
12
  import { ApiRemoveSiteKeysEndpoint } from "./apiRemoveSiteKeysEndpoint.js";
13
- import { ApiToggleMaintenanceModeEndpoint } from "./apiToggleMaintenanceModeEndpoint.js";
14
13
  import { ApiUpdateDecisionMachineEndpoint } from "./apiUpdateDecisionMachineEndpoint.js";
15
14
  import { ApiUpdateDetectorKeyEndpoint } from "./apiUpdateDetectorKeyEndpoint.js";
16
- class ApiAdminRoutesProvider {
17
- constructor(tasks) {
18
- this.tasks = tasks;
19
- }
20
- getRoutes() {
21
- return {
22
- [AdminApiPaths.SiteKeyRegister]: new ApiRegisterSiteKeyEndpoint(
23
- this.tasks.clientTaskManager
24
- ),
25
- [AdminApiPaths.SiteKeysRegister]: new ApiRegisterSiteKeysEndpoint(
26
- this.tasks.clientTaskManager
27
- ),
28
- [AdminApiPaths.UpdateDetectorKey]: new ApiUpdateDetectorKeyEndpoint(
29
- this.tasks.clientTaskManager
30
- ),
31
- [AdminApiPaths.RemoveDetectorKey]: new ApiRemoveDetectorKeyEndpoint(
32
- this.tasks.clientTaskManager
33
- ),
34
- [AdminApiPaths.UpdateDecisionMachine]: new ApiUpdateDecisionMachineEndpoint(this.tasks.clientTaskManager),
35
- [AdminApiPaths.GetAllDecisionMachines]: new ApiGetAllDecisionMachinesEndpoint(this.tasks.clientTaskManager),
36
- [AdminApiPaths.GetDecisionMachine]: new ApiGetDecisionMachineEndpoint(
37
- this.tasks.clientTaskManager
38
- ),
39
- [AdminApiPaths.RemoveDecisionMachine]: new ApiRemoveDecisionMachineEndpoint(this.tasks.clientTaskManager),
40
- [AdminApiPaths.RemoveAllDecisionMachines]: new ApiRemoveAllDecisionMachinesEndpoint(this.tasks.clientTaskManager),
41
- [AdminApiPaths.ClearAllCounters]: new ApiClearAllCountersEndpoint(
42
- this.tasks.usageCounters
43
- ),
44
- [AdminApiPaths.SiteKeyRemove]: new ApiRemoveSiteKeyEndpoint(
45
- this.tasks.clientTaskManager
46
- ),
47
- [AdminApiPaths.SiteKeysRemove]: new ApiRemoveSiteKeysEndpoint(
48
- this.tasks.clientTaskManager
49
- ),
50
- [AdminApiPaths.ToggleMaintenanceMode]: new ApiToggleMaintenanceModeEndpoint(),
51
- [AdminApiPaths.DnsEvent]: new ApiDnsEventEndpoint(
52
- this.tasks.db,
53
- this.tasks.env.ipInfoService
54
- )
55
- };
56
- }
57
- }
58
- export {
59
- ApiAdminRoutesProvider
15
+ import { AdminApiPaths } from "@prosopo/types";
16
+ //#region src/api/admin/apiAdminRoutesProvider.ts
17
+ var ApiAdminRoutesProvider = class {
18
+ constructor(tasks) {
19
+ this.tasks = tasks;
20
+ }
21
+ getRoutes() {
22
+ return {
23
+ [AdminApiPaths.SiteKeyRegister]: new ApiRegisterSiteKeyEndpoint(this.tasks.clientTaskManager),
24
+ [AdminApiPaths.SiteKeysRegister]: new ApiRegisterSiteKeysEndpoint(this.tasks.clientTaskManager),
25
+ [AdminApiPaths.UpdateDetectorKey]: new ApiUpdateDetectorKeyEndpoint(this.tasks.clientTaskManager),
26
+ [AdminApiPaths.RemoveDetectorKey]: new ApiRemoveDetectorKeyEndpoint(this.tasks.clientTaskManager),
27
+ [AdminApiPaths.UpdateDecisionMachine]: new ApiUpdateDecisionMachineEndpoint(this.tasks.clientTaskManager),
28
+ [AdminApiPaths.GetAllDecisionMachines]: new ApiGetAllDecisionMachinesEndpoint(this.tasks.clientTaskManager),
29
+ [AdminApiPaths.GetDecisionMachine]: new ApiGetDecisionMachineEndpoint(this.tasks.clientTaskManager),
30
+ [AdminApiPaths.RemoveDecisionMachine]: new ApiRemoveDecisionMachineEndpoint(this.tasks.clientTaskManager),
31
+ [AdminApiPaths.RemoveAllDecisionMachines]: new ApiRemoveAllDecisionMachinesEndpoint(this.tasks.clientTaskManager),
32
+ [AdminApiPaths.ClearAllCounters]: new ApiClearAllCountersEndpoint(this.tasks.usageCounters),
33
+ [AdminApiPaths.SiteKeyRemove]: new ApiRemoveSiteKeyEndpoint(this.tasks.clientTaskManager),
34
+ [AdminApiPaths.SiteKeysRemove]: new ApiRemoveSiteKeysEndpoint(this.tasks.clientTaskManager),
35
+ [AdminApiPaths.ToggleMaintenanceMode]: new ApiToggleMaintenanceModeEndpoint(),
36
+ [AdminApiPaths.DnsEvent]: new ApiDnsEventEndpoint(this.tasks.db, this.tasks.env.ipInfoService)
37
+ };
38
+ }
60
39
  };
40
+ //#endregion
41
+ export { ApiAdminRoutesProvider };
@@ -1,59 +1,64 @@
1
- import { ApiEndpointResponseStatus } from "@prosopo/api-route";
2
1
  import { getLogger } from "@prosopo/logger";
3
- import { ClearAllCountersResponse, ClearAllCountersBody } from "@prosopo/types";
4
- class ApiClearAllCountersEndpoint {
5
- constructor(usageCounters) {
6
- this.usageCounters = usageCounters;
7
- }
8
- async processRequest(args, logger) {
9
- logger = logger ? logger.with({}, "admin:counters:clear-all") : getLogger("info", "provider:admin:counters:clear-all");
10
- const dappAccount = args.dapp;
11
- const scope = dappAccount ?? "all";
12
- try {
13
- logger.info(() => ({
14
- msg: "Clearing usage counters",
15
- data: { scope }
16
- }));
17
- if (!this.usageCounters) {
18
- return {
19
- status: ApiEndpointResponseStatus.FAIL,
20
- error: "Usage counters not available (Redis unreachable)"
21
- };
22
- }
23
- const deleted = await this.usageCounters.clearAll(dappAccount);
24
- if (deleted === null) {
25
- return {
26
- status: ApiEndpointResponseStatus.FAIL,
27
- error: "Counter clear failed"
28
- };
29
- }
30
- logger.info(() => ({
31
- msg: "Usage counters cleared",
32
- data: { scope, deletedCount: deleted }
33
- }));
34
- return {
35
- status: ApiEndpointResponseStatus.SUCCESS,
36
- data: ClearAllCountersResponse.parse({
37
- success: true,
38
- deletedCount: deleted,
39
- scope
40
- })
41
- };
42
- } catch (error) {
43
- logger.error(() => ({
44
- msg: "Error clearing usage counters",
45
- err: error
46
- }));
47
- return {
48
- status: ApiEndpointResponseStatus.FAIL,
49
- error: error.message
50
- };
51
- }
52
- }
53
- getRequestArgsSchema() {
54
- return ClearAllCountersBody;
55
- }
56
- }
57
- export {
58
- ApiClearAllCountersEndpoint
2
+ import { ClearAllCountersBody, ClearAllCountersResponse } from "@prosopo/types";
3
+ import { ApiEndpointResponseStatus } from "@prosopo/api-route";
4
+ //#region src/api/admin/apiClearAllCountersEndpoint.ts
5
+ /**
6
+ * Admin endpoint: delete every per-sitekey usage counter (optionally scoped
7
+ * to a single dappAccount). Intended for manual integration testing and
8
+ * staging-environment resets — not part of the hot path. Returns the number
9
+ * of Redis keys deleted.
10
+ */
11
+ var ApiClearAllCountersEndpoint = class {
12
+ constructor(usageCounters) {
13
+ this.usageCounters = usageCounters;
14
+ }
15
+ async processRequest(args, logger) {
16
+ logger = logger ? logger.with({}, "admin:counters:clear-all") : getLogger("info", "provider:admin:counters:clear-all");
17
+ const dappAccount = args.dapp;
18
+ const scope = dappAccount ?? "all";
19
+ try {
20
+ logger.info(() => ({
21
+ msg: "Clearing usage counters",
22
+ data: { scope }
23
+ }));
24
+ if (!this.usageCounters) return {
25
+ status: ApiEndpointResponseStatus.FAIL,
26
+ error: "Usage counters not available (Redis unreachable)"
27
+ };
28
+ const deleted = await this.usageCounters.clearAll(dappAccount);
29
+ if (deleted === null) return {
30
+ status: ApiEndpointResponseStatus.FAIL,
31
+ error: "Counter clear failed"
32
+ };
33
+ logger.info(() => ({
34
+ msg: "Usage counters cleared",
35
+ data: {
36
+ scope,
37
+ deletedCount: deleted
38
+ }
39
+ }));
40
+ return {
41
+ status: ApiEndpointResponseStatus.SUCCESS,
42
+ data: ClearAllCountersResponse.parse({
43
+ success: true,
44
+ deletedCount: deleted,
45
+ scope
46
+ })
47
+ };
48
+ } catch (error) {
49
+ logger.error(() => ({
50
+ msg: "Error clearing usage counters",
51
+ err: error
52
+ }));
53
+ return {
54
+ status: ApiEndpointResponseStatus.FAIL,
55
+ error: error.message
56
+ };
57
+ }
58
+ }
59
+ getRequestArgsSchema() {
60
+ return ClearAllCountersBody;
61
+ }
59
62
  };
63
+ //#endregion
64
+ export { ApiClearAllCountersEndpoint };