@prosopo/provider 5.13.1 → 5.13.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 (139) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +25 -23
  2. package/.turbo/turbo-build$colon$tsc.log +27 -27
  3. package/.turbo/turbo-build.log +26 -24
  4. package/CHANGELOG.md +95 -0
  5. package/dist/api/admin/apiDnsEventEndpoint.d.ts +2 -2
  6. package/dist/api/admin/apiDnsEventEndpoint.d.ts.map +1 -1
  7. package/dist/api/admin/apiDnsEventEndpoint.js +28 -5
  8. package/dist/api/admin/apiDnsEventEndpoint.js.map +1 -1
  9. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
  10. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +1 -1
  11. package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
  12. package/dist/api/captcha/getImageCaptchaChallenge.d.ts.map +1 -1
  13. package/dist/api/captcha/getImageCaptchaChallenge.js +2 -0
  14. package/dist/api/captcha/getImageCaptchaChallenge.js.map +1 -1
  15. package/dist/api/captcha/getPoWCaptchaChallenge.d.ts.map +1 -1
  16. package/dist/api/captcha/getPoWCaptchaChallenge.js +4 -1
  17. package/dist/api/captcha/getPoWCaptchaChallenge.js.map +1 -1
  18. package/dist/api/captcha/getPuzzleCaptchaChallenge.d.ts.map +1 -1
  19. package/dist/api/captcha/getPuzzleCaptchaChallenge.js +4 -1
  20. package/dist/api/captcha/getPuzzleCaptchaChallenge.js.map +1 -1
  21. package/dist/api/captcha/submitImageCaptchaSolution.d.ts.map +1 -1
  22. package/dist/api/captcha/submitImageCaptchaSolution.js +3 -2
  23. package/dist/api/captcha/submitImageCaptchaSolution.js.map +1 -1
  24. package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
  25. package/dist/api/captcha/submitPoWCaptchaSolution.js +3 -2
  26. package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
  27. package/dist/api/captcha/submitPuzzleCaptchaSolution.d.ts.map +1 -1
  28. package/dist/api/captcha/submitPuzzleCaptchaSolution.js +3 -2
  29. package/dist/api/captcha/submitPuzzleCaptchaSolution.js.map +1 -1
  30. package/dist/api/captcha/trafficFilterRequestTime.d.ts +2 -0
  31. package/dist/api/captcha/trafficFilterRequestTime.d.ts.map +1 -1
  32. package/dist/api/captcha/trafficFilterRequestTime.js +9 -3
  33. package/dist/api/captcha/trafficFilterRequestTime.js.map +1 -1
  34. package/dist/api/captcha.d.ts.map +1 -1
  35. package/dist/api/captcha.js +2 -0
  36. package/dist/api/captcha.js.map +1 -1
  37. package/dist/api/hardBlockVerdictCache.d.ts +1 -0
  38. package/dist/api/hardBlockVerdictCache.d.ts.map +1 -1
  39. package/dist/api/hardBlockVerdictCache.js +4 -1
  40. package/dist/api/hardBlockVerdictCache.js.map +1 -1
  41. package/dist/api/requestBodySummary.d.ts +14 -0
  42. package/dist/api/requestBodySummary.d.ts.map +1 -0
  43. package/dist/api/requestBodySummary.js +47 -0
  44. package/dist/api/requestBodySummary.js.map +1 -0
  45. package/dist/api/verify.d.ts.map +1 -1
  46. package/dist/api/verify.js +9 -8
  47. package/dist/api/verify.js.map +1 -1
  48. package/dist/cjs/api/admin/apiDnsEventEndpoint.cjs +27 -4
  49. package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +1 -1
  50. package/dist/cjs/api/captcha/getImageCaptchaChallenge.cjs +2 -0
  51. package/dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs +4 -1
  52. package/dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs +4 -1
  53. package/dist/cjs/api/captcha/submitImageCaptchaSolution.cjs +3 -2
  54. package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +3 -2
  55. package/dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs +3 -2
  56. package/dist/cjs/api/captcha/trafficFilterRequestTime.cjs +6 -1
  57. package/dist/cjs/api/captcha.cjs +2 -0
  58. package/dist/cjs/api/hardBlockVerdictCache.cjs +4 -1
  59. package/dist/cjs/api/requestBodySummary.cjs +47 -0
  60. package/dist/cjs/api/verify.cjs +9 -8
  61. package/dist/cjs/pairs.cjs +70 -6
  62. package/dist/cjs/tasks/captchaManager.cjs +15 -0
  63. package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +4 -1
  64. package/dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs +17 -6
  65. package/dist/cjs/tasks/powCaptcha/powTasks.cjs +5 -1
  66. package/dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs +1 -4
  67. package/dist/cjs/tasks/spam/checkTrafficFilter.cjs +11 -0
  68. package/dist/cjs/tasks/tasks.cjs +1 -37
  69. package/dist/cjs/utils/tarpitPadding.cjs +23 -0
  70. package/dist/pairs.d.ts +6 -1
  71. package/dist/pairs.d.ts.map +1 -1
  72. package/dist/pairs.js +67 -7
  73. package/dist/pairs.js.map +1 -1
  74. package/dist/tasks/captchaManager.d.ts.map +1 -1
  75. package/dist/tasks/captchaManager.js +15 -0
  76. package/dist/tasks/captchaManager.js.map +1 -1
  77. package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
  78. package/dist/tasks/frictionless/frictionlessTasks.js +4 -1
  79. package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
  80. package/dist/tasks/imgCaptcha/imgCaptchaTasks.d.ts.map +1 -1
  81. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js +20 -8
  82. package/dist/tasks/imgCaptcha/imgCaptchaTasks.js.map +1 -1
  83. package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
  84. package/dist/tasks/powCaptcha/powTasks.js +5 -1
  85. package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
  86. package/dist/tasks/puzzleCaptcha/puzzleTasks.d.ts.map +1 -1
  87. package/dist/tasks/puzzleCaptcha/puzzleTasks.js +1 -4
  88. package/dist/tasks/puzzleCaptcha/puzzleTasks.js.map +1 -1
  89. package/dist/tasks/spam/checkTrafficFilter.d.ts +1 -0
  90. package/dist/tasks/spam/checkTrafficFilter.d.ts.map +1 -1
  91. package/dist/tasks/spam/checkTrafficFilter.js +11 -1
  92. package/dist/tasks/spam/checkTrafficFilter.js.map +1 -1
  93. package/dist/tasks/tasks.d.ts +0 -1
  94. package/dist/tasks/tasks.d.ts.map +1 -1
  95. package/dist/tasks/tasks.js +1 -37
  96. package/dist/tasks/tasks.js.map +1 -1
  97. package/dist/tests/integration/authenticatedVerifyClaim.integration.test.d.ts +2 -0
  98. package/dist/tests/integration/authenticatedVerifyClaim.integration.test.d.ts.map +1 -0
  99. package/dist/tests/integration/authenticatedVerifyClaim.integration.test.js +81 -0
  100. package/dist/tests/integration/authenticatedVerifyClaim.integration.test.js.map +1 -0
  101. package/dist/tests/integration/imgCaptcha.integration.test.js +37 -1
  102. package/dist/tests/integration/imgCaptcha.integration.test.js.map +1 -1
  103. package/dist/tests/unit/api/admin/apiDnsEventEndpoint.unit.test.js +39 -3
  104. package/dist/tests/unit/api/admin/apiDnsEventEndpoint.unit.test.js.map +1 -1
  105. package/dist/tests/unit/api/domainMiddleware.unit.test.d.ts +2 -0
  106. package/dist/tests/unit/api/domainMiddleware.unit.test.d.ts.map +1 -0
  107. package/dist/tests/unit/api/domainMiddleware.unit.test.js +167 -0
  108. package/dist/tests/unit/api/domainMiddleware.unit.test.js.map +1 -0
  109. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.js +32 -0
  110. package/dist/tests/unit/api/hardBlockVerdictCache.unit.test.js.map +1 -1
  111. package/dist/tests/unit/api/requestBodySummary.unit.test.d.ts +2 -0
  112. package/dist/tests/unit/api/requestBodySummary.unit.test.d.ts.map +1 -0
  113. package/dist/tests/unit/api/requestBodySummary.unit.test.js +172 -0
  114. package/dist/tests/unit/api/requestBodySummary.unit.test.js.map +1 -0
  115. package/dist/tests/unit/pairs.unit.test.js +126 -1
  116. package/dist/tests/unit/pairs.unit.test.js.map +1 -1
  117. package/dist/tests/unit/tasks/captchaManager.unit.test.js +38 -0
  118. package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
  119. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js +104 -8
  120. package/dist/tests/unit/tasks/frictionless/frictionlessTasks.unit.test.js.map +1 -1
  121. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js +232 -17
  122. package/dist/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.unit.test.js.map +1 -1
  123. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +66 -14
  124. package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
  125. package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js +21 -1
  126. package/dist/tests/unit/tasks/puzzleCaptcha/puzzleTasks.unit.test.js.map +1 -1
  127. package/dist/tests/unit/tasks/tasksBackgroundWork.unit.test.d.ts +2 -0
  128. package/dist/tests/unit/tasks/tasksBackgroundWork.unit.test.d.ts.map +1 -0
  129. package/dist/tests/unit/tasks/tasksBackgroundWork.unit.test.js +34 -0
  130. package/dist/tests/unit/tasks/tasksBackgroundWork.unit.test.js.map +1 -0
  131. package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js +0 -49
  132. package/dist/tests/unit/tasks/writeQueueIntegration.unit.test.js.map +1 -1
  133. package/dist/tests/unit/util/redisCache.unit.test.js +1 -104
  134. package/dist/tests/unit/util/redisCache.unit.test.js.map +1 -1
  135. package/dist/utils/tarpitPadding.d.ts +3 -0
  136. package/dist/utils/tarpitPadding.d.ts.map +1 -0
  137. package/dist/utils/tarpitPadding.js +24 -0
  138. package/dist/utils/tarpitPadding.js.map +1 -0
  139. package/package.json +24 -24
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/provider@5.13.1 build:cjs
2
+ > @prosopo/provider@5.13.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: .
@@ -59,7 +59,7 @@ ViteCommonJSConfig: .
59
59
  vite v8.1.5 building ssr environment for production...
60
60
  Bundle build started
61
61
  
62
- ✓ 116 modules transformed.
62
+ ✓ 118 modules transformed.
63
63
  rendering chunks...
64
64
  computing gzip size...
65
65
  dist/cjs/tasks/index.cjs 0.08 kB │ gzip: 0.07 kB
@@ -79,6 +79,7 @@ dist/cjs/api/validateAddress.cjs 0
79
79
  dist/cjs/api/ja4.cjs 0.85 kB │ gzip: 0.47 kB
80
80
  dist/cjs/api/dnsEventUrl.cjs 0.85 kB │ gzip: 0.46 kB
81
81
  dist/cjs/tasks/dataset/datasetTasks.cjs 0.92 kB │ gzip: 0.41 kB
82
+ dist/cjs/utils/tarpitPadding.cjs 0.98 kB │ gzip: 0.54 kB
82
83
  dist/cjs/api/captcha/assetSeal.cjs 0.99 kB │ gzip: 0.51 kB
83
84
  dist/cjs/_virtual/_rolldown/runtime.cjs 1.00 kB │ gzip: 0.50 kB
84
85
  dist/cjs/api/headerCheckMiddleware.cjs 1.02 kB │ gzip: 0.45 kB
@@ -98,7 +99,6 @@ dist/cjs/schedulers/getClientList.cjs 1
98
99
  dist/cjs/api/admin/apiGetDecisionMachineEndpoint.cjs 1.33 kB │ gzip: 0.52 kB
99
100
  dist/cjs/api/admin/apiRemoveDecisionMachineEndpoint.cjs 1.36 kB │ gzip: 0.52 kB
100
101
  dist/cjs/api/admin/apiRemoveAllDecisionMachinesEndpoint.cjs 1.36 kB │ gzip: 0.54 kB
101
- dist/cjs/pairs.cjs 1.39 kB │ gzip: 0.60 kB
102
102
  dist/cjs/tasks/dataset/datasetTasksUtils.cjs 1.42 kB │ gzip: 0.49 kB
103
103
  dist/cjs/tasks/puzzle/backgroundBuffer.cjs 1.44 kB │ gzip: 0.54 kB
104
104
  dist/cjs/utils/clientMetaData.cjs 1.48 kB │ gzip: 0.72 kB
@@ -116,6 +116,7 @@ dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs 1
116
116
  dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs 1.80 kB │ gzip: 0.72 kB
117
117
  dist/cjs/utils/honeypot/phraseBank.cjs 1.87 kB │ gzip: 0.91 kB
118
118
  dist/cjs/api/handshakeTimingMiddleware.cjs 1.88 kB │ gzip: 0.71 kB
119
+ dist/cjs/api/requestBodySummary.cjs 1.96 kB │ gzip: 0.88 kB
119
120
  dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs 2.01 kB │ gzip: 0.78 kB
120
121
  dist/cjs/tasks/frictionless/ipMatch.cjs 2.03 kB │ gzip: 1.03 kB
121
122
  dist/cjs/tasks/spam/updateSpamEmailDomains.cjs 2.12 kB │ gzip: 0.85 kB
@@ -126,43 +127,44 @@ dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs 2
126
127
  dist/cjs/api/captcha/signedAssetsResolver.cjs 2.24 kB │ gzip: 1.00 kB
127
128
  dist/cjs/api/captcha/sealedAssetsResolver.cjs 2.37 kB │ gzip: 0.98 kB
128
129
  dist/cjs/tasks/captchaTypeSelection.cjs 2.44 kB │ gzip: 1.04 kB
129
- dist/cjs/api/admin/apiDnsEventEndpoint.cjs 2.59 kB │ gzip: 1.00 kB
130
130
  dist/cjs/utils/dns.cjs 2.66 kB │ gzip: 1.02 kB
131
131
  dist/cjs/api/forwardVerify.cjs 2.66 kB │ gzip: 1.12 kB
132
132
  dist/cjs/tasks/puzzle/puzzleDifficulty.cjs 2.66 kB │ gzip: 1.10 kB
133
133
  dist/cjs/api/captcha/checkSpamEmail.cjs 2.73 kB │ gzip: 0.95 kB
134
- dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs 2.77 kB │ gzip: 0.99 kB
135
134
  dist/cjs/api/public.cjs 2.79 kB │ gzip: 1.07 kB
136
135
  dist/cjs/api/captcha/maintenanceModeResponses.cjs 2.91 kB │ gzip: 0.77 kB
137
- dist/cjs/api/captcha/submitImageCaptchaSolution.cjs 2.93 kB │ gzip: 1.03 kB
136
+ dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs 2.93 kB │ gzip: 1.01 kB
137
+ dist/cjs/api/captcha/submitImageCaptchaSolution.cjs 3.09 kB │ gzip: 1.06 kB
138
+ dist/cjs/api/admin/apiDnsEventEndpoint.cjs 3.20 kB │ gzip: 1.22 kB
138
139
  dist/cjs/tasks/detection/getBotScore.cjs 3.37 kB │ gzip: 1.33 kB
139
140
  dist/cjs/compositeIpAddress.cjs 3.39 kB │ gzip: 1.36 kB
140
141
  dist/cjs/api/captcha/assetSealFormat.cjs 3.59 kB │ gzip: 1.37 kB
141
142
  dist/cjs/api/captcha/assignDetectorBundle.cjs 3.63 kB │ gzip: 1.37 kB
142
143
  dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs 3.66 kB │ gzip: 1.35 kB
143
144
  dist/cjs/api/admin/apiAdminRoutesProvider.cjs 3.67 kB │ gzip: 0.62 kB
145
+ dist/cjs/tasks/tasks.cjs 3.82 kB │ gzip: 1.07 kB
144
146
  dist/cjs/api/rawTlsSignalsMiddleware.cjs 3.84 kB │ gzip: 1.16 kB
145
147
  dist/cjs/api/domainMiddleware.cjs 3.85 kB │ gzip: 1.26 kB
146
148
  dist/cjs/tasks/spam/evaluateEmailSpamRules.cjs 4.03 kB │ gzip: 1.60 kB
147
149
  dist/cjs/services/ipComparison.cjs 4.06 kB │ gzip: 1.22 kB
148
150
  dist/cjs/tasks/spam/checkSpamEmail.cjs 4.14 kB │ gzip: 1.14 kB
149
- dist/cjs/api/captcha/trafficFilterRequestTime.cjs 4.17 kB │ gzip: 1.53 kB
150
151
  dist/cjs/api/cpuProfiler.cjs 4.21 kB │ gzip: 1.78 kB
151
- dist/cjs/api/hardBlockVerdictCache.cjs 4.27 kB │ gzip: 1.70 kB
152
+ dist/cjs/api/captcha/trafficFilterRequestTime.cjs 4.27 kB │ gzip: 1.55 kB
152
153
  dist/cjs/tasks/puzzle/puzzleRenderer.cjs 4.36 kB │ gzip: 1.55 kB
153
- dist/cjs/api/captcha.cjs 4.51 kB │ gzip: 1.40 kB
154
+ dist/cjs/api/hardBlockVerdictCache.cjs 4.39 kB │ gzip: 1.74 kB
154
155
  dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.cjs 4.56 kB │ gzip: 1.07 kB
156
+ dist/cjs/api/captcha.cjs 4.64 kB │ gzip: 1.43 kB
157
+ dist/cjs/pairs.cjs 4.64 kB │ gzip: 1.61 kB
155
158
  dist/cjs/tasks/dnsEvent/enrichDnsEvent.cjs 4.84 kB │ gzip: 1.74 kB
156
159
  dist/cjs/index.cjs 5.02 kB │ gzip: 1.05 kB
157
- dist/cjs/tasks/tasks.cjs 5.07 kB │ gzip: 1.57 kB
158
160
  dist/cjs/tasks/detection/decoderPool.cjs 5.47 kB │ gzip: 2.06 kB
159
161
  dist/cjs/util/usageCounters.cjs 5.72 kB │ gzip: 2.03 kB
160
- dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs 6.73 kB │ gzip: 1.89 kB
162
+ dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs 6.92 kB │ gzip: 1.94 kB
161
163
  dist/cjs/api/healthzGeo.cjs 7.03 kB │ gzip: 2.70 kB
162
- dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 7.39 kB │ gzip: 2.06 kB
163
- dist/cjs/tasks/spam/checkTrafficFilter.cjs 7.47 kB │ gzip: 2.48 kB
164
- dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs 7.56 kB │ gzip: 2.03 kB
165
- dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs 9.12 kB │ gzip: 2.71 kB
164
+ dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 7.47 kB │ gzip: 2.09 kB
165
+ dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs 7.75 kB │ gzip: 2.08 kB
166
+ dist/cjs/tasks/spam/checkTrafficFilter.cjs 7.97 kB │ gzip: 2.63 kB
167
+ dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs 9.28 kB │ gzip: 2.74 kB
166
168
  dist/cjs/tasks/detection/bundlePool.cjs 9.29 kB │ gzip: 3.38 kB
167
169
  dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs 10.33 kB │ gzip: 1.82 kB
168
170
  dist/cjs/api/startProviderApi.cjs 11.73 kB │ gzip: 3.72 kB
@@ -171,15 +173,15 @@ dist/cjs/api/metrics.cjs 11
171
173
  dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs 12.69 kB │ gzip: 3.91 kB
172
174
  dist/cjs/util.cjs 13.15 kB │ gzip: 3.26 kB
173
175
  dist/cjs/api/blacklistRequestInspector.cjs 13.39 kB │ gzip: 4.50 kB
174
- dist/cjs/api/verify.cjs 16.79 kB │ gzip: 2.93 kB
175
- dist/cjs/tasks/frictionless/frictionlessTasks.cjs 18.37 kB │ gzip: 4.89 kB
176
- dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 20.05 kB │ gzip: 4.59 kB
177
- dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 24.30 kB │ gzip: 5.20 kB
178
- dist/cjs/tasks/captchaManager.cjs 24.67 kB │ gzip: 7.42 kB
179
- dist/cjs/tasks/powCaptcha/powTasks.cjs 25.74 kB │ gzip: 6.20 kB
180
- dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs 28.13 kB │ gzip: 6.40 kB
176
+ dist/cjs/api/verify.cjs 17.22 kB │ gzip: 2.97 kB
177
+ dist/cjs/tasks/frictionless/frictionlessTasks.cjs 18.43 kB │ gzip: 4.88 kB
178
+ dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 20.15 kB │ gzip: 4.63 kB
179
+ dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 24.26 kB │ gzip: 5.18 kB
180
+ dist/cjs/tasks/captchaManager.cjs 25.12 kB │ gzip: 7.48 kB
181
+ dist/cjs/tasks/powCaptcha/powTasks.cjs 25.99 kB │ gzip: 6.23 kB
182
+ dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs 28.88 kB │ gzip: 6.55 kB
181
183
 
182
- ✓ built in 195ms
184
+ ✓ built in 179ms
183
185
  [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
184
186
  [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
185
187
  [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.13.1 build:tsc
2
+ > @prosopo/provider@5.13.3 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 3:37:46 PM - Projects in this build:
5
+ 7:49:53 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * ../util/tsconfig.json
8
8
  * ../logger/tsconfig.json
@@ -28,53 +28,53 @@
28
28
  * ../web-bot-auth/tsconfig.json
29
29
  * tsconfig.json
30
30
 
31
- 3:37:46 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
31
+ 7:49: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'
32
32
 
33
- 3:37:46 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
33
+ 7:49:54 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
34
34
 
35
- 3:37:46 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/index.ts' is older than output '../logger/tsconfig.tsbuildinfo'
35
+ 7:49:54 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/logger.ts' is older than output '../logger/tsconfig.tsbuildinfo'
36
36
 
37
- 3:37:46 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'
37
+ 7:49:54 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'
38
38
 
39
- 3:37:46 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
39
+ 7:49:54 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/translationKey.ts' is older than output '../locale/tsconfig.tsbuildinfo'
40
40
 
41
- 3:37:46 PM - Project '../util-crypto/tsconfig.json' is up to date because newest input '../util-crypto/src/types.ts' is older than output '../util-crypto/tsconfig.tsbuildinfo'
41
+ 7:49: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'
42
42
 
43
- 3:37:46 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
43
+ 7:49:54 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'
44
44
 
45
- 3:37:46 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
45
+ 7:49:54 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/index.ts' is older than output '../common/tsconfig.tsbuildinfo'
46
46
 
47
- 3:37:46 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
47
+ 7:49:54 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
48
48
 
49
- 3:37:46 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/tests/testRedisConnection.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
49
+ 7:49:54 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'
50
50
 
51
- 3:37:46 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
51
+ 7:49:54 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/tsconfig.tsbuildinfo'
52
52
 
53
- 3:37:46 PM - Project '../user-access-policy/tsconfig.json' is up to date because newest input '../user-access-policy/src/transformRule.ts' is older than output '../user-access-policy/tsconfig.tsbuildinfo'
53
+ 7:49:54 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'
54
54
 
55
- 3:37:47 PM - Project '../types-database/tsconfig.json' is up to date because newest input '../types-database/src/types.test-d.ts' is older than output '../types-database/tsconfig.tsbuildinfo'
55
+ 7:49: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'
56
56
 
57
- 3:37:47 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/unit/captchaLabel.unit.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
57
+ 7:49:54 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/unit/captchaLabel.unit.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
58
58
 
59
- 3:37:47 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/keyring/keyring.test.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
59
+ 7:49:54 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'
60
60
 
61
- 3:37:47 PM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/index.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
61
+ 7:49: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'
62
62
 
63
- 3:37:47 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/tests/env.maintenance.unit.test.ts' is older than output '../env/tsconfig.tsbuildinfo'
63
+ 7:49:54 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/index.ts' is older than output '../env/tsconfig.tsbuildinfo'
64
64
 
65
- 3:37:47 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'
65
+ 7:49:54 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'
66
66
 
67
- 3:37:47 PM - Project '../captcha-severity/tsconfig.json' is up to date because newest input '../captcha-severity/src/index.test.ts' is older than output '../captcha-severity/tsconfig.tsbuildinfo'
67
+ 7:49:54 PM - Project '../captcha-severity/tsconfig.json' is up to date because newest input '../captcha-severity/src/index.ts' is older than output '../captcha-severity/tsconfig.tsbuildinfo'
68
68
 
69
- 3:37:47 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/tests/captcha.unit.test.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
69
+ 7:49:54 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/index.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
70
70
 
71
- 3:37:47 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/developmentProviderUrl.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
71
+ 7:49: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'
72
72
 
73
- 3:37:47 PM - Project '../puzzle-assets/tsconfig.json' is up to date because newest input '../puzzle-assets/src/background.ts' is older than output '../puzzle-assets/tsconfig.tsbuildinfo'
73
+ 7:49: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'
74
74
 
75
- 3:37:47 PM - Project '../web-bot-auth/tsconfig.json' is up to date because newest input '../web-bot-auth/src/base64.ts' is older than output '../web-bot-auth/tsconfig.tsbuildinfo'
75
+ 7:49:54 PM - Project '../web-bot-auth/tsconfig.json' is up to date because newest input '../web-bot-auth/src/base64.ts' is older than output '../web-bot-auth/tsconfig.tsbuildinfo'
76
76
 
77
- 3:37:47 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
77
+ 7:49:54 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
78
78
 
79
- 3:37:47 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
79
+ 7:49:54 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
80
80
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/provider@5.13.1 build
2
+ > @prosopo/provider@5.13.3 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/provider@5.13.1 build:cross-env
6
+ > @prosopo/provider@5.13.3 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -63,7 +63,7 @@ ViteEsmConfig: .
63
63
  vite v8.1.5 building ssr environment for production...
64
64
  Bundle build started
65
65
  
66
- ✓ 116 modules transformed.
66
+ ✓ 118 modules transformed.
67
67
  rendering chunks...
68
68
  computing gzip size...
69
69
  dist/_virtual/_rolldown/runtime.js 0.04 kB │ gzip: 0.06 kB
@@ -87,6 +87,7 @@ dist/tasks/dataset/datasetTasks.js 0.85 k
87
87
  dist/tasks/powCaptcha/powTasksUtils.js 0.89 kB │ gzip: 0.46 kB
88
88
  dist/api/captcha/assetSeal.js 0.91 kB │ gzip: 0.50 kB
89
89
  dist/api/headerCheckMiddleware.js 0.91 kB │ gzip: 0.43 kB
90
+ dist/utils/tarpitPadding.js 0.95 kB │ gzip: 0.53 kB
90
91
  dist/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.js 0.95 kB │ gzip: 0.51 kB
91
92
  dist/api/admin/apiRegisterSiteKeyEndpoint.js 1.00 kB │ gzip: 0.46 kB
92
93
  dist/api/captcha/getFrictionlessCaptchaChallenge/sessionDedup.js 1.01 kB │ gzip: 0.45 kB
@@ -98,7 +99,6 @@ dist/api/admin/apiRemoveSiteKeyEndpoint.js 1.08 k
98
99
  dist/api/block.js 1.08 kB │ gzip: 0.46 kB
99
100
  dist/schedulers/captchaScheduler.js 1.11 kB │ gzip: 0.48 kB
100
101
  dist/utils/normalizeRequestIp.js 1.14 kB │ gzip: 0.52 kB
101
- dist/pairs.js 1.19 kB │ gzip: 0.58 kB
102
102
  dist/schedulers/getClientList.js 1.19 kB │ gzip: 0.53 kB
103
103
  dist/api/admin/apiGetDecisionMachineEndpoint.js 1.26 kB │ gzip: 0.50 kB
104
104
  dist/tasks/puzzle/backgroundBuffer.js 1.26 kB │ gzip: 0.51 kB
@@ -122,6 +122,7 @@ dist/utils/honeypot/phraseBank.js 1.69 k
122
122
  dist/api/handshakeTimingMiddleware.js 1.75 kB │ gzip: 0.69 kB
123
123
  dist/tasks/spam/updateSpamEmailDomains.js 1.87 kB │ gzip: 0.77 kB
124
124
  dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
125
+ dist/api/requestBodySummary.js 1.94 kB │ gzip: 0.88 kB
125
126
  dist/tasks/frictionless/ipMatch.js 1.98 kB │ gzip: 1.02 kB
126
127
  dist/api/captcha/signedAssetsResolver.js 2.08 kB │ gzip: 0.98 kB
127
128
  dist/migrations/frictionlessLadder.js 2.12 kB │ gzip: 0.93 kB
@@ -132,41 +133,42 @@ dist/tasks/frictionless/routingMachine.js 2.20 k
132
133
  dist/tasks/captchaTypeSelection.js 2.22 kB │ gzip: 1.03 kB
133
134
  dist/api/captcha/sealedAssetsResolver.js 2.26 kB │ gzip: 0.97 kB
134
135
  dist/utils/dns.js 2.36 kB │ gzip: 0.95 kB
135
- dist/api/admin/apiDnsEventEndpoint.js 2.43 kB │ gzip: 0.96 kB
136
136
  dist/api/public.js 2.45 kB │ gzip: 0.98 kB
137
137
  dist/api/captcha/checkSpamEmail.js 2.47 kB │ gzip: 0.91 kB
138
138
  dist/tasks/puzzle/puzzleDifficulty.js 2.50 kB │ gzip: 1.09 kB
139
- dist/api/captcha/submitPuzzleCaptchaSolution.js 2.55 kB │ gzip: 0.96 kB
140
139
  dist/api/forwardVerify.js 2.59 kB │ gzip: 1.10 kB
141
- dist/api/captcha/submitImageCaptchaSolution.js 2.59 kB │ gzip: 1.00 kB
140
+ dist/api/captcha/submitPuzzleCaptchaSolution.js 2.65 kB │ gzip: 0.99 kB
141
+ dist/api/captcha/submitImageCaptchaSolution.js 2.69 kB │ gzip: 1.03 kB
142
142
  dist/api/admin/apiAdminRoutesProvider.js 2.78 kB │ gzip: 0.55 kB
143
143
  dist/index.js 2.95 kB │ gzip: 0.81 kB
144
+ dist/api/admin/apiDnsEventEndpoint.js 3.05 kB │ gzip: 1.18 kB
144
145
  dist/compositeIpAddress.js 3.15 kB │ gzip: 1.34 kB
145
146
  dist/tasks/detection/getBotScore.js 3.29 kB │ gzip: 1.32 kB
146
147
  dist/api/captcha/assetSealFormat.js 3.38 kB │ gzip: 1.34 kB
147
148
  dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.39 kB │ gzip: 1.32 kB
148
149
  dist/api/captcha/assignDetectorBundle.js 3.40 kB │ gzip: 1.34 kB
150
+ dist/tasks/tasks.js 3.44 kB │ gzip: 1.01 kB
149
151
  dist/api/domainMiddleware.js 3.52 kB │ gzip: 1.22 kB
150
152
  dist/api/rawTlsSignalsMiddleware.js 3.69 kB │ gzip: 1.13 kB
151
153
  dist/tasks/spam/evaluateEmailSpamRules.js 3.84 kB │ gzip: 1.59 kB
152
- dist/api/captcha/trafficFilterRequestTime.js 3.94 kB │ gzip: 1.51 kB
153
154
  dist/tasks/puzzle/puzzleRenderer.js 3.99 kB │ gzip: 1.52 kB
154
155
  dist/services/ipComparison.js 4.04 kB │ gzip: 1.21 kB
155
- dist/api/captcha.js 4.05 kB │ gzip: 1.31 kB
156
+ dist/api/captcha/trafficFilterRequestTime.js 4.06 kB │ gzip: 1.53 kB
156
157
  dist/tasks/spam/checkSpamEmail.js 4.12 kB │ gzip: 1.12 kB
157
158
  dist/api/cpuProfiler.js 4.12 kB │ gzip: 1.77 kB
158
- dist/api/hardBlockVerdictCache.js 4.14 kB │ gzip: 1.69 kB
159
+ dist/api/captcha.js 4.15 kB │ gzip: 1.35 kB
160
+ dist/api/hardBlockVerdictCache.js 4.26 kB │ gzip: 1.72 kB
161
+ dist/pairs.js 4.27 kB │ gzip: 1.57 kB
159
162
  dist/api/captcha/getFrictionlessCaptchaChallenge/accessPolicy.js 4.35 kB │ gzip: 1.07 kB
160
- dist/tasks/tasks.js 4.69 kB │ gzip: 1.51 kB
161
163
  dist/tasks/dnsEvent/enrichDnsEvent.js 4.71 kB │ gzip: 1.72 kB
162
164
  dist/tasks/detection/decoderPool.js 5.34 kB │ gzip: 2.02 kB
163
165
  dist/util/usageCounters.js 5.65 kB │ gzip: 2.01 kB
164
- dist/api/captcha/getPoWCaptchaChallenge.js 6.09 kB │ gzip: 1.83 kB
165
- dist/api/captcha/getImageCaptchaChallenge.js 6.61 kB │ gzip: 2.00 kB
166
- dist/api/captcha/getPuzzleCaptchaChallenge.js 6.84 kB │ gzip: 1.97 kB
166
+ dist/api/captcha/getPoWCaptchaChallenge.js 6.25 kB │ gzip: 1.87 kB
167
+ dist/api/captcha/getImageCaptchaChallenge.js 6.69 kB │ gzip: 2.03 kB
167
168
  dist/api/healthzGeo.js 6.86 kB │ gzip: 2.68 kB
168
- dist/tasks/spam/checkTrafficFilter.js 7.16 kB │ gzip: 2.45 kB
169
- dist/api/captcha/submitPoWCaptchaSolution.js 8.60 kB │ gzip: 2.66 kB
169
+ dist/api/captcha/getPuzzleCaptchaChallenge.js 7.00 kB │ gzip: 2.01 kB
170
+ dist/tasks/spam/checkTrafficFilter.js 7.63 kB │ gzip: 2.61 kB
171
+ dist/api/captcha/submitPoWCaptchaSolution.js 8.70 kB │ gzip: 2.69 kB
170
172
  dist/tasks/detection/bundlePool.js 8.86 kB │ gzip: 3.34 kB
171
173
  dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 9.36 kB │ gzip: 1.80 kB
172
174
  dist/api/startProviderApi.js 10.02 kB │ gzip: 3.45 kB
@@ -175,15 +177,15 @@ dist/tasks/client/clientTasks.js 11.27 k
175
177
  dist/tasks/decisionMachine/decisionMachineRunner.js 12.28 kB │ gzip: 3.85 kB
176
178
  dist/util.js 12.47 kB │ gzip: 3.20 kB
177
179
  dist/api/blacklistRequestInspector.js 12.75 kB │ gzip: 4.46 kB
178
- dist/api/verify.js 15.12 kB │ gzip: 2.82 kB
179
- dist/tasks/frictionless/frictionlessTasks.js 17.80 kB │ gzip: 4.86 kB
180
- dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 18.54 kB │ gzip: 4.48 kB
181
- dist/tasks/puzzleCaptcha/puzzleTasks.js 22.90 kB │ gzip: 5.16 kB
182
- dist/tasks/captchaManager.js 24.17 kB │ gzip: 7.35 kB
183
- dist/tasks/powCaptcha/powTasks.js 24.32 kB │ gzip: 6.15 kB
184
- dist/tasks/imgCaptcha/imgCaptchaTasks.js 26.61 kB │ gzip: 6.34 kB
180
+ dist/api/verify.js 15.32 kB │ gzip: 2.84 kB
181
+ dist/tasks/frictionless/frictionlessTasks.js 17.86 kB │ gzip: 4.86 kB
182
+ dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 18.63 kB │ gzip: 4.53 kB
183
+ dist/tasks/puzzleCaptcha/puzzleTasks.js 22.85 kB │ gzip: 5.14 kB
184
+ dist/tasks/powCaptcha/powTasks.js 24.56 kB │ gzip: 6.17 kB
185
+ dist/tasks/captchaManager.js 24.61 kB │ gzip: 7.41 kB
186
+ dist/tasks/imgCaptcha/imgCaptchaTasks.js 27.39 kB │ gzip: 6.51 kB
185
187
 
186
- ✓ built in 196ms
188
+ ✓ built in 198ms
187
189
  [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
188
190
  [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
189
191
  [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,100 @@
1
1
  # @prosopo/provider
2
2
 
3
+ ## 5.13.3
4
+ ### Patch Changes
5
+
6
+ - 1291cb0: Dependency security bumps rolled up from Dependabot: undici 6.28.0 → 6.29.0 (provider and prosoponator-bot) and fast-uri 3.1.6 → 3.1.8 (lockfile only).
7
+ - d01f19b: Pin `mongo1.prosopo.io` to its tailnet address inside the provider containers.
8
+
9
+ The providers reached the database over the public internet: out to a traefik TCP router on `prosvr3`, which terminated TLS and re-originated plaintext to the guest. Both provider services now carry an `extra_hosts` entry mapping `mongo1.prosopo.io` to `100.64.0.21`, so the connection goes over WireGuard instead and the encryption terminates on `mongo1` itself rather than on a proxy.
10
+
11
+ The host mapping is the part that makes this work. `mongod` runs `--replSet rs0`, so it advertises itself as `mongo1.prosopo.io:27018`, and the driver re-dials that advertised name in preference to the address it was seeded with. Changing only the connection string sends the traffic straight back out to the load balancer — that is what rolled back the two previous attempts. Overriding the name covers the seed and the advertised host together.
12
+
13
+ The address is written literally rather than interpolated from a compose variable. Eighteen playbooks run `docker compose` against this file, each supplying its own environment, and a variable that any one of them forgets expands to `mongo1.prosopo.io:` and stops the container from starting. It is inert where `mongo1` is not the database — staging points at a different host.
14
+ - 254bc05: Add an optional `padBytes` to traffic-filter category policies, so an operator can tarpit a category (e.g. proxy) instead of hard-blocking it: pair a high `powDifficulty` with `padBytes` and that category's challenge is made expensive in both CPU and bandwidth.
15
+
16
+ When a request matches a category that carries `padBytes` — `challenge` or `block`, since a blocked category still hands out a deferred challenge at request time — the provider appends that many bytes of incompressible padding to the challenge issuance response. So a category set to `block` still burns the caller's bandwidth on the way to being blocked. The count is resolved from the live traffic-filter verdict at request time — nothing is persisted, and the bytes never come from the client. The padding is streamed pad-first (before the real challenge fields) so a scraper can't read the prefix and abort, and it is bounded at 5 MiB so it can't be turned into an amplifier.
17
+
18
+ Off by default and fully backward-compatible: with no `padBytes` configured, responses are byte-for-byte unchanged. A single response-wrapping middleware applies the padding, so no challenge endpoint can bypass it.
19
+ - Updated dependencies [254bc05]
20
+ - @prosopo/types@5.11.1
21
+ - @prosopo/api@4.3.7
22
+ - @prosopo/api-express-router@3.1.97
23
+ - @prosopo/database@4.1.1
24
+ - @prosopo/datasets@3.1.93
25
+ - @prosopo/env@3.6.66
26
+ - @prosopo/ipinfo@0.4.12
27
+ - @prosopo/keyring@2.9.99
28
+ - @prosopo/load-balancer@2.11.3
29
+ - @prosopo/types-database@5.7.1
30
+ - @prosopo/types-env@2.11.12
31
+ - @prosopo/user-access-policy@3.14.13
32
+
33
+ ## 5.13.2
34
+ ### Patch Changes
35
+
36
+ - f650c66: A Web Bot Auth (authenticated) token can now only be verified once, even when several verify requests for it arrive at the same time. Before, the provider checked whether the session was already used and then marked it used in a separate step, so parallel verifies could all return `verified: true`. Marking the session used is now a single conditional database write, and only the request that wins it is verified; the rest get `API.USER_ALREADY_VERIFIED`.
37
+ - e482b25: When a captcha challenge, solution or verify request fails to parse, the provider now logs a short summary of the body (its type, size, top-level keys and a preview of at most 512 characters) instead of the whole body. Signature, token, secret, proof, salt, email, password and IP fields are replaced with `[redacted]` in the preview, however deeply they are nested. Before, a caller could post a body close to the 1 MB limit and have all of it copied into the logs, including any tokens and signatures it carried.
38
+ - 8933ad5: Build the proofs returned after a passed image captcha from the right leaves, and refuse to build a proof for a hash that is not a leaf.
39
+
40
+ The provider asked the commitment tree for a proof of each captcha ID, but the tree's leaves are solution hashes, so no captcha ID is ever a leaf. `proof()` did not check, and returned a proof that linked nothing to the root. The provider now asks for a proof of each leaf, and `proof()` throws `DATASET.MERKLE_ERROR` when the hash is not a leaf. Several merkle tests that could never fail (`expect(x > -1)`) now assert properly.
41
+ - 026b126: A PoW captcha challenge can now only be submitted once. Before, submitting the same solved challenge again after the site's server had verified the token reset the record to "not yet checked", so the same token could pass server verification a second time for as long as the verify window lasted. Puzzle captchas already refused a second submission, and PoW now does the same.
42
+ - 0c8678e: The DNS event ingest endpoint now checks each event on its own. One malformed event used to make
43
+ the whole batch fail validation, so every good event sent alongside it was lost. Bad events are now
44
+ dropped and counted, the rest are stored, and the response reports how many were dropped. A single
45
+ warning names up to five of the dropped events and why they failed.
46
+ - b77c5f4: The image captcha widget now tells the provider whether each tile, and the checkbox, was picked with a mouse or finger or with the keyboard. Keyboard presses have no screen position, so they all arrive as (0, 0). The provider used to see those repeats as a script clicking the same pixel and reject people who solve with the keyboard. It now looks for repeated positions among pointer selections only. It rejects a keyboard selection that claims a position. Requests from older widgets, which send no input method, are checked as strictly as before. The input method is stored on the commitment next to the coordinates.
47
+ - 7065689: Removed the Redis session write queue. Nothing ever put a session on it, yet every provider polled Redis for it every 10 seconds, and its drain step could duplicate, drop or delete records if it had ever been used. `RedisWriteQueue` loses `queueSessionRecord`, `drainSessionRecords`, `startPeriodicFlush` and `stopPeriodicFlush`, and `Tasks.flushWriteQueue` is gone. The session read cache is unchanged.
48
+ - 9318584: A frictionless session can now only be used by the site it was issued for. Before, a session created on one site, for example one set up for easy PoW, could be passed with a request for a different site and the provider would issue the captcha type and difficulty chosen for the first site. The provider now refuses the session when its site key does not match the site asking for a captcha, with the same "no session found" answer it gives for an unknown session.
49
+ - 084da7e: Changing an access rule now reliably clears the provider's cached block verdicts. A verdict lookup that was already running when the rules changed used to finish afterwards and write the old answer back into the cache, so a just-deleted block rule could keep blocking (or a just-added one keep allowing) for up to ten more seconds. Lookups that started before the change no longer write their result, and new requests no longer wait on them.
50
+ - fa316d6: A captcha token now verifies at most once even when a site's server sends several verify requests for it at the same moment. Before, each request read the record, saw it had not been checked yet, and then marked it checked, so every request that arrived before the first write finished was accepted. Marking a PoW, puzzle or image result as checked is now a single conditional write, and only the request that wins it is verified. The same applies to image captcha submissions: a request hash can now only be spent by one submission, so answers can no longer be tried in parallel against one challenge.
51
+ - 9ed0ac5: Web Bot Auth signatures are now held to the replay window the spec requires. A signature must carry `created`, `expires` and `tag="web-bot-auth"`. It is rejected if it was created in the future (allowing 5s of clock skew) or if it stays valid for more than 24 hours. Before this, a signature with no `expires` could be replayed forever.
52
+
53
+ The signer key directory is fetched more carefully, since its URL comes from a request header:
54
+ - The URL must be https and a public hostname. IP literals, localhost and dotless hosts are refused, except in test and development.
55
+ - The fetch times out after 3s and does not follow redirects.
56
+ - The body is capped at 64KiB.
57
+ - The cache holds at most 1000 entries, each for at most 24 hours.
58
+ - Updated dependencies [f650c66]
59
+ - Updated dependencies [59b7e87]
60
+ - Updated dependencies [b5e55a6]
61
+ - Updated dependencies [e5aefc6]
62
+ - Updated dependencies [d528f41]
63
+ - Updated dependencies [8933ad5]
64
+ - Updated dependencies [5375d10]
65
+ - Updated dependencies [294b480]
66
+ - Updated dependencies [0a4ae2f]
67
+ - Updated dependencies [0c8678e]
68
+ - Updated dependencies [b77c5f4]
69
+ - Updated dependencies [4109641]
70
+ - Updated dependencies [7065689]
71
+ - Updated dependencies [dab0338]
72
+ - Updated dependencies [dffecf0]
73
+ - Updated dependencies [0d29dde]
74
+ - Updated dependencies [fa316d6]
75
+ - Updated dependencies [9ed0ac5]
76
+ - @prosopo/database@4.1.0
77
+ - @prosopo/types-database@5.7.0
78
+ - @prosopo/types@5.11.0
79
+ - @prosopo/common@3.1.60
80
+ - @prosopo/load-balancer@2.11.2
81
+ - @prosopo/captcha-severity@1.1.2
82
+ - @prosopo/datasets@3.1.92
83
+ - @prosopo/locale@3.6.1
84
+ - @prosopo/native-ja4@0.0.7
85
+ - @prosopo/redis-client@1.0.38
86
+ - @prosopo/api@4.3.6
87
+ - @prosopo/util@3.3.12
88
+ - @prosopo/web-bot-auth@0.1.3
89
+ - @prosopo/env@3.6.65
90
+ - @prosopo/types-env@2.11.11
91
+ - @prosopo/api-express-router@3.1.96
92
+ - @prosopo/ipinfo@0.4.11
93
+ - @prosopo/keyring@2.9.98
94
+ - @prosopo/user-access-policy@3.14.12
95
+ - @prosopo/api-route@2.6.61
96
+ - @prosopo/logger@2.1.1
97
+
3
98
  ## 5.13.1
4
99
  ### Patch Changes
5
100
 
@@ -1,10 +1,10 @@
1
1
  import { type ApiEndpoint, type ApiEndpointResponse } from "@prosopo/api-route";
2
2
  import type { IIpInfoService } from "@prosopo/ipinfo";
3
3
  import { type Logger } from "@prosopo/logger";
4
- import { type DnsEvent, DnsEventBatchSchema } from "@prosopo/types";
4
+ import { type DnsEvent, DnsEventIngestBatchSchema } from "@prosopo/types";
5
5
  import type { IProviderDatabase } from "@prosopo/types-database";
6
6
  import type { z } from "zod";
7
- type DnsEventBatchSchemaType = typeof DnsEventBatchSchema;
7
+ type DnsEventBatchSchemaType = typeof DnsEventIngestBatchSchema;
8
8
  export declare const dnsEventToFields: (event: DnsEvent) => {
9
9
  resolverIp?: string;
10
10
  peerIp?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"apiDnsEventEndpoint.d.ts","sourceRoot":"","sources":["../../../src/api/admin/apiDnsEventEndpoint.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,KAAK,QAAQ,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAM7B,KAAK,uBAAuB,GAAG,OAAO,mBAAmB,CAAC;AAG1D,eAAO,MAAM,gBAAgB,UACrB,QAAQ,KACb;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAW7D,CAAC;AAEF,cAAM,mBAAoB,YAAW,WAAW,CAAC,uBAAuB,CAAC;IAEvE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gBADd,EAAE,EAAE,iBAAiB,EACrB,aAAa,CAAC,EAAE,cAAc,YAAA;IAG1C,cAAc,CACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,EACtC,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC;IAgDxB,oBAAoB,IAAI,uBAAuB;YAIxC,qBAAqB;CAkCnC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"apiDnsEventEndpoint.d.ts","sourceRoot":"","sources":["../../../src/api/admin/apiDnsEventEndpoint.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACN,KAAK,QAAQ,EACb,yBAAyB,EAEzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAU7B,KAAK,uBAAuB,GAAG,OAAO,yBAAyB,CAAC;AAGhE,eAAO,MAAM,gBAAgB,UACrB,QAAQ,KACb;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAW7D,CAAC;AAEF,cAAM,mBAAoB,YAAW,WAAW,CAAC,uBAAuB,CAAC;IAEvE,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;gBADd,EAAE,EAAE,iBAAiB,EACrB,aAAa,CAAC,EAAE,cAAc,YAAA;IAG1C,cAAc,CACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,EACtC,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC;IAuExB,oBAAoB,IAAI,uBAAuB;YAIxC,qBAAqB;CAkCnC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { computeDnsAsymmetry, enrichDnsEvent } from "../../tasks/dnsEvent/enrichDnsEvent.js";
2
2
  import { getLogger } from "@prosopo/logger";
3
- import { DnsEventBatchSchema } from "@prosopo/types";
3
+ import { DnsEventIngestBatchSchema, DnsEventSchema } from "@prosopo/types";
4
4
  import { ApiEndpointResponseStatus } from "@prosopo/api-route";
5
5
  //#region src/api/admin/apiDnsEventEndpoint.ts
6
+ var MAX_LOGGED_INVALID = 5;
6
7
  var dnsEventToFields = (event) => {
7
8
  if (event.kind === "dns") return { resolverIp: event.src_ip };
8
9
  const out = { peerIp: event.src_ip };
@@ -19,8 +20,20 @@ var ApiDnsEventEndpoint = class {
19
20
  const { events } = args;
20
21
  let stored = 0;
21
22
  let errors = 0;
23
+ let dropped = 0;
24
+ const invalid = [];
22
25
  const now = /* @__PURE__ */ new Date();
23
- for (const event of events) {
26
+ for (const [index, raw] of events.entries()) {
27
+ const parsed = DnsEventSchema.safeParse(raw);
28
+ if (!parsed.success) {
29
+ dropped += 1;
30
+ if (invalid.length < MAX_LOGGED_INVALID) invalid.push({
31
+ index,
32
+ issues: parsed.error.issues.map((issue) => `${issue.path.join(".")}: ${issue.message}`)
33
+ });
34
+ continue;
35
+ }
36
+ const event = parsed.data;
24
37
  const sessionId = event.jti;
25
38
  if (!sessionId) continue;
26
39
  try {
@@ -41,11 +54,20 @@ var ApiDnsEventEndpoint = class {
41
54
  }));
42
55
  }
43
56
  }
57
+ if (dropped > 0) logger.warn(() => ({
58
+ data: {
59
+ received: events.length,
60
+ dropped,
61
+ invalid
62
+ },
63
+ msg: "Dropped invalid DNS events from batch"
64
+ }));
44
65
  logger.info(() => ({
45
66
  data: {
46
67
  received: events.length,
47
68
  stored,
48
- errors
69
+ errors,
70
+ dropped
49
71
  },
50
72
  msg: "Processed DNS event batch"
51
73
  }));
@@ -53,12 +75,13 @@ var ApiDnsEventEndpoint = class {
53
75
  status: ApiEndpointResponseStatus.SUCCESS,
54
76
  data: {
55
77
  stored,
56
- errors
78
+ errors,
79
+ dropped
57
80
  }
58
81
  };
59
82
  }
60
83
  getRequestArgsSchema() {
61
- return DnsEventBatchSchema;
84
+ return DnsEventIngestBatchSchema;
62
85
  }
63
86
  async recomputeDnsAsymmetry(sessionId, logger) {
64
87
  if (!this.ipInfoService) return;
@@ -1 +1 @@
1
- {"version":3,"file":"apiDnsEventEndpoint.js","sourceRoot":"","sources":["../../../src/api/admin/apiDnsEventEndpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiDnsEventEndpoint.js","sourceRoot":"","sources":["../../../src/api/admin/apiDnsEventEndpoint.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;AAGrC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAuCtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBAq3BG"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAuCtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBA43BG"}
@@ -237,7 +237,7 @@ var handler_default = (env, userAccessRulesStorage) => async (req, res, next) =>
237
237
  method: req.method,
238
238
  url: `https://${req.headers.host ?? ""}${req.originalUrl ?? req.url}`,
239
239
  headers: flatten(req.headers)
240
- });
240
+ }, { allowLocalSigners: process.env.NODE_ENV === "test" || process.env.NODE_ENV === "development" });
241
241
  const verifiedSignerUrl = verified.verified ? verified.signerUrl : void 0;
242
242
  const userScope = getRequestUserScope(flatten(req.headers), req.ja4, normalizedIp, user, void 0, void 0, countryCode, asn, verifiedSignerUrl);
243
243
  const [decryptedPayload, validation, accessPolicies] = await Promise.all([