From 172591849b2c5fd624f2d642f51b73bcd61297da Mon Sep 17 00:00:00 2001 From: tianyubing Date: Fri, 7 Aug 2026 17:51:30 +0800 Subject: [PATCH 1/2] fix(rest/nodejs): support Node.js 24 --- .github/workflows/nodejs.yml | 8 ++++++-- rest/nodejs/README.md | 2 +- rest/nodejs/package-lock.json | 14 ++++++++++---- rest/nodejs/package.json | 5 ++++- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 3f861594..f05c60a0 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -31,9 +31,13 @@ permissions: jobs: build-and-test: - name: Build and test + name: Build and test (Node ${{ matrix.node-version }}) runs-on: ubuntu-latest timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + node-version: [20, 22, 24] defaults: run: working-directory: rest/nodejs @@ -45,7 +49,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v6 with: - node-version: "20" + node-version: ${{ matrix.node-version }} cache: npm cache-dependency-path: rest/nodejs/package-lock.json diff --git a/rest/nodejs/README.md b/rest/nodejs/README.md index 436bf73e..33e4e6c6 100644 --- a/rest/nodejs/README.md +++ b/rest/nodejs/README.md @@ -22,7 +22,7 @@ implement the UCP specifications for shopping, checkout, and order management. ## Prerequisites -- Node.js (v20 or higher recommended) +- Node.js 20, 22, or 24 - npm (Node Package Manager) ## Setup diff --git a/rest/nodejs/package-lock.json b/rest/nodejs/package-lock.json index c8a20da4..e0fab664 100644 --- a/rest/nodejs/package-lock.json +++ b/rest/nodejs/package-lock.json @@ -9,7 +9,7 @@ "@hono/node-server": "^2.0.10", "@hono/zod-validator": "^0.7.6", "@ucp-js/sdk": "0.4.3", - "better-sqlite3": "^9.4.3", + "better-sqlite3": "^12.11.1", "hono": "^4.13.0", "pino": "^10.1.0", "pino-http": "^11.0.0", @@ -23,6 +23,9 @@ "@types/uuid": "^9.0.8", "tsx": "^4.22.4", "typescript": "^5.8.3" + }, + "engines": { + "node": "20.x || 22.x || 24.x" } }, "node_modules/@esbuild/aix-ppc64": { @@ -588,14 +591,17 @@ "license": "MIT" }, "node_modules/better-sqlite3": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-9.6.0.tgz", - "integrity": "sha512-yR5HATnqeYNVnkaUTf4bOP2dJSnyhP4puJN/QPRyx4YkBEEUxib422n2XzPqDEHjQQqazoYoADdAm5vE15+dAQ==", + "version": "12.11.1", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz", + "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==", "hasInstallScript": true, "license": "MIT", "dependencies": { "bindings": "^1.5.0", "prebuild-install": "^7.1.1" + }, + "engines": { + "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x" } }, "node_modules/bindings": { diff --git a/rest/nodejs/package.json b/rest/nodejs/package.json index 2b798677..eed92cea 100644 --- a/rest/nodejs/package.json +++ b/rest/nodejs/package.json @@ -1,6 +1,9 @@ { "name": "nodejs", "type": "module", + "engines": { + "node": "20.x || 22.x || 24.x" + }, "scripts": { "dev": "tsx watch src/index.ts", "build": "tsc", @@ -11,7 +14,7 @@ "@hono/node-server": "^2.0.10", "@hono/zod-validator": "^0.7.6", "@ucp-js/sdk": "0.4.3", - "better-sqlite3": "^9.4.3", + "better-sqlite3": "^12.11.1", "hono": "^4.13.0", "pino": "^10.1.0", "pino-http": "^11.0.0", From 763d58b83502482da3b9448852ce4a42270b7342 Mon Sep 17 00:00:00 2001 From: tianyubing Date: Fri, 7 Aug 2026 17:57:49 +0800 Subject: [PATCH 2/2] ci(rest/nodejs): pin workflow actions --- .github/workflows/nodejs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index f05c60a0..fb31e393 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -44,10 +44,10 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v5 + uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5 - name: Set up Node.js - uses: actions/setup-node@v6 + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: ${{ matrix.node-version }} cache: npm