@prosopo/provider 5.12.2 → 5.12.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 +8 -5
- package/.turbo/turbo-build$colon$tsc.log +27 -27
- package/.turbo/turbo-build.log +9 -6
- package/CHANGELOG.md +15 -0
- package/dist/api/captcha/assetSeal.d.ts +15 -0
- package/dist/api/captcha/assetSeal.d.ts.map +1 -0
- package/dist/api/captcha/assetSeal.js +22 -0
- package/dist/api/captcha/assetSeal.js.map +1 -0
- package/dist/api/captcha/assetSealFormat.d.ts +23 -0
- package/dist/api/captcha/assetSealFormat.d.ts.map +1 -0
- package/dist/api/captcha/assetSealFormat.js +87 -0
- package/dist/api/captcha/assetSealFormat.js.map +1 -0
- package/dist/api/captcha/getImageCaptchaChallenge.d.ts.map +1 -1
- package/dist/api/captcha/getImageCaptchaChallenge.js +2 -1
- package/dist/api/captcha/getImageCaptchaChallenge.js.map +1 -1
- package/dist/api/captcha/sealedAssetsResolver.d.ts +22 -0
- package/dist/api/captcha/sealedAssetsResolver.d.ts.map +1 -0
- package/dist/api/captcha/sealedAssetsResolver.js +69 -0
- package/dist/api/captcha/sealedAssetsResolver.js.map +1 -0
- package/dist/api/captcha/signedAssetsResolver.d.ts +2 -1
- package/dist/api/captcha/signedAssetsResolver.d.ts.map +1 -1
- package/dist/api/captcha/signedAssetsResolver.js +6 -5
- package/dist/api/captcha/signedAssetsResolver.js.map +1 -1
- package/dist/cjs/api/captcha/assetSeal.cjs +22 -0
- package/dist/cjs/api/captcha/assetSealFormat.cjs +95 -0
- package/dist/cjs/api/captcha/getImageCaptchaChallenge.cjs +2 -1
- package/dist/cjs/api/captcha/sealedAssetsResolver.cjs +70 -0
- package/dist/cjs/api/captcha/signedAssetsResolver.cjs +6 -4
- package/dist/edge/assetSealHandler.d.ts +9 -0
- package/dist/edge/assetSealHandler.d.ts.map +1 -0
- package/dist/edge/assetSealHandler.js +74 -0
- package/dist/edge/assetSealHandler.js.map +1 -0
- package/dist/tests/unit/api/captcha/assetSeal.unit.test.d.ts +2 -0
- package/dist/tests/unit/api/captcha/assetSeal.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/api/captcha/assetSeal.unit.test.js +132 -0
- package/dist/tests/unit/api/captcha/assetSeal.unit.test.js.map +1 -0
- package/dist/tests/unit/api/captcha/sealedAssetsResolver.unit.test.d.ts +2 -0
- package/dist/tests/unit/api/captcha/sealedAssetsResolver.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/api/captcha/sealedAssetsResolver.unit.test.js +151 -0
- package/dist/tests/unit/api/captcha/sealedAssetsResolver.unit.test.js.map +1 -0
- package/dist/tests/unit/edge/assetSealHandler.unit.test.d.ts +2 -0
- package/dist/tests/unit/edge/assetSealHandler.unit.test.d.ts.map +1 -0
- package/dist/tests/unit/edge/assetSealHandler.unit.test.js +145 -0
- package/dist/tests/unit/edge/assetSealHandler.unit.test.js.map +1 -0
- package/edge/entry.ts +62 -0
- package/package.json +4 -2
- package/scripts/buildEdgeScript.mjs +31 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/provider@5.12.
|
|
2
|
+
> @prosopo/provider@5.12.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
|
+
✓ 116 modules transformed.
|
|
63
63
|
rendering chunks...
|
|
64
64
|
computing gzip size...
|
|
65
65
|
dist/cjs/tasks/index.cjs 0.08 kB │ gzip: 0.07 kB
|
|
@@ -79,6 +79,7 @@ dist/cjs/api/validateAddress.cjs 0
|
|
|
79
79
|
dist/cjs/api/ja4.cjs 0.85 kB │ gzip: 0.47 kB
|
|
80
80
|
dist/cjs/api/dnsEventUrl.cjs 0.85 kB │ gzip: 0.46 kB
|
|
81
81
|
dist/cjs/tasks/dataset/datasetTasks.cjs 0.92 kB │ gzip: 0.41 kB
|
|
82
|
+
dist/cjs/api/captcha/assetSeal.cjs 0.99 kB │ gzip: 0.51 kB
|
|
82
83
|
dist/cjs/_virtual/_rolldown/runtime.cjs 1.00 kB │ gzip: 0.50 kB
|
|
83
84
|
dist/cjs/api/headerCheckMiddleware.cjs 1.02 kB │ gzip: 0.45 kB
|
|
84
85
|
dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.cjs 1.03 kB │ gzip: 0.53 kB
|
|
@@ -116,7 +117,6 @@ dist/cjs/tasks/imgCaptcha/imgCaptchaTasksUtils.cjs 1
|
|
|
116
117
|
dist/cjs/api/admin/apiToggleMaintenanceModeEndpoint.cjs 1.80 kB │ gzip: 0.72 kB
|
|
117
118
|
dist/cjs/utils/honeypot/phraseBank.cjs 1.87 kB │ gzip: 0.91 kB
|
|
118
119
|
dist/cjs/api/handshakeTimingMiddleware.cjs 1.88 kB │ gzip: 0.71 kB
|
|
119
|
-
dist/cjs/api/captcha/signedAssetsResolver.cjs 1.96 kB │ gzip: 0.96 kB
|
|
120
120
|
dist/cjs/api/admin/apiClearAllCountersEndpoint.cjs 2.01 kB │ gzip: 0.78 kB
|
|
121
121
|
dist/cjs/tasks/frictionless/ipMatch.cjs 2.03 kB │ gzip: 1.03 kB
|
|
122
122
|
dist/cjs/tasks/spam/updateSpamEmailDomains.cjs 2.12 kB │ gzip: 0.85 kB
|
|
@@ -124,6 +124,8 @@ dist/cjs/migrations/frictionlessLadder.cjs 2
|
|
|
124
124
|
dist/cjs/tasks/puzzle/stratifiedSampler.cjs 2.20 kB │ gzip: 1.08 kB
|
|
125
125
|
dist/cjs/tasks/frictionless/routingMachine.cjs 2.21 kB │ gzip: 0.93 kB
|
|
126
126
|
dist/cjs/tasks/frictionless/frictionlessTasksUtils.cjs 2.21 kB │ gzip: 1.10 kB
|
|
127
|
+
dist/cjs/api/captcha/signedAssetsResolver.cjs 2.24 kB │ gzip: 1.00 kB
|
|
128
|
+
dist/cjs/api/captcha/sealedAssetsResolver.cjs 2.37 kB │ gzip: 0.98 kB
|
|
127
129
|
dist/cjs/tasks/captchaTypeSelection.cjs 2.44 kB │ gzip: 1.04 kB
|
|
128
130
|
dist/cjs/api/admin/apiDnsEventEndpoint.cjs 2.59 kB │ gzip: 1.00 kB
|
|
129
131
|
dist/cjs/utils/dns.cjs 2.66 kB │ gzip: 1.02 kB
|
|
@@ -135,6 +137,7 @@ dist/cjs/api/public.cjs 2
|
|
|
135
137
|
dist/cjs/api/captcha/maintenanceModeResponses.cjs 2.91 kB │ gzip: 0.77 kB
|
|
136
138
|
dist/cjs/api/captcha/submitImageCaptchaSolution.cjs 2.93 kB │ gzip: 1.03 kB
|
|
137
139
|
dist/cjs/tasks/detection/getBotScore.cjs 3.37 kB │ gzip: 1.33 kB
|
|
140
|
+
dist/cjs/api/captcha/assetSealFormat.cjs 3.59 kB │ gzip: 1.37 kB
|
|
138
141
|
dist/cjs/api/captcha/assignDetectorBundle.cjs 3.63 kB │ gzip: 1.37 kB
|
|
139
142
|
dist/cjs/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.cjs 3.66 kB │ gzip: 1.35 kB
|
|
140
143
|
dist/cjs/api/admin/apiAdminRoutesProvider.cjs 3.67 kB │ gzip: 0.62 kB
|
|
@@ -156,7 +159,7 @@ dist/cjs/tasks/detection/decoderPool.cjs 5
|
|
|
156
159
|
dist/cjs/util/usageCounters.cjs 5.72 kB │ gzip: 2.03 kB
|
|
157
160
|
dist/cjs/api/captcha/getPoWCaptchaChallenge.cjs 6.73 kB │ gzip: 1.89 kB
|
|
158
161
|
dist/cjs/api/healthzGeo.cjs 7.03 kB │ gzip: 2.70 kB
|
|
159
|
-
dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 7.
|
|
162
|
+
dist/cjs/api/captcha/getImageCaptchaChallenge.cjs 7.39 kB │ gzip: 2.06 kB
|
|
160
163
|
dist/cjs/tasks/spam/checkTrafficFilter.cjs 7.47 kB │ gzip: 2.48 kB
|
|
161
164
|
dist/cjs/api/captcha/getPuzzleCaptchaChallenge.cjs 7.56 kB │ gzip: 2.03 kB
|
|
162
165
|
dist/cjs/api/captcha/submitPoWCaptchaSolution.cjs 9.12 kB │ gzip: 2.71 kB
|
|
@@ -176,7 +179,7 @@ dist/cjs/tasks/puzzleCaptcha/puzzleTasks.cjs 24
|
|
|
176
179
|
dist/cjs/tasks/powCaptcha/powTasks.cjs 24.99 kB │ gzip: 6.02 kB
|
|
177
180
|
dist/cjs/tasks/imgCaptcha/imgCaptchaTasks.cjs 27.94 kB │ gzip: 6.36 kB
|
|
178
181
|
|
|
179
|
-
[32m✓ built in
|
|
182
|
+
[32m✓ built in 147ms[39m
|
|
180
183
|
[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
|
|
181
184
|
[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
|
|
182
185
|
[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.12.
|
|
2
|
+
> @prosopo/provider@5.12.3 build:tsc
|
|
3
3
|
> tsc --build --verbose
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
10:41:07 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
|
-
|
|
31
|
+
10:41:07 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
|
-
|
|
33
|
+
10:41:07 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
|
-
|
|
35
|
+
10:41:07 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/tests/loggerBrowser.unit.test.ts' is older than output '../logger/tsconfig.tsbuildinfo'
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
10:41:07 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'
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
10:41:07 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/process.ts' is older than output '../locale/tsconfig.tsbuildinfo'
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
10:41:07 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
|
-
|
|
43
|
+
10:41:07 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
|
-
|
|
45
|
+
10:41:07 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/utils/objectUtils.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
10:41:07 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/index.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
10:41:07 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
|
-
|
|
51
|
+
10:41:07 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
10:41:07 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
|
-
|
|
55
|
+
10:41:07 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
|
-
|
|
57
|
+
10:41:07 PM - Project '../database/tsconfig.json' is up to date because newest input '../database/src/tests/unit/captchaLabel.unit.test.ts' is older than output '../database/tsconfig.tsbuildinfo'
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
10:41:07 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/index.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
10:41:07 PM - Project '../types-env/tsconfig.json' is up to date because newest input '../types-env/src/index.ts' is older than output '../types-env/tsconfig.tsbuildinfo'
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
10:41:07 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/index.ts' is older than output '../env/tsconfig.tsbuildinfo'
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
10:41:07 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/middlewares/requestLoggerMiddleware.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
10:41:07 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
|
-
|
|
69
|
+
10:41:07 PM - Project '../datasets/tsconfig.json' is up to date because newest input '../datasets/src/tests/captcha.unit.test.ts' is older than output '../datasets/tsconfig.tsbuildinfo'
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
10:41:07 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/balancer.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
10:41:07 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
|
-
|
|
75
|
+
10:41:07 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
|
-
|
|
77
|
+
10:41:07 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
10:41:07 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.12.
|
|
2
|
+
> @prosopo/provider@5.12.3 build
|
|
3
3
|
> npm run build:cross-env -- --mode ${NODE_ENV:-development}
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @prosopo/provider@5.12.
|
|
6
|
+
> @prosopo/provider@5.12.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
|
+
✓ 116 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
|
|
@@ -85,6 +85,7 @@ dist/api/dnsEventUrl.js 0.80 k
|
|
|
85
85
|
dist/api/ja4.js 0.80 kB │ gzip: 0.44 kB
|
|
86
86
|
dist/tasks/dataset/datasetTasks.js 0.85 kB │ gzip: 0.39 kB
|
|
87
87
|
dist/tasks/powCaptcha/powTasksUtils.js 0.89 kB │ gzip: 0.46 kB
|
|
88
|
+
dist/api/captcha/assetSeal.js 0.91 kB │ gzip: 0.50 kB
|
|
88
89
|
dist/api/headerCheckMiddleware.js 0.91 kB │ gzip: 0.43 kB
|
|
89
90
|
dist/api/captcha/getFrictionlessCaptchaChallenge/honeypotResponse.js 0.95 kB │ gzip: 0.51 kB
|
|
90
91
|
dist/api/admin/apiRegisterSiteKeyEndpoint.js 1.00 kB │ gzip: 0.46 kB
|
|
@@ -121,15 +122,16 @@ dist/api/admin/apiUpdateDecisionMachineEndpoint.js 1.68 k
|
|
|
121
122
|
dist/utils/honeypot/phraseBank.js 1.69 kB │ gzip: 0.84 kB
|
|
122
123
|
dist/api/handshakeTimingMiddleware.js 1.75 kB │ gzip: 0.69 kB
|
|
123
124
|
dist/tasks/spam/updateSpamEmailDomains.js 1.87 kB │ gzip: 0.77 kB
|
|
124
|
-
dist/api/captcha/signedAssetsResolver.js 1.89 kB │ gzip: 0.94 kB
|
|
125
125
|
dist/api/admin/apiClearAllCountersEndpoint.js 1.89 kB │ gzip: 0.76 kB
|
|
126
126
|
dist/tasks/frictionless/ipMatch.js 1.98 kB │ gzip: 1.02 kB
|
|
127
|
+
dist/api/captcha/signedAssetsResolver.js 2.08 kB │ gzip: 0.98 kB
|
|
127
128
|
dist/migrations/frictionlessLadder.js 2.12 kB │ gzip: 0.93 kB
|
|
128
129
|
dist/tasks/puzzle/stratifiedSampler.js 2.14 kB │ gzip: 1.07 kB
|
|
129
130
|
dist/tasks/frictionless/frictionlessTasksUtils.js 2.16 kB │ gzip: 1.09 kB
|
|
130
131
|
dist/api/captcha/maintenanceModeResponses.js 2.16 kB │ gzip: 0.73 kB
|
|
131
132
|
dist/tasks/frictionless/routingMachine.js 2.20 kB │ gzip: 0.93 kB
|
|
132
133
|
dist/tasks/captchaTypeSelection.js 2.22 kB │ gzip: 1.03 kB
|
|
134
|
+
dist/api/captcha/sealedAssetsResolver.js 2.26 kB │ gzip: 0.97 kB
|
|
133
135
|
dist/utils/dns.js 2.36 kB │ gzip: 0.95 kB
|
|
134
136
|
dist/api/admin/apiDnsEventEndpoint.js 2.43 kB │ gzip: 0.96 kB
|
|
135
137
|
dist/api/public.js 2.45 kB │ gzip: 0.98 kB
|
|
@@ -141,6 +143,7 @@ dist/api/captcha/submitImageCaptchaSolution.js 2.59 k
|
|
|
141
143
|
dist/api/admin/apiAdminRoutesProvider.js 2.78 kB │ gzip: 0.55 kB
|
|
142
144
|
dist/index.js 2.92 kB │ gzip: 0.80 kB
|
|
143
145
|
dist/tasks/detection/getBotScore.js 3.29 kB │ gzip: 1.32 kB
|
|
146
|
+
dist/api/captcha/assetSealFormat.js 3.38 kB │ gzip: 1.34 kB
|
|
144
147
|
dist/api/captcha/getFrictionlessCaptchaChallenge/shortCircuit.js 3.39 kB │ gzip: 1.32 kB
|
|
145
148
|
dist/api/captcha/assignDetectorBundle.js 3.40 kB │ gzip: 1.34 kB
|
|
146
149
|
dist/api/domainMiddleware.js 3.52 kB │ gzip: 1.22 kB
|
|
@@ -159,7 +162,7 @@ dist/tasks/dnsEvent/enrichDnsEvent.js 4.71 k
|
|
|
159
162
|
dist/tasks/detection/decoderPool.js 5.34 kB │ gzip: 2.02 kB
|
|
160
163
|
dist/util/usageCounters.js 5.65 kB │ gzip: 2.01 kB
|
|
161
164
|
dist/api/captcha/getPoWCaptchaChallenge.js 6.09 kB │ gzip: 1.83 kB
|
|
162
|
-
dist/api/captcha/getImageCaptchaChallenge.js 6.
|
|
165
|
+
dist/api/captcha/getImageCaptchaChallenge.js 6.61 kB │ gzip: 2.00 kB
|
|
163
166
|
dist/api/captcha/getPuzzleCaptchaChallenge.js 6.84 kB │ gzip: 1.97 kB
|
|
164
167
|
dist/api/healthzGeo.js 6.86 kB │ gzip: 2.68 kB
|
|
165
168
|
dist/tasks/spam/checkTrafficFilter.js 7.16 kB │ gzip: 2.45 kB
|
|
@@ -180,7 +183,7 @@ dist/tasks/captchaManager.js 23.44 k
|
|
|
180
183
|
dist/tasks/powCaptcha/powTasks.js 23.61 kB │ gzip: 5.97 kB
|
|
181
184
|
dist/tasks/imgCaptcha/imgCaptchaTasks.js 26.42 kB │ gzip: 6.30 kB
|
|
182
185
|
|
|
183
|
-
[32m✓ built in
|
|
186
|
+
[32m✓ built in 150ms[39m
|
|
184
187
|
[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
|
|
185
188
|
[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
|
|
186
189
|
[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,20 @@
|
|
|
1
1
|
# @prosopo/provider
|
|
2
2
|
|
|
3
|
+
## 5.12.3
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- aed164d: Make asset signing survive contact with a CDN that actually enforces it.
|
|
7
|
+
|
|
8
|
+
Signing image URLs is optional and has been off in practice, so two paths that only break when a zone starts checking tokens have never been exercised. Both are fixed here, so enabling enforcement is a config change rather than a config change plus an incident.
|
|
9
|
+
|
|
10
|
+
**A dataset could not be imported.** Hashing an item downloads the image from the URL stored in the dataset, and that URL is the canonical, unsigned one. Against an enforcing zone every one of those downloads is rejected, so a dataset becomes impossible to import on exactly the configuration it is meant to be served from. `downloadImage` now signs the URL when a signing key is configured, and leaves it alone when one is not.
|
|
11
|
+
|
|
12
|
+
**A failed image never recovered.** The widget retried a broken image by appending a cache-busting query parameter. A token is a signature over the query string, so on a signed URL that parameter invalidates it and every retry is rejected — a transient failure turned permanent. The retry now re-requests the signed URL unchanged, and keeps the cache-buster for unsigned URLs, where it is still worth having and costs nothing.
|
|
13
|
+
|
|
14
|
+
The token scheme itself now lives in one place, `@prosopo/datasets`, rather than being written out twice. The provider keeps its synchronous implementation, because `resolveAsset` cannot await, but both ends build the string to hash and encode the result through the same helpers.
|
|
15
|
+
- Updated dependencies [aed164d]
|
|
16
|
+
- @prosopo/datasets@3.1.89
|
|
17
|
+
|
|
3
18
|
## 5.12.2
|
|
4
19
|
### Patch Changes
|
|
5
20
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface SealAssetPathParams {
|
|
2
|
+
readonly path: string;
|
|
3
|
+
readonly key: Uint8Array;
|
|
4
|
+
readonly keyId: number;
|
|
5
|
+
readonly expiresAtSeconds: number;
|
|
6
|
+
}
|
|
7
|
+
export declare const sealAssetPath: (params: SealAssetPathParams) => string;
|
|
8
|
+
export interface UnsealAssetPathParams {
|
|
9
|
+
readonly blob: string;
|
|
10
|
+
readonly keys: ReadonlyMap<number, Uint8Array>;
|
|
11
|
+
readonly nowSeconds: number;
|
|
12
|
+
readonly requiredPathPrefix?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const unsealAssetPath: (params: UnsealAssetPathParams) => string | undefined;
|
|
15
|
+
//# sourceMappingURL=assetSeal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetSeal.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/assetSeal.ts"],"names":[],"mappings":"AAsCA,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,WAAY,mBAAmB,KAAG,MAqB3D,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED,eAAO,MAAM,eAAe,WACnB,qBAAqB,KAC3B,MAAM,GAAG,SAiBX,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { additionalData, encodeEnvelope, encodePayload, isSafeAssetPath } from "./assetSealFormat.js";
|
|
2
|
+
import { createCipheriv, randomBytes } from "node:crypto";
|
|
3
|
+
//#region src/api/captcha/assetSeal.ts
|
|
4
|
+
var CIPHER = "aes-256-gcm";
|
|
5
|
+
var GCM_OPTIONS = { authTagLength: 16 };
|
|
6
|
+
var sealAssetPath = (params) => {
|
|
7
|
+
if (!isSafeAssetPath(params.path)) throw new Error(`Refusing to seal an unusable asset path: ${params.path}`);
|
|
8
|
+
const iv = randomBytes(12);
|
|
9
|
+
const cipher = createCipheriv(CIPHER, params.key, iv, GCM_OPTIONS);
|
|
10
|
+
cipher.setAAD(additionalData(params.keyId));
|
|
11
|
+
const ciphertext = Buffer.concat([cipher.update(encodePayload({
|
|
12
|
+
expiresAtSeconds: params.expiresAtSeconds,
|
|
13
|
+
path: params.path
|
|
14
|
+
})), cipher.final()]);
|
|
15
|
+
return encodeEnvelope({
|
|
16
|
+
keyId: params.keyId,
|
|
17
|
+
iv: new Uint8Array(iv),
|
|
18
|
+
sealed: new Uint8Array(Buffer.concat([ciphertext, cipher.getAuthTag()]))
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { sealAssetPath };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetSeal.js","sourceRoot":"","sources":["../../../src/api/captcha/assetSeal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const SEAL_VERSION = 1;
|
|
2
|
+
export declare const IV_BYTES = 12;
|
|
3
|
+
export declare const MAX_ASSET_PATH_LENGTH = 512;
|
|
4
|
+
export declare const SEAL_KEY_BYTES = 32;
|
|
5
|
+
export interface SealEnvelope {
|
|
6
|
+
readonly keyId: number;
|
|
7
|
+
readonly iv: Uint8Array;
|
|
8
|
+
readonly sealed: Uint8Array;
|
|
9
|
+
}
|
|
10
|
+
export interface SealedPayload {
|
|
11
|
+
readonly expiresAtSeconds: number;
|
|
12
|
+
readonly path: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const toBase64Url: (bytes: Uint8Array) => string;
|
|
15
|
+
export declare const fromBase64Url: (value: string) => Uint8Array | undefined;
|
|
16
|
+
export declare const additionalData: (keyId: number) => Uint8Array;
|
|
17
|
+
export declare const encodeEnvelope: (envelope: SealEnvelope) => string;
|
|
18
|
+
export declare const decodeEnvelope: (blob: string) => SealEnvelope | undefined;
|
|
19
|
+
export declare const encodePayload: (payload: SealedPayload) => Uint8Array;
|
|
20
|
+
export declare const decodePayload: (bytes: Uint8Array) => SealedPayload | undefined;
|
|
21
|
+
export declare const isSafeAssetPath: (path: string, requiredPrefix?: string) => boolean;
|
|
22
|
+
export declare const parseSealKeys: (spec: string) => Map<number, Uint8Array>;
|
|
23
|
+
//# sourceMappingURL=assetSealFormat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetSealFormat.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/assetSealFormat.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,eAAO,MAAM,QAAQ,KAAK,CAAC;AAM3B,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAIzC,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAKD,eAAO,MAAM,WAAW,UAAW,UAAU,KAAG,MAS/C,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,UAAU,GAAG,SAmB1D,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,UACT,CAAC;AAEvC,eAAO,MAAM,cAAc,aAAc,YAAY,KAAG,MAQvD,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,KAAG,YAAY,GAAG,SAiB5D,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,aAAa,KAAG,UAMtD,CAAC;AAEF,eAAO,MAAM,aAAa,UAAW,UAAU,KAAG,aAAa,GAAG,SAajE,CAAC;AAEF,eAAO,MAAM,eAAe,SACrB,MAAM,mBACK,MAAM,KACrB,OAYF,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAiClE,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
var AAD_BYTES = 2;
|
|
2
|
+
var EXPIRY_BYTES = 4;
|
|
3
|
+
var MAX_KEY_ID = 255;
|
|
4
|
+
var BASE64URL_PATTERN = /^[A-Za-z0-9_-]+$/;
|
|
5
|
+
var textEncoder = new TextEncoder();
|
|
6
|
+
var textDecoder = new TextDecoder("utf-8", { fatal: true });
|
|
7
|
+
var toBase64Url = (bytes) => {
|
|
8
|
+
let binary = "";
|
|
9
|
+
for (const byte of bytes) binary += String.fromCharCode(byte);
|
|
10
|
+
return btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
11
|
+
};
|
|
12
|
+
var fromBase64Url = (value) => {
|
|
13
|
+
if (!BASE64URL_PATTERN.test(value)) return;
|
|
14
|
+
const normalised = value.replace(/-/g, "+").replace(/_/g, "/");
|
|
15
|
+
const padded = normalised.padEnd(normalised.length + (4 - normalised.length % 4) % 4, "=");
|
|
16
|
+
try {
|
|
17
|
+
const binary = atob(padded);
|
|
18
|
+
const bytes = new Uint8Array(binary.length);
|
|
19
|
+
for (let index = 0; index < binary.length; index += 1) bytes[index] = binary.charCodeAt(index);
|
|
20
|
+
return bytes;
|
|
21
|
+
} catch {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
var additionalData = (keyId) => new Uint8Array([1, keyId]);
|
|
26
|
+
var encodeEnvelope = (envelope) => {
|
|
27
|
+
const bytes = new Uint8Array(AAD_BYTES + envelope.iv.length + envelope.sealed.length);
|
|
28
|
+
bytes.set(additionalData(envelope.keyId), 0);
|
|
29
|
+
bytes.set(envelope.iv, AAD_BYTES);
|
|
30
|
+
bytes.set(envelope.sealed, AAD_BYTES + envelope.iv.length);
|
|
31
|
+
return toBase64Url(bytes);
|
|
32
|
+
};
|
|
33
|
+
var decodeEnvelope = (blob) => {
|
|
34
|
+
const bytes = fromBase64Url(blob);
|
|
35
|
+
if (!bytes || bytes.length <= 14) return;
|
|
36
|
+
if (bytes[0] !== 1) return;
|
|
37
|
+
const keyId = bytes[1];
|
|
38
|
+
if (void 0 === keyId) return;
|
|
39
|
+
return {
|
|
40
|
+
keyId,
|
|
41
|
+
iv: bytes.slice(AAD_BYTES, 14),
|
|
42
|
+
sealed: bytes.slice(14)
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
var encodePayload = (payload) => {
|
|
46
|
+
const path = textEncoder.encode(payload.path);
|
|
47
|
+
const bytes = new Uint8Array(EXPIRY_BYTES + path.length);
|
|
48
|
+
new DataView(bytes.buffer).setUint32(0, payload.expiresAtSeconds, false);
|
|
49
|
+
bytes.set(path, EXPIRY_BYTES);
|
|
50
|
+
return bytes;
|
|
51
|
+
};
|
|
52
|
+
var decodePayload = (bytes) => {
|
|
53
|
+
if (bytes.length <= EXPIRY_BYTES) return;
|
|
54
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
55
|
+
try {
|
|
56
|
+
return {
|
|
57
|
+
expiresAtSeconds: view.getUint32(0, false),
|
|
58
|
+
path: textDecoder.decode(bytes.subarray(EXPIRY_BYTES))
|
|
59
|
+
};
|
|
60
|
+
} catch {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var isSafeAssetPath = (path, requiredPrefix) => {
|
|
65
|
+
if (!path.startsWith("/") || path.length > 512) return false;
|
|
66
|
+
if (path.includes("..") || path.includes("//")) return false;
|
|
67
|
+
if (/[\u0000-\u001f\u007f]/.test(path)) return false;
|
|
68
|
+
return void 0 === requiredPrefix || path.startsWith(requiredPrefix);
|
|
69
|
+
};
|
|
70
|
+
var parseSealKeys = (spec) => {
|
|
71
|
+
const keys = /* @__PURE__ */ new Map();
|
|
72
|
+
for (const entry of spec.split(",")) {
|
|
73
|
+
const trimmed = entry.trim();
|
|
74
|
+
if ("" === trimmed) continue;
|
|
75
|
+
const separator = trimmed.indexOf(":");
|
|
76
|
+
if (separator <= 0) throw new Error("Malformed seal key entry: expected \"keyId:base64key\"");
|
|
77
|
+
const keyId = Number(trimmed.slice(0, separator));
|
|
78
|
+
if (!Number.isInteger(keyId) || keyId < 0 || keyId > MAX_KEY_ID) throw new Error(`Seal key id must be an integer in [0, ${MAX_KEY_ID}]`);
|
|
79
|
+
const key = fromBase64Url(trimmed.slice(separator + 1).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, ""));
|
|
80
|
+
if (!key || key.length !== 32) throw new Error(`Seal key ${keyId} must be 32 base64-encoded bytes`);
|
|
81
|
+
keys.set(keyId, key);
|
|
82
|
+
}
|
|
83
|
+
if (0 === keys.size) throw new Error("No seal keys configured");
|
|
84
|
+
return keys;
|
|
85
|
+
};
|
|
86
|
+
//#endregion
|
|
87
|
+
export { additionalData, decodeEnvelope, decodePayload, encodeEnvelope, encodePayload, fromBase64Url, isSafeAssetPath, parseSealKeys, toBase64Url };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetSealFormat.js","sourceRoot":"","sources":["../../../src/api/captcha/assetSealFormat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getImageCaptchaChallenge.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/getImageCaptchaChallenge.ts"],"names":[],"mappings":"AA0BA,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;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"getImageCaptchaChallenge.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/getImageCaptchaChallenge.ts"],"names":[],"mappings":"AA0BA,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;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;8BAiBnD,mBAAmB,0BACA,kBAAkB,WAGpC,OAAO,GAAG,gBAAgB,OAC1B,QAAQ,QACP,YAAY;AAPpB,wBAmTG"}
|
|
@@ -7,6 +7,7 @@ import { isReservedTestSiteKey } from "../testSiteKey.js";
|
|
|
7
7
|
import { normalizeRequestIp } from "../../utils/normalizeRequestIp.js";
|
|
8
8
|
import { buildImageMaintenanceResponse } from "./maintenanceModeResponses.js";
|
|
9
9
|
import { applyTrafficFilterAtRequestTime } from "./trafficFilterRequestTime.js";
|
|
10
|
+
import { getSealedAssetsResolver } from "./sealedAssetsResolver.js";
|
|
10
11
|
import { getSignedAssetsResolver } from "./signedAssetsResolver.js";
|
|
11
12
|
import { ProsopoApiError } from "@prosopo/common";
|
|
12
13
|
import { ApiParams, CaptchaRequestBody, CaptchaType, SimdReadingsStage, clampImageRounds } from "@prosopo/types";
|
|
@@ -111,7 +112,7 @@ var getImageCaptchaChallenge_default = (env, userAccessRulesStorage) => async (r
|
|
|
111
112
|
}));
|
|
112
113
|
});
|
|
113
114
|
const taskData = await tasks.imgCaptchaManager.getRandomCaptchasAndRequestHash(datasetId, user, ipAddress, captchaConfig, clientRecord.settings.imageThreshold ?? .8, validSessionId, req.ipInfo);
|
|
114
|
-
const assetsResolver = getSignedAssetsResolver(ipAddress.toString()) ?? env.assetsResolver;
|
|
115
|
+
const assetsResolver = getSealedAssetsResolver() ?? getSignedAssetsResolver(ipAddress.toString()) ?? env.assetsResolver;
|
|
115
116
|
const captchaResponse = {
|
|
116
117
|
[ApiParams.status]: "ok",
|
|
117
118
|
[ApiParams.captchas]: taskData.captchas.map((captcha) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getImageCaptchaChallenge.js","sourceRoot":"","sources":["../../../src/api/captcha/getImageCaptchaChallenge.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"getImageCaptchaChallenge.js","sourceRoot":"","sources":["../../../src/api/captcha/getImageCaptchaChallenge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Asset, AssetsResolver } from "@prosopo/types";
|
|
2
|
+
export declare const DEFAULT_ASSET_SEAL_TTL_SECONDS = 300;
|
|
3
|
+
export declare const DEFAULT_ASSET_SEAL_URL_PREFIX = "s";
|
|
4
|
+
export interface SealedAssetsResolverOptions {
|
|
5
|
+
readonly key: Uint8Array;
|
|
6
|
+
readonly keyId: number;
|
|
7
|
+
readonly ttlSeconds?: number;
|
|
8
|
+
readonly urlPrefix?: string;
|
|
9
|
+
readonly now?: () => number;
|
|
10
|
+
}
|
|
11
|
+
export declare class SealedAssetsResolver implements AssetsResolver {
|
|
12
|
+
private readonly key;
|
|
13
|
+
private readonly keyId;
|
|
14
|
+
private readonly ttlSeconds;
|
|
15
|
+
private readonly urlPrefix;
|
|
16
|
+
private readonly now;
|
|
17
|
+
constructor(options: SealedAssetsResolverOptions);
|
|
18
|
+
resolveAsset(assetURI: string): Asset;
|
|
19
|
+
private toUrl;
|
|
20
|
+
}
|
|
21
|
+
export declare function getSealedAssetsResolver(): AssetsResolver | undefined;
|
|
22
|
+
//# sourceMappingURL=sealedAssetsResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sealedAssetsResolver.d.ts","sourceRoot":"","sources":["../../../src/api/captcha/sealedAssetsResolver.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAI5D,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC5B;AAED,qBAAa,oBAAqB,YAAW,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;gBAEvB,OAAO,EAAE,2BAA2B;IAQhD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK;IAyBrC,OAAO,CAAC,KAAK;CAUb;AAYD,wBAAgB,uBAAuB,IAAI,cAAc,GAAG,SAAS,CA2BpE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { parseSealKeys } from "./assetSealFormat.js";
|
|
2
|
+
import { sealAssetPath } from "./assetSeal.js";
|
|
3
|
+
var SealedAssetsResolver = class {
|
|
4
|
+
constructor(options) {
|
|
5
|
+
this.key = options.key;
|
|
6
|
+
this.keyId = options.keyId;
|
|
7
|
+
this.ttlSeconds = options.ttlSeconds ?? 300;
|
|
8
|
+
this.urlPrefix = options.urlPrefix ?? "s";
|
|
9
|
+
this.now = options.now ?? (() => Date.now());
|
|
10
|
+
}
|
|
11
|
+
resolveAsset(assetURI) {
|
|
12
|
+
const url = this.toUrl(assetURI);
|
|
13
|
+
if (!url) return {
|
|
14
|
+
URI: assetURI,
|
|
15
|
+
getURL: () => assetURI
|
|
16
|
+
};
|
|
17
|
+
if (url.search !== "") throw new Error(`Cannot seal an asset URL that has a query string: ${assetURI}`);
|
|
18
|
+
const blob = sealAssetPath({
|
|
19
|
+
path: url.pathname,
|
|
20
|
+
key: this.key,
|
|
21
|
+
keyId: this.keyId,
|
|
22
|
+
expiresAtSeconds: Math.floor(this.now() / 1e3) + this.ttlSeconds
|
|
23
|
+
});
|
|
24
|
+
const sealed = `${url.origin}/${this.urlPrefix}/${blob}${extensionOf(url.pathname)}`;
|
|
25
|
+
return {
|
|
26
|
+
URI: assetURI,
|
|
27
|
+
getURL: () => sealed
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
toUrl(assetURI) {
|
|
31
|
+
try {
|
|
32
|
+
const url = new URL(assetURI);
|
|
33
|
+
return url.protocol === "http:" || url.protocol === "https:" ? url : void 0;
|
|
34
|
+
} catch {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
var extensionOf = (pathname) => {
|
|
40
|
+
const lastDot = pathname.lastIndexOf(".");
|
|
41
|
+
if (lastDot <= pathname.lastIndexOf("/") + 1) return "";
|
|
42
|
+
const extension = pathname.slice(lastDot);
|
|
43
|
+
return /^\.[a-zA-Z0-9]{1,8}$/.test(extension) ? extension : "";
|
|
44
|
+
};
|
|
45
|
+
function getSealedAssetsResolver() {
|
|
46
|
+
const spec = process.env.PROSOPO_ASSET_SEAL_KEYS;
|
|
47
|
+
if (!spec) return;
|
|
48
|
+
const keys = parseSealKeys(spec);
|
|
49
|
+
const keyId = activeKeyId(keys);
|
|
50
|
+
const key = keys.get(keyId);
|
|
51
|
+
if (!key) throw new Error(`PROSOPO_ASSET_SEAL_ACTIVE_KEY_ID ${keyId} is not in PROSOPO_ASSET_SEAL_KEYS`);
|
|
52
|
+
return new SealedAssetsResolver({
|
|
53
|
+
key,
|
|
54
|
+
keyId,
|
|
55
|
+
ttlSeconds: Number.parseInt(process.env.PROSOPO_ASSET_SEAL_TTL_SECONDS ?? "", 10) || 300,
|
|
56
|
+
urlPrefix: process.env.PROSOPO_ASSET_SEAL_URL_PREFIX || "s"
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
var activeKeyId = (keys) => {
|
|
60
|
+
const configured = process.env.PROSOPO_ASSET_SEAL_ACTIVE_KEY_ID;
|
|
61
|
+
if (configured) {
|
|
62
|
+
const parsed = Number.parseInt(configured, 10);
|
|
63
|
+
if (!Number.isInteger(parsed)) throw new Error("PROSOPO_ASSET_SEAL_ACTIVE_KEY_ID must be an integer");
|
|
64
|
+
return parsed;
|
|
65
|
+
}
|
|
66
|
+
return Math.max(...keys.keys());
|
|
67
|
+
};
|
|
68
|
+
//#endregion
|
|
69
|
+
export { SealedAssetsResolver, getSealedAssetsResolver };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sealedAssetsResolver.js","sourceRoot":"","sources":["../../../src/api/captcha/sealedAssetsResolver.ts"],"names":[],"mappings":"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"}
|