From 00e2484118334bdf6bb042c0f8adb73ef60c9c75 Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Fri, 4 Sep 2026 22:29:31 +0200 Subject: [PATCH 1/5] feat: automate dist recompilation on Renovate PRs and configure concurrency limit --- .gitea/workflows/recompile-dist.yaml | 53 +++++++++++++++++++++++ .gitea/workflows/test.yaml | 1 + .github/workflows/recompile-dist.yml | 63 ++++++++++++++++++++++++++++ GEMINI.md | 1 + __tests__/index.test.js | 2 +- renovate.json | 21 +++------- 6 files changed, 125 insertions(+), 16 deletions(-) create mode 100644 .gitea/workflows/recompile-dist.yaml create mode 100644 .github/workflows/recompile-dist.yml diff --git a/.gitea/workflows/recompile-dist.yaml b/.gitea/workflows/recompile-dist.yaml new file mode 100644 index 0000000..4107b1f --- /dev/null +++ b/.gitea/workflows/recompile-dist.yaml @@ -0,0 +1,53 @@ +name: Recompile dist/ on Renovate PR + +on: + pull_request: + types: [opened, synchronize] + paths: + - package.json + - pnpm-lock.yaml + - index.js + - monitor.js + +permissions: + contents: write + +jobs: + recompile: + runs-on: pi + if: | + (github.actor == 'renovate[bot]' || contains(github.head_ref, 'renovate/')) && + !contains(github.event.head_commit.message, '[skip compile]') + steps: + - name: Checkout PR Branch + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + ref: ${{ github.head_ref }} + fetch-depth: 0 + + - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: '20' + + - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 + + - name: Clean Install + run: pnpm install --frozen-lockfile --ignore-scripts + shell: bash + + - name: Build + run: pnpm run build + shell: bash + + - name: Commit dist/ + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add dist/ + if git diff --staged --quiet; then + echo "No changes to dist/" + else + git commit -m "chore: compile action bundle [skip compile]" + git push origin HEAD:${{ github.head_ref }} + fi + shell: bash diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 7fddd2c..cf2b559 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -2,6 +2,7 @@ name: Test on: push: + pull_request: workflow_dispatch: jobs: diff --git a/.github/workflows/recompile-dist.yml b/.github/workflows/recompile-dist.yml new file mode 100644 index 0000000..ff1b216 --- /dev/null +++ b/.github/workflows/recompile-dist.yml @@ -0,0 +1,63 @@ +name: Recompile dist/ on Renovate PR + +on: + pull_request: + types: [opened, synchronize] + paths: + - package.json + - pnpm-lock.yaml + - index.js + - monitor.js + +permissions: + contents: write + +jobs: + recompile: + # 1. Only run for Renovate branches + # 2. Never run if the last commit was already our automated build commit + if: | + (github.actor == 'renovate[bot]' || contains(github.head_ref, 'renovate/')) && + !startsWith(github.event.pull_request.head.label, 'recompile-dist') && + !contains(github.event.head_commit.message, '[skip compile]') + runs-on: ubuntu-latest + steps: + - name: Generate App Token + id: app-token + if: ${{ env.RECOMPILE_APP_ID != '' }} + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ secrets.RECOMPILE_APP_ID }} + private-key: ${{ secrets.RECOMPILE_APP_PRIVATE_KEY }} + env: + RECOMPILE_APP_ID: ${{ secrets.RECOMPILE_APP_ID }} + + - name: Checkout PR Branch + uses: actions/checkout@v4 + with: + token: ${{ steps.app-token.outputs.token || github.token }} + ref: ${{ github.head_ref }} + fetch-depth: 0 + + - uses: pnpm/action-setup@v3 + with: + version: 9 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + + - name: Clean Install (No Lifecycle Scripts) + run: pnpm install --frozen-lockfile --ignore-scripts + + - name: Build + run: pnpm run build + + - name: Commit dist/ + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_user_name: github-actions[bot] + commit_user_email: github-actions[bot]@users.noreply.github.com + commit_message: 'chore: compile action bundle [skip compile]' + file_pattern: dist/* diff --git a/GEMINI.md b/GEMINI.md index 48ee198..13e1be7 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -7,6 +7,7 @@ This repository is maintained by Gemini. * **Test-Driven Development (TDD):** Wherever possible, Test-Driven Development principles should be followed. Write tests before writing the code they are intended to validate. * **Pre-commit Hooks:** Ensure that `pre-commit` hooks are installed and active before making any commits. This can be done by running `pre-commit install` in your local repository. * **Note for Gemini:** Git commits trigger pre-commit hooks, which can take several seconds (or minutes) to complete. Checking the command status for git commit is only appropriate every 120s. +* **Package Manager Preferences:** Always use `pnpm` and `pnpx`. Never use `npm` or `npx` under any circumstances. All package management operations, script runs, and tool invocations must use `pnpm` / `pnpx`. ## Repository Comparison diff --git a/__tests__/index.test.js b/__tests__/index.test.js index e3ae099..461bbc6 100644 --- a/__tests__/index.test.js +++ b/__tests__/index.test.js @@ -1,4 +1,4 @@ -import { vi, describe, it, expect, beforeEach } from "vitest"; +import { vi, describe, it, expect, beforeEach, afterEach } from "vitest"; // Mock @actions/core for all tests in this file vi.mock("@actions/core", () => ({ diff --git a/renovate.json b/renovate.json index 5e58483..39399fd 100644 --- a/renovate.json +++ b/renovate.json @@ -5,20 +5,11 @@ "config:recommended", ":automergeLinters" ], - "packageRules": [ - { - "matchManagers": [ - "pnpm" - ], - "postUpgradeTasks": { - "commands": [ - "pnpm install --frozen-lockfile", - "pnpm run build" - ], - "fileFilters": [ - "dist/index.js" - ] - } - } + "rebaseWhen": "behind-base-branch", + "branchConcurrentLimit": 2, + "prConcurrentLimit": 2, + "gitIgnoredAuthors": [ + "github-actions[bot]@users.noreply.github.com", + "bot@horstenkamp.eu" ] } -- 2.54.0 From 08be5fe521a185e65d7ba7a666853d21b9a601d8 Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Fri, 4 Sep 2026 22:30:29 +0200 Subject: [PATCH 2/5] chore: remove .github workflows in favor of Gitea-only workflows --- .github/workflows/recompile-dist.yml | 63 ---------------------------- 1 file changed, 63 deletions(-) delete mode 100644 .github/workflows/recompile-dist.yml diff --git a/.github/workflows/recompile-dist.yml b/.github/workflows/recompile-dist.yml deleted file mode 100644 index ff1b216..0000000 --- a/.github/workflows/recompile-dist.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Recompile dist/ on Renovate PR - -on: - pull_request: - types: [opened, synchronize] - paths: - - package.json - - pnpm-lock.yaml - - index.js - - monitor.js - -permissions: - contents: write - -jobs: - recompile: - # 1. Only run for Renovate branches - # 2. Never run if the last commit was already our automated build commit - if: | - (github.actor == 'renovate[bot]' || contains(github.head_ref, 'renovate/')) && - !startsWith(github.event.pull_request.head.label, 'recompile-dist') && - !contains(github.event.head_commit.message, '[skip compile]') - runs-on: ubuntu-latest - steps: - - name: Generate App Token - id: app-token - if: ${{ env.RECOMPILE_APP_ID != '' }} - uses: actions/create-github-app-token@v1 - with: - app-id: ${{ secrets.RECOMPILE_APP_ID }} - private-key: ${{ secrets.RECOMPILE_APP_PRIVATE_KEY }} - env: - RECOMPILE_APP_ID: ${{ secrets.RECOMPILE_APP_ID }} - - - name: Checkout PR Branch - uses: actions/checkout@v4 - with: - token: ${{ steps.app-token.outputs.token || github.token }} - ref: ${{ github.head_ref }} - fetch-depth: 0 - - - uses: pnpm/action-setup@v3 - with: - version: 9 - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: pnpm - - - name: Clean Install (No Lifecycle Scripts) - run: pnpm install --frozen-lockfile --ignore-scripts - - - name: Build - run: pnpm run build - - - name: Commit dist/ - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_user_name: github-actions[bot] - commit_user_email: github-actions[bot]@users.noreply.github.com - commit_message: 'chore: compile action bundle [skip compile]' - file_pattern: dist/* -- 2.54.0 From 39ac4100e3ef87e35059d28e4042f2f95fbf99a1 Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Fri, 4 Sep 2026 22:35:15 +0200 Subject: [PATCH 3/5] chore: explicitly pass GITHUB_TOKEN to checkout and document repository-level write permissions --- .gitea/workflows/recompile-dist.yaml | 1 + GEMINI.md | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/.gitea/workflows/recompile-dist.yaml b/.gitea/workflows/recompile-dist.yaml index 4107b1f..3532bc3 100644 --- a/.gitea/workflows/recompile-dist.yaml +++ b/.gitea/workflows/recompile-dist.yaml @@ -22,6 +22,7 @@ jobs: - name: Checkout PR Branch uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: + token: ${{ secrets.GITHUB_TOKEN }} ref: ${{ github.head_ref }} fetch-depth: 0 diff --git a/GEMINI.md b/GEMINI.md index 13e1be7..d623961 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -33,3 +33,8 @@ The Gitea workflow does the following: 2. Sets up Node.js and pnpm. 3. Installs the dependencies using `pnpm install`. 4. Runs the tests using `pnpm test`. + +### Automated Recompilation & Permissions + +* The automated recompilation workflow (`.gitea/workflows/recompile-dist.yaml`) recompiles `dist/index.js` on Renovate PRs and requires `contents: write` permissions to push back to the branch. +* Ensure that the Gitea repository workflow settings have write permissions enabled (**Settings** ➔ **Actions** ➔ **General** ➔ **Workflow permissions** ➔ **Read and write permissions**). -- 2.54.0 From 1e44b85b6a65e6f577eb62ddbb57124b10c344c1 Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Fri, 4 Sep 2026 22:39:07 +0200 Subject: [PATCH 4/5] perf: add pnpm store caching to recompile and test workflows --- .gitea/workflows/recompile-dist.yaml | 5 +++-- .gitea/workflows/test.yaml | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/recompile-dist.yaml b/.gitea/workflows/recompile-dist.yaml index 3532bc3..3d7db67 100644 --- a/.gitea/workflows/recompile-dist.yaml +++ b/.gitea/workflows/recompile-dist.yaml @@ -26,11 +26,12 @@ jobs: ref: ${{ github.head_ref }} fetch-depth: 0 + - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 + - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: '20' - - - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 + cache: pnpm - name: Clean Install run: pnpm install --frozen-lockfile --ignore-scripts diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index cf2b559..a35a430 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -11,10 +11,11 @@ jobs: runs-on: pi steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: '24' - - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 + cache: pnpm - run: pnpm install --frozen-lockfile shell: bash - run: pnpm test -- 2.54.0 From 4a5b36c4a221a3e47eb6f8244a0fd710d562fdb8 Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Fri, 4 Sep 2026 23:16:26 +0200 Subject: [PATCH 5/5] chore(deps): update vitest monorepo to v4.1.11 (#121) Test PR to verify automated recompilation of dist/. Reviewed-on: https://git.horstenkamp.eu/Screeps/screeps-deploy-action/pulls/121 Reviewed-by: LLMReview <27+autoreview@noreplay.horstenkamp.eu> --- .gitea/workflows/recompile-dist.yaml | 2 +- package.json | 6 +- pnpm-lock.yaml | 112 +++++++++++++-------------- 3 files changed, 60 insertions(+), 60 deletions(-) diff --git a/.gitea/workflows/recompile-dist.yaml b/.gitea/workflows/recompile-dist.yaml index 3d7db67..a08c269 100644 --- a/.gitea/workflows/recompile-dist.yaml +++ b/.gitea/workflows/recompile-dist.yaml @@ -30,7 +30,7 @@ jobs: - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: - node-version: '20' + node-version: '22' cache: pnpm - name: Clean Install diff --git a/package.json b/package.json index 83ae18e..abbf729 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.2.1", "description": "Deploys screeps code to the official game or a private server.", "type": "module", - "packageManager": "pnpm@11.21.0", + "packageManager": "pnpm@11.25.0", "main": "index.js", "scripts": { "start": "node index.js", @@ -18,7 +18,7 @@ }, "devDependencies": { "@vercel/ncc": "^0.44.1", - "@vitest/coverage-v8": "^4.1.10", - "vitest": "^4.1.10" + "@vitest/coverage-v8": "^4.1.11", + "vitest": "^4.1.11" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d73005a..04bec50 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,11 +25,11 @@ importers: specifier: ^0.44.1 version: 0.44.1 '@vitest/coverage-v8': - specifier: ^4.1.10 - version: 4.1.10(vitest@4.1.10) + specifier: ^4.1.11 + version: 4.1.11(vitest@4.1.11) vitest: - specifier: ^4.1.10 - version: 4.1.10(@vitest/coverage-v8@4.1.10)(vite@8.2.1(yaml@2.9.0)) + specifier: ^4.1.11 + version: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.1(yaml@2.9.0)) packages: @@ -207,20 +207,20 @@ packages: resolution: {integrity: sha512-cUjIE5P2YY1n+Kt9rFIazMMpGoPn1Fic04rOmTkElMkiDP5oszGfERMpo2shVkFKDL7rVppdM2pqJKC59shQWQ==} hasBin: true - '@vitest/coverage-v8@4.1.10': - resolution: {integrity: sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==} + '@vitest/coverage-v8@4.1.11': + resolution: {integrity: sha512-8MVGEFnJIcdGjcbfKmeq8z0pZHH0JlVtoVZH9Q/qwUp6wyFnEJUBMrw9DCaj+ra3vShGmhavjalMIhPNxZAUcw==} peerDependencies: - '@vitest/browser': 4.1.10 - vitest: 4.1.10 + '@vitest/browser': 4.1.11 + vitest: 4.1.11 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.10': - resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} + '@vitest/expect@4.1.11': + resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==} - '@vitest/mocker@4.1.10': - resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} + '@vitest/mocker@4.1.11': + resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -230,20 +230,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.10': - resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} + '@vitest/pretty-format@4.1.11': + resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==} - '@vitest/runner@4.1.10': - resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} + '@vitest/runner@4.1.11': + resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==} - '@vitest/snapshot@4.1.10': - resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} + '@vitest/snapshot@4.1.11': + resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==} - '@vitest/spy@4.1.10': - resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} + '@vitest/spy@4.1.11': + resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==} - '@vitest/utils@4.1.10': - resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} + '@vitest/utils@4.1.11': + resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==} argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -712,20 +712,20 @@ packages: yaml: optional: true - vitest@4.1.10: - resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} + vitest@4.1.11: + resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.10 - '@vitest/browser-preview': 4.1.10 - '@vitest/browser-webdriverio': 4.1.10 - '@vitest/coverage-istanbul': 4.1.10 - '@vitest/coverage-v8': 4.1.10 - '@vitest/ui': 4.1.10 + '@vitest/browser-playwright': 4.1.11 + '@vitest/browser-preview': 4.1.11 + '@vitest/browser-webdriverio': 4.1.11 + '@vitest/coverage-istanbul': 4.1.11 + '@vitest/coverage-v8': 4.1.11 + '@vitest/ui': 4.1.11 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -908,10 +908,10 @@ snapshots: '@vercel/ncc@0.44.1': {} - '@vitest/coverage-v8@4.1.10(vitest@4.1.10)': + '@vitest/coverage-v8@4.1.11(vitest@4.1.11)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.10 + '@vitest/utils': 4.1.11 ast-v8-to-istanbul: 1.0.5 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -920,46 +920,46 @@ snapshots: obug: 2.1.4 std-env: 4.2.0 tinyrainbow: 3.1.1 - vitest: 4.1.10(@vitest/coverage-v8@4.1.10)(vite@8.2.1(yaml@2.9.0)) + vitest: 4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.1(yaml@2.9.0)) - '@vitest/expect@4.1.10': + '@vitest/expect@4.1.11': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.10 - '@vitest/utils': 4.1.10 + '@vitest/spy': 4.1.11 + '@vitest/utils': 4.1.11 chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.10(vite@8.2.1(yaml@2.9.0))': + '@vitest/mocker@4.1.11(vite@8.2.1(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.10 + '@vitest/spy': 4.1.11 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 8.2.1(yaml@2.9.0) - '@vitest/pretty-format@4.1.10': + '@vitest/pretty-format@4.1.11': dependencies: tinyrainbow: 3.1.1 - '@vitest/runner@4.1.10': + '@vitest/runner@4.1.11': dependencies: - '@vitest/utils': 4.1.10 + '@vitest/utils': 4.1.11 pathe: 2.0.3 - '@vitest/snapshot@4.1.10': + '@vitest/snapshot@4.1.11': dependencies: - '@vitest/pretty-format': 4.1.10 - '@vitest/utils': 4.1.10 + '@vitest/pretty-format': 4.1.11 + '@vitest/utils': 4.1.11 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.10': {} + '@vitest/spy@4.1.11': {} - '@vitest/utils@4.1.10': + '@vitest/utils@4.1.11': dependencies: - '@vitest/pretty-format': 4.1.10 + '@vitest/pretty-format': 4.1.11 convert-source-map: 2.0.0 tinyrainbow: 3.1.1 @@ -1360,15 +1360,15 @@ snapshots: fsevents: 2.3.3 yaml: 2.9.0 - vitest@4.1.10(@vitest/coverage-v8@4.1.10)(vite@8.2.1(yaml@2.9.0)): + vitest@4.1.11(@vitest/coverage-v8@4.1.11)(vite@8.2.1(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.2.1(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.10 - '@vitest/runner': 4.1.10 - '@vitest/snapshot': 4.1.10 - '@vitest/spy': 4.1.10 - '@vitest/utils': 4.1.10 + '@vitest/expect': 4.1.11 + '@vitest/mocker': 4.1.11(vite@8.2.1(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.11 + '@vitest/runner': 4.1.11 + '@vitest/snapshot': 4.1.11 + '@vitest/spy': 4.1.11 + '@vitest/utils': 4.1.11 es-module-lexer: 2.3.1 expect-type: 1.4.0 magic-string: 0.30.21 @@ -1383,7 +1383,7 @@ snapshots: vite: 8.2.1(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@vitest/coverage-v8': 4.1.10(vitest@4.1.10) + '@vitest/coverage-v8': 4.1.11(vitest@4.1.11) transitivePeerDependencies: - msw -- 2.54.0