@prosopo/provider 4.11.0 → 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 +8 -8
- package/.turbo/turbo-build$colon$tsc.log +24 -24
- package/.turbo/turbo-build.log +10 -10
- package/CHANGELOG.md +61 -0
- package/dist/api/admin/apiRemoveDetectorKeyEndpoint.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +32 -33
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.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/getFrictionlessCaptchaChallenge/handler.cjs +32 -33
- 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/integration/mocks/solvedTestCaptchas.d.ts +1 -0
- package/dist/tests/integration/mocks/solvedTestCaptchas.d.ts.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 +14 -14
|
@@ -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,29 +127,29 @@ 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
|
|
137
137
|
[2mdist/cjs/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs [39m[1m[2m 9.54 kB[22m[1m[22m
|
|
138
138
|
[2mdist/cjs/[22m[36mapi/blacklistRequestInspector.cjs [39m[1m[2m10.00 kB[22m[1m[22m
|
|
139
|
-
[2mdist/cjs/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/handler.cjs [39m[1m[2m10.10 kB[22m[1m[22m
|
|
140
139
|
[2mdist/cjs/[22m[36mtasks/decisionMachine/decisionMachineRunner.cjs [39m[1m[2m10.19 kB[22m[1m[22m
|
|
140
|
+
[2mdist/cjs/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/handler.cjs [39m[1m[2m10.20 kB[22m[1m[22m
|
|
141
141
|
[2mdist/cjs/[22m[36mapi/verify.cjs [39m[1m[2m10.86 kB[22m[1m[22m
|
|
142
142
|
[2mdist/cjs/[22m[36mutil.cjs [39m[1m[2m12.59 kB[22m[1m[22m
|
|
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,28 +130,28 @@ 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
|
|
139
139
|
[2mdist/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js [39m[1m[2m 9.17 kB[22m[1m[22m
|
|
140
140
|
[2mdist/[22m[36mapi/blacklistRequestInspector.js [39m[1m[2m 9.75 kB[22m[1m[22m
|
|
141
|
-
[2mdist/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/handler.js [39m[1m[2m 9.
|
|
141
|
+
[2mdist/[22m[36mapi/captcha/getFrictionlessCaptchaChallenge/handler.js [39m[1m[2m 9.87 kB[22m[1m[22m
|
|
142
142
|
[2mdist/[22m[36mtasks/decisionMachine/decisionMachineRunner.js [39m[1m[2m10.14 kB[22m[1m[22m
|
|
143
143
|
[2mdist/[22m[36mapi/verify.js [39m[1m[2m10.44 kB[22m[1m[22m
|
|
144
144
|
[2mdist/[22m[36mutil.js [39m[1m[2m12.17 kB[22m[1m[22m
|
|
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,66 @@
|
|
|
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
|
+
|
|
34
|
+
## 4.11.1
|
|
35
|
+
### Patch Changes
|
|
36
|
+
|
|
37
|
+
- 4626340: perf(provider): cut p95 on /captcha/frictionless and /captcha/image
|
|
38
|
+
|
|
39
|
+
Replaces the `$match → $sample` random-captcha lookup with an indexed
|
|
40
|
+
range scan over a new `{datasetId, solved, randomKey}` compound index;
|
|
41
|
+
reorders the `sampleContextEntropy` aggregation so `$sample` runs
|
|
42
|
+
before `$lookup`; batches three pairs of independent awaits in the
|
|
43
|
+
frictionless handler via `Promise.all`. Adds an integration test
|
|
44
|
+
asserting via `.explain()` and wall-clock timing that the new paths
|
|
45
|
+
are quantifiably faster. The legacy aggregation remains as a fallback
|
|
46
|
+
in `getRandomCaptcha` so deployment can precede the
|
|
47
|
+
providerBackfillCaptchaRandomKey rollout.
|
|
48
|
+
- Updated dependencies [4626340]
|
|
49
|
+
- Updated dependencies [6962179]
|
|
50
|
+
- Updated dependencies [5f47c42]
|
|
51
|
+
- @prosopo/database@3.14.2
|
|
52
|
+
- @prosopo/types@4.6.1
|
|
53
|
+
- @prosopo/types-database@4.10.2
|
|
54
|
+
- @prosopo/user-access-policy@3.10.2
|
|
55
|
+
- @prosopo/api@3.4.14
|
|
56
|
+
- @prosopo/api-express-router@3.1.25
|
|
57
|
+
- @prosopo/datasets@3.1.34
|
|
58
|
+
- @prosopo/env@3.5.15
|
|
59
|
+
- @prosopo/ipinfo@0.2.20
|
|
60
|
+
- @prosopo/keyring@2.9.40
|
|
61
|
+
- @prosopo/load-balancer@2.9.16
|
|
62
|
+
- @prosopo/types-env@2.9.24
|
|
63
|
+
|
|
3
64
|
## 4.11.0
|
|
4
65
|
### Minor Changes
|
|
5
66
|
|
|
@@ -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":"handler.d.ts","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAmBtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,
|
|
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,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;8BAmBtD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBAgXG"}
|
|
@@ -61,11 +61,6 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
61
61
|
)
|
|
62
62
|
);
|
|
63
63
|
}
|
|
64
|
-
const tasks = new Tasks(env, req.logger);
|
|
65
|
-
const decodedSimdReadings = await decryptIncomingSimdReadings(
|
|
66
|
-
tasks.frictionlessManager,
|
|
67
|
-
simdReadings
|
|
68
|
-
);
|
|
69
64
|
if (isReservedTestSiteKey(dapp)) {
|
|
70
65
|
req.logger.warn(() => ({
|
|
71
66
|
msg: "Reserved TEST site key - returning invisible PoW session",
|
|
@@ -78,13 +73,13 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
78
73
|
)
|
|
79
74
|
);
|
|
80
75
|
}
|
|
76
|
+
const tasks = new Tasks(env, req.logger);
|
|
81
77
|
const userSitekeyIpHash = hashUserIp(user, normalizedIp, dapp);
|
|
82
|
-
const { existingToken, dedup } = await
|
|
83
|
-
tasks,
|
|
84
|
-
token,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
);
|
|
78
|
+
const [decodedSimdReadings, { existingToken, dedup }, clientRecord] = await Promise.all([
|
|
79
|
+
decryptIncomingSimdReadings(tasks.frictionlessManager, simdReadings),
|
|
80
|
+
resolveSessionDedup(tasks, token, userSitekeyIpHash, req.logger),
|
|
81
|
+
tasks.db.getClientRecord(dapp)
|
|
82
|
+
]);
|
|
88
83
|
if (existingToken) {
|
|
89
84
|
req.logger.info(() => ({
|
|
90
85
|
token: existingToken,
|
|
@@ -98,7 +93,6 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
98
93
|
})
|
|
99
94
|
);
|
|
100
95
|
}
|
|
101
|
-
const clientRecord = await tasks.db.getClientRecord(dapp);
|
|
102
96
|
if (!clientRecord) {
|
|
103
97
|
return next(
|
|
104
98
|
new ProsopoApiError("API.SITE_KEY_NOT_REGISTERED", {
|
|
@@ -159,6 +153,29 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
159
153
|
const lScore = tasks.frictionlessManager.checkLangRules(
|
|
160
154
|
req.headers["accept-language"] || ""
|
|
161
155
|
);
|
|
156
|
+
const userScope = getRequestUserScope(
|
|
157
|
+
flatten(req.headers),
|
|
158
|
+
req.ja4,
|
|
159
|
+
normalizedIp,
|
|
160
|
+
user,
|
|
161
|
+
void 0,
|
|
162
|
+
void 0,
|
|
163
|
+
countryCode,
|
|
164
|
+
asn
|
|
165
|
+
);
|
|
166
|
+
const [decryptedPayload, validation, accessPolicies] = await Promise.all([
|
|
167
|
+
tasks.frictionlessManager.decryptPayload(token, headHash),
|
|
168
|
+
tasks.frictionlessManager.isValidRequest(
|
|
169
|
+
clientRecord,
|
|
170
|
+
CaptchaType.frictionless,
|
|
171
|
+
env
|
|
172
|
+
),
|
|
173
|
+
tasks.frictionlessManager.getPrioritisedAccessPolicies(
|
|
174
|
+
userAccessRulesStorage,
|
|
175
|
+
dapp,
|
|
176
|
+
userScope
|
|
177
|
+
)
|
|
178
|
+
]);
|
|
162
179
|
const {
|
|
163
180
|
baseBotScore,
|
|
164
181
|
timestamp,
|
|
@@ -171,7 +188,7 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
171
188
|
decryptionFailed,
|
|
172
189
|
triggeredDetectors,
|
|
173
190
|
shadowDomPenalty
|
|
174
|
-
} =
|
|
191
|
+
} = decryptedPayload;
|
|
175
192
|
req.logger.debug(() => ({
|
|
176
193
|
msg: "Decrypted payload",
|
|
177
194
|
data: {
|
|
@@ -184,11 +201,7 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
184
201
|
}
|
|
185
202
|
}));
|
|
186
203
|
let botScore = baseBotScore + lScore;
|
|
187
|
-
const { valid, reason } =
|
|
188
|
-
clientRecord,
|
|
189
|
-
CaptchaType.frictionless,
|
|
190
|
-
env
|
|
191
|
-
);
|
|
204
|
+
const { valid, reason } = validation;
|
|
192
205
|
if (!valid) {
|
|
193
206
|
return next(
|
|
194
207
|
new ProsopoApiError(reason || "API.BAD_REQUEST", {
|
|
@@ -238,21 +251,7 @@ const getFrictionlessCaptchaChallenge = (env, userAccessRulesStorage) => async (
|
|
|
238
251
|
...req.ja4 && { ja4: req.ja4 }
|
|
239
252
|
}
|
|
240
253
|
});
|
|
241
|
-
const
|
|
242
|
-
flatten(req.headers),
|
|
243
|
-
req.ja4,
|
|
244
|
-
normalizedIp,
|
|
245
|
-
user,
|
|
246
|
-
void 0,
|
|
247
|
-
void 0,
|
|
248
|
-
countryCode,
|
|
249
|
-
asn
|
|
250
|
-
);
|
|
251
|
-
const userAccessPolicy = (await tasks.frictionlessManager.getPrioritisedAccessPolicies(
|
|
252
|
-
userAccessRulesStorage,
|
|
253
|
-
dapp,
|
|
254
|
-
userScope
|
|
255
|
-
))[0];
|
|
254
|
+
const userAccessPolicy = accessPolicies[0];
|
|
256
255
|
const accessPolicyOutcome = await handleAccessPolicy(
|
|
257
256
|
{
|
|
258
257
|
tasks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/api/captcha/getFrictionlessCaptchaChallenge/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|