@prosopo/provider 4.11.1 → 4.11.2
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.
- package/.turbo/turbo-build$colon$cjs.log +7 -7
- package/.turbo/turbo-build$colon$tsc.log +24 -24
- package/.turbo/turbo-build.log +9 -9
- package/CHANGELOG.md +31 -0
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.d.ts.map +1 -1
- package/dist/api/captcha/submitPoWCaptchaSolution.js +24 -3
- package/dist/api/captcha/submitPoWCaptchaSolution.js.map +1 -1
- package/dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs +24 -3
- package/dist/cjs/tasks/detection/decodeBehavior.cjs +243 -220
- package/dist/cjs/tasks/detection/decodeBehavior.js +1 -1
- package/dist/cjs/tasks/detection/decodePayload.cjs +383 -764
- package/dist/cjs/tasks/detection/decodePayload.js +1 -1
- package/dist/cjs/tasks/detection/decodeSimd.cjs +225 -238
- package/dist/cjs/tasks/detection/decodeSimd.js +1 -1
- package/dist/cjs/tasks/powCaptcha/powTasks.cjs +5 -1
- package/dist/cjs/tasks/spam/checkTrafficFilter.cjs +14 -1
- package/dist/tasks/detection/decodeBehavior.d.ts +2 -2
- package/dist/tasks/detection/decodeBehavior.d.ts.map +1 -1
- package/dist/tasks/detection/decodeBehavior.js +1 -1
- package/dist/tasks/detection/decodeBehavior.js.map +1 -1
- package/dist/tasks/detection/decodePayload.d.ts +2 -2
- package/dist/tasks/detection/decodePayload.d.ts.map +1 -1
- package/dist/tasks/detection/decodePayload.js +1 -1
- package/dist/tasks/detection/decodePayload.js.map +1 -1
- package/dist/tasks/detection/decodeSimd.d.ts +2 -2
- package/dist/tasks/detection/decodeSimd.d.ts.map +1 -1
- package/dist/tasks/detection/decodeSimd.js +1 -1
- package/dist/tasks/detection/decodeSimd.js.map +1 -1
- package/dist/tasks/detection/getBotScore.js +2 -2
- package/dist/tasks/powCaptcha/powTasks.d.ts.map +1 -1
- package/dist/tasks/powCaptcha/powTasks.js +5 -1
- package/dist/tasks/powCaptcha/powTasks.js.map +1 -1
- package/dist/tasks/spam/checkTrafficFilter.d.ts.map +1 -1
- package/dist/tasks/spam/checkTrafficFilter.js +14 -1
- package/dist/tasks/spam/checkTrafficFilter.js.map +1 -1
- package/dist/tests/integration/clientSettingsPersistence.integration.test.js +1 -0
- package/dist/tests/integration/clientSettingsPersistence.integration.test.js.map +1 -1
- package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js +84 -0
- package/dist/tests/unit/tasks/spam/checkTrafficFilter.unit.test.js.map +1 -1
- package/package.json +13 -13
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@4.11.
|
|
2
|
+
> @prosopo/provider@4.11.2 build:cjs
|
|
3
3
|
> NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
|
|
4
4
|
|
|
5
5
|
ViteCommonJSConfig: .
|
|
@@ -112,9 +112,9 @@ rendering chunks...
|
|
|
112
112
|
[2mdist/cjs/[22m[36mtasks/spam/updateSpamEmailDomains.cjs [39m[1m[2m 2.13 kB[22m[1m[22m
|
|
113
113
|
[2mdist/cjs/[22m[36mtasks/dnsEvent/enrichDnsEvent.cjs [39m[1m[2m 2.16 kB[22m[1m[22m
|
|
114
114
|
[2mdist/cjs/[22m[36mapi/captcha/maintenanceModeResponses.cjs [39m[1m[2m 2.20 kB[22m[1m[22m
|
|
115
|
-
[2mdist/cjs/[22m[36mtasks/spam/checkTrafficFilter.cjs [39m[1m[2m 2.24 kB[22m[1m[22m
|
|
116
115
|
[2mdist/cjs/[22m[36mapi/captcha/checkSpamEmail.cjs [39m[1m[2m 2.47 kB[22m[1m[22m
|
|
117
116
|
[2mdist/cjs/[22m[36mapi/captcha.cjs [39m[1m[2m 2.66 kB[22m[1m[22m
|
|
117
|
+
[2mdist/cjs/[22m[36mtasks/spam/checkTrafficFilter.cjs [39m[1m[2m 2.68 kB[22m[1m[22m
|
|
118
118
|
[2mdist/cjs/[22m[36mapi/ja4Middleware.cjs [39m[1m[2m 2.74 kB[22m[1m[22m
|
|
119
119
|
[2mdist/cjs/[22m[36mapi/captcha/submitPuzzleCaptchaSolution.cjs [39m[1m[2m 3.00 kB[22m[1m[22m
|
|
120
120
|
[2mdist/cjs/[22m[36mtasks/spam/evaluateEmailSpamRules.cjs [39m[1m[2m 3.03 kB[22m[1m[22m
|
|
@@ -127,10 +127,10 @@ rendering chunks...
|
|
|
127
127
|
[2mdist/cjs/[22m[36mindex.cjs [39m[1m[2m 4.01 kB[22m[1m[22m
|
|
128
128
|
[2mdist/cjs/[22m[36mservices/ipComparison.cjs [39m[1m[2m 4.10 kB[22m[1m[22m
|
|
129
129
|
[2mdist/cjs/[22m[36mtasks/spam/checkSpamEmail.cjs [39m[1m[2m 4.32 kB[22m[1m[22m
|
|
130
|
-
[2mdist/cjs/[22m[36mapi/captcha/submitPoWCaptchaSolution.cjs [39m[1m[2m 5.35 kB[22m[1m[22m
|
|
131
130
|
[2mdist/cjs/[22m[36mtasks/tasks.cjs [39m[1m[2m 5.35 kB[22m[1m[22m
|
|
132
131
|
[2mdist/cjs/[22m[36mutil/usageCounters.cjs [39m[1m[2m 5.80 kB[22m[1m[22m
|
|
133
132
|
[2mdist/cjs/[22m[36mapi/captcha/getImageCaptchaChallenge.cjs [39m[1m[2m 6.00 kB[22m[1m[22m
|
|
133
|
+
[2mdist/cjs/[22m[36mapi/captcha/submitPoWCaptchaSolution.cjs [39m[1m[2m 6.07 kB[22m[1m[22m
|
|
134
134
|
[2mdist/cjs/[22m[36mapi/captcha/getPoWCaptchaChallenge.cjs [39m[1m[2m 6.23 kB[22m[1m[22m
|
|
135
135
|
[2mdist/cjs/[22m[36mapi/captcha/getPuzzleCaptchaChallenge.cjs [39m[1m[2m 6.42 kB[22m[1m[22m
|
|
136
136
|
[2mdist/cjs/[22m[36mapi/startProviderApi.cjs [39m[1m[2m 9.53 kB[22m[1m[22m
|
|
@@ -143,13 +143,13 @@ rendering chunks...
|
|
|
143
143
|
[2mdist/cjs/[22m[36mtasks/client/clientTasks.cjs [39m[1m[2m15.63 kB[22m[1m[22m
|
|
144
144
|
[2mdist/cjs/[22m[36mtasks/captchaManager.cjs [39m[1m[2m16.08 kB[22m[1m[22m
|
|
145
145
|
[2mdist/cjs/[22m[36mtasks/frictionless/frictionlessTasks.cjs [39m[1m[2m16.20 kB[22m[1m[22m
|
|
146
|
-
[2mdist/cjs/[22m[36mtasks/detection/decodeSimd.cjs [39m[1m[2m18.20 kB[22m[1m[22m
|
|
147
146
|
[2mdist/cjs/[22m[36mtasks/detection/decodeBehavior.cjs [39m[1m[2m19.16 kB[22m[1m[22m
|
|
148
147
|
[2mdist/cjs/[22m[36mtasks/puzzleCaptcha/puzzleTasks.cjs [39m[1m[2m20.40 kB[22m[1m[22m
|
|
149
|
-
[2mdist/cjs/[22m[36mtasks/
|
|
148
|
+
[2mdist/cjs/[22m[36mtasks/detection/decodeSimd.cjs [39m[1m[2m21.53 kB[22m[1m[22m
|
|
149
|
+
[2mdist/cjs/[22m[36mtasks/powCaptcha/powTasks.cjs [39m[1m[2m22.69 kB[22m[1m[22m
|
|
150
150
|
[2mdist/cjs/[22m[36mtasks/imgCaptcha/imgCaptchaTasks.cjs [39m[1m[2m28.48 kB[22m[1m[22m
|
|
151
|
-
[2mdist/cjs/[22m[36mtasks/detection/decodePayload.cjs [39m[1m[
|
|
152
|
-
[32m✓ built in
|
|
151
|
+
[2mdist/cjs/[22m[36mtasks/detection/decodePayload.cjs [39m[1m[2m29.94 kB[22m[1m[22m
|
|
152
|
+
[32m✓ built in 732ms[39m
|
|
153
153
|
[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
|
|
154
154
|
[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
|
|
155
155
|
[copy-plugin] copying /home/runner/work/captcha/captcha/packages/provider/src/tasks/detection/decodeSimd.js to /home/runner/work/captcha/captcha/packages/provider/dist/cjs/tasks/detection/decodeSimd.js
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@4.11.
|
|
2
|
+
> @prosopo/provider@4.11.2 build:tsc
|
|
3
3
|
> tsc --build --verbose
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
12:06:36 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
|
-
|
|
28
|
+
12:06:36 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/vite/NodejsPolarsNativeFilePlugin.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
12:06:36 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
|
-
|
|
32
|
+
12:06:36 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/logger.ts' is older than output '../logger/tsconfig.tsbuildinfo'
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
12:06:36 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
|
-
|
|
36
|
+
12:06:36 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
|
-
|
|
38
|
+
12:06:36 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
|
-
|
|
40
|
+
12:06:36 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/keyring/keyring/types.ts' is older than output '../types/tsconfig.tsbuildinfo'
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
12:06:36 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
|
-
|
|
44
|
+
12:06:36 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
|
-
|
|
46
|
+
12:06:36 PM - Project '../redis-client/tsconfig.json' is up to date because newest input '../redis-client/src/index.ts' is older than output '../redis-client/tsconfig.tsbuildinfo'
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
12:06:36 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
|
-
|
|
50
|
+
12:06:36 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
|
-
|
|
52
|
+
12:06:36 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
|
-
|
|
54
|
+
12:06:36 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/unit/databases/centralDbStreamer.unit.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
12:06:36 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/keyring/keyring.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
12:06:36 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
|
-
|
|
60
|
+
12:06:36 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
|
-
|
|
62
|
+
12:06:36 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/apiExpressRouterFactory.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
12:06:36 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
|
-
|
|
66
|
+
12:06:36 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
|
-
|
|
68
|
+
12:06:36 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
12:06:36 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
|
|
71
71
|
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@4.11.
|
|
2
|
+
> @prosopo/provider@4.11.2 build
|
|
3
3
|
> npm run build:cross-env -- --mode ${NODE_ENV:-development}
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @prosopo/provider@4.11.
|
|
6
|
+
> @prosopo/provider@4.11.2 build:cross-env
|
|
7
7
|
> vite build --config vite.esm.config.ts --mode production
|
|
8
8
|
|
|
9
9
|
ViteEsmConfig: .
|
|
@@ -114,10 +114,10 @@ rendering chunks...
|
|
|
114
114
|
[2mdist/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js [39m[1m[2m 1.95 kB[22m[1m[22m
|
|
115
115
|
[2mdist/[22m[36mtasks/dnsEvent/enrichDnsEvent.js [39m[1m[2m 1.97 kB[22m[1m[22m
|
|
116
116
|
[2mdist/[22m[36mtasks/spam/updateSpamEmailDomains.js [39m[1m[2m 2.03 kB[22m[1m[22m
|
|
117
|
-
[2mdist/[22m[36mtasks/spam/checkTrafficFilter.js [39m[1m[2m 2.14 kB[22m[1m[22m
|
|
118
117
|
[2mdist/[22m[36mapi/ja4Middleware.js [39m[1m[2m 2.19 kB[22m[1m[22m
|
|
119
118
|
[2mdist/[22m[36mapi/captcha/checkSpamEmail.js [39m[1m[2m 2.39 kB[22m[1m[22m
|
|
120
119
|
[2mdist/[22m[36mapi/captcha.js [39m[1m[2m 2.49 kB[22m[1m[22m
|
|
120
|
+
[2mdist/[22m[36mtasks/spam/checkTrafficFilter.js [39m[1m[2m 2.57 kB[22m[1m[22m
|
|
121
121
|
[2mdist/[22m[36mutils/dns.js [39m[1m[2m 2.57 kB[22m[1m[22m
|
|
122
122
|
[2mdist/[22m[36mindex.js [39m[1m[2m 2.66 kB[22m[1m[22m
|
|
123
123
|
[2mdist/[22m[36mapi/admin/apiDnsEventEndpoint.js [39m[1m[2m 2.66 kB[22m[1m[22m
|
|
@@ -130,9 +130,9 @@ rendering chunks...
|
|
|
130
130
|
[2mdist/[22m[36mservices/ipComparison.js [39m[1m[2m 4.00 kB[22m[1m[22m
|
|
131
131
|
[2mdist/[22m[36mtasks/spam/checkSpamEmail.js [39m[1m[2m 4.26 kB[22m[1m[22m
|
|
132
132
|
[2mdist/[22m[36mtasks/tasks.js [39m[1m[2m 5.15 kB[22m[1m[22m
|
|
133
|
-
[2mdist/[22m[36mapi/captcha/submitPoWCaptchaSolution.js [39m[1m[2m 5.24 kB[22m[1m[22m
|
|
134
133
|
[2mdist/[22m[36mutil/usageCounters.js [39m[1m[2m 5.69 kB[22m[1m[22m
|
|
135
134
|
[2mdist/[22m[36mapi/captcha/getImageCaptchaChallenge.js [39m[1m[2m 5.81 kB[22m[1m[22m
|
|
135
|
+
[2mdist/[22m[36mapi/captcha/submitPoWCaptchaSolution.js [39m[1m[2m 5.96 kB[22m[1m[22m
|
|
136
136
|
[2mdist/[22m[36mapi/captcha/getPoWCaptchaChallenge.js [39m[1m[2m 6.00 kB[22m[1m[22m
|
|
137
137
|
[2mdist/[22m[36mapi/captcha/getPuzzleCaptchaChallenge.js [39m[1m[2m 6.17 kB[22m[1m[22m
|
|
138
138
|
[2mdist/[22m[36mapi/startProviderApi.js [39m[1m[2m 7.65 kB[22m[1m[22m
|
|
@@ -145,13 +145,13 @@ rendering chunks...
|
|
|
145
145
|
[2mdist/[22m[36mtasks/client/clientTasks.js [39m[1m[2m15.37 kB[22m[1m[22m
|
|
146
146
|
[2mdist/[22m[36mtasks/captchaManager.js [39m[1m[2m15.43 kB[22m[1m[22m
|
|
147
147
|
[2mdist/[22m[36mtasks/frictionless/frictionlessTasks.js [39m[1m[2m15.89 kB[22m[1m[22m
|
|
148
|
-
[2mdist/[22m[36mtasks/detection/
|
|
149
|
-
[2mdist/[22m[36mtasks/detection/decodeBehavior.js [39m[1m[2m19.03 kB[22m[1m[22m
|
|
148
|
+
[2mdist/[22m[36mtasks/detection/decodeBehavior.js [39m[1m[2m19.02 kB[22m[1m[22m
|
|
150
149
|
[2mdist/[22m[36mtasks/puzzleCaptcha/puzzleTasks.js [39m[1m[2m20.10 kB[22m[1m[22m
|
|
151
|
-
[2mdist/[22m[36mtasks/
|
|
150
|
+
[2mdist/[22m[36mtasks/detection/decodeSimd.js [39m[1m[2m21.39 kB[22m[1m[22m
|
|
151
|
+
[2mdist/[22m[36mtasks/powCaptcha/powTasks.js [39m[1m[2m22.29 kB[22m[1m[22m
|
|
152
152
|
[2mdist/[22m[36mtasks/imgCaptcha/imgCaptchaTasks.js [39m[1m[2m28.04 kB[22m[1m[22m
|
|
153
|
-
[2mdist/[22m[36mtasks/detection/decodePayload.js [39m[1m[
|
|
154
|
-
[32m✓ built in 1.
|
|
153
|
+
[2mdist/[22m[36mtasks/detection/decodePayload.js [39m[1m[2m29.92 kB[22m[1m[22m
|
|
154
|
+
[32m✓ built in 1.39s[39m
|
|
155
155
|
[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
|
|
156
156
|
[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
|
|
157
157
|
[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,36 @@
|
|
|
1
1
|
# @prosopo/provider
|
|
2
2
|
|
|
3
|
+
## 4.11.2
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- 3a46191: feat(traffic-filter): allowlist datacenter operators by name
|
|
7
|
+
|
|
8
|
+
Apple's iCloud Private Relay exits from datacenter IPs, so sites with
|
|
9
|
+
`blockDatacenter: true` were dropping legitimate Safari traffic. ipapi
|
|
10
|
+
already reports the operator name verbatim in `datacenter.datacenter`
|
|
11
|
+
— expose it on `IPInfoResult.datacenterName` and let `TrafficFilter`
|
|
12
|
+
carry an optional `datacenterNameAllowlist` so operators can opt the
|
|
13
|
+
relay traffic through without disabling the rest of the rule. Match
|
|
14
|
+
is case-/whitespace-insensitive; the allowlist only suppresses the
|
|
15
|
+
datacenter check, so a VPN/Tor/Proxy/Abuser hit on the same IP still
|
|
16
|
+
blocks. New field is wired through Zod (capped 50 × 128 chars) and
|
|
17
|
+
the Mongoose client settings schema so it persists.
|
|
18
|
+
- dde23e8: Internal bot-detection signal improvements.
|
|
19
|
+
- Updated dependencies [3a46191]
|
|
20
|
+
- Updated dependencies [dde23e8]
|
|
21
|
+
- @prosopo/ipinfo@0.2.21
|
|
22
|
+
- @prosopo/types@4.7.0
|
|
23
|
+
- @prosopo/types-database@4.10.3
|
|
24
|
+
- @prosopo/api@3.5.0
|
|
25
|
+
- @prosopo/env@3.5.16
|
|
26
|
+
- @prosopo/api-express-router@3.1.26
|
|
27
|
+
- @prosopo/database@3.14.3
|
|
28
|
+
- @prosopo/datasets@3.1.35
|
|
29
|
+
- @prosopo/keyring@2.9.41
|
|
30
|
+
- @prosopo/load-balancer@2.9.17
|
|
31
|
+
- @prosopo/types-env@2.9.25
|
|
32
|
+
- @prosopo/user-access-policy@3.10.3
|
|
33
|
+
|
|
3
34
|
## 4.11.1
|
|
4
35
|
### Patch Changes
|
|
5
36
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiRemoveDetectorKeyEndpoint.d.ts","sourceRoot":"","sources":["../../../src/api/admin/apiRemoveDetectorKeyEndpoint.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,KAAK,yBAAyB,GAAG,OAAO,yBAAyB,CAAC;AAElE,cAAM,4BACL,YAAW,WAAW,CAAC,yBAAyB,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAElE,cAAc,CACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,EACxC,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC;IA0BxB,oBAAoB;
|
|
1
|
+
{"version":3,"file":"apiRemoveDetectorKeyEndpoint.d.ts","sourceRoot":"","sources":["../../../src/api/admin/apiRemoveDetectorKeyEndpoint.ts"],"names":[],"mappings":"AAcA,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,KAAK,yBAAyB,GAAG,OAAO,yBAAyB,CAAC;AAElE,cAAM,4BACL,YAAW,WAAW,CAAC,yBAAyB,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAElE,cAAc,CACnB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,EACxC,MAAM,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC;IA0BxB,oBAAoB;qBAM+qnG,EAAG,SAAS;;;;;;;;;CAHttnG;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submitPoWCaptchaSolution.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/submitPoWCaptchaSolution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"submitPoWCaptchaSolution.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/submitPoWCaptchaSolution.ts"],"names":[],"mappings":"AAsBA,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,kBAAkB,CAAC;8BAOpC,mBAAmB,WAEjC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAJpB,wBAkLG"}
|
|
@@ -39,7 +39,8 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
|
|
|
39
39
|
behavioralData,
|
|
40
40
|
salt,
|
|
41
41
|
simdReadings,
|
|
42
|
-
clientMetaData
|
|
42
|
+
clientMetaData,
|
|
43
|
+
fingerprintProof
|
|
43
44
|
} = parsed;
|
|
44
45
|
validateSiteKey(dapp);
|
|
45
46
|
validateAddr(user);
|
|
@@ -65,6 +66,14 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
|
|
|
65
66
|
const flatHeaders = flatten(req.headers);
|
|
66
67
|
const userAgent = req.headers["user-agent"] ?? "";
|
|
67
68
|
const countryCode = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.countryCode : void 0;
|
|
69
|
+
req.logger.info(() => ({
|
|
70
|
+
msg: fingerprintProof ? "fingerprintProof detected" : "no fingerprintProof on PoW submission",
|
|
71
|
+
data: {
|
|
72
|
+
fingerprintProofPresent: fingerprintProof !== void 0,
|
|
73
|
+
fingerprintProofBytes: fingerprintProof?.length ?? 0,
|
|
74
|
+
challenge
|
|
75
|
+
}
|
|
76
|
+
}));
|
|
68
77
|
tasks.powCaptchaManager.setPostPowContext({
|
|
69
78
|
ip: req.ip || "",
|
|
70
79
|
countryCode,
|
|
@@ -74,7 +83,8 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
|
|
|
74
83
|
raw: {
|
|
75
84
|
headers: flatHeaders,
|
|
76
85
|
userAgent,
|
|
77
|
-
...req.ja4 && { ja4: req.ja4 }
|
|
86
|
+
...req.ja4 && { ja4: req.ja4 },
|
|
87
|
+
...fingerprintProof && { fingerprintProof }
|
|
78
88
|
}
|
|
79
89
|
});
|
|
80
90
|
const persistedSolutionTimeout = clientRecord.settings.solutionTimeout;
|
|
@@ -92,6 +102,16 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
|
|
|
92
102
|
simdReadings,
|
|
93
103
|
clientMetaData
|
|
94
104
|
);
|
|
105
|
+
if (result.routingOutput) {
|
|
106
|
+
req.logger.info(() => ({
|
|
107
|
+
msg: "post-PoW routing decision",
|
|
108
|
+
data: {
|
|
109
|
+
routedCaptchaType: result.routingOutput?.captchaType,
|
|
110
|
+
routingReason: result.routingOutput?.reason,
|
|
111
|
+
challenge
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
95
115
|
const escalation = await buildEscalation(tasks, result, challenge);
|
|
96
116
|
const response = {
|
|
97
117
|
status: "ok",
|
|
@@ -133,6 +153,7 @@ const buildEscalation = async (tasks, result, challenge) => {
|
|
|
133
153
|
);
|
|
134
154
|
if (!originSession) return void 0;
|
|
135
155
|
const routed = result.routingOutput;
|
|
156
|
+
const selectionReason = routed.reason ?? originSession.reason;
|
|
136
157
|
const newSession = await tasks.frictionlessManager.createSession(
|
|
137
158
|
originSession.token,
|
|
138
159
|
originSession.score,
|
|
@@ -148,7 +169,7 @@ const buildEscalation = async (tasks, result, challenge) => {
|
|
|
148
169
|
originSession.webView,
|
|
149
170
|
originSession.iFrame,
|
|
150
171
|
originSession.decryptedHeadHash,
|
|
151
|
-
|
|
172
|
+
selectionReason,
|
|
152
173
|
void 0,
|
|
153
174
|
void 0,
|
|
154
175
|
originSession.ipInfo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submitPoWCaptchaSolution.js","sourceRoot":"","sources":["../../../src/api/captcha/submitPoWCaptchaSolution.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACN,WAAW,
|
|
1
|
+
{"version":3,"file":"submitPoWCaptchaSolution.js","sourceRoot":"","sources":["../../../src/api/captcha/submitPoWCaptchaSolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,8 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
|
|
|
40
40
|
behavioralData,
|
|
41
41
|
salt,
|
|
42
42
|
simdReadings,
|
|
43
|
-
clientMetaData
|
|
43
|
+
clientMetaData,
|
|
44
|
+
fingerprintProof
|
|
44
45
|
} = parsed;
|
|
45
46
|
validateAddress.validateSiteKey(dapp);
|
|
46
47
|
validateAddress.validateAddr(user);
|
|
@@ -66,6 +67,14 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
|
|
|
66
67
|
const flatHeaders = util.flatten(req.headers);
|
|
67
68
|
const userAgent = req.headers["user-agent"] ?? "";
|
|
68
69
|
const countryCode = req.ipInfo && "isValid" in req.ipInfo && req.ipInfo.isValid ? req.ipInfo.countryCode : void 0;
|
|
70
|
+
req.logger.info(() => ({
|
|
71
|
+
msg: fingerprintProof ? "fingerprintProof detected" : "no fingerprintProof on PoW submission",
|
|
72
|
+
data: {
|
|
73
|
+
fingerprintProofPresent: fingerprintProof !== void 0,
|
|
74
|
+
fingerprintProofBytes: fingerprintProof?.length ?? 0,
|
|
75
|
+
challenge
|
|
76
|
+
}
|
|
77
|
+
}));
|
|
69
78
|
tasks$1.powCaptchaManager.setPostPowContext({
|
|
70
79
|
ip: req.ip || "",
|
|
71
80
|
countryCode,
|
|
@@ -75,7 +84,8 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
|
|
|
75
84
|
raw: {
|
|
76
85
|
headers: flatHeaders,
|
|
77
86
|
userAgent,
|
|
78
|
-
...req.ja4 && { ja4: req.ja4 }
|
|
87
|
+
...req.ja4 && { ja4: req.ja4 },
|
|
88
|
+
...fingerprintProof && { fingerprintProof }
|
|
79
89
|
}
|
|
80
90
|
});
|
|
81
91
|
const persistedSolutionTimeout = clientRecord.settings.solutionTimeout;
|
|
@@ -93,6 +103,16 @@ const submitPoWCaptchaSolution = (env) => async (req, res, next) => {
|
|
|
93
103
|
simdReadings,
|
|
94
104
|
clientMetaData
|
|
95
105
|
);
|
|
106
|
+
if (result.routingOutput) {
|
|
107
|
+
req.logger.info(() => ({
|
|
108
|
+
msg: "post-PoW routing decision",
|
|
109
|
+
data: {
|
|
110
|
+
routedCaptchaType: result.routingOutput?.captchaType,
|
|
111
|
+
routingReason: result.routingOutput?.reason,
|
|
112
|
+
challenge
|
|
113
|
+
}
|
|
114
|
+
}));
|
|
115
|
+
}
|
|
96
116
|
const escalation = await buildEscalation(tasks$1, result, challenge);
|
|
97
117
|
const response = {
|
|
98
118
|
status: "ok",
|
|
@@ -134,6 +154,7 @@ const buildEscalation = async (tasks2, result, challenge) => {
|
|
|
134
154
|
);
|
|
135
155
|
if (!originSession) return void 0;
|
|
136
156
|
const routed = result.routingOutput;
|
|
157
|
+
const selectionReason = routed.reason ?? originSession.reason;
|
|
137
158
|
const newSession = await tasks2.frictionlessManager.createSession(
|
|
138
159
|
originSession.token,
|
|
139
160
|
originSession.score,
|
|
@@ -149,7 +170,7 @@ const buildEscalation = async (tasks2, result, challenge) => {
|
|
|
149
170
|
originSession.webView,
|
|
150
171
|
originSession.iFrame,
|
|
151
172
|
originSession.decryptedHeadHash,
|
|
152
|
-
|
|
173
|
+
selectionReason,
|
|
153
174
|
void 0,
|
|
154
175
|
void 0,
|
|
155
176
|
originSession.ipInfo,
|