From 3fb5ddc5dd8de2b35479c3d9900d93ff1634bf2b Mon Sep 17 00:00:00 2001 From: ginnoir Date: Wed, 3 Jun 2026 16:15:00 -0500 Subject: [PATCH] chore: upgrade node 22 to 24 lts --- .github/workflows/ci.yml | 4 +- .nvmrc | 2 +- AGENTS.md | 4 +- CLAUDE.md | 4 +- Dockerfile | 4 +- docs/CONTRIBUTING.md | 2 +- package.json | 4 +- pnpm-lock.yaml | 188 +++++++++++++++++++-------------------- 8 files changed, 106 insertions(+), 106 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e8e53e..ef798a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 22 + node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile @@ -39,7 +39,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 22 + node-version: 24 cache: pnpm - run: pnpm install --frozen-lockfile diff --git a/.nvmrc b/.nvmrc index 2bd5a0a..a45fd52 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22 +24 diff --git a/AGENTS.md b/AGENTS.md index 4d38b5d..f4c3eaa 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -31,7 +31,7 @@ Codex and Claude Code both work on this project. Keep `AGENTS.md`, `CLAUDE.md`, | Realtime | Postgres `LISTEN/NOTIFY` → SSE | Simpler than WebSockets, fine for two users | | Reverse proxy | Caddy (existing) | `fam.ginnoir.com` → famapp:3000, `auth.ginnoir.com` → authentik | | Package manager | pnpm | Fast, content-addressed store, strict deps | -| Runtime | Node 22 LTS | In `node:22-alpine` container | +| Runtime | Node 24 LTS | In `node:24-alpine` container | | Host | Ubuntu Server 24.04 x64, Docker + Compose | Existing self-host stack | Domain: `fam.ginnoir.com`. SSO: `auth.ginnoir.com`. @@ -106,7 +106,7 @@ All household-scoped entity tables include `household_id`. Sub-entities (`calend ```yaml # compose.yaml (sketch — final lives in /deploy) services: - famapp: # node:22-alpine, Next.js + famapp: # node:24-alpine, Next.js famapp-db: # postgres:16 authentik-server: authentik-worker: diff --git a/CLAUDE.md b/CLAUDE.md index 5d61e30..29cdb4f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -31,7 +31,7 @@ Codex and Claude Code both work on this project. Keep `AGENTS.md`, `CLAUDE.md`, | Realtime | Postgres `LISTEN/NOTIFY` → SSE | Simpler than WebSockets, fine for two users | | Reverse proxy | Caddy (existing) | `fam.ginnoir.com` → famapp:3000, `auth.ginnoir.com` → authentik | | Package manager | pnpm | Fast, content-addressed store, strict deps | -| Runtime | Node 22 LTS | In `node:22-alpine` container | +| Runtime | Node 24 LTS | In `node:24-alpine` container | | Host | Ubuntu Server 24.04 x64, Docker + Compose | Existing self-host stack | Domain: `fam.ginnoir.com`. SSO: `auth.ginnoir.com`. @@ -106,7 +106,7 @@ All household-scoped entity tables include `household_id`. Sub-entities (`calend ```yaml # compose.yaml (sketch — final lives in /deploy) services: - famapp: # node:22-alpine, Next.js + famapp: # node:24-alpine, Next.js famapp-db: # postgres:16 authentik-server: authentik-worker: diff --git a/Dockerfile b/Dockerfile index da86215..1825122 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # ── Stage 1: fetch dependencies ─────────────────────────────────────────────── -FROM node:22-alpine AS deps +FROM node:24-alpine AS deps RUN corepack enable && corepack prepare pnpm@10.33.3 --activate WORKDIR /app COPY package.json pnpm-lock.yaml .npmrc ./ @@ -20,7 +20,7 @@ RUN --mount=type=cache,id=famapp-nextjs,target=/app/.next/cache \ pnpm build # ── Stage 3: production runtime ─────────────────────────────────────────────── -FROM node:22-alpine AS runner +FROM node:24-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=3000 diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 39a3c01..23045da 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -2,7 +2,7 @@ ## Prerequisites -- **Node.js** 22 LTS (`node --version` should print `v22.x.x`) +- **Node.js** 24 LTS (`node --version` should print `v24.x.x`) - **pnpm** 10 (`pnpm --version` should print `10.x.x`) - **Docker** with the Compose plugin (used for the local Postgres + MinIO containers) diff --git a/package.json b/package.json index 0bd158d..6fdf445 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "module", "packageManager": "pnpm@10.33.3", "engines": { - "node": ">=22" + "node": ">=24" }, "scripts": { "dev": "next dev", @@ -53,7 +53,7 @@ "@release-it/conventional-changelog": "^11.0.1", "@tailwindcss/postcss": "^4.2.4", "@types/canvas-confetti": "^1.9.0", - "@types/node": "^22.9.0", + "@types/node": "^24.0.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/web-push": "^3.6.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f8e67f5..d61da71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -73,7 +73,7 @@ importers: version: 2.2.3(react-dom@19.2.5(react@19.2.5))(react@19.2.5) shadcn: specifier: ^4.7.0 - version: 4.7.0(@types/node@22.19.17)(typescript@5.9.3) + version: 4.7.0(@types/node@24.12.4)(typescript@5.9.3) tailwind-merge: specifier: ^3.5.0 version: 3.5.0 @@ -89,7 +89,7 @@ importers: devDependencies: '@commitlint/cli': specifier: ^21.0.2 - version: 21.0.2(@types/node@22.19.17)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3) + version: 21.0.2(@types/node@24.12.4)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3) '@commitlint/config-conventional': specifier: ^21.0.2 version: 21.0.2 @@ -101,7 +101,7 @@ importers: version: 1.59.1 '@release-it/conventional-changelog': specifier: ^11.0.1 - version: 11.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(release-it@20.2.0(@types/node@22.19.17)) + version: 11.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(release-it@20.2.0(@types/node@24.12.4)) '@tailwindcss/postcss': specifier: ^4.2.4 version: 4.2.4 @@ -109,8 +109,8 @@ importers: specifier: ^1.9.0 version: 1.9.0 '@types/node': - specifier: ^22.9.0 - version: 22.19.17 + specifier: ^24.0.0 + version: 24.12.4 '@types/react': specifier: ^19.2.14 version: 19.2.14 @@ -149,7 +149,7 @@ importers: version: 3.8.3 release-it: specifier: ^20.2.0 - version: 20.2.0(@types/node@22.19.17) + version: 20.2.0(@types/node@24.12.4) tailwindcss: specifier: ^4.2.4 version: 4.2.4 @@ -1862,8 +1862,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.19.17': - resolution: {integrity: sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==} + '@types/node@24.12.4': + resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4895,8 +4895,8 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} undici@7.24.5: resolution: {integrity: sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==} @@ -5347,11 +5347,11 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 - '@commitlint/cli@21.0.2(@types/node@22.19.17)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3)': + '@commitlint/cli@21.0.2(@types/node@24.12.4)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3)': dependencies: '@commitlint/format': 21.0.1 '@commitlint/lint': 21.0.2 - '@commitlint/load': 21.0.2(@types/node@22.19.17)(typescript@5.9.3) + '@commitlint/load': 21.0.2(@types/node@24.12.4)(typescript@5.9.3) '@commitlint/read': 21.0.2(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) '@commitlint/types': 21.0.1 tinyexec: 1.2.4 @@ -5396,14 +5396,14 @@ snapshots: '@commitlint/rules': 21.0.2 '@commitlint/types': 21.0.1 - '@commitlint/load@21.0.2(@types/node@22.19.17)(typescript@5.9.3)': + '@commitlint/load@21.0.2(@types/node@24.12.4)(typescript@5.9.3)': dependencies: '@commitlint/config-validator': 21.0.1 '@commitlint/execute-rule': 21.0.1 '@commitlint/resolve-extends': 21.0.1 '@commitlint/types': 21.0.1 cosmiconfig: 9.0.1(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.3.0(@types/node@22.19.17)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.3.0(@types/node@24.12.4)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3) es-toolkit: 1.47.0 is-plain-obj: 4.1.0 picocolors: 1.1.1 @@ -5942,140 +5942,140 @@ snapshots: '@inquirer/ansi@2.0.7': {} - '@inquirer/checkbox@5.2.1(@types/node@22.19.17)': + '@inquirer/checkbox@5.2.1(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/confirm@6.0.12(@types/node@22.19.17)': + '@inquirer/confirm@6.0.12(@types/node@24.12.4)': dependencies: - '@inquirer/core': 11.1.9(@types/node@22.19.17) - '@inquirer/type': 4.0.5(@types/node@22.19.17) + '@inquirer/core': 11.1.9(@types/node@24.12.4) + '@inquirer/type': 4.0.5(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/core@11.1.9(@types/node@22.19.17)': + '@inquirer/core@11.1.9(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 2.0.5 '@inquirer/figures': 2.0.5 - '@inquirer/type': 4.0.5(@types/node@22.19.17) + '@inquirer/type': 4.0.5(@types/node@24.12.4) cli-width: 4.1.0 fast-wrap-ansi: 0.2.0 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/core@11.2.1(@types/node@22.19.17)': + '@inquirer/core@11.2.1(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 2.0.7 '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/type': 4.0.7(@types/node@24.12.4) cli-width: 4.1.0 fast-wrap-ansi: 0.2.0 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/editor@5.2.2(@types/node@22.19.17)': + '@inquirer/editor@5.2.2(@types/node@24.12.4)': dependencies: - '@inquirer/core': 11.2.1(@types/node@22.19.17) - '@inquirer/external-editor': 3.0.3(@types/node@22.19.17) - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/external-editor': 3.0.3(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/expand@5.1.1(@types/node@22.19.17)': + '@inquirer/expand@5.1.1(@types/node@24.12.4)': dependencies: - '@inquirer/core': 11.2.1(@types/node@22.19.17) - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/external-editor@3.0.3(@types/node@22.19.17)': + '@inquirer/external-editor@3.0.3(@types/node@24.12.4)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 '@inquirer/figures@2.0.5': {} '@inquirer/figures@2.0.7': {} - '@inquirer/input@5.1.2(@types/node@22.19.17)': + '@inquirer/input@5.1.2(@types/node@24.12.4)': dependencies: - '@inquirer/core': 11.2.1(@types/node@22.19.17) - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/number@4.1.1(@types/node@22.19.17)': + '@inquirer/number@4.1.1(@types/node@24.12.4)': dependencies: - '@inquirer/core': 11.2.1(@types/node@22.19.17) - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/password@5.1.1(@types/node@22.19.17)': + '@inquirer/password@5.1.1(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@22.19.17) - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/prompts@8.4.2(@types/node@22.19.17)': + '@inquirer/prompts@8.4.2(@types/node@24.12.4)': dependencies: - '@inquirer/checkbox': 5.2.1(@types/node@22.19.17) - '@inquirer/confirm': 6.0.12(@types/node@22.19.17) - '@inquirer/editor': 5.2.2(@types/node@22.19.17) - '@inquirer/expand': 5.1.1(@types/node@22.19.17) - '@inquirer/input': 5.1.2(@types/node@22.19.17) - '@inquirer/number': 4.1.1(@types/node@22.19.17) - '@inquirer/password': 5.1.1(@types/node@22.19.17) - '@inquirer/rawlist': 5.3.1(@types/node@22.19.17) - '@inquirer/search': 4.2.1(@types/node@22.19.17) - '@inquirer/select': 5.2.1(@types/node@22.19.17) + '@inquirer/checkbox': 5.2.1(@types/node@24.12.4) + '@inquirer/confirm': 6.0.12(@types/node@24.12.4) + '@inquirer/editor': 5.2.2(@types/node@24.12.4) + '@inquirer/expand': 5.1.1(@types/node@24.12.4) + '@inquirer/input': 5.1.2(@types/node@24.12.4) + '@inquirer/number': 4.1.1(@types/node@24.12.4) + '@inquirer/password': 5.1.1(@types/node@24.12.4) + '@inquirer/rawlist': 5.3.1(@types/node@24.12.4) + '@inquirer/search': 4.2.1(@types/node@24.12.4) + '@inquirer/select': 5.2.1(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/rawlist@5.3.1(@types/node@22.19.17)': + '@inquirer/rawlist@5.3.1(@types/node@24.12.4)': dependencies: - '@inquirer/core': 11.2.1(@types/node@22.19.17) - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/search@4.2.1(@types/node@22.19.17)': + '@inquirer/search@4.2.1(@types/node@24.12.4)': dependencies: - '@inquirer/core': 11.2.1(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/select@5.2.1(@types/node@22.19.17)': + '@inquirer/select@5.2.1(@types/node@24.12.4)': dependencies: '@inquirer/ansi': 2.0.7 - '@inquirer/core': 11.2.1(@types/node@22.19.17) + '@inquirer/core': 11.2.1(@types/node@24.12.4) '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@22.19.17) + '@inquirer/type': 4.0.7(@types/node@24.12.4) optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/type@4.0.5(@types/node@22.19.17)': + '@inquirer/type@4.0.5(@types/node@24.12.4)': optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 - '@inquirer/type@4.0.7(@types/node@22.19.17)': + '@inquirer/type@4.0.7(@types/node@24.12.4)': optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 '@jridgewell/gen-mapping@0.3.13': dependencies: @@ -6431,7 +6431,7 @@ snapshots: optionalDependencies: '@types/react': 19.2.14 - '@release-it/conventional-changelog@11.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(release-it@20.2.0(@types/node@22.19.17))': + '@release-it/conventional-changelog@11.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(release-it@20.2.0(@types/node@24.12.4))': dependencies: '@conventional-changelog/git-client': 2.7.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) concat-stream: 2.0.0 @@ -6439,7 +6439,7 @@ snapshots: conventional-changelog-angular: 8.3.1 conventional-changelog-conventionalcommits: 9.3.1 conventional-recommended-bump: 11.2.0 - release-it: 20.2.0(@types/node@22.19.17) + release-it: 20.2.0(@types/node@24.12.4) semver: 7.7.4 transitivePeerDependencies: - conventional-commits-filter @@ -6551,9 +6551,9 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@22.19.17': + '@types/node@24.12.4': dependencies: - undici-types: 6.21.0 + undici-types: 7.16.0 '@types/normalize-package-data@2.4.4': {} @@ -6571,7 +6571,7 @@ snapshots: '@types/set-cookie-parser@2.4.10': dependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 '@types/statuses@2.0.6': {} @@ -6579,7 +6579,7 @@ snapshots: '@types/web-push@3.6.4': dependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 '@typescript-eslint/eslint-plugin@8.59.2(@typescript-eslint/parser@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3)': dependencies: @@ -7159,9 +7159,9 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@6.3.0(@types/node@22.19.17)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3): + cosmiconfig-typescript-loader@6.3.0(@types/node@24.12.4)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3): dependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.4 cosmiconfig: 9.0.1(typescript@5.9.3) jiti: 2.6.1 typescript: 5.9.3 @@ -8658,9 +8658,9 @@ snapshots: ms@2.1.3: {} - msw@2.14.3(@types/node@22.19.17)(typescript@5.9.3): + msw@2.14.3(@types/node@24.12.4)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 6.0.12(@types/node@22.19.17) + '@inquirer/confirm': 6.0.12(@types/node@24.12.4) '@mswjs/interceptors': 0.41.8 '@open-draft/deferred-promise': 3.0.0 '@types/statuses': 2.0.6 @@ -9233,9 +9233,9 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - release-it@20.2.0(@types/node@22.19.17): + release-it@20.2.0(@types/node@24.12.4): dependencies: - '@inquirer/prompts': 8.4.2(@types/node@22.19.17) + '@inquirer/prompts': 8.4.2(@types/node@24.12.4) '@octokit/rest': 22.0.1 '@phun-ky/typeof': 2.0.3 async-retry: 1.3.3 @@ -9401,7 +9401,7 @@ snapshots: setprototypeof@1.2.0: {} - shadcn@4.7.0(@types/node@22.19.17)(typescript@5.9.3): + shadcn@4.7.0(@types/node@24.12.4)(typescript@5.9.3): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.3 @@ -9422,7 +9422,7 @@ snapshots: fuzzysort: 3.1.0 https-proxy-agent: 7.0.6 kleur: 4.1.5 - msw: 2.14.3(@types/node@22.19.17)(typescript@5.9.3) + msw: 2.14.3(@types/node@24.12.4)(typescript@5.9.3) node-fetch: 3.3.2 open: 11.0.0 ora: 8.2.0 @@ -9860,7 +9860,7 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.21.0: {} + undici-types@7.16.0: {} undici@7.24.5: {}