@prosopo/provider 5.10.1 → 5.10.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.
- package/.turbo/turbo-build$colon$cjs.log +12 -11
- package/.turbo/turbo-build$colon$tsc.log +27 -27
- package/.turbo/turbo-build.log +13 -12
- package/CHANGELOG.md +141 -0
- package/dist/api/captcha/assignDetectorBundle.d.ts.map +1 -1
- package/dist/api/captcha/assignDetectorBundle.js +27 -9
- package/dist/api/captcha/assignDetectorBundle.js.map +1 -1
- package/dist/api/captcha/assignDetectorBundle.unit.test.d.ts +2 -0
- package/dist/api/captcha/assignDetectorBundle.unit.test.d.ts.map +1 -0
- package/dist/api/captcha/assignDetectorBundle.unit.test.js +153 -0
- package/dist/api/captcha/assignDetectorBundle.unit.test.js.map +1 -0
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.d.ts.map +1 -1
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js +4 -2
- package/dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js.map +1 -1
- package/dist/cjs/api/captcha/assignDetectorBundle.cjs +26 -8
- package/dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs +4 -2
- package/dist/cjs/tasks/captchaManager.cjs +36 -4
- package/dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs +20 -17
- package/dist/cjs/tasks/detection/assignSecret.cjs +45 -0
- package/dist/cjs/tasks/detection/bundlePool.cjs +18 -11
- package/dist/cjs/tasks/detection/decodePayload.cjs +1140 -1105
- package/dist/cjs/tasks/detection/decodePayload.js +1 -1
- package/dist/cjs/tasks/detection/getBotScore.cjs +4 -2
- package/dist/cjs/tasks/frictionless/frictionlessTasks.cjs +7 -5
- package/dist/tasks/captchaManager.d.ts +2 -0
- package/dist/tasks/captchaManager.d.ts.map +1 -1
- package/dist/tasks/captchaManager.js +36 -4
- package/dist/tasks/captchaManager.js.map +1 -1
- package/dist/tasks/decisionMachine/decisionMachineRunner.d.ts +2 -0
- package/dist/tasks/decisionMachine/decisionMachineRunner.d.ts.map +1 -1
- package/dist/tasks/decisionMachine/decisionMachineRunner.js +20 -17
- package/dist/tasks/decisionMachine/decisionMachineRunner.js.map +1 -1
- package/dist/tasks/detection/assignSecret.d.ts +8 -0
- package/dist/tasks/detection/assignSecret.d.ts.map +1 -0
- package/dist/tasks/detection/assignSecret.js +45 -0
- package/dist/tasks/detection/assignSecret.js.map +1 -0
- package/dist/tasks/detection/bundlePool.d.ts +3 -1
- package/dist/tasks/detection/bundlePool.d.ts.map +1 -1
- package/dist/tasks/detection/bundlePool.js +18 -12
- package/dist/tasks/detection/bundlePool.js.map +1 -1
- package/dist/tasks/detection/bundlePool.test.js +40 -3
- package/dist/tasks/detection/bundlePool.test.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/getBotScore.d.ts +3 -1
- package/dist/tasks/detection/getBotScore.d.ts.map +1 -1
- package/dist/tasks/detection/getBotScore.js +5 -3
- package/dist/tasks/detection/getBotScore.js.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.d.ts +1 -0
- package/dist/tasks/frictionless/frictionlessTasks.d.ts.map +1 -1
- package/dist/tasks/frictionless/frictionlessTasks.js +7 -5
- package/dist/tasks/frictionless/frictionlessTasks.js.map +1 -1
- package/dist/tests/integration/decisionMachines.integration.test.js +65 -1
- package/dist/tests/integration/decisionMachines.integration.test.js.map +1 -1
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js +5 -3
- package/dist/tests/unit/schedulers/captchaScheduler.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/captchaManager.unit.test.js +46 -0
- package/dist/tests/unit/tasks/captchaManager.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.js +10 -9
- package/dist/tests/unit/tasks/client/clientTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js +9 -3
- package/dist/tests/unit/tasks/dataset/datasetTasks.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js +11 -6
- package/dist/tests/unit/tasks/dataset/datasetTasksUtils.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/decisionMachine/decisionMachineRunner.unit.test.js +38 -0
- package/dist/tests/unit/tasks/decisionMachine/decisionMachineRunner.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js +3 -3
- package/dist/tests/unit/tasks/detection/getBotScore.unit.test.js.map +1 -1
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js +78 -84
- package/dist/tests/unit/tasks/powCaptcha/powTasks.unit.test.js.map +1 -1
- package/package.json +28 -28
- package/dist/api/captcha/assignDetectorBundle.test.d.ts +0 -2
- package/dist/api/captcha/assignDetectorBundle.test.d.ts.map +0 -1
- package/dist/api/captcha/assignDetectorBundle.test.js +0 -71
- package/dist/api/captcha/assignDetectorBundle.test.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@5.10.
|
|
2
|
+
> @prosopo/provider@5.10.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
|
[36mvite v8.1.5 [32mbuilding ssr environment for production...[36m[39m
|
|
60
60
|
Bundle build started
|
|
61
61
|
[2K
|
|
62
|
-
✓
|
|
62
|
+
✓ 111 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
|
|
@@ -99,6 +99,7 @@ dist/cjs/tasks/puzzle/backgroundBuffer.cjs 1
|
|
|
99
99
|
dist/cjs/pairs.cjs 1.39 kB │ gzip: 0.60 kB
|
|
100
100
|
dist/cjs/tasks/dataset/datasetTasksUtils.cjs 1.42 kB │ gzip: 0.49 kB
|
|
101
101
|
dist/cjs/utils/clientMetaData.cjs 1.48 kB │ gzip: 0.72 kB
|
|
102
|
+
dist/cjs/tasks/detection/assignSecret.cjs 1.48 kB │ gzip: 0.75 kB
|
|
102
103
|
dist/cjs/compositeIpAddress.cjs 1.55 kB │ gzip: 0.57 kB
|
|
103
104
|
dist/cjs/api/admin/apiGetAllDecisionMachinesEndpoint.cjs 1.59 kB │ gzip: 0.60 kB
|
|
104
105
|
dist/cjs/schedulers/updateSpamEmailDomains.cjs 1.64 kB │ gzip: 0.62 kB
|
|
@@ -114,7 +115,6 @@ dist/cjs/utils/honeypot/phraseBank.cjs 1
|
|
|
114
115
|
dist/cjs/api/handshakeTimingMiddleware.cjs 1.88 kB │ gzip: 0.71 kB
|
|
115
116
|
dist/cjs/api/captcha/signedAssetsResolver.cjs 1.96 kB │ gzip: 0.96 kB
|
|
116
117
|
dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs 2.01 kB │ gzip: 0.78 kB
|
|
117
|
-
dist/cjs/api/captcha/assignDetectorBundle.cjs 2.03 kB │ gzip: 0.86 kB
|
|
118
118
|
dist/cjs/tasks/frictionless/ipMatch.cjs 2.03 kB │ gzip: 1.03 kB
|
|
119
119
|
dist/cjs/tasks/spam/updateSpamEmailDomains.cjs 2.12 kB │ gzip: 0.85 kB
|
|
120
120
|
dist/cjs/tasks/frictionless/routingMachine.cjs 2.17 kB │ gzip: 0.91 kB
|
|
@@ -123,13 +123,14 @@ dist/cjs/tasks/puzzle/stratifiedSampler.cjs 2
|
|
|
123
123
|
dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs 2.21 kB │ gzip: 1.10 kB
|
|
124
124
|
dist/cjs/tasks/captchaTypeSelection.cjs 2.44 kB │ gzip: 1.04 kB
|
|
125
125
|
dist/cjs/api/admin/apiDnsEventEndpoint.cjs 2.59 kB │ gzip: 1.00 kB
|
|
126
|
-
dist/cjs/tasks/detection/getBotScore.cjs 2.60 kB │ gzip: 0.95 kB
|
|
127
126
|
dist/cjs/utils/dns.cjs 2.66 kB │ gzip: 1.02 kB
|
|
128
127
|
dist/cjs/api/forwardVerify.cjs 2.66 kB │ gzip: 1.12 kB
|
|
129
128
|
dist/cjs/tasks/puzzle/puzzleDifficulty.cjs 2.66 kB │ gzip: 1.10 kB
|
|
130
129
|
dist/cjs/api/public.cjs 2.67 kB │ gzip: 1.05 kB
|
|
130
|
+
dist/cjs/tasks/detection/getBotScore.cjs 2.67 kB │ gzip: 0.97 kB
|
|
131
131
|
dist/cjs/api/captcha/checkSpamEmail.cjs 2.73 kB │ gzip: 0.95 kB
|
|
132
132
|
dist/cjs/api/captcha/submitPuzzleCaptchaSolution.cjs 2.77 kB │ gzip: 0.99 kB
|
|
133
|
+
dist/cjs/api/captcha/assignDetectorBundle.cjs 2.90 kB │ gzip: 1.15 kB
|
|
133
134
|
dist/cjs/api/captcha/maintenanceModeResponses.cjs 2.91 kB │ gzip: 0.77 kB
|
|
134
135
|
dist/cjs/api/captcha/submitImageCaptchaSolution.cjs 2.93 kB │ gzip: 1.03 kB
|
|
135
136
|
dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs 3.66 kB │ gzip: 1.35 kB
|
|
@@ -154,26 +155,26 @@ dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 7
|
|
|
154
155
|
dist/cjs/tasks/spam/checkTrafficFilter.cjs 7.47 kB │ gzip: 2.48 kB
|
|
155
156
|
dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs 7.56 kB │ gzip: 2.03 kB
|
|
156
157
|
dist/cjs/api/metrics.cjs 7.96 kB │ gzip: 2.23 kB
|
|
157
|
-
dist/cjs/tasks/detection/bundlePool.cjs
|
|
158
|
+
dist/cjs/tasks/detection/bundlePool.cjs 9.12 kB │ gzip: 3.34 kB
|
|
158
159
|
dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs 9.54 kB │ gzip: 2.81 kB
|
|
159
160
|
dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.cjs 10.33 kB │ gzip: 1.82 kB
|
|
160
161
|
dist/cjs/api/startProviderApi.cjs 11.62 kB │ gzip: 3.70 kB
|
|
161
162
|
dist/cjs/tasks/client/clientTasks.cjs 11.73 kB │ gzip: 3.04 kB
|
|
162
|
-
dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs 12.
|
|
163
|
+
dist/cjs/tasks/decisionMachine/decisionMachineRunner.cjs 12.57 kB │ gzip: 3.87 kB
|
|
163
164
|
dist/cjs/api/blacklistRequestInspector.cjs 13.10 kB │ gzip: 4.41 kB
|
|
164
165
|
dist/cjs/util.cjs 13.15 kB │ gzip: 3.26 kB
|
|
165
166
|
dist/cjs/api/verify.cjs 16.79 kB │ gzip: 2.93 kB
|
|
166
|
-
dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 20.
|
|
167
|
-
dist/cjs/tasks/frictionless/frictionlessTasks.cjs 20.
|
|
168
|
-
dist/cjs/tasks/captchaManager.cjs
|
|
167
|
+
dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/handler.cjs 20.65 kB │ gzip: 4.74 kB
|
|
168
|
+
dist/cjs/tasks/frictionless/frictionlessTasks.cjs 20.75 kB │ gzip: 5.51 kB
|
|
169
|
+
dist/cjs/tasks/captchaManager.cjs 23.59 kB │ gzip: 6.81 kB
|
|
169
170
|
dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 24.03 kB │ gzip: 5.15 kB
|
|
170
171
|
dist/cjs/tasks/powCaptcha/powTasks.cjs 24.84 kB │ gzip: 5.97 kB
|
|
171
172
|
dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs 27.96 kB │ gzip: 6.37 kB
|
|
172
173
|
dist/cjs/tasks/detection/decodeBehavior.cjs 32.24 kB │ gzip: 10.32 kB
|
|
173
174
|
dist/cjs/tasks/detection/decodeSimd.cjs 36.03 kB │ gzip: 11.96 kB
|
|
174
|
-
dist/cjs/tasks/detection/decodePayload.cjs 54.
|
|
175
|
+
dist/cjs/tasks/detection/decodePayload.cjs 54.63 kB │ gzip: 19.30 kB
|
|
175
176
|
|
|
176
|
-
[32m✓ built in
|
|
177
|
+
[32m✓ built in 180ms[39m
|
|
177
178
|
[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
|
|
178
179
|
[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
|
|
179
180
|
[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.10.
|
|
2
|
+
> @prosopo/provider@5.10.3 build:tsc
|
|
3
3
|
> tsc --build --verbose
|
|
4
4
|
|
|
5
|
-
1:
|
|
5
|
+
1:05:09 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
|
-
1:
|
|
31
|
+
1:05:09 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
|
-
1:
|
|
33
|
+
1:05:09 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
|
-
1:
|
|
35
|
+
1:05:09 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
|
-
1:
|
|
37
|
+
1:05:09 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
|
-
1:
|
|
39
|
+
1:05:09 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
|
-
1:
|
|
41
|
+
1:05:09 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
|
-
1:
|
|
43
|
+
1:05:09 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
|
-
1:
|
|
45
|
+
1:05:09 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/utils/batches.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
|
|
46
46
|
|
|
47
|
-
1:
|
|
47
|
+
1:05:09 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
|
-
1:
|
|
49
|
+
1:05:09 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'
|
|
50
50
|
|
|
51
|
-
1:
|
|
51
|
+
1:05:09 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
|
-
1:
|
|
53
|
+
1:05:09 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
|
-
1:
|
|
55
|
+
1:05:09 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
|
-
1:
|
|
57
|
+
1:05:09 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/mongoGlobalSetup.ts' is older than output '../database/tsconfig.tsbuildinfo'
|
|
58
58
|
|
|
59
|
-
1:
|
|
59
|
+
1:05:09 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/pair/decode.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
|
|
60
60
|
|
|
61
|
-
1:
|
|
61
|
+
1:05:09 PM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/tests/typesEnv.test-d.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
|
|
62
62
|
|
|
63
|
-
1:
|
|
63
|
+
1:05:09 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'
|
|
64
64
|
|
|
65
|
-
1:
|
|
65
|
+
1:05:09 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
|
-
1:
|
|
67
|
+
1:05:09 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'
|
|
68
68
|
|
|
69
|
-
1:
|
|
69
|
+
1:05:09 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/tests/mocks/data/captchas.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
|
|
70
70
|
|
|
71
|
-
1:
|
|
71
|
+
1:05:09 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/tests/productionProviderList.unit.test.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
|
|
72
72
|
|
|
73
|
-
1:
|
|
73
|
+
1:05:09 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
|
-
1:
|
|
75
|
+
1:05:09 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
|
-
1:
|
|
77
|
+
1:05:09 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
78
78
|
|
|
79
|
-
1:
|
|
79
|
+
1:05:09 PM - Building project '/home/runner/work/captcha/captcha/packages/provider/tsconfig.json'...
|
|
80
80
|
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@5.10.
|
|
2
|
+
> @prosopo/provider@5.10.3 build
|
|
3
3
|
> npm run build:cross-env -- --mode ${NODE_ENV:-development}
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @prosopo/provider@5.10.
|
|
6
|
+
> @prosopo/provider@5.10.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
|
[36mvite v8.1.5 [32mbuilding ssr environment for production...[36m[39m
|
|
64
64
|
Bundle build started
|
|
65
65
|
[2K
|
|
66
|
-
✓
|
|
66
|
+
✓ 111 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
|
|
@@ -103,6 +103,7 @@ dist/api/admin/apiRemoveAllDecisionMachinesEndpoint.js 1.27 k
|
|
|
103
103
|
dist/api/admin/apiRemoveDecisionMachineEndpoint.js 1.29 kB │ gzip: 0.51 kB
|
|
104
104
|
dist/tasks/dataset/datasetTasksUtils.js 1.30 kB │ gzip: 0.48 kB
|
|
105
105
|
dist/compositeIpAddress.js 1.36 kB │ gzip: 0.55 kB
|
|
106
|
+
dist/tasks/detection/assignSecret.js 1.42 kB │ gzip: 0.74 kB
|
|
106
107
|
dist/utils/clientMetaData.js 1.42 kB │ gzip: 0.72 kB
|
|
107
108
|
dist/api/admin/apiGetAllDecisionMachinesEndpoint.js 1.48 kB │ gzip: 0.57 kB
|
|
108
109
|
dist/schedulers/updateSpamEmailDomains.js 1.52 kB │ gzip: 0.60 kB
|
|
@@ -119,7 +120,6 @@ dist/api/handshakeTimingMiddleware.js 1.75 k
|
|
|
119
120
|
dist/tasks/spam/updateSpamEmailDomains.js 1.87 kB │ gzip: 0.77 kB
|
|
120
121
|
dist/api/captcha/signedAssetsResolver.js 1.89 kB │ gzip: 0.94 kB
|
|
121
122
|
dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
|
|
122
|
-
dist/api/captcha/assignDetectorBundle.js 1.90 kB │ gzip: 0.84 kB
|
|
123
123
|
dist/tasks/frictionless/ipMatch.js 1.98 kB │ gzip: 1.02 kB
|
|
124
124
|
dist/migrations/frictionlessLadder.js 2.12 kB │ gzip: 0.93 kB
|
|
125
125
|
dist/tasks/puzzle/stratifiedSampler.js 2.14 kB │ gzip: 1.07 kB
|
|
@@ -132,10 +132,11 @@ dist/utils/dns.js 2.36 k
|
|
|
132
132
|
dist/api/admin/apiDnsEventEndpoint.js 2.43 kB │ gzip: 0.96 kB
|
|
133
133
|
dist/api/captcha/checkSpamEmail.js 2.47 kB │ gzip: 0.91 kB
|
|
134
134
|
dist/tasks/puzzle/puzzleDifficulty.js 2.50 kB │ gzip: 1.09 kB
|
|
135
|
-
dist/tasks/detection/getBotScore.js 2.52 kB │ gzip: 0.94 kB
|
|
136
135
|
dist/api/captcha/submitPuzzleCaptchaSolution.js 2.55 kB │ gzip: 0.96 kB
|
|
137
136
|
dist/api/forwardVerify.js 2.59 kB │ gzip: 1.10 kB
|
|
138
137
|
dist/api/captcha/submitImageCaptchaSolution.js 2.59 kB │ gzip: 1.00 kB
|
|
138
|
+
dist/tasks/detection/getBotScore.js 2.59 kB │ gzip: 0.95 kB
|
|
139
|
+
dist/api/captcha/assignDetectorBundle.js 2.69 kB │ gzip: 1.11 kB
|
|
139
140
|
dist/api/admin/apiAdminRoutesProvider.js 2.78 kB │ gzip: 0.55 kB
|
|
140
141
|
dist/index.js 2.92 kB │ gzip: 0.80 kB
|
|
141
142
|
dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.39 kB │ gzip: 1.32 kB
|
|
@@ -158,26 +159,26 @@ dist/api/captcha/getPuzzleCaptchaChallenge.js 6.84 k
|
|
|
158
159
|
dist/api/healthzGeo.js 6.86 kB │ gzip: 2.68 kB
|
|
159
160
|
dist/tasks/spam/checkTrafficFilter.js 7.16 kB │ gzip: 2.45 kB
|
|
160
161
|
dist/api/metrics.js 7.36 kB │ gzip: 2.19 kB
|
|
161
|
-
dist/tasks/detection/bundlePool.js 8.
|
|
162
|
+
dist/tasks/detection/bundlePool.js 8.69 kB │ gzip: 3.30 kB
|
|
162
163
|
dist/api/captcha/submitPoWCaptchaSolution.js 9.02 kB │ gzip: 2.76 kB
|
|
163
164
|
dist/api/captcha/getFrictionlessCaptchaChallenge/decisionMachine.js 9.36 kB │ gzip: 1.80 kB
|
|
164
165
|
dist/api/startProviderApi.js 9.93 kB │ gzip: 3.42 kB
|
|
165
166
|
dist/tasks/client/clientTasks.js 11.27 kB │ gzip: 3.00 kB
|
|
166
|
-
dist/tasks/decisionMachine/decisionMachineRunner.js
|
|
167
|
+
dist/tasks/decisionMachine/decisionMachineRunner.js 12.19 kB │ gzip: 3.81 kB
|
|
167
168
|
dist/api/blacklistRequestInspector.js 12.46 kB │ gzip: 4.37 kB
|
|
168
169
|
dist/util.js 12.47 kB │ gzip: 3.20 kB
|
|
169
170
|
dist/api/verify.js 15.12 kB │ gzip: 2.82 kB
|
|
170
|
-
dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 19.
|
|
171
|
-
dist/tasks/frictionless/frictionlessTasks.js 20.
|
|
172
|
-
dist/tasks/captchaManager.js 21.92 kB │ gzip: 6.32 kB
|
|
171
|
+
dist/api/captcha/getFrictionlessCaptchaChallenge/handler.js 19.13 kB │ gzip: 4.63 kB
|
|
172
|
+
dist/tasks/frictionless/frictionlessTasks.js 20.18 kB │ gzip: 5.48 kB
|
|
173
173
|
dist/tasks/puzzleCaptcha/puzzleTasks.js 22.62 kB │ gzip: 5.10 kB
|
|
174
|
+
dist/tasks/captchaManager.js 23.08 kB │ gzip: 6.74 kB
|
|
174
175
|
dist/tasks/powCaptcha/powTasks.js 23.47 kB │ gzip: 5.93 kB
|
|
175
176
|
dist/tasks/imgCaptcha/imgCaptchaTasks.js 26.44 kB │ gzip: 6.31 kB
|
|
176
177
|
dist/tasks/detection/decodeBehavior.js 32.26 kB │ gzip: 10.34 kB
|
|
177
178
|
dist/tasks/detection/decodeSimd.js 36.06 kB │ gzip: 12.00 kB
|
|
178
|
-
dist/tasks/detection/decodePayload.js 54.
|
|
179
|
+
dist/tasks/detection/decodePayload.js 54.54 kB │ gzip: 19.29 kB
|
|
179
180
|
|
|
180
|
-
[32m✓ built in
|
|
181
|
+
[32m✓ built in 152ms[39m
|
|
181
182
|
[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
|
|
182
183
|
[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
|
|
183
184
|
[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,146 @@
|
|
|
1
1
|
# @prosopo/provider
|
|
2
2
|
|
|
3
|
+
## 5.10.3
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- f4e4a83: chore(deps): roll up the open dependabot bumps (react 19.3, mongoose 9.10, @polkadot/util 14, redis 6, cron-parser 5, react-i18next 17 with i18next 26, @scure/base 2, cypress 16, rollup/babel plugin majors, vitest 4.1.11, angular 20.3.28, js-yaml)
|
|
7
|
+
- c386199: Carry each detector bundle's `payloadLayout` from its pool entry through to the decoder.
|
|
8
|
+
|
|
9
|
+
Pool bundles now ship an extra opaque per-bundle value alongside the private key and inner config, and the decoder needs it to read what that bundle's detector produced. The pool loader reads it from `{id}.json`, the persist and admin-push paths keep it, and the frictionless decrypt passes it to `decodePayload` along with the key.
|
|
10
|
+
|
|
11
|
+
Bundles without one — pools built before this — behave exactly as before, so a provider can be updated ahead of its pool.
|
|
12
|
+
|
|
13
|
+
Covered by pool tests that the value survives load, persist and reload, and by the existing decrypt tests.
|
|
14
|
+
- 4d45e3d: Stop `DecisionMachineRunner` retaining every instance, and re-roll the frictionless widget onto another provider on an unrecognised error.
|
|
15
|
+
|
|
16
|
+
`DecisionMachineRunner` enrolled itself in a module-level `Set` so an artifact upload could flush every runner's cache. That assumed runners were built once per process; they are built per request, and nothing pruned the set, so it grew for as long as the process lived and construction eventually began to fail. `WeakRef` did not bound it — the set held the wrapper, which outlives its referent. The registry is replaced by a generation counter: an invalidation bumps it, and a runner drops its cache when the value it carries no longer matches. Nothing holds a runner reference, so there is nothing to grow.
|
|
17
|
+
|
|
18
|
+
The widget compounded it. The HTTP client does not throw on a 400 with a JSON body, so a provider-side failure came back looking like a normal result, and the frictionless guard turned it into a terminal error — no fallback, no retry, no restart timer. One unhealthy provider stranded the user on its first response even when every other node was healthy. Errors whose key we do not recognise are now thrown, which hands them to the existing provider re-roll. Integration faults (site key, origin, captcha type) and policy denials still display as before: another provider returns the same answer, and for those the message is the point. Errors with no key at all are unchanged, since hard blocks arrive in that shape. A site's error callback now also fires once retries are exhausted, which it previously did not.
|
|
19
|
+
- Updated dependencies [f4e4a83]
|
|
20
|
+
- Updated dependencies [c386199]
|
|
21
|
+
- Updated dependencies [d710b7f]
|
|
22
|
+
- Updated dependencies [d4e9425]
|
|
23
|
+
- Updated dependencies [ae121df]
|
|
24
|
+
- Updated dependencies [0be8838]
|
|
25
|
+
- @prosopo/api-express-router@3.1.88
|
|
26
|
+
- @prosopo/captcha-severity@1.1.1
|
|
27
|
+
- @prosopo/common@3.1.56
|
|
28
|
+
- @prosopo/database@4.0.34
|
|
29
|
+
- @prosopo/datasets@3.1.83
|
|
30
|
+
- @prosopo/keyring@2.9.90
|
|
31
|
+
- @prosopo/locale@3.4.3
|
|
32
|
+
- @prosopo/native-ja4@0.0.6
|
|
33
|
+
- @prosopo/native-merkle@0.0.6
|
|
34
|
+
- @prosopo/redis-client@1.0.36
|
|
35
|
+
- @prosopo/types-database@5.5.4
|
|
36
|
+
- @prosopo/types@5.8.4
|
|
37
|
+
- @prosopo/user-access-policy@3.14.4
|
|
38
|
+
- @prosopo/util-crypto@13.5.32
|
|
39
|
+
- @prosopo/web-bot-auth@0.1.1
|
|
40
|
+
- @prosopo/util@3.3.10
|
|
41
|
+
- @prosopo/api@4.2.4
|
|
42
|
+
- @prosopo/api-route@2.6.59
|
|
43
|
+
- @prosopo/env@3.6.57
|
|
44
|
+
- @prosopo/ipinfo@0.4.3
|
|
45
|
+
- @prosopo/load-balancer@2.10.45
|
|
46
|
+
- @prosopo/logger@2.0.10
|
|
47
|
+
- @prosopo/types-env@2.11.3
|
|
48
|
+
|
|
49
|
+
## 5.10.2
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- 98ab052: Serve a repeat caller the same detector bundle.
|
|
53
|
+
|
|
54
|
+
`/detector/assign` picked a bundle at random on every request. The provider now
|
|
55
|
+
records which bundle it served a caller and returns that one for a bounded
|
|
56
|
+
period, so a returning visitor gets a stable bundle instead of a fresh draw each
|
|
57
|
+
time. Any bundle performs identically, so this is not visible to users. If Redis
|
|
58
|
+
cannot answer, assign falls back to the previous behaviour rather than failing.
|
|
59
|
+
|
|
60
|
+
Also fixes the `assignDetectorBundle` tests, which were failing on main and had
|
|
61
|
+
gone unnoticed because the file was named `*.test.ts` while CI only runs
|
|
62
|
+
`*.unit.test.ts`. Renamed so it runs, and replaced the mock that
|
|
63
|
+
`clearAllMocks` was silently emptying.
|
|
64
|
+
- 028a158: Add optional field `dz` to detector payload
|
|
65
|
+
- 1f0598c: Derive the detector bundle for a caller instead of storing it.
|
|
66
|
+
|
|
67
|
+
`assignDetectorBundle` now picks the bundle with a keyed hash of the caller's
|
|
68
|
+
address, using a per-provider secret kept on the pool volume. Same caller, same
|
|
69
|
+
bundle, with nothing recorded and nothing to expire — which also means the
|
|
70
|
+
result no longer changes when the cache is unavailable.
|
|
71
|
+
|
|
72
|
+
Replaces the Redis client → bundle entry added in the previous patch, so
|
|
73
|
+
`bindDetectorBundleToClient` and its TTL constant are gone.
|
|
74
|
+
- 3958046: Keep a detector bundle binding for as long as its payload is accepted
|
|
75
|
+
|
|
76
|
+
The `detectorSessionId → bundleId` binding held the only key able to read a
|
|
77
|
+
detector payload, and expired after 60 seconds. The frictionless flow accepts a
|
|
78
|
+
payload for ten minutes (`DEFAULT_MAX_TIMESTAMP_AGE`). For nine of those ten
|
|
79
|
+
minutes the provider would therefore accept a payload it had already discarded
|
|
80
|
+
the means to decrypt: `resolveDecryptAttempts` returns an empty key list, the
|
|
81
|
+
decrypt loop never runs, the score is forced to 1 and the caller is challenged
|
|
82
|
+
despite nothing having been measured about them.
|
|
83
|
+
|
|
84
|
+
Sixty seconds is ample for the assign → submit gap in the normal case — it is
|
|
85
|
+
around 1.5s — but it only has to stall once to be lost, and a backgrounded
|
|
86
|
+
mobile tab is enough.
|
|
87
|
+
|
|
88
|
+
The two values are now one value. `DEFAULT_MAX_TIMESTAMP_AGE` moves from a
|
|
89
|
+
private constant in `frictionlessTasks` to `@prosopo/types`, the only package
|
|
90
|
+
both the provider and the database can see, and `DETECTOR_BUNDLE_TTL_SECONDS` is
|
|
91
|
+
derived from it instead of being written down a second time. A unit test pins
|
|
92
|
+
the relationship so they cannot drift apart again.
|
|
93
|
+
|
|
94
|
+
The TTL cannot now outlive the payload-age check, so this does not widen the
|
|
95
|
+
window in which any payload is usable. Bundle selection is unaffected: which
|
|
96
|
+
bundle a caller receives is derived from their IP and a server secret, not from
|
|
97
|
+
this binding's lifetime.
|
|
98
|
+
- 0cdf286: Log why a detector bundle could not be resolved
|
|
99
|
+
|
|
100
|
+
`resolveBundleByDetectorSession` returns undefined on three unrelated
|
|
101
|
+
conditions: the caller sent no detector session id, the
|
|
102
|
+
`detectorSessionId → bundleId` Redis binding was absent or had expired, or the
|
|
103
|
+
binding named a bundle this provider no longer holds in its pool.
|
|
104
|
+
|
|
105
|
+
All three surface downstream as the same thing — `resolveDecryptAttempts`
|
|
106
|
+
hands back an empty key list, the decrypt loop never runs, and the score is
|
|
107
|
+
forced to 1 with `DECRYPTION_FAILED`, so the caller is challenged despite
|
|
108
|
+
nothing having been measured about it. They need different fixes, but nothing
|
|
109
|
+
recorded which one had happened: the only line carrying that detail logged at
|
|
110
|
+
`debug`, which is below the level aggregated log search runs at, and it could
|
|
111
|
+
not have separated them anyway because `resolveDecryptAttempts` omits the
|
|
112
|
+
`bundleId` whenever the attempt list is empty.
|
|
113
|
+
|
|
114
|
+
Adds a single `info` line, `"Detector bundle not resolved"`, carrying a `cause`
|
|
115
|
+
of `noDetectorSession`, `noBinding` or `bundleNotInPool`, plus the `bundleId`
|
|
116
|
+
in the last case. It is emitted only on the failure path, so there is no cost
|
|
117
|
+
on the hot path, and the pool lookup now happens after the binding check rather
|
|
118
|
+
than before it.
|
|
119
|
+
|
|
120
|
+
No behavioural change — the same conditions return undefined as before.
|
|
121
|
+
- ea4e6aa: Persist the optional `cg` and `sm` session fields, which were not being written.
|
|
122
|
+
- 028a158: Add optional session field `dz`.
|
|
123
|
+
- Updated dependencies [98ab052]
|
|
124
|
+
- Updated dependencies [028a158]
|
|
125
|
+
- Updated dependencies [1f0598c]
|
|
126
|
+
- Updated dependencies [3958046]
|
|
127
|
+
- Updated dependencies [864ddde]
|
|
128
|
+
- Updated dependencies [028a158]
|
|
129
|
+
- @prosopo/database@4.0.33
|
|
130
|
+
- @prosopo/types-database@5.5.3
|
|
131
|
+
- @prosopo/types@5.8.3
|
|
132
|
+
- @prosopo/locale@3.4.2
|
|
133
|
+
- @prosopo/env@3.6.56
|
|
134
|
+
- @prosopo/types-env@2.11.2
|
|
135
|
+
- @prosopo/api@4.2.3
|
|
136
|
+
- @prosopo/api-express-router@3.1.87
|
|
137
|
+
- @prosopo/common@3.1.55
|
|
138
|
+
- @prosopo/datasets@3.1.82
|
|
139
|
+
- @prosopo/ipinfo@0.4.2
|
|
140
|
+
- @prosopo/keyring@2.9.89
|
|
141
|
+
- @prosopo/load-balancer@2.10.44
|
|
142
|
+
- @prosopo/user-access-policy@3.14.3
|
|
143
|
+
|
|
3
144
|
## 5.10.1
|
|
4
145
|
### Patch Changes
|
|
5
146
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignDetectorBundle.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assignDetectorBundle.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;8BA4BpC,mBAAmB,WAEjC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,SACN,YAAY,KACjB,OAAO,CAAC,QAAQ,CAAC;AALrB,wBA+DG"}
|
|
@@ -1,19 +1,27 @@
|
|
|
1
|
-
import { getDetectorBundlePool } from "../../tasks/detection/bundlePool.js";
|
|
1
|
+
import { getDetectorBundlePool, getDetectorBundlePoolDir } from "../../tasks/detection/bundlePool.js";
|
|
2
2
|
import { Tasks } from "../../tasks/tasks.js";
|
|
3
|
+
import { getAssignSecret } from "../../tasks/detection/assignSecret.js";
|
|
4
|
+
import { normalizeRequestIp } from "../../utils/normalizeRequestIp.js";
|
|
3
5
|
import { ApiParams } from "@prosopo/types";
|
|
6
|
+
import { createHmac } from "node:crypto";
|
|
4
7
|
import { v4 } from "uuid";
|
|
5
8
|
//#region src/api/captcha/assignDetectorBundle.ts
|
|
9
|
+
/** Pool position for this caller: a keyed hash of their address. */
|
|
10
|
+
var clientIndex = (ip, secret) => createHmac("sha256", secret).update(ip).digest().readUIntBE(0, 6);
|
|
6
11
|
/**
|
|
7
12
|
* Assigns a precomputed detector bundle for this detection session.
|
|
8
13
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
14
|
+
* The bundle is derived from the caller's address and this provider's secret,
|
|
15
|
+
* so a repeat caller keeps getting the same one with nothing stored and nothing
|
|
16
|
+
* to expire. Any bundle detects equally well, so this is not visible to users.
|
|
12
17
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
18
|
+
* The `detectorSessionId → bundleId` binding is still written to Redis; the
|
|
19
|
+
* decrypt side resolves the session's bundle from it on the next hop.
|
|
20
|
+
*
|
|
21
|
+
* Returns `useProviderBundle: false` when there is no pool, no secret, or Redis
|
|
22
|
+
* could not store that binding. There is NO bundled detector to fall back to —
|
|
23
|
+
* the client sends an empty token on the frictionless hop and the provider
|
|
24
|
+
* decides what to serve.
|
|
17
25
|
*/
|
|
18
26
|
var assignDetectorBundle_default = (env) => async (req, res, _next) => {
|
|
19
27
|
try {
|
|
@@ -23,7 +31,17 @@ var assignDetectorBundle_default = (env) => async (req, res, _next) => {
|
|
|
23
31
|
};
|
|
24
32
|
const pool = getDetectorBundlePool();
|
|
25
33
|
if (!pool || pool.size() === 0) return res.json(noBundle);
|
|
26
|
-
const
|
|
34
|
+
const secret = getAssignSecret(getDetectorBundlePoolDir(), {
|
|
35
|
+
info: (msg, data) => req.logger.info(() => ({
|
|
36
|
+
msg,
|
|
37
|
+
data
|
|
38
|
+
})),
|
|
39
|
+
warn: (msg, data) => req.logger.warn(() => ({
|
|
40
|
+
msg,
|
|
41
|
+
data
|
|
42
|
+
}))
|
|
43
|
+
});
|
|
44
|
+
const { bundleId, bundle } = pool.at(clientIndex(normalizeRequestIp(req.ip, req.logger), secret));
|
|
27
45
|
const detectorSessionId = `det-${v4()}`;
|
|
28
46
|
const writeQueue = new Tasks(env, req.logger).frictionlessManager.writeQueue;
|
|
29
47
|
if (!writeQueue) return res.json(noBundle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignDetectorBundle.js","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAqC,MAAM,gBAAgB,CAAC;AAG9E,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAEpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"assignDetectorBundle.js","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignDetectorBundle.unit.test.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/assignDetectorBundle.unit.test.ts"],"names":[],"mappings":""}
|