From aefb2f80462d48a7bb5388c1f11ce3ff6bd913a4 Mon Sep 17 00:00:00 2001 From: mirunagherman Date: Wed, 10 Jun 2026 09:36:36 +0300 Subject: [PATCH 1/6] chore: upgrade to node v24 --- .github/copilot-instructions.md | 18 +- .github/workflows/setup/action.yml | 2 +- .nvmrc | 2 +- package.json | 2 +- packages/boutique/backend/Dockerfile.dev | 2 +- packages/boutique/backend/Dockerfile.prod | 4 +- packages/boutique/backend/package.json | 2 +- packages/boutique/frontend/Dockerfile.prod | 2 +- packages/boutique/shared/package.json | 2 +- packages/shared/backend/package.json | 14 +- packages/wallet/backend/Dockerfile.dev | 2 +- packages/wallet/backend/Dockerfile.prod | 4 +- packages/wallet/backend/package.json | 2 +- packages/wallet/frontend/Dockerfile.dev | 2 +- packages/wallet/frontend/Dockerfile.prod | 6 +- packages/wallet/frontend/package.json | 2 +- packages/wallet/shared/package.json | 2 +- pnpm-lock.yaml | 212 ++++++++++----------- 18 files changed, 134 insertions(+), 148 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 17696944b..33851e50d 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -20,7 +20,7 @@ ### Required Environment -- **Node.js 20 LTS** (`lts/iron`, enforced by `package.json` engines field) +- **Node.js 24 LTS** (enforced by `package.json` engines field) - **pnpm 9.x** (managed via Corepack; CI uses `pnpm/action-setup@v2`) - **Docker** and **Docker Compose** (for local services: Postgres, Redis, Traefik, Kratos, Rafiki, MockGatehub) - **Git** @@ -28,9 +28,9 @@ ### Setup Steps (First Time Only) ```bash -# 1. Switch to Node 20 (assumes nvm installed) -nvm install lts/iron -nvm use lts/iron +# 1. Switch to Node 24 (assumes nvm installed) +nvm install 24 +nvm use 24 # 2. Enable Corepack (pnpm package manager) corepack enable @@ -134,7 +134,7 @@ testnet/ ├── pnpm-workspace.yaml # Defines monorepo packages ├── tsconfig.base.json # Shared TypeScript config ├── .eslintrc.js, .prettierrc.js # Lint & format config -├── .nvmrc # Node version (lts/iron) +├── .nvmrc # Node version (24) │ ├── .github/workflows/ │ ├── ci.yml # PR validation (checks → builds → tests) @@ -176,12 +176,12 @@ testnet/ ### Scenario: Node Version Mismatch -**Symptom**: `ERR_PNPM_UNSUPPORTED_ENGINE Expected version: ^20.12.1` +**Symptom**: `ERR_PNPM_UNSUPPORTED_ENGINE Expected version: ^24.0.0` **Fix**: ```bash -nvm install lts/iron && nvm use lts/iron && pnpm install --frozen-lockfile +nvm install 24 && nvm use 24 && pnpm install --frozen-lockfile ``` ### Scenario: Stale Dependencies @@ -228,7 +228,7 @@ pnpm wallet:backend test --detectOpenHandles --forceExit **Fix**: ```bash -node --version # Verify v20.x.x +node --version # Verify v24.x.x pnpm install --frozen-lockfile pnpm build ``` @@ -240,7 +240,7 @@ pnpm build 1. **Trust this file first**: Before running grep/search/explore commands, check if information exists here. Minimize search time by following the command sequences documented above. 2. **Always validate prerequisites**: - - Node version: `node --version` → must be `v20.x.x` + - Node version: `node --version` → must be `v24.x.x` - pnpm installed: `pnpm --version` → must be `9.x` - Dependences installed: Run `pnpm install --frozen-lockfile` before any other command diff --git a/.github/workflows/setup/action.yml b/.github/workflows/setup/action.yml index b400ed77d..1685144d2 100644 --- a/.github/workflows/setup/action.yml +++ b/.github/workflows/setup/action.yml @@ -9,7 +9,7 @@ runs: - name: Setup NodeJS uses: actions/setup-node@v4 with: - node-version: 'lts/iron' + node-version: '24' - name: Install PNPM uses: pnpm/action-setup@v2 diff --git a/.nvmrc b/.nvmrc index 9de225682..54c65116f 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -lts/iron +v24 diff --git a/package.json b/package.json index 63abdd76b..b7f37fd75 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "pnpm": "^9.1.4", "npm": "pnpm", "yarn": "pnpm", - "node": "^20.12.1" + "node": "^24.0.0" }, "private": true, "packageManager": "pnpm@9.1.4" diff --git a/packages/boutique/backend/Dockerfile.dev b/packages/boutique/backend/Dockerfile.dev index 3fe3ed21e..67f801d5a 100644 --- a/packages/boutique/backend/Dockerfile.dev +++ b/packages/boutique/backend/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:iron-slim +FROM node:24-slim RUN apt-get update && \ apt-get install -y python3 build-essential && \ diff --git a/packages/boutique/backend/Dockerfile.prod b/packages/boutique/backend/Dockerfile.prod index 26a0c6fe6..6c1c37db8 100644 --- a/packages/boutique/backend/Dockerfile.prod +++ b/packages/boutique/backend/Dockerfile.prod @@ -1,4 +1,4 @@ -FROM node:20-alpine AS base +FROM node:24-alpine AS base WORKDIR /testnet @@ -32,7 +32,7 @@ RUN rm -rf ./node_modules ./packages/boutique/backend/node_modules ./packages/sh RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm install -r --frozen-lockfile --prod \ | grep -v "cross-device link not permitted\|Falling back to copying packages from store" -FROM node:20-alpine AS runner +FROM node:24-alpine AS runner WORKDIR /testnet diff --git a/packages/boutique/backend/package.json b/packages/boutique/backend/package.json index eba353ae5..410cb5189 100644 --- a/packages/boutique/backend/package.json +++ b/packages/boutique/backend/package.json @@ -27,7 +27,7 @@ "@types/cors": "^2.8.19", "@types/express": "^4.17.23", "@types/jest": "^29.5.14", - "@types/node": "^20.17.30", + "@types/node": "^24.13.1", "jest": "^29.7.0", "node-mocks-http": "^1.17.2", "ts-jest": "^29.4.4", diff --git a/packages/boutique/frontend/Dockerfile.prod b/packages/boutique/frontend/Dockerfile.prod index 372d0c645..d44044756 100644 --- a/packages/boutique/frontend/Dockerfile.prod +++ b/packages/boutique/frontend/Dockerfile.prod @@ -1,4 +1,4 @@ -FROM node:20-alpine AS base +FROM node:24-alpine AS base WORKDIR /testnet diff --git a/packages/boutique/shared/package.json b/packages/boutique/shared/package.json index 27ad74dc7..c9cdc47e9 100644 --- a/packages/boutique/shared/package.json +++ b/packages/boutique/shared/package.json @@ -14,7 +14,7 @@ "author": "", "license": "ISC", "devDependencies": { - "@types/node": "^20.17.30" + "@types/node": "^24.13.1" }, "dependencies": { "zod": "^3.25.76" diff --git a/packages/shared/backend/package.json b/packages/shared/backend/package.json index d06a59657..d0a8c407c 100644 --- a/packages/shared/backend/package.json +++ b/packages/shared/backend/package.json @@ -14,18 +14,18 @@ "author": "", "license": "ISC", "devDependencies": { - "@types/node": "^20.17.30", - "tsc-alias": "^1.8.16", - "typescript": "^5.9.3", "@types/express": "^4.17.23", - "ioredis": "^5.8.0" + "@types/node": "^24.13.1", + "ioredis": "^5.8.0", + "tsc-alias": "^1.8.16", + "typescript": "^5.9.3" }, "dependencies": { "awilix": "^12.0.5", + "axios": "^1.12.2", "express": "^4.21.2", - "objection": "^3.1.5", "knex": "^3.1.0", - "winston": "^3.18.3", - "axios": "^1.12.2" + "objection": "^3.1.5", + "winston": "^3.18.3" } } diff --git a/packages/wallet/backend/Dockerfile.dev b/packages/wallet/backend/Dockerfile.dev index 21540a3bb..cb69210a0 100644 --- a/packages/wallet/backend/Dockerfile.dev +++ b/packages/wallet/backend/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:iron-slim +FROM node:24-slim RUN apt-get update && \ apt-get install -y python3 build-essential && \ diff --git a/packages/wallet/backend/Dockerfile.prod b/packages/wallet/backend/Dockerfile.prod index cc95e9c5c..e780fef35 100644 --- a/packages/wallet/backend/Dockerfile.prod +++ b/packages/wallet/backend/Dockerfile.prod @@ -1,4 +1,4 @@ -FROM node:20-alpine AS base +FROM node:24-alpine AS base WORKDIR /testnet @@ -32,7 +32,7 @@ RUN rm -rf ./node_modules ./packages/wallet/backend/node_modules ./packages/wall RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm install -r --frozen-lockfile --prod \ | grep -v "cross-device link not permitted\|Falling back to copying packages from store" -FROM node:20-alpine AS runner +FROM node:24-alpine AS runner WORKDIR /testnet diff --git a/packages/wallet/backend/package.json b/packages/wallet/backend/package.json index a032fb494..05b73f1d1 100644 --- a/packages/wallet/backend/package.json +++ b/packages/wallet/backend/package.json @@ -51,7 +51,7 @@ "@types/crypto-js": "^4.2.2", "@types/express": "^4.17.23", "@types/jest": "^29.5.14", - "@types/node": "^20.17.30", + "@types/node": "^24.13.1", "@types/uuid": "^10.0.0", "jest": "^29.7.0", "node-mocks-http": "^1.17.2", diff --git a/packages/wallet/frontend/Dockerfile.dev b/packages/wallet/frontend/Dockerfile.dev index d6bbe8d22..e54565e4b 100644 --- a/packages/wallet/frontend/Dockerfile.dev +++ b/packages/wallet/frontend/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:iron-slim +FROM node:24-slim # Set the working directory WORKDIR /home/testnet diff --git a/packages/wallet/frontend/Dockerfile.prod b/packages/wallet/frontend/Dockerfile.prod index 94b43aeef..31a5a9d4b 100644 --- a/packages/wallet/frontend/Dockerfile.prod +++ b/packages/wallet/frontend/Dockerfile.prod @@ -1,9 +1,9 @@ -FROM node:20-alpine AS base +FROM node:24-alpine AS base WORKDIR /testnet RUN corepack enable -RUN corepack prepare pnpm@8.10.5 --activate +RUN corepack prepare pnpm@9.1.1 --activate RUN apk add --no-cache \ libc6-compat \ @@ -50,7 +50,7 @@ ENV PORT=$PORT \ RUN pnpm wallet:frontend build -FROM node:20-alpine AS runner +FROM node:24-alpine AS runner WORKDIR /testnet diff --git a/packages/wallet/frontend/package.json b/packages/wallet/frontend/package.json index 45f8beced..c02dcf5ab 100644 --- a/packages/wallet/frontend/package.json +++ b/packages/wallet/frontend/package.json @@ -36,7 +36,7 @@ "@next/bundle-analyzer": "^13.4.12", "@next/eslint-plugin-next": "^13.4.12", "@tailwindcss/forms": "^0.5.10", - "@types/node": "^20.17.30", + "@types/node": "^24.13.1", "@types/nprogress": "^0.2.3", "@types/react": "18.3.25", "@types/react-dom": "18.3.7", diff --git a/packages/wallet/shared/package.json b/packages/wallet/shared/package.json index 1e4b4c63a..07c5c0fe8 100644 --- a/packages/wallet/shared/package.json +++ b/packages/wallet/shared/package.json @@ -14,7 +14,7 @@ "author": "", "license": "ISC", "devDependencies": { - "@types/node": "^20.17.30" + "@types/node": "^24.13.1" }, "dependencies": { "zod": "^3.25.76" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91c3e7195..1834f9497 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -115,17 +115,17 @@ importers: specifier: ^29.5.14 version: 29.5.14 '@types/node': - specifier: ^20.17.30 - version: 20.17.30 + specifier: ^24.13.1 + version: 24.13.1 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0) node-mocks-http: specifier: ^1.17.2 - version: 1.17.2(@types/express@4.17.23)(@types/node@20.17.30) + version: 1.17.2(@types/express@4.17.23)(@types/node@24.13.1) ts-jest: specifier: ^29.4.4 - version: 29.4.4(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.9.3) + version: 29.4.4(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0))(typescript@5.9.3) tsc-alias: specifier: ^1.8.16 version: 1.8.16 @@ -213,7 +213,7 @@ importers: version: 18.3.7(@types/react@18.3.25) '@vitejs/plugin-react-swc': specifier: ^3.11.0 - version: 3.11.0(vite@5.4.20(@types/node@22.13.17)) + version: 3.11.0(vite@5.4.20(@types/node@24.13.1)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -228,7 +228,7 @@ importers: version: 5.9.3 vite: specifier: ^5.4.20 - version: 5.4.20(@types/node@22.13.17) + version: 5.4.20(@types/node@24.13.1) packages/boutique/shared: dependencies: @@ -237,8 +237,8 @@ importers: version: 3.25.76 devDependencies: '@types/node': - specifier: ^20.17.30 - version: 20.17.30 + specifier: ^24.13.1 + version: 24.13.1 packages/shared/backend: dependencies: @@ -265,8 +265,8 @@ importers: specifier: ^4.17.23 version: 4.17.23 '@types/node': - specifier: ^20.17.30 - version: 20.17.30 + specifier: ^24.13.1 + version: 24.13.1 ioredis: specifier: ^5.8.0 version: 5.8.0 @@ -381,7 +381,7 @@ importers: version: 9.9.0 '@graphql-codegen/cli': specifier: ^5.0.7 - version: 5.0.7(@types/node@20.17.30)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)(typescript@5.9.3) + version: 5.0.7(@types/node@24.13.1)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)(typescript@5.9.3) '@graphql-codegen/typescript': specifier: ^4.1.6 version: 4.1.6(graphql@16.11.0) @@ -401,23 +401,23 @@ importers: specifier: ^29.5.14 version: 29.5.14 '@types/node': - specifier: ^20.17.30 - version: 20.17.30 + specifier: ^24.13.1 + version: 24.13.1 '@types/uuid': specifier: ^10.0.0 version: 10.0.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + version: 29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0) node-mocks-http: specifier: ^1.17.2 - version: 1.17.2(@types/express@4.17.23)(@types/node@20.17.30) + version: 1.17.2(@types/express@4.17.23)(@types/node@24.13.1) testcontainers: specifier: ^10.28.0 version: 10.28.0 ts-jest: specifier: ^29.4.4 - version: 29.4.4(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.9.3) + version: 29.4.4(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0))(typescript@5.9.3) tsc-alias: specifier: ^1.8.16 version: 1.8.16 @@ -510,8 +510,8 @@ importers: specifier: ^0.5.10 version: 0.5.10(tailwindcss@3.4.18) '@types/node': - specifier: ^20.17.30 - version: 20.17.30 + specifier: ^24.13.1 + version: 24.13.1 '@types/nprogress': specifier: ^0.2.3 version: 0.2.3 @@ -541,8 +541,8 @@ importers: version: 3.25.76 devDependencies: '@types/node': - specifier: ^20.17.30 - version: 20.17.30 + specifier: ^24.13.1 + version: 24.13.1 packages: @@ -2598,14 +2598,11 @@ packages: '@types/node-rsa@1.1.4': resolution: {integrity: sha512-dB0ECel6JpMnq5ULvpUTunx3yNm8e/dIkv8Zu9p2c8me70xIRUUG3q+qXRwcSf9rN3oqamv4116iHy90dJGRpA==} - '@types/node@18.19.44': - resolution: {integrity: sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==} + '@types/node@18.19.130': + resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - '@types/node@20.17.30': - resolution: {integrity: sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==} - - '@types/node@22.13.17': - resolution: {integrity: sha512-nAJuQXoyPj04uLgu+obZcSmsfOenUg6DxPKogeUy6yNCFwWaj5sBF8/G/pNo8EtBJjAfSVgfIlugR/BCOleO+g==} + '@types/node@24.13.1': + resolution: {integrity: sha512-RSpUJGmvsJ1ZeBehQZFhIdpsz+bIpES0nIQXko4Ybq+N+kX6XvOq3Jo+iJ82FWLdblFq85AsMikd3m35jgezYg==} '@types/nprogress@0.2.3': resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} @@ -6587,11 +6584,8 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} undici@5.29.0: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} @@ -7656,7 +7650,7 @@ snapshots: graphql: 16.11.0 tslib: 2.6.3 - '@graphql-codegen/cli@5.0.7(@types/node@20.17.30)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)(typescript@5.9.3)': + '@graphql-codegen/cli@5.0.7(@types/node@24.13.1)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)(typescript@5.9.3)': dependencies: '@babel/generator': 7.25.0 '@babel/template': 7.25.0 @@ -7667,12 +7661,12 @@ snapshots: '@graphql-tools/apollo-engine-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/code-file-loader': 8.1.3(graphql@16.11.0) '@graphql-tools/git-loader': 8.0.7(graphql@16.11.0) - '@graphql-tools/github-loader': 8.0.1(@types/node@20.17.30)(graphql@16.11.0) + '@graphql-tools/github-loader': 8.0.1(@types/node@24.13.1)(graphql@16.11.0) '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/load': 8.1.2(graphql@16.11.0) - '@graphql-tools/prisma-loader': 8.0.4(@types/node@20.17.30)(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.2(@types/node@20.17.30)(graphql@16.11.0) + '@graphql-tools/prisma-loader': 8.0.4(@types/node@24.13.1)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@24.13.1)(graphql@16.11.0) '@graphql-tools/utils': 10.5.2(graphql@16.11.0) '@whatwg-node/fetch': 0.10.4 chalk: 4.1.2 @@ -7680,7 +7674,7 @@ snapshots: debounce: 1.2.1 detect-indent: 6.1.0 graphql: 16.11.0 - graphql-config: 5.1.2(@types/node@20.17.30)(graphql@16.11.0)(typescript@5.9.3) + graphql-config: 5.1.2(@types/node@24.13.1)(graphql@16.11.0)(typescript@5.9.3) inquirer: 8.2.6 is-glob: 4.0.3 jiti: 1.21.6 @@ -7888,14 +7882,14 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@1.1.5(@types/node@20.17.30)(graphql@16.11.0)': + '@graphql-tools/executor-http@1.1.5(@types/node@24.13.1)(graphql@16.11.0)': dependencies: '@graphql-tools/utils': 10.5.2(graphql@16.11.0) '@repeaterjs/repeater': 3.0.6 '@whatwg-node/fetch': 0.9.21 extract-files: 11.0.0 graphql: 16.11.0 - meros: 1.3.0(@types/node@20.17.30) + meros: 1.3.0(@types/node@24.13.1) tslib: 2.6.3 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -7934,10 +7928,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/github-loader@8.0.1(@types/node@20.17.30)(graphql@16.11.0)': + '@graphql-tools/github-loader@8.0.1(@types/node@24.13.1)(graphql@16.11.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/executor-http': 1.1.5(@types/node@20.17.30)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.1.5(@types/node@24.13.1)(graphql@16.11.0) '@graphql-tools/graphql-tag-pluck': 8.3.2(graphql@16.11.0) '@graphql-tools/utils': 10.5.2(graphql@16.11.0) '@whatwg-node/fetch': 0.9.21 @@ -8011,9 +8005,9 @@ snapshots: graphql: 16.11.0 tslib: 2.6.3 - '@graphql-tools/prisma-loader@8.0.4(@types/node@20.17.30)(graphql@16.11.0)': + '@graphql-tools/prisma-loader@8.0.4(@types/node@24.13.1)(graphql@16.11.0)': dependencies: - '@graphql-tools/url-loader': 8.0.2(@types/node@20.17.30)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@24.13.1)(graphql@16.11.0) '@graphql-tools/utils': 10.5.2(graphql@16.11.0) '@types/js-yaml': 4.0.9 '@whatwg-node/fetch': 0.9.21 @@ -8062,12 +8056,12 @@ snapshots: tslib: 2.6.3 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@8.0.2(@types/node@20.17.30)(graphql@16.11.0)': + '@graphql-tools/url-loader@8.0.2(@types/node@24.13.1)(graphql@16.11.0)': dependencies: '@ardatan/sync-fetch': 0.0.1 '@graphql-tools/delegate': 10.0.18(graphql@16.11.0) '@graphql-tools/executor-graphql-ws': 1.2.0(graphql@16.11.0) - '@graphql-tools/executor-http': 1.1.5(@types/node@20.17.30)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.1.5(@types/node@24.13.1)(graphql@16.11.0) '@graphql-tools/executor-legacy-ws': 1.1.0(graphql@16.11.0) '@graphql-tools/utils': 10.5.2(graphql@16.11.0) '@graphql-tools/wrap': 10.0.5(graphql@16.11.0) @@ -8300,7 +8294,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -8313,14 +8307,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -8345,7 +8339,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -8363,7 +8357,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.17.30 + '@types/node': 24.13.1 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -8385,7 +8379,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.17.30 + '@types/node': 24.13.1 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -8455,7 +8449,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -9192,38 +9186,38 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/caseless@0.12.5': {} '@types/connect@3.4.38': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/cookie@0.4.1': {} '@types/cors@2.8.19': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/crypto-js@4.2.2': {} '@types/docker-modem@3.0.6': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/ssh2': 1.15.1 '@types/dockerode@3.3.42': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/ssh2': 1.15.1 '@types/estree@1.0.8': {} '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -9237,7 +9231,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/http-errors@2.0.4': {} @@ -9266,20 +9260,15 @@ snapshots: '@types/node-rsa@1.1.4': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 - '@types/node@18.19.44': + '@types/node@18.19.130': dependencies: undici-types: 5.26.5 - '@types/node@20.17.30': + '@types/node@24.13.1': dependencies: - undici-types: 6.19.8 - - '@types/node@22.13.17': - dependencies: - undici-types: 6.20.0 - optional: true + undici-types: 7.18.2 '@types/nprogress@0.2.3': {} @@ -9307,33 +9296,33 @@ snapshots: '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/tough-cookie': 4.0.5 form-data: 2.5.5 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/ssh2@0.5.52': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': dependencies: - '@types/node': 18.19.44 + '@types/node': 18.19.130 '@types/stack-utils@2.0.3': {} @@ -9345,7 +9334,7 @@ snapshots: '@types/ws@8.5.12': dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 '@types/yargs-parser@21.0.3': {} @@ -9444,11 +9433,11 @@ snapshots: '@typescript-eslint/types': 8.58.0 eslint-visitor-keys: 5.0.1 - '@vitejs/plugin-react-swc@3.11.0(vite@5.4.20(@types/node@22.13.17))': + '@vitejs/plugin-react-swc@3.11.0(vite@5.4.20(@types/node@24.13.1))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.27 '@swc/core': 1.13.0 - vite: 5.4.20(@types/node@22.13.17) + vite: 5.4.20(@types/node@24.13.1) transitivePeerDependencies: - '@swc/helpers' @@ -10246,13 +10235,13 @@ snapshots: crc-32: 1.2.2 readable-stream: 4.5.2 - create-jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + create-jest@29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -10515,7 +10504,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.19 - '@types/node': 20.17.30 + '@types/node': 24.13.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -11219,13 +11208,13 @@ snapshots: graceful-fs@4.2.11: {} - graphql-config@5.1.2(@types/node@20.17.30)(graphql@16.11.0)(typescript@5.9.3): + graphql-config@5.1.2(@types/node@24.13.1)(graphql@16.11.0)(typescript@5.9.3): dependencies: '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.1(graphql@16.11.0) '@graphql-tools/load': 8.1.2(graphql@16.11.0) '@graphql-tools/merge': 9.0.5(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.2(@types/node@20.17.30)(graphql@16.11.0) + '@graphql-tools/url-loader': 8.0.2(@types/node@24.13.1)(graphql@16.11.0) '@graphql-tools/utils': 10.5.2(graphql@16.11.0) cosmiconfig: 9.0.0(typescript@5.9.3) graphql: 16.11.0 @@ -11700,7 +11689,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -11720,16 +11709,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + jest-cli@29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + create-jest: 29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -11739,7 +11728,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + jest-config@29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 @@ -11764,7 +11753,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -11793,7 +11782,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -11803,7 +11792,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.17.30 + '@types/node': 24.13.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -11842,7 +11831,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -11877,7 +11866,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -11905,7 +11894,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 chalk: 4.1.2 cjs-module-lexer: 1.3.1 collect-v8-coverage: 1.0.2 @@ -11951,7 +11940,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -11970,7 +11959,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.17.30 + '@types/node': 24.13.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -11979,17 +11968,17 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0): + jest@29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest-cli: 29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -12243,9 +12232,9 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@20.17.30): + meros@1.3.0(@types/node@24.13.1): optionalDependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 methods@1.1.2: {} @@ -12384,7 +12373,7 @@ snapshots: node-int64@0.4.0: {} - node-mocks-http@1.17.2(@types/express@4.17.23)(@types/node@20.17.30): + node-mocks-http@1.17.2(@types/express@4.17.23)(@types/node@24.13.1): dependencies: accepts: 1.3.8 content-disposition: 0.5.4 @@ -12398,7 +12387,7 @@ snapshots: type-is: 1.6.18 optionalDependencies: '@types/express': 4.17.23 - '@types/node': 20.17.30 + '@types/node': 24.13.1 node-releases@2.0.18: {} @@ -12854,7 +12843,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.17.30 + '@types/node': 24.13.1 long: 5.2.3 proxy-addr@2.0.7: @@ -13621,7 +13610,7 @@ snapshots: stripe@17.7.0: dependencies: - '@types/node': 20.17.30 + '@types/node': 24.13.1 qs: 6.13.0 structured-headers@0.5.0: {} @@ -13844,12 +13833,12 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.4.4(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0))(typescript@5.9.3): + ts-jest@29.4.4(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest-util@29.7.0)(jest@29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.8 - jest: 29.7.0(@types/node@20.17.30)(babel-plugin-macros@3.1.0) + jest: 29.7.0(@types/node@24.13.1)(babel-plugin-macros@3.1.0) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -13954,10 +13943,7 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.19.8: {} - - undici-types@6.20.0: - optional: true + undici-types@7.18.2: {} undici@5.29.0: dependencies: @@ -14047,13 +14033,13 @@ snapshots: vary@1.1.2: {} - vite@5.4.20(@types/node@22.13.17): + vite@5.4.20(@types/node@24.13.1): dependencies: esbuild: 0.21.5 postcss: 8.5.6 rollup: 4.52.2 optionalDependencies: - '@types/node': 22.13.17 + '@types/node': 24.13.1 fsevents: 2.3.3 walker@1.0.8: From dfb7ee67e21ba8b7de11165b4373e42989f7240a Mon Sep 17 00:00:00 2001 From: mirunagherman Date: Wed, 10 Jun 2026 10:00:21 +0300 Subject: [PATCH 2/6] fix: node version in build-publish.yaml --- .github/workflows/build-publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-publish.yaml b/.github/workflows/build-publish.yaml index dc43309da..9c267aed3 100644 --- a/.github/workflows/build-publish.yaml +++ b/.github/workflows/build-publish.yaml @@ -31,7 +31,7 @@ jobs: version: v9.1.4 - uses: actions/setup-node@v4 with: - node-version: '20.19.5' + node-version: '24.13.1' cache: 'pnpm' - name: Install dependencies for ${{ matrix.package }} shell: bash From 558cc2811a31c64b0648d61222efa3e552980a58 Mon Sep 17 00:00:00 2001 From: mirunagherman Date: Wed, 10 Jun 2026 10:01:26 +0300 Subject: [PATCH 3/6] chore: update README env setup node version --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fd1d4511b..fd27494ec 100644 --- a/README.md +++ b/README.md @@ -46,10 +46,9 @@ Please read the [contribution guidelines](.github/contributing.md) before submit ### Environment Setup ```sh -# Install Node 20 -nvm install lts/iron -nvm use lts/iron - +# Install Node 24 +nvm install 24 +nvm use 24 # Install pnpm using Corepack corepack enable ``` From 21d026c61a07020976d02ccf79d4d538968639a8 Mon Sep 17 00:00:00 2001 From: mirunagherman Date: Wed, 10 Jun 2026 10:09:52 +0300 Subject: [PATCH 4/6] fix: update @interledger/tlv-kit node version --- pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1834f9497..4dfff880c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1639,7 +1639,7 @@ packages: '@interledger/tlv-kit@1.0.3': resolution: {integrity: sha512-wOzYIsOCrFlUFtfEnacwYXxcMYYIYewQPycUm7GlXXKSobJziq1l4yGsw1zBWt4VVMfqLoLLsyeyVSsoLIZZ5g==} - engines: {node: '20', npm: pnpm, pnpm: ^9.15.4, yarn: pnpm} + engines: {node: '>=20', npm: pnpm, pnpm: ^9.15.4, yarn: pnpm} '@ioredis/commands@1.4.0': resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} From fb0a82c01603dc41296387ec312c6659c1e87e6b Mon Sep 17 00:00:00 2001 From: mirunagherman Date: Wed, 10 Jun 2026 12:32:09 +0300 Subject: [PATCH 5/6] chore: update pnpm version in Docker files --- packages/boutique/backend/Dockerfile.prod | 2 +- packages/boutique/frontend/Dockerfile.prod | 2 +- packages/wallet/backend/Dockerfile.prod | 2 +- packages/wallet/frontend/Dockerfile.prod | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/boutique/backend/Dockerfile.prod b/packages/boutique/backend/Dockerfile.prod index 6c1c37db8..464e68210 100644 --- a/packages/boutique/backend/Dockerfile.prod +++ b/packages/boutique/backend/Dockerfile.prod @@ -3,7 +3,7 @@ FROM node:24-alpine AS base WORKDIR /testnet RUN corepack enable -RUN corepack prepare pnpm@9.1.1 --activate +RUN corepack prepare pnpm@9.1.4 --activate RUN apk add --no-cache \ libc6-compat \ python3 \ diff --git a/packages/boutique/frontend/Dockerfile.prod b/packages/boutique/frontend/Dockerfile.prod index d44044756..190cec351 100644 --- a/packages/boutique/frontend/Dockerfile.prod +++ b/packages/boutique/frontend/Dockerfile.prod @@ -3,7 +3,7 @@ FROM node:24-alpine AS base WORKDIR /testnet RUN corepack enable -RUN corepack prepare pnpm@9.1.1 --activate +RUN corepack prepare pnpm@9.1.4 --activate RUN apk add --no-cache \ libc6-compat \ diff --git a/packages/wallet/backend/Dockerfile.prod b/packages/wallet/backend/Dockerfile.prod index e780fef35..cf8fc3a4e 100644 --- a/packages/wallet/backend/Dockerfile.prod +++ b/packages/wallet/backend/Dockerfile.prod @@ -3,7 +3,7 @@ FROM node:24-alpine AS base WORKDIR /testnet RUN corepack enable -RUN corepack prepare pnpm@9.1.1 --activate +RUN corepack prepare pnpm@9.1.4 --activate RUN apk add --no-cache \ libc6-compat \ python3 \ diff --git a/packages/wallet/frontend/Dockerfile.prod b/packages/wallet/frontend/Dockerfile.prod index 31a5a9d4b..c329cf4a4 100644 --- a/packages/wallet/frontend/Dockerfile.prod +++ b/packages/wallet/frontend/Dockerfile.prod @@ -3,7 +3,7 @@ FROM node:24-alpine AS base WORKDIR /testnet RUN corepack enable -RUN corepack prepare pnpm@9.1.1 --activate +RUN corepack prepare pnpm@9.1.4 --activate RUN apk add --no-cache \ libc6-compat \ From b8f758c5a4d4fea3fce612d9ee9ec6420818cf23 Mon Sep 17 00:00:00 2001 From: mirunagherman Date: Wed, 10 Jun 2026 12:37:41 +0300 Subject: [PATCH 6/6] chore: use node 24.13.1 for consistency --- .github/copilot-instructions.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 33851e50d..750bc4085 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -176,7 +176,7 @@ testnet/ ### Scenario: Node Version Mismatch -**Symptom**: `ERR_PNPM_UNSUPPORTED_ENGINE Expected version: ^24.0.0` +**Symptom**: `ERR_PNPM_UNSUPPORTED_ENGINE Expected version: ^24.13.1` **Fix**: diff --git a/package.json b/package.json index b7f37fd75..f2c550717 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "pnpm": "^9.1.4", "npm": "pnpm", "yarn": "pnpm", - "node": "^24.0.0" + "node": "^24.13.1" }, "private": true, "packageManager": "pnpm@9.1.4"