@prosopo/provider 5.8.1 → 5.10.0

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 (110) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +18 -13
  2. package/.turbo/turbo-build$colon$tsc.log +29 -26
  3. package/.turbo/turbo-build.log +22 -17
  4. package/CHANGELOG.md +153 -0
  5. package/dist/api/blacklistRequestInspector.d.ts +1 -1
  6. package/dist/api/blacklistRequestInspector.d.ts.map +1 -1
  7. package/dist/api/blacklistRequestInspector.js +4 -2
  8. package/dist/api/blacklistRequestInspector.js.map +1 -1
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +36 -3
  11. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  12. package/dist/api/captcha/getImageCaptchaChallenge.d.ts.map +1 -1
  13. package/dist/api/captcha/getImageCaptchaChallenge.js +3 -1
  14. package/dist/api/captcha/getImageCaptchaChallenge.js.map +1 -1
  15. package/dist/api/captcha/signedAssetsResolver.d.ts +20 -0
  16. package/dist/api/captcha/signedAssetsResolver.d.ts.map +1 -0
  17. package/dist/api/captcha/signedAssetsResolver.js +53 -0
  18. package/dist/api/captcha/signedAssetsResolver.js.map +1 -0
  19. package/dist/api/healthzGeo.d.ts +54 -0
  20. package/dist/api/healthzGeo.d.ts.map +1 -0
  21. package/dist/api/healthzGeo.js +205 -0
  22. package/dist/api/healthzGeo.js.map +1 -0
  23. package/dist/api/metrics.d.ts +3 -0
  24. package/dist/api/metrics.d.ts.map +1 -1
  25. package/dist/api/metrics.js +11 -1
  26. package/dist/api/metrics.js.map +1 -1
  27. package/dist/api/public.d.ts.map +1 -1
  28. package/dist/api/public.js +13 -3
  29. package/dist/api/public.js.map +1 -1
  30. package/dist/api/verify.d.ts.map +1 -1
  31. package/dist/api/verify.js +83 -0
  32. package/dist/api/verify.js.map +1 -1
  33. package/dist/cjs/api/blacklistRequestInspector.cjs +4 -2
  34. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +36 -3
  35. package/dist/cjs/api/captcha/getImageCaptchaChallenge.cjs +3 -1
  36. package/dist/cjs/api/captcha/signedAssetsResolver.cjs +54 -0
  37. package/dist/cjs/api/healthzGeo.cjs +209 -0
  38. package/dist/cjs/api/metrics.cjs +11 -0
  39. package/dist/cjs/api/public.cjs +13 -2
  40. package/dist/cjs/api/verify.cjs +83 -0
  41. package/dist/cjs/tasks/detection/getBotScore.cjs +3 -1
  42. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +95 -2
  43. package/dist/cjs/tasks/frictionless/ipMatch.cjs +45 -0
  44. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +1 -1
  45. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +1 -1
  46. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +1 -1
  47. package/dist/tasks/detection/getBotScore.d.ts +2 -0
  48. package/dist/tasks/detection/getBotScore.d.ts.map +1 -1
  49. package/dist/tasks/detection/getBotScore.js +3 -1
  50. package/dist/tasks/detection/getBotScore.js.map +1 -1
  51. package/dist/tasks/frictionless/frictionlessTasks.d.ts +6 -0
  52. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  53. package/dist/tasks/frictionless/frictionlessTasks.js +96 -3
  54. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  55. package/dist/tasks/frictionless/ipMatch.d.ts +3 -0
  56. package/dist/tasks/frictionless/ipMatch.d.ts.map +1 -0
  57. package/dist/tasks/frictionless/ipMatch.js +45 -0
  58. package/dist/tasks/frictionless/ipMatch.js.map +1 -0
  59. package/dist/tasks/frictionless/routingMachine.d.ts +1 -0
  60. package/dist/tasks/frictionless/routingMachine.d.ts.map +1 -1
  61. package/dist/tasks/frictionless/routingMachine.js.map +1 -1
  62. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +1 -1
  63. package/dist/tasks/powCaptcha/powTasks.js +1 -1
  64. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +1 -1
  65. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +3 -1
  66. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +1 -1
  67. package/dist/tests/integration/clientSettingsPersistence.integration.test.js +2 -1
  68. package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
  69. package/dist/tests/integration/trafficFilterHierarchy.integration.test.js +1 -0
  70. package/dist/tests/integration/trafficFilterHierarchy.integration.test.js.map +1 -1
  71. package/dist/tests/integration/webBotAuthAuthenticated.integration.test.d.ts +2 -0
  72. package/dist/tests/integration/webBotAuthAuthenticated.integration.test.d.ts.map +1 -0
  73. package/dist/tests/integration/webBotAuthAuthenticated.integration.test.js +449 -0
  74. package/dist/tests/integration/webBotAuthAuthenticated.integration.test.js.map +1 -0
  75. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js +2 -1
  76. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js.map +1 -1
  77. package/dist/tests/unit/api/healthzGeo.unit.test.d.ts +2 -0
  78. package/dist/tests/unit/api/healthzGeo.unit.test.d.ts.map +1 -0
  79. package/dist/tests/unit/api/healthzGeo.unit.test.js +272 -0
  80. package/dist/tests/unit/api/healthzGeo.unit.test.js.map +1 -0
  81. package/dist/tests/unit/api/public.unit.test.js +132 -2
  82. package/dist/tests/unit/api/public.unit.test.js.map +1 -1
  83. package/dist/tests/unit/services/ipComparison.unit.test.js +2 -0
  84. package/dist/tests/unit/services/ipComparison.unit.test.js.map +1 -1
  85. package/dist/tests/unit/signedAssetsResolver.unit.test.d.ts +2 -0
  86. package/dist/tests/unit/signedAssetsResolver.unit.test.d.ts.map +1 -0
  87. package/dist/tests/unit/signedAssetsResolver.unit.test.js +77 -0
  88. package/dist/tests/unit/signedAssetsResolver.unit.test.js.map +1 -0
  89. package/dist/tests/unit/tasks/captchaManager.unit.test.js +2 -1
  90. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  91. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js +35 -0
  92. package/dist/tests/unit/tasks/frictionless/decryptPayload.unit.test.js.map +1 -1
  93. package/dist/tests/unit/tasks/frictionless/ipMatch.unit.test.d.ts +2 -0
  94. package/dist/tests/unit/tasks/frictionless/ipMatch.unit.test.d.ts.map +1 -0
  95. package/dist/tests/unit/tasks/frictionless/ipMatch.unit.test.js +107 -0
  96. package/dist/tests/unit/tasks/frictionless/ipMatch.unit.test.js.map +1 -0
  97. package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.js +88 -1
  98. package/dist/tests/unit/tasks/frictionless/routerPuzzleOverrides.unit.test.js.map +1 -1
  99. package/dist/tests/unit/tasks/puzzleMaxDifficultyMatchesLadder.unit.test.d.ts +2 -0
  100. package/dist/tests/unit/tasks/puzzleMaxDifficultyMatchesLadder.unit.test.d.ts.map +1 -0
  101. package/dist/tests/unit/tasks/puzzleMaxDifficultyMatchesLadder.unit.test.js +16 -0
  102. package/dist/tests/unit/tasks/puzzleMaxDifficultyMatchesLadder.unit.test.js.map +1 -0
  103. package/dist/tests/unit/testUtils/mockProviderEnv.d.ts.map +1 -1
  104. package/dist/tests/unit/testUtils/mockProviderEnv.js +1 -0
  105. package/dist/tests/unit/testUtils/mockProviderEnv.js.map +1 -1
  106. package/dist/tests/unit/util.ipDistance.unit.test.js +1 -0
  107. package/dist/tests/unit/util.ipDistance.unit.test.js.map +1 -1
  108. package/dist/util.d.ts.map +1 -1
  109. package/dist/util.js.map +1 -1
  110. package/package.json +16 -14
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/provider@5.8.1 build:cjs
2
+ > @prosopo/provider@5.10.0 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -25,7 +25,8 @@ ViteCommonJSConfig: .
25
25
  '/home/runner/work/captcha/captcha/packages/captcha-severity/tsconfig.json',
26
26
  '/home/runner/work/captcha/captcha/packages/datasets/tsconfig.json',
27
27
  '/home/runner/work/captcha/captcha/packages/load-balancer/tsconfig.json',
28
- '/home/runner/work/captcha/captcha/packages/puzzle-assets/tsconfig.json'
28
+ '/home/runner/work/captcha/captcha/packages/puzzle-assets/tsconfig.json',
29
+ '/home/runner/work/captcha/captcha/packages/web-bot-auth/tsconfig.json'
29
30
  ]
30
31
  }
31
32
  {
@@ -50,14 +51,15 @@ ViteCommonJSConfig: .
50
51
  '@prosopo/captcha-severity',
51
52
  '@prosopo/datasets',
52
53
  '@prosopo/load-balancer',
53
- '@prosopo/puzzle-assets'
54
+ '@prosopo/puzzle-assets',
55
+ '@prosopo/web-bot-auth'
54
56
  ]
55
57
  }
56
58
  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
59
  vite v8.1.5 building ssr environment for production...
58
60
  Bundle build started
59
61
  
60
- ✓ 107 modules transformed.
62
+ ✓ 110 modules transformed.
61
63
  rendering chunks...
62
64
  computing gzip size...
63
65
  dist/cjs/tasks/index.cjs 0.08 kB │ gzip: 0.07 kB
@@ -98,7 +100,7 @@ dist/cjs/pairs.cjs 1
98
100
  dist/cjs/tasks/dataset/datasetTasksUtils.cjs 1.42 kB │ gzip: 0.49 kB
99
101
  dist/cjs/utils/clientMetaData.cjs 1.48 kB │ gzip: 0.72 kB
100
102
  dist/cjs/compositeIpAddress.cjs 1.55 kB │ gzip: 0.57 kB
101
- dist/cjs/tasks/detection/getBotScore.cjs 1.55 kB │ gzip: 0.55 kB
103
+ dist/cjs/tasks/detection/getBotScore.cjs 1.58 kB │ gzip: 0.55 kB
102
104
  dist/cjs/api/admin/apiGetAllDecisionMachinesEndpoint.cjs 1.59 kB │ gzip: 0.60 kB
103
105
  dist/cjs/schedulers/updateSpamEmailDomains.cjs 1.64 kB │ gzip: 0.62 kB
104
106
  dist/cjs/utils/honeypot/encoders.cjs 1.66 kB │ gzip: 0.67 kB
@@ -111,11 +113,12 @@ dist/cjs/api/admin/apiUpdateDecisionMachineEndpoint.cjs 1
111
113
  dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs 1.80 kB │ gzip: 0.72 kB
112
114
  dist/cjs/utils/honeypot/phraseBank.cjs 1.87 kB │ gzip: 0.91 kB
113
115
  dist/cjs/api/handshakeTimingMiddleware.cjs 1.88 kB │ gzip: 0.71 kB
116
+ dist/cjs/api/captcha/signedAssetsResolver.cjs 1.96 kB │ gzip: 0.96 kB
114
117
  dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs 2.01 kB │ gzip: 0.78 kB
115
118
  dist/cjs/api/captcha/assignDetectorBundle.cjs 2.03 kB │ gzip: 0.86 kB
119
+ dist/cjs/tasks/frictionless/ipMatch.cjs 2.03 kB │ gzip: 1.03 kB
116
120
  dist/cjs/tasks/spam/updateSpamEmailDomains.cjs 2.12 kB │ gzip: 0.85 kB
117
121
  dist/cjs/tasks/frictionless/routingMachine.cjs 2.17 kB │ gzip: 0.91 kB
118
- dist/cjs/api/public.cjs 2.18 kB │ gzip: 0.91 kB
119
122
  dist/cjs/migrations/frictionlessLadder.cjs 2.19 kB │ gzip: 0.95 kB
120
123
  dist/cjs/tasks/puzzle/stratifiedSampler.cjs 2.20 kB │ gzip: 1.08 kB
121
124
  dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs 2.21 kB │ gzip: 1.10 kB
@@ -124,6 +127,7 @@ dist/cjs/api/admin/apiDnsEventEndpoint.cjs 2
124
127
  dist/cjs/utils/dns.cjs 2.66 kB │ gzip: 1.02 kB
125
128
  dist/cjs/api/forwardVerify.cjs 2.66 kB │ gzip: 1.12 kB
126
129
  dist/cjs/tasks/puzzle/puzzleDifficulty.cjs 2.66 kB │ gzip: 1.10 kB
130
+ dist/cjs/api/public.cjs 2.67 kB │ gzip: 1.05 kB
127
131
  dist/cjs/api/captcha/checkSpamEmail.cjs 2.73 kB │ gzip: 0.95 kB
128
132
  dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs 2.77 kB │ gzip: 0.99 kB
129
133
  dist/cjs/api/captcha/maintenanceModeResponses.cjs 2.91 kB │ gzip: 0.77 kB
@@ -145,22 +149,23 @@ dist/cjs/index.cjs 4
145
149
  dist/cjs/tasks/tasks.cjs 5.07 kB │ gzip: 1.57 kB
146
150
  dist/cjs/util/usageCounters.cjs 5.72 kB │ gzip: 2.03 kB
147
151
  dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs 6.73 kB │ gzip: 1.89 kB
148
- dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 7.06 kB │ gzip: 2.01 kB
152
+ dist/cjs/api/healthzGeo.cjs 7.03 kB │ gzip: 2.70 kB
153
+ dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 7.25 kB │ gzip: 2.05 kB
149
154
  dist/cjs/tasks/spam/checkTrafficFilter.cjs 7.47 kB │ gzip: 2.48 kB
150
- dist/cjs/api/metrics.cjs 7.51 kB │ gzip: 2.12 kB
151
155
  dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs 7.56 kB │ gzip: 2.03 kB
156
+ dist/cjs/api/metrics.cjs 7.96 kB │ gzip: 2.23 kB
152
157
  dist/cjs/tasks/detection/bundlePool.cjs 8.72 kB │ gzip: 3.26 kB
153
158
  dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs 8.93 kB │ gzip: 2.68 kB
154
159
  dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs 10.33 kB │ gzip: 1.82 kB
155
160
  dist/cjs/api/startProviderApi.cjs 11.62 kB │ gzip: 3.70 kB
156
161
  dist/cjs/tasks/client/clientTasks.cjs 11.73 kB │ gzip: 3.04 kB
157
162
  dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs 12.32 kB │ gzip: 3.81 kB
158
- dist/cjs/api/blacklistRequestInspector.cjs 13.02 kB │ gzip: 4.39 kB
163
+ dist/cjs/api/blacklistRequestInspector.cjs 13.10 kB │ gzip: 4.41 kB
159
164
  dist/cjs/util.cjs 13.33 kB │ gzip: 3.24 kB
160
- dist/cjs/api/verify.cjs 13.81 kB │ gzip: 2.58 kB
161
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 18.52 kB │ gzip: 4.32 kB
162
- dist/cjs/tasks/frictionless/frictionlessTasks.cjs 20.29 kB │ gzip: 5.36 kB
165
+ dist/cjs/api/verify.cjs 16.79 kB │ gzip: 2.93 kB
166
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 20.51 kB │ gzip: 4.70 kB
163
167
  dist/cjs/tasks/captchaManager.cjs 22.43 kB │ gzip: 6.38 kB
168
+ dist/cjs/tasks/frictionless/frictionlessTasks.cjs 24.02 kB │ gzip: 6.40 kB
164
169
  dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 24.03 kB │ gzip: 5.15 kB
165
170
  dist/cjs/tasks/powCaptcha/powTasks.cjs 24.84 kB │ gzip: 5.97 kB
166
171
  dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs 27.96 kB │ gzip: 6.37 kB
@@ -168,7 +173,7 @@ dist/cjs/tasks/detection/decodeBehavior.cjs 32
168
173
  dist/cjs/tasks/detection/decodeSimd.cjs 36.03 kB │ gzip: 11.96 kB
169
174
  dist/cjs/tasks/detection/decodePayload.cjs 49.79 kB │ gzip: 16.98 kB
170
175
 
171
- ✓ built in 104ms
176
+ ✓ built in 195ms
172
177
  [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
173
178
  [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
174
179
  [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@5.8.1 build:tsc
2
+ > @prosopo/provider@5.10.0 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 8:02:29 PM - Projects in this build:
5
+ 7:32:36 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../util/tsconfig.json
8
8
  * ../logger/tsconfig.json
@@ -25,53 +25,56 @@
25
25
  * ../datasets/tsconfig.json
26
26
  * ../load-balancer/tsconfig.json
27
27
  * ../puzzle-assets/tsconfig.json
28
+ * ../web-bot-auth/tsconfig.json
28
29
  * tsconfig.json
29
30
 
30
- 8:02:29 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/vite/NodejsPolarsNativeFilePlugin.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
31
+ 7:32:36 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'
31
32
 
32
- 8:02:29 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
33
+ 7:32:36 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/util.ts' is older than output '../util/tsconfig.tsbuildinfo'
33
34
 
34
- 8:02:29 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
35
+ 7:32:37 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/tests/loggerBrowser.unit.test.ts' is older than output '../logger/tsconfig.tsbuildinfo'
35
36
 
36
- 8:02:29 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/tests/apiRoute.unit.test.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
37
+ 7:32:37 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/tests/apiRoute.unit.test.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
37
38
 
38
- 8:02:29 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
39
+ 7:32:37 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
39
40
 
40
- 8:02:29 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'
41
+ 7:32:37 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'
41
42
 
42
- 8:02:29 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
43
+ 7:32:37 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
43
44
 
44
- 8:02:29 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
45
+ 7:32:37 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/utils/objectUtils.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
45
46
 
46
- 8:02:29 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
47
+ 7:32:37 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
47
48
 
48
- 8:02:29 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/tests/testRedisConnection.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
49
+ 7:32:37 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'
49
50
 
50
- 8:02:29 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
51
+ 7:32:37 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/tsconfig.tsbuildinfo'
51
52
 
52
- 8:02:29 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'
53
+ 7:32:37 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'
53
54
 
54
- 8:02:29 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types.test-d.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
55
+ 7:32:37 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types.test-d.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
55
56
 
56
- 8:02:29 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/unit/captchaLabel.unit.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
57
+ 7:32:37 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/unit/captchaLabel.unit.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
57
58
 
58
- 8:02:29 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
59
+ 7:32:37 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/keyring/keyring.test.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
59
60
 
60
- 8:02:29 PM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/index.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
61
+ 7:32:37 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'
61
62
 
62
- 8:02:29 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
63
+ 7:32:37 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/index.ts' is older than output '../env/tsconfig.tsbuildinfo'
63
64
 
64
- 8:02:29 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/middlewares/requestLoggerMiddleware.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
65
+ 7:32:37 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/errorHandler.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
65
66
 
66
- 8:02:29 PM - Project '../captcha-severity/tsconfig.json' is up to date because newest input '../captcha-severity/src/index.test.ts' is older than output '../captcha-severity/tsconfig.tsbuildinfo'
67
+ 7:32:37 PM - Project '../captcha-severity/tsconfig.json' is up to date because newest input '../captcha-severity/src/index.test.ts' is older than output '../captcha-severity/tsconfig.tsbuildinfo'
67
68
 
68
- 8:02:29 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
69
+ 7:32:37 PM - 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'
69
70
 
70
- 8:02:29 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'
71
+ 7:32:37 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'
71
72
 
72
- 8:02:29 PM - Project '../puzzle-assets/tsconfig.json' is up to date because newest input '../puzzle-assets/src/background.ts' is older than output '../puzzle-assets/tsconfig.tsbuildinfo'
73
+ 7:32:37 PM - Project '../puzzle-assets/tsconfig.json' is up to date because newest input '../puzzle-assets/src/background.ts' is older than output '../puzzle-assets/tsconfig.tsbuildinfo'
73
74
 
74
- 8:02:29 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
75
+ 7:32:37 PM - Project '../web-bot-auth/tsconfig.json' is up to date because newest input '../web-bot-auth/src/base64.ts' is older than output '../web-bot-auth/tsconfig.tsbuildinfo'
75
76
 
76
- 8:02:29 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
77
+ 7:32:37 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
78
+
79
+ 7:32:37 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
77
80
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/provider@5.8.1 build
2
+ > @prosopo/provider@5.10.0 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/provider@5.8.1 build:cross-env
6
+ > @prosopo/provider@5.10.0 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -29,11 +29,11 @@ ViteEsmConfig: .
29
29
  '/home/runner/work/captcha/captcha/packages/captcha-severity/tsconfig.json',
30
30
  '/home/runner/work/captcha/captcha/packages/datasets/tsconfig.json',
31
31
  '/home/runner/work/captcha/captcha/packages/load-balancer/tsconfig.json',
32
- '/home/runner/work/captcha/captcha/packages/puzzle-assets/tsconfig.json'
32
+ '/home/runner/work/captcha/captcha/packages/puzzle-assets/tsconfig.json',
33
+ '/home/runner/work/captcha/captcha/packages/web-bot-auth/tsconfig.json'
33
34
  ]
34
35
  }
35
36
  {
36
- 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.
37
37
  externals: [
38
38
  '@prosopo/api-route',
39
39
  '@prosopo/logger',
@@ -55,13 +55,15 @@ ViteEsmConfig: .
55
55
  '@prosopo/captcha-severity',
56
56
  '@prosopo/datasets',
57
57
  '@prosopo/load-balancer',
58
- '@prosopo/puzzle-assets'
58
+ '@prosopo/puzzle-assets',
59
+ '@prosopo/web-bot-auth'
59
60
  ]
60
61
  }
62
+ 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.
61
63
  vite v8.1.5 building ssr environment for production...
62
64
  Bundle build started
63
65
  
64
- ✓ 107 modules transformed.
66
+ ✓ 110 modules transformed.
65
67
  rendering chunks...
66
68
  computing gzip size...
67
69
  dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
@@ -103,8 +105,8 @@ dist/tasks/dataset/datasetTasksUtils.js 1.30 k
103
105
  dist/compositeIpAddress.js 1.36 kB │ gzip: 0.55 kB
104
106
  dist/utils/clientMetaData.js 1.42 kB │ gzip: 0.72 kB
105
107
  dist/api/admin/apiGetAllDecisionMachinesEndpoint.js 1.48 kB │ gzip: 0.57 kB
106
- dist/tasks/detection/getBotScore.js 1.50 kB │ gzip: 0.54 kB
107
108
  dist/schedulers/updateSpamEmailDomains.js 1.52 kB │ gzip: 0.60 kB
109
+ dist/tasks/detection/getBotScore.js 1.53 kB │ gzip: 0.54 kB
108
110
  dist/api/admin/apiReplaceDetectorPoolEndpoint.js 1.57 kB │ gzip: 0.68 kB
109
111
  dist/tasks/imgCaptcha/imgCaptchaTasksUtils.js 1.57 kB │ gzip: 0.69 kB
110
112
  dist/api/ja4Middleware.js 1.59 kB │ gzip: 0.75 kB
@@ -116,15 +118,17 @@ dist/api/admin/apiUpdateDecisionMachineEndpoint.js 1.68 k
116
118
  dist/utils/honeypot/phraseBank.js 1.69 kB │ gzip: 0.84 kB
117
119
  dist/api/handshakeTimingMiddleware.js 1.75 kB │ gzip: 0.69 kB
118
120
  dist/tasks/spam/updateSpamEmailDomains.js 1.87 kB │ gzip: 0.77 kB
121
+ dist/api/captcha/signedAssetsResolver.js 1.89 kB │ gzip: 0.94 kB
119
122
  dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
120
- dist/api/public.js 1.90 kB │ gzip: 0.83 kB
121
123
  dist/api/captcha/assignDetectorBundle.js 1.90 kB │ gzip: 0.84 kB
124
+ dist/tasks/frictionless/ipMatch.js 1.98 kB │ gzip: 1.02 kB
122
125
  dist/migrations/frictionlessLadder.js 2.12 kB │ gzip: 0.93 kB
123
126
  dist/tasks/puzzle/stratifiedSampler.js 2.14 kB │ gzip: 1.07 kB
124
127
  dist/tasks/frictionless/routingMachine.js 2.16 kB │ gzip: 0.91 kB
125
128
  dist/tasks/frictionless/frictionlessTasksUtils.js 2.16 kB │ gzip: 1.09 kB
126
129
  dist/api/captcha/maintenanceModeResponses.js 2.16 kB │ gzip: 0.73 kB
127
130
  dist/tasks/captchaTypeSelection.js 2.22 kB │ gzip: 1.03 kB
131
+ dist/api/public.js 2.36 kB │ gzip: 0.96 kB
128
132
  dist/utils/dns.js 2.36 kB │ gzip: 0.95 kB
129
133
  dist/api/admin/apiDnsEventEndpoint.js 2.43 kB │ gzip: 0.96 kB
130
134
  dist/api/captcha/checkSpamEmail.js 2.47 kB │ gzip: 0.91 kB
@@ -149,30 +153,31 @@ dist/tasks/tasks.js 4.69 k
149
153
  dist/tasks/dnsEvent/enrichDnsEvent.js 4.71 kB │ gzip: 1.72 kB
150
154
  dist/util/usageCounters.js 5.65 kB │ gzip: 2.01 kB
151
155
  dist/api/captcha/getPoWCaptchaChallenge.js 6.09 kB │ gzip: 1.83 kB
152
- dist/api/captcha/getImageCaptchaChallenge.js 6.35 kB │ gzip: 1.96 kB
156
+ dist/api/captcha/getImageCaptchaChallenge.js 6.51 kB │ gzip: 1.99 kB
153
157
  dist/api/captcha/getPuzzleCaptchaChallenge.js 6.84 kB │ gzip: 1.97 kB
154
- dist/api/metrics.js 6.96 kB │ gzip: 2.09 kB
158
+ dist/api/healthzGeo.js 6.86 kB │ gzip: 2.68 kB
155
159
  dist/tasks/spam/checkTrafficFilter.js 7.16 kB │ gzip: 2.45 kB
160
+ dist/api/metrics.js 7.36 kB │ gzip: 2.19 kB
156
161
  dist/tasks/detection/bundlePool.js 8.30 kB │ gzip: 3.21 kB
157
162
  dist/api/captcha/submitPoWCaptchaSolution.js 8.41 kB │ gzip: 2.63 kB
158
163
  dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 9.36 kB │ gzip: 1.80 kB
159
164
  dist/api/startProviderApi.js 9.93 kB │ gzip: 3.42 kB
160
165
  dist/tasks/client/clientTasks.js 11.27 kB │ gzip: 3.00 kB
161
166
  dist/tasks/decisionMachine/decisionMachineRunner.js 11.93 kB │ gzip: 3.75 kB
162
- dist/api/blacklistRequestInspector.js 12.38 kB │ gzip: 4.35 kB
163
- dist/api/verify.js 12.48 kB │ gzip: 2.48 kB
167
+ dist/api/blacklistRequestInspector.js 12.46 kB │ gzip: 4.37 kB
164
168
  dist/util.js 12.65 kB │ gzip: 3.18 kB
165
- dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 17.27 kB │ gzip: 4.23 kB
166
- dist/tasks/frictionless/frictionlessTasks.js 19.77 kB │ gzip: 5.32 kB
169
+ dist/api/verify.js 15.12 kB │ gzip: 2.82 kB
170
+ dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 18.99 kB │ gzip: 4.59 kB
167
171
  dist/tasks/captchaManager.js 21.92 kB │ gzip: 6.32 kB
168
- dist/tasks/puzzleCaptcha/puzzleTasks.js 22.62 kB │ gzip: 5.11 kB
172
+ dist/tasks/puzzleCaptcha/puzzleTasks.js 22.62 kB │ gzip: 5.10 kB
173
+ dist/tasks/frictionless/frictionlessTasks.js 23.44 kB │ gzip: 6.36 kB
169
174
  dist/tasks/powCaptcha/powTasks.js 23.47 kB │ gzip: 5.93 kB
170
- dist/tasks/imgCaptcha/imgCaptchaTasks.js 26.44 kB │ gzip: 6.30 kB
175
+ dist/tasks/imgCaptcha/imgCaptchaTasks.js 26.44 kB │ gzip: 6.31 kB
171
176
  dist/tasks/detection/decodeBehavior.js 32.26 kB │ gzip: 10.34 kB
172
177
  dist/tasks/detection/decodeSimd.js 36.06 kB │ gzip: 12.00 kB
173
178
  dist/tasks/detection/decodePayload.js 49.69 kB │ gzip: 16.96 kB
174
179
 
175
- ✓ built in 101ms
180
+ ✓ built in 196ms
176
181
  [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
177
182
  [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
178
183
  [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,158 @@
1
1
  # @prosopo/provider
2
2
 
3
+ ## 5.10.0
4
+ ### Minor Changes
5
+
6
+ - 886b664: Optionally answer `/healthz` with the node nearest the caller.
7
+
8
+ `/healthz` tells a client which node to pin its captcha calls to, and a node has always answered with its own name — so the pin is whatever the DNS layer picked. The DNS layer only sees the client's address when the client's resolver forwards it, which many do not. The provider always sees it, because the connection is already open.
9
+
10
+ Behind `PROSOPO_HEALTHZ_GEO_STEERING`, off by default. With it off nothing in this change runs and the response is unchanged, headers included.
11
+
12
+ - `IpInfoService.country(ip)` is a new MaxMind-only fast path: an in-process, synchronous read of the memory-mapped database, returning an ISO 3166-1 alpha-2 code or `undefined`. `lookup()` is unchanged and still prefers ipapi.is for its threat data; a country lookup does not need that data and must not pay a network call for it. Added to `IIpInfoService` in `@prosopo/ipinfo` and `@prosopo/types-env`.
13
+ - The country → host map is configuration, supplied by the deployment as JSON in `PROSOPO_HEALTHZ_GEO_ROUTES`. It is also the candidate set: a host that must not receive traffic simply does not appear in it. An unparseable or empty map leaves steering off rather than failing startup.
14
+ - A background poller (`PROSOPO_HEALTHZ_GEO_PROBE_INTERVAL_MS`, `PROSOPO_HEALTHZ_GEO_PROBE_TIMEOUT_MS`) tracks each candidate's health. Every candidate starts down and only becomes up on a successful probe, so a poller that has not run or is failing leaves steering off. The request path reads a boolean and never awaits a probe.
15
+ - The handler never awaits readiness. It reads `ipInfoService.isAvailable()`, which is false before the environment is ready, and answers with its own name. Loopback and private-range callers — deploy gates, container health checks — short-circuit the same way. `/healthz` stays dependency-free.
16
+ - `Cache-Control: no-store, private` is set whenever steering is on, before the decision, so it covers every branch. The answer varies per caller and no intermediary may cache and replay it.
17
+ - `prosopo_healthz_geo_outcomes_total{outcome}` on `/metrics` counts `steered`, `not_steered`, `target_down` and `geo_unavailable`. Every outcome but the first falls back to the node's own name, which is also the behaviour with steering off, so nothing else would show that steering had stopped working.
18
+
19
+ No client-side change: the load balancer already pins to whatever `host` the response carries.
20
+
21
+ ### Patch Changes
22
+
23
+ - 0c1f301: feat(types,provider): report `host` in `/details`
24
+
25
+ `providerDetailsSchema` grows an optional `host`, and the `/details` handler
26
+ populates it from `config.host`, falling back to the request's hostname when
27
+ that is unset — the same shape `/healthz` already uses.
28
+
29
+ `/details` already reports the version and Redis readiness; it just did not
30
+ say which node answered. Callers that want the answering node's identity can
31
+ now read it there instead of inferring it from a liveness endpoint.
32
+
33
+ The field is optional on purpose. A fleet is mixed-version part-way through a
34
+ rolling deploy, so a required field would fail validation against a node that
35
+ has not been upgraded yet. Consumers should treat it as absent-or-string.
36
+ Purely additive: nothing existing changes shape.
37
+ - 32d286d: Persist b from detector payload
38
+ - Updated dependencies [886b664]
39
+ - Updated dependencies [0c1f301]
40
+ - Updated dependencies [32d286d]
41
+ - @prosopo/ipinfo@0.4.0
42
+ - @prosopo/types-env@2.11.0
43
+ - @prosopo/types@5.8.1
44
+ - @prosopo/types-database@5.5.1
45
+ - @prosopo/env@3.6.54
46
+ - @prosopo/api@4.2.1
47
+ - @prosopo/api-express-router@3.1.85
48
+ - @prosopo/database@4.0.31
49
+ - @prosopo/datasets@3.1.80
50
+ - @prosopo/keyring@2.9.87
51
+ - @prosopo/load-balancer@2.10.42
52
+ - @prosopo/user-access-policy@3.14.1
53
+
54
+ ## 5.9.0
55
+ ### Minor Changes
56
+
57
+ - af267c2: Web Bot Auth verifier and an authenticated frictionless flow for pre-verified agents.
58
+
59
+ **`@prosopo/web-bot-auth`** — a new package: an RFC 9421 HTTP Message Signatures verifier built on `@noble/curves/ed25519`, with no Cloudflare dependency. It parses `Signature-Agent` in both its bare-string and dictionary forms, resolves the signer's JWKS at `/.well-known/http-message-signatures-directory` honouring the response's cache-control TTL, and verifies the Ed25519 signature over the RFC 9421 signature base.
60
+
61
+ **Provider fast path.** `/captcha/frictionless` returns `captchaType: authenticated` when a non-`deferToVerify` `AccessPolicyType.Allow` rule matches the request's user scope, and writes a session with `serverChecked: false`, `agent: true` and the issuing IP frozen for verify-time binding. Decrypt, bot score and the decision machine are all skipped. A verified `Signature-Agent` is one way to qualify — the userScope gains a `webBotAuthAgent` field, set only when signature verification succeeded so a rule scoped to a signer can never be matched by a spoofed header — but an IP CIDR, JA4, user agent, ASN or country rule qualifies the same way. A `Block` or `Restrict` on the same match set always wins, because severity outranks Allow.
62
+
63
+ **`/client/authenticated/verify`.** A separate router with mandatory IP binding — the operator must forward the client IP (`API.AUTHENTICATED_IP_REQUIRED`) and it must match the one the session was issued to (`API.AUTHENTICATED_IP_MISMATCH`), so a leaked token cannot be replayed from elsewhere. Single use is enforced through `serverChecked`, and `captchaType` is checked so an ordinary captcha token cannot be redeemed on this route. `clientSessionId` correlation goes through the same `isClientSessionMismatch` helper as pow / image / puzzle, so the authenticated path cannot drift from the others.
64
+
65
+ **Surface.** `AccessPolicyType.Allow` and `CaptchaType.authenticated`; `webBotAuthAgent` on the user scope (indexed, normalised at parse time to a lowercase scheme+host with no trailing slash); `Session.agent` / `Session.webBotAuthAgent` for the Traffic view's "pre-verified pass" filter; `submitAuthenticatedCaptchaVerify` on `ProviderApi` and the matching branch in `@prosopo/server.verifyProvider`; `AuthenticatedBadge` and a dispatch branch in `procaptcha-frictionless`.
66
+
67
+ Three fixes the new end-to-end coverage turned up, each of which broke the flow outright:
68
+
69
+ - `ipMatchesSession` compared the operator's parsed IP against the session's composite halves with `===`. A session read back from Mongo carries BSON (`Decimal128`, or `Long` on pre-migration records), not the `bigint` the type claims, so the comparison was false for every session that had been through the database — every legitimate redemption was rejected as `API.AUTHENTICATED_IP_MISMATCH`. Both halves are now normalised before comparison, and an unparseable half fails closed rather than defaulting to `0n`, so garbage still cannot match garbage.
70
+ - `serverChecked` was never written onto the authenticated session, so "never set" and "consumed" were distinguishable only by an absence. It is now written as `false` at issuance.
71
+ - `serverChecked` was missing from `SESSION_PROJECTION`. Left out, the single-use check reads `undefined` and an authenticated token verifies an unlimited number of times.
72
+
73
+ ### Patch Changes
74
+
75
+ - 934fa5d: feat(types,provider): carry the client's `b` signal map on DetectorResult
76
+
77
+ `DetectorResult` grows an optional `b?: Record<string, string[]>`, and
78
+ `getBotScore` forwards it, following the same shape as the existing `g`, `i`,
79
+ `sw`, `md`, `bn` and `fs` fields: read off the decoded payload, passed through
80
+ untouched, absent for clients that predate it.
81
+
82
+ Typing it is the whole change. Without it the field arrives on the provider
83
+ untyped and any rule reading it has to assert its shape at the call site.
84
+
85
+ The map is keyed by signal name with a short list of strings per key. It is
86
+ empty for the great majority of sessions, so anything consuming it should
87
+ treat absent and empty as the same thing. Adding a key is a client-side
88
+ change and needs no deploy here — an existing decoder passes through keys it
89
+ predates rather than dropping the ones it knows, which is the property that
90
+ lets the two sides move independently.
91
+ - 27f525e: Stop the puzzle difficulty ladder silently replacing a site's own puzzle settings.
92
+
93
+ An escalated puzzle session samples its render settings from a difficulty band, and a sampled band sets every knob — decoy count, edge darkness, hole darken, piece scale and tolerance. While that is happening the site's configured `puzzle` block and `puzzleTolerance` are not consulted at all. For a site using escalation that is the intent; for a site that deliberately configured an easier puzzle it means the settings it saved never render, which reads as "my settings aren't being saved".
94
+
95
+ Two changes:
96
+
97
+ `puzzleMaxDifficulty` is a new client setting — the puzzle counterpart to `imageMaxRounds`. It caps how far automatic escalation may climb the ladder, and `0` pins the site to level 0, the documented "nothing escalated" case where the session is left bare and the site's own settings render every time. It defaults to `MAX_AUTO_ESCALATION_LEVEL`, so sites that never set it keep the behaviour they have.
98
+
99
+ Separately, the paths that measured nothing about a client — `MISSING_TOKEN`, `MISSING_HEAD_HASH` and `DECRYPTION_FAILED` — no longer feed the ladder. Each sizes its challenge from a fixed constant chosen to be short ("prove you're human quickly", per their own comments), not from any signal the client produced, but those constants sit above the default baseline of `DEFAULT_SOLVED_COUNT` and so scored as an escalation. A site whose CSP blocks the detector bundle sends no token on every request, so every one of its users was permanently escalated. `OLD_TIMESTAMP` deliberately keeps the ladder: its round count comes from `timestampDecayFunction`, which scales with staleness and is a real graduated measurement.
100
+
101
+ Explicit router and traffic-filter overrides are unaffected in both cases — an operator naming a value still gets it.
102
+ - a0c87c7: feat(provider): sign captcha image URLs with short-lived tokens
103
+
104
+ Captcha image URLs are permanent, unauthenticated and cacheable. Harvest the
105
+ URLs once and the entire image pool can be refetched indefinitely, offline and
106
+ unattributably — which is what makes scraping the demo dataset cheap, and why
107
+ regenerating the dataset alone never fixes it.
108
+
109
+ `AssetsResolver` has been declared in `@prosopo/types` and called by
110
+ `parseCaptchaAssets` since the image flow was written, but nothing ever assigned
111
+ it. `env.assetsResolver` was always `undefined`, so `item.data` went out exactly
112
+ as stored. This fills that hook with a bunny.net token-authentication signer.
113
+
114
+ Signing happens strictly below `item.data`. The item hash stays
115
+ `blake2b(image bytes)`, so `captchaId`, `captchaContentId` and `datasetId` are
116
+ untouched and no dataset has to be rebuilt to adopt this — a signed URL is never
117
+ itself hashed. The resolver is constructed per request rather than per process,
118
+ so each challenge's URLs expire on their own clock and can optionally be bound
119
+ to the requesting IP via `ZoneSecurityIncludeHashRemoteIP`.
120
+
121
+ The scheme was checked against a live token-auth pull zone before being written:
122
+ a correctly signed URL returns 200, while a tampered token, an expired token,
123
+ and a token replayed against a different path all return 403. The token is bound
124
+ to its exact path, so one harvested URL cannot be rewritten across the pool.
125
+
126
+ Inactive unless `PROSOPO_ASSET_TOKEN_KEY` is set. Without it the resolver is
127
+ `undefined` and the response is byte-for-byte what it is today, so this can ship
128
+ ahead of the infrastructure change.
129
+
130
+ Ordering matters when it is switched on. The pull zone only excludes
131
+ `token`/`expires` from its cache key while token authentication is enabled: with
132
+ it on, repeated requests carrying different tokens still hit cache; with it off,
133
+ every distinct `expires` becomes its own cache entry and every image misses.
134
+ Enabling the zone first is worse still — unsigned requests 403 and image
135
+ captchas break — so the zone has to be switched over promptly after providers
136
+ begin signing, not before.
137
+ - Updated dependencies [929d99b]
138
+ - Updated dependencies [934fa5d]
139
+ - Updated dependencies [b2183f9]
140
+ - Updated dependencies [27f525e]
141
+ - Updated dependencies [af267c2]
142
+ - @prosopo/types@5.8.0
143
+ - @prosopo/types-database@5.5.0
144
+ - @prosopo/database@4.0.30
145
+ - @prosopo/web-bot-auth@0.1.0
146
+ - @prosopo/user-access-policy@3.14.0
147
+ - @prosopo/api@4.2.0
148
+ - @prosopo/api-express-router@3.1.84
149
+ - @prosopo/datasets@3.1.79
150
+ - @prosopo/env@3.6.53
151
+ - @prosopo/ipinfo@0.3.25
152
+ - @prosopo/keyring@2.9.86
153
+ - @prosopo/load-balancer@2.10.41
154
+ - @prosopo/types-env@2.10.46
155
+
3
156
  ## 5.8.1
4
157
  ### Patch Changes
5
158
 
@@ -4,7 +4,7 @@ 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
6
  import { HardBlockVerdictCache } from "./hardBlockVerdictCache.js";
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" | "browser" | "headerMatch">;
7
+ export declare const getRequestUserScope: (requestHeaders: Record<string, unknown>, ja4?: string, ip?: string, user?: string, headHash?: string, coords?: string, countryCode?: string, asn?: number, webBotAuthAgent?: string) => Pick<UserScopeRecord, "userId" | "ja4Hash" | "userAgent" | "ip" | "headHash" | "coords" | "countryCode" | "asn" | "os" | "browser" | "headerMatch" | "webBotAuthAgent">;
8
8
  export declare const normalizeHeadersForMatching: (headers: Record<string, unknown>) => Record<string, string>;
9
9
  export declare const rankCandidateRules: (rules: AccessRule[], request: UserScope, requestClientId: string | undefined, requestHeaders: Record<string, string>) => AccessRule[];
10
10
  export declare const getVerdictCache: () => HardBlockVerdictCache;
@@ -1 +1 @@
1
- {"version":3,"file":"blacklistRequestInspector.d.ts","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blacklistRequestInspector.d.ts","sourceRoot":"","sources":["../../src/api/blacklistRequestInspector.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { randomUUID } from "node:crypto";
6
6
  import { captchaPolicySeverity } from "@prosopo/captcha-severity";
7
7
  import { AccessPolicyType, FilterScopeMatch, HEADER_RULE_MARKER, accessRuleHeaderMatches, classifyBrowser, classifyOs, describeMatchedRule, makeAccessRuleHash, userScopeInput } from "@prosopo/user-access-policy";
8
8
  //#region src/api/blacklistRequestInspector.ts
9
- var getRequestUserScope = (requestHeaders, ja4, ip, user, headHash, coords, countryCode, asn) => {
9
+ var getRequestUserScope = (requestHeaders, ja4, ip, user, headHash, coords, countryCode, asn, webBotAuthAgent) => {
10
10
  const userAgent = requestHeaders["user-agent"] ? requestHeaders["user-agent"].toString() : void 0;
11
11
  return {
12
12
  ...user && { userId: user },
@@ -17,6 +17,7 @@ var getRequestUserScope = (requestHeaders, ja4, ip, user, headHash, coords, coun
17
17
  ...coords && { coords },
18
18
  ...countryCode && { countryCode },
19
19
  ...typeof asn === "number" && { asn },
20
+ ...webBotAuthAgent && { webBotAuthAgent },
20
21
  os: classifyOs(userAgent),
21
22
  browser: classifyBrowser(userAgent),
22
23
  headerMatch: HEADER_RULE_MARKER
@@ -39,7 +40,8 @@ var SCALAR_USER_SCOPE_FIELDS = [
39
40
  "asn",
40
41
  "os",
41
42
  "browser",
42
- "headerMatch"
43
+ "headerMatch",
44
+ "webBotAuthAgent"
43
45
  ];
44
46
  var deriveRuleType = (rule) => {
45
47
  const fields = [];
@@ -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":"handler.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAuCtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBA8yBG"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAuCtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBAy4BG"}