diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae151683..0ffebbb0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,14 +16,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - - run: corepack enable - - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + - uses: pnpm/setup@703c52620218391530e48b9e8870d5c0082e1b9b # v2.1.0 with: - node-version: 24.20.0 - cache: pnpm - - - name: 📦 Install dependencies - run: pnpm install + cache: true - run: pnpm dev:prepare @@ -36,10 +31,10 @@ jobs: - name: ⚙️ Check package engines run: pnpm test:engines - - name: 💪 Check published types + - name: 💪 Check published types (example) run: pnpm test:attw - - name: 📦 Check `package.json` + - name: 📦 Check `package.json` (example) run: pnpm test:publint ci: @@ -49,14 +44,10 @@ jobs: runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - - run: corepack enable - - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + - uses: pnpm/setup@703c52620218391530e48b9e8870d5c0082e1b9b # v2.1.0 with: - node-version: lts/-1 - cache: pnpm - - - name: 📦 Install dependencies - run: pnpm install + runtime: node@22 + cache: true - run: pnpm dev:prepare diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index 0224d3ca..7c15b633 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -15,14 +15,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - - run: corepack enable - - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + - uses: pnpm/setup@703c52620218391530e48b9e8870d5c0082e1b9b # v2.1.0 with: - node-version: lts/* - cache: "pnpm" - - - name: Install dependencies - run: pnpm install + cache: true - name: Prepare build environment run: pnpm dev:prepare @@ -30,4 +25,4 @@ jobs: - run: pnpm build - name: publish nightly release - run: pnpm pkg-pr-new publish --compact + run: pnpm pkg-pr-new publish --compact --pnpm diff --git a/package.json b/package.json index 93e0cfa9..0118583b 100644 --- a/package.json +++ b/package.json @@ -35,13 +35,24 @@ "nuxt-module-build": "JITI_ESM_RESOLVE=1 jiti ./src/cli.ts", "prepack": "pnpm build", "test": "pnpm vitest --coverage", - "test:attw": "attw --pack example && attw --pack .", + "test:attw": "pnpm -C example pack --out ../.temp-attw/example.tgz && attw .temp-attw/example.tgz", "test:publint": "cd example && publint", "test:engines": "installed-check -d --no-workspaces", "test:knip": "knip --exclude unresolved", "test:types": "vue-tsc --noEmit && pnpm -r test:types" }, - "packageManager": "pnpm@12.3.4", + "devEngines": { + "runtime": { + "name": "node", + "version": "^24.0.0", + "onFail": "download" + }, + "packageManager": { + "name": "pnpm", + "version": "12.3.4", + "onFail": "download" + } + }, "dependencies": { "citty": "^0.2.2", "consola": "^3.4.2", @@ -62,6 +73,7 @@ }, "devDependencies": { "@arethetypeswrong/cli": "^0.18.5", + "@arethetypeswrong/core": "^0.18.5", "@nuxt/cli": "^3.37.0", "@nuxt/eslint-config": "^1.17.0", "@nuxt/schema": "~4.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f55370bb..790e29f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -158,6 +158,9 @@ importers: '@arethetypeswrong/cli': specifier: ^0.18.5 version: 0.18.5 + '@arethetypeswrong/core': + specifier: ^0.18.5 + version: 0.18.5 '@nuxt/cli': specifier: ^3.37.0 version: 3.37.0(@nuxt/schema@4.5.2)(magicast@0.5.4)(supports-color@10.2.2) @@ -185,6 +188,9 @@ importers: knip: specifier: ^6.33.0 version: 6.33.0 + node: + specifier: runtime:^24.0.0 + version: runtime:24.21.0 nuxt: specifier: ~4.5.2 version: 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2)))(@oxc-project/types@0.147.0)(@types/node@24.13.3)(@vue/compiler-sfc@3.5.42)(db0@0.3.4)(esbuild@0.28.2)(eslint@10.9.1(jiti@2.7.0)(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(lightningcss@1.33.0)(magicast@0.5.4)(optionator@0.9.4)(oxc-parser@0.147.0)(rolldown@1.2.6)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.6)(rollup@4.63.1))(rollup@4.63.1)(srvx@0.11.22)(supports-color@10.2.2)(terser@5.51.2)(typescript@5.9.3)(vite@8.2.2(@types/node@24.13.3)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.0))(vue-tsc@3.3.11(typescript@5.9.3))(yaml@2.9.0) @@ -3792,6 +3798,138 @@ packages: resolution: {integrity: sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==} engines: {node: '>=18'} + node@runtime:24.21.0: + resolution: + type: variations + variants: + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-rseyRkr7mfB4wZywbSAdVDvTsxHLoHEoK84bF8l+WLs= + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-aix-ppc64.tar.gz + targets: + - cpu: ppc64 + os: aix + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-vtfupTJeEQjzLOUijd1qXw8IpJnuQqp0Qq6lg3AvYFc= + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-darwin-arm64.tar.gz + targets: + - cpu: arm64 + os: darwin + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-FGLLOzBGuBXPjqQ209pFDsGp8R2sflpGsK2lMF1+gJc= + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-darwin-x64.tar.gz + targets: + - cpu: x64 + os: darwin + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-ckKCw7Q67JmKqVJzgEZbRdIp4CG1gDX19PYwleq/5dU= + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-arm64.tar.gz + targets: + - cpu: arm64 + os: linux + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-UcXVMGbukpILYXg7A7Buy5nzZhFg97Fcp36EdBFaZ7w= + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-ppc64le.tar.gz + targets: + - cpu: ppc64le + os: linux + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-Xy+jdCLgx13jXBaG/lHXgyTywqj+LMI5pB2cAAop2Tg= + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-s390x.tar.gz + targets: + - cpu: s390x + os: linux + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-PWNAX8ZaDS0pdsHwvC/Se7C9ByEkaecFqsPwOuWrTJw= + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-x64-musl.tar.gz + targets: + - cpu: x64 + os: linux + libc: musl + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-bh24fvWLiBnl1UAu/xU2SRsY7djre+5e94l4duiNxf8= + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-x64.tar.gz + targets: + - cpu: x64 + os: linux + - resolution: + archive: zip + bin: + node: node.exe + integrity: sha256-h3mxveHTn41CDjtXqmV7OYka9DTT3kSpGQRM7AZ4WSE= + prefix: node-v24.21.0-win-arm64 + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-win-arm64.zip + targets: + - cpu: arm64 + os: win32 + - resolution: + archive: zip + bin: + node: node.exe + integrity: sha256-FY92hbRN5R9sDfHRU1JsvNPhvHOajfxgdyHO913p5UE= + prefix: node-v24.21.0-win-x64 + type: binary + url: https://nodejs.org/download/release/v24.21.0/node-v24.21.0-win-x64.zip + targets: + - cpu: x64 + os: win32 + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-MEiwgR4VjKDYZytZyDmGF2PhREkpgNjSmzad/uRXR+Q= + type: binary + url: https://unofficial-builds.nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-arm64-musl.tar.gz + targets: + - cpu: arm64 + os: linux + libc: musl + - resolution: + archive: tarball + bin: + node: bin/node + integrity: sha256-AacT402pjntNKjGR7nyj+T3QOE0aLvI8N5shYe5uEzo= + type: binary + url: https://unofficial-builds.nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-x64-musl.tar.gz + targets: + - cpu: x64 + os: linux + libc: musl + version: 24.21.0 + hasBin: true + nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9182,6 +9320,8 @@ snapshots: node-releases@2.0.54: {} + node@runtime:24.21.0: {} + nopt@8.1.0: dependencies: abbrev: 3.0.1 diff --git a/tsdown.config.ts b/tsdown.config.ts index 3808ee62..4bdefd18 100644 --- a/tsdown.config.ts +++ b/tsdown.config.ts @@ -4,4 +4,6 @@ export default defineConfig({ entry: ['./src/cli.ts', './src/index.ts'], format: 'esm', dts: true, + publint: { level: 'error' }, + attw: { level: 'error', ignoreRules: ['cjs-resolves-to-esm'] }, })