From 0b056a4042011663a3b979dbbbff3defd5f77a72 Mon Sep 17 00:00:00 2001 From: Sawyer Cutler Date: Fri, 18 Sep 2026 09:01:14 -0700 Subject: [PATCH 1/2] Set Node 24 floor for google-tools --- .github/workflows/ci.yml | 23 +++++++++++++++++++++++ README.md | 4 ++++ package.json | 4 ++-- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5a94382 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,23 @@ +name: CI + +on: + push: + branches: ["**"] + pull_request: + +jobs: + verify: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [24] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + - uses: oven-sh/setup-bun@v2 + - run: bun install --frozen-lockfile + - run: bun run typecheck + - run: bun test + - run: bun run build diff --git a/README.md b/README.md index 7d66277..37ecf70 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ Google API clients and Interchange tools, starting with Gmail. Authentication is supplied through the Interchange `gmail-api` mediated credential; the package never accepts or returns raw tokens. +## Requirements + +Node.js 24 or newer (`engines.node >=24`). + ## Install ```bash diff --git a/package.json b/package.json index 65ee917..b49c5f8 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "tools", "interchange" ], - "author": "Corbits", + "author": "Sawyer Cutler ", "homepage": "https://github.com/corbitsdev/google-tools#readme", "repository": { "type": "git", @@ -21,7 +21,7 @@ "url": "https://github.com/corbitsdev/google-tools/issues" }, "engines": { - "node": ">=22" + "node": ">=24" }, "main": "./dist/index.js", "types": "./dist/index.d.ts", From f365bd339c184b0521f5db2715be2562c23214d4 Mon Sep 17 00:00:00 2001 From: Sawyer Cutler Date: Sun, 20 Sep 2026 18:42:17 -0700 Subject: [PATCH 2/2] ci: prove Node 24 with a dist import smoke setup-node 24 already ran, but verify/typecheck/test/build were bun-only. Import dist/index.js with node after the build so engines.node >=24 is real. --- .github/workflows/ci.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5a94382..593dd0e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,3 +21,17 @@ jobs: - run: bun run typecheck - run: bun test - run: bun run build + - name: node smoke + run: | + node -e ' + const major = Number(process.versions.node.split(".")[0]); + if (major < 24) { + throw new Error("need Node 24+, got " + process.version); + } + import("./dist/index.js").then((m) => { + if (typeof m.createGmailTools !== "function") { + throw new Error("missing export: createGmailTools"); + } + console.log("node smoke ok", process.version); + }); + '