diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index f6df7ba..4adea54 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -2,7 +2,7 @@ name: 'Setup Node + pnpm' description: 'Sets up Node.js (LTS by default) with pnpm and dependency caching.' inputs: node-version: - description: 'Node.js version to use. Defaults to the .nvmrc value if present, otherwise 22.' + description: 'Node.js version to use. Defaults to the .node-version value if present, otherwise 24.' required: false default: '' node-auth-token: @@ -52,10 +52,10 @@ runs: run: | if [ -n "${{ inputs.node-version }}" ]; then echo "version=${{ inputs.node-version }}" >> "$GITHUB_OUTPUT" - elif [ -f .nvmrc ]; then - echo "version=$(cat .nvmrc)" >> "$GITHUB_OUTPUT" + elif [ -f .node-version ]; then + echo "version=$(cat .node-version)" >> "$GITHUB_OUTPUT" else - echo "version=22" >> "$GITHUB_OUTPUT" + echo "version=24" >> "$GITHUB_OUTPUT" fi - name: Setup Node.js diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index b1bea94..d319757 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -4,7 +4,7 @@ on: workflow_call: inputs: node-version: - description: 'Node.js version. Defaults to .nvmrc / 22.' + description: 'Node.js version. Defaults to .node-version / 24.' required: false type: string default: '' diff --git a/.node-version b/.node-version new file mode 100644 index 0000000..5bf4400 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +24.15.0 diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 2bd5a0a..0000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -22 diff --git a/CONSUMING.md b/CONSUMING.md index eb12ce2..b427c0b 100644 --- a/CONSUMING.md +++ b/CONSUMING.md @@ -59,7 +59,7 @@ jobs: packages: read uses: kin0992/dev-toolkit/.github/workflows/static-analysis.yml@main with: - node-version: '22' + node-version: '24' working-directory: '.' ``` diff --git a/README.md b/README.md index 986afea..4b2356f 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Platform Engineering toolkit: reusable GitHub Actions, AI Skills, and shared Typ ## Stack -Node.js LTS · TypeScript · pnpm workspaces · Turbo · OXC (`oxfmt`, `oxlint`) · Vitest · Pulumi (TS) · Changesets · GitHub Actions · GitHub Packages registry +Node.js 24 · TypeScript · pnpm workspaces · Turbo · OXC (`oxfmt`, `oxlint`) · Vitest · Pulumi (TS) · Changesets · GitHub Actions · GitHub Packages registry ## How to consume from another project diff --git a/infra/package.json b/infra/package.json index 19ec68e..a161bd6 100644 --- a/infra/package.json +++ b/infra/package.json @@ -22,9 +22,9 @@ }, "devDependencies": { "@kin0992/oxc-config": "workspace:*", - "@types/node": "^22.10.2", + "@types/node": "catalog:core", "oxfmt": "catalog:core", "oxlint": "catalog:core", - "typescript": "^5.7.2" + "typescript": "catalog:core" } } diff --git a/package.json b/package.json index 15802be..f7346cc 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "typescript": "catalog:core" }, "engines": { - "node": ">=22.0.0", + "node": ">=24.0.0", "pnpm": ">=9.0.0" }, "packageManager": "pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fc956a4..e914ca9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,9 @@ settings: catalogs: core: + '@types/node': + specifier: ^24.12.2 + version: 24.12.2 oxfmt: specifier: ^0.47.0 version: 0.47.0 @@ -22,7 +25,7 @@ importers: devDependencies: '@changesets/cli': specifier: ^2.31.0 - version: 2.31.0(@types/node@22.19.17) + version: 2.31.0(@types/node@24.12.2) '@kin0992/oxc-config': specifier: workspace:* version: link:packages/oxc-config @@ -52,8 +55,8 @@ importers: specifier: workspace:* version: link:../packages/oxc-config '@types/node': - specifier: ^22.10.2 - version: 22.19.17 + specifier: catalog:core + version: 24.12.2 oxfmt: specifier: catalog:core version: 0.47.0 @@ -61,7 +64,7 @@ importers: specifier: catalog:core version: 1.62.0 typescript: - specifier: ^5.7.2 + specifier: catalog:core version: 5.9.3 packages/eslint-config: @@ -138,7 +141,7 @@ importers: dependencies: vitest: specifier: ^2.0.0 || ^3.0.0 - version: 3.2.4(@types/node@22.19.17) + version: 3.2.4(@types/node@24.12.2) devDependencies: '@kin0992/oxc-config': specifier: workspace:* @@ -1155,8 +1158,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@22.19.17': - resolution: {integrity: sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==} + '@types/node@24.12.2': + resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} @@ -2357,8 +2360,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} undici@6.25.0: resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==} @@ -2545,7 +2548,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.31.0(@types/node@22.19.17)': + '@changesets/cli@2.31.0(@types/node@24.12.2)': dependencies: '@changesets/apply-release-plan': 7.1.1 '@changesets/assemble-release-plan': 6.0.10 @@ -2561,7 +2564,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@22.19.17) + '@inquirer/external-editor': 1.0.3(@types/node@24.12.2) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 enquirer: 2.4.1 @@ -2813,12 +2816,12 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/external-editor@1.0.3(@types/node@22.19.17)': + '@inquirer/external-editor@1.0.3(@types/node@24.12.2)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.2 '@isaacs/fs-minipass@4.0.1': dependencies: @@ -3431,9 +3434,9 @@ snapshots: '@types/node@12.20.55': {} - '@types/node@22.19.17': + '@types/node@24.12.2': dependencies: - undici-types: 6.21.0 + undici-types: 7.16.0 '@types/semver@7.7.1': {} @@ -3540,13 +3543,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@22.19.17))': + '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@24.12.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@22.19.17) + vite: 7.3.2(@types/node@24.12.2) '@vitest/pretty-format@3.2.4': dependencies: @@ -4459,7 +4462,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.1 - '@types/node': 22.19.17 + '@types/node': 24.12.2 long: 5.3.2 punycode@2.3.1: {} @@ -4725,7 +4728,7 @@ snapshots: typescript@5.9.3: {} - undici-types@6.21.0: {} + undici-types@7.16.0: {} undici@6.25.0: {} @@ -4746,13 +4749,13 @@ snapshots: validate-npm-package-name@7.0.2: {} - vite-node@3.2.4(@types/node@22.19.17): + vite-node@3.2.4(@types/node@24.12.2): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.2(@types/node@22.19.17) + vite: 7.3.2(@types/node@24.12.2) transitivePeerDependencies: - '@types/node' - jiti @@ -4767,7 +4770,7 @@ snapshots: - tsx - yaml - vite@7.3.2(@types/node@22.19.17): + vite@7.3.2(@types/node@24.12.2): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -4776,14 +4779,14 @@ snapshots: rollup: 4.60.2 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.2 fsevents: 2.3.3 - vitest@3.2.4(@types/node@22.19.17): + vitest@3.2.4(@types/node@24.12.2): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@22.19.17)) + '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@24.12.2)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -4801,11 +4804,11 @@ snapshots: tinyglobby: 0.2.16 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.2(@types/node@22.19.17) - vite-node: 3.2.4(@types/node@22.19.17) + vite: 7.3.2(@types/node@24.12.2) + vite-node: 3.2.4(@types/node@24.12.2) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.19.17 + '@types/node': 24.12.2 transitivePeerDependencies: - jiti - less diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 86ef860..796f419 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,6 +4,7 @@ packages: catalogs: core: + '@types/node': ^24.12.2 typescript: ^5.9.3 oxfmt: ^0.47.0 oxlint: ^1.62.0