ci: migrate all workflows to pnpm, upgrade @vitejs/plugin-react to v6

- Replace npm ci with pnpm install --frozen-lockfile in all 5 workflows
- Add pnpm/action-setup@v4 step to lint, format, testing, release, publish
- Upgrade @vitejs/plugin-react 4.7.0 -> 6.0.1 (supports vite 8)
- Add @rolldown/plugin-babel as required peer dependency
- Remove package-lock.json (project uses pnpm-lock.yaml)
This commit is contained in:
Gemini Nexus Bot committed 2026-04-29 02:48:19 -03:00
1 parent 9c07fbc815
commit de866a74bf
8 files changed
+451 -26791

No files matched your search

+34 -29
View File
@@ -1,29 +1,34 @@
name: Check formatting name: Check formatting
on: on:
pull_request: pull_request:
branches: [main] branches: [main]
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
check: check:
name: Prettier Format Check name: Prettier Format Check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Install pnpm
uses: actions/setup-node@v4 uses: pnpm/action-setup@v4
with: with:
node-version: 20 version: 10
cache: 'npm'
- name: Setup Node.js
- name: Install dependencies uses: actions/setup-node@v4
run: npm ci with:
node-version: 20
- name: Run format check cache: 'pnpm'
run: npm run format
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run format check
run: pnpm run format
+34 -29
View File
@@ -1,29 +1,34 @@
name: Lint name: Lint
on: on:
pull_request: pull_request:
branches: [main] branches: [main]
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
check: check:
name: ESLint Check name: ESLint Check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Install pnpm
uses: actions/setup-node@v4 uses: pnpm/action-setup@v4
with: with:
node-version: 20 version: 10
cache: 'npm'
- name: Setup Node.js
- name: Install dependencies uses: actions/setup-node@v4
run: npm ci with:
node-version: 20
- name: Run lint cache: 'pnpm'
run: npm run lint
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run lint
run: pnpm run lint
+229 -219
View File
@@ -1,219 +1,229 @@
name: Publish Release name: Publish Release
on: on:
release: release:
types: [published] types: [published]
workflow_dispatch: workflow_dispatch:
inputs: inputs:
dry_run: dry_run:
description: 'Build artifacts only, skip uploading to GitHub Release' description: 'Build artifacts only, skip uploading to GitHub Release'
required: false required: false
type: boolean type: boolean
default: true default: true
allow_update_published_release: allow_update_published_release:
description: 'Allow uploading assets to an already published release' description: 'Allow uploading assets to an already published release'
required: false required: false
type: boolean type: boolean
default: false default: false
jobs: jobs:
build: build:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- os: windows-latest - os: windows-latest
platform: win32 platform: win32
arch: x64 arch: x64
- os: windows-11-arm - os: windows-11-arm
platform: win32 platform: win32
arch: arm64 arch: arm64
- os: macos-15-intel - os: macos-15-intel
platform: darwin platform: darwin
arch: x64 arch: x64
- os: macos-14 - os: macos-14
platform: darwin platform: darwin
arch: arm64 arch: arm64
- os: ubuntu-latest - os: ubuntu-latest
platform: linux platform: linux
arch: x64 arch: x64
- os: ubuntu-24.04-arm - os: ubuntu-24.04-arm
platform: linux platform: linux
arch: arm64 arch: arm64
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
permissions: permissions:
contents: read contents: read
steps: steps:
- name: Checkout git repo - name: Checkout git repo
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install Node and NPM - name: Install pnpm
uses: actions/setup-node@v4 uses: pnpm/action-setup@v4
with: with:
node-version: 20 version: 10
cache: 'npm'
- name: Install Node and NPM
- name: Install Linux dependencies uses: actions/setup-node@v4
if: matrix.platform == 'linux' with:
run: | node-version: 20
sudo apt-get update cache: 'pnpm'
sudo apt-get install -y fakeroot rpm libsecret-1-dev pkg-config
- name: Install Linux dependencies
- name: Ensure WiX Toolset if: matrix.platform == 'linux'
if: matrix.platform == 'win32' && matrix.arch == 'x64' run: |
shell: powershell sudo apt-get update
run: | sudo apt-get install -y fakeroot rpm libsecret-1-dev pkg-config
$installed = choco list --local-only wixtoolset --exact --limit-output
if (-not $installed) { - name: Ensure WiX Toolset
choco install wixtoolset --version=3.14.0 -y if: matrix.platform == 'win32' && matrix.arch == 'x64'
} elseif ($installed -match '^wixtoolset\|3\.14(\.|$)') { shell: powershell
Write-Host "WiX Toolset already compatible: $installed" run: |
} else { $installed = choco list --local-only wixtoolset --exact --limit-output
Write-Host "Incompatible WiX Toolset detected: $installed" if (-not $installed) {
choco upgrade wixtoolset --version=3.14.0 --allow-downgrade -y choco install wixtoolset --version=3.14.0 -y
} } elseif ($installed -match '^wixtoolset\|3\.14(\.|$)') {
Write-Host "WiX Toolset already compatible: $installed"
- name: Install dependencies } else {
run: npm ci Write-Host "Incompatible WiX Toolset detected: $installed"
choco upgrade wixtoolset --version=3.14.0 --allow-downgrade -y
- name: Make Artifacts }
if: matrix.platform != 'darwin'
env: - name: Install dependencies
NODE_OPTIONS: --max-old-space-size=8192 run: pnpm install --frozen-lockfile
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - name: Make Artifacts
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} if: matrix.platform != 'darwin'
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} env:
run: npm run make -- --platform=${{ matrix.platform }} --arch=${{ matrix.arch }} NODE_OPTIONS: --max-old-space-size=8192
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
# DMG creation may be flaky on GitHub macOS runners, so retry the full darwin make. SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
- name: Make Artifacts (darwin with retry) SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
if: matrix.platform == 'darwin' SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
uses: nick-fields/retry@v3 run: pnpm run make -- --platform=${{ matrix.platform }} --arch=${{ matrix.arch }}
with:
max_attempts: 3 # DMG creation may be flaky on GitHub macOS runners, so retry the full darwin make.
timeout_minutes: 20 - name: Make Artifacts (darwin with retry)
retry_wait_seconds: 20 if: matrix.platform == 'darwin'
command: npm run make -- --platform=${{ matrix.platform }} --arch=${{ matrix.arch }} uses: nick-fields/retry@v3
env: with:
NODE_OPTIONS: --max-old-space-size=8192 max_attempts: 3
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} timeout_minutes: 20
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} retry_wait_seconds: 20
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} command: pnpm run make -- --platform=${{ matrix.platform }} --arch=${{ matrix.arch }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} env:
NODE_OPTIONS: --max-old-space-size=8192
- name: Upload Build Artifacts SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
uses: actions/upload-artifact@v4 SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
with: SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
name: make-${{ matrix.platform }}-${{ matrix.arch }} SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
path: |
out/make/**/*.exe - name: Upload Build Artifacts
out/make/**/*.dmg uses: actions/upload-artifact@v4
out/make/**/*.zip with:
out/make/**/*.AppImage name: make-${{ matrix.platform }}-${{ matrix.arch }}
out/make/**/*.deb path: |
out/make/**/*.rpm out/make/**/*.exe
out/make/**/*.msi out/make/**/*.dmg
out/make/**/*.yml out/make/**/*.zip
out/make/**/*.txt out/make/**/*.AppImage
if-no-files-found: error out/make/**/*.deb
retention-days: 14 out/make/**/*.rpm
out/make/**/*.msi
- name: Dry-run summary out/make/**/*.yml
if: github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'true' out/make/**/*.txt
run: | if-no-files-found: error
echo "Dry run enabled: build artifacts generated and uploaded; release publish step will be skipped." retention-days: 14
publish: - name: Dry-run summary
name: Publish Release (Manual Approval) if: github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run == 'true'
needs: build run: |
runs-on: ubuntu-latest echo "Dry run enabled: build artifacts generated and uploaded; release publish step will be skipped."
if: needs.build.result == 'success' && (github.event_name != 'workflow_dispatch' || github.event.inputs.dry_run != 'true')
permissions: publish:
contents: write name: Publish Release (Manual Approval)
# Configure the `release` environment with required reviewers in GitHub settings needs: build
# to enforce a manual approval gate before assets are uploaded. runs-on: ubuntu-latest
environment: if: needs.build.result == 'success' && (github.event_name != 'workflow_dispatch' || github.event.inputs.dry_run != 'true')
name: release permissions:
contents: write
steps: # Configure the `release` environment with required reviewers in GitHub settings
- name: Checkout git repo # to enforce a manual approval gate before assets are uploaded.
uses: actions/checkout@v4 environment:
name: release
- name: Download Build Artifacts
uses: actions/download-artifact@v4 steps:
with: - name: Checkout git repo
pattern: make-* uses: actions/checkout@v4
merge-multiple: true
path: release-assets - name: Download Build Artifacts
uses: actions/download-artifact@v4
- name: Install Node and NPM with:
uses: actions/setup-node@v4 pattern: make-*
with: merge-multiple: true
node-version: 20 path: release-assets
cache: 'npm'
- name: Install pnpm
- name: Resolve release tag uses: pnpm/action-setup@v4
id: release_tag with:
env: version: 10
RELEASE_EVENT_TAG: ${{ github.event_name == 'release' && github.event.release.tag_name || '' }}
run: | - name: Install Node and NPM
if [ -n "$RELEASE_EVENT_TAG" ]; then uses: actions/setup-node@v4
tag="$RELEASE_EVENT_TAG" with:
else node-version: 20
version="$(node -e "const v=require('./package.json').version; if (!v) { throw new Error('package.json version is empty'); } process.stdout.write(v);")" cache: 'pnpm'
tag="v$version"
fi - name: Resolve release tag
id: release_tag
if [ -z "$tag" ]; then env:
echo "::error::Resolved release tag is empty" RELEASE_EVENT_TAG: ${{ github.event_name == 'release' && github.event.release.tag_name || '' }}
exit 1 run: |
fi if [ -n "$RELEASE_EVENT_TAG" ]; then
tag="$RELEASE_EVENT_TAG"
echo "tag=$tag" >> "$GITHUB_OUTPUT" else
echo "Using release tag: $tag" version="$(node -e "const v=require('./package.json').version; if (!v) { throw new Error('package.json version is empty'); } process.stdout.write(v);")"
tag="v$version"
- name: Ensure release is safe to update fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} if [ -z "$tag" ]; then
RELEASE_TAG: ${{ steps.release_tag.outputs.tag }} echo "::error::Resolved release tag is empty"
ALLOW_UPDATE_PUBLISHED_RELEASE: ${{ github.event_name == 'release' && 'true' || (github.event_name == 'workflow_dispatch' && github.event.inputs.allow_update_published_release) || 'false' }} exit 1
run: | fi
if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then
is_draft="$(gh release view "$RELEASE_TAG" --json isDraft --jq '.isDraft')" echo "tag=$tag" >> "$GITHUB_OUTPUT"
if [ "$is_draft" != "true" ] && [ "$ALLOW_UPDATE_PUBLISHED_RELEASE" != "true" ]; then echo "Using release tag: $tag"
echo "::error::Release $RELEASE_TAG is already published. Refusing to upload assets."
echo "::error::Re-run with workflow_dispatch input allow_update_published_release=true if you explicitly want to update it." - name: Ensure release is safe to update
exit 1 env:
fi GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
else RELEASE_TAG: ${{ steps.release_tag.outputs.tag }}
gh release create "$RELEASE_TAG" --title "$RELEASE_TAG" --draft --notes "Automated release draft." ALLOW_UPDATE_PUBLISHED_RELEASE: ${{ github.event_name == 'release' && 'true' || (github.event_name == 'workflow_dispatch' && github.event.inputs.allow_update_published_release) || 'false' }}
fi run: |
if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then
- name: Upload assets to release is_draft="$(gh release view "$RELEASE_TAG" --json isDraft --jq '.isDraft')"
env: if [ "$is_draft" != "true" ] && [ "$ALLOW_UPDATE_PUBLISHED_RELEASE" != "true" ]; then
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} echo "::error::Release $RELEASE_TAG is already published. Refusing to upload assets."
RELEASE_TAG: ${{ steps.release_tag.outputs.tag }} echo "::error::Re-run with workflow_dispatch input allow_update_published_release=true if you explicitly want to update it."
run: | exit 1
mapfile -t files < <(find release-assets -type f \( \ fi
-name '*.exe' -o \ else
-name '*.dmg' -o \ gh release create "$RELEASE_TAG" --title "$RELEASE_TAG" --draft --notes "Automated release draft."
-name '*.zip' -o \ fi
-name '*.AppImage' -o \
-name '*.deb' -o \ - name: Upload assets to release
-name '*.rpm' -o \ env:
-name '*.msi' -o \ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-name '*.yml' -o \ RELEASE_TAG: ${{ steps.release_tag.outputs.tag }}
-name '*.txt' \ run: |
\) | sort) mapfile -t files < <(find release-assets -type f \( \
-name '*.exe' -o \
if [ "${#files[@]}" -eq 0 ]; then -name '*.dmg' -o \
echo "::error::No release assets found under release-assets/" -name '*.zip' -o \
exit 1 -name '*.AppImage' -o \
fi -name '*.deb' -o \
-name '*.rpm' -o \
printf 'Uploading %s assets to %s\n' "${#files[@]}" "$RELEASE_TAG" -name '*.msi' -o \
gh release upload "$RELEASE_TAG" "${files[@]}" --clobber -name '*.yml' -o \
-name '*.txt' \
\) | sort)
if [ "${#files[@]}" -eq 0 ]; then
echo "::error::No release assets found under release-assets/"
exit 1
fi
printf 'Uploading %s assets to %s\n' "${#files[@]}" "$RELEASE_TAG"
gh release upload "$RELEASE_TAG" "${files[@]}" --clobber
+39 -34
View File
@@ -1,34 +1,39 @@
name: Release name: Release
on: on:
workflow_dispatch: workflow_dispatch:
permissions: permissions:
contents: write contents: write
issues: write issues: write
pull-requests: write pull-requests: write
jobs: jobs:
release: release:
name: Semantic Release name: Semantic Release
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 # Required for semantic-release to analyze commits fetch-depth: 0
persist-credentials: false # We use a token in the next steps persist-credentials: false
- name: Setup Node.js - name: Install pnpm
uses: actions/setup-node@v4 uses: pnpm/action-setup@v4
with: with:
node-version: 20 version: 10
cache: 'npm'
- name: Setup Node.js
- name: Install dependencies uses: actions/setup-node@v4
run: npm ci with:
node-version: 20
- name: Release cache: 'pnpm'
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} # Use GH_TOKEN to trigger other workflows - name: Install dependencies
run: npx semantic-release run: pnpm install --frozen-lockfile
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: npx semantic-release
+63 -53
View File
@@ -1,53 +1,63 @@
name: Tests name: Tests
on: on:
push: push:
branches: [main] branches: [main]
pull_request: pull_request:
branches: [main] branches: [main]
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
tests-unit: tests-unit:
name: Unit Tests name: Unit Tests
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Install pnpm
uses: actions/setup-node@v4 uses: pnpm/action-setup@v4
with: with:
node-version: 20 version: 10
cache: 'npm'
- name: Setup Node.js
- name: Install dependencies uses: actions/setup-node@v4
run: npm ci with:
node-version: 20
- name: Run unit tests cache: 'pnpm'
run: npm test
- name: Install dependencies
type-check: run: pnpm install --frozen-lockfile
name: Type Check
runs-on: ubuntu-latest - name: Run unit tests
steps: run: pnpm test
- name: Checkout
uses: actions/checkout@v4 type-check:
name: Type Check
- name: Setup Node.js runs-on: ubuntu-latest
uses: actions/setup-node@v4 steps:
with: - name: Checkout
node-version: 20 uses: actions/checkout@v4
cache: 'npm'
- name: Install pnpm
- name: Install dependencies uses: pnpm/action-setup@v4
run: npm ci with:
version: 10
- name: Run TypeScript type check
run: npm run type-check - name: Setup Node.js
uses: actions/setup-node@v4
# NOTE: E2E tests are disabled in CI because Electron apps require a graphical environment. with:
# Run E2E tests locally with: npm run test:e2e node-version: 20
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run TypeScript type check
run: pnpm run type-check
# NOTE: E2E tests are disabled in CI because Electron apps require a graphical environment.
# Run E2E tests locally with: pnpm run test:e2e
-26347
View File
File diff suppressed because it is too large. Load diff
+2 -1
View File
@@ -45,6 +45,7 @@
"@eslint/js": "^9.39.0", "@eslint/js": "^9.39.0",
"@pengx17/electron-forge-maker-appimage": "^1.0.2", "@pengx17/electron-forge-maker-appimage": "^1.0.2",
"@playwright/test": "^1.56.1", "@playwright/test": "^1.56.1",
"@rolldown/plugin-babel": "^0.2.3",
"@semantic-release/changelog": "^6.0.3", "@semantic-release/changelog": "^6.0.3",
"@semantic-release/git": "^10.0.1", "@semantic-release/git": "^10.0.1",
"@semantic-release/github": "^12.0.6", "@semantic-release/github": "^12.0.6",
@@ -62,7 +63,7 @@
"@types/node": "^24.10.1", "@types/node": "^24.10.1",
"@types/react": "^19.2.2", "@types/react": "^19.2.2",
"@types/react-dom": "^19.2.2", "@types/react-dom": "^19.2.2",
"@vitejs/plugin-react": "^4.7.0", "@vitejs/plugin-react": "^6.0.1",
"babel-plugin-react-compiler": "1.0.0", "babel-plugin-react-compiler": "1.0.0",
"code-inspector-plugin": "^1.3.3", "code-inspector-plugin": "^1.3.3",
"conventional-changelog-conventionalcommits": "^9.1.0", "conventional-changelog-conventionalcommits": "^9.1.0",
+50 -79
View File
@@ -269,6 +269,9 @@ importers:
'@playwright/test': '@playwright/test':
specifier: ^1.56.1 specifier: ^1.56.1
version: 1.59.1 version: 1.59.1
'@rolldown/plugin-babel':
specifier: ^0.2.3
version: 0.2.3(@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))
'@semantic-release/changelog': '@semantic-release/changelog':
specifier: ^6.0.3 specifier: ^6.0.3
version: 6.0.3([email protected]([email protected])) version: 6.0.3([email protected]([email protected]))
@@ -321,8 +324,8 @@ importers:
specifier: ^19.2.2 specifier: ^19.2.2
version: 19.2.3(@types/[email protected]) version: 19.2.3(@types/[email protected])
'@vitejs/plugin-react': '@vitejs/plugin-react':
specifier: ^4.7.0 specifier: ^6.0.1
version: 4.7.0([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])) version: 6.0.1(@rolldown/[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])))([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))
babel-plugin-react-compiler: babel-plugin-react-compiler:
specifier: 1.0.0 specifier: 1.0.0
version: 1.0.0 version: 1.0.0
@@ -536,18 +539,6 @@ packages:
peerDependencies: peerDependencies:
'@babel/core': ^7.0.0-0 '@babel/core': ^7.0.0-0
'@babel/[email protected]':
resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/[email protected]':
resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
'@babel/[email protected]': '@babel/[email protected]':
resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@@ -2779,12 +2770,29 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@rolldown/plugin[email protected]': '@rolldown/plugin[email protected]':
resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} resolution: {integrity: sha512-+zEk16yGlz1F9STiRr6uG9hmIXb6nprjLczV/htGptYuLoCuxb+itZ03RKCEeOhBpDDd1NU7qF6x1VLMUp62bw==}
engines: {node: '>=22.12.0 || ^24.0.0'}
peerDependencies:
'@babel/core': ^7.29.0 || ^8.0.0-rc.1
'@babel/plugin-transform-runtime': ^7.29.0 || ^8.0.0-rc.1
'@babel/runtime': ^7.27.0 || ^8.0.0-rc.1
rolldown: ^1.0.0-rc.5
vite: ^8.0.0
peerDependenciesMeta:
'@babel/plugin-transform-runtime':
optional: true
'@babel/runtime':
optional: true
vite:
optional: true
'@rolldown/[email protected]': '@rolldown/[email protected]':
resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==} resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==}
'@rolldown/[email protected]':
resolution: {integrity: sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==}
'@rollup/[email protected]': '@rollup/[email protected]':
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
@@ -3491,18 +3499,6 @@ packages:
'@types/[email protected]': '@types/[email protected]':
resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
'@types/[email protected]':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
'@types/[email protected]':
resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
'@types/[email protected]':
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
'@types/[email protected]':
resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
'@types/[email protected]': '@types/[email protected]':
resolution: {integrity: sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==} resolution: {integrity: sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==}
@@ -3717,11 +3713,18 @@ packages:
resolution: {integrity: sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==} resolution: {integrity: sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@vitejs/plugin-react@4.7.0': '@vitejs/plugin-react@6.0.1':
resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} resolution: {integrity: sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^20.19.0 || >=22.12.0}
peerDependencies: peerDependencies:
vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0
babel-plugin-react-compiler: ^1.0.0
vite: ^8.0.0
peerDependenciesMeta:
'@rolldown/plugin-babel':
optional: true
babel-plugin-react-compiler:
optional: true
'@vitest/[email protected]': '@vitest/[email protected]':
resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==}
@@ -7440,10 +7443,6 @@ packages:
[email protected]: [email protected]:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
[email protected]:
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
engines: {node: '>=0.10.0'}
[email protected]: [email protected]:
resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
engines: {node: '>=10'} engines: {node: '>=10'}
@@ -9029,16 +9028,6 @@ snapshots:
'@babel/core': 7.29.0 '@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.28.6 '@babel/helper-plugin-utils': 7.28.6
'@babel/[email protected](@babel/[email protected])':
dependencies:
'@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.28.6
'@babel/[email protected](@babel/[email protected])':
dependencies:
'@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.28.6
'@babel/[email protected]': {} '@babel/[email protected]': {}
'@babel/[email protected]': '@babel/[email protected]':
@@ -11708,10 +11697,19 @@ snapshots:
'@rolldown/[email protected]': '@rolldown/[email protected]':
optional: true optional: true
'@rolldown/plugin[email protected]': {} '@rolldown/plugin[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))':
dependencies:
'@babel/core': 7.29.0
picomatch: 4.0.4
rolldown: 1.0.0-rc.17
optionalDependencies:
'@babel/runtime': 7.29.2
vite: 8.0.10(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
'@rolldown/[email protected]': {} '@rolldown/[email protected]': {}
'@rolldown/[email protected]': {}
'@rollup/[email protected]([email protected])': '@rollup/[email protected]([email protected])':
dependencies: dependencies:
'@types/estree': 1.0.8 '@types/estree': 1.0.8
@@ -12392,27 +12390,6 @@ snapshots:
'@types/[email protected]': {} '@types/[email protected]': {}
'@types/[email protected]':
dependencies:
'@babel/parser': 7.29.2
'@babel/types': 7.29.0
'@types/babel__generator': 7.27.0
'@types/babel__template': 7.4.4
'@types/babel__traverse': 7.28.0
'@types/[email protected]':
dependencies:
'@babel/types': 7.29.0
'@types/[email protected]':
dependencies:
'@babel/parser': 7.29.2
'@babel/types': 7.29.0
'@types/[email protected]':
dependencies:
'@babel/types': 7.29.0
'@types/[email protected]': '@types/[email protected]':
dependencies: dependencies:
'@types/node': 24.12.2 '@types/node': 24.12.2
@@ -12672,17 +12649,13 @@ snapshots:
'@typescript-eslint/types': 8.59.1 '@typescript-eslint/types': 8.59.1
eslint-visitor-keys: 5.0.1 eslint-visitor-keys: 5.0.1
'@vitejs/plugin-react@4.7.0([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))': '@vitejs/plugin-react@6.0.1(@rolldown/[email protected](@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])))([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))':
dependencies: dependencies:
'@babel/core': 7.29.0 '@rolldown/pluginutils': 1.0.0-rc.7
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/[email protected])
'@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/[email protected])
'@rolldown/pluginutils': 1.0.0-beta.27
'@types/babel__core': 7.20.5
react-refresh: 0.17.0
vite: 8.0.10(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]) vite: 8.0.10(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
transitivePeerDependencies: optionalDependencies:
- supports-color '@rolldown/plugin-babel': 0.2.3(@babel/[email protected])(@babel/[email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))
babel-plugin-react-compiler: 1.0.0
'@vitest/[email protected]': '@vitest/[email protected]':
dependencies: dependencies:
@@ -16615,8 +16588,6 @@ snapshots:
[email protected]: {} [email protected]: {}
[email protected]: {}
[email protected](@types/[email protected])([email protected]): [email protected](@types/[email protected])([email protected]):
dependencies: dependencies:
react: 19.2.5 react: 19.2.5