@prosopo/provider 5.6.3 → 5.6.4

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 (55) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +11 -11
  2. package/.turbo/turbo-build$colon$tsc.log +25 -25
  3. package/.turbo/turbo-build.log +11 -11
  4. package/CHANGELOG.md +64 -0
  5. package/dist/api/captcha/contextAwareValidation.d.ts +3 -2
  6. package/dist/api/captcha/contextAwareValidation.d.ts.map +1 -1
  7. package/dist/api/captcha/contextAwareValidation.js +32 -13
  8. package/dist/api/captcha/contextAwareValidation.js.map +1 -1
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.d.ts.map +1 -1
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js +4 -4
  11. package/dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js.map +1 -1
  12. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.d.ts.map +1 -1
  13. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js +14 -20
  14. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js.map +1 -1
  15. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  16. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +1 -0
  17. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  18. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
  19. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +2 -2
  20. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js.map +1 -1
  21. package/dist/api/captcha/getImageCaptchaChallenge.d.ts.map +1 -1
  22. package/dist/api/captcha/getImageCaptchaChallenge.js +2 -3
  23. package/dist/api/captcha/getImageCaptchaChallenge.js.map +1 -1
  24. package/dist/api/captcha/trafficFilterRequestTime.d.ts.map +1 -1
  25. package/dist/api/captcha/trafficFilterRequestTime.js +2 -2
  26. package/dist/api/captcha/trafficFilterRequestTime.js.map +1 -1
  27. package/dist/cjs/api/captcha/contextAwareValidation.cjs +31 -11
  28. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs +3 -3
  29. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs +12 -18
  30. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +1 -0
  31. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +1 -1
  32. package/dist/cjs/api/captcha/getImageCaptchaChallenge.cjs +1 -1
  33. package/dist/cjs/api/captcha/trafficFilterRequestTime.cjs +1 -1
  34. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +2 -2
  35. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  36. package/dist/tasks/frictionless/frictionlessTasks.js +3 -3
  37. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  38. package/dist/tasks/frictionless/routingMachine.d.ts +1 -0
  39. package/dist/tasks/frictionless/routingMachine.d.ts.map +1 -1
  40. package/dist/tasks/frictionless/routingMachine.js.map +1 -1
  41. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js +2 -0
  42. package/dist/tests/integration/api/admin/apiRegisterSiteKeyEndpoint.integration.test.js.map +1 -1
  43. package/dist/tests/integration/clientSettingsPersistence.integration.test.js +2 -0
  44. package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
  45. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js +1 -0
  46. package/dist/tests/unit/api/admin/apiRegisterSiteKeyEndpoint.unit.test.js.map +1 -1
  47. package/dist/tests/unit/api/contextAwareValidation.unit.test.js +88 -67
  48. package/dist/tests/unit/api/contextAwareValidation.unit.test.js.map +1 -1
  49. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js +55 -105
  50. package/dist/tests/unit/api/getFrictionlessCaptchaChallenge.unit.test.js.map +1 -1
  51. package/dist/tests/unit/tasks/captchaManager.unit.test.js +1 -0
  52. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  53. package/dist/tests/unit/tasks/frictionless/routerImageRoundsClamp.unit.test.js +22 -3
  54. package/dist/tests/unit/tasks/frictionless/routerImageRoundsClamp.unit.test.js.map +1 -1
  55. package/package.json +13 -13
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/provider@5.6.3 build:cjs
2
+ > @prosopo/provider@5.6.4 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -28,7 +28,6 @@ ViteCommonJSConfig: .
28
28
  ]
29
29
  }
30
30
  {
31
- 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.
32
31
  externals: [
33
32
  '@prosopo/api-route',
34
33
  '@prosopo/logger',
@@ -52,6 +51,7 @@ ViteCommonJSConfig: .
52
51
  '@prosopo/puzzle-assets'
53
52
  ]
54
53
  }
54
+ 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.
55
55
  vite v8.1.5 building ssr environment for production...
56
56
  Bundle build started
57
57
  
@@ -85,7 +85,6 @@ dist/cjs/api/admin/apiRegisterSiteKeysEndpoint.cjs 1
85
85
  dist/cjs/utils/normalizeRequestIp.cjs 1.16 kB │ gzip: 0.52 kB
86
86
  dist/cjs/api/admin/apiRemoveSiteKeysEndpoint.cjs 1.16 kB │ gzip: 0.50 kB
87
87
  dist/cjs/api/admin/apiRemoveSiteKeyEndpoint.cjs 1.17 kB │ gzip: 0.50 kB
88
- dist/cjs/api/captcha/contextAwareValidation.cjs 1.17 kB │ gzip: 0.46 kB
89
88
  dist/cjs/schedulers/captchaScheduler.cjs 1.21 kB │ gzip: 0.50 kB
90
89
  dist/cjs/api/block.cjs 1.28 kB │ gzip: 0.48 kB
91
90
  dist/cjs/schedulers/getClientList.cjs 1.28 kB │ gzip: 0.55 kB
@@ -113,6 +112,7 @@ dist/cjs/utils/honeypot/phraseBank.cjs 1
113
112
  dist/cjs/api/handshakeTimingMiddleware.cjs 1.88 kB │ gzip: 0.71 kB
114
113
  dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs 2.01 kB │ gzip: 0.78 kB
115
114
  dist/cjs/api/captcha/assignDetectorBundle.cjs 2.03 kB │ gzip: 0.86 kB
115
+ dist/cjs/api/captcha/contextAwareValidation.cjs 2.09 kB │ gzip: 0.90 kB
116
116
  dist/cjs/tasks/spam/updateSpamEmailDomains.cjs 2.12 kB │ gzip: 0.85 kB
117
117
  dist/cjs/tasks/frictionless/routingMachine.cjs 2.17 kB │ gzip: 0.91 kB
118
118
  dist/cjs/api/public.cjs 2.18 kB │ gzip: 0.91 kB
@@ -126,25 +126,25 @@ dist/cjs/api/captcha/checkSpamEmail.cjs 2
126
126
  dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs 2.77 kB │ gzip: 0.99 kB
127
127
  dist/cjs/api/captcha/maintenanceModeResponses.cjs 2.91 kB │ gzip: 0.77 kB
128
128
  dist/cjs/api/captcha/submitImageCaptchaSolution.cjs 2.93 kB │ gzip: 1.03 kB
129
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs 3.64 kB │ gzip: 1.35 kB
129
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs 3.66 kB │ gzip: 1.35 kB
130
130
  dist/cjs/api/admin/apiAdminRoutesProvider.cjs 3.67 kB │ gzip: 0.62 kB
131
131
  dist/cjs/api/rawTlsSignalsMiddleware.cjs 3.84 kB │ gzip: 1.16 kB
132
132
  dist/cjs/api/domainMiddleware.cjs 3.85 kB │ gzip: 1.26 kB
133
133
  dist/cjs/services/ipComparison.cjs 3.98 kB │ gzip: 1.20 kB
134
134
  dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs 4.03 kB │ gzip: 1.60 kB
135
- dist/cjs/api/captcha/trafficFilterRequestTime.cjs 4.12 kB │ gzip: 1.52 kB
136
135
  dist/cjs/tasks/spam/checkSpamEmail.cjs 4.14 kB │ gzip: 1.14 kB
136
+ dist/cjs/api/captcha/trafficFilterRequestTime.cjs 4.17 kB │ gzip: 1.53 kB
137
137
  dist/cjs/tasks/puzzle/puzzleRenderer.cjs 4.24 kB │ gzip: 1.51 kB
138
138
  dist/cjs/api/hardBlockVerdictCache.cjs 4.27 kB │ gzip: 1.70 kB
139
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs 4.44 kB │ gzip: 1.05 kB
140
139
  dist/cjs/api/captcha.cjs 4.51 kB │ gzip: 1.40 kB
140
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs 4.56 kB │ gzip: 1.07 kB
141
141
  dist/cjs/tasks/dnsEvent/enrichDnsEvent.cjs 4.84 kB │ gzip: 1.74 kB
142
142
  dist/cjs/index.cjs 4.85 kB │ gzip: 1.01 kB
143
143
  dist/cjs/tasks/tasks.cjs 5.07 kB │ gzip: 1.57 kB
144
144
  dist/cjs/util/usageCounters.cjs 5.72 kB │ gzip: 2.03 kB
145
145
  dist/cjs/tasks/puzzle/puzzleDifficulty.cjs 5.78 kB │ gzip: 2.05 kB
146
146
  dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs 6.65 kB │ gzip: 1.87 kB
147
- dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 7.01 kB │ gzip: 2.00 kB
147
+ dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 6.98 kB │ gzip: 1.99 kB
148
148
  dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs 7.48 kB │ gzip: 2.00 kB
149
149
  dist/cjs/api/metrics.cjs 7.51 kB │ gzip: 2.12 kB
150
150
  dist/cjs/tasks/spam/checkTrafficFilter.cjs 7.65 kB │ gzip: 2.55 kB
@@ -154,11 +154,11 @@ dist/cjs/api/startProviderApi.cjs 11
154
154
  dist/cjs/tasks/client/clientTasks.cjs 11.73 kB │ gzip: 3.04 kB
155
155
  dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs 12.32 kB │ gzip: 3.81 kB
156
156
  dist/cjs/api/blacklistRequestInspector.cjs 12.41 kB │ gzip: 4.31 kB
157
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs 12.53 kB │ gzip: 2.29 kB
157
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs 12.47 kB │ gzip: 2.26 kB
158
158
  dist/cjs/util.cjs 13.25 kB │ gzip: 3.22 kB
159
159
  dist/cjs/api/verify.cjs 13.86 kB │ gzip: 2.60 kB
160
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 18.28 kB │ gzip: 4.29 kB
161
- dist/cjs/tasks/frictionless/frictionlessTasks.cjs 20.36 kB │ gzip: 5.39 kB
160
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 18.33 kB │ gzip: 4.30 kB
161
+ dist/cjs/tasks/frictionless/frictionlessTasks.cjs 20.34 kB │ gzip: 5.38 kB
162
162
  dist/cjs/tasks/captchaManager.cjs 22.33 kB │ gzip: 6.35 kB
163
163
  dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 24.03 kB │ gzip: 5.15 kB
164
164
  dist/cjs/tasks/powCaptcha/powTasks.cjs 24.84 kB │ gzip: 5.97 kB
@@ -167,7 +167,7 @@ dist/cjs/tasks/detection/decodeBehavior.cjs 32
167
167
  dist/cjs/tasks/detection/decodeSimd.cjs 36.03 kB │ gzip: 11.96 kB
168
168
  dist/cjs/tasks/detection/decodePayload.cjs 49.79 kB │ gzip: 16.98 kB
169
169
 
170
- ✓ built in 194ms
170
+ ✓ built in 113ms
171
171
  [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
172
172
  [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
173
173
  [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.6.3 build:tsc
2
+ > @prosopo/provider@5.6.4 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 10:02:57 PM - Projects in this build:
5
+ 1:56:54 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../util/tsconfig.json
8
8
  * ../logger/tsconfig.json
@@ -26,49 +26,49 @@
26
26
  * ../puzzle-assets/tsconfig.json
27
27
  * tsconfig.json
28
28
 
29
- 10:02:57 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'
29
+ 1:56:54 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'
30
30
 
31
- 10:02:57 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
31
+ 1:56:54 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
32
32
 
33
- 10:02:57 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/logger.ts' is older than output '../logger/tsconfig.tsbuildinfo'
33
+ 1:56:54 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
34
34
 
35
- 10:02:57 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'
35
+ 1:56:54 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/index.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
36
36
 
37
- 10:02:57 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
37
+ 1:56:54 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
38
38
 
39
- 10:02:57 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'
39
+ 1:56:54 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'
40
40
 
41
- 10:02:57 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'
41
+ 1:56:54 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/index.ts' is older than output '../types/tsconfig.tsbuildinfo'
42
42
 
43
- 10:02:57 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
43
+ 1:56:54 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
44
44
 
45
- 10:02:57 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/types.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
45
+ 1:56:54 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
46
46
 
47
- 10:02:57 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'
47
+ 1:56:54 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'
48
48
 
49
- 10:02:57 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/tsconfig.tsbuildinfo'
49
+ 1:56:54 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
50
50
 
51
- 10:02:57 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'
51
+ 1:56:54 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/rule.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
52
52
 
53
- 10:02:57 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/index.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
53
+ 1:56:54 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/index.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
54
54
 
55
- 10:02:57 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/mongoGlobalSetup.ts' is older than output '../database/tsconfig.tsbuildinfo'
55
+ 1:56:54 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/mongoGlobalSetup.ts' is older than output '../database/tsconfig.tsbuildinfo'
56
56
 
57
- 10:02:57 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
57
+ 1:56:54 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
58
58
 
59
- 10:02:57 PM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/tests/typesEnv.test-d.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
59
+ 1:56:54 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'
60
60
 
61
- 10:02:57 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
61
+ 1:56:54 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/index.ts' is older than output '../env/tsconfig.tsbuildinfo'
62
62
 
63
- 10:02:57 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'
63
+ 1:56:54 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/tests/unit/testDoubles.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
64
64
 
65
- 10:02:57 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/tests/dataset.unit.test.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
65
+ 1:56:54 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
66
66
 
67
- 10:02:57 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'
67
+ 1:56:54 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'
68
68
 
69
- 10:02:57 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'
69
+ 1:56:54 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'
70
70
 
71
- 10:02:57 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
71
+ 1:56:54 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
72
72
 
73
- 10:02:57 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
73
+ 1:56:54 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
74
74
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/provider@5.6.3 build
2
+ > @prosopo/provider@5.6.4 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/provider@5.6.3 build:cross-env
6
+ > @prosopo/provider@5.6.4 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -89,7 +89,6 @@ dist/api/admin/apiRemoveSiteKeysEndpoint.js 1.07 k
89
89
  dist/api/admin/apiRegisterSiteKeysEndpoint.js 1.08 kB │ gzip: 0.50 kB
90
90
  dist/api/admin/apiRemoveSiteKeyEndpoint.js 1.08 kB │ gzip: 0.48 kB
91
91
  dist/api/block.js 1.08 kB │ gzip: 0.46 kB
92
- dist/api/captcha/contextAwareValidation.js 1.09 kB │ gzip: 0.45 kB
93
92
  dist/schedulers/captchaScheduler.js 1.11 kB │ gzip: 0.48 kB
94
93
  dist/utils/normalizeRequestIp.js 1.14 kB │ gzip: 0.52 kB
95
94
  dist/pairs.js 1.19 kB │ gzip: 0.58 kB
@@ -119,6 +118,7 @@ dist/tasks/spam/updateSpamEmailDomains.js 1.87 k
119
118
  dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
120
119
  dist/api/public.js 1.90 kB │ gzip: 0.83 kB
121
120
  dist/api/captcha/assignDetectorBundle.js 1.90 kB │ gzip: 0.84 kB
121
+ dist/api/captcha/contextAwareValidation.js 1.99 kB │ gzip: 0.88 kB
122
122
  dist/migrations/frictionlessLadder.js 2.12 kB │ gzip: 0.93 kB
123
123
  dist/tasks/puzzle/stratifiedSampler.js 2.14 kB │ gzip: 1.07 kB
124
124
  dist/tasks/frictionless/routingMachine.js 2.16 kB │ gzip: 0.91 kB
@@ -132,23 +132,23 @@ dist/api/forwardVerify.js 2.59 k
132
132
  dist/api/captcha/submitImageCaptchaSolution.js 2.59 kB │ gzip: 1.00 kB
133
133
  dist/api/admin/apiAdminRoutesProvider.js 2.78 kB │ gzip: 0.55 kB
134
134
  dist/index.js 2.86 kB │ gzip: 0.78 kB
135
- dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.38 kB │ gzip: 1.32 kB
135
+ dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.39 kB │ gzip: 1.32 kB
136
136
  dist/api/domainMiddleware.js 3.52 kB │ gzip: 1.22 kB
137
137
  dist/api/rawTlsSignalsMiddleware.js 3.69 kB │ gzip: 1.13 kB
138
138
  dist/tasks/spam/evaluateEmailSpamRules.js 3.84 kB │ gzip: 1.59 kB
139
- dist/api/captcha/trafficFilterRequestTime.js 3.89 kB │ gzip: 1.49 kB
140
139
  dist/tasks/puzzle/puzzleRenderer.js 3.90 kB │ gzip: 1.49 kB
140
+ dist/api/captcha/trafficFilterRequestTime.js 3.94 kB │ gzip: 1.51 kB
141
141
  dist/services/ipComparison.js 3.96 kB │ gzip: 1.19 kB
142
142
  dist/api/captcha.js 4.05 kB │ gzip: 1.31 kB
143
143
  dist/tasks/spam/checkSpamEmail.js 4.12 kB │ gzip: 1.12 kB
144
144
  dist/api/hardBlockVerdictCache.js 4.14 kB │ gzip: 1.69 kB
145
- dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js 4.26 kB │ gzip: 1.05 kB
145
+ dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js 4.35 kB │ gzip: 1.07 kB
146
146
  dist/tasks/tasks.js 4.69 kB │ gzip: 1.51 kB
147
147
  dist/tasks/dnsEvent/enrichDnsEvent.js 4.71 kB │ gzip: 1.72 kB
148
148
  dist/tasks/puzzle/puzzleDifficulty.js 5.50 kB │ gzip: 2.02 kB
149
149
  dist/util/usageCounters.js 5.65 kB │ gzip: 2.01 kB
150
150
  dist/api/captcha/getPoWCaptchaChallenge.js 6.02 kB │ gzip: 1.81 kB
151
- dist/api/captcha/getImageCaptchaChallenge.js 6.38 kB │ gzip: 1.95 kB
151
+ dist/api/captcha/getImageCaptchaChallenge.js 6.28 kB │ gzip: 1.94 kB
152
152
  dist/api/captcha/getPuzzleCaptchaChallenge.js 6.77 kB │ gzip: 1.95 kB
153
153
  dist/api/metrics.js 6.96 kB │ gzip: 2.09 kB
154
154
  dist/tasks/spam/checkTrafficFilter.js 7.32 kB │ gzip: 2.53 kB
@@ -156,13 +156,13 @@ dist/tasks/detection/bundlePool.js 8.30 k
156
156
  dist/api/captcha/submitPoWCaptchaSolution.js 8.37 kB │ gzip: 2.62 kB
157
157
  dist/api/startProviderApi.js 9.93 kB │ gzip: 3.42 kB
158
158
  dist/tasks/client/clientTasks.js 11.27 kB │ gzip: 3.00 kB
159
- dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 11.51 kB │ gzip: 2.27 kB
159
+ dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 11.34 kB │ gzip: 2.23 kB
160
160
  dist/api/blacklistRequestInspector.js 11.85 kB │ gzip: 4.28 kB
161
161
  dist/tasks/decisionMachine/decisionMachineRunner.js 11.93 kB │ gzip: 3.75 kB
162
162
  dist/api/verify.js 12.52 kB │ gzip: 2.49 kB
163
163
  dist/util.js 12.57 kB │ gzip: 3.17 kB
164
- dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 17.07 kB │ gzip: 4.20 kB
165
- dist/tasks/frictionless/frictionlessTasks.js 19.88 kB │ gzip: 5.37 kB
164
+ dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 17.12 kB │ gzip: 4.21 kB
165
+ dist/tasks/frictionless/frictionlessTasks.js 19.85 kB │ gzip: 5.35 kB
166
166
  dist/tasks/captchaManager.js 21.82 kB │ gzip: 6.29 kB
167
167
  dist/tasks/puzzleCaptcha/puzzleTasks.js 22.62 kB │ gzip: 5.11 kB
168
168
  dist/tasks/powCaptcha/powTasks.js 23.47 kB │ gzip: 5.93 kB
@@ -171,7 +171,7 @@ dist/tasks/detection/decodeBehavior.js 32.26 k
171
171
  dist/tasks/detection/decodeSimd.js 36.06 kB │ gzip: 12.00 kB
172
172
  dist/tasks/detection/decodePayload.js 49.69 kB │ gzip: 16.96 kB
173
173
 
174
- ✓ built in 212ms
174
+ ✓ built in 103ms
175
175
  [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
176
176
  [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
177
177
  [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,69 @@
1
1
  # @prosopo/provider
2
2
 
3
+ ## 5.6.4
4
+ ### Patch Changes
5
+
6
+ - a62b994: Context-aware validation buckets by device type, not just webview.
7
+
8
+ Context-aware validation compares a session's head SimHash against a baseline
9
+ for its context. That context was `default | webview`, which puts a phone and
10
+ a desktop in the same bucket — and those two emit genuinely different
11
+ `<head>`s, so the blended baseline matches neither well. Contexts are now the
12
+ device family crossed with the webview flag: `desktop`, `desktop-webview`,
13
+ `mobile`, `mobile-webview`, `tablet`, `tablet-webview`.
14
+
15
+ `desktop-webview` is included deliberately. Desktop webviews are a real and
16
+ notably fraudulent population here (see the Twickets desktop-webview rules),
17
+ and folding them into the plain `desktop` baseline would let exactly the
18
+ traffic we want excluded define what "normal desktop" looks like.
19
+
20
+ **Classification.** `deviceTypeFromUserAgent` in `@prosopo/types` is a
21
+ dependency-free UA classifier, deliberately not ua-parser-js: this module is
22
+ imported by the browser bundles, and the off-provider entropy sweep has to
23
+ bucket stored sessions *identically* or it writes baselines the decision
24
+ machine never looks up. One shared function keeps the two sides in lockstep.
25
+ Tablets are matched before phones because an iPad's UA carries a
26
+ `Mobile/<build>` token and an Android tablet is exactly "Android without
27
+ Mobile". Known gap, documented at the call site: an iPadOS 13+ Safari in
28
+ desktop mode identifies as a Mac and lands in `desktop` — nothing in the UA
29
+ separates it from a real Mac, and both sides make the same call, which is
30
+ what matters for the lookup.
31
+
32
+ **Back-compat.** `default` and `webview` remain valid `ContextType` members,
33
+ so settings already stored against them keep parsing. `expandContexts` maps a
34
+ legacy `default` onto the three non-webview families and a legacy `webview`
35
+ onto the three webview families, at the threshold they were saved with; an
36
+ explicit device entry always wins over the legacy entry covering it. Nothing
37
+ downstream of settings parsing branches on the legacy keys, and no data
38
+ migration is required.
39
+
40
+ **Behaviour change.** A request whose context is not configured now skips
41
+ context validation instead of borrowing another context's baseline.
42
+ Previously, configuring a single context validated *every* request against it
43
+ — with six contexts that would measure desktop traffic against a tablet
44
+ baseline and reject real users wholesale. `isContextConfigured` is the new
45
+ guard; `determineContextType` now takes the raw request UA alongside the
46
+ webview flag.
47
+
48
+ New site-key registrations default to all six device contexts.
49
+ - a447afa: Per-sitekey `imageMinRounds` alongside the existing `imageMaxRounds`.
50
+
51
+ Every source of an image round count — access-policy rules, traffic-filter categories, routing machines, the staleness curve, and the provider's own heuristics — is now clamped into `[imageMinRounds, imageMaxRounds]` via `clampImageRounds`, so the sitekey's settings override its rules in both directions rather than only capping them. `imageMinRounds` defaults to 2, matching the floor that was previously hard-coded, so existing sitekeys are unaffected.
52
+ - Updated dependencies [a62b994]
53
+ - Updated dependencies [a447afa]
54
+ - @prosopo/types@5.5.3
55
+ - @prosopo/types-database@5.3.4
56
+ - @prosopo/api@4.1.4
57
+ - @prosopo/api-express-router@3.1.80
58
+ - @prosopo/database@4.0.26
59
+ - @prosopo/datasets@3.1.76
60
+ - @prosopo/env@3.6.49
61
+ - @prosopo/ipinfo@0.3.21
62
+ - @prosopo/keyring@2.9.83
63
+ - @prosopo/load-balancer@2.10.38
64
+ - @prosopo/types-env@2.10.43
65
+ - @prosopo/user-access-policy@3.12.32
66
+
3
67
  ## 5.6.3
4
68
  ### Patch Changes
5
69
 
@@ -1,4 +1,5 @@
1
- import { ContextType, type IUserSettings } from "@prosopo/types";
2
- export declare function determineContextType(webView: boolean): ContextType;
1
+ import { type ContextType, type IUserSettings } from "@prosopo/types";
2
+ export declare function determineContextType(userAgent: string | undefined, webView: boolean): ContextType;
3
+ export declare function isContextConfigured(settings: IUserSettings, contextType: ContextType): boolean;
3
4
  export declare function getContextThreshold(settings: IUserSettings, contextType: ContextType): number;
4
5
  //# sourceMappingURL=contextAwareValidation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contextAwareValidation.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/contextAwareValidation.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,WAAW,EACX,KAAK,aAAa,EAElB,MAAM,gBAAgB,CAAC;AAOxB,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAElE;AAQD,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,WAAW,GACtB,MAAM,CAkBR"}
1
+ {"version":3,"file":"contextAwareValidation.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/contextAwareValidation.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,aAAa,EAIlB,MAAM,gBAAgB,CAAC;AAcxB,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,OAAO,GACd,WAAW,CAEb;AAWD,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,WAAW,GACtB,OAAO,CAIT;AAaD,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,WAAW,GACtB,MAAM,CAGR"}
@@ -1,26 +1,45 @@
1
- import { ContextType, contextAwareThresholdDefault } from "@prosopo/types";
1
+ import { contextAwareThresholdDefault, contextTypeFromSession, expandContexts } from "@prosopo/types";
2
2
  //#region src/api/captcha/contextAwareValidation.ts
3
3
  /**
4
- * Determines the context type based on the webView flag
4
+ * Determines the context a request belongs to — its device family crossed
5
+ * with whether it is running in a webview.
6
+ *
7
+ * `userAgent` is the raw header value, not the hashed one carried on the
8
+ * decrypted payload. The entropy sweep classifies stored sessions from the
9
+ * same header through the same function, so the two sides agree on which
10
+ * bucket a session lands in.
11
+ *
12
+ * @param userAgent - Raw `user-agent` request header
5
13
  * @param webView - Whether the request is from a WebView
6
- * @returns The context type (Webview or Default)
7
14
  */
8
- function determineContextType(webView) {
9
- return webView ? ContextType.Webview : ContextType.Default;
15
+ function determineContextType(userAgent, webView) {
16
+ return contextTypeFromSession(userAgent, webView);
10
17
  }
11
18
  /**
12
- * Gets the threshold for a specific context type from client settings
19
+ * Whether the client has this context configured.
20
+ *
21
+ * A context the customer has not enabled is not validated at all — the
22
+ * request passes through this stage untouched. That is a change from the
23
+ * pre-device-type behaviour, where configuring a single context validated
24
+ * *every* request against it: with six contexts, applying a tablet baseline
25
+ * to desktop traffic would reject real users wholesale.
26
+ */
27
+ function isContextConfigured(settings, contextType) {
28
+ return expandContexts(settings.contextAware?.contexts)[contextType] !== void 0;
29
+ }
30
+ /**
31
+ * Gets the threshold for a specific context type from client settings.
32
+ *
33
+ * Falls back to the global default when the context is unconfigured, so a
34
+ * caller that skipped `isContextConfigured` still gets a sane number rather
35
+ * than NaN.
36
+ *
13
37
  * @param settings - Client settings
14
38
  * @param contextType - The context type to get the threshold for
15
39
  * @returns The threshold for the context type, or the global threshold if not configured
16
40
  */
17
41
  function getContextThreshold(settings, contextType) {
18
- const contextAware = settings.contextAware;
19
- if (contextAware === void 0) return contextAwareThresholdDefault;
20
- const contexts = contextAware.contexts;
21
- let contextConfig;
22
- if (contexts !== void 0) contextConfig = contexts[contextType];
23
- return contextConfig?.threshold ?? contextAwareThresholdDefault;
42
+ return expandContexts(settings.contextAware?.contexts)[contextType]?.threshold ?? contextAwareThresholdDefault;
24
43
  }
25
44
  //#endregion
26
- export { determineContextType, getContextThreshold };
45
+ export { determineContextType, getContextThreshold, isContextConfigured };
@@ -1 +1 @@
1
- {"version":3,"file":"contextAwareValidation.js","sourceRoot":"","sources":["../../../src/api/captcha/contextAwareValidation.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,WAAW,EAEX,4BAA4B,GAC5B,MAAM,gBAAgB,CAAC;AAOxB,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACpD,OAAO,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;AAC5D,CAAC;AAQD,MAAM,UAAU,mBAAmB,CAClC,QAAuB,EACvB,WAAwB;IAExB,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC3C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;IACvC,IAAI,aAAmE,CAAC;IAExE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,aAAa,GACZ,QAGA,CAAC,WAAW,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,aAAa,EAAE,SAAS,IAAI,4BAA4B,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"contextAwareValidation.js","sourceRoot":"","sources":["../../../src/api/captcha/contextAwareValidation.ts"],"names":[],"mappings":"AAcA,OAAO,EAGN,4BAA4B,EAC5B,sBAAsB,EACtB,cAAc,GACd,MAAM,gBAAgB,CAAC;AAcxB,MAAM,UAAU,oBAAoB,CACnC,SAA6B,EAC7B,OAAgB;IAEhB,OAAO,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAWD,MAAM,UAAU,mBAAmB,CAClC,QAAuB,EACvB,WAAwB;IAExB,OAAO,CACN,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,WAAW,CAAC,KAAK,SAAS,CAC1E,CAAC;AACH,CAAC;AAaD,MAAM,UAAU,mBAAmB,CAClC,QAAuB,EACvB,WAAwB;IAExB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACjE,OAAO,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,IAAI,4BAA4B,CAAC;AACzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"accessPolicy.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACN,KAAK,UAAU,EACf,KAAK,SAAS,EAEd,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGrD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAI3B,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACrB,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAC5B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GACrC;IACA,OAAO,EAAE,KAAK,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;CAChC,CAAC;AAEL,eAAO,MAAM,kBAAkB,UACvB,iBAAiB,OACnB,QAAQ,KACX,OAAO,CAAC,mBAAmB,CA4K7B,CAAC"}
1
+ {"version":3,"file":"accessPolicy.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EAGpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACN,KAAK,UAAU,EACf,KAAK,SAAS,EAEd,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGrD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAI3B,gBAAgB,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACrB,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAC5B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GACrC;IACA,OAAO,EAAE,KAAK,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;CAChC,CAAC;AAEL,eAAO,MAAM,kBAAkB,UACvB,iBAAiB,OACnB,QAAQ,KACX,OAAO,CAAC,mBAAmB,CA4K7B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { FrictionlessReason as FrictionlessReason$1 } from "../../../tasks/frictionless/frictionlessTasks.js";
2
2
  import { attachHoneypot } from "./honeypotResponse.js";
3
- import { CaptchaType } from "@prosopo/types";
3
+ import { CaptchaType, clampImageRounds, resolveImageRoundsBounds } from "@prosopo/types";
4
4
  import { describeMatchedRule } from "@prosopo/user-access-policy";
5
5
  //#region src/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.ts
6
6
  var handleAccessPolicy = async (input, res) => {
@@ -32,7 +32,7 @@ var handleAccessPolicy = async (input, res) => {
32
32
  }
33
33
  }));
34
34
  await tasks.frictionlessManager.registerBlockedSession({
35
- solvedImagesCount: clientRecord.settings.imageMaxRounds,
35
+ solvedImagesCount: resolveImageRoundsBounds(clientRecord.settings).max,
36
36
  userSitekeyIpHash: input.userSitekeyIpHash,
37
37
  reason: FrictionlessReason$1.ACCESS_POLICY_BLOCK,
38
38
  siteKey: input.dapp,
@@ -56,7 +56,7 @@ var handleAccessPolicy = async (input, res) => {
56
56
  }
57
57
  }));
58
58
  await tasks.frictionlessManager.registerBlockedSession({
59
- solvedImagesCount: clientRecord.settings.imageMaxRounds,
59
+ solvedImagesCount: resolveImageRoundsBounds(clientRecord.settings).max,
60
60
  userSitekeyIpHash: input.userSitekeyIpHash,
61
61
  reason: FrictionlessReason$1.AUTO_BAN_SCORE,
62
62
  siteKey: input.dapp,
@@ -88,7 +88,7 @@ var handleAccessPolicy = async (input, res) => {
88
88
  handled: true,
89
89
  response: res.json(await tasks.frictionlessManager.sendImageCaptcha({
90
90
  ...captchaTypeBaseParams,
91
- solvedImagesCount: userAccessPolicy.solvedImagesCount ? Math.min(userAccessPolicy.solvedImagesCount, clientRecord.settings.imageMaxRounds) : clientRecord.settings.imageMaxRounds
91
+ solvedImagesCount: userAccessPolicy.solvedImagesCount ? clampImageRounds(userAccessPolicy.solvedImagesCount, clientRecord.settings) : resolveImageRoundsBounds(clientRecord.settings).max
92
92
  }))
93
93
  };
94
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accessPolicy.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accessPolicy.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"decisionMachine.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.ts"],"names":[],"mappings":"AAeA,OAAO,EAGN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAM5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAgBrD,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,mBAAmB,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE,MAAM,CAAC;IAIrB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,kBAAkB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAIzC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAI/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,KAAK,aAAa,GAAG;IACpB,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAChC,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACnB,CAAC;AAKF,eAAO,MAAM,kBAAkB,UACvB,oBAAoB,UACnB,aAAa,KACnB,OAAO,CAAC,OAAO,CAuVjB,CAAC"}
1
+ {"version":3,"file":"decisionMachine.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.ts"],"names":[],"mappings":"AAeA,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EAGpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAM5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAiBrD,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,mBAAmB,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE,MAAM,CAAC;IAIrB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,kBAAkB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAIzC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAI/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF,KAAK,aAAa,GAAG;IACpB,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAAC;IAChC,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACnB,CAAC;AAKF,eAAO,MAAM,kBAAkB,UACvB,oBAAoB,UACnB,aAAa,KACnB,OAAO,CAAC,OAAO,CA0VjB,CAAC"}