@prosopo/provider 4.14.4 → 4.15.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 (78) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +12 -11
  2. package/.turbo/turbo-build$colon$tsc.log +24 -24
  3. package/.turbo/turbo-build.log +13 -12
  4. package/CHANGELOG.md +90 -0
  5. package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -1
  6. package/dist/api/blacklistRequestInspector.d.ts +8 -3
  7. package/dist/api/blacklistRequestInspector.d.ts.map +1 -1
  8. package/dist/api/blacklistRequestInspector.js +49 -11
  9. package/dist/api/blacklistRequestInspector.js.map +1 -1
  10. package/dist/api/block.d.ts.map +1 -1
  11. package/dist/api/block.js +4 -0
  12. package/dist/api/block.js.map +1 -1
  13. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  14. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +19 -13
  15. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  16. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts +2 -0
  17. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
  18. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +7 -1
  19. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js.map +1 -1
  20. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts +4 -1
  21. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  22. package/dist/api/captcha/submitPoWCaptchaSolution.js +13 -7
  23. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  24. package/dist/api/handshakeTimingMiddleware.d.ts +2 -2
  25. package/dist/api/handshakeTimingMiddleware.js +11 -11
  26. package/dist/api/hardBlockVerdictCache.d.ts +18 -0
  27. package/dist/api/hardBlockVerdictCache.d.ts.map +1 -0
  28. package/dist/api/hardBlockVerdictCache.js +119 -0
  29. package/dist/api/hardBlockVerdictCache.js.map +1 -0
  30. package/dist/api/startProviderApi.d.ts.map +1 -1
  31. package/dist/api/startProviderApi.js.map +1 -1
  32. package/dist/cjs/api/blacklistRequestInspector.cjs +49 -11
  33. package/dist/cjs/api/block.cjs +4 -0
  34. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +19 -13
  35. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +7 -1
  36. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +13 -7
  37. package/dist/cjs/api/handshakeTimingMiddleware.cjs +11 -11
  38. package/dist/cjs/api/hardBlockVerdictCache.cjs +119 -0
  39. package/dist/cjs/index.cjs +1 -0
  40. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +13 -9
  41. package/dist/cjs/tasks/spam/checkTrafficFilter.cjs +6 -9
  42. package/dist/index.js +2 -1
  43. package/dist/tasks/captchaManager.d.ts +1 -0
  44. package/dist/tasks/captchaManager.d.ts.map +1 -1
  45. package/dist/tasks/captchaManager.js.map +1 -1
  46. package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -1
  47. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  48. package/dist/tasks/frictionless/frictionlessTasks.js +13 -9
  49. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  50. package/dist/tasks/spam/checkTrafficFilter.d.ts.map +1 -1
  51. package/dist/tasks/spam/checkTrafficFilter.js +6 -9
  52. package/dist/tasks/spam/checkTrafficFilter.js.map +1 -1
  53. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js +2 -1
  54. package/dist/tests/integration/api/blacklistRequestInspector.integration.test.js.map +1 -1
  55. package/dist/tests/integration/api/blacklistRequestInspector.storm.integration.test.d.ts +2 -0
  56. package/dist/tests/integration/api/blacklistRequestInspector.storm.integration.test.d.ts.map +1 -0
  57. package/dist/tests/integration/api/blacklistRequestInspector.storm.integration.test.js +295 -0
  58. package/dist/tests/integration/api/blacklistRequestInspector.storm.integration.test.js.map +1 -0
  59. package/dist/tests/integration/maintenanceModeAdmin.integration.test.d.ts +2 -0
  60. package/dist/tests/integration/maintenanceModeAdmin.integration.test.d.ts.map +1 -0
  61. package/dist/tests/integration/maintenanceModeAdmin.integration.test.js +258 -0
  62. package/dist/tests/integration/maintenanceModeAdmin.integration.test.js.map +1 -0
  63. package/dist/tests/unit/api/adminRoutes.unit.test.js +25 -0
  64. package/dist/tests/unit/api/adminRoutes.unit.test.js.map +1 -1
  65. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js +8 -2
  66. package/dist/tests/unit/api/blacklistRequestInspector.unit.test.js.map +1 -1
  67. package/dist/tests/unit/api/block.unit.test.js +15 -1
  68. package/dist/tests/unit/api/block.unit.test.js.map +1 -1
  69. package/dist/tests/unit/api/handshakeTimingMiddleware.unit.test.js +22 -22
  70. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.d.ts +2 -0
  71. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.d.ts.map +1 -0
  72. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.js +192 -0
  73. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.js.map +1 -0
  74. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +2 -0
  75. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
  76. package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js +73 -1
  77. package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js.map +1 -1
  78. package/package.json +13 -13
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/provider@4.14.4 build:cjs
2
+ > @prosopo/provider@4.15.1 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -53,7 +53,7 @@ ViteCommonJSConfig: .
53
53
  Bundle build started
54
54
  transforming...
55
55
  Build end
56
- ✓ 96 modules transformed.
56
+ ✓ 97 modules transformed.
57
57
  Entry module "src/api/captcha/submitPoWCaptchaSolution.ts" is using named and default exports together. Consumers of your bundle will have to use `..default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
58
58
  Entry module "src/tasks/detection/decodeSimd.js" is using named and default exports together. Consumers of your bundle will have to use `..default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
59
59
  Entry module "src/tasks/detection/decodeBehavior.js" is using named and default exports together. Consumers of your bundle will have to use `..default` to access the default export, which may not be what you want. Use `output.exports: "named"` to disable this warning.
@@ -77,7 +77,6 @@ rendering chunks...
77
77
  dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs  0.84 kB
78
78
  dist/cjs/api/validateAddress.cjs  0.84 kB
79
79
  dist/cjs/utils/normalizeRequestIp.cjs  0.89 kB
80
- dist/cjs/api/block.cjs  0.95 kB
81
80
  dist/cjs/tasks/dataset/datasetTasks.cjs  0.96 kB
82
81
  dist/cjs/api/dnsEventUrl.cjs  0.98 kB
83
82
  dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs  1.05 kB
@@ -85,6 +84,7 @@ rendering chunks...
85
84
  dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.cjs  1.09 kB
86
85
  dist/cjs/tasks/powCaptcha/powTasksUtils.cjs  1.11 kB
87
86
  dist/cjs/api/headerCheckMiddleware.cjs  1.11 kB
87
+ dist/cjs/api/block.cjs  1.14 kB
88
88
  dist/cjs/api/admin/apiRegisterSiteKeysEndpoint.cjs  1.17 kB
89
89
  dist/cjs/api/admin/apiRemoveSiteKeyEndpoint.cjs  1.18 kB
90
90
  dist/cjs/api/admin/apiRemoveSiteKeysEndpoint.cjs  1.19 kB
@@ -111,42 +111,43 @@ rendering chunks...
111
111
  dist/cjs/api/ja4Middleware.cjs  1.96 kB
112
112
  dist/cjs/api/admin/apiUpdateDecisionMachineEndpoint.cjs  2.00 kB
113
113
  dist/cjs/api/public.cjs  2.02 kB
114
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs  2.04 kB
115
114
  dist/cjs/api/handshakeTimingMiddleware.cjs  2.12 kB
116
115
  dist/cjs/tasks/spam/updateSpamEmailDomains.cjs  2.13 kB
117
116
  dist/cjs/tasks/dnsEvent/enrichDnsEvent.cjs  2.16 kB
118
117
  dist/cjs/api/captcha/maintenanceModeResponses.cjs  2.20 kB
118
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs  2.24 kB
119
119
  dist/cjs/api/captcha.cjs  2.62 kB
120
120
  dist/cjs/api/admin/apiDnsEventEndpoint.cjs  2.87 kB
121
121
  dist/cjs/api/captcha/checkSpamEmail.cjs  2.89 kB
122
122
  dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs  3.00 kB
123
123
  dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs  3.03 kB
124
- dist/cjs/tasks/spam/checkTrafficFilter.cjs  3.09 kB
124
+ dist/cjs/tasks/spam/checkTrafficFilter.cjs  3.19 kB
125
125
  dist/cjs/api/captcha/submitImageCaptchaSolution.cjs  3.20 kB
126
126
  dist/cjs/utils/dns.cjs  3.38 kB
127
127
  dist/cjs/api/admin/apiAdminRoutesProvider.cjs  3.61 kB
128
+ dist/cjs/api/hardBlockVerdictCache.cjs  4.09 kB
128
129
  dist/cjs/services/ipComparison.cjs  4.10 kB
129
130
  dist/cjs/api/domainMiddleware.cjs  4.11 kB
130
- dist/cjs/index.cjs  4.30 kB
131
131
  dist/cjs/tasks/spam/checkSpamEmail.cjs  4.32 kB
132
+ dist/cjs/index.cjs  4.37 kB
132
133
  dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs  4.48 kB
133
134
  dist/cjs/tasks/tasks.cjs  5.35 kB
134
135
  dist/cjs/util/usageCounters.cjs  5.80 kB
135
136
  dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs  6.39 kB
136
137
  dist/cjs/api/captcha/getImageCaptchaChallenge.cjs  6.54 kB
137
138
  dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs  6.58 kB
138
- dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs  6.76 kB
139
+ dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs  6.96 kB
139
140
  dist/cjs/api/ja4.cjs  7.14 kB
140
141
  dist/cjs/api/metrics.cjs  7.94 kB
141
142
  dist/cjs/api/startProviderApi.cjs  8.62 kB
142
143
  dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs 10.21 kB
143
144
  dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs 10.59 kB
144
- dist/cjs/api/blacklistRequestInspector.cjs 11.68 kB
145
145
  dist/cjs/util.cjs 12.59 kB
146
+ dist/cjs/api/blacklistRequestInspector.cjs 13.16 kB
146
147
  dist/cjs/api/verify.cjs 13.49 kB
147
148
  dist/cjs/tasks/client/clientTasks.cjs 15.74 kB
148
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 16.32 kB
149
- dist/cjs/tasks/frictionless/frictionlessTasks.cjs 16.86 kB
149
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 16.53 kB
150
+ dist/cjs/tasks/frictionless/frictionlessTasks.cjs 17.09 kB
150
151
  dist/cjs/tasks/captchaManager.cjs 18.16 kB
151
152
  dist/cjs/tasks/detection/decodeBehavior.cjs 19.16 kB
152
153
  dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 21.51 kB
@@ -154,7 +155,7 @@ rendering chunks...
154
155
  dist/cjs/tasks/powCaptcha/powTasks.cjs 24.67 kB
155
156
  dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs 28.81 kB
156
157
  dist/cjs/tasks/detection/decodePayload.cjs 29.94 kB
157
- ✓ built in 792ms
158
+ ✓ built in 824ms
158
159
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeBehavior.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodeBehavior.js
159
160
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodePayload.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodePayload.js
160
161
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeSimd.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodeSimd.js
@@ -1,8 +1,8 @@
1
1
 
2
- > @prosopo/provider@4.14.4 build:tsc
2
+ > @prosopo/provider@4.15.1 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 12:39:11 PM - Projects in this build:
5
+ 8:57:34 AM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../util/tsconfig.json
8
8
  * ../logger/tsconfig.json
@@ -25,47 +25,47 @@
25
25
  * ../load-balancer/tsconfig.json
26
26
  * tsconfig.json
27
27
 
28
- 12:39:11 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
28
+ 8:57:34 AM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
29
29
 
30
- 12:39:11 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
30
+ 8:57:34 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
31
31
 
32
- 12:39:11 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
32
+ 8:57:34 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
33
33
 
34
- 12:39:11 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/apiRoutes.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
34
+ 8:57:34 AM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/apiRoutes.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
35
35
 
36
- 12:39:11 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
36
+ 8:57:34 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
37
37
 
38
- 12:39:11 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
38
+ 8:57:34 AM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
39
39
 
40
- 12:39:11 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/provider/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
40
+ 8:57:34 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/provider/api.ts' is older than output '../types/tsconfig.tsbuildinfo'
41
41
 
42
- 12:39:11 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
42
+ 8:57:34 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
43
43
 
44
- 12:39:12 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
44
+ 8:57:34 AM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
45
45
 
46
- 12:39:12 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
46
+ 8:57:34 AM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
47
47
 
48
- 12:39:12 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
48
+ 8:57:34 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
49
49
 
50
- 12:39:12 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/transformRule.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
50
+ 8:57:35 AM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/transformRule.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
51
51
 
52
- 12:39:12 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types/bannedDomain.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
52
+ 8:57:35 AM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types/captcha.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
53
53
 
54
- 12:39:12 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/unit/redisCacheEscalation.unit.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
54
+ 8:57:35 AM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/mongoGlobalSetup.ts' is older than output '../database/tsconfig.tsbuildinfo'
55
55
 
56
- 12:39:12 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
56
+ 8:57:35 AM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/keyring/keyring.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
57
57
 
58
- 12:39:12 PM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/env.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
58
+ 8:57:35 AM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/env.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
59
59
 
60
- 12:39:12 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
60
+ 8:57:35 AM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
61
61
 
62
- 12:39:12 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/apiExpressRouterFactory.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
62
+ 8:57:35 AM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/apiExpressRouterFactory.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
63
63
 
64
- 12:39:12 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
64
+ 8:57:35 AM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/tests/mocks/data/captchas.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
65
65
 
66
- 12:39:12 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/balancer.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
66
+ 8:57:35 AM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/index.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
67
67
 
68
- 12:39:12 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
68
+ 8:57:35 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
69
69
 
70
- 12:39:12 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
70
+ 8:57:35 AM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
71
71
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/provider@4.14.4 build
2
+ > @prosopo/provider@4.15.1 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/provider@4.14.4 build:cross-env
6
+ > @prosopo/provider@4.15.1 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -57,7 +57,7 @@ ViteEsmConfig: .
57
57
  Bundle build started
58
58
  transforming...
59
59
  Build end
60
- ✓ 96 modules transformed.
60
+ ✓ 97 modules transformed.
61
61
  rendering chunks...
62
62
  dist/tasks/index.js  0.06 kB
63
63
  dist/api/captcha/getFrictionlessCaptchaChallenge.js  0.12 kB
@@ -78,10 +78,10 @@ rendering chunks...
78
78
  dist/api/validateAddress.js  0.71 kB
79
79
  dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js  0.74 kB
80
80
  dist/utils/normalizeRequestIp.js  0.79 kB
81
- dist/api/block.js  0.81 kB
82
81
  dist/api/dnsEventUrl.js  0.85 kB
83
82
  dist/tasks/dataset/datasetTasks.js  0.85 kB
84
83
  dist/tasks/frictionless/frictionlessTasksUtils.js  0.91 kB
84
+ dist/api/block.js  0.95 kB
85
85
  dist/api/admin/apiRegisterSiteKeyEndpoint.js  0.96 kB
86
86
  dist/api/headerCheckMiddleware.js  0.97 kB
87
87
  dist/tasks/powCaptcha/powTasksUtils.js  0.98 kB
@@ -113,20 +113,21 @@ rendering chunks...
113
113
  dist/api/captcha/maintenanceModeResponses.js  1.78 kB
114
114
  dist/api/public.js  1.88 kB
115
115
  dist/api/admin/apiUpdateDecisionMachineEndpoint.js  1.88 kB
116
- dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js  1.89 kB
117
116
  dist/api/handshakeTimingMiddleware.js  1.95 kB
118
117
  dist/tasks/dnsEvent/enrichDnsEvent.js  1.97 kB
119
118
  dist/tasks/spam/updateSpamEmailDomains.js  2.03 kB
119
+ dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js  2.09 kB
120
120
  dist/api/captcha.js  2.42 kB
121
121
  dist/utils/dns.js  2.57 kB
122
122
  dist/api/admin/apiDnsEventEndpoint.js  2.73 kB
123
123
  dist/api/captcha/checkSpamEmail.js  2.80 kB
124
- dist/index.js  2.84 kB
125
124
  dist/tasks/spam/evaluateEmailSpamRules.js  2.84 kB
125
+ dist/index.js  2.88 kB
126
126
  dist/api/captcha/submitPuzzleCaptchaSolution.js  2.92 kB
127
- dist/tasks/spam/checkTrafficFilter.js  2.98 kB
128
127
  dist/api/admin/apiAdminRoutesProvider.js  2.99 kB
129
128
  dist/api/captcha/submitImageCaptchaSolution.js  3.07 kB
129
+ dist/tasks/spam/checkTrafficFilter.js  3.08 kB
130
+ dist/api/hardBlockVerdictCache.js  3.87 kB
130
131
  dist/api/domainMiddleware.js  3.89 kB
131
132
  dist/services/ipComparison.js  4.00 kB
132
133
  dist/tasks/spam/checkSpamEmail.js  4.26 kB
@@ -136,18 +137,18 @@ rendering chunks...
136
137
  dist/api/captcha/getPoWCaptchaChallenge.js  6.17 kB
137
138
  dist/api/captcha/getPuzzleCaptchaChallenge.js  6.34 kB
138
139
  dist/api/captcha/getImageCaptchaChallenge.js  6.35 kB
139
- dist/api/captcha/submitPoWCaptchaSolution.js  6.51 kB
140
+ dist/api/captcha/submitPoWCaptchaSolution.js  6.71 kB
140
141
  dist/api/ja4.js  7.01 kB
141
142
  dist/api/metrics.js  7.38 kB
142
143
  dist/api/startProviderApi.js  7.89 kB
143
144
  dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js  9.77 kB
144
145
  dist/tasks/decisionMachine/decisionMachineRunner.js 10.54 kB
145
- dist/api/blacklistRequestInspector.js 11.38 kB
146
146
  dist/util.js 12.17 kB
147
+ dist/api/blacklistRequestInspector.js 12.81 kB
147
148
  dist/api/verify.js 12.98 kB
148
149
  dist/tasks/client/clientTasks.js 15.48 kB
149
- dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 15.92 kB
150
- dist/tasks/frictionless/frictionlessTasks.js 16.56 kB
150
+ dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 16.14 kB
151
+ dist/tasks/frictionless/frictionlessTasks.js 16.79 kB
151
152
  dist/tasks/captchaManager.js 17.84 kB
152
153
  dist/tasks/detection/decodeBehavior.js 19.02 kB
153
154
  dist/tasks/puzzleCaptcha/puzzleTasks.js 21.20 kB
@@ -155,7 +156,7 @@ rendering chunks...
155
156
  dist/tasks/powCaptcha/powTasks.js 24.26 kB
156
157
  dist/tasks/imgCaptcha/imgCaptchaTasks.js 28.37 kB
157
158
  dist/tasks/detection/decodePayload.js 29.92 kB
158
- ✓ built in 1.66s
159
+ ✓ built in 1.90s
159
160
  [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
160
161
  [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
161
162
  [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,95 @@
1
1
  # @prosopo/provider
2
2
 
3
+ ## 4.15.1
4
+ ### Patch Changes
5
+
6
+ - 494883f: Add a sparse compound index on `{ isEscalation: 1, createdAt: 1 }` to the Session collection. Sparse so ordinary frictionless sessions (which omit the field) don't add index entries.
7
+ - 8bde5df: Persist `isEscalation: true` on Session records minted by the post-PoW routing machine.
8
+
9
+ The escalation path in `submitPoWCaptchaSolution.buildEscalation` creates a follow-up session (image or puzzle) whenever the router decides the PoW-verified user still needs a stronger challenge. Analytics couldn't previously separate those escalated sessions from cold frictionless sessions since both shared the same shape — every downstream count that wanted to reason about "did we escalate this user?" had to reverse-engineer the origin/escalation link from the redis cache mapping.
10
+
11
+ The field is optional on the schema and only written when true, so ordinary frictionless sessions stay slim and older records still parse.
12
+ - Updated dependencies [494883f]
13
+ - Updated dependencies [8bde5df]
14
+ - @prosopo/types-database@4.11.9
15
+ - @prosopo/database@3.15.10
16
+ - @prosopo/types@4.9.7
17
+ - @prosopo/types-env@2.10.9
18
+ - @prosopo/env@3.6.10
19
+ - @prosopo/api@3.5.14
20
+ - @prosopo/api-express-router@3.1.41
21
+ - @prosopo/datasets@3.1.48
22
+ - @prosopo/ipinfo@0.2.34
23
+ - @prosopo/keyring@2.9.54
24
+ - @prosopo/load-balancer@2.10.8
25
+ - @prosopo/user-access-policy@3.12.1
26
+
27
+ ## 4.15.0
28
+ ### Minor Changes
29
+
30
+ - 7d7e767: perf(access-rules): split-query hot path + verdict cache with LRU and singleflight
31
+
32
+ Reworks the block-lookup Redis path so per-request latency is bounded by matching-rules-per-request rather than total rules in the tenant. Rule populations in the 10k+ range no longer degrade tail latency.
33
+
34
+ Key changes:
35
+
36
+ - **Split-query read path**: `redisRulesSplitQuery.ts` builds one FT sub-query per populated request field (numericIp exact + CIDR, ja4Hash, userId, headHash, coords, countryCode, asn), each hitting a discriminating posting-list index instead of a single wide FT.AGGREGATE that scaled linearly in total rule count.
37
+ - **`clientId="global"` sentinel**: writer stamps the sentinel on rules with no clientId so queries probe `@clientId:{X|global|ismissing}` instead of the expensive `ismissing()` set-difference walk. Transition-safe — legacy rules match via the ismissing branch until a rehash migrates them.
38
+ - **HardBlockVerdictCache**: bounded LRU + TTL (10 s / 50k entries) with real LRU move-to-tail on hit and **singleflight `getOrCompute`** dedupe of concurrent misses — the wave-1 stampede fix for the frontend retry-loop shape.
39
+ - **Request-scoped memo**: attached to `req` so blockMiddleware + downstream in-request checks share one Redis round-trip.
40
+
41
+ Measured impact under 100-concurrent × 10-wave retry storm against a 19.3k-rule population: wave-1 p99 drops from 23 ms → 3 ms, throughput jumps from 28.5k → 61.5k req/s per process, 50 identical concurrent misses collapse to 1 storage call.
42
+
43
+ ### Patch Changes
44
+
45
+ - 17bc76e: feat: switch handshake timings from milliseconds to microseconds
46
+
47
+ Milliseconds bucket fast handshakes (local proxies, same-DC clients) to 0/1 and destroy the distribution shape we need for proxy detection. `time.Now()` on Linux is ~1μs precise via vDSO — μs is the honest resolution ceiling.
48
+
49
+ Wire changes (must land together with the paired chaddy release):
50
+
51
+ - Headers consumed by `handshakeTimingMiddleware`: `x-tls-tcp-to-chello-ms` / `x-tls-chello-to-handshake-ms` → `x-tls-tcp-to-chello-us` / `x-tls-chello-to-handshake-us`.
52
+ - Request augmentation, `HandshakeTiming` fields, decision-machine input, `Session` shape (Zod + Mongoose schemas): `tcpToChelloMs` / `chelloToHandshakeMs` → `tcpToChelloUs` / `chelloToHandshakeUs`.
53
+ - New sessions in `captchastorage.sessions` will now write `tcpToChelloUs` / `chelloToHandshakeUs` in μs. Historical `*Ms` fields on existing session records remain as-is (not migrated) — analytics that read both must range-scan by field name.
54
+
55
+ Rollout: deploy paired chaddy image (emits `-Us` headers) simultaneously; the deploy-order window drops timing signal but no data corruption is possible (mismatched header names simply resolve to `undefined`).
56
+ - 2e68a8d: fix(provider): persist TLS handshake timings on escalation + short-circuit sessions
57
+
58
+ `buildEscalation` (post-PoW image/puzzle escalation) and `runConfiguredCaptchaTypeShortCircuit` (sitekeys with a configured captchaType) both bypass `FrictionlessManager.setSessionParams`, so `req.tcpToChelloMs` / `req.chelloToHandshakeMs` were captured by the middleware but never landed on the resulting session record.
59
+
60
+ Threads the current request's per-connection timings through both paths:
61
+
62
+ - New optional `handshakeTiming` arg on `buildEscalation`, forwarded to `createSession`. Timings come from the current PoW-submit request, not from `originSession` (whose values belong to the earlier frictionless request's TCP connection).
63
+ - New optional `tcpToChelloMs` / `chelloToHandshakeMs` on `ShortCircuitInput`, spread into the locally-built `sessionParams`.
64
+
65
+ The frictionless main path (`sendCaptcha` / `registerBlockedSession`) was already correct — it merges from `setSessionParams`, which the handler populates.
66
+ - 4e77fa8: fix(provider): DNS-enriched extras now honour traffic filter toggles
67
+
68
+ `checkTrafficFilter` previously applied the "VPN on datacenter" suppression only to the primary request IP: the enriched DNS peer/resolver IPs still tripped `DATACENTER_BLOCKED` even when the operator had `blockVpn` off. Real-world impact: Surfshark (and similar) users whose primary IP was a `providerType=isp` datacenter passed the primary check, but their DNS resolver — also on a datacenter range flagged as VPN — was blocked. The extras path silently overrode the operator's toggles.
69
+
70
+ Changes:
71
+
72
+ - Extras now go through the same evaluator as the primary IP — the internal `EvaluateOptions` / `suppressVpnDatacenterInteraction` split is gone.
73
+ - Datacenter suppression is extended from VPN to all four overlapping categories: VPN, proxy, Tor, and crawler. If any of those flags is set on the IP and the operator has that specific `block*` toggle off, the datacenter rule is suppressed. Same rationale as the original VPN carve-out — those categories live on datacenter infrastructure by design.
74
+ - Crawler check is skipped entirely on DNS extras. Public DNS resolvers like `8.8.8.8` and `1.1.1.1` share IP ranges with search crawlers, so `is_crawler=true` on a resolver is the resolver, not a crawler visiting the endpoint.
75
+
76
+ Unit tests updated (`checkTrafficFilter.unit.test.ts`): the "does NOT apply VPN-datacenter suppression to extra IPs" test was flipped to assert the new behaviour, and coverage added for proxy/Tor/crawler suppression on both primary and extras, plus the extras-only crawler-skip.
77
+ - Updated dependencies [7d7e767]
78
+ - Updated dependencies [b3f351b]
79
+ - Updated dependencies [17bc76e]
80
+ - @prosopo/user-access-policy@3.12.0
81
+ - @prosopo/load-balancer@2.10.7
82
+ - @prosopo/types@4.9.6
83
+ - @prosopo/types-database@4.11.8
84
+ - @prosopo/database@3.15.9
85
+ - @prosopo/api@3.5.13
86
+ - @prosopo/api-express-router@3.1.40
87
+ - @prosopo/datasets@3.1.47
88
+ - @prosopo/env@3.6.9
89
+ - @prosopo/ipinfo@0.2.33
90
+ - @prosopo/keyring@2.9.53
91
+ - @prosopo/types-env@2.10.8
92
+
3
93
  ## 4.14.4
4
94
  ### Patch Changes
5
95
 
@@ -1 +1 @@
1
- {"version":3,"file":"apiRemoveDetectorKeyEndpoint.d.ts","sourceRoot":"","sources":["../../../src/api/admin/apiRemoveDetectorKeyEndpoint.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,KAAK,yBAAyB,GAAG,OAAO,yBAAyB,CAAC;AAElE,cAAM,4BACL,YAAW,WAAW,CAAC,yBAAyB,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAElE,cAAc,CACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,EACxC,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC;IA0BxB,oBAAoB;qBAM+7qG,EAAG,SAAS;;;;;;;;;CAHt+qG;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"apiRemoveDetectorKeyEndpoint.d.ts","sourceRoot":"","sources":["../../../src/api/admin/apiRemoveDetectorKeyEndpoint.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,KAAK,yBAAyB,GAAG,OAAO,yBAAyB,CAAC;AAElE,cAAM,4BACL,YAAW,WAAW,CAAC,yBAAyB,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAElE,cAAc,CACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,EACxC,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC;IA0BxB,oBAAoB;qBAM2hrG,EAAG,SAAS;;;;;;;;;CAHlkrG;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
@@ -3,18 +3,23 @@ import { type IPInfoResponse } from "@prosopo/types";
3
3
  import type { IProviderDatabase } from "@prosopo/types-database";
4
4
  import { type AccessRule, type AccessRulesStorage, type UserScope, type UserScopeRecord } from "@prosopo/user-access-policy";
5
5
  import type { NextFunction, Request, Response } from "express";
6
+ import { HardBlockVerdictCache } from "./hardBlockVerdictCache.js";
6
7
  export declare const getRequestUserScope: (requestHeaders: Record<string, unknown>, ja4?: string, ip?: string, user?: string, headHash?: string, coords?: string, countryCode?: string, asn?: number) => Pick<UserScopeRecord, "userId" | "ja4Hash" | "userAgent" | "ip" | "headHash" | "coords" | "countryCode" | "asn" | "os">;
7
8
  export declare const rankCandidateRules: (rules: AccessRule[], request: UserScope, requestClientId: string | undefined) => AccessRule[];
8
- export declare const getPrioritisedAccessRule: (userAccessRulesStorage: AccessRulesStorage, userScope: UserScope | UserScopeRecord, clientId?: string, options?: {
9
+ export declare const getVerdictCache: () => HardBlockVerdictCache;
10
+ export type GetPrioritisedAccessRuleOptions = {
9
11
  blockOnly?: boolean;
10
- }) => Promise<AccessRule[]>;
12
+ requestMemoHost?: object;
13
+ skipCache?: boolean;
14
+ };
15
+ export declare const getPrioritisedAccessRule: (userAccessRulesStorage: AccessRulesStorage, userScope: UserScope | UserScopeRecord, clientId?: string, options?: GetPrioritisedAccessRuleOptions) => Promise<AccessRule[]>;
11
16
  export declare class BlacklistRequestInspector {
12
17
  private readonly userAccessRulesStorage;
13
18
  private readonly environmentReadinessWaiter;
14
19
  private readonly db?;
15
20
  constructor(userAccessRulesStorage: AccessRulesStorage, environmentReadinessWaiter: () => Promise<void>, db?: IProviderDatabase | undefined);
16
21
  abortRequestForBlockedUsers(request: Request, res: Response, next: NextFunction): Promise<void>;
17
- shouldAbortRequest(requestedRoute: string, rawIp: string, ja4: string, requestHeaders: Record<string, unknown>, requestBody: Record<string, unknown>, logger: Logger, ipInfo?: IPInfoResponse): Promise<boolean>;
22
+ shouldAbortRequest(requestedRoute: string, rawIp: string, ja4: string, requestHeaders: Record<string, unknown>, requestBody: Record<string, unknown>, logger: Logger, ipInfo?: IPInfoResponse, requestMemoHost?: object): Promise<boolean>;
18
23
  private recordBlockDecision;
19
24
  protected isApiUnrelatedRoute(url: string): boolean;
20
25
  protected extractIdsFromRequest(requestHeaders: Record<string, unknown>, requestBody: Record<string, unknown>): {
@@ -1 +1 @@
1
- {"version":3,"file":"blacklistRequestInspector.d.ts","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAKN,KAAK,cAAc,EAInB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAEN,KAAK,UAAU,EACf,KAAK,kBAAkB,EAEvB,KAAK,SAAS,EACd,KAAK,eAAe,EAIpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI/D,eAAO,MAAM,mBAAmB,mBACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QACjC,MAAM,OACP,MAAM,SACJ,MAAM,aACF,MAAM,WACR,MAAM,gBACD,MAAM,QACd,MAAM,KACV,IAAI,CACN,eAAe,EACb,QAAQ,GACR,SAAS,GACT,WAAW,GACX,IAAI,GACJ,UAAU,GACV,QAAQ,GACR,aAAa,GACb,KAAK,GACL,IAAI,CAqBN,CAAC;AA+KF,eAAO,MAAM,kBAAkB,UACvB,UAAU,EAAE,WACV,SAAS,mBACD,MAAM,GAAG,SAAS,KACjC,UAAU,EAWT,CAAC;AAyBL,eAAO,MAAM,wBAAwB,2BACZ,kBAAkB,aAC/B,SAAS,GAAG,eAAe,aAC3B,MAAM,YACP;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KAC/B,OAAO,CAAC,UAAU,EAAE,CAsBtB,CAAC;AAEF,qBAAa,yBAAyB;IAEpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAQ3C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBATH,sBAAsB,EAAE,kBAAkB,EAC1C,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAQ/C,EAAE,CAAC,EAAE,iBAAiB,YAAA;IAG3B,2BAA2B,CACvC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC;IA8BH,kBAAkB,CAC9B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC;IAkHnB,OAAO,CAAC,mBAAmB;IAyF3B,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInD,SAAS,CAAC,qBAAqB,CAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC;QACF,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B;IAcD,SAAS,CAAC,cAAc,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,GACT,OAAO;CAGV"}
1
+ {"version":3,"file":"blacklistRequestInspector.d.ts","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAKN,KAAK,cAAc,EAInB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAEN,KAAK,UAAU,EACf,KAAK,kBAAkB,EAEvB,KAAK,SAAS,EACd,KAAK,eAAe,EAIpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EACN,qBAAqB,EAErB,MAAM,4BAA4B,CAAC;AAGpC,eAAO,MAAM,mBAAmB,mBACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QACjC,MAAM,OACP,MAAM,SACJ,MAAM,aACF,MAAM,WACR,MAAM,gBACD,MAAM,QACd,MAAM,KACV,IAAI,CACN,eAAe,EACb,QAAQ,GACR,SAAS,GACT,WAAW,GACX,IAAI,GACJ,UAAU,GACV,QAAQ,GACR,aAAa,GACb,KAAK,GACL,IAAI,CAqBN,CAAC;AA+KF,eAAO,MAAM,kBAAkB,UACvB,UAAU,EAAE,WACV,SAAS,mBACD,MAAM,GAAG,SAAS,KACjC,UAAU,EAWT,CAAC;AAoCL,eAAO,MAAM,eAAe,QAAO,qBAAqC,CAAC;AAuBzE,MAAM,MAAM,+BAA+B,GAAG;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IAKpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAIzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,wBAAwB,2BACZ,kBAAkB,aAC/B,SAAS,GAAG,eAAe,aAC3B,MAAM,YACP,+BAA+B,KACvC,OAAO,CAAC,UAAU,EAAE,CA4DtB,CAAC;AAEF,qBAAa,yBAAyB;IAEpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAQ3C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBATH,sBAAsB,EAAE,kBAAkB,EAC1C,0BAA0B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAQ/C,EAAE,CAAC,EAAE,iBAAiB,YAAA;IAG3B,2BAA2B,CACvC,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC;IAkCH,kBAAkB,CAC9B,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,cAAc,EACvB,eAAe,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC;IAkHnB,OAAO,CAAC,mBAAmB;IAyF3B,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInD,SAAS,CAAC,qBAAqB,CAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC;QACF,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B;IAcD,SAAS,CAAC,cAAc,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,GACT,OAAO;CAGV"}
@@ -2,6 +2,7 @@ import { randomUUID } from "node:crypto";
2
2
  import { CaptchaType, ResultReason, CaptchaStatus, FrictionlessReason, ApiPrefix } from "@prosopo/types";
3
3
  import { classifyOs, AccessPolicyType, userScopeInput, FilterScopeMatch, makeAccessRuleHash } from "@prosopo/user-access-policy";
4
4
  import { getCompositeIpAddress } from "../compositeIpAddress.js";
5
+ import { HardBlockVerdictCache, hardBlockCacheKey } from "./hardBlockVerdictCache.js";
5
6
  import { recordBlockedRequest } from "./metrics.js";
6
7
  const getRequestUserScope = (requestHeaders, ja4, ip, user, headHash, coords, countryCode, asn) => {
7
8
  const userAgent = requestHeaders["user-agent"] ? requestHeaders["user-agent"].toString() : void 0;
@@ -128,8 +129,30 @@ const rankCandidateRules = (rules, request, requestClientId) => rules.filter((ru
128
129
  }
129
130
  return ruleHarshness(b) - ruleHarshness(a);
130
131
  });
132
+ const verdictCache = new HardBlockVerdictCache();
133
+ const getVerdictCache = () => verdictCache;
134
+ const REQUEST_MEMO_SYMBOL = Symbol.for("prosopo.accessRuleRequestMemo");
135
+ const getOrCreateRequestMemo = (requestMemoHost) => {
136
+ let memo = requestMemoHost[REQUEST_MEMO_SYMBOL];
137
+ if (memo === void 0) {
138
+ memo = /* @__PURE__ */ new Map();
139
+ requestMemoHost[REQUEST_MEMO_SYMBOL] = memo;
140
+ }
141
+ return memo;
142
+ };
131
143
  const getPrioritisedAccessRule = async (userAccessRulesStorage, userScope, clientId, options) => {
132
144
  const parsedUserScope = userScopeInput.parse(userScope);
145
+ const blockOnly = options?.blockOnly ?? false;
146
+ const skipCache = options?.skipCache ?? false;
147
+ const requestMemoHost = options?.requestMemoHost;
148
+ const cacheKey = hardBlockCacheKey(clientId, parsedUserScope, blockOnly);
149
+ const requestMemo = requestMemoHost ? getOrCreateRequestMemo(requestMemoHost) : void 0;
150
+ if (requestMemo !== void 0) {
151
+ const memoHit = requestMemo.get(cacheKey);
152
+ if (memoHit !== void 0) {
153
+ return memoHit;
154
+ }
155
+ }
133
156
  const filter = {
134
157
  ...clientId && {
135
158
  policyScope: {
@@ -139,15 +162,25 @@ const getPrioritisedAccessRule = async (userAccessRulesStorage, userScope, clien
139
162
  policyScopeMatch: FilterScopeMatch.Greedy,
140
163
  userScope: parsedUserScope,
141
164
  userScopeMatch: FilterScopeMatch.Greedy,
142
- ...options?.blockOnly && { blockOnly: true }
165
+ ...blockOnly && { blockOnly: true }
143
166
  };
144
- const candidates = await userAccessRulesStorage.findRules(
145
- filter,
146
- true,
147
- // matchingFieldsOnly — engages server-side specificity rank
148
- true
149
- );
150
- return rankCandidateRules(candidates, parsedUserScope, clientId);
167
+ const compute = async () => {
168
+ const candidates = await userAccessRulesStorage.findRules(
169
+ filter,
170
+ true,
171
+ // matchingFieldsOnly — engages the split-query hot path
172
+ true
173
+ );
174
+ return rankCandidateRules(candidates, parsedUserScope, clientId);
175
+ };
176
+ let ranked;
177
+ if (skipCache) {
178
+ ranked = await compute();
179
+ } else {
180
+ ranked = await verdictCache.getOrCompute(cacheKey, compute);
181
+ }
182
+ requestMemo?.set(cacheKey, ranked);
183
+ return ranked;
151
184
  };
152
185
  class BlacklistRequestInspector {
153
186
  constructor(userAccessRulesStorage, environmentReadinessWaiter, db) {
@@ -167,7 +200,11 @@ class BlacklistRequestInspector {
167
200
  request.headers,
168
201
  request.body,
169
202
  request.logger,
170
- request.ipInfo
203
+ request.ipInfo,
204
+ // Share the per-request memo so a downstream captcha task
205
+ // hitting checkForHardBlock in the same request reuses this
206
+ // lookup rather than re-querying Redis.
207
+ request
171
208
  );
172
209
  if (shouldAbortRequest) {
173
210
  res.status(403).json({ error: "Forbidden" });
@@ -175,7 +212,7 @@ class BlacklistRequestInspector {
175
212
  }
176
213
  next();
177
214
  }
178
- async shouldAbortRequest(requestedRoute, rawIp, ja4, requestHeaders, requestBody, logger, ipInfo) {
215
+ async shouldAbortRequest(requestedRoute, rawIp, ja4, requestHeaders, requestBody, logger, ipInfo, requestMemoHost) {
179
216
  if (this.isApiUnrelatedRoute(requestedRoute)) {
180
217
  return false;
181
218
  }
@@ -220,7 +257,7 @@ class BlacklistRequestInspector {
220
257
  // candidate pool so the SERVER_SIDE_RANK_TOP_N cap can't
221
258
  // crowd out hard-block rules in clients with dense Restrict
222
259
  // rule populations.
223
- { blockOnly: true }
260
+ { blockOnly: true, requestMemoHost }
224
261
  );
225
262
  const enforceable = (accessPolicies ?? []).filter(
226
263
  (p) => !p.deferToVerify
@@ -351,5 +388,6 @@ export {
351
388
  BlacklistRequestInspector,
352
389
  getPrioritisedAccessRule,
353
390
  getRequestUserScope,
391
+ getVerdictCache,
354
392
  rankCandidateRules
355
393
  };
@@ -1 +1 @@
1
- {"version":3,"file":"blacklistRequestInspector.js","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blacklistRequestInspector.js","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/api/block.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,eAAO,MAAM,eAAe,wBAAyB,mBAAmB,WAU1D,OAAO,OAAO,QAAQ,QAAQ,YAAY,yBAqBvD,CAAC"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/api/block.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI/D,eAAO,MAAM,eAAe,wBAAyB,mBAAmB,WAU1D,OAAO,OAAO,QAAQ,QAAQ,YAAY,yBA8BvD,CAAC"}