diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 03f6088c1..2d5936a1a 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -17,7 +17,7 @@ jobs: - run: npm i -g --force corepack && corepack enable - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: - node-version: 22 + node-version: lts/* cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/changelogensets.yml b/.github/workflows/changelogensets.yml index a044a7361..b58627846 100644 --- a/.github/workflows/changelogensets.yml +++ b/.github/workflows/changelogensets.yml @@ -1,4 +1,4 @@ -name: changelog +name: release on: push: @@ -14,8 +14,8 @@ concurrency: cancel-in-progress: ${{ github.event_name != 'push' }} jobs: - update: - if: github.repository_owner == 'nuxt' && !contains(github.event.head_commit.message, 'v3.') + update-changelog: + if: github.repository_owner == 'nuxt' && !startsWith(github.event.head_commit.message, 'v') runs-on: ubuntu-latest steps: @@ -25,12 +25,13 @@ jobs: - run: npm i -g --force corepack && corepack enable - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: - node-version: 22 - cache: "pnpm" + node-version: lts/* + cache: pnpm - - name: Install dependencies + - name: πŸ“¦ Install dependencies run: pnpm install - - run: pnpm jiti ./scripts/update-changelog.ts + - name: 🚧 Update changelog + run: node --experimental-strip-types ./scripts/update-changelog.ts env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eaeeb6437..563c6fc1d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: - run: npm i -g --force corepack && corepack enable - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: - node-version: 22 + node-version: lts/* cache: "pnpm" - name: Install dependencies @@ -57,7 +57,7 @@ jobs: - run: npm i -g --force corepack && corepack enable - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: - node-version: 22 + node-version: lts/* cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml index b05559817..675b0794c 100644 --- a/.github/workflows/release-nightly.yml +++ b/.github/workflows/release-nightly.yml @@ -4,6 +4,9 @@ on: push: branches: - main + pull_request: + branches: + - main # Remove default permissions of GITHUB_TOKEN for security # https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs @@ -12,7 +15,7 @@ permissions: {} jobs: nightly: runs-on: ubuntu-latest - if: ${{ github.repository_owner == 'nuxt' && github.event_name == 'push' }} + if: ${{ github.repository_owner == 'nuxt' }} permissions: id-token: write steps: @@ -20,7 +23,7 @@ jobs: - run: npm i -g --force corepack && corepack enable - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: - node-version: 22 + node-version: lts/* registry-url: "https://registry.npmjs.org/" cache: "pnpm" @@ -30,7 +33,12 @@ jobs: - name: Prepare build environment run: pnpm dev:prepare - - name: nightly release + - name: πŸ“¦ release pkg.pr.new + if: github.event_name != 'push' + run: pnpm pkg-pr-new publish --compact + + - name: πŸ“¦ release nightly + if: github.event_name == 'push' run: pnpm changelogen --canary nightly --publish env: NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7cdb1cc0c..8867efb5e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,9 +1,10 @@ name: release on: - push: - tags: - - "v*" + pull_request_target: + types: [closed] + branches: + - main # Remove default permissions of GITHUB_TOKEN for security # https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs @@ -11,8 +12,11 @@ permissions: {} jobs: release: - if: github.repository_owner == 'nuxt' + if: github.repository_owner == 'nuxt' && github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'v') + concurrency: + group: release permissions: + contents: write id-token: write runs-on: ubuntu-latest timeout-minutes: 20 @@ -23,18 +27,32 @@ jobs: - run: npm i -g --force corepack && corepack enable - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 with: - node-version: 22 - registry-url: "https://registry.npmjs.org/" - cache: "pnpm" + node-version: lts/* + registry-url: 'https://registry.npmjs.org/' + cache: pnpm - - name: Install dependencies + - name: πŸ“¦ Install dependencies run: pnpm install - - name: Prepare build environment + - name: πŸ›  Prepare build environment run: pnpm dev:prepare - - name: Release + - name: πŸ“¦ Release run: pnpm changelogen --publish env: NODE_AUTH_TOKEN: ${{ secrets.RELEASE_NODE_AUTH_TOKEN }} NPM_CONFIG_PROVENANCE: true + + - name: 🏷️ Create tag + run: | + TAG_NAME=${{ github.event.pull_request.head.ref }} + git tag $TAG_NAME + git push origin $TAG_NAME + + - name: πŸ›³οΈ Create GitHub release + run: gh release create $TAG_NAME --title "$RELEASE_NAME" --notes "$BODY" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAG_NAME: ${{ github.event.pull_request.head.ref }} + RELEASE_NAME: ${{ github.event.pull_request.head.ref }} + BODY: ${{ github.event.pull_request.body }} diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 63ad3dd62..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,573 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -## v3.15.4 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.15.3...v3.15.4) - -### 🩹 Fixes - -- **e2e:** Use `tinyexec` to resolve nuxi binary ([7df895e3](https://github.com/nuxt/test-utils/commit/7df895e3)) -- **e2e:** Increase default windows setup timeout ([6f38dd58](https://github.com/nuxt/test-utils/commit/6f38dd58)) - -### βœ… Tests - -- Bump timeout in test also ([dcf038a0](https://github.com/nuxt/test-utils/commit/dcf038a0)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) - -## v3.15.3 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.15.2...v3.15.3) - -### 🩹 Fixes - -- **e2e:** Use `node:path` to resolve `dist` directory ([#1054](https://github.com/nuxt/test-utils/pull/1054)) - -### ❀️ Contributors - -- Scott Bedard ([@scottbedard](http://github.com/scottbedard)) - -## v3.15.2 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.15.1...v3.15.2) - -### 🩹 Fixes - -- **module:** Remove `setInterval` from the presets ([#1035](https://github.com/nuxt/test-utils/pull/1035)) - -### 🏑 Chore - -- Add devtools-kit types + specify vite in jest fixture ([c37781b5](https://github.com/nuxt/test-utils/commit/c37781b5)) -- Double windows timeout ([45e16131](https://github.com/nuxt/test-utils/commit/45e16131)) - -### βœ… Tests - -- Update windows timeout for e2e test ([1acb335b](https://github.com/nuxt/test-utils/commit/1acb335b)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) -- Ryota Watanabe ([@wattanx](http://github.com/wattanx)) - -## v3.15.1 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.15.0...v3.15.1) - -### 🩹 Fixes - -- **runtime-utils:** Import `reactive` ([f05c0faf3](https://github.com/nuxt/test-utils/commit/f05c0faf3)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) - -## v3.15.0 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.14.4...v3.15.0) - -### πŸš€ Enhancements - -- **e2e:** Expose `NuxtPage` playwright type ([#1015](https://github.com/nuxt/test-utils/pull/1015)) -- **playwright:** Allow providing default test options ([#1001](https://github.com/nuxt/test-utils/pull/1001)) - -### 🩹 Fixes - -- **runtime-utils:** Support `defineModel` in `mountSuspended` ([#1011](https://github.com/nuxt/test-utils/pull/1011)) -- **core:** Bump teardown timeout for jest ([3225562ea](https://github.com/nuxt/test-utils/commit/3225562ea)) -- **runtime-utils:** Handle reserved `props` ([#1025](https://github.com/nuxt/test-utils/pull/1025)) -- **vitest-environment:** Suppress suspense warning ([#1026](https://github.com/nuxt/test-utils/pull/1026)) -- **runtime-utils:** Suppress errors setting unneeded properties ([4e9f34b96](https://github.com/nuxt/test-utils/commit/4e9f34b96)) -- **e2e:** Handle `javaScriptEnabled: false` ([ca06f3375](https://github.com/nuxt/test-utils/commit/ca06f3375)) -- **e2e:** Use subpath import for `distDir` string ([094acb299](https://github.com/nuxt/test-utils/commit/094acb299)) -- **e2e:** Remove `dirname` when calculating `distDir` ([56122b745](https://github.com/nuxt/test-utils/commit/56122b745)) -- **e2e:** Use `nuxtConfig.nitro.output.dir` with `build: false` ([#936](https://github.com/nuxt/test-utils/pull/936)) - -### 🏑 Chore - -- Upgrade typescript separately ([ee6f4c088](https://github.com/nuxt/test-utils/commit/ee6f4c088)) -- Add `knip` and reduce peer dependencies ([4e10bd266](https://github.com/nuxt/test-utils/commit/4e10bd266)) -- Revert node requirement ([bb4345a84](https://github.com/nuxt/test-utils/commit/bb4345a84)) -- Use `installed-check` to keep `engines.node` in sync ([ebcc5effa](https://github.com/nuxt/test-utils/commit/ebcc5effa)) - -### βœ… Tests - -- Bump jest timeout ([00f409c8d](https://github.com/nuxt/test-utils/commit/00f409c8d)) -- Add test case for `mountSuspended` + #imports ([4f3f50327](https://github.com/nuxt/test-utils/commit/4f3f50327)) - -### πŸ€– CI - -- Run tests on node 22 ([86fd24c46](https://github.com/nuxt/test-utils/commit/86fd24c46)) - -### ❀️ Contributors - -- Alexander Rozhkov ([@Al-Rozhkov](http://github.com/Al-Rozhkov)) -- Daniel Roe ([@danielroe](http://github.com/danielroe)) -- Torma GΓ‘bor ([@GaborTorma](http://github.com/GaborTorma)) -- Ahmadou Waly NDIAYE ([@sir-kain](http://github.com/sir-kain)) -- Ryota Watanabe ([@wattanx](http://github.com/wattanx)) - -## v3.14.4 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.14.3...v3.14.4) - -### 🩹 Fixes - -- **e2e:** Set `NODE_ENV` when running built server ([#969](https://github.com/nuxt/test-utils/pull/969)) -- **runtime-utils:** Bind this in options api methods ([#971](https://github.com/nuxt/test-utils/pull/971)) - -### ❀️ Contributors - -- INOUE Takuya ([@inouetakuya](http://github.com/inouetakuya)) -- Daniel Roe ([@danielroe](http://github.com/danielroe)) - -## v3.14.3 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.14.2...v3.14.3) - -### 🩹 Fixes - -- **vitest-environment:** Respect custom url in setup ([#957](https://github.com/nuxt/test-utils/pull/957)) -- **runtime-utils:** Pass global `directives` to `mountSuspended` ([#960](https://github.com/nuxt/test-utils/pull/960)) -- **runtime-utils:** Pass global `directives` to `renderSuspended` ([cf1b48ff](https://github.com/nuxt/test-utils/commit/cf1b48ff)) -- **runtime-utils:** Support options api data, computed + methods ([#963](https://github.com/nuxt/test-utils/pull/963)) - -### 🏑 Chore - -- Update vitest type import ([af810cbd](https://github.com/nuxt/test-utils/commit/af810cbd)) - -### βœ… Tests - -- Bump playwright setup time for windows ([21ade1f2](https://github.com/nuxt/test-utils/commit/21ade1f2)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) -- INOUE Takuya ([@inouetakuya](http://github.com/inouetakuya)) -- Joel Wenzel ([@joel-wenzel](http://github.com/joel-wenzel)) -- Ryoya ([@harunari0928](http://github.com/harunari0928)) - -## v3.14.2 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.14.1...v3.14.2) - -### πŸ”₯ Performance - -- **e2e:** Use `tinyexec` to run commands ([#939](https://github.com/nuxt/test-utils/pull/939)) - -### 🩹 Fixes - -- **config:** Exclude new nuxt import-conditions plugin ([7cc8f653b](https://github.com/nuxt/test-utils/commit/7cc8f653b)) - -### πŸ“– Documentation - -- Add contribution instructions ([c765d175a](https://github.com/nuxt/test-utils/commit/c765d175a)) - -### 🏑 Chore - -- **vitest-environment-nuxt:** Specify license is MIT ([#919](https://github.com/nuxt/test-utils/pull/919)) -- Release `vitest-environment-nuxt` ([e30c044cf](https://github.com/nuxt/test-utils/commit/e30c044cf)) -- Update `@nuxtjs/i18n` separately ([3d8955d36](https://github.com/nuxt/test-utils/commit/3d8955d36)) -- Set `compatibilityDate` in fixtures ([7723f969c](https://github.com/nuxt/test-utils/commit/7723f969c)) -- Update vitest type import ([05e94fcc4](https://github.com/nuxt/test-utils/commit/05e94fcc4)) -- Trim tag from `tinyexec` stdout ([2b50cfee0](https://github.com/nuxt/test-utils/commit/2b50cfee0)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) -- Bobbie Goede -- Marley Adamson ([@transreport-marley](http://github.com/transreport-marley)) - -## v3.14.1 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.14.0...v3.14.1) - -### 🩹 Fixes - -- **e2e,config:** Provide fallback `compatibilityDate` ([8e01e3f7f](https://github.com/nuxt/test-utils/commit/8e01e3f7f)) -- **module:** Don't include type-check plugin in resolved `vitest` plugins ([#911](https://github.com/nuxt/test-utils/pull/911)) - -### πŸ“– Documentation - -- Provide intellisense hints for setup properties ([#906](https://github.com/nuxt/test-utils/pull/906)) - -### 🏑 Chore - -- Dedupe vitest ([6e36b5471](https://github.com/nuxt/test-utils/commit/6e36b5471)) -- Ignore upgrading dependencies for stubbed libs ([4329c4ddc](https://github.com/nuxt/test-utils/commit/4329c4ddc)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) -- Valentin Brajon ([@vbrajon](http://github.com/vbrajon)) -- Adam DeHaven ([@adamdehaven](http://github.com/adamdehaven)) - -## v3.14.0 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.13.1...v3.14.0) - -### πŸš€ Enhancements - -- **runtime-utils:** Expose setup result from `renderSuspended` ([#852](https://github.com/nuxt/test-utils/pull/852)) -- **e2e:** Allow overwriting env variables in `setup` ([#903](https://github.com/nuxt/test-utils/pull/903)) -- **e2e:** Allow running e2e tests against existing server ([#803](https://github.com/nuxt/test-utils/pull/803)) -- **e2e:** Allow updating env in context before `setup` runs ([#812](https://github.com/nuxt/test-utils/pull/812)) - -### 🩹 Fixes - -- **runtime-utils:** Ts-ignore `#build/` import until nuxt v3.12 release ([66b23ae6](https://github.com/nuxt/test-utils/commit/66b23ae6)) -- **runtime-utils:** Allow `setProps` to replace an array ([#877](https://github.com/nuxt/test-utils/pull/877)) - -### 🏑 Chore - -- Ignore ts-ignores for now ([ac2d9fbb](https://github.com/nuxt/test-utils/commit/ac2d9fbb)) -- Add @danielroe to code owners ([76f65b3b](https://github.com/nuxt/test-utils/commit/76f65b3b)) -- Remove ts-ignore now that we're upgraded ([16827f7f](https://github.com/nuxt/test-utils/commit/16827f7f)) - -### βœ… Tests - -- Bump timeout in windows browser spec ([73e2c716](https://github.com/nuxt/test-utils/commit/73e2c716)) - -### ❀️ Contributors - -- JessΓ© Correia Lins ([@linspw](http://github.com/linspw)) -- Tobias Diez -- Mark Brockhoff ([@markbrockhoff](http://github.com/markbrockhoff)) -- Daniel Roe ([@danielroe](http://github.com/danielroe)) -- MaruyamaTomoki ([@tomoki1207](http://github.com/tomoki1207)) -- Joao Vitor Alves - -## v3.13.1 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.13.0...v3.13.1) - -### 🩹 Fixes - -- Revert `execa` to v8 for now ([fef8b062](https://github.com/nuxt/test-utils/commit/fef8b062)) -- **config:** Force `buildId` to `test` manually ([25e081e4](https://github.com/nuxt/test-utils/commit/25e081e4)) -- **runtime-utils:** Use `appId` fallback after `tryUseNuxtApp` ([#849](https://github.com/nuxt/test-utils/pull/849)) - -### 🏑 Chore - -- Update type ([052094bc](https://github.com/nuxt/test-utils/commit/052094bc)) - -### πŸ€– CI - -- Run test suite on windows ([#851](https://github.com/nuxt/test-utils/pull/851)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) - -## v3.13.0 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.12.1...v3.13.0) - -### πŸš€ Enhancements - -- **e2e:** Improve types for `$fetch` ([b21d9a54](https://github.com/nuxt/test-utils/commit/b21d9a54)) -- **deps:** Upgrade `execa` to v9 ([#843](https://github.com/nuxt/test-utils/pull/843)) - -### πŸ”₯ Performance - -- **e2e:** Don't iterate when cleaning up if nothing registered ([#753](https://github.com/nuxt/test-utils/pull/753)) - -### 🩹 Fixes - -- **e2e:** Improve types for `fetch` and `mockLogger` ([eb40a6a6](https://github.com/nuxt/test-utils/commit/eb40a6a6)) -- **e2e:** Force string response within `startServer` ([1b182505](https://github.com/nuxt/test-utils/commit/1b182505)) -- **e2e:** Improve return types for `mockLogger` ([21aa7a2f](https://github.com/nuxt/test-utils/commit/21aa7a2f)) -- **runtime:** Improve types for `renderSuspended` and `mountSuspended` ([1636cede](https://github.com/nuxt/test-utils/commit/1636cede)) -- **e2e:** Revert changes for `$fetch` inference to unbreak build ([dd295d39](https://github.com/nuxt/test-utils/commit/dd295d39)) -- **vitest:** Strongly type vitest environment options ([37582c71](https://github.com/nuxt/test-utils/commit/37582c71)) -- **module:** Correctly filter vite plugins ([021824d0](https://github.com/nuxt/test-utils/commit/021824d0)) -- **runtime:** Preserve `setupState` return ([ab7fd457](https://github.com/nuxt/test-utils/commit/ab7fd457)) -- **playwright:** Bump dependency and remove polyfill ([#819](https://github.com/nuxt/test-utils/pull/819)) -- **runtime:** Use `effectScope` in `renderSuspended` ([#820](https://github.com/nuxt/test-utils/pull/820)) -- **e2e:** Type `$fetch` using globalThis instead ([b1269edb](https://github.com/nuxt/test-utils/commit/b1269edb)) -- Set `buildId` to `nuxt-app` for compatibility with nuxt v3.12+ ([a00b2c1f](https://github.com/nuxt/test-utils/commit/a00b2c1f)) -- **runtime-utils:** Use `tryUseNuxtApp` rather than `buildId` override ([726e0a2d](https://github.com/nuxt/test-utils/commit/726e0a2d)) - -### 🏑 Chore - -- Migrate to eslint v9 ([#814](https://github.com/nuxt/test-utils/pull/814)) -- Reduce internal typing of `any` ([3e3bc306](https://github.com/nuxt/test-utils/commit/3e3bc306)) -- Reenable `no-explicit-any` rule ([28385546](https://github.com/nuxt/test-utils/commit/28385546)) -- Normalise internal package names ([3f58b110](https://github.com/nuxt/test-utils/commit/3f58b110)) -- Update example command ([e271b63e](https://github.com/nuxt/test-utils/commit/e271b63e)) -- Add name for `app-vitest-full` ([882c144e](https://github.com/nuxt/test-utils/commit/882c144e)) -- Ignore `@nuxt/devtools` upgrades for now ([54f654d6](https://github.com/nuxt/test-utils/commit/54f654d6)) -- Lint ([08ee3515](https://github.com/nuxt/test-utils/commit/08ee3515)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) -- Michael Brevard - -## v3.12.1 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.12.0...v3.12.1) - -### 🩹 Fixes - -- Publish `playwright.d.ts` ([#797](https://github.com/nuxt/test-utils/pull/797)) - -### ❀️ Contributors - -- Ryota Watanabe ([@wattanx](http://github.com/wattanx)) - -## v3.12.0 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.11.0...v3.12.0) - -### πŸš€ Enhancements - -- **e2e:** Add `'route'`/`'hydration'` options for `page.goto()` ([#739](https://github.com/nuxt/test-utils/pull/739)) -- **e2e:** Add `playwright` runner ([#776](https://github.com/nuxt/test-utils/pull/776)) - -### 🩹 Fixes - -- **config:** Remove nuxt's custom vite logger ([eca52f5c](https://github.com/nuxt/test-utils/commit/eca52f5c)) - -### 🏑 Chore - -- Force correct typing for e2e subpath ([9fd93a8c](https://github.com/nuxt/test-utils/commit/9fd93a8c)) -- Don't run publish step separately ([0078d0bc](https://github.com/nuxt/test-utils/commit/0078d0bc)) - -### πŸ€– CI - -- Remove caching of Playwright browsers ([#785](https://github.com/nuxt/test-utils/pull/785)) -- Add release workflow ([76604ce0](https://github.com/nuxt/test-utils/commit/76604ce0)) -- Update `changelogen` command ([e3368daf](https://github.com/nuxt/test-utils/commit/e3368daf)) -- Add git user ([5aa95b02](https://github.com/nuxt/test-utils/commit/5aa95b02)) -- Add contents permission ([cf6cd3a8](https://github.com/nuxt/test-utils/commit/cf6cd3a8)) -- Rename some workflows ([7ea235e9](https://github.com/nuxt/test-utils/commit/7ea235e9)) -- Do less in workflow ([1f664fc5](https://github.com/nuxt/test-utils/commit/1f664fc5)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) -- Max Schmitt ([@mxschmitt](http://github.com/mxschmitt)) - -## v3.11.0 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.10.0...v3.11.0) - -### πŸš€ Enhancements - -- **vitest-environment:** Add support for in-source testing ([#651](https://github.com/nuxt/test-utils/pull/651)) - -### 🩹 Fixes - -- **runtime:** Reset modules after nuxt setup runs ([#726](https://github.com/nuxt/test-utils/pull/726)) - -### βœ… Tests - -- Add example of mocking `vue-router` ([e293cea1](https://github.com/nuxt/test-utils/commit/e293cea1)) -- Add example of mocking nuxt `useRoute` ([fe465193](https://github.com/nuxt/test-utils/commit/fe465193)) - -### ❀️ Contributors - -- Daniel Roe ([@danielroe](http://github.com/danielroe)) - -## v3.10.0 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.9.0...v3.10.0) - -### πŸš€ Enhancements - -- **e2e:** Add `cucumber` test runner ([#711](https://github.com/nuxt/test-utils/pull/711)) -- **e2e:** Support `env` option for `startServer` ([#640](https://github.com/nuxt/test-utils/pull/640)) - -### 🩹 Fixes - -- **runtime-utils:** Resolve `to` in `RouterLink` stub ([#687](https://github.com/nuxt/test-utils/pull/687)) -- Mark `afterAll` and `setup` hooks as async ([#702](https://github.com/nuxt/test-utils/pull/702)) -- **module:** Always append import when mocking ([#701](https://github.com/nuxt/test-utils/pull/701)) - -### 🏑 Chore - -- Add required dev deps to `app-vitest` example ([#712](https://github.com/nuxt/test-utils/pull/712)) -- Pin vue/nuxt versions ([00674cd0](https://github.com/nuxt/test-utils/commit/00674cd0)) - -### βœ… Tests - -- Update config key ([25060645](https://github.com/nuxt/test-utils/commit/25060645)) -- Add example test for nuxt-injected value ([#663](https://github.com/nuxt/test-utils/pull/663)) -- Update to actually use `$t` ([#675](https://github.com/nuxt/test-utils/pull/675)) - -### πŸ€– CI - -- Fetch-depth: 0 ([269df289](https://github.com/nuxt/test-utils/commit/269df289)) - -### ❀️ Contributors - -- Bobbie Goede -- Daniel Roe -- Julien Huang -- Steve Pewsey - -## v3.9.0 - -[compare changes](https://github.com/nuxt/test-utils/compare/v3.8.1...v3.9.0) - -### πŸš€ Enhancements - -- Add nuxt-vitest re-exports ([#230](https://github.com/nuxt/test-utils/pull/230)) -- Add nuxt-vitest and vitest-environment-nuxt code and tests ([f4ae58ac](https://github.com/nuxt/test-utils/commit/f4ae58ac)) -- Use internal implementation of nuxt-vitest ([#235](https://github.com/nuxt/test-utils/pull/235)) -- **e2e:** Auto-detect jest runner ([ae37b0ee](https://github.com/nuxt/test-utils/commit/ae37b0ee)) -- ⚠️ Read .env.test + allow overriding with nuxt.dotenv ([#655](https://github.com/nuxt/test-utils/pull/655)) - -### 🩹 Fixes - -- Add @nuxt/test-utils-nightly to deps to inline ([0caf44d0](https://github.com/nuxt/test-utils/commit/0caf44d0)) -- Use implied .d.mts types ([d9694f21](https://github.com/nuxt/test-utils/commit/d9694f21)) -- Add setupState type to mountSuspended return type ([#400](https://github.com/nuxt/test-utils/pull/400)) -- Add runtime fixture to workspace and address regressions ([#240](https://github.com/nuxt/test-utils/pull/240)) -- Opt-in to future vitest option ([#247](https://github.com/nuxt/test-utils/pull/247)) -- Use vite-ignore for playwright dynamic import ([c1ac4a08](https://github.com/nuxt/test-utils/commit/c1ac4a08)) -- Do not set process.browser globally ([#250](https://github.com/nuxt/test-utils/pull/250)) -- Support transpiling nuxt nightly releases ([c63f69c8](https://github.com/nuxt/test-utils/commit/c63f69c8)) -- Rewrite mock plugin for compat with vite 5/rollup 4 ([d0ba5af3](https://github.com/nuxt/test-utils/commit/d0ba5af3)) -- Do not skip transforms on test files ([3bbcc1ea](https://github.com/nuxt/test-utils/commit/3bbcc1ea)) -- Add @vitest/ui to peer deps ([7f4f6053](https://github.com/nuxt/test-utils/commit/7f4f6053)) -- Use buildDir option ([#596](https://github.com/nuxt/test-utils/pull/596)) -- ⚠️ Load nuxt app within setupFiles ([#260](https://github.com/nuxt/test-utils/pull/260)) -- Teardown build directories after tests ([#597](https://github.com/nuxt/test-utils/pull/597)) -- Import useRouter explicitly in entry ([129d8335](https://github.com/nuxt/test-utils/commit/129d8335)) -- Return absolute path for stub entry ([180bb306](https://github.com/nuxt/test-utils/commit/180bb306)) -- Don't return absolute path in dev mode ([f47dd9a3](https://github.com/nuxt/test-utils/commit/f47dd9a3)) -- Clone overrides ([df84d0c1](https://github.com/nuxt/test-utils/commit/df84d0c1)) -- Skip vite-plugin-vue-inspector:post plugin ([8a6a0523](https://github.com/nuxt/test-utils/commit/8a6a0523)) -- Clean up wrappers when calling renderSuspended ([5b189115](https://github.com/nuxt/test-utils/commit/5b189115)) -- Exclude vite-plugin-checker from runtime vitest config ([053a5dff](https://github.com/nuxt/test-utils/commit/053a5dff)) -- Resolve devtools url after vitest config is resolved ([1206db79](https://github.com/nuxt/test-utils/commit/1206db79)) -- Remove module override of app.rootId ([e662c1f0](https://github.com/nuxt/test-utils/commit/e662c1f0)) -- Remove rootId environment option ([dead5e3d](https://github.com/nuxt/test-utils/commit/dead5e3d)) -- Add back rootId environment option" ([827180ec](https://github.com/nuxt/test-utils/commit/827180ec)) -- **runtime-utils:** Don't stub helpers when shallow ([#632](https://github.com/nuxt/test-utils/pull/632)) -- Avoid enumerating keys on render context ([43b2724b](https://github.com/nuxt/test-utils/commit/43b2724b)) -- Support typescript entry file ([c5806009](https://github.com/nuxt/test-utils/commit/c5806009)) -- **vitest-environment:** Normalise setupFiles before merge ([#653](https://github.com/nuxt/test-utils/pull/653)) -- **module:** Close nuxt before shutting down ([17cf9435](https://github.com/nuxt/test-utils/commit/17cf9435)) -- **runtime:** Do not assign readonly setup state ([8d799275](https://github.com/nuxt/test-utils/commit/8d799275)) -- **runtime:** Implement setProps ([522f8bf5](https://github.com/nuxt/test-utils/commit/522f8bf5)) -- **vitest-environment:** Handle different entry format ([5c07bb48](https://github.com/nuxt/test-utils/commit/5c07bb48)) -- **runtime:** Import reactive and unref ([d68cdae9](https://github.com/nuxt/test-utils/commit/d68cdae9)) - -### πŸ’… Refactors - -- Move to monorepo ([#31](https://github.com/nuxt/test-utils/pull/31)) -- Split core utils to core/ ([f144cb40](https://github.com/nuxt/test-utils/commit/f144cb40)) -- Clean up internal code imports ([#245](https://github.com/nuxt/test-utils/pull/245)) -- Use defu rather than mergeConfig from vite ([#246](https://github.com/nuxt/test-utils/pull/246)) -- Further split vitest from vite config ([ef58e4cb](https://github.com/nuxt/test-utils/commit/ef58e4cb)) -- Split out mock transform plugin w/ tests ([a37fa408](https://github.com/nuxt/test-utils/commit/a37fa408)) -- Remove rollup implementation of transform plugin ([71345967](https://github.com/nuxt/test-utils/commit/71345967)) -- **module:** Rename config key to testUtils ([c2b09732](https://github.com/nuxt/test-utils/commit/c2b09732)) - -### πŸ“– Documentation - -- **playground:** Demo usage of co-exists unit and nuxt testing ([#6](https://github.com/nuxt/test-utils/pull/6)) -- Add JSDoc comments ([#205](https://github.com/nuxt/test-utils/pull/205)) -- Add documentation for mountSuspended ([#227](https://github.com/nuxt/test-utils/pull/227)) -- Add basic README and missing LICENCE ([51eb9de2](https://github.com/nuxt/test-utils/commit/51eb9de2)) -- Remove links to nuxt-vitest ([254605df](https://github.com/nuxt/test-utils/commit/254605df)) -- Update links to nuxt docs on testing ([2e619a89](https://github.com/nuxt/test-utils/commit/2e619a89)) - -### πŸ“¦ Build - -- Fix build issues and correct dependencies ([3e2f8b29](https://github.com/nuxt/test-utils/commit/3e2f8b29)) -- Move runtime-utils.mjs -> runtime-utils/index.mjs ([#634](https://github.com/nuxt/test-utils/pull/634)) -- ⚠️ Use /runtime subpath export ([de9a2a81](https://github.com/nuxt/test-utils/commit/de9a2a81)) -- Prefer /e2e subpath export ([88952fb0](https://github.com/nuxt/test-utils/commit/88952fb0)) - -### βœ… Tests - -- Update playground to 0.4.5 devtools ([7d4a6b28](https://github.com/nuxt/test-utils/commit/7d4a6b28)) -- Add useHead to fixture ([6d4bb420](https://github.com/nuxt/test-utils/commit/6d4bb420)) -- Add type tests ([9de62b6e](https://github.com/nuxt/test-utils/commit/9de62b6e)) -- Await 2 ticks after navigation for route to update ([cb6c1e3a](https://github.com/nuxt/test-utils/commit/cb6c1e3a)) -- Correct test assertion ([c644bdb3](https://github.com/nuxt/test-utils/commit/c644bdb3)) -- Avoid depending on specific number of ticks ([e98d71ea](https://github.com/nuxt/test-utils/commit/e98d71ea)) -- Update test to use server rather than live api ([7df6be28](https://github.com/nuxt/test-utils/commit/7df6be28)) -- Add a few more basic examples for e2e tests ([490753c4](https://github.com/nuxt/test-utils/commit/490753c4)) -- Add jest example/test ([#224](https://github.com/nuxt/test-utils/pull/224)) -- Add type test ([#241](https://github.com/nuxt/test-utils/pull/241)) -- Make indexeddb plugin client-only ([0477e414](https://github.com/nuxt/test-utils/commit/0477e414)) -- Add tests for events emitted from defineModel ([#629](https://github.com/nuxt/test-utils/pull/629)) -- Add failing test for exposed methods on components within suspense ([a4ec3f83](https://github.com/nuxt/test-utils/commit/a4ec3f83)) -- Remove workaround for route update ([c9699ad1](https://github.com/nuxt/test-utils/commit/c9699ad1)) -- Add example of importing a dynamic route ([fe420b9c](https://github.com/nuxt/test-utils/commit/fe420b9c)) -- Re-organise test suite ([9c877821](https://github.com/nuxt/test-utils/commit/9c877821)) -- Add failing test for setProps ([dc93e003](https://github.com/nuxt/test-utils/commit/dc93e003)) -- Reenable expose test ([204037e4](https://github.com/nuxt/test-utils/commit/204037e4)) -- Add example fixture with @nuxt/content ([#631](https://github.com/nuxt/test-utils/pull/631)) -- Add example fixture with @nuxtjs/i18n ([#633](https://github.com/nuxt/test-utils/pull/633)) -- Add generate assertion and enable browser ([94513939](https://github.com/nuxt/test-utils/commit/94513939)) - -### 🎨 Styles - -- Lint ([35ee16ef](https://github.com/nuxt/test-utils/commit/35ee16ef)) -- Lint and update test ([cd4dbf9d](https://github.com/nuxt/test-utils/commit/cd4dbf9d)) -- Lint ([91723acc](https://github.com/nuxt/test-utils/commit/91723acc)) -- Lint ([caf4d827](https://github.com/nuxt/test-utils/commit/caf4d827)) -- Lint ([8b428b46](https://github.com/nuxt/test-utils/commit/8b428b46)) -- Sort imports ([6c84c9e4](https://github.com/nuxt/test-utils/commit/6c84c9e4)) - -### πŸ€– CI - -- Add testing workflow ([ce74b0b5](https://github.com/nuxt/test-utils/commit/ce74b0b5)) -- Add lint workflow for pushes to main ([f141b8d4](https://github.com/nuxt/test-utils/commit/f141b8d4)) -- Add workflow to test examples ([0c3c318f](https://github.com/nuxt/test-utils/commit/0c3c318f)) -- Prepare environment before running module test ([5be069dc](https://github.com/nuxt/test-utils/commit/5be069dc)) -- 'nightly' releases on pushes to main ([#210](https://github.com/nuxt/test-utils/pull/210)) -- Fetch full history ([d61614b1](https://github.com/nuxt/test-utils/commit/d61614b1)) -- Install playwright manually ([58906de3](https://github.com/nuxt/test-utils/commit/58906de3)) -- Remove extra branch from release workflow ([e24d884f](https://github.com/nuxt/test-utils/commit/e24d884f)) -- Prepare build environment ([6d8e71ad](https://github.com/nuxt/test-utils/commit/6d8e71ad)) -- Run unit tests in ci ([cbd5616a](https://github.com/nuxt/test-utils/commit/cbd5616a)) -- Support automated release prs ([#623](https://github.com/nuxt/test-utils/pull/623)) -- Fetch all commits in creating changelog ([6f22b096](https://github.com/nuxt/test-utils/commit/6f22b096)) -- Disable changelog creation script for now ([5ef70c35](https://github.com/nuxt/test-utils/commit/5ef70c35)) -- Reenable changelogensets ([fb754d54](https://github.com/nuxt/test-utils/commit/fb754d54)) - -#### ⚠️ Breaking Changes - -- ⚠️ Read .env.test + allow overriding with nuxt.dotenv ([#655](https://github.com/nuxt/test-utils/pull/655)) -- ⚠️ Ignore query params when checking if an endpoint is mocked ([c1f8890b](https://github.com/nuxt/test-utils/commit/c1f8890b)) -- ⚠️ Load nuxt app within setupFiles ([#260](https://github.com/nuxt/test-utils/pull/260)) -- ⚠️ Use /runtime subpath export ([de9a2a81](https://github.com/nuxt/test-utils/commit/de9a2a81)) -- ⚠️ Drop support for vitest < 0.34 ([#654](https://github.com/nuxt/test-utils/pull/654)) - -### ❀️ Contributors - -- Daniel Roe -- Harlan Wilton ([@harlan-zw](http://github.com/harlan-zw)) -- Tim Van Den Eijnden -- Juho Rutila ([@nice-game-hints](http://github.com/nice-game-hints)) -- Ola Alsaker ([@OlaAlsaker](http://github.com/OlaAlsaker)) -- Erikwu -- Yasser Lahbibi ([@yassilah](http://github.com/yassilah)) -- Pooya Parsa -- Julien Huang ([@huang-julien](http://github.com/huang-julien)) -- Niko-chaffinchicas -- Oskar Olsson -- Aapo Kiiso ([@aapokiiso](http://github.com/aapokiiso)) -- Anthony Fu -- Ryoji-yamauchi-blc -- Enkot ([@enkot](http://github.com/enkot)) -- ι‚“θΆ… ([@DevDengChao](http://github.com/DevDengChao)) -- Vasily Kuzin ([@ExEr7um](http://github.com/ExEr7um)) -- Maarten Van Hunsel -- Odynn Aguilar -- Floriankapaun -- Mark Van Alphen ([@mvanalphen](http://github.com/mvanalphen)) -- Ghazi Alhouwari -- Paul Melero - - diff --git a/package.json b/package.json index 613d17232..fe8290df5 100644 --- a/package.json +++ b/package.json @@ -60,8 +60,7 @@ "test:types": "vue-tsc --noEmit", "test:unit": "vitest test/unit --run", "prepack": "unbuild", - "dev:prepare": "nuxi prepare && unbuild --stub && pnpm -r dev:prepare", - "release": "pnpm prepack && pnpm test:examples && changelogen --release --push" + "dev:prepare": "nuxi prepare && unbuild --stub && pnpm -r dev:prepare" }, "dependencies": { "@nuxt/kit": "^3.15.4", @@ -100,6 +99,7 @@ "@testing-library/vue": "8.1.0", "@types/estree": "1.0.6", "@types/jsdom": "21.1.7", + "@types/node": "^22.13.4", "@types/semver": "7.5.8", "@vue/test-utils": "2.4.6", "changelogen": "0.5.7", @@ -110,6 +110,7 @@ "knip": "5.44.4", "nitropack": "2.10.4", "nuxt": "3.15.4", + "pkg-pr-new": "^0.0.39", "playwright-core": "1.50.1", "rollup": "4.34.8", "semver": "7.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf53f923c..68c4ca185 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,7 +52,7 @@ importers: version: 1.15.0 happy-dom: specifier: ^9.10.9 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - version: 17.0.0 + version: 17.1.1 jsdom: specifier: ^22.0.0 || ^23.0.0 || ^24.0.0 || ^25.0.0 || ^26.0.0 version: 26.0.0 @@ -97,7 +97,7 @@ importers: version: 2.2.0 vite: specifier: ^6.1.1 - version: 6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + version: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) vitest-environment-nuxt: specifier: ^1.0.1 version: 1.0.1 @@ -113,7 +113,7 @@ importers: version: 29.7.0 '@nuxt/devtools-kit': specifier: 2.1.0 - version: 2.1.0(magicast@0.3.5)(rollup@4.34.8)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) + version: 2.1.0(magicast@0.3.5)(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) '@nuxt/eslint-config': specifier: 1.1.0 version: 1.1.0(@vue/compiler-sfc@3.5.13)(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) @@ -129,6 +129,9 @@ importers: '@types/jsdom': specifier: 21.1.7 version: 21.1.7 + '@types/node': + specifier: ^22.13.4 + version: 22.13.4 '@types/semver': specifier: 7.5.8 version: 7.5.8 @@ -152,13 +155,16 @@ importers: version: 2.4.2 knip: specifier: 5.44.4 - version: 5.44.4(@types/node@20.10.5)(typescript@5.7.3) + version: 5.44.4(@types/node@22.13.4)(typescript@5.7.3) nitropack: specifier: 2.10.4 version: 2.10.4(encoding@0.1.13)(idb-keyval@6.2.1)(typescript@5.7.3) nuxt: specifier: 3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + pkg-pr-new: + specifier: ^0.0.39 + version: 0.0.39 playwright-core: specifier: 1.50.1 version: 1.50.1 @@ -179,7 +185,7 @@ importers: version: 4.1.2 vitest: specifier: 3.0.6 - version: 3.0.6(@types/debug@4.1.12)(@types/node@20.10.5)(happy-dom@17.0.0)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) + version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) vue-router: specifier: 4.5.0 version: 4.5.0(vue@3.5.13(typescript@5.7.3)) @@ -191,7 +197,7 @@ importers: dependencies: nuxt: specifier: ^3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) devDependencies: '@cucumber/cucumber': specifier: 11.2.0 @@ -201,7 +207,7 @@ importers: version: link:../.. ts-node: specifier: 10.9.2 - version: 10.9.2(@types/node@20.10.5)(typescript@5.7.3) + version: 10.9.2(@types/node@22.13.4)(typescript@5.7.3) examples/app-jest: dependencies: @@ -235,7 +241,7 @@ importers: dependencies: nuxt: specifier: ^3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) devDependencies: '@nuxt/test-utils': specifier: workspace:* @@ -251,7 +257,7 @@ importers: dependencies: nuxt: specifier: ^3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) devDependencies: '@nuxt/test-utils': specifier: workspace:* @@ -270,7 +276,7 @@ importers: version: 5.7.3 vitest: specifier: 3.0.6 - version: 3.0.6(@types/debug@4.1.12)(@types/node@20.10.5)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) + version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) examples/app-vitest-full: dependencies: @@ -295,13 +301,13 @@ importers: version: 1.9.0 nuxt: specifier: 3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) typescript: specifier: 5.7.3 version: 5.7.3 vitest: specifier: 3.0.6 - version: 3.0.6(@types/debug@4.1.12)(@types/node@20.10.5)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) + version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) vue-tsc: specifier: 2.2.2 version: 2.2.2(typescript@5.7.3) @@ -310,16 +316,16 @@ importers: devDependencies: '@nuxt/content': specifier: 2.13.4 - version: 2.13.4(db0@0.2.1)(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vue@3.5.13(typescript@5.7.3)) + version: 2.13.4(db0@0.2.1)(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vue@3.5.13(typescript@5.7.3)) '@nuxt/test-utils': specifier: workspace:* version: link:../.. nuxt: specifier: 3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) vitest: specifier: 3.0.6 - version: 3.0.6(@types/debug@4.1.12)(@types/node@20.10.5)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) + version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) examples/i18n: devDependencies: @@ -331,10 +337,10 @@ importers: version: 9.2.1(@vue/compiler-dom@3.5.13)(eslint@9.20.1(jiti@2.4.2))(magicast@0.3.5)(rollup@4.34.8)(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) nuxt: specifier: 3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) vitest: specifier: 3.0.6 - version: 3.0.6(@types/debug@4.1.12)(@types/node@20.10.5)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) + version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) examples/module: dependencies: @@ -350,10 +356,10 @@ importers: version: link:../.. nuxt: specifier: 3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) vitest: specifier: 3.0.6 - version: 3.0.6(@types/debug@4.1.12)(@types/node@20.10.5)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) + version: 3.0.6(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0) examples/module/playground: dependencies: @@ -366,7 +372,7 @@ importers: devDependencies: nuxt: specifier: 3.15.4 - version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + version: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) stubs/vitest-environment-nuxt: dependencies: @@ -1418,6 +1424,10 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@jsdevtools/ez-spawn@3.0.4': + resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} + engines: {node: '>=10'} + '@kwsites/file-exists@1.1.1': resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} @@ -1594,6 +1604,62 @@ packages: '@nuxtjs/mdc@0.9.2': resolution: {integrity: sha512-dozIPTPjEYu8jChHNCICZP3mN0sFC6l3aLxTkgv/DAr1EI8jqqqoSZKevzuiHUWGNTguS70+fLcztCwrzWdoYA==} + '@octokit/action@6.1.0': + resolution: {integrity: sha512-lo+nHx8kAV86bxvOVOI3vFjX3gXPd/L7guAUbvs3pUvnR2KC+R7yjBkA1uACt4gYhs4LcWP3AXSGQzsbeN2XXw==} + engines: {node: '>= 18'} + + '@octokit/auth-action@4.1.0': + resolution: {integrity: sha512-m+3t7K46IYyMk7Bl6/lF4Rv09GqDZjYmNg8IWycJ2Fa3YE3DE7vQcV6G2hUPmR9NDqenefNJwVtlisMjzymPiQ==} + engines: {node: '>= 18'} + + '@octokit/auth-token@4.0.0': + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + + '@octokit/core@5.2.0': + resolution: {integrity: sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==} + engines: {node: '>= 18'} + + '@octokit/endpoint@9.0.6': + resolution: {integrity: sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==} + engines: {node: '>= 18'} + + '@octokit/graphql@7.1.0': + resolution: {integrity: sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==} + engines: {node: '>= 18'} + + '@octokit/openapi-types@20.0.0': + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + + '@octokit/openapi-types@23.0.1': + resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==} + + '@octokit/plugin-paginate-rest@9.2.2': + resolution: {integrity: sha512-u3KYkGF7GcZnSD/3UP0S7K5XUFT2FkOQdcfXZGZQPGv3lm4F2Xbf71lvjldr8c1H3nNbF+33cLEkWYbokGWqiQ==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/plugin-rest-endpoint-methods@10.4.1': + resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + + '@octokit/request-error@5.1.1': + resolution: {integrity: sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==} + engines: {node: '>= 18'} + + '@octokit/request@8.4.1': + resolution: {integrity: sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==} + engines: {node: '>= 18'} + + '@octokit/types@12.6.0': + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + + '@octokit/types@13.8.0': + resolution: {integrity: sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==} + '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} @@ -2106,6 +2172,9 @@ packages: '@types/node@20.10.5': resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + '@types/node@22.13.4': + resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} + '@types/normalize-package-data@2.4.3': resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} @@ -2596,6 +2665,9 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@ -2693,6 +2765,9 @@ packages: call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -3082,6 +3157,10 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decode-uri-component@0.4.1: + resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==} + engines: {node: '>=14.16'} + dedent@1.5.1: resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} peerDependencies: @@ -3149,6 +3228,9 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -3593,6 +3675,10 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + filter-obj@5.1.0: + resolution: {integrity: sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==} + engines: {node: '>=14.16'} + find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} @@ -3809,10 +3895,6 @@ packages: h3@1.15.0: resolution: {integrity: sha512-OsjX4JW8J4XGgCgEcad20pepFQWnuKH+OwkCJjogF3C+9AZ1iYdtB4hX6vAb5DskBiu5ljEXqApINjR8CqoCMQ==} - happy-dom@17.0.0: - resolution: {integrity: sha512-jGuUr3UrgMzt1Mopyof3RzD49/GudAp1suP5KFU+EvNXmqUAMXpxux2zEJbabE1YXs0APrY61iRZ0BKMMWCGTg==} - engines: {node: '>=18.0.0'} - happy-dom@17.1.1: resolution: {integrity: sha512-OSTkBlmD/6Do7gCd7nZB5iFq1bF9VQg/iFmjHmxvVX2S1UiOpo6sT+aFNnu3XUsB8hCZb9+GZ0G1g1TaMiAggw==} engines: {node: '>=18.0.0'} @@ -4251,6 +4333,10 @@ packages: isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isbinaryfile@5.0.4: + resolution: {integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==} + engines: {node: '>= 18.0.0'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -5391,6 +5477,10 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} + pkg-pr-new@0.0.39: + resolution: {integrity: sha512-ItcsHK+4uO0qmjK4RNs6vTWv3xFhbPZd5U6RoYbxRURWNZfH7KvpyqRzaw4GR7de/IjkdHVZHCzQkjnp3VOVdg==} + hasBin: true + pkg-types@1.3.0: resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==} @@ -5682,12 +5772,24 @@ packages: pure-rand@6.0.2: resolution: {integrity: sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==} + query-registry@3.0.1: + resolution: {integrity: sha512-M9RxRITi2mHMVPU5zysNjctUT8bAPx6ltEXo/ir9+qmiM47Y7f0Ir3+OxUO5OjYAWdicBQRew7RtHtqUXydqlg==} + engines: {node: '>=20'} + + query-string@9.1.1: + resolution: {integrity: sha512-MWkCOVIcJP9QSKU52Ngow6bsAWAPlPK2MludXvcrS2bGZSl+T1qX9MZvRIkqUIkGLJquMJHWfsT6eRqUpp4aWg==} + engines: {node: '>=18'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} queue-tick@1.0.1: resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + quick-lru@7.0.0: + resolution: {integrity: sha512-MX8gB7cVYTrYcFfAnfLlhRd0+Toyl8yX8uBx1MrX7K0jegiz9TumwOK27ldXrgDlHRdVi+MqU9Ssw6dr4BNreg==} + engines: {node: '>=18'} + radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} @@ -6116,6 +6218,10 @@ packages: spdx-license-ids@3.0.16: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + split-on-first@3.0.0: + resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==} + engines: {node: '>=12'} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -6510,6 +6616,13 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + undici@6.21.1: + resolution: {integrity: sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==} + engines: {node: '>=18.17'} + unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} @@ -6568,6 +6681,9 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -6696,6 +6812,10 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@5.0.0: + resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} @@ -7133,6 +7253,10 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} + zod-package-json@1.1.0: + resolution: {integrity: sha512-RvEsa3W/NCqEBMtnoE09GRVelA3IqRcKaijEiM6CEGsD19qLurf0HjrYMHwOqImOszlLL0ja63DPJeeU4pm7oQ==} + engines: {node: '>=20'} + zod-validation-error@3.4.0: resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} engines: {node: '>=18.0.0'} @@ -7142,6 +7266,9 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.24.2: + resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -8044,7 +8171,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.10.5 + '@types/node': 22.13.4 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -8062,7 +8189,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.10.5 + '@types/node': 22.13.4 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -8154,7 +8281,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.5 '@types/istanbul-reports': 3.0.3 - '@types/node': 20.10.5 + '@types/node': 22.13.4 '@types/yargs': 17.0.29 chalk: 4.1.2 @@ -8185,6 +8312,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.5.0 + '@jsdevtools/ez-spawn@3.0.4': + dependencies: + call-me-maybe: 1.0.2 + cross-spawn: 7.0.6 + string-argv: 0.3.1 + type-detect: 4.0.8 + '@kwsites/file-exists@1.1.1': dependencies: debug: 4.4.0 @@ -8350,13 +8484,13 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/content@2.13.4(db0@0.2.1)(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vue@3.5.13(typescript@5.7.3))': + '@nuxt/content@2.13.4(db0@0.2.1)(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vue@3.5.13(typescript@5.7.3))': dependencies: '@nuxt/kit': 3.15.4(magicast@0.3.5)(rollup@4.34.8) '@nuxtjs/mdc': 0.9.2(magicast@0.3.5)(rollup@4.34.8) '@vueuse/core': 11.1.0(vue@3.5.13(typescript@5.7.3)) '@vueuse/head': 2.0.0(vue@3.5.13(typescript@5.7.3)) - '@vueuse/nuxt': 11.1.0(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vue@3.5.13(typescript@5.7.3)) + '@vueuse/nuxt': 11.1.0(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vue@3.5.13(typescript@5.7.3)) consola: 3.3.3 defu: 6.1.4 destr: 2.0.3 @@ -8421,12 +8555,24 @@ snapshots: - rollup - supports-color - '@nuxt/devtools-kit@2.1.0(magicast@0.3.5)(rollup@4.34.8)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))': + '@nuxt/devtools-kit@1.0.8(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5)(rollup@4.34.8) + '@nuxt/schema': 3.15.4 + execa: 7.2.0 + nuxt: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + transitivePeerDependencies: + - magicast + - rollup + - supports-color + + '@nuxt/devtools-kit@2.1.0(magicast@0.3.5)(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))': dependencies: '@nuxt/kit': 3.15.4(magicast@0.3.5)(rollup@4.34.8) '@nuxt/schema': 3.15.4 execa: 9.5.2 - vite: 6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) transitivePeerDependencies: - magicast - rollup @@ -8490,6 +8636,51 @@ snapshots: - supports-color - utf-8-validate + '@nuxt/devtools@1.0.8(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))': + dependencies: + '@antfu/utils': 0.7.10 + '@nuxt/devtools-kit': 1.0.8(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) + '@nuxt/devtools-wizard': 1.0.8 + '@nuxt/kit': 3.15.4(magicast@0.3.5)(rollup@4.34.8) + birpc: 0.2.17 + consola: 3.4.0 + destr: 2.0.3 + error-stack-parser-es: 0.1.4 + execa: 7.2.0 + fast-glob: 3.3.3 + flatted: 3.3.1 + get-port-please: 3.1.2 + hookable: 5.5.3 + image-meta: 0.2.0 + is-installed-globally: 1.0.0 + launch-editor: 2.8.0 + local-pkg: 0.5.1 + magicast: 0.3.5 + nuxt: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + nypm: 0.3.12 + ohash: 1.1.4 + pacote: 17.0.7 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.7.1 + simple-git: 3.25.0 + sirv: 2.0.4 + unimport: 3.14.6(rollup@4.34.8) + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vite-plugin-inspect: 0.8.4(@nuxt/kit@3.15.4(magicast@0.3.5)(rollup@4.34.8))(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) + vite-plugin-vue-inspector: 4.0.2(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) + which: 3.0.1 + ws: 8.18.0 + transitivePeerDependencies: + - bluebird + - bufferutil + - rollup + - supports-color + - utf-8-validate + '@nuxt/eslint-config@1.1.0(@vue/compiler-sfc@3.5.13)(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@antfu/install-pkg': 1.0.0 @@ -8659,6 +8850,65 @@ snapshots: - vue-tsc - yaml + '@nuxt/vite-builder@3.15.4(@types/node@22.13.4)(eslint@9.20.1(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vue-tsc@2.2.2(typescript@5.7.3))(vue@3.5.13(typescript@5.7.3))(yaml@2.7.0)': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5)(rollup@4.34.8) + '@rollup/plugin-replace': 6.0.2(rollup@4.34.8) + '@vitejs/plugin-vue': 5.2.1(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + '@vitejs/plugin-vue-jsx': 4.1.1(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + autoprefixer: 10.4.20(postcss@8.5.1) + consola: 3.4.0 + cssnano: 7.0.6(postcss@8.5.1) + defu: 6.1.4 + esbuild: 0.24.2 + escape-string-regexp: 5.0.0 + externality: 1.0.2 + get-port-please: 3.1.2 + h3: 1.15.0 + jiti: 2.4.2 + knitwork: 1.2.0 + magic-string: 0.30.17 + mlly: 1.7.4 + ohash: 1.1.4 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + postcss: 8.5.1 + rollup-plugin-visualizer: 5.14.0(rollup@4.34.8) + std-env: 3.8.0 + ufo: 1.5.4 + unenv: 1.10.0 + unplugin: 2.2.0 + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vite-node: 3.0.6(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vite-plugin-checker: 0.8.0(eslint@9.20.1(jiti@2.4.2))(optionator@0.9.3)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3)) + vue: 3.5.13(typescript@5.7.3) + vue-bundle-renderer: 2.1.1 + transitivePeerDependencies: + - '@biomejs/biome' + - '@types/node' + - eslint + - less + - lightningcss + - magicast + - meow + - optionator + - rolldown + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - vls + - vti + - vue-tsc + - yaml + '@nuxtjs/i18n@9.2.1(@vue/compiler-dom@3.5.13)(eslint@9.20.1(jiti@2.4.2))(magicast@0.3.5)(rollup@4.34.8)(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))': dependencies: '@intlify/h3': 0.6.1 @@ -8736,6 +8986,78 @@ snapshots: - rollup - supports-color + '@octokit/action@6.1.0': + dependencies: + '@octokit/auth-action': 4.1.0 + '@octokit/core': 5.2.0 + '@octokit/plugin-paginate-rest': 9.2.2(@octokit/core@5.2.0) + '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.0) + '@octokit/types': 12.6.0 + undici: 6.21.1 + + '@octokit/auth-action@4.1.0': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/types': 13.8.0 + + '@octokit/auth-token@4.0.0': {} + + '@octokit/core@5.2.0': + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.1.0 + '@octokit/request': 8.4.1 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.8.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + + '@octokit/endpoint@9.0.6': + dependencies: + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 + + '@octokit/graphql@7.1.0': + dependencies: + '@octokit/request': 8.4.1 + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 + + '@octokit/openapi-types@20.0.0': {} + + '@octokit/openapi-types@23.0.1': {} + + '@octokit/plugin-paginate-rest@9.2.2(@octokit/core@5.2.0)': + dependencies: + '@octokit/core': 5.2.0 + '@octokit/types': 12.6.0 + + '@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.2.0)': + dependencies: + '@octokit/core': 5.2.0 + '@octokit/types': 12.6.0 + + '@octokit/request-error@5.1.1': + dependencies: + '@octokit/types': 13.8.0 + deprecation: 2.3.1 + once: 1.4.0 + + '@octokit/request@8.4.1': + dependencies: + '@octokit/endpoint': 9.0.6 + '@octokit/request-error': 5.1.1 + '@octokit/types': 13.8.0 + universal-user-agent: 6.0.1 + + '@octokit/types@12.6.0': + dependencies: + '@octokit/openapi-types': 20.0.0 + + '@octokit/types@13.8.0': + dependencies: + '@octokit/openapi-types': 23.0.1 + '@one-ini/wasm@0.1.1': {} '@parcel/watcher-android-arm64@2.4.1': @@ -9190,7 +9512,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 20.10.5 + '@types/node': 22.13.4 '@types/istanbul-lib-coverage@2.0.5': {} @@ -9209,7 +9531,7 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 20.10.5 + '@types/node': 22.13.4 '@types/tough-cookie': 4.0.3 parse5: 7.2.1 @@ -9225,6 +9547,10 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@22.13.4': + dependencies: + undici-types: 6.20.0 + '@types/normalize-package-data@2.4.3': {} '@types/parse-path@7.0.3': {} @@ -9430,11 +9756,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitejs/plugin-vue-jsx@4.1.1(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vue: 3.5.13(typescript@5.7.3) + transitivePeerDependencies: + - supports-color + '@vitejs/plugin-vue@5.2.1(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': dependencies: vite: 6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) vue: 3.5.13(typescript@5.7.3) + '@vitejs/plugin-vue@5.2.1(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + dependencies: + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vue: 3.5.13(typescript@5.7.3) + '@vitest/expect@3.0.6': dependencies: '@vitest/spy': 3.0.6 @@ -9442,13 +9783,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.6(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))': + '@vitest/mocker@3.0.6(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.6 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) '@vitest/pretty-format@3.0.6': dependencies: @@ -9637,13 +9978,13 @@ snapshots: '@vueuse/metadata@11.1.0': {} - '@vueuse/nuxt@11.1.0(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vue@3.5.13(typescript@5.7.3))': + '@vueuse/nuxt@11.1.0(magicast@0.3.5)(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vue@3.5.13(typescript@5.7.3))': dependencies: '@nuxt/kit': 3.15.4(magicast@0.3.5)(rollup@4.34.8) '@vueuse/core': 11.1.0(vue@3.5.13(typescript@5.7.3)) '@vueuse/metadata': 11.1.0 local-pkg: 0.5.1 - nuxt: 3.15.4(@parcel/watcher@2.4.1)(@types/node@20.10.5)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) + nuxt: 3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0) vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) transitivePeerDependencies: - '@vue/composition-api' @@ -9888,6 +10229,8 @@ snapshots: base64-js@1.5.1: {} + before-after-hook@2.2.3: {} + binary-extensions@2.2.0: {} bindings@1.5.0: @@ -10024,6 +10367,8 @@ snapshots: get-intrinsic: 1.2.2 set-function-length: 1.1.1 + call-me-maybe@1.0.2: {} + callsites@3.1.0: {} camelcase@5.3.1: {} @@ -10451,6 +10796,8 @@ snapshots: dependencies: character-entities: 2.0.2 + decode-uri-component@0.4.1: {} + dedent@1.5.1: {} deep-eql@5.0.2: {} @@ -10518,6 +10865,8 @@ snapshots: depd@2.0.0: {} + deprecation@2.3.1: {} + dequal@2.0.3: {} destr@2.0.3: {} @@ -11109,6 +11458,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + filter-obj@5.1.0: {} + find-up-simple@1.0.0: {} find-up@4.1.0: @@ -11380,11 +11731,6 @@ snapshots: ufo: 1.5.4 uncrypto: 0.1.3 - happy-dom@17.0.0: - dependencies: - webidl-conversions: 7.0.0 - whatwg-mimetype: 3.0.0 - happy-dom@17.1.1: dependencies: webidl-conversions: 7.0.0 @@ -11844,6 +12190,8 @@ snapshots: isarray@2.0.5: {} + isbinaryfile@5.0.4: {} + isexe@2.0.0: {} isexe@3.1.1: {} @@ -12057,7 +12405,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.10.5 + '@types/node': 22.13.4 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -12310,11 +12658,11 @@ snapshots: klona@2.0.6: {} - knip@5.44.4(@types/node@20.10.5)(typescript@5.7.3): + knip@5.44.4(@types/node@22.13.4)(typescript@5.7.3): dependencies: '@nodelib/fs.walk': 3.0.1 '@snyk/github-codeowners': 1.1.0 - '@types/node': 20.10.5 + '@types/node': 22.13.4 easy-table: 1.2.0 enhanced-resolve: 5.18.0 fast-glob: 3.3.3 @@ -13349,6 +13697,128 @@ snapshots: - xml2js - yaml + nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0): + dependencies: + '@nuxt/cli': 3.21.1(magicast@0.3.5) + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 1.0.8(nuxt@3.15.4(@parcel/watcher@2.4.1)(@types/node@22.13.4)(db0@0.2.1)(encoding@0.1.13)(eslint@9.20.1(jiti@2.4.2))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3))(yaml@2.7.0))(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) + '@nuxt/kit': 3.15.4(magicast@0.3.5)(rollup@4.34.8) + '@nuxt/schema': 3.15.4 + '@nuxt/telemetry': 2.6.4(magicast@0.3.5)(rollup@4.34.8) + '@nuxt/vite-builder': 3.15.4(@types/node@22.13.4)(eslint@9.20.1(jiti@2.4.2))(magicast@0.3.5)(optionator@0.9.3)(rollup@4.34.8)(terser@5.24.0)(typescript@5.7.3)(vue-tsc@2.2.2(typescript@5.7.3))(vue@3.5.13(typescript@5.7.3))(yaml@2.7.0) + '@unhead/dom': 1.11.18 + '@unhead/shared': 1.11.18 + '@unhead/ssr': 1.11.18 + '@unhead/vue': 1.11.18(vue@3.5.13(typescript@5.7.3)) + '@vue/shared': 3.5.13 + acorn: 8.14.0 + c12: 2.0.1(magicast@0.3.5) + chokidar: 4.0.3 + compatx: 0.1.8 + consola: 3.4.0 + cookie-es: 1.2.2 + defu: 6.1.4 + destr: 2.0.3 + devalue: 5.1.1 + errx: 0.1.0 + esbuild: 0.24.2 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + globby: 14.0.2 + h3: 1.14.0 + hookable: 5.5.3 + ignore: 7.0.3 + impound: 0.2.0(rollup@4.34.8) + jiti: 2.4.2 + klona: 2.0.6 + knitwork: 1.2.0 + magic-string: 0.30.17 + mlly: 1.7.4 + nanotar: 0.2.0 + nitropack: 2.10.4(encoding@0.1.13)(idb-keyval@6.2.1)(typescript@5.7.3) + nypm: 0.5.2 + ofetch: 1.4.1 + ohash: 1.1.4 + pathe: 2.0.2 + perfect-debounce: 1.0.0 + pkg-types: 1.3.1 + radix3: 1.1.2 + scule: 1.3.0 + semver: 7.6.3 + std-env: 3.8.0 + strip-literal: 3.0.0 + tinyglobby: 0.2.10 + ufo: 1.5.4 + ultrahtml: 1.5.3 + uncrypto: 0.1.3 + unctx: 2.4.1 + unenv: 1.10.0 + unhead: 1.11.18 + unimport: 4.0.0(rollup@4.34.8) + unplugin: 2.1.2 + unplugin-vue-router: 0.11.2(rollup@4.34.8)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)) + unstorage: 1.14.4(db0@0.2.1)(idb-keyval@6.2.1)(ioredis@5.4.1) + untyped: 1.5.2 + vue: 3.5.13(typescript@5.7.3) + vue-bundle-renderer: 2.1.1 + vue-devtools-stub: 0.1.0 + vue-router: 4.5.0(vue@3.5.13(typescript@5.7.3)) + optionalDependencies: + '@parcel/watcher': 2.4.1 + '@types/node': 22.13.4 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@biomejs/biome' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - bluebird + - bufferutil + - db0 + - drizzle-orm + - encoding + - eslint + - idb-keyval + - ioredis + - less + - lightningcss + - magicast + - meow + - mysql2 + - optionator + - rolldown + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - utf-8-validate + - vite + - vls + - vti + - vue-tsc + - xml2js + - yaml + nwsapi@2.2.16: {} nypm@0.3.12: @@ -13603,6 +14073,16 @@ snapshots: dependencies: find-up: 4.1.0 + pkg-pr-new@0.0.39: + dependencies: + '@jsdevtools/ez-spawn': 3.0.4 + '@octokit/action': 6.1.0 + ignore: 5.3.2 + isbinaryfile: 5.0.4 + pkg-types: 1.3.1 + query-registry: 3.0.1 + tinyglobby: 0.2.11 + pkg-types@1.3.0: dependencies: confbox: 0.1.8 @@ -14017,10 +14497,27 @@ snapshots: pure-rand@6.0.2: {} + query-registry@3.0.1: + dependencies: + query-string: 9.1.1 + quick-lru: 7.0.0 + url-join: 5.0.0 + validate-npm-package-name: 5.0.1 + zod: 3.23.8 + zod-package-json: 1.1.0 + + query-string@9.1.1: + dependencies: + decode-uri-component: 0.4.1 + filter-obj: 5.1.0 + split-on-first: 3.0.0 + queue-microtask@1.2.3: {} queue-tick@1.0.1: {} + quick-lru@7.0.0: {} + radix3@1.1.2: {} randombytes@2.1.0: @@ -14559,6 +15056,8 @@ snapshots: spdx-license-ids@3.0.16: {} + split-on-first@3.0.0: {} + sprintf-js@1.0.3: {} sprintf-js@1.1.3: {} @@ -14854,6 +15353,24 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.13.4 + acorn: 8.14.0 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.7.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + tsconfck@3.1.3(typescript@5.7.3): optionalDependencies: typescript: 5.7.3 @@ -14967,6 +15484,10 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.20.0: {} + + undici@6.21.1: {} + unenv@1.10.0: dependencies: consola: 3.4.0 @@ -15088,6 +15609,8 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + universal-user-agent@6.0.1: {} + universalify@2.0.1: {} unplugin-utils@0.2.4: @@ -15226,6 +15749,8 @@ snapshots: dependencies: punycode: 2.3.1 + url-join@5.0.0: {} + urlpattern-polyfill@8.0.2: {} util-arity@1.1.0: {} @@ -15298,6 +15823,27 @@ snapshots: - tsx - yaml + vite-node@3.0.6(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.6.0 + pathe: 2.0.3 + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vite-plugin-checker@0.8.0(eslint@9.20.1(jiti@2.4.2))(optionator@0.9.3)(typescript@5.7.3)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3)): dependencies: '@babel/code-frame': 7.26.2 @@ -15321,6 +15867,29 @@ snapshots: typescript: 5.7.3 vue-tsc: 2.2.2(typescript@5.7.3) + vite-plugin-checker@0.8.0(eslint@9.20.1(jiti@2.4.2))(optionator@0.9.3)(typescript@5.7.3)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0))(vue-tsc@2.2.2(typescript@5.7.3)): + dependencies: + '@babel/code-frame': 7.26.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + chokidar: 3.6.0 + commander: 8.3.0 + fast-glob: 3.3.3 + fs-extra: 11.2.0 + npm-run-path: 4.0.1 + strip-ansi: 6.0.1 + tiny-invariant: 1.3.1 + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vscode-languageclient: 7.0.0 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + optionalDependencies: + eslint: 9.20.1(jiti@2.4.2) + optionator: 0.9.3 + typescript: 5.7.3 + vue-tsc: 2.2.2(typescript@5.7.3) + vite-plugin-inspect@0.8.4(@nuxt/kit@3.15.4(magicast@0.3.5)(rollup@4.34.8))(rollup@4.34.8)(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)): dependencies: '@antfu/utils': 0.7.10 @@ -15339,6 +15908,24 @@ snapshots: - rollup - supports-color + vite-plugin-inspect@0.8.4(@nuxt/kit@3.15.4(magicast@0.3.5)(rollup@4.34.8))(rollup@4.34.8)(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.4(rollup@4.34.8) + debug: 4.4.0 + error-stack-parser-es: 0.1.4 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.1.1 + sirv: 2.0.4 + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + optionalDependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5)(rollup@4.34.8) + transitivePeerDependencies: + - rollup + - supports-color + vite-plugin-vue-inspector@4.0.2(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.0 @@ -15354,6 +15941,21 @@ snapshots: transitivePeerDependencies: - supports-color + vite-plugin-vue-inspector@4.0.2(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)): + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-proposal-decorators': 7.23.2(@babel/core@7.26.0) + '@babel/plugin-syntax-import-attributes': 7.22.5(@babel/core@7.26.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) + '@vue/compiler-dom': 3.5.13 + kolorist: 1.8.0 + magic-string: 0.30.17 + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0): dependencies: esbuild: 0.24.2 @@ -15366,55 +15968,26 @@ snapshots: terser: 5.24.0 yaml: 2.7.0 - vitest-environment-nuxt@1.0.1: + vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0): dependencies: - '@nuxt/test-utils': 'link:' + esbuild: 0.24.2 + postcss: 8.5.2 + rollup: 4.34.8 + optionalDependencies: + '@types/node': 22.13.4 + fsevents: 2.3.3 + jiti: 2.4.2 + terser: 5.24.0 + yaml: 2.7.0 - vitest@3.0.6(@types/debug@4.1.12)(@types/node@20.10.5)(happy-dom@17.0.0)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0): + vitest-environment-nuxt@1.0.1: dependencies: - '@vitest/expect': 3.0.6 - '@vitest/mocker': 3.0.6(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) - '@vitest/pretty-format': 3.0.6 - '@vitest/runner': 3.0.6 - '@vitest/snapshot': 3.0.6 - '@vitest/spy': 3.0.6 - '@vitest/utils': 3.0.6 - chai: 5.2.0 - debug: 4.4.0 - expect-type: 1.1.0 - magic-string: 0.30.17 - pathe: 2.0.3 - std-env: 3.8.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinypool: 1.0.2 - tinyrainbow: 2.0.0 - vite: 6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) - vite-node: 3.0.6(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 20.10.5 - happy-dom: 17.0.0 - jsdom: 26.0.0 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml + '@nuxt/test-utils': 'link:' - vitest@3.0.6(@types/debug@4.1.12)(@types/node@20.10.5)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0): + vitest@3.0.6(@types/debug@4.1.12)(@types/node@22.13.4)(happy-dom@17.1.1)(jiti@2.4.2)(jsdom@26.0.0)(terser@5.24.0)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.6 - '@vitest/mocker': 3.0.6(vite@6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) + '@vitest/mocker': 3.0.6(vite@6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.6 '@vitest/runner': 3.0.6 '@vitest/snapshot': 3.0.6 @@ -15430,12 +16003,12 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.1.1(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) - vite-node: 3.0.6(@types/node@20.10.5)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vite: 6.1.1(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) + vite-node: 3.0.6(@types/node@22.13.4)(jiti@2.4.2)(terser@5.24.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 20.10.5 + '@types/node': 22.13.4 happy-dom: 17.1.1 jsdom: 26.0.0 transitivePeerDependencies: @@ -15695,10 +16268,16 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.5.2 + zod-package-json@1.1.0: + dependencies: + zod: 3.24.2 + zod-validation-error@3.4.0(zod@3.23.8): dependencies: zod: 3.23.8 zod@3.23.8: {} + zod@3.24.2: {} + zwitch@2.0.4: {} diff --git a/scripts/_utils.ts b/scripts/_utils.ts deleted file mode 100644 index 82d59ee22..000000000 --- a/scripts/_utils.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { promises as fsp } from 'node:fs' -import { resolve } from 'pathe' -import { exec } from 'tinyexec' -import { determineSemverChange, getGitDiff, loadChangelogConfig, parseCommits } from 'changelogen' - -interface Dep { - name: string - range: string - type: string -} - -async function loadPackage(dir: string) { - const pkgPath = resolve(dir, 'package.json') - const data = JSON.parse(await fsp.readFile(pkgPath, 'utf-8').catch(() => '{}')) - const save = () => fsp.writeFile(pkgPath, JSON.stringify(data, null, 2) + '\n') - - const updateDeps = (reviver: (dep: Dep) => Dep | void) => { - for (const type of ['dependencies', 'devDependencies', 'optionalDependencies', 'peerDependencies']) { - if (!data[type]) { - continue - } - for (const e of Object.entries(data[type])) { - const dep: Dep = { name: e[0], range: e[1] as string, type } - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete - delete data[type][dep.name] - const updated = reviver(dep) || dep - data[updated.type] = data[updated.type] || {} - data[updated.type][updated.name] = updated.range - } - } - } - - return { - dir, - data, - save, - updateDeps, - } -} - -export async function loadWorkspace(dir: string) { - const workspacePkg = await loadPackage(dir) - - const packages = [await loadPackage(process.cwd())] - - const find = (name: string) => { - const pkg = packages.find(pkg => pkg.data.name === name) - if (!pkg) { - throw new Error('Workspace package not found: ' + name) - } - return pkg - } - - const rename = (from: string, to: string) => { - find(from).data._name = find(from).data.name - find(from).data.name = to - for (const pkg of packages) { - pkg.updateDeps((dep) => { - if (dep.name === from && !dep.range.startsWith('npm:')) { - dep.range = 'npm:' + to + '@' + dep.range - } - }) - } - } - - const setVersion = (name: string, newVersion: string, opts: { updateDeps?: boolean } = {}) => { - find(name).data.version = newVersion - if (!opts.updateDeps) { - return - } - - for (const pkg of packages) { - pkg.updateDeps((dep) => { - if (dep.name === name) { - dep.range = newVersion - } - }) - } - } - - const save = () => Promise.all(packages.map(pkg => pkg.save())) - - return { - dir, - workspacePkg, - packages, - save, - find, - rename, - setVersion, - } -} - -export async function determineBumpType() { - const config = await loadChangelogConfig(process.cwd()) - const commits = await getLatestCommits() - - const bumpType = determineSemverChange(commits, config) - - return bumpType === 'major' ? 'minor' : bumpType -} - -export async function getLatestCommits() { - const config = await loadChangelogConfig(process.cwd()) - const { stdout: latestTag } = await exec('git', ['describe', '--tags', '--abbrev=0']) - - return parseCommits(await getGitDiff(latestTag.trim()), config) -} diff --git a/scripts/update-changelog.ts b/scripts/update-changelog.ts index 2aa16208e..69c86a6c0 100644 --- a/scripts/update-changelog.ts +++ b/scripts/update-changelog.ts @@ -1,28 +1,38 @@ import { execSync } from 'node:child_process' -import { $fetch } from 'ofetch' +import { promises as fsp } from 'node:fs' +import { join, resolve } from 'node:path' +import process from 'node:process' +import type { ResolvedChangelogConfig } from 'changelogen' + +import { determineSemverChange, generateMarkDown, getCurrentGitBranch, getGitDiff, loadChangelogConfig, parseCommits } from 'changelogen' import { inc } from 'semver' -import { generateMarkDown, getCurrentGitBranch, loadChangelogConfig } from 'changelogen' -import { consola } from 'consola' -import { determineBumpType, getLatestCommits, loadWorkspace } from './_utils' + +const repo = `nuxt/test-utils` +const corePackage = '@nuxt/test-utils' +const ignoredPackages: string[] = ['vitest-environment-nuxt'] +const user = { + name: 'Daniel Roe', + email: 'daniel@roe.dev', +} async function main() { - const releaseBranch = await getCurrentGitBranch() + const releaseBranch = getCurrentGitBranch() const workspace = await loadWorkspace(process.cwd()) const config = await loadChangelogConfig(process.cwd(), {}) - const commits = await getLatestCommits().then(commits => commits.filter( - c => config.types[c.type] && !(c.type === 'chore' && c.scope === 'deps' && !c.isBreaking), - )) - const bumpType = await determineBumpType() + const commits = await getLatestCommits(config).then(commits => commits.filter(c => config.types[c.type] && !(c.type === 'chore' && c.scope === 'deps' && !c.isBreaking))) + const bumpType = (await determineBumpType(config)) || 'patch' - const newVersion = inc(workspace.find('@nuxt/test-utils').data.version, bumpType || 'patch') + const newVersion = inc(workspace.find(corePackage).data.version, bumpType) const changelog = await generateMarkDown(commits, config) // Create and push a branch with bumped versions if it has not already been created const branchExists = execSync(`git ls-remote --heads origin v${newVersion}`).toString().trim().length > 0 if (!branchExists) { - execSync('git config --global user.email "daniel@roe.dev"') - execSync('git config --global user.name "Daniel Roe"') + for (const [key, value] of Object.entries(user)) { + execSync(`git config --global user.${key} "${value}"`) + execSync(`git config --global user.${key} "${value}"`) + } execSync(`git checkout -b v${newVersion}`) for (const pkg of workspace.packages.filter(p => !p.data.private)) { @@ -35,44 +45,193 @@ async function main() { } // Get the current PR for this release, if it exists - const [currentPR] = await $fetch(`https://api.github.com/repos/nuxt/test-utils/pulls?head=nuxt:v${newVersion}`) + const [currentPR] = await fetch(`https://api.github.com/repos/${repo}/pulls?head=nuxt:v${newVersion}`).then(r => r.json()) + const contributors = await getContributors() const releaseNotes = [ currentPR?.body.replace(/## πŸ‘‰ Changelog[\s\S]*$/, '') || `> ${newVersion} is the next ${bumpType} release.\n>\n> **Timetable**: to be announced.`, '## πŸ‘‰ Changelog', - changelog.replace(/^## v.*\n/, '').replace(`...${releaseBranch}`, `...v${newVersion}`), + changelog + .replace(/^## v.*\n/, '') + .replace(`...${releaseBranch}`, `...v${newVersion}`) + .replace(/### ❀️ Contributors[\s\S]*$/, ''), + '### ❀️ Contributors', + contributors.map(c => `- ${c.name} (@${c.username})`).join('\n'), ].join('\n') // Create a PR with release notes if none exists if (!currentPR) { - return await $fetch('https://api.github.com/repos/nuxt/test-utils/pulls', { + return await fetch(`https://api.github.com/repos/${repo}/pulls`, { method: 'POST', headers: { - Authorization: `token ${process.env.GITHUB_TOKEN}`, + 'Authorization': `token ${process.env.GITHUB_TOKEN}`, + 'content-type': 'application/json', }, - body: { + body: JSON.stringify({ title: `v${newVersion}`, head: `v${newVersion}`, base: releaseBranch, body: releaseNotes, draft: true, - }, + }), }) } // Update release notes if the pull request does exist - await $fetch(`https://api.github.com/repos/nuxt/test-utils/pulls/${currentPR.number}`, { + await fetch(`https://api.github.com/repos/${repo}/pulls/${currentPR.number}`, { method: 'PATCH', headers: { - Authorization: `token ${process.env.GITHUB_TOKEN}`, + 'Authorization': `token ${process.env.GITHUB_TOKEN}`, + 'content-type': 'application/json', }, - body: { + body: JSON.stringify({ body: releaseNotes, - }, + }), }) } main().catch((err) => { - consola.error(err) + console.error(err) process.exit(1) }) + +export interface Dep { + name: string + range: string + type: string +} + +type ThenArg = T extends PromiseLike ? U : T +export type Package = ThenArg> + +export async function loadPackage(dir: string) { + const pkgPath = resolve(dir, 'package.json') + const data = JSON.parse(await fsp.readFile(pkgPath, 'utf-8').catch(() => '{}')) + const save = () => fsp.writeFile(pkgPath, `${JSON.stringify(data, null, 2)}\n`) + + const updateDeps = (reviver: (dep: Dep) => Dep | void) => { + for (const type of ['dependencies', 'devDependencies', 'optionalDependencies', 'peerDependencies']) { + if (!data[type]) { + continue + } + for (const e of Object.entries(data[type])) { + const dep: Dep = { name: e[0], range: e[1] as string, type } + // eslint-disable-next-line + delete data[type][dep.name] + const updated = reviver(dep) || dep + data[updated.type] = data[updated.type] || {} + data[updated.type][updated.name] = updated.range + } + } + } + + return { + dir, + data, + save, + updateDeps, + } +} + +export async function loadWorkspace(dir: string) { + const workspacePkg = await loadPackage(dir) + + const packages: Package[] = [] + + for await (const pkgDir of fsp.glob(['packages/*'], { withFileTypes: true })) { + if (!pkgDir.isDirectory()) { + continue + } + const pkg = await loadPackage(join(pkgDir.parentPath, pkgDir.name)) + if (!pkg.data.name || ignoredPackages.includes(pkg.data.name)) { + continue + } + console.log(pkg.data.name) + packages.push(pkg) + } + + const find = (name: string) => { + const pkg = packages.find(pkg => pkg.data.name === name) + if (!pkg) { + throw new Error(`Workspace package not found: ${name}`) + } + return pkg + } + + const rename = (from: string, to: string) => { + find(from).data._name = find(from).data.name + find(from).data.name = to + for (const pkg of packages) { + pkg.updateDeps((dep) => { + if (dep.name === from && !dep.range.startsWith('npm:')) { + dep.range = `npm:${to}@${dep.range}` + } + }) + } + } + + const setVersion = (name: string, newVersion: string, opts: { updateDeps?: boolean } = {}) => { + find(name).data.version = newVersion + if (!opts.updateDeps) { + return + } + + for (const pkg of packages) { + pkg.updateDeps((dep) => { + if (dep.name === name) { + dep.range = newVersion + } + }) + } + } + + const save = () => Promise.all(packages.map(pkg => pkg.save())) + + return { + dir, + workspacePkg, + packages, + save, + find, + rename, + setVersion, + } +} + +export async function determineBumpType(config: ResolvedChangelogConfig) { + const commits = await getLatestCommits(config) + + const bumpType = determineSemverChange(commits, config) + + return bumpType === 'major' ? 'minor' : bumpType +} + +export async function getLatestCommits(config: ResolvedChangelogConfig) { + const latestTag = execSync('git describe --tags --abbrev=0').toString().trim() + + return parseCommits(await getGitDiff(latestTag), config) +} + +export async function getContributors() { + const contributors = [] as Array<{ name: string, username: string }> + const emails = new Set() + const latestTag = execSync('git describe --tags --abbrev=0').toString().trim() + const rawCommits = await getGitDiff(latestTag) + for (const commit of rawCommits) { + if (emails.has(commit.author.email) || commit.author.name === 'renovate[bot]') { + continue + } + const { author } = await fetch(`https://api.github.com/repos/${repo}/commits/${commit.shortHash}`, { + headers: { + 'User-Agent': `${repo} github action automation`, + 'Accept': 'application/vnd.github.v3+json', + 'Authorization': `token ${process.env.GITHUB_TOKEN}`, + }, + }).then(r => r.json() as Promise<{ author: { login: string, email: string } }>) + if (!contributors.some(c => c.username === author.login)) { + contributors.push({ name: commit.author.name, username: author.login }) + } + emails.add(author.email) + } + return contributors +}