@prosopo/cli 3.9.0 → 3.9.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.
@@ -102,4 +102,4 @@ dist/cjs/RateLimiter.cjs 7.05 kB │ gzip: 1.02 kB
102
102
   │ ╰─────── This `import.meta` will be replaced with an empty object (`{}`) automatically. If this is desired, you can suppress this warning by adding `transform.define: { 'import.meta': {} }`. If `import.meta` needs to be kept as-is, you need to set the output format to `esm`.
103
103
  ────╯
104
104
  
105
- ✓ built in 65ms
105
+ ✓ built in 55ms
@@ -1,5 +1,5 @@
1
1
  $ tsc --build --verbose
2
- 4:00:36 PM - Projects in this build:
2
+ 3:29:48 PM - Projects in this build:
3
3
  * ../../dev/config/tsconfig.json
4
4
  * ../util/tsconfig.json
5
5
  * ../locale/tsconfig.json
@@ -32,67 +32,67 @@ $ tsc --build --verbose
32
32
  * ../../dev/workspace/tsconfig.json
33
33
  * tsconfig.json
34
34
 
35
- 4:00:36 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'
35
+ 3:29:48 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'
36
36
 
37
- 4:00:36 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/url.ts' is older than output '../util/tsconfig.tsbuildinfo'
37
+ 3:29:48 PM - Project '../util/tsconfig.json' is up to date because newest input '../util/src/arrayBufferToBase64.ts' is older than output '../util/tsconfig.tsbuildinfo'
38
38
 
39
- 4:00:36 PM - Project '../locale/tsconfig.json' is up to date because newest input '../locale/src/process.ts' is older than output '../locale/tsconfig.tsbuildinfo'
39
+ 3:29:48 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
- 4:00: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'
41
+ 3:29:48 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
- 4:00:36 PM - Project '../types/tsconfig.json' is up to date because newest input '../types/src/types.test-d.ts' is older than output '../types/tsconfig.tsbuildinfo'
43
+ 3:29:48 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
- 4:00:36 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/tests/apiHarness.ts' is older than output '../api/tsconfig.tsbuildinfo'
45
+ 3:29:48 PM - Project '../api/tsconfig.json' is up to date because newest input '../api/src/index.ts' is older than output '../api/tsconfig.tsbuildinfo'
46
46
 
47
- 4:00:36 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/errorSites.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
47
+ 3:29:48 PM - Project '../common/tsconfig.json' is up to date because newest input '../common/src/tests/errorSites.unit.test.ts' is older than output '../common/tsconfig.tsbuildinfo'
48
48
 
49
- 4:00:36 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'
49
+ 3:29:48 PM - Project '../logger/tsconfig.json' is up to date because newest input '../logger/src/logger.ts' is older than output '../logger/tsconfig.tsbuildinfo'
50
50
 
51
- 4:00:36 PM - Project '../dotenv/tsconfig.json' is up to date because newest input '../dotenv/src/tests/env.unit.test.ts' is older than output '../dotenv/tsconfig.tsbuildinfo'
51
+ 3:29:48 PM - Project '../dotenv/tsconfig.json' is up to date because newest input '../dotenv/src/env.ts' is older than output '../dotenv/tsconfig.tsbuildinfo'
52
52
 
53
- 4:00:36 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
53
+ 3:29:48 PM - Project '../ipinfo/tsconfig.json' is up to date because newest input '../ipinfo/src/IpInfoService.ts' is older than output '../ipinfo/tsconfig.tsbuildinfo'
54
54
 
55
- 4:00:36 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'
55
+ 3:29:48 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'
56
56
 
57
- 4:00: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'
57
+ 3:29:48 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'
58
58
 
59
- 4:00:36 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'
59
+ 3:29:48 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'
60
60
 
61
- 4:00:36 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'
61
+ 3:29:48 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'
62
62
 
63
- 4:00:36 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'
63
+ 3:29:49 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'
64
64
 
65
- 4:00:36 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/keyring/keyring.test.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
65
+ 3:29:49 PM - Project '../keyring/tsconfig.json' is up to date because newest input '../keyring/src/pair/decode.ts' is older than output '../keyring/tsconfig.tsbuildinfo'
66
66
 
67
- 4:00:36 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'
67
+ 3:29:49 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'
68
68
 
69
- 4:00:37 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
69
+ 3:29:49 PM - Project '../env/tsconfig.json' is up to date because newest input '../env/src/env.ts' is older than output '../env/tsconfig.tsbuildinfo'
70
70
 
71
- 4:00:37 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/tests/unit/testDoubles.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
71
+ 3:29:49 PM - Project '../api-express-router/tsconfig.json' is up to date because newest input '../api-express-router/src/middlewares/jwtReplayGuard.ts' is older than output '../api-express-router/tsconfig.tsbuildinfo'
72
72
 
73
- 4:00:37 PM - Project '../puzzle-assets/tsconfig.json' is up to date because newest input '../puzzle-assets/src/browser.ts' is older than output '../puzzle-assets/tsconfig.tsbuildinfo'
73
+ 3:29:49 PM - Project '../puzzle-assets/tsconfig.json' is up to date because newest input '../puzzle-assets/src/browser.ts' is older than output '../puzzle-assets/tsconfig.tsbuildinfo'
74
74
 
75
- 4:00:37 PM - Project '../audio-assets/tsconfig.json' is up to date because newest input '../audio-assets/src/distort.ts' is older than output '../audio-assets/tsconfig.tsbuildinfo'
75
+ 3:29:49 PM - Project '../audio-assets/tsconfig.json' is up to date because newest input '../audio-assets/src/distort.ts' is older than output '../audio-assets/tsconfig.tsbuildinfo'
76
76
 
77
- 4:00:37 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'
77
+ 3:29:49 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'
78
78
 
79
- 4:00:37 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'
79
+ 3:29:49 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'
80
80
 
81
- 4:00:37 PM - Project '../icon-order-assets/tsconfig.json' is up to date because newest input '../icon-order-assets/src/background.ts' is older than output '../icon-order-assets/tsconfig.tsbuildinfo'
81
+ 3:29:49 PM - Project '../icon-order-assets/tsconfig.json' is up to date because newest input '../icon-order-assets/src/background.ts' is older than output '../icon-order-assets/tsconfig.tsbuildinfo'
82
82
 
83
- 4:00:37 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'
83
+ 3:29:49 PM - Project '../load-balancer/tsconfig.json' is up to date because newest input '../load-balancer/src/developmentProviderUrl.ts' is older than output '../load-balancer/tsconfig.tsbuildinfo'
84
84
 
85
- 4:00:37 PM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/utils/browser.ts' is older than output '../fingerprintjs/tsconfig.tsbuildinfo'
85
+ 3:29:49 PM - Project '../fingerprintjs/tsconfig.json' is up to date because newest input '../fingerprintjs/src/utils/browser.ts' is older than output '../fingerprintjs/tsconfig.tsbuildinfo'
86
86
 
87
- 4:00:37 PM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.test.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
87
+ 3:29:49 PM - Project '../fingerprint/tsconfig.json' is up to date because newest input '../fingerprint/src/index.test.ts' is older than output '../fingerprint/tsconfig.tsbuildinfo'
88
88
 
89
- 4:00:37 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'
89
+ 3:29:49 PM - Project '../web-bot-auth/tsconfig.json' is up to date because newest input '../web-bot-auth/src/verify.ts' is older than output '../web-bot-auth/tsconfig.tsbuildinfo'
90
90
 
91
- 4:00:37 PM - Project '../provider/tsconfig.json' is up to date because newest input '../provider/src/utils/devicePlatform.ts' is older than output '../provider/tsconfig.tsbuildinfo'
91
+ 3:29:49 PM - Project '../provider/tsconfig.json' is up to date because newest input '../provider/src/utils/devicePlatform.ts' is older than output '../provider/tsconfig.tsbuildinfo'
92
92
 
93
- 4:00:37 PM - Project '../../dev/workspace/tsconfig.json' is up to date because newest input '../../dev/workspace/src/index.ts' is older than output '../../dev/workspace/tsconfig.tsbuildinfo'
93
+ 3:29:49 PM - Project '../../dev/workspace/tsconfig.json' is up to date because newest input '../../dev/workspace/src/index.ts' is older than output '../../dev/workspace/tsconfig.tsbuildinfo'
94
94
 
95
- 4:00:37 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
95
+ 3:29:49 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
96
96
 
97
- 4:00:37 PM - Building project '/home/runner/work/captcha/captcha/packages/cli/tsconfig.json'...
97
+ 3:29:49 PM - Building project '/home/runner/work/captcha/captcha/packages/cli/tsconfig.json'...
98
98
 
@@ -95,4 +95,4 @@ dist/commands/siteKeyRegister.js 4.10 kB │ gzip: 1.26 kB
95
95
  dist/prosopo.config.js 4.49 kB │ gzip: 1.48 kB
96
96
  dist/RateLimiter.js 6.52 kB │ gzip: 1.02 kB
97
97
 
98
- ✓ built in 124ms
98
+ ✓ built in 39ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @prosopo/cli
2
2
 
3
+ ## 3.9.2
4
+ ### Patch Changes
5
+
6
+ - Updated dependencies [5c9792b]
7
+ - Updated dependencies [4201cf0]
8
+ - @prosopo/provider@5.21.1
9
+
10
+ ## 3.9.1
11
+ ### Patch Changes
12
+
13
+ - 0d94ae6: Pin Node to 24.22.1 in every Docker image and CI workflow, the first 24.x release with the fix for CVE-2026-111497 (an out-of-bounds write in the bundled Brotli decoder that can lead to remote code execution).
14
+
15
+ Before this, everything asked for plain `24`, which does not guarantee a patched build. Docker reuses a cached base image, and `setup-node` uses whatever 24.x a runner already has cached.
16
+
17
+ The provider image needed more than a tag bump. Its runtime, `gcr.io/distroless/nodejs24-debian12`, is stuck on Node 24.14.0 and will not get the fix. It now runs on `nodejs24-debian13`, pinned by digest because distroless publishes no Node version tags. The builder moves to `node:24.22.1-trixie-slim` so both stages still use the same Debian release and glibc. Sharp and the native ja4, merkle and puzzle addons were checked loading on the new runtime.
18
+
3
19
  ## 3.9.0
4
20
  ### Minor Changes
5
21
 
package/Dockerfile CHANGED
@@ -2,10 +2,10 @@
2
2
  # fetch happens in the builder; the runtime image is distroless and contains
3
3
  # only the Node runtime, this bundle and its one dependency.
4
4
  #
5
- # The builder is `node:24-slim` rather than `node:24` for the same reason the
5
+ # The builder is a slim image rather than `node:24` for the same reason the
6
6
  # runtime is distroless: `node:24` is 1.63 GB of build toolchain that a
7
7
  # pre-bundled JS file and a single prebuilt-binary dependency never touch.
8
- FROM node:24-slim AS builder
8
+ FROM node:24.22.1-trixie-slim AS builder
9
9
 
10
10
  WORKDIR /build
11
11
 
@@ -54,8 +54,11 @@ RUN echo '#!/nodejs/bin/node' | cat - provider.cli.bundle.js > temp && \
54
54
  npm i --include=optional --os=linux --cpu=x64 --no-fund --no-audit && \
55
55
  npm cache clean --force
56
56
 
57
- # `nodejs24-debian12` matches the builder's Debian release, so the glibc the
58
- # native addons were resolved against is the same one that loads them. All
57
+ # `nodejs24-debian13` matches the builder's Debian release (trixie), so the
58
+ # glibc the native addons were resolved against is the same one that loads
59
+ # them. Debian 12 is not an option: its distroless image stopped at Node
60
+ # 24.14.0, before the CVE-2026-111497 Brotli fix in 24.22.1. Distroless
61
+ # publishes no Node version tags, so the digest is what pins 24.22.1. All
59
62
  # four (@img/sharp, native-ja4, native-merkle, native-puzzle) are
60
63
  # linux-x64-gnu; an Alpine/musl runtime would break every one.
61
64
  #
@@ -70,7 +73,7 @@ RUN echo '#!/nodejs/bin/node' | cat - provider.cli.bundle.js > temp && \
70
73
  # CLI commands must name node explicitly (see above), and container
71
74
  # healthchecks cannot use curl — they run `node -e "fetch(...)"` instead. Every
72
75
  # call site in this repo and in the ansible playbooks has been moved over.
73
- FROM gcr.io/distroless/nodejs24-debian12:nonroot
76
+ FROM gcr.io/distroless/nodejs24-debian13:nonroot@sha256:78f07ef1b5ea71ad7c055df15d0dd8997f2d288f9158623c4d4ae3d765b7d50d
74
77
 
75
78
  WORKDIR /usr/src/app
76
79