diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 439005f..627207d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -3,8 +3,41 @@ updates: - package-ecosystem: "github-actions" directory: "/" schedule: - interval: weekly + interval: "weekly" groups: github-actions: patterns: - "*" + + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" + cooldown: + semver-patch-days: 1 + semver-minor-days: 3 + semver-major-days: 14 + versioning-strategy: "increase-if-necessary" + groups: + npm-production: + dependency-type: "production" + patterns: + - "*" + npm-development: + dependency-type: "development" + patterns: + - "*" + + - package-ecosystem: "cargo" + directory: "/standalone/src-tauri" + schedule: + interval: "weekly" + cooldown: + semver-patch-days: 1 + semver-minor-days: 3 + semver-major-days: 14 + versioning-strategy: "increase-if-necessary" + groups: + cargo: + patterns: + - "*" diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 02797f1..97768a3 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -31,7 +31,7 @@ jobs: - name: Setup pnpm uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - version: 10 + version: 11.0.6 - name: Install dependencies run: pnpm install diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d61262a..9fbe9fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ jobs: - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - version: 10 + version: 11.0.6 - name: Install dependencies run: pnpm install @@ -44,7 +44,7 @@ jobs: - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - version: 10 + version: 11.0.6 - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 199e297..c672ba4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,7 +37,7 @@ jobs: - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - version: 10 + version: 11.0.6 - name: Install workspace dependencies run: pnpm install --frozen-lockfile @@ -164,7 +164,7 @@ jobs: - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - version: 10 + version: 11.0.6 - name: Install workspace dependencies run: pnpm install --frozen-lockfile @@ -235,7 +235,7 @@ jobs: - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 with: - version: 10 + version: 11.0.6 - name: Install workspace dependencies run: pnpm install --frozen-lockfile diff --git a/.gitignore b/.gitignore index 4f9729e..120be79 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # Dependencies node_modules/ +.pnpm-store/ # Build output dist/ diff --git a/docs/specs/deploy.md b/docs/specs/deploy.md index 5969a5c..501d6ba 100644 --- a/docs/specs/deploy.md +++ b/docs/specs/deploy.md @@ -95,7 +95,7 @@ strategy: ``` Each matrix leg: -1. Checkout, setup Node 22, pnpm 10, Rust stable +1. Checkout, setup Node 22, pnpm 11.0.6, Rust stable 2. Install workspace dependencies once from the repo root with `pnpm install --frozen-lockfile` 3. Install system deps (Linux: libgtk, libwebkit, etc.) 4. Generate an ephemeral, per-job Tauri updater key with `pnpm --dir standalone exec tauri signer generate --ci --write-keys "$RUNNER_TEMP/tauri-ci-updater.key" --force` @@ -111,7 +111,7 @@ The CI updater key exists only so Tauri emits updater-shaped artifacts during un ### Job: `build-vscode` Runs on `ubuntu-latest`: -1. Checkout, setup Node 22, pnpm 10 +1. Checkout, setup Node 22, pnpm 11.0.6 2. `pnpm install --frozen-lockfile` at the repo root 3. `pnpm --filter dormouse-lib test` 4. `pnpm --filter dormouse build:frontend && pnpm --filter dormouse build` diff --git a/lib/package.json b/lib/package.json index 7690ab4..fbba5fb 100644 --- a/lib/package.json +++ b/lib/package.json @@ -37,7 +37,7 @@ "storybook": "^10.4.0", "tailwindcss": "^4.3.0", "typescript": "^6.0.3", - "vite": "^7.3.1", + "vite": "^7.3.3", "vitest": "^4.1.6" } } diff --git a/package.json b/package.json index 3d9f193..4a126e9 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "dormouse-root", "private": true, "license": "FSL-1.1-MIT", + "packageManager": "pnpm@11.0.6", "scripts": { "build": "pnpm run build:vscode && pnpm --filter dormouse-website build", "test": "pnpm -r run test", @@ -15,12 +16,5 @@ "dogfood:standalone": "bash standalone/scripts/dogfood.sh", "storybook": "pnpm --filter dormouse-lib storybook", "bundle-themes": "node lib/scripts/bundle-themes.mjs" - }, - "pnpm": { - "onlyBuiltDependencies": [ - "@swc/core", - "esbuild", - "node-pty" - ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a34d409..5e3b8f1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,7 +24,7 @@ importers: version: 2.1.1 dockview-react: specifier: ^5.1.0 - version: 5.1.0(react@19.2.6) + version: 5.2.0(react@19.2.6) fflate: specifier: 0.8.3 version: 0.8.3 @@ -49,10 +49,10 @@ importers: version: 10.4.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.3) '@storybook/react-vite': specifier: ^10.4.0 - version: 10.4.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(esbuild@0.28.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.3)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 10.4.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(esbuild@0.28.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.3)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@tailwindcss/vite': specifier: ^4.3.0 - version: 4.3.0(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.3.0(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@types/react': specifier: ^19.2.14 version: 19.2.14 @@ -61,7 +61,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react-swc': specifier: ^4.3.1 - version: 4.3.1(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.3.1(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) chromatic: specifier: ^16.10.1 version: 16.10.1 @@ -75,11 +75,11 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^7.3.1 - version: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + specifier: ^7.3.3 + version: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) vitest: specifier: ^4.1.6 - version: 4.1.6(jsdom@29.1.1)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.1.6(jsdom@29.1.1)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) standalone: dependencies: @@ -103,7 +103,7 @@ importers: version: 6.1.0-beta.219 dockview-react: specifier: ^5.1.0 - version: 5.1.0(react@19.2.6) + version: 5.2.0(react@19.2.6) dormouse-lib: specifier: workspace:* version: link:../lib @@ -119,7 +119,7 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.3.0 - version: 4.3.0(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.3.0(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@tauri-apps/cli': specifier: ^2.11.2 version: 2.11.2 @@ -131,7 +131,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react-swc': specifier: ^4.3.1 - version: 4.3.1(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.3.1(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) jsdom: specifier: ^29.1.1 version: 29.1.1 @@ -142,11 +142,11 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^7.3.1 - version: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + specifier: ^7.3.3 + version: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) vitest: specifier: ^4.1.6 - version: 4.1.6(jsdom@29.1.1)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.1.6(jsdom@29.1.1)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) standalone/sidecar: dependencies: @@ -162,13 +162,13 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.3.0 - version: 4.3.0(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.3.0(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@types/vscode': specifier: 1.85.0 version: 1.85.0 '@vitejs/plugin-react-swc': specifier: ^4.3.1 - version: 4.3.1(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.3.1(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@vscode/vsce': specifier: ^3.9.1 version: 3.9.1 @@ -185,8 +185,8 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^7.3.1 - version: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + specifier: ^7.3.3 + version: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) website: dependencies: @@ -211,7 +211,7 @@ importers: devDependencies: '@tailwindcss/vite': specifier: ^4.3.0 - version: 4.3.0(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.3.0(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@types/react': specifier: ^19.2.14 version: 19.2.14 @@ -220,7 +220,7 @@ importers: version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react-swc': specifier: ^4.3.1 - version: 4.3.1(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.3.1(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) tailwindcss: specifier: ^4.3.0 version: 4.3.0 @@ -228,14 +228,14 @@ importers: specifier: ^6.0.3 version: 6.0.3 vite: - specifier: ^7.3.1 - version: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + specifier: ^7.3.3 + version: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) vite-react-ssg: specifier: 0.9.1-beta.1 - version: 0.9.1-beta.1(react-dom@19.2.6(react@19.2.6))(react-router-dom@6.30.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 0.9.1-beta.1(react-dom@19.2.6(react@19.2.6))(react-router-dom@6.30.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) vitest: specifier: ^4.1.6 - version: 4.1.6(jsdom@29.1.1)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + version: 4.1.6(jsdom@29.1.1)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) packages: @@ -2413,14 +2413,14 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - dockview-core@5.1.0: - resolution: {integrity: sha512-fqfr/mRUxL9Ap2gegGUW5EUL19nyvnHhXPTJ4PbbOjTBXu1g4rYN2gY9uSF3zfYdS3TVXY/jGXuGNKxoes1GHw==} + dockview-core@5.2.0: + resolution: {integrity: sha512-Gib8yhK2Ng7w47ASvbUZ7GdhBYbeXEflbIDxf/vobdQBMrN/QXmPaouSsSSkEx5YH0N8ap8GYljfvqjug7h5Fg==} - dockview-react@5.1.0: - resolution: {integrity: sha512-4rG7LNrKnq7YOlZyBGfUt9pAAu7XJIdpNm+4153k1e1xbXoX/smDl4W7sf8roBsZIEpEnVJJViypTH93fVVEBw==} + dockview-react@5.2.0: + resolution: {integrity: sha512-xJU5EiViiYYoP0ez5KxN8I+5CWSiPC27KVgVJBpRYRYJN6wKjMUpUqqSHwTlN1PGw5OzCu7UGQlUl1RQew74ag==} - dockview@5.1.0: - resolution: {integrity: sha512-ej/RvP0r8a5qVHa7U7f2D1JsxomxVFHJs4kbYWTfVBsUFvLmBu+WbjnerDLKV7K6ex76dKR8Kt54L5MAgxiu6A==} + dockview@5.2.0: + resolution: {integrity: sha512-Eh+SWt+AydcyeVmYkwP+Yxax0XpYSQfXsc4Rad9k+6QEddkSCn4hcjsdxp9lLsw/CaMy39jHawbDVxPMC4kvTg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -3855,8 +3855,8 @@ packages: styled-components: optional: true - vite@7.3.1: - resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + vite@7.3.3: + resolution: {integrity: sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -4614,11 +4614,11 @@ snapshots: '@isaacs/cliui@9.0.0': {} - '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@6.0.3)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@6.0.3)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0))': dependencies: glob: 13.0.6 react-docgen-typescript: 2.4.0(typescript@6.0.3) - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) optionalDependencies: typescript: 6.0.3 @@ -5036,25 +5036,25 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@storybook/builder-vite@10.4.0(esbuild@0.28.0)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0))': + '@storybook/builder-vite@10.4.0(esbuild@0.28.0)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0))': dependencies: - '@storybook/csf-plugin': 10.4.0(esbuild@0.28.0)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + '@storybook/csf-plugin': 10.4.0(esbuild@0.28.0)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) storybook: 10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) ts-dedent: 2.2.0 - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) transitivePeerDependencies: - esbuild - rollup - webpack - '@storybook/csf-plugin@10.4.0(esbuild@0.28.0)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0))': + '@storybook/csf-plugin@10.4.0(esbuild@0.28.0)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0))': dependencies: storybook: 10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) unplugin: 2.3.11 optionalDependencies: esbuild: 0.28.0 rollup: 4.60.0 - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) '@storybook/global@5.0.0': {} @@ -5072,11 +5072,11 @@ snapshots: '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@storybook/react-vite@10.4.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(esbuild@0.28.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.3)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0))': + '@storybook/react-vite@10.4.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(esbuild@0.28.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.3)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@6.0.3)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@6.0.3)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@rollup/pluginutils': 5.3.0(rollup@4.60.0) - '@storybook/builder-vite': 10.4.0(esbuild@0.28.0)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + '@storybook/builder-vite': 10.4.0(esbuild@0.28.0)(rollup@4.60.0)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@storybook/react': 10.4.0(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.3) empathic: 2.0.1 magic-string: 0.30.21 @@ -5086,7 +5086,7 @@ snapshots: resolve: 1.22.12 storybook: 10.4.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@testing-library/dom@10.4.1)(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tsconfig-paths: 4.2.0 - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -5233,12 +5233,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.0 '@tailwindcss/oxide-win32-x64-msvc': 4.3.0 - '@tailwindcss/vite@4.3.0(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0))': + '@tailwindcss/vite@4.3.0(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0))': dependencies: '@tailwindcss/node': 4.3.0 '@tailwindcss/oxide': 4.3.0 tailwindcss: 4.3.0 - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) '@tauri-apps/api@2.11.0': {} @@ -5415,11 +5415,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react-swc@4.3.1(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0))': + '@vitejs/plugin-react-swc@4.3.1(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0))': dependencies: '@rolldown/pluginutils': 1.0.1 '@swc/core': 1.15.33 - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) transitivePeerDependencies: - '@swc/helpers' @@ -5440,13 +5440,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.6(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0))': + '@vitest/mocker@4.1.6(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0))': dependencies: '@vitest/spy': 4.1.6 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -5897,17 +5897,17 @@ snapshots: detect-libc@2.1.2: {} - dockview-core@5.1.0: {} + dockview-core@5.2.0: {} - dockview-react@5.1.0(react@19.2.6): + dockview-react@5.2.0(react@19.2.6): dependencies: - dockview: 5.1.0(react@19.2.6) + dockview: 5.2.0(react@19.2.6) transitivePeerDependencies: - react - dockview@5.1.0(react@19.2.6): + dockview@5.2.0(react@19.2.6): dependencies: - dockview-core: 5.1.0 + dockview-core: 5.2.0 react: 19.2.6 doctrine@3.0.0: @@ -7446,7 +7446,7 @@ snapshots: version-range@4.15.0: {} - vite-react-ssg@0.9.1-beta.1(react-dom@19.2.6(react@19.2.6))(react-router-dom@6.30.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)): + vite-react-ssg@0.9.1-beta.1(react-dom@19.2.6(react@19.2.6))(react-router-dom@6.30.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)): dependencies: fs-extra: 11.3.5 html5parser: 2.0.2 @@ -7456,7 +7456,7 @@ snapshots: react: 19.2.6 react-dom: 19.2.6(react@19.2.6) react-helmet-async: 1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) yargs: 17.7.2 optionalDependencies: react-router-dom: 6.30.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -7466,7 +7466,7 @@ snapshots: - supports-color - utf-8-validate - vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0): + vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) @@ -7479,10 +7479,10 @@ snapshots: jiti: 2.7.0 lightningcss: 1.32.0 - vitest@4.1.6(jsdom@29.1.1)(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)): + vitest@4.1.6(jsdom@29.1.1)(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)): dependencies: '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(vite@7.3.1(jiti@2.7.0)(lightningcss@1.32.0)) + '@vitest/mocker': 4.1.6(vite@7.3.3(jiti@2.7.0)(lightningcss@1.32.0)) '@vitest/pretty-format': 4.1.6 '@vitest/runner': 4.1.6 '@vitest/snapshot': 4.1.6 @@ -7499,7 +7499,7 @@ snapshots: tinyexec: 1.1.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.1(jiti@2.7.0)(lightningcss@1.32.0) + vite: 7.3.3(jiti@2.7.0)(lightningcss@1.32.0) why-is-node-running: 2.3.0 optionalDependencies: jsdom: 29.1.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0c5c05a..9b9fc50 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,4 +4,15 @@ packages: - standalone/sidecar - vscode-ext - website +allowBuilds: + "@swc/core": true + "@vscode/vsce-sign": false + esbuild: true + keytar: false + node-pty: true + sharp: true +peerDependencyRules: + allowedVersions: + "react-helmet-async>react": ^19.0.0 + "react-helmet-async>react-dom": ^19.0.0 minimumReleaseAge: 1440 diff --git a/standalone/package.json b/standalone/package.json index 8a097ba..dd7c442 100644 --- a/standalone/package.json +++ b/standalone/package.json @@ -32,7 +32,7 @@ "jsdom": "^29.1.1", "tailwindcss": "^4.3.0", "typescript": "^6.0.3", - "vite": "^7.3.1", + "vite": "^7.3.3", "vitest": "^4.1.6" } } diff --git a/vscode-ext/package.json b/vscode-ext/package.json index 3a3091b..72aa96a 100644 --- a/vscode-ext/package.json +++ b/vscode-ext/package.json @@ -120,6 +120,6 @@ "ovsx": "^0.10.12", "tailwindcss": "^4.3.0", "typescript": "^6.0.3", - "vite": "^7.3.1" + "vite": "^7.3.3" } } diff --git a/website/package.json b/website/package.json index 3e1177e..69d4806 100644 --- a/website/package.json +++ b/website/package.json @@ -28,7 +28,7 @@ "@vitejs/plugin-react-swc": "^4.3.1", "tailwindcss": "^4.3.0", "typescript": "^6.0.3", - "vite": "^7.3.1", + "vite": "^7.3.3", "vite-react-ssg": "0.9.1-beta.1", "vitest": "^4.1.6" } diff --git a/website/scripts/generate-deps.js b/website/scripts/generate-deps.js index b7f4053..aead3ce 100644 --- a/website/scripts/generate-deps.js +++ b/website/scripts/generate-deps.js @@ -1,5 +1,4 @@ -import { execFileSync } from "node:child_process"; -import { existsSync, readFileSync, writeFileSync } from "node:fs"; +import { existsSync, readFileSync, realpathSync, writeFileSync } from "node:fs"; import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; @@ -13,48 +12,165 @@ const productDependencyFilters = [ "dormouse-lib", ]; -function getInstalledStoreDir() { - if (process.env.PNPM_STORE_DIR) return process.env.PNPM_STORE_DIR; - try { - const modulesYaml = readFileSync(resolve(repoRoot, "node_modules/.modules.yaml"), "utf-8"); - return modulesYaml.match(/"storeDir":\s*"([^"]+)"/)?.[1] ?? null; - } catch { - // Codex worktrees often do not have node_modules, but the shared pnpm - // store is still present under PNPM_HOME. - const pnpmHomeStore = process.env.PNPM_HOME ? resolve(process.env.PNPM_HOME, "store/v10") : null; - return pnpmHomeStore && existsSync(pnpmHomeStore) ? pnpmHomeStore : null; +function readJson(path) { + return JSON.parse(readFileSync(path, "utf-8")); +} + +function parseWorkspacePackageDirs() { + const workspaceYaml = readFileSync(resolve(repoRoot, "pnpm-workspace.yaml"), "utf-8"); + const dirs = []; + let inPackages = false; + for (const line of workspaceYaml.split(/\r?\n/)) { + if (/^packages:\s*$/.test(line)) { + inPackages = true; + continue; + } + if (inPackages && /^\S/.test(line)) break; + + const match = inPackages ? line.match(/^\s*-\s+["']?(.+?)["']?\s*$/) : null; + if (match) dirs.push(match[1]); } + return dirs; } -const storeDir = getInstalledStoreDir(); -const licenseArgs = [ - ...(storeDir ? [`--config.store-dir=${storeDir}`] : []), - ...productDependencyFilters.flatMap((filter) => ["--filter", filter]), - "licenses", - "list", - "--prod", - "--json", -]; -const raw = JSON.parse( - execFileSync("pnpm", licenseArgs, { cwd: repoRoot, encoding: "utf-8" }) -); +function getWorkspacePackages() { + return parseWorkspacePackageDirs().map((dir) => { + const absoluteDir = resolve(repoRoot, dir); + return { + dir: absoluteDir, + pkg: readJson(resolve(absoluteDir, "package.json")), + }; + }); +} + +function getDependencyNames(pkg) { + return [ + ...Object.keys(pkg.dependencies ?? {}), + ...Object.keys(pkg.optionalDependencies ?? {}), + ]; +} + +function getPackageJsonPath(fromDir, packageName) { + let dir = fromDir; + while (true) { + const candidate = resolve(dir, "node_modules", packageName, "package.json"); + if (existsSync(candidate)) return candidate; + + const parent = dirname(dir); + if (parent === dir) return null; + dir = parent; + } +} + +function formatAuthor(author) { + if (!author) return null; + if (typeof author === "string") return author; + return author.name || author.email || author.url || null; +} + +function normalizeRepositoryUrl(repository) { + const repositoryUrl = typeof repository === "string" ? repository : repository?.url; + if (!repositoryUrl) return null; + if (/^[\w.-]+\/[\w.-]+/.test(repositoryUrl)) { + return `https://github.com/${repositoryUrl}`; + } + + return repositoryUrl + .replace(/^git\+/, "") + .replace(/^git:\/\//, "https://") + .replace(/^git@github\.com:/, "https://github.com/") + .replace(/^ssh:\/\/git@github\.com\//, "https://github.com/") + .replace(/\.git$/, ""); +} + +function getHomepage(pkg) { + if (pkg.homepage) return pkg.homepage; + return normalizeRepositoryUrl(pkg.repository); +} + +const workspacePackages = getWorkspacePackages(); +const workspacePackagesByName = new Map(workspacePackages.map((workspacePackage) => [ + workspacePackage.pkg.name, + workspacePackage, +])); +const externalPackages = new Map(); +const visitedExternalPackagePaths = new Set(); +const visitedWorkspacePackageNames = new Set(); + +function addExternalPackage(pkg) { + const key = [ + pkg.name, + pkg.license ?? "", + formatAuthor(pkg.author) ?? "", + getHomepage(pkg) ?? "", + ].join("\0"); + const existing = externalPackages.get(key); + if (existing) { + existing.versions.add(pkg.version); + return; + } + + externalPackages.set(key, { + name: pkg.name, + versions: new Set([pkg.version]), + license: pkg.license ?? null, + author: formatAuthor(pkg.author), + homepage: getHomepage(pkg), + }); +} + +function scanWorkspacePackage(name) { + if (visitedWorkspacePackageNames.has(name)) return; + const workspacePackage = workspacePackagesByName.get(name); + if (!workspacePackage) { + throw new Error(`Workspace package "${name}" was not found`); + } + + visitedWorkspacePackageNames.add(name); + scanDependencies(workspacePackage.pkg, workspacePackage.dir); +} + +function scanDependency(fromDir, packageName) { + if (workspacePackagesByName.has(packageName)) { + scanWorkspacePackage(packageName); + return; + } + + const packageJsonPath = getPackageJsonPath(fromDir, packageName); + if (!packageJsonPath) { + throw new Error(`Could not resolve package.json for "${packageName}" from ${fromDir}`); + } + + const realPackageJsonPath = realpathSync(packageJsonPath); + if (visitedExternalPackagePaths.has(realPackageJsonPath)) return; + visitedExternalPackagePaths.add(realPackageJsonPath); + + const pkg = readJson(realPackageJsonPath); + addExternalPackage(pkg); + scanDependencies(pkg, dirname(realPackageJsonPath)); +} + +function scanDependencies(pkg, fromDir) { + for (const packageName of getDependencyNames(pkg)) { + scanDependency(fromDir, packageName); + } +} + +for (const packageName of productDependencyFilters) { + scanWorkspacePackage(packageName); +} const licenseAliases = { "Apache-2.0 OR MIT": "MIT OR Apache-2.0", }; -const deps = []; -for (const [license, packages] of Object.entries(raw)) { - for (const pkg of packages) { - deps.push({ - name: pkg.name, - version: pkg.versions.join(", "), - license: licenseAliases[license] ?? license, - author: pkg.author || null, - homepage: pkg.homepage || null, - }); - } -} +const deps = [...externalPackages.values()].map((pkg) => ({ + name: pkg.name, + version: [...pkg.versions].sort().join(", "), + license: pkg.license ? (licenseAliases[pkg.license] ?? pkg.license) : null, + author: pkg.author, + homepage: pkg.homepage, +})); // Merge in bundled theme extensions from OpenVSX const themeExtensions = JSON.parse(readFileSync(themeExtensionsPath, "utf-8")); diff --git a/website/src/data/dependencies.json b/website/src/data/dependencies.json index 1a73cfc..f15f3f8 100644 --- a/website/src/data/dependencies.json +++ b/website/src/data/dependencies.json @@ -18,53 +18,53 @@ "version": "2.3.5", "license": "MIT OR Apache-2.0", "author": "Tauri Apps Contributors", - "homepage": "https://github.com/tauri-apps/plugins-workspace#readme" + "homepage": "https://github.com/tauri-apps/plugins-workspace" }, { "name": "@tauri-apps/plugin-updater", "version": "2.10.1", "license": "MIT OR Apache-2.0", "author": "Tauri Apps Contributors", - "homepage": "https://github.com/tauri-apps/plugins-workspace#readme" + "homepage": "https://github.com/tauri-apps/plugins-workspace" }, { "name": "@xterm/addon-fit", "version": "0.12.0-beta.219", "license": "MIT", "author": "The xterm.js authors", - "homepage": "https://github.com/xtermjs/xterm.js/tree/master#readme" + "homepage": "https://github.com/xtermjs/xterm.js/tree/master/addons/addon-fit" }, { "name": "@xterm/xterm", "version": "6.1.0-beta.219", "license": "MIT", "author": "Christopher Jeffrey, SourceLair Private Company, xterm.js authors", - "homepage": "https://github.com/xtermjs/xterm.js#readme" + "homepage": "https://github.com/xtermjs/xterm.js" }, { "name": "clsx", "version": "2.1.1", "license": "MIT", "author": "Luke Edwards", - "homepage": "https://github.com/lukeed/clsx#readme" + "homepage": "https://github.com/lukeed/clsx" }, { "name": "dockview", - "version": "5.1.0", + "version": "5.2.0", "license": "MIT", "author": "https://github.com/mathuo", "homepage": "https://github.com/mathuo/dockview" }, { "name": "dockview-core", - "version": "5.1.0", + "version": "5.2.0", "license": "MIT", "author": "https://github.com/mathuo", "homepage": "https://github.com/mathuo/dockview" }, { "name": "dockview-react", - "version": "5.1.0", + "version": "5.2.0", "license": "MIT", "author": "https://github.com/mathuo", "homepage": "https://github.com/mathuo/dockview" @@ -73,7 +73,7 @@ "name": "fflate", "version": "0.8.3", "license": "MIT", - "author": "Arjun Barrett", + "author": "Arjun Barrett ", "homepage": "https://101arrowz.github.io/fflate" }, { @@ -81,7 +81,7 @@ "version": "3.3.1", "license": "MIT", "author": "Microsoft Corporation", - "homepage": "https://github.com/microsoft/node-jsonc-parser#readme" + "homepage": "https://github.com/microsoft/node-jsonc-parser" }, { "name": "node-addon-api", @@ -136,15 +136,8 @@ "name": "tailwind-variants", "version": "3.2.2", "license": "MIT", - "author": "Junior Garcia", - "homepage": "https://github.com/heroui-inc/tailwind-variants#readme" - }, - { - "name": "tailwindcss", - "version": "4.3.0", - "license": "MIT", - "author": "Tailwind Labs, Inc.", - "homepage": "https://tailwindcss.com" + "author": "Junior Garcia ", + "homepage": "https://github.com/heroui-inc/tailwind-variants" }, { "name": "VS Code built-in themes",