@prosopo/provider 5.0.0 → 5.0.3

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 (104) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +15 -15
  2. package/.turbo/turbo-build$colon$tsc.log +24 -24
  3. package/.turbo/turbo-build.log +16 -16
  4. package/CHANGELOG.md +99 -0
  5. package/dist/api/captcha/assignDetectorBundle.d.ts.map +1 -1
  6. package/dist/api/captcha/assignDetectorBundle.js +2 -3
  7. package/dist/api/captcha/assignDetectorBundle.js.map +1 -1
  8. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts +2 -0
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.d.ts.map +1 -1
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/constants.js.map +1 -1
  11. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.d.ts +1 -0
  12. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.d.ts.map +1 -1
  13. package/dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js +38 -0
  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 +9 -6
  17. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  18. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts +2 -2
  19. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.d.ts.map +1 -1
  20. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js +34 -37
  21. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js.map +1 -1
  22. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js +11 -20
  23. package/dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.powFallback.test.js.map +1 -1
  24. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  25. package/dist/api/captcha/submitPoWCaptchaSolution.js +1 -1
  26. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  27. package/dist/api/startProviderApi.d.ts.map +1 -1
  28. package/dist/api/startProviderApi.js +29 -14
  29. package/dist/api/startProviderApi.js.map +1 -1
  30. package/dist/api/verify.d.ts.map +1 -1
  31. package/dist/api/verify.js +1 -1
  32. package/dist/api/verify.js.map +1 -1
  33. package/dist/cjs/api/captcha/assignDetectorBundle.cjs +2 -3
  34. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs +38 -0
  35. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +8 -5
  36. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs +34 -37
  37. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +1 -1
  38. package/dist/cjs/api/startProviderApi.cjs +29 -14
  39. package/dist/cjs/api/verify.cjs +1 -1
  40. package/dist/cjs/tasks/captchaManager.cjs +60 -14
  41. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +2 -1
  42. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +32 -2
  43. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +32 -2
  44. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +35 -3
  45. package/dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs +23 -0
  46. package/dist/tasks/captchaManager.d.ts +1 -0
  47. package/dist/tasks/captchaManager.d.ts.map +1 -1
  48. package/dist/tasks/captchaManager.js +60 -14
  49. package/dist/tasks/captchaManager.js.map +1 -1
  50. package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -1
  51. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  52. package/dist/tasks/frictionless/frictionlessTasks.js +2 -1
  53. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  54. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  55. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +33 -3
  56. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  57. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  58. package/dist/tasks/powCaptcha/powTasks.js +33 -3
  59. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  60. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts +2 -2
  61. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  62. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +35 -3
  63. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  64. package/dist/tasks/spam/evaluateEmailSpamRules.d.ts +1 -0
  65. package/dist/tasks/spam/evaluateEmailSpamRules.d.ts.map +1 -1
  66. package/dist/tasks/spam/evaluateEmailSpamRules.js +23 -1
  67. package/dist/tasks/spam/evaluateEmailSpamRules.js.map +1 -1
  68. package/dist/tests/integration/clientSettingsPersistence.integration.test.js +23 -1
  69. package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
  70. package/dist/tests/integration/decisionMachines.integration.test.js +3 -56
  71. package/dist/tests/integration/decisionMachines.integration.test.js.map +1 -1
  72. package/dist/tests/integration/escalationPeekBeforeConsume.integration.test.js +2 -2
  73. package/dist/tests/integration/escalationPeekBeforeConsume.integration.test.js.map +1 -1
  74. package/dist/tests/integration/imgCaptcha.integration.test.js +3 -56
  75. package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -1
  76. package/dist/tests/integration/maintenanceModeAdmin.integration.test.js +2 -1
  77. package/dist/tests/integration/maintenanceModeAdmin.integration.test.js.map +1 -1
  78. package/dist/tests/integration/powCaptcha.integration.test.js +3 -56
  79. package/dist/tests/integration/powCaptcha.integration.test.js.map +1 -1
  80. package/dist/tests/integration/routingDecisionMachines.integration.test.js +2 -2
  81. package/dist/tests/integration/routingDecisionMachines.integration.test.js.map +1 -1
  82. package/dist/tests/integration/testUtils.d.ts +1 -0
  83. package/dist/tests/integration/testUtils.d.ts.map +1 -1
  84. package/dist/tests/integration/testUtils.js +14 -0
  85. package/dist/tests/integration/testUtils.js.map +1 -1
  86. package/dist/tests/integration/testUtils.unit.test.d.ts +2 -0
  87. package/dist/tests/integration/testUtils.unit.test.d.ts.map +1 -0
  88. package/dist/tests/integration/testUtils.unit.test.js +30 -0
  89. package/dist/tests/integration/testUtils.unit.test.js.map +1 -0
  90. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.unit.test.js +50 -0
  91. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.unit.test.js.map +1 -1
  92. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.unit.test.js +53 -1
  93. package/dist/tests/unit/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.unit.test.js.map +1 -1
  94. package/dist/tests/unit/tasks/captchaManager.unit.test.js +178 -0
  95. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  96. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +99 -0
  97. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -1
  98. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +108 -0
  99. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
  100. package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js +102 -0
  101. package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js.map +1 -1
  102. package/dist/tests/unit/tasks/spam/evaluateEmailSpamRules.unit.test.js +37 -1
  103. package/dist/tests/unit/tasks/spam/evaluateEmailSpamRules.unit.test.js.map +1 -1
  104. package/package.json +19 -19
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/provider@5.0.0 build:cjs
2
+ > @prosopo/provider@5.0.3 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -107,7 +107,7 @@ dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs 1
107
107
  dist/cjs/utils/honeypot/phraseBank.cjs 1.87 kB │ gzip: 0.91 kB
108
108
  dist/cjs/api/handshakeTimingMiddleware.cjs 1.88 kB │ gzip: 0.71 kB
109
109
  dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs 2.01 kB │ gzip: 0.78 kB
110
- dist/cjs/api/captcha/assignDetectorBundle.cjs 2.09 kB │ gzip: 0.89 kB
110
+ dist/cjs/api/captcha/assignDetectorBundle.cjs 2.03 kB │ gzip: 0.86 kB
111
111
  dist/cjs/tasks/spam/updateSpamEmailDomains.cjs 2.12 kB │ gzip: 0.85 kB
112
112
  dist/cjs/tasks/frictionless/routingMachine.cjs 2.17 kB │ gzip: 0.91 kB
113
113
  dist/cjs/api/public.cjs 2.18 kB │ gzip: 0.91 kB
@@ -117,12 +117,12 @@ dist/cjs/utils/dns.cjs 2
117
117
  dist/cjs/api/forwardVerify.cjs 2.66 kB │ gzip: 1.12 kB
118
118
  dist/cjs/api/captcha/checkSpamEmail.cjs 2.73 kB │ gzip: 0.95 kB
119
119
  dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs 2.77 kB │ gzip: 0.99 kB
120
- dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs 2.92 kB │ gzip: 1.21 kB
121
120
  dist/cjs/api/captcha/submitImageCaptchaSolution.cjs 2.93 kB │ gzip: 1.03 kB
122
121
  dist/cjs/api/admin/apiAdminRoutesProvider.cjs 3.48 kB │ gzip: 0.59 kB
123
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs 3.69 kB │ gzip: 1.43 kB
122
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs 3.57 kB │ gzip: 1.33 kB
124
123
  dist/cjs/api/domainMiddleware.cjs 3.85 kB │ gzip: 1.26 kB
125
124
  dist/cjs/services/ipComparison.cjs 3.98 kB │ gzip: 1.20 kB
125
+ dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs 4.03 kB │ gzip: 1.60 kB
126
126
  dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs 4.13 kB │ gzip: 0.98 kB
127
127
  dist/cjs/tasks/spam/checkSpamEmail.cjs 4.14 kB │ gzip: 1.14 kB
128
128
  dist/cjs/api/hardBlockVerdictCache.cjs 4.21 kB │ gzip: 1.67 kB
@@ -135,28 +135,28 @@ dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs 5
135
135
  dist/cjs/tasks/spam/checkTrafficFilter.cjs 5.82 kB │ gzip: 2.06 kB
136
136
  dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 6.06 kB │ gzip: 1.82 kB
137
137
  dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs 6.08 kB │ gzip: 1.73 kB
138
- dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs 6.50 kB │ gzip: 2.12 kB
138
+ dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs 6.52 kB │ gzip: 2.12 kB
139
139
  dist/cjs/api/ja4.cjs 7.11 kB │ gzip: 2.25 kB
140
140
  dist/cjs/api/metrics.cjs 7.51 kB │ gzip: 2.12 kB
141
141
  dist/cjs/tasks/detection/bundlePool.cjs 8.72 kB │ gzip: 3.26 kB
142
142
  dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs 9.67 kB │ gzip: 2.91 kB
143
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs 10.24 kB │ gzip: 2.09 kB
144
- dist/cjs/api/startProviderApi.cjs 10.89 kB │ gzip: 3.41 kB
143
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs 11.45 kB │ gzip: 2.16 kB
144
+ dist/cjs/api/startProviderApi.cjs 11.46 kB │ gzip: 3.67 kB
145
145
  dist/cjs/api/blacklistRequestInspector.cjs 12.12 kB │ gzip: 4.23 kB
146
146
  dist/cjs/tasks/client/clientTasks.cjs 12.86 kB │ gzip: 3.10 kB
147
- dist/cjs/api/verify.cjs 13.26 kB │ gzip: 2.55 kB
147
+ dist/cjs/api/verify.cjs 13.29 kB │ gzip: 2.55 kB
148
148
  dist/cjs/util.cjs 13.60 kB │ gzip: 3.22 kB
149
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 15.25 kB │ gzip: 3.71 kB
150
- dist/cjs/tasks/frictionless/frictionlessTasks.cjs 16.00 kB │ gzip: 4.30 kB
151
- dist/cjs/tasks/captchaManager.cjs 18.24 kB │ gzip: 5.23 kB
152
- dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 18.75 kB │ gzip: 4.31 kB
153
- dist/cjs/tasks/powCaptcha/powTasks.cjs 21.21 kB │ gzip: 5.25 kB
154
- dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs 25.13 kB │ gzip: 5.88 kB
149
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 15.34 kB │ gzip: 3.76 kB
150
+ dist/cjs/tasks/frictionless/frictionlessTasks.cjs 16.06 kB │ gzip: 4.32 kB
151
+ dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 20.09 kB │ gzip: 4.58 kB
152
+ dist/cjs/tasks/captchaManager.cjs 21.08 kB │ gzip: 6.04 kB
153
+ dist/cjs/tasks/powCaptcha/powTasks.cjs 22.37 kB │ gzip: 5.48 kB
154
+ dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs 26.33 kB │ gzip: 6.09 kB
155
155
  dist/cjs/tasks/detection/decodeBehavior.cjs 32.24 kB │ gzip: 10.32 kB
156
156
  dist/cjs/tasks/detection/decodeSimd.cjs 36.03 kB │ gzip: 11.96 kB
157
157
  dist/cjs/tasks/detection/decodePayload.cjs 46.70 kB │ gzip: 14.64 kB
158
158
 
159
- ✓ built in 183ms
159
+ ✓ built in 162ms
160
160
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeBehavior.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodeBehavior.js
161
161
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodePayload.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodePayload.js
162
162
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeSimd.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodeSimd.js
@@ -1,8 +1,8 @@
1
1
 
2
- > @prosopo/provider@5.0.0 build:tsc
2
+ > @prosopo/provider@5.0.3 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 11:10:57 AM - Projects in this build:
5
+ 5:53:58 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../util/tsconfig.json
8
8
  * ../logger/tsconfig.json
@@ -25,47 +25,47 @@
25
25
  * ../load-balancer/tsconfig.json
26
26
  * tsconfig.json
27
27
 
28
- 11:10:57 AM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
28
+ 5:53:58 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
29
 
30
- 11:10:57 AM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
30
+ 5:53:58 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
31
31
 
32
- 11:10:57 AM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
32
+ 5:53:58 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
33
33
 
34
- 11:10:57 AM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/apiRoutes.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
34
+ 5:53:58 PM - Project '../api-route/tsconfig.json' is up to date because newest input '../api-route/src/apiRoutes.ts' is older than output '../api-route/tsconfig.tsbuildinfo'
35
35
 
36
- 11:10:57 AM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
36
+ 5:53:58 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
37
37
 
38
- 11:10:57 AM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
38
+ 5:53:58 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
39
 
40
- 11:10:57 AM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
40
+ 5:53:58 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
41
 
42
- 11:10:57 AM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/utils/batches.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
42
+ 5:53:58 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/error.ts' is older than output '../common/tsconfig.tsbuildinfo'
43
43
 
44
- 11:10:57 AM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/types.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
44
+ 5:53:58 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
45
45
 
46
- 11:10:57 AM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
46
+ 5:53:58 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/redisClient.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
47
47
 
48
- 11:10:57 AM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
48
+ 5:53:58 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
49
49
 
50
- 11:10:57 AM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/ruleRecord.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
50
+ 5:53:58 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/ruleRecord.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
51
51
 
52
- 11:10:57 AM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types/captcha.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
52
+ 5:53:58 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types/captcha.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
53
53
 
54
- 11:10:57 AM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/mongoGlobalSetup.ts' is older than output '../database/tsconfig.tsbuildinfo'
54
+ 5:53:58 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/unit/redisCacheEscalation.unit.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
55
55
 
56
- 11:10:57 AM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
56
+ 5:53:59 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'
57
57
 
58
- 11:10:57 AM - 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'
58
+ 5:53:59 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'
59
59
 
60
- 11:10:57 AM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
60
+ 5:53:59 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/index.ts' is older than output '../env/tsconfig.tsbuildinfo'
61
61
 
62
- 11:10:57 AM - 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'
62
+ 5:53:59 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'
63
63
 
64
- 11:10:57 AM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
64
+ 5:53:59 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
65
65
 
66
- 11:10:57 AM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/tests/providers.unit.test.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
66
+ 5:53:59 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
67
 
68
- 11:10:57 AM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
68
+ 5:53:59 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
69
69
 
70
- 11:10:57 AM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
70
+ 5:53:59 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
71
71
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/provider@5.0.0 build
2
+ > @prosopo/provider@5.0.3 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/provider@5.0.0 build:cross-env
6
+ > @prosopo/provider@5.0.3 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -114,7 +114,7 @@ dist/api/captcha/maintenanceModeResponses.js 1.76 k
114
114
  dist/tasks/spam/updateSpamEmailDomains.js 1.87 kB │ gzip: 0.77 kB
115
115
  dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
116
116
  dist/api/public.js 1.90 kB │ gzip: 0.83 kB
117
- dist/api/captcha/assignDetectorBundle.js 1.96 kB │ gzip: 0.87 kB
117
+ dist/api/captcha/assignDetectorBundle.js 1.90 kB │ gzip: 0.84 kB
118
118
  dist/tasks/frictionless/routingMachine.js 2.16 kB │ gzip: 0.91 kB
119
119
  dist/utils/dns.js 2.36 kB │ gzip: 0.95 kB
120
120
  dist/api/admin/apiDnsEventEndpoint.js 2.43 kB │ gzip: 0.96 kB
@@ -123,10 +123,10 @@ dist/api/captcha/submitPuzzleCaptchaSolution.js 2.55 k
123
123
  dist/api/forwardVerify.js 2.59 kB │ gzip: 1.10 kB
124
124
  dist/api/captcha/submitImageCaptchaSolution.js 2.59 kB │ gzip: 1.00 kB
125
125
  dist/api/admin/apiAdminRoutesProvider.js 2.64 kB │ gzip: 0.53 kB
126
- dist/tasks/spam/evaluateEmailSpamRules.js 2.77 kB │ gzip: 1.20 kB
127
126
  dist/index.js 2.78 kB │ gzip: 0.76 kB
128
- dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.44 kB │ gzip: 1.40 kB
127
+ dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.32 kB │ gzip: 1.30 kB
129
128
  dist/api/domainMiddleware.js 3.52 kB │ gzip: 1.22 kB
129
+ dist/tasks/spam/evaluateEmailSpamRules.js 3.84 kB │ gzip: 1.59 kB
130
130
  dist/services/ipComparison.js 3.96 kB │ gzip: 1.19 kB
131
131
  dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js 3.99 kB │ gzip: 0.99 kB
132
132
  dist/api/captcha.js 4.05 kB │ gzip: 1.31 kB
@@ -139,28 +139,28 @@ dist/api/captcha/getPuzzleCaptchaChallenge.js 5.48 k
139
139
  dist/api/captcha/getImageCaptchaChallenge.js 5.52 kB │ gzip: 1.78 kB
140
140
  dist/tasks/spam/checkTrafficFilter.js 5.63 kB │ gzip: 2.05 kB
141
141
  dist/util/usageCounters.js 5.65 kB │ gzip: 2.01 kB
142
- dist/api/captcha/submitPoWCaptchaSolution.js 6.18 kB │ gzip: 2.09 kB
142
+ dist/api/captcha/submitPoWCaptchaSolution.js 6.21 kB │ gzip: 2.09 kB
143
143
  dist/api/metrics.js 6.96 kB │ gzip: 2.09 kB
144
144
  dist/api/ja4.js 7.06 kB │ gzip: 2.23 kB
145
145
  dist/tasks/detection/bundlePool.js 8.30 kB │ gzip: 3.21 kB
146
- dist/api/startProviderApi.js 9.25 kB │ gzip: 3.14 kB
147
146
  dist/tasks/decisionMachine/decisionMachineRunner.js 9.40 kB │ gzip: 2.86 kB
148
- dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 9.41 kB │ gzip: 2.06 kB
147
+ dist/api/startProviderApi.js 9.82 kB │ gzip: 3.40 kB
148
+ dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 10.48 kB │ gzip: 2.13 kB
149
149
  dist/api/blacklistRequestInspector.js 11.57 kB │ gzip: 4.19 kB
150
- dist/api/verify.js 12.03 kB │ gzip: 2.44 kB
150
+ dist/api/verify.js 12.07 kB │ gzip: 2.44 kB
151
151
  dist/tasks/client/clientTasks.js 12.33 kB │ gzip: 3.07 kB
152
152
  dist/util.js 12.92 kB │ gzip: 3.16 kB
153
- dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 14.35 kB │ gzip: 3.65 kB
154
- dist/tasks/frictionless/frictionlessTasks.js 15.60 kB │ gzip: 4.28 kB
155
- dist/tasks/captchaManager.js 17.75 kB │ gzip: 5.17 kB
156
- dist/tasks/puzzleCaptcha/puzzleTasks.js 17.93 kB │ gzip: 4.28 kB
157
- dist/tasks/powCaptcha/powTasks.js 20.17 kB │ gzip: 5.21 kB
158
- dist/tasks/imgCaptcha/imgCaptchaTasks.js 23.91 kB │ gzip: 5.83 kB
153
+ dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 14.44 kB │ gzip: 3.69 kB
154
+ dist/tasks/frictionless/frictionlessTasks.js 15.66 kB │ gzip: 4.29 kB
155
+ dist/tasks/puzzleCaptcha/puzzleTasks.js 19.16 kB │ gzip: 4.55 kB
156
+ dist/tasks/captchaManager.js 20.59 kB │ gzip: 5.97 kB
157
+ dist/tasks/powCaptcha/powTasks.js 21.27 kB │ gzip: 5.45 kB
158
+ dist/tasks/imgCaptcha/imgCaptchaTasks.js 25.03 kB │ gzip: 6.05 kB
159
159
  dist/tasks/detection/decodeBehavior.js 32.26 kB │ gzip: 10.34 kB
160
160
  dist/tasks/detection/decodeSimd.js 36.06 kB │ gzip: 12.00 kB
161
161
  dist/tasks/detection/decodePayload.js 46.69 kB │ gzip: 14.66 kB
162
162
 
163
- ✓ built in 178ms
163
+ ✓ built in 154ms
164
164
  [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
165
165
  [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
166
166
  [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,104 @@
1
1
  # @prosopo/provider
2
2
 
3
+ ## 5.0.3
4
+ ### Patch Changes
5
+
6
+ - d6cb841: fix(provider): promote bundleId onto bypass-path sessions so SIMD / BDP attach can decrypt
7
+
8
+ Sitekeys configured with a fixed `captchaType` (`pow` / `image` / `puzzle`) short-circuit
9
+ the frictionless bot-detection path via `runConfiguredCaptchaTypeShortCircuit` and build
10
+ their session via `buildBypassSessionParams`. Before this fix, that helper never wrote a
11
+ `bundleId` onto the session, so every subsequent `decryptAndAttachSimdReadingsIfAbsent`
12
+ call at `/captcha/{type}` and solution-submit resolved `bundle=undefined` and silently
13
+ dropped the ciphertext — SIMD readings and behavioural data never landed on the session
14
+ or the powcaptcha record for these sitekeys.
15
+
16
+ The fix resolves the widget's `detectorSessionId` → `bundleId` via the existing Redis
17
+ binding and promotes it onto the bypass session so the attach path finds the correct
18
+ keypair. Empty-pool PoW fallback continues to no-op (no detector was assigned).
19
+ - fa0d494: fix(provider): session captchaType takes precedence over restrict-policy captchaType at `/captcha/{type}` gate
20
+
21
+ `isValidRequest` was rejecting `/captcha/{type}` calls whenever an active restrict-to-image rule pinned a different captchaType from the one the widget requested — even when a valid session existed that had been minted legitimately before the rule appeared. The check ran before the sessionId lookup, so any anomaly detector inserting a rule between the widget's `/frictionless` response and its `/captcha/pow` call surfaced as `INCORRECT_CAPTCHA_TYPE` (400).
22
+
23
+ Observed impact: ~150/hr fleet-wide, concentrated on pimeyes / eyematch / …RsJ2zsy39, with the `IP_CLIENT_CROSSOVER` detector as the most common trigger (24h aggregation, restrict-to-image, global clientId).
24
+
25
+ Fix: session record is authoritative for captchaType when a sessionId is present. The policy still fires at verify time via `decisionMachineRunner` + `checkForHardBlock`. Sessionless requests still enforce the policy captchaType (preserves the pre-fix behaviour for direct-entry callers).
26
+
27
+ Regression guards added to `captchaManager.unit.test.ts`:
28
+ - session's captchaType wins when a restrict policy materialises mid-flight
29
+ - session with mismatched captchaType still rejects (not the policy-race case)
30
+ - sessionless request still rejected on policy captchaType mismatch
31
+ - sessionless request with matching policy captchaType passes
32
+ - d6cb841: feat(provider,database,types): session chain — escalations reference origin, DM-input reads walk back for missing fields
33
+
34
+ Adds `originSessionId` to the Session schema and populates it on escalation sessions in `submitPoWCaptchaSolution.buildEscalation`. Adds `CaptchaManager.getSessionRecordWithOriginFallback` — a session reader that, when the record is an escalation missing an inherently-origin-populated field (`simdReadings`, `dnsEvent`, `entropyMathRandom*`, `entropyCrypto*`, `entropyWallClockOffsetMs`), reads the origin session and fills the gap. Escalation-owned fields (`captchaType`, `sessionId`, `score`, `ipInfo`, `headers`, etc.) are never overridden.
35
+
36
+ The three `serverVerify*CaptchaSolution` methods now use the walker instead of the raw `getSessionRecordBySessionId`, so decision-machine inputs on escalated puzzle / image sessions see the origin's SIMD readings and DNS event.
37
+
38
+ Fixes the write-time race between (a) the origin's fire-and-forget SIMD attach via `scheduleMongoSimdReadingsUpdate` on pow-submit, and (b) `buildEscalation`'s immediate Mongo read — which left ~97% of escalation sessions with no `dnsEvent` and ~97% with no `simdReadings`, in turn tripping decide-machine deny rules (SIMD_ABSENT etc.) on legit escalation flows.
39
+
40
+ Non-escalation sessions and older escalation records without `originSessionId` fall through as a no-op — no behavior change. Extra Mongo read only fires when the escalation is actually missing a fallback-eligible field.
41
+ - Updated dependencies [d6cb841]
42
+ - @prosopo/database@4.0.3
43
+ - @prosopo/types-database@5.0.2
44
+ - @prosopo/types@5.0.2
45
+ - @prosopo/env@3.6.26
46
+ - @prosopo/types-env@2.10.22
47
+ - @prosopo/api@4.0.2
48
+ - @prosopo/api-express-router@3.1.57
49
+ - @prosopo/datasets@3.1.58
50
+ - @prosopo/ipinfo@0.3.3
51
+ - @prosopo/keyring@2.9.65
52
+ - @prosopo/load-balancer@2.10.19
53
+ - @prosopo/user-access-policy@3.12.13
54
+
55
+ ## 5.0.2
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [1fba42e]
59
+ - @prosopo/database@4.0.2
60
+ - @prosopo/env@3.6.25
61
+ - @prosopo/api-express-router@3.1.56
62
+
63
+ ## 5.0.1
64
+ ### Patch Changes
65
+
66
+ - ce2ac41: `startProviderApi` now resolves once the server is actually listening, and rejects if the bind fails. It previously returned the server straight from `.listen()`, which resolves before the socket is bound — a bind failure such as `EADDRINUSE` then surfaced as an `'error'` event with nothing waiting on it, i.e. an uncaught exception rather than a rejection the caller could handle.
67
+
68
+ Integration suites reserve a port from the OS instead of guessing one. Six suites picked a port from `process.pid` plus a random offset with no availability check, while CI runs a real provider alongside the tests; a collision failed the whole run with an uncaught `EADDRINUSE` even though every test passed. The retry loops that tried to work around this are gone — they retried into another unchecked port and, because the failure was never a rejection, never ran at all.
69
+ - 2aabe73: Remove the client-controlled `detectorUnavailable` frictionless bypass. A client could set the flag and be handed a PoW challenge without any detection running. The flag is gone from the wire format, the API client and the widget; the only remaining bypasses are provider-side (maintenance mode, empty detector bundle pool).
70
+
71
+ The frictionless decision machine now gates on payload presence after the access-rule ladder: no token serves a 3-round image captcha, a token without its head hash serves a 2-round one.
72
+ - bcef918: Adds a per-email submission-count rate limit on the verify pipeline. Site operators can now cap how many server-checked captcha submissions any one normalised email (Gmail dot / `+tag` tricks collapsed across providers) may back before further submissions from that address are rejected with `API.SPAM_EMAIL_COUNT_EXCEEDED`.
73
+
74
+ - New `spamFilter.emailRules.maxEmailSubmissionCount` (int, min 1, optional) on `ClientSettingsSchema`.
75
+ - New `metadata.emailNormalised` field on all three captcha records (image / PoW / puzzle) — written alongside `metadata.email` whenever `storeMetadata` is on. Backed by a partial index (`spamEmailCount_partial`) on each collection.
76
+ - New DB method `countCommitmentsByNormalisedEmail(dappAccount, emailNormalised)` sums the three per-collection counts so limits span captcha types.
77
+ - Puzzle verify gains a `spamFilter` parameter to bring it to parity with img/pow for the count check.
78
+ - English + all 31 non-English locales gain the `API.SPAM_EMAIL_COUNT_EXCEEDED` translation.
79
+ - Fixes silent-drift bug: `UserSettingsSchema.spamFilter.emailRules` was missing `maxEmailSubmissionCount` on the mongoose side, which strict mode would have dropped on `$set`.
80
+ - Updated dependencies [38396b4]
81
+ - Updated dependencies [9fec7bd]
82
+ - Updated dependencies [2aabe73]
83
+ - Updated dependencies [bcef918]
84
+ - @prosopo/env@3.6.24
85
+ - @prosopo/common@3.1.49
86
+ - @prosopo/types@5.0.1
87
+ - @prosopo/api@4.0.1
88
+ - @prosopo/logger@2.0.5
89
+ - @prosopo/types-database@5.0.1
90
+ - @prosopo/database@4.0.1
91
+ - @prosopo/locale@3.2.9
92
+ - @prosopo/api-express-router@3.1.55
93
+ - @prosopo/api-route@2.6.54
94
+ - @prosopo/datasets@3.1.57
95
+ - @prosopo/ipinfo@0.3.2
96
+ - @prosopo/keyring@2.9.64
97
+ - @prosopo/load-balancer@2.10.18
98
+ - @prosopo/redis-client@1.0.31
99
+ - @prosopo/types-env@2.10.21
100
+ - @prosopo/user-access-policy@3.12.12
101
+
3
102
  ## 5.0.0
4
103
  ### Major Changes
5
104
 
@@ -1 +1 @@
1
- {"version":3,"file":"assignDetectorBundle.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;8BAiBpC,mBAAmB,WAEjC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,SACN,YAAY,KACjB,OAAO,CAAC,QAAQ,CAAC;AALrB,wBAwDG"}
1
+ {"version":3,"file":"assignDetectorBundle.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;8BAgBpC,mBAAmB,WAEjC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,SACN,YAAY,KACjB,OAAO,CAAC,QAAQ,CAAC;AALrB,wBAwDG"}
@@ -12,9 +12,8 @@ import { v4 } from "uuid";
12
12
  *
13
13
  * When it cannot (no pool loaded, or Redis unavailable so the binding could not
14
14
  * be persisted) it returns `useProviderBundle: false`. There is NO bundled
15
- * detector and no legacy key pool to fall back to — the client then reports
16
- * `detectorUnavailable` on the frictionless hop and the provider serves a
17
- * challenge instead of attempting to score an absent payload.
15
+ * detector and no legacy key pool to fall back to — the client sends an empty
16
+ * token on the frictionless hop and the provider decides what to serve.
18
17
  */
19
18
  var assignDetectorBundle_default = (env) => async (req, res, _next) => {
20
19
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"assignDetectorBundle.js","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAqC,MAAM,gBAAgB,CAAC;AAG9E,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAe7C,eAAe,CAAC,GAAwB,EAAE,EAAE,CAC3C,KAAK,EACJ,GAA+B,EAC/B,GAAa,EACb,KAAmB,EACC,EAAE;IACtB,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAiC;YAC9C,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,KAAK;YACpC,MAAM,EAAE,IAAI;SACZ,CAAC;QAEF,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,OAAO,MAAM,EAAE,EAAE,CAAC;QAM5C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAClD,iBAAiB,EACjB,QAAQ,CACR,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAiC;YAC9C,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACnC,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;YAChD,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAAE;YACrC,MAAM,EAAE,IAAI;SACZ,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAGd,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACtB,GAAG,EAAE,+DAA+D;YACpE,GAAG;SACH,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC,IAAI,CAAC;YACf,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,KAAK;YACpC,MAAM,EAAE,IAAI;SAC2B,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"assignDetectorBundle.js","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAqC,MAAM,gBAAgB,CAAC;AAG9E,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAc7C,eAAe,CAAC,GAAwB,EAAE,EAAE,CAC3C,KAAK,EACJ,GAA+B,EAC/B,GAAa,EACb,KAAmB,EACC,EAAE;IACtB,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAiC;YAC9C,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,KAAK;YACpC,MAAM,EAAE,IAAI;SACZ,CAAC;QAEF,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,OAAO,MAAM,EAAE,EAAE,CAAC;QAM5C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAClD,iBAAiB,EACjB,QAAQ,CACR,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,QAAQ,GAAiC;YAC9C,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACnC,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;YAChD,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAAE;YACrC,MAAM,EAAE,IAAI;SACZ,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAGd,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACtB,GAAG,EAAE,+DAA+D;YACpE,GAAG;SACH,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC,IAAI,CAAC;YACf,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,KAAK;YACpC,MAAM,EAAE,IAAI;SAC2B,CAAC,CAAC;IAC3C,CAAC;AACF,CAAC,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export declare const DEFAULT_FRICTIONLESS_THRESHOLD = 0.5;
2
2
  export declare const DECRYPTION_FAILED_IMAGE_ROUNDS = 3;
3
+ export declare const MISSING_TOKEN_IMAGE_ROUNDS = 3;
4
+ export declare const MISSING_HEAD_HASH_IMAGE_ROUNDS = 2;
3
5
  export declare const getRoundsFromSimScore: (simScore: number) => number;
4
6
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/constants.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAWlD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,eAAO,MAAM,qBAAqB,aAAc,MAAM,KAAG,MAOxD,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/constants.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAWlD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAOhD,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAM5C,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,eAAO,MAAM,qBAAqB,aAAc,MAAM,KAAG,MAOxD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/constants.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAWlD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACjE,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC;AACV,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/constants.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAWlD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAOhD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAM5C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACjE,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC;AACV,CAAC,CAAC"}
@@ -23,6 +23,7 @@ export type DecisionMachineInput = {
23
23
  botScore: number;
24
24
  scoreComponents: ScoreComponents;
25
25
  token: string;
26
+ headHash: string;
26
27
  botThreshold: number;
27
28
  currentUrl: string | undefined;
28
29
  iframeUrl: string | undefined;
@@ -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;AAarD,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;IACd,YAAY,EAAE,MAAM,CAAC;IAIrB,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;AAIF,eAAO,MAAM,kBAAkB,UACvB,oBAAoB,UACnB,aAAa,KACnB,OAAO,CAAC,OAAO,CA+OjB,CAAC"}
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;AAerD,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;IACjB,YAAY,EAAE,MAAM,CAAC;IAIrB,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,CAqSjB,CAAC"}
@@ -13,6 +13,44 @@ var runDecisionMachine = async (input, handle) => {
13
13
  const { tasks, env, clientRecord, dapp, userSitekeyIpHash, flatHeaders, ipInfo } = input;
14
14
  const { req, res } = handle;
15
15
  let { botScore, scoreComponents } = input;
16
+ if (!input.token) {
17
+ req.logger.info(() => ({
18
+ msg: "Frictionless decision",
19
+ data: {
20
+ decision: "missing_token",
21
+ captchaType: CaptchaType.image
22
+ }
23
+ }));
24
+ recordFrictionlessDecision("missing_token");
25
+ attachHoneypot(res, clientRecord);
26
+ return res.json(await tasks.frictionlessManager.sendImageCaptcha({
27
+ solvedImagesCount: Math.min(3, clientRecord.settings.imageMaxRounds),
28
+ userSitekeyIpHash,
29
+ reason: FrictionlessReason$1.MISSING_TOKEN,
30
+ siteKey: dapp,
31
+ ipInfo,
32
+ headers: flatHeaders
33
+ }));
34
+ }
35
+ if (!input.headHash) {
36
+ req.logger.info(() => ({
37
+ msg: "Frictionless decision",
38
+ data: {
39
+ decision: "missing_head_hash",
40
+ captchaType: CaptchaType.image
41
+ }
42
+ }));
43
+ recordFrictionlessDecision("missing_head_hash");
44
+ attachHoneypot(res, clientRecord);
45
+ return res.json(await tasks.frictionlessManager.sendImageCaptcha({
46
+ solvedImagesCount: Math.min(2, clientRecord.settings.imageMaxRounds),
47
+ userSitekeyIpHash,
48
+ reason: FrictionlessReason$1.MISSING_HEAD_HASH,
49
+ siteKey: dapp,
50
+ ipInfo,
51
+ headers: flatHeaders
52
+ }));
53
+ }
16
54
  if (input.decryptionFailed) {
17
55
  req.logger.info(() => ({
18
56
  msg: "Frictionless decision",
@@ -1 +1 @@
1
- {"version":3,"file":"decisionMachine.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decisionMachine.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.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;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BA4BtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBAwoBG"}
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;8BA4BtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBA+oBG"}
@@ -16,10 +16,11 @@ import "./constants.js";
16
16
  import { runDecisionMachine } from "./decisionMachine.js";
17
17
  import { decryptIncomingSimdReadings } from "./decryptSimdReadings.js";
18
18
  import { resolveSessionDedup } from "./sessionDedup.js";
19
- import { runConfiguredCaptchaTypeShortCircuit, runNoDetectorPowFallback } from "./shortCircuit.js";
19
+ import { runConfiguredCaptchaTypeShortCircuit, runEmptyDetectorPoolPowFallback } from "./shortCircuit.js";
20
20
  import { ProsopoApiError } from "@prosopo/common";
21
21
  import { ApiParams, CaptchaType, GetFrictionlessCaptchaChallengeRequestBody, ModeEnum } from "@prosopo/types";
22
22
  import { flatten, isProtectDeployment, sanitisePageUrl } from "@prosopo/util";
23
+ import { v4 } from "uuid";
23
24
  import { AccessPolicyType } from "@prosopo/user-access-policy";
24
25
  //#region src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts
25
26
  var handler_default = (env, userAccessRulesStorage) => async (req, res, next) => {
@@ -34,10 +35,11 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
34
35
  }
35
36
  }));
36
37
  });
37
- const { token, headHash, dapp, user, mode, simdReadings, detectorSessionId, detectorUnavailable, currentUrl: reportedCurrentUrl, iframeUrl: reportedIframeUrl } = GetFrictionlessCaptchaChallengeRequestBody.parse(req.body);
38
+ const { token, headHash, dapp, user, mode, simdReadings, detectorSessionId, currentUrl: reportedCurrentUrl, iframeUrl: reportedIframeUrl } = GetFrictionlessCaptchaChallengeRequestBody.parse(req.body);
38
39
  const currentUrl = sanitisePageUrl(reportedCurrentUrl);
39
40
  const iframeUrl = sanitisePageUrl(reportedIframeUrl);
40
41
  const isProtect = isProtectDeployment(currentUrl, iframeUrl);
42
+ const sessionToken = token || `notoken-${v4()}`;
41
43
  const normalizedIp = normalizeRequestIp(req.ip, req.logger);
42
44
  const sessionMode = mode === ModeEnum.invisible ? ModeEnum.invisible : void 0;
43
45
  req.logger.info(() => ({
@@ -195,14 +197,14 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
195
197
  userSitekeyIpHash,
196
198
  requestId: req.requestId,
197
199
  logger: req.logger,
198
- detectorUnavailable: detectorUnavailable ?? false,
200
+ ...detectorSessionId && { detectorSessionId },
199
201
  ...req.tcpToChelloUs !== void 0 && { tcpToChelloUs: req.tcpToChelloUs },
200
202
  ...req.chelloToHandshakeUs !== void 0 && { chelloToHandshakeUs: req.chelloToHandshakeUs }
201
203
  };
202
204
  const shortCircuitResponse = await runConfiguredCaptchaTypeShortCircuit(shortCircuitInput, res);
203
205
  if (shortCircuitResponse) return shortCircuitResponse;
204
- const noDetectorResponse = await runNoDetectorPowFallback(shortCircuitInput, res);
205
- if (noDetectorResponse) return noDetectorResponse;
206
+ const emptyPoolResponse = await runEmptyDetectorPoolPowFallback(shortCircuitInput, res);
207
+ if (emptyPoolResponse) return emptyPoolResponse;
206
208
  const lScore = tasks.frictionlessManager.checkLangRules(req.headers["accept-language"] || "");
207
209
  const userScope = getRequestUserScope(flatten(req.headers), req.ja4, normalizedIp, user, void 0, void 0, countryCode, asn);
208
210
  const [decryptedPayload, validation, accessPolicies] = await Promise.all([
@@ -249,7 +251,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
249
251
  ...shadowDomPenalty !== void 0 && { shadowDomPenalty }
250
252
  };
251
253
  tasks.frictionlessManager.setSessionParams({
252
- token,
254
+ token: sessionToken,
253
255
  score: botScore,
254
256
  threshold: botThreshold,
255
257
  scoreComponents,
@@ -328,6 +330,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
328
330
  botScore,
329
331
  scoreComponents,
330
332
  token,
333
+ headHash,
331
334
  botThreshold,
332
335
  currentUrl,
333
336
  iframeUrl