From 2751fb4d2f801163fb44b2ebe14a1ee00e71f0c1 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Fri, 20 Feb 2026 16:03:42 +0100 Subject: [PATCH] adds component explorer --- .github/skills/update-screenshots/SKILL.md | 87 ++ .github/workflows/screenshot-test.yml | 80 ++ .gitignore | 2 + build/vite/package-lock.json | 182 +--- build/vite/package.json | 11 +- build/vite/vite.config.ts | 5 +- package-lock.json | 876 +++++++++++++++++- package.json | 6 +- .../viewModel/minimapTokensColorTracker.ts | 8 +- .../componentFixtures}/aiStats.fixture.ts | 10 +- .../componentFixtures}/baseUI.fixture.ts | 98 +- .../componentFixtures}/codeEditor.fixture.ts | 7 +- .../componentFixtures}/fixtureUtils.ts | 188 ++-- .../inlineCompletions.fixture.ts | 34 +- .../baseline/aiStats/AiStatsHover/Dark.png | Bin 0 -> 8827 bytes .../baseline/aiStats/AiStatsHover/Light.png | Bin 0 -> 8388 bytes .../aiStats/AiStatsHoverNoData/Dark.png | Bin 0 -> 7537 bytes .../aiStats/AiStatsHoverNoData/Light.png | Bin 0 -> 7262 bytes .../baseline/baseUI/ActionBar/Dark.png | Bin 0 -> 3888 bytes .../baseline/baseUI/ActionBar/Light.png | Bin 0 -> 3917 bytes .../baseline/baseUI/ButtonBar/Dark.png | Bin 0 -> 4161 bytes .../baseline/baseUI/ButtonBar/Light.png | Bin 0 -> 4209 bytes .../baseline/baseUI/Buttons/Dark.png | Bin 0 -> 5522 bytes .../baseline/baseUI/Buttons/Light.png | Bin 0 -> 5611 bytes .../baseline/baseUI/CountBadges/Dark.png | Bin 0 -> 1912 bytes .../baseline/baseUI/CountBadges/Light.png | Bin 0 -> 1806 bytes .../baseUI/HighlightedLabels/Dark.png | Bin 0 -> 7104 bytes .../baseUI/HighlightedLabels/Light.png | Bin 0 -> 6425 bytes .../baseline/baseUI/InputBoxes/Dark.png | Bin 0 -> 5238 bytes .../baseline/baseUI/InputBoxes/Light.png | Bin 0 -> 5116 bytes .../baseline/baseUI/ProgressBars/Dark.png | Bin 0 -> 5446 bytes .../baseline/baseUI/ProgressBars/Light.png | Bin 0 -> 5340 bytes .../baseline/baseUI/Toggles/Dark.png | Bin 0 -> 3709 bytes .../baseline/baseUI/Toggles/Light.png | Bin 0 -> 3658 bytes .../baseline/codeEditor/CodeEditor/Dark.png | Bin 0 -> 17804 bytes .../baseline/codeEditor/CodeEditor/Light.png | Bin 0 -> 17805 bytes .../inlineCompletions/InsertionView/Dark.png | Bin 0 -> 6017 bytes .../inlineCompletions/InsertionView/Light.png | Bin 0 -> 6038 bytes .../inlineCompletions/SideBySideView/Dark.png | Bin 0 -> 6697 bytes .../SideBySideView/Light.png | Bin 0 -> 6513 bytes .../WordReplacementView/Dark.png | Bin 0 -> 5570 bytes .../WordReplacementView/Light.png | Bin 0 -> 5618 bytes .../component-explorer-diff.json | 30 + .../componentFixtures/component-explorer.json | 16 + 44 files changed, 1323 insertions(+), 317 deletions(-) create mode 100644 .github/skills/update-screenshots/SKILL.md create mode 100644 .github/workflows/screenshot-test.yml rename {build/vite/fixtures => src/vs/workbench/test/browser/componentFixtures}/aiStats.fixture.ts (89%) rename {build/vite/fixtures => src/vs/workbench/test/browser/componentFixtures}/baseUI.fixture.ts (94%) rename {build/vite/fixtures/editor => src/vs/workbench/test/browser/componentFixtures}/codeEditor.fixture.ts (84%) rename {build/vite/fixtures => src/vs/workbench/test/browser/componentFixtures}/fixtureUtils.ts (66%) rename {build/vite/fixtures/editor => src/vs/workbench/test/browser/componentFixtures}/inlineCompletions.fixture.ts (74%) create mode 100644 test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHover/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHover/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHoverNoData/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHoverNoData/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/ActionBar/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/ActionBar/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/ButtonBar/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/ButtonBar/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/Buttons/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/Buttons/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/CountBadges/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/CountBadges/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/HighlightedLabels/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/HighlightedLabels/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/InputBoxes/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/InputBoxes/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/ProgressBars/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/ProgressBars/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/Toggles/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/baseUI/Toggles/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/codeEditor/CodeEditor/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/codeEditor/CodeEditor/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/inlineCompletions/InsertionView/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/inlineCompletions/InsertionView/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/inlineCompletions/SideBySideView/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/inlineCompletions/SideBySideView/Light.png create mode 100644 test/componentFixtures/.screenshots/baseline/inlineCompletions/WordReplacementView/Dark.png create mode 100644 test/componentFixtures/.screenshots/baseline/inlineCompletions/WordReplacementView/Light.png create mode 100644 test/componentFixtures/component-explorer-diff.json create mode 100644 test/componentFixtures/component-explorer.json diff --git a/.github/skills/update-screenshots/SKILL.md b/.github/skills/update-screenshots/SKILL.md new file mode 100644 index 00000000000..f4cac151d61 --- /dev/null +++ b/.github/skills/update-screenshots/SKILL.md @@ -0,0 +1,87 @@ +--- +name: update-screenshots +description: Download screenshot baselines from the latest CI run and commit them. Use when asked to update, accept, or refresh component screenshot baselines from CI, or after the screenshot-test GitHub Action reports differences. This skill should be run as a subagent. +--- + +# Update Component Screenshots from CI + +When asked to update, accept, or refresh screenshot baselines from CI — or when the `Screenshot Tests` GitHub Action has failed with screenshot differences — follow this procedure to download the CI-generated screenshots and commit them as the new baselines. + +## Why CI Screenshots? + +Screenshots captured locally may differ from CI due to platform differences (fonts, rendering, DPI). The CI (Linux, ubuntu-latest) is the source of truth. This skill downloads the CI-produced screenshots and commits them as baselines. + +## Prerequisites + +- The `gh` CLI must be authenticated (`gh auth status`). +- The `Screenshot Tests` GitHub Action must have run and produced a `screenshot-diff` artifact. + +## Procedure + +### 1. Find the latest screenshot artifact + +If the user provides a specific run ID or PR number, use that. Otherwise, find the latest run: + +```bash +# For a specific PR: +gh run list --workflow screenshot-test.yml --branch --limit 5 --json databaseId,status,conclusion,headBranch + +# For the current branch: +gh run list --workflow screenshot-test.yml --branch $(git branch --show-current) --limit 5 --json databaseId,status,conclusion +``` + +Pick the most recent run that has a `screenshot-diff` artifact (runs where screenshots matched won't have one). + +### 2. Download the artifact + +```bash +gh run download --name screenshot-diff --dir .tmp/screenshot-diff +``` + +This downloads: +- `test/componentFixtures/.screenshots/current/` — the CI-captured screenshots +- `test/componentFixtures/.screenshots/report.json` — structured diff report +- `test/componentFixtures/.screenshots/report.md` — human-readable diff report + +### 3. Review the changes + +Show the user what changed by reading the markdown report: + +```bash +cat .tmp/screenshot-diff/test/componentFixtures/.screenshots/report.md +``` + +### 4. Copy CI screenshots to baseline + +```bash +# Remove old baselines and replace with CI screenshots +rm -rf test/componentFixtures/.screenshots/baseline/ +cp -r .tmp/screenshot-diff/test/componentFixtures/.screenshots/current/ test/componentFixtures/.screenshots/baseline/ +``` + +### 5. Clean up + +```bash +rm -rf .tmp/screenshot-diff +``` + +### 6. Stage and commit + +```bash +git add test/componentFixtures/.screenshots/baseline/ +git commit -m "update screenshot baselines from CI" +``` + +### 7. Verify + +Confirm the baselines are updated by listing the files: + +```bash +git diff --stat HEAD~1 +``` + +## Notes + +- If no `screenshot-diff` artifact exists, the screenshots already match the baselines — no update needed. +- The `--filter` option on the CLI can be used to selectively accept only some fixtures if needed. +- After committing updated baselines, the next CI run should pass the screenshot comparison. diff --git a/.github/workflows/screenshot-test.yml b/.github/workflows/screenshot-test.yml new file mode 100644 index 00000000000..05b22c79d04 --- /dev/null +++ b/.github/workflows/screenshot-test.yml @@ -0,0 +1,80 @@ +name: Screenshot Tests + +on: + push: + branches: [main] + pull_request: + branches: + - main + - 'release/*' + +permissions: + contents: read + +concurrency: + group: screenshots-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +jobs: + screenshots: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version-file: .nvmrc + + - name: Install dependencies + run: npm ci + env: + ELECTRON_SKIP_BINARY_DOWNLOAD: 1 + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Install build/vite dependencies + run: npm ci + working-directory: build/vite + + - name: Install Playwright Chromium + run: npx playwright install chromium + + - name: Capture screenshots + run: npx component-explorer screenshot --project ./test/componentFixtures/component-explorer.json + + - name: Compare screenshots + id: compare + run: | + npx component-explorer screenshot:compare \ + --project ./test/componentFixtures \ + --report ./test/componentFixtures/.screenshots/report.json \ + --report-markdown ./test/componentFixtures/.screenshots/report.md + continue-on-error: true + + - name: Upload screenshot report + if: steps.compare.outcome == 'failure' + uses: actions/upload-artifact@v4 + with: + name: screenshot-diff + path: | + test/componentFixtures/.screenshots/current/ + test/componentFixtures/.screenshots/report.json + test/componentFixtures/.screenshots/report.md + + - name: Post summary + if: always() + run: | + if [ -f test/componentFixtures/.screenshots/report.md ]; then + cat test/componentFixtures/.screenshots/report.md >> $GITHUB_STEP_SUMMARY + elif [ "${{ steps.compare.outcome }}" == "success" ]; then + echo "## Screenshots ✅" >> $GITHUB_STEP_SUMMARY + echo "No visual changes detected." >> $GITHUB_STEP_SUMMARY + fi + + - name: Fail if screenshots changed + if: steps.compare.outcome == 'failure' + run: | + echo "::error::Screenshot differences detected. Download the 'screenshot-diff' artifact to review changes." + exit 1 diff --git a/.gitignore b/.gitignore index 814f7eb1787..7359fbeaa22 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,5 @@ product.overrides.json .vscode-test vscode-telemetry-docs/ test-output.json +test/componentFixtures/.screenshots/* +!test/componentFixtures/.screenshots/baseline/ diff --git a/build/vite/package-lock.json b/build/vite/package-lock.json index 4db5338149d..f33d6344399 100644 --- a/build/vite/package-lock.json +++ b/build/vite/package-lock.json @@ -8,9 +8,9 @@ "name": "@vscode/sample-source", "version": "0.0.0", "devDependencies": { - "@vscode/component-explorer": "next", - "@vscode/component-explorer-vite-plugin": "next", + "@vscode/component-explorer-vite-plugin": "^0.1.1-10", "@vscode/rollup-plugin-esm-url": "^1.0.1-1", + "rollup": "*", "vite": "npm:rolldown-vite@latest" } }, @@ -325,8 +325,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-android-arm64": { "version": "4.57.1", @@ -340,8 +339,7 @@ "optional": true, "os": [ "android" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-arm64": { "version": "4.57.1", @@ -355,8 +353,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-darwin-x64": { "version": "4.57.1", @@ -370,8 +367,7 @@ "optional": true, "os": [ "darwin" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-arm64": { "version": "4.57.1", @@ -385,8 +381,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-freebsd-x64": { "version": "4.57.1", @@ -400,8 +395,7 @@ "optional": true, "os": [ "freebsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.57.1", @@ -415,8 +409,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { "version": "4.57.1", @@ -430,8 +423,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { "version": "4.57.1", @@ -445,8 +437,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { "version": "4.57.1", @@ -460,8 +451,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { "version": "4.57.1", @@ -475,8 +465,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { "version": "4.57.1", @@ -490,8 +479,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { "version": "4.57.1", @@ -505,8 +493,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { "version": "4.57.1", @@ -520,8 +507,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { "version": "4.57.1", @@ -535,8 +521,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { "version": "4.57.1", @@ -550,8 +535,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { "version": "4.57.1", @@ -565,8 +549,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.57.1", @@ -580,8 +563,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.57.1", @@ -595,8 +577,7 @@ "optional": true, "os": [ "linux" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openbsd-x64": { "version": "4.57.1", @@ -610,8 +591,7 @@ "optional": true, "os": [ "openbsd" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-openharmony-arm64": { "version": "4.57.1", @@ -625,8 +605,7 @@ "optional": true, "os": [ "openharmony" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { "version": "4.57.1", @@ -640,8 +619,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { "version": "4.57.1", @@ -655,8 +633,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { "version": "4.57.1", @@ -670,8 +647,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.57.1", @@ -685,8 +661,7 @@ "optional": true, "os": [ "win32" - ], - "peer": true + ] }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", @@ -704,23 +679,12 @@ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@vscode/component-explorer": { - "version": "0.1.1-2", - "resolved": "https://registry.npmjs.org/@vscode/component-explorer/-/component-explorer-0.1.1-2.tgz", - "integrity": "sha512-2VMoXLnDBk+hKrhw+iGUsEjnCd1YiiZqe+1LdQIKdk16zqYRtJ5iO6yDxZ4cKy3Wphd+qLDUWmZSULNtKioMrQ==", - "dev": true, - "peerDependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0" - } + "license": "MIT" }, "node_modules/@vscode/component-explorer-vite-plugin": { - "version": "0.1.1-2", - "resolved": "https://registry.npmjs.org/@vscode/component-explorer-vite-plugin/-/component-explorer-vite-plugin-0.1.1-2.tgz", - "integrity": "sha512-iYSp8shDZEJJrjMWGneWyjFbFyED5Og74c9h5XBmVPZBDN4INfOTmPlC+HYTv/CL5+NFxpl91CdtacCmqz2EXw==", + "version": "0.1.1-10", + "resolved": "https://registry.npmjs.org/@vscode/component-explorer-vite-plugin/-/component-explorer-vite-plugin-0.1.1-10.tgz", + "integrity": "sha512-1F2Ier7lpFPvYzWxyNCBy3qYzSwRyTw6k3pm+l6DBMMNT+OTnCZ3+awa7wtijZXMc4O1WooxswjrjBu++Oqftg==", "dev": true, "dependencies": { "tinyglobby": "^0.2.0" @@ -769,9 +733,9 @@ } }, "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -783,14 +747,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/lightningcss": { "version": "1.31.1", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.31.1.tgz", @@ -1052,20 +1008,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -1134,35 +1076,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, "node_modules/rolldown": { "version": "1.0.0-beta.53", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.53.tgz", @@ -1201,7 +1114,6 @@ "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -1241,17 +1153,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1363,6 +1264,21 @@ "optional": true } } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } } } } diff --git a/build/vite/package.json b/build/vite/package.json index 9800e54af40..e2f761ee794 100644 --- a/build/vite/package.json +++ b/build/vite/package.json @@ -9,14 +9,9 @@ "preview": "vite preview" }, "devDependencies": { + "@vscode/component-explorer-vite-plugin": "^0.1.1-10", "@vscode/rollup-plugin-esm-url": "^1.0.1-1", - "vite": "npm:rolldown-vite@latest", - "@vscode/component-explorer": "next", - "@vscode/component-explorer-vite-plugin": "next" - }, - "overrides": { - "@vscode/component-explorer-vite-plugin": { - "vite": "$vite" - } + "rollup": "*", + "vite": "npm:rolldown-vite@latest" } } diff --git a/build/vite/vite.config.ts b/build/vite/vite.config.ts index 6cdde88076a..d6d8931fa31 100644 --- a/build/vite/vite.config.ts +++ b/build/vite/vite.config.ts @@ -170,13 +170,13 @@ export default defineConfig({ createHotClassSupport(), componentExplorer({ logLevel: 'verbose', - include: 'build/vite/**/*.fixture.ts', + include: join(__dirname, '../../src/**/*.fixture.ts'), }), ], customLogger: logger, resolve: { alias: { - '~@vscode/codicons': '/node_modules/@vscode/codicons', + '~@vscode/codicons': join(__dirname, '../../node_modules/@vscode/codicons'), } }, esbuild: { @@ -198,7 +198,6 @@ export default defineConfig({ server: { cors: true, port: 5199, - origin: 'http://localhost:5199', fs: { allow: [ // To allow loading from sources, not needed when loading monaco-editor from npm package diff --git a/package-lock.json b/package-lock.json index 32c79495802..85555984471 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,6 +84,8 @@ "@types/yazl": "^2.4.2", "@typescript-eslint/utils": "^8.45.0", "@typescript/native-preview": "^7.0.0-dev.20260130", + "@vscode/component-explorer": "^0.1.1-10", + "@vscode/component-explorer-cli": "^0.1.1-6", "@vscode/gulp-electron": "https://github.com/microsoft/vscode-gulp-electron.git#405e3df0e4e9c37fcf549cbe6f5cef8d5ba5ddff", "@vscode/l10n-dev": "0.0.35", "@vscode/telemetry-extractor": "^1.10.2", @@ -1144,6 +1146,19 @@ "xtend": "~4.0.1" } }, + "node_modules/@hono/node-server": { + "version": "1.19.9", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz", + "integrity": "sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "hono": "^4" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1491,6 +1506,89 @@ "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.9.tgz", "integrity": "sha512-n1VPsljTSkthsAFYdiWfC+DKzK2WwcRp83Y1YAqdX552BstvsDjft9YXppjUzp11BPsapDoO1LDgrDB0XVsfNQ==" }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.26.0.tgz", + "integrity": "sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@hono/node-server": "^1.19.9", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "hono": "^4.11.4", + "jose": "^6.1.3", + "json-schema-typed": "^8.0.2", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.25 || ^4.0", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@cfworker/json-schema": "^4.1.1", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "@cfworker/json-schema": { + "optional": true + }, + "zod": { + "optional": false + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2966,6 +3064,45 @@ "integrity": "sha512-5MfjQ+LBXnzLB/+nfpB8EpvHPdUkoW57cFcrIAHz52L/sBjwOxZER3+K2+nwb+/ejAiPmogTBDoJP/NM85uBtQ==", "license": "CC-BY-4.0" }, + "node_modules/@vscode/component-explorer": { + "version": "0.1.1-10", + "resolved": "https://registry.npmjs.org/@vscode/component-explorer/-/component-explorer-0.1.1-10.tgz", + "integrity": "sha512-Nokjk2DB1hgKeUL1FW5dHfXySgj17BgxcsiyzcG6etdFIbMpzv85nMQxrW/88aklgmJPrRVefMRHFYSds/F3/g==", + "dev": true, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "node_modules/@vscode/component-explorer-cli": { + "version": "0.1.1-6", + "resolved": "https://registry.npmjs.org/@vscode/component-explorer-cli/-/component-explorer-cli-0.1.1-6.tgz", + "integrity": "sha512-OnypYKeBH8ZZh6++2NvVo9lPXFvHpIik6Y/KAa/UVMp4hI58KlQ0zEOWszvwR1i6mESn+BRWERFbQbNlKLec5g==", + "dev": true, + "dependencies": { + "@modelcontextprotocol/sdk": "^1.26.0", + "clipanion": "^4.0.0-rc.4", + "express": "^5.0.0", + "zod": "^4.3.6" + }, + "bin": { + "component-explorer": "dist/index.js" + }, + "peerDependencies": { + "playwright": ">=1.40.0", + "vite": ">=5.0.0" + } + }, + "node_modules/@vscode/component-explorer-cli/node_modules/zod": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@vscode/deviceid": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@vscode/deviceid/-/deviceid-0.1.4.tgz", @@ -4833,6 +4970,31 @@ "readable-stream": "^3.4.0" } }, + "node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -5093,6 +5255,23 @@ "node": ">= 0.4" } }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -5394,6 +5573,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/clipanion": { + "version": "4.0.0-rc.4", + "resolved": "https://registry.npmjs.org/clipanion/-/clipanion-4.0.0-rc.4.tgz", + "integrity": "sha512-CXkMQxU6s9GklO/1f714dkKBMu1lopS1WFF0B8o4AxPykR1hpozxSiUZ5ZUeBjfPgCWqbcNOtZVFhB8Lkfp1+Q==", + "dev": true, + "license": "MIT", + "workspaces": [ + "website" + ], + "dependencies": { + "typanion": "^3.8.0" + }, + "peerDependencies": { + "typanion": "*" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -5765,6 +5960,16 @@ "node": ">= 0.6" } }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, "node_modules/cookies": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", @@ -5871,6 +6076,24 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -6067,9 +6290,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -7128,6 +7351,16 @@ "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", @@ -7162,6 +7395,29 @@ "node": ">=0.8.x" } }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -7312,6 +7568,154 @@ "node": ">=0.10.0" } }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.2.1.tgz", + "integrity": "sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "10.0.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/express-rate-limit/node_modules/ip-address": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/express/node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", @@ -7500,6 +7904,23 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fastest-levenshtein": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", @@ -7608,6 +8029,28 @@ "node": ">=8" } }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/find-parent-dir": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz", @@ -7959,6 +8402,16 @@ "node": ">= 18" } }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -10191,6 +10644,16 @@ "node": ">=0.10.0" } }, + "node_modules/hono": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.0.tgz", + "integrity": "sha512-NekXntS5M94pUfiVZ8oXXK/kkri+5WpX2/Ik+LVsl+uvw+soj4roXIsPqO+XsWrAw20mOzaXOZf3Q7PfB9A/IA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -10405,6 +10868,23 @@ "node": ">=0.8.0" } }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", @@ -10556,6 +11036,16 @@ "node": ">= 12" } }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", @@ -11136,6 +11626,16 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jose": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.1.3.tgz", + "integrity": "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-base64": { "version": "3.7.7", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", @@ -11265,6 +11765,13 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -11815,6 +12322,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -12215,6 +12735,19 @@ "node": ">= 0.10.0" } }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", @@ -13183,6 +13716,19 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -13889,6 +14435,16 @@ "node": ">=0.10.0" } }, + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -14270,6 +14826,20 @@ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -14361,6 +14931,22 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -14397,6 +14983,32 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -14425,6 +15037,33 @@ "integrity": "sha512-JkXJ0IrUcdupLoIx6gE4YcFaMVSGtu7kQf4NJoDJUnfBZGuATmJ2Yal2v55KTltp+WV8dGr7A0RtOzx6jmtM6Q==", "dev": true }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, "node_modules/read-package-json-fast": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", @@ -15027,6 +15666,30 @@ "node": ">=8.0" } }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/router/node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, "node_modules/run-applescript": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", @@ -15073,12 +15736,29 @@ "ret": "~0.1.10" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/schema-utils": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", @@ -15164,6 +15844,70 @@ "node": ">= 0.10" } }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/send/node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", @@ -15203,6 +15947,26 @@ "randombytes": "^2.1.0" } }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -15340,6 +16104,82 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -17004,6 +17844,16 @@ "node": "*" } }, + "node_modules/typanion": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/typanion/-/typanion-3.14.0.tgz", + "integrity": "sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==", + "dev": true, + "license": "MIT", + "workspaces": [ + "website" + ] + }, "node_modules/type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -17255,6 +18105,16 @@ "node": ">= 10.0.0" } }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -18276,6 +19136,16 @@ "funding": { "url": "https://github.com/sponsors/colinhacks" } + }, + "node_modules/zod-to-json-schema": { + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "zod": "^3.25 || ^4" + } } } } diff --git a/package.json b/package.json index df095bf4486..3d3fc5c7f44 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,9 @@ "extensions-ci": "npm run gulp extensions-ci", "extensions-ci-pr": "npm run gulp extensions-ci-pr", "perf": "node scripts/code-perf.js", - "update-build-ts-version": "npm install -D typescript@next && npm install -D @typescript/native-preview && (cd build && npm run typecheck)" + "update-build-ts-version": "npm install -D typescript@next && npm install -D @typescript/native-preview && (cd build && npm run typecheck)", + "install-local-component-explorer": "npm install ../vscode-packages/js-component-explorer/dist/vscode-component-explorer-0.1.0.tgz ../vscode-packages/js-component-explorer/dist/vscode-component-explorer-cli-0.1.0.tgz --no-save && cd build/vite && npm install ../../../vscode-packages/js-component-explorer/dist/vscode-component-explorer-vite-plugin-0.1.0.tgz --no-save", + "install-latest-component-explorer": "npm install @vscode/component-explorer@next @vscode/component-explorer-cli@next && cd build/vite && npm install @vscode/component-explorer-vite-plugin@next" }, "dependencies": { "@anthropic-ai/sandbox-runtime": "0.0.23", @@ -150,6 +152,8 @@ "@types/yazl": "^2.4.2", "@typescript-eslint/utils": "^8.45.0", "@typescript/native-preview": "^7.0.0-dev.20260130", + "@vscode/component-explorer": "^0.1.1-10", + "@vscode/component-explorer-cli": "^0.1.1-6", "@vscode/gulp-electron": "https://github.com/microsoft/vscode-gulp-electron.git#405e3df0e4e9c37fcf549cbe6f5cef8d5ba5ddff", "@vscode/l10n-dev": "0.0.35", "@vscode/telemetry-extractor": "^1.10.2", diff --git a/src/vs/editor/common/viewModel/minimapTokensColorTracker.ts b/src/vs/editor/common/viewModel/minimapTokensColorTracker.ts index 0247519b550..45473f77c4d 100644 --- a/src/vs/editor/common/viewModel/minimapTokensColorTracker.ts +++ b/src/vs/editor/common/viewModel/minimapTokensColorTracker.ts @@ -8,6 +8,7 @@ import { Disposable, markAsSingleton } from '../../../base/common/lifecycle.js'; import { RGBA8 } from '../core/misc/rgba.js'; import { TokenizationRegistry } from '../languages.js'; import { ColorId } from '../encodedTokenAttributes.js'; +import { BugIndicatingError, onUnexpectedError } from '../../../base/common/errors.js'; export class MinimapTokensColorTracker extends Disposable { private static _INSTANCE: MinimapTokensColorTracker | null = null; @@ -57,7 +58,12 @@ export class MinimapTokensColorTracker extends Disposable { // background color (basically invisible) colorId = ColorId.DefaultBackground; } - return this._colors[colorId]; + let color = this._colors[colorId]; + if (!color) { + onUnexpectedError(new BugIndicatingError(`Missing color for colorId ${colorId}`)); + color = RGBA8.Empty; + } + return color; } public backgroundIsLight(): boolean { diff --git a/build/vite/fixtures/aiStats.fixture.ts b/src/vs/workbench/test/browser/componentFixtures/aiStats.fixture.ts similarity index 89% rename from build/vite/fixtures/aiStats.fixture.ts rename to src/vs/workbench/test/browser/componentFixtures/aiStats.fixture.ts index 5ebe414b52b..7df2b70d7d5 100644 --- a/build/vite/fixtures/aiStats.fixture.ts +++ b/src/vs/workbench/test/browser/componentFixtures/aiStats.fixture.ts @@ -3,11 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { observableValue } from '../../../src/vs/base/common/observable'; -import { createAiStatsHover, IAiStatsHoverData } from '../../../src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsStatusBar'; -import { ISessionData } from '../../../src/vs/workbench/contrib/editTelemetry/browser/editStats/aiStatsChart'; -import { Random } from '../../../src/vs/editor/test/common/core/random'; -import { ComponentFixtureContext, defineComponentFixture, defineThemedFixtureGroup } from './fixtureUtils'; +import { observableValue } from '../../../../base/common/observable.js'; +import { createAiStatsHover, IAiStatsHoverData } from '../../../contrib/editTelemetry/browser/editStats/aiStatsStatusBar.js'; +import { ISessionData } from '../../../contrib/editTelemetry/browser/editStats/aiStatsChart.js'; +import { Random } from '../../../../editor/test/common/core/random.js'; +import { ComponentFixtureContext, defineComponentFixture, defineThemedFixtureGroup } from './fixtureUtils.js'; export default defineThemedFixtureGroup({ AiStatsHover: defineComponentFixture({ diff --git a/build/vite/fixtures/baseUI.fixture.ts b/src/vs/workbench/test/browser/componentFixtures/baseUI.fixture.ts similarity index 94% rename from build/vite/fixtures/baseUI.fixture.ts rename to src/vs/workbench/test/browser/componentFixtures/baseUI.fixture.ts index 4bcf0be5235..21501b6c236 100644 --- a/build/vite/fixtures/baseUI.fixture.ts +++ b/src/vs/workbench/test/browser/componentFixtures/baseUI.fixture.ts @@ -3,21 +3,56 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { $ } from '../../../src/vs/base/browser/dom'; -import { Codicon } from '../../../src/vs/base/common/codicons'; -import { ThemeIcon } from '../../../src/vs/base/common/themables'; -import { Action, Separator } from '../../../src/vs/base/common/actions'; +import { $ } from '../../../../base/browser/dom.js'; +import { Codicon } from '../../../../base/common/codicons.js'; +import { ThemeIcon } from '../../../../base/common/themables.js'; +import { Action, Separator } from '../../../../base/common/actions.js'; // UI Components -import { Button, ButtonBar, ButtonWithDescription, unthemedButtonStyles } from '../../../src/vs/base/browser/ui/button/button'; -import { Toggle, Checkbox, unthemedToggleStyles } from '../../../src/vs/base/browser/ui/toggle/toggle'; -import { InputBox, MessageType, unthemedInboxStyles } from '../../../src/vs/base/browser/ui/inputbox/inputBox'; -import { CountBadge } from '../../../src/vs/base/browser/ui/countBadge/countBadge'; -import { ActionBar } from '../../../src/vs/base/browser/ui/actionbar/actionbar'; -import { ProgressBar } from '../../../src/vs/base/browser/ui/progressbar/progressbar'; -import { HighlightedLabel } from '../../../src/vs/base/browser/ui/highlightedlabel/highlightedLabel'; +import { Button, ButtonBar, ButtonWithDescription, unthemedButtonStyles } from '../../../../base/browser/ui/button/button.js'; +import { Toggle, Checkbox, unthemedToggleStyles } from '../../../../base/browser/ui/toggle/toggle.js'; +import { InputBox, MessageType, unthemedInboxStyles } from '../../../../base/browser/ui/inputbox/inputBox.js'; +import { CountBadge } from '../../../../base/browser/ui/countBadge/countBadge.js'; +import { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js'; +import { ProgressBar } from '../../../../base/browser/ui/progressbar/progressbar.js'; +import { HighlightedLabel } from '../../../../base/browser/ui/highlightedlabel/highlightedLabel.js'; -import { ComponentFixtureContext, defineComponentFixture, defineThemedFixtureGroup } from './fixtureUtils'; +import { ComponentFixtureContext, defineComponentFixture, defineThemedFixtureGroup } from './fixtureUtils.js'; + + +export default defineThemedFixtureGroup({ + Buttons: defineComponentFixture({ + render: renderButtons, + }), + + ButtonBar: defineComponentFixture({ + render: renderButtonBar, + }), + + Toggles: defineComponentFixture({ + render: renderToggles, + }), + + InputBoxes: defineComponentFixture({ + render: renderInputBoxes, + }), + + CountBadges: defineComponentFixture({ + render: renderCountBadges, + }), + + ActionBar: defineComponentFixture({ + render: renderActionBar, + }), + + ProgressBars: defineComponentFixture({ + render: renderProgressBars, + }), + + HighlightedLabels: defineComponentFixture({ + render: renderHighlightedLabels, + }), +}); // ============================================================================ @@ -490,42 +525,3 @@ function renderHighlightedLabels({ container }: ComponentFixtureContext): HTMLEl return container; } - - -// ============================================================================ -// Export Fixtures -// ============================================================================ - -export default defineThemedFixtureGroup({ - Buttons: defineComponentFixture({ - render: renderButtons, - }), - - ButtonBar: defineComponentFixture({ - render: renderButtonBar, - }), - - Toggles: defineComponentFixture({ - render: renderToggles, - }), - - InputBoxes: defineComponentFixture({ - render: renderInputBoxes, - }), - - CountBadges: defineComponentFixture({ - render: renderCountBadges, - }), - - ActionBar: defineComponentFixture({ - render: renderActionBar, - }), - - ProgressBars: defineComponentFixture({ - render: renderProgressBars, - }), - - HighlightedLabels: defineComponentFixture({ - render: renderHighlightedLabels, - }), -}); diff --git a/build/vite/fixtures/editor/codeEditor.fixture.ts b/src/vs/workbench/test/browser/componentFixtures/codeEditor.fixture.ts similarity index 84% rename from build/vite/fixtures/editor/codeEditor.fixture.ts rename to src/vs/workbench/test/browser/componentFixtures/codeEditor.fixture.ts index bdaaf35bf0f..af7ff834637 100644 --- a/build/vite/fixtures/editor/codeEditor.fixture.ts +++ b/src/vs/workbench/test/browser/componentFixtures/codeEditor.fixture.ts @@ -3,9 +3,10 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { URI } from '../../../../src/vs/base/common/uri'; -import { CodeEditorWidget, ICodeEditorWidgetOptions } from '../../../../src/vs/editor/browser/widget/codeEditor/codeEditorWidget'; -import { ComponentFixtureContext, createEditorServices, createTextModel, defineComponentFixture, defineThemedFixtureGroup } from '../fixtureUtils'; +import { URI } from '../../../../base/common/uri.js'; +import { ComponentFixtureContext, createEditorServices, defineThemedFixtureGroup, defineComponentFixture, createTextModel } from './fixtureUtils.js'; +import { ICodeEditorWidgetOptions, CodeEditorWidget } from '../../../../editor/browser/widget/codeEditor/codeEditorWidget.js'; + const SAMPLE_CODE = `// Welcome to VS Code function greet(name: string): string { diff --git a/build/vite/fixtures/fixtureUtils.ts b/src/vs/workbench/test/browser/componentFixtures/fixtureUtils.ts similarity index 66% rename from build/vite/fixtures/fixtureUtils.ts rename to src/vs/workbench/test/browser/componentFixtures/fixtureUtils.ts index fd90169dae7..0aa45800518 100644 --- a/build/vite/fixtures/fixtureUtils.ts +++ b/src/vs/workbench/test/browser/componentFixtures/fixtureUtils.ts @@ -3,98 +3,98 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +// This should be the only place that is allowed to import from @vscode/component-explorer +// eslint-disable-next-line local/code-import-patterns import { defineFixture, defineFixtureGroup, defineFixtureVariants } from '@vscode/component-explorer'; -import { DisposableStore, toDisposable } from '../../../src/vs/base/common/lifecycle'; -import { URI } from '../../../src/vs/base/common/uri'; -import '../style.css'; +import { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js'; +import { URI } from '../../../../base/common/uri.js'; +// eslint-disable-next-line local/code-import-patterns +import '../../../../../../build/vite/style.css'; // Theme -import { COLOR_THEME_DARK_INITIAL_COLORS, COLOR_THEME_LIGHT_INITIAL_COLORS } from '../../../src/vs/workbench/services/themes/common/workbenchThemeService'; -import { ColorThemeData } from '../../../src/vs/workbench/services/themes/common/colorThemeData'; -import { ColorScheme } from '../../../src/vs/platform/theme/common/theme'; -import { generateColorThemeCSS } from '../../../src/vs/workbench/services/themes/browser/colorThemeCss'; -import { Registry } from '../../../src/vs/platform/registry/common/platform'; -import { Extensions as ThemingExtensions, IThemingRegistry } from '../../../src/vs/platform/theme/common/themeService'; -import { IEnvironmentService } from '../../../src/vs/platform/environment/common/environment'; -import { getIconsStyleSheet } from '../../../src/vs/platform/theme/browser/iconsStyleSheet'; +import { IEnvironmentService } from '../../../../platform/environment/common/environment.js'; +import { Registry } from '../../../../platform/registry/common/platform.js'; +import { getIconsStyleSheet } from '../../../../platform/theme/browser/iconsStyleSheet.js'; +import { ColorScheme } from '../../../../platform/theme/common/theme.js'; +import { IColorTheme, IThemeService, IThemingRegistry, Extensions as ThemingExtensions } from '../../../../platform/theme/common/themeService.js'; +import { generateColorThemeCSS } from '../../../services/themes/browser/colorThemeCss.js'; +import { ColorThemeData } from '../../../services/themes/common/colorThemeData.js'; +import { COLOR_THEME_DARK_INITIAL_COLORS, COLOR_THEME_LIGHT_INITIAL_COLORS } from '../../../services/themes/common/workbenchThemeService.js'; // Instantiation -import { ServiceCollection } from '../../../src/vs/platform/instantiation/common/serviceCollection'; -import { SyncDescriptor } from '../../../src/vs/platform/instantiation/common/descriptors'; -import { ServiceIdentifier } from '../../../src/vs/platform/instantiation/common/instantiation'; -import { TestInstantiationService } from '../../../src/vs/platform/instantiation/test/common/instantiationServiceMock'; +import { SyncDescriptor } from '../../../../platform/instantiation/common/descriptors.js'; +import { ServiceIdentifier } from '../../../../platform/instantiation/common/instantiation.js'; +import { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js'; +import { TestInstantiationService } from '../../../../platform/instantiation/test/common/instantiationServiceMock.js'; // Test service implementations -import { TestAccessibilityService } from '../../../src/vs/platform/accessibility/test/common/testAccessibilityService'; -import { MockKeybindingService, MockContextKeyService } from '../../../src/vs/platform/keybinding/test/common/mockKeybindingService'; -import { TestClipboardService } from '../../../src/vs/platform/clipboard/test/common/testClipboardService'; -import { TestEditorWorkerService } from '../../../src/vs/editor/test/common/services/testEditorWorkerService'; -import { NullOpenerService } from '../../../src/vs/platform/opener/test/common/nullOpenerService'; -import { TestNotificationService } from '../../../src/vs/platform/notification/test/common/testNotificationService'; -import { TestDialogService } from '../../../src/vs/platform/dialogs/test/common/testDialogService'; -import { TestConfigurationService } from '../../../src/vs/platform/configuration/test/common/testConfigurationService'; -import { TestTextResourcePropertiesService } from '../../../src/vs/editor/test/common/services/testTextResourcePropertiesService'; -import { TestThemeService } from '../../../src/vs/platform/theme/test/common/testThemeService'; -import { TestLanguageConfigurationService } from '../../../src/vs/editor/test/common/modes/testLanguageConfigurationService'; -import { TestCodeEditorService, TestCommandService } from '../../../src/vs/editor/test/browser/editorTestServices'; -import { TestTreeSitterLibraryService } from '../../../src/vs/editor/test/common/services/testTreeSitterLibraryService'; -import { TestMenuService } from '../../../src/vs/workbench/test/browser/workbenchTestServices'; - -// Service interfaces -import { IAccessibilityService } from '../../../src/vs/platform/accessibility/common/accessibility'; -import { IKeybindingService } from '../../../src/vs/platform/keybinding/common/keybinding'; -import { IClipboardService } from '../../../src/vs/platform/clipboard/common/clipboardService'; -import { IEditorWorkerService } from '../../../src/vs/editor/common/services/editorWorker'; -import { IOpenerService } from '../../../src/vs/platform/opener/common/opener'; -import { INotificationService } from '../../../src/vs/platform/notification/common/notification'; -import { IDialogService } from '../../../src/vs/platform/dialogs/common/dialogs'; -import { IUndoRedoService } from '../../../src/vs/platform/undoRedo/common/undoRedo'; -import { UndoRedoService } from '../../../src/vs/platform/undoRedo/common/undoRedoService'; -import { ILanguageService } from '../../../src/vs/editor/common/languages/language'; -import { LanguageService } from '../../../src/vs/editor/common/services/languageService'; -import { ILanguageConfigurationService } from '../../../src/vs/editor/common/languages/languageConfigurationRegistry'; -import { IConfigurationService } from '../../../src/vs/platform/configuration/common/configuration'; -import { ITextResourcePropertiesService } from '../../../src/vs/editor/common/services/textResourceConfiguration'; -import { IColorTheme, IThemeService } from '../../../src/vs/platform/theme/common/themeService'; -import { ILogService, NullLogService, ILoggerService, NullLoggerService } from '../../../src/vs/platform/log/common/log'; -import { IModelService } from '../../../src/vs/editor/common/services/model'; -import { ModelService } from '../../../src/vs/editor/common/services/modelService'; -import { ICodeEditorService } from '../../../src/vs/editor/browser/services/codeEditorService'; -import { IContextKeyService } from '../../../src/vs/platform/contextkey/common/contextkey'; -import { ICommandService } from '../../../src/vs/platform/commands/common/commands'; -import { ITelemetryService } from '../../../src/vs/platform/telemetry/common/telemetry'; -import { NullTelemetryServiceShape } from '../../../src/vs/platform/telemetry/common/telemetryUtils'; -import { ILanguageFeatureDebounceService, LanguageFeatureDebounceService } from '../../../src/vs/editor/common/services/languageFeatureDebounce'; -import { ILanguageFeaturesService } from '../../../src/vs/editor/common/services/languageFeatures'; -import { LanguageFeaturesService } from '../../../src/vs/editor/common/services/languageFeaturesService'; -import { ITreeSitterLibraryService } from '../../../src/vs/editor/common/services/treeSitter/treeSitterLibraryService'; -import { IInlineCompletionsService, InlineCompletionsService } from '../../../src/vs/editor/browser/services/inlineCompletionsService'; -import { ICodeLensCache } from '../../../src/vs/editor/contrib/codelens/browser/codeLensCache'; -import { IHoverService } from '../../../src/vs/platform/hover/browser/hover'; -import { IDataChannelService, NullDataChannelService } from '../../../src/vs/platform/dataChannel/common/dataChannel'; -import { IContextMenuService, IContextViewService } from '../../../src/vs/platform/contextview/browser/contextView'; -import { ILabelService } from '../../../src/vs/platform/label/common/label'; -import { IMenuService } from '../../../src/vs/platform/actions/common/actions'; -import { IActionViewItemService, NullActionViewItemService } from '../../../src/vs/platform/actions/browser/actionViewItemService'; -import { IDefaultAccountService } from '../../../src/vs/platform/defaultAccount/common/defaultAccount'; -import { IStorageService, IStorageValueChangeEvent, IWillSaveStateEvent, StorageScope, StorageTarget, IStorageTargetChangeEvent, IStorageEntry, WillSaveStateReason, IWorkspaceStorageValueChangeEvent, IProfileStorageValueChangeEvent, IApplicationStorageValueChangeEvent } from '../../../src/vs/platform/storage/common/storage'; -import { Emitter, Event } from '../../../src/vs/base/common/event'; -import { mock } from '../../../src/vs/base/test/common/mock'; -import { IAnyWorkspaceIdentifier } from '../../../src/vs/platform/workspace/common/workspace'; -import { IUserDataProfile } from '../../../src/vs/platform/userDataProfile/common/userDataProfile'; -import { IUserInteractionService, MockUserInteractionService } from '../../../src/vs/platform/userInteraction/browser/userInteractionService'; +import { TestCodeEditorService, TestCommandService } from '../../../../editor/test/browser/editorTestServices.js'; +import { TestLanguageConfigurationService } from '../../../../editor/test/common/modes/testLanguageConfigurationService.js'; +import { TestEditorWorkerService } from '../../../../editor/test/common/services/testEditorWorkerService.js'; +import { TestTextResourcePropertiesService } from '../../../../editor/test/common/services/testTextResourcePropertiesService.js'; +import { TestTreeSitterLibraryService } from '../../../../editor/test/common/services/testTreeSitterLibraryService.js'; +import { TestAccessibilityService } from '../../../../platform/accessibility/test/common/testAccessibilityService.js'; +import { TestClipboardService } from '../../../../platform/clipboard/test/common/testClipboardService.js'; +import { TestConfigurationService } from '../../../../platform/configuration/test/common/testConfigurationService.js'; +import { TestDialogService } from '../../../../platform/dialogs/test/common/testDialogService.js'; +import { MockContextKeyService, MockKeybindingService } from '../../../../platform/keybinding/test/common/mockKeybindingService.js'; +import { TestNotificationService } from '../../../../platform/notification/test/common/testNotificationService.js'; +import { NullOpenerService } from '../../../../platform/opener/test/common/nullOpenerService.js'; +import { TestThemeService } from '../../../../platform/theme/test/common/testThemeService.js'; +import { TestMenuService } from '../workbenchTestServices.js'; +import { Emitter, Event } from '../../../../base/common/event.js'; +import { mock } from '../../../../base/test/common/mock.js'; +import { ICodeEditorService } from '../../../../editor/browser/services/codeEditorService.js'; +import { IInlineCompletionsService, InlineCompletionsService } from '../../../../editor/browser/services/inlineCompletionsService.js'; +import { ILanguageService } from '../../../../editor/common/languages/language.js'; +import { ILanguageConfigurationService } from '../../../../editor/common/languages/languageConfigurationRegistry.js'; +import { IEditorWorkerService } from '../../../../editor/common/services/editorWorker.js'; +import { ILanguageFeatureDebounceService, LanguageFeatureDebounceService } from '../../../../editor/common/services/languageFeatureDebounce.js'; +import { ILanguageFeaturesService } from '../../../../editor/common/services/languageFeatures.js'; +import { LanguageFeaturesService } from '../../../../editor/common/services/languageFeaturesService.js'; +import { LanguageService } from '../../../../editor/common/services/languageService.js'; +import { IModelService } from '../../../../editor/common/services/model.js'; +import { ModelService } from '../../../../editor/common/services/modelService.js'; +import { ITextResourcePropertiesService } from '../../../../editor/common/services/textResourceConfiguration.js'; +import { ITreeSitterLibraryService } from '../../../../editor/common/services/treeSitter/treeSitterLibraryService.js'; +import { ICodeLensCache } from '../../../../editor/contrib/codelens/browser/codeLensCache.js'; +import { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js'; +import { IActionViewItemService, NullActionViewItemService } from '../../../../platform/actions/browser/actionViewItemService.js'; +import { IMenuService } from '../../../../platform/actions/common/actions.js'; +import { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js'; +import { ICommandService } from '../../../../platform/commands/common/commands.js'; +import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js'; +import { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js'; +import { IContextMenuService, IContextViewService } from '../../../../platform/contextview/browser/contextView.js'; +import { IDataChannelService, NullDataChannelService } from '../../../../platform/dataChannel/common/dataChannel.js'; +import { IDefaultAccountService } from '../../../../platform/defaultAccount/common/defaultAccount.js'; +import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js'; +import { IHoverService } from '../../../../platform/hover/browser/hover.js'; +import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js'; +import { ILabelService } from '../../../../platform/label/common/label.js'; +import { ILoggerService, ILogService, NullLoggerService, NullLogService } from '../../../../platform/log/common/log.js'; +import { INotificationService } from '../../../../platform/notification/common/notification.js'; +import { IOpenerService } from '../../../../platform/opener/common/opener.js'; +import { IApplicationStorageValueChangeEvent, IProfileStorageValueChangeEvent, IStorageEntry, IStorageService, IStorageTargetChangeEvent, IStorageValueChangeEvent, IWillSaveStateEvent, IWorkspaceStorageValueChangeEvent, StorageScope, StorageTarget, WillSaveStateReason } from '../../../../platform/storage/common/storage.js'; +import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js'; +import { NullTelemetryServiceShape } from '../../../../platform/telemetry/common/telemetryUtils.js'; +import { IUndoRedoService } from '../../../../platform/undoRedo/common/undoRedo.js'; +import { UndoRedoService } from '../../../../platform/undoRedo/common/undoRedoService.js'; +import { IUserDataProfile } from '../../../../platform/userDataProfile/common/userDataProfile.js'; +import { IUserInteractionService, MockUserInteractionService } from '../../../../platform/userInteraction/browser/userInteractionService.js'; +import { IAnyWorkspaceIdentifier } from '../../../../platform/workspace/common/workspace.js'; // Editor -import { ITextModel } from '../../../src/vs/editor/common/model'; +import { ITextModel } from '../../../../editor/common/model.js'; // Import color registrations to ensure colors are available -import '../../../src/vs/platform/theme/common/colors/baseColors'; -import '../../../src/vs/platform/theme/common/colors/editorColors'; -import '../../../src/vs/platform/theme/common/colors/listColors'; -import '../../../src/vs/platform/theme/common/colors/miscColors'; -import '../../../src/vs/workbench/common/theme'; +import '../../../../platform/theme/common/colors/baseColors.js'; +import '../../../../platform/theme/common/colors/editorColors.js'; +import '../../../../platform/theme/common/colors/listColors.js'; +import '../../../../platform/theme/common/colors/miscColors.js'; +import '../../../common/theme.js'; /** * A storage service that never stores anything and always returns the default/fallback value. @@ -363,7 +363,7 @@ export function createEditorServices(disposables: DisposableStore, options?: Cre put: () => { }, get: () => undefined, delete: () => { }, - } as ICodeLensCache); + }); defineInstance(IHoverService, { _serviceBrand: undefined, showDelayedHover: () => undefined, @@ -374,7 +374,7 @@ export function createEditorServices(disposables: DisposableStore, options?: Cre showAndFocusLastHover: () => { }, setupManagedHover: () => ({ dispose: () => { }, show: () => { }, hide: () => { }, update: () => { } }), showManagedHover: () => { }, - } as IHoverService); + }); defineInstance(IDefaultAccountService, { _serviceBrand: undefined, onDidChangeDefaultAccount: new Emitter().event, @@ -385,7 +385,8 @@ export function createEditorServices(disposables: DisposableStore, options?: Cre setDefaultAccountProvider: () => { }, refresh: async () => null, signIn: async () => null, - } as IDefaultAccountService); + signOut: async () => { }, + }); // User interaction service with focus simulation enabled (all elements appear focused in fixtures) defineInstance(IUserInteractionService, new MockUserInteractionService(true, false)); @@ -397,8 +398,7 @@ export function createEditorServices(disposables: DisposableStore, options?: Cre disposables.add(toDisposable(() => { for (const id of serviceIdentifiers) { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const instanceOrDescriptor = services.get(id) as any; + const instanceOrDescriptor = services.get(id); if (typeof instanceOrDescriptor?.dispose === 'function') { instanceOrDescriptor.dispose(); } @@ -417,14 +417,17 @@ export function registerWorkbenchServices(registration: ServiceRegistration): vo showContextMenu: () => { }, onDidShowContextMenu: () => ({ dispose: () => { } }), onDidHideContextMenu: () => ({ dispose: () => { } }), - } as unknown as IContextMenuService); + _serviceBrand: undefined, + }); registration.defineInstance(IContextViewService, { - showContextView: () => ({ dispose: () => { } }), + showContextView: () => ({ close: () => { } }), hideContextView: () => { }, - getContextViewElement: () => null, + getContextViewElement: () => { throw new Error('Not implemented'); }, layout: () => { }, - } as unknown as IContextViewService); + anchorAlignment: 0, + _serviceBrand: undefined, + }); registration.defineInstance(ILabelService, { getUriLabel: (uri: URI) => uri.path, @@ -435,7 +438,9 @@ export function registerWorkbenchServices(registration: ServiceRegistration): vo registerFormatter: () => ({ dispose: () => { } }), onDidChangeFormatters: () => ({ dispose: () => { } }), registerCachedFormatter: () => ({ dispose: () => { } }), - } as unknown as ILabelService); + _serviceBrand: undefined, + getHostTooltip: () => '', + }); registration.define(IMenuService, TestMenuService); registration.define(IActionViewItemService, NullActionViewItemService); @@ -488,10 +493,11 @@ export function defineComponentFixture(options: ComponentFixtureOptions): Themed displayMode: { type: 'component' }, properties: [], background: theme === darkTheme ? 'dark' : 'light', - render: async (container: HTMLElement) => { + render: (container: HTMLElement) => { const disposableStore = new DisposableStore(); setupTheme(container, theme); - return options.render({ container, disposableStore, theme }); + options.render({ container, disposableStore, theme }); + return disposableStore; }, }); diff --git a/build/vite/fixtures/editor/inlineCompletions.fixture.ts b/src/vs/workbench/test/browser/componentFixtures/inlineCompletions.fixture.ts similarity index 74% rename from build/vite/fixtures/editor/inlineCompletions.fixture.ts rename to src/vs/workbench/test/browser/componentFixtures/inlineCompletions.fixture.ts index 06abdece6b6..3f30440013a 100644 --- a/build/vite/fixtures/editor/inlineCompletions.fixture.ts +++ b/src/vs/workbench/test/browser/componentFixtures/inlineCompletions.fixture.ts @@ -3,20 +3,20 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { constObservable } from '../../../../src/vs/base/common/observable'; -import { URI } from '../../../../src/vs/base/common/uri'; -import { Range } from '../../../../src/vs/editor/common/core/range'; -import { IEditorOptions } from '../../../../src/vs/editor/common/config/editorOptions'; -import { CodeEditorWidget, ICodeEditorWidgetOptions } from '../../../../src/vs/editor/browser/widget/codeEditor/codeEditorWidget'; -import { EditorExtensionsRegistry } from '../../../../src/vs/editor/browser/editorExtensions'; -import { InlineCompletionsController } from '../../../../src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController'; -import { InlineCompletionsSource, InlineCompletionsState } from '../../../../src/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource'; -import { InlineEditItem } from '../../../../src/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem'; -import { TextModelValueReference } from '../../../../src/vs/editor/contrib/inlineCompletions/browser/model/textModelValueReference'; -import { ComponentFixtureContext, createEditorServices, createTextModel, defineComponentFixture, defineThemedFixtureGroup } from '../fixtureUtils'; // Import to register the inline completions contribution -import '../../../../src/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution'; +import { constObservable, IObservableWithChange } from '../../../../base/common/observable.js'; +import { URI } from '../../../../base/common/uri.js'; +import { ComponentFixtureContext, createEditorServices, defineThemedFixtureGroup, defineComponentFixture, createTextModel } from './fixtureUtils.js'; +import { EditorExtensionsRegistry } from '../../../../editor/browser/editorExtensions.js'; +import { ICodeEditorWidgetOptions, CodeEditorWidget } from '../../../../editor/browser/widget/codeEditor/codeEditorWidget.js'; +import { IEditorOptions } from '../../../../editor/common/config/editorOptions.js'; +import { Range } from '../../../../editor/common/core/range.js'; +import { InlineCompletionsController } from '../../../../editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js'; +import '../../../../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js'; +import { InlineCompletionsSource, InlineCompletionsState } from '../../../../editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js'; +import { InlineEditItem } from '../../../../editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js'; +import { TextModelValueReference } from '../../../../editor/contrib/inlineCompletions/browser/model/textModelValueReference.js'; // ============================================================================ @@ -52,15 +52,13 @@ function renderInlineEdit(options: InlineEditOptions): HTMLElement { instantiationService.stubInstance(InlineCompletionsSource, { cancelUpdate: () => { }, clear: () => { }, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - clearOperationOnTextModelChange: constObservable(undefined) as any, + clearOperationOnTextModelChange: constObservable(undefined) as IObservableWithChange, clearSuggestWidgetInlineCompletions: () => { }, dispose: () => { }, fetch: async () => true, inlineCompletions: constObservable(new InlineCompletionsState([ InlineEditItem.createForTest( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - TextModelValueReference.snapshot(textModel as any), + TextModelValueReference.snapshot(textModel), new Range( options.range.startLineNumber, options.range.startColumn, @@ -117,11 +115,11 @@ export default defineThemedFixtureGroup({ render: (context) => renderInlineEdit({ ...context, code: `function greet(name) { - console.log("Hello, " + name); + console.log("Hello, " + name); }`, cursorLine: 2, range: { startLineNumber: 2, startColumn: 1, endLineNumber: 2, endColumn: 100 }, - newText: ' console.log(`Hello, ${name}!`);', + newText: '\tconsole.log(`Hello, ${name}!`);', }), }), diff --git a/test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHover/Dark.png b/test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHover/Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..b9d19007547abbce94328cd59fad93930f9f36cd GIT binary patch literal 8827 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 literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHover/Light.png b/test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHover/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..b632c504f804f224d0d804827f402417d3e98ce4 GIT binary patch literal 8388 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 literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHoverNoData/Dark.png b/test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHoverNoData/Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..80295163f4526a98833310a5392c04b0f49b7c9a GIT binary patch literal 7537 zcmd^^RZtvEmxc!j79_zfKp+r;2MBHn7TkRXcXt~sA!rD0!G_=#oWWg!yTdR9cLpDv z<=eg4+N#}uul8ndy58!yPgVD+zBuPO5vt0c@t#vY2LJ$gawsxuUkI}AEOQ0nV|iDzcZ+EE63Qfv+>8mlTVHPW z!Unvq(rXX69}9dqL&L<+%g-0(;^+4|{`)Dc+XVq{MYP>U0|12Sg%Ggqa+3#V+tr#= z;O$c0cGgqCnE2yXx)Y6U-4L=FIm2vSZF zb=!TnIjQKWtc;6p{1xRYZi4vGY5s_6=N=Yk((k#vyBV#t;*vyFXEE#>C9EjqT6Pcn z^|{(UUb*o0>Eguub6Wh5R!Vx&w`co-XSB@VvQ3>{=IDndq(oyi3;yF=dtO+yiw|xN zcd4@e#DmeyV|7bjL&JRD+49wy4vq`4@@!JuO^nK8@9Lf7W+Ols#U{V~CT6(e0Xgc% zXwkcH#3{rH-yq&-6ulom9&D$qY0s<`;=kMHti2SES}{`pz|M|=15!;?+1hGpyrJh7 zkR=QWYK_{0rM68K9&&gj?`{qgOVl>wYwy1u3moTRH(>aj2r1^@IfGupCnmxbi-E|w z)QF2^H<+r08%m}8#!p=4%kuJleAiZfHj_oqtvn^~;-z_z#b6_hx3SjS9ffR%|K`=U zubfAj3Gmc7P{h&^Z(wjl)2GkAPOfP%D+|&1ULuCXBCoLM?dDKk#3WO5G;PvwVti(~ zR-V)NwCD#3fg4%3c5MrJi2tM0lcK-U>9ZqUdNkg2CwO5ym zuH|!La~%r_q6q}wnj`_b_>fLFgkUNDj5cwL!pQh6i`$L$?F5IqM?-mzaV!mUQPF6c zh<}cP`)Opv+rOxi9EC62C*ZElV|E8olu%l3P&<;G0^lz)pVNU1jz zZqV{zJVXJL{+b1;mhHsu}LozlxC?`8~xgJ2GhMuh;w% zCg^6-z=lDRmg^lrn_|V3O+J$TFa5eqQrdLg&OHL}&qe^y?|B;!*E+8w7yr@BrD5Ba zGeZ5E$&SwUIzZu{LGXeI;d75p}yAU)SUGCFx^zFdWA@w}-X@8LVhX1b6> z>wx0$x)RE12fS!I6^+t@tQ(k&fM=RYLQCuyu^f6Cg-01%6M{M3Xu8b_IV4Qy?;@ZU zal&xj?jwcw97Qa2vMsh2O;CJ&)uiceWH zoa0a9IkZyo+tK|CGi)Qu$lbrdXd>QAKy3ATU2m4L;Y{6cH&v(Gxt;5ozjYUY)_P`5 z%*|awMpE@$8a^=@eUd_O$ifA6CdAN%1w@rT3s9>mRwV%X|@hv+QW z>aIBKf6icj=zZwyHr3hMT&JD1x7@A0d#HzwlVLw@l^|I9#@)P!tHw&9jq9RXfu+3$ zdB9Zcv2_TIT58P9tx_nwX0(%GHrOqgA`?R@KG!tFexbnfw;%55x8(apguRTc5kip*=K$J~00GVXa=;-TmSM|wtj*&BCBU)_XDCel>S#t&6XJ12s>i4$t% zDW4LsmZW3Y=zq&6_v-oO0}?X4T9=@T?tM4k)ZQxqKF|H6?*2NSJX2R42VjNgfLBT<_o5NKA!ye>gL;-1(9H(G+X`PdNQtkO@vXZWRJ>6%{*}CE#h+nmS8gwGQv&UcYVFOcJn+MIHvJeV9=eQL#TZpP{m%61NvxG*@<5hpebfW>5cL%5fU+JRgE7qnqVXN6oy4a>Sy%yb|Qm z*EvPWu0;eZb8s5zt^_kReYqau3moMTRolcGBP%gU(3Z3;ydSLj&<751HZ&*_ z>cql0B;wWn3id8kt??<$3lf!dc;KEj(+OH$*QxC!c3l1KZV;D=lZxU7jR`aFh?0bf zj*a&vkH40jGPyrUHqs?9t|C;8}S zzv^}BQ<<6dOUfg=dzk~Aqpkg?(qB?#CjM=pm_8awDx-Hpb#AWtyEcC%una#&$(e9f zXYF6~uVe2J#G#uw5}eF*W;A#qjj=TEy*hJfP5uh+M|w5?VK$Bm6y

B$M?n9OVzyY$IA1PICm-SBP4*~wDi&(Fjk z=VKiUl-;MUk|@REs6cPF35CR9DMuV*Zc{dI{zO@ltgrULx2XWLg(f?Yimk)ri4 zqw>>?J*LGsO4iRyjk$Wo9DfIUedDoW?h!%^0IERDk?gu>GQlk~%< zAO-lx(hQ%NpX`Qh4h=3n&%dMMudtsIHO3}L#)9m29-gg^MsHT+7xkqTidSp4`y_Sx z(}7QWON|0PghYL%Y@o`b9QZM@En(V`Q6vo=QUMf7<5|6WBTUC;-wSliQQ`~Oq?XS` z2Zj`wLnPK&a6H27Lc?`d89;5TR6xpIMy#tiHP`IMm=T`Z9+=C6CS5&>9rUI2&ULSN z^)#ChsXhUC4TOm^L!zF=)iUmlByn)2CVxCrn=WR85#dST)oLuSDWC6=&_p1Ia8KF%MeImu=D%kr^`O4s4+5m~IhgJY;STAoytQQ=`aGG08N)t| zrQ2Xa)n*FJ1gk`l#TBy5IBrqodD0OP=ij0JyNv_JaXmEKvUY7UXQ_Pe{2_QuG@FvleR(;9r7w zG3{@)@TwE~2|{(Y?5q{J`#>=fMs$LMo>ljIao zL0#TQ2eeIn`lha4uVf0PgOi-z3qrN5jmUl^dkY%DNtR7MV|jR%Ab~%V9qIXlp$}kp$>vfVB--M+@c1&F-dQz&e<2!ycaMUUen+~WBshN^< zww^mAe>Y_@QUIM~cI(Pi@(s{eN!t`O!IwMz+r7N(g>U57)xT4)Q^gCx@nt`BWjV8EPq^`=|DHze8A<4A(>wDq^{%^ytF?NR=drU0eb z#uuk(9>$Gy9qR|FPAE@|fbt&}5M~7M4PMbcuXuH55YCk5{X?yWC@QHZBsoHXjRIE? zLjLEpl%!YR^ar9vyN4t{)oZ;AG-0f&N4VhC>oU;$BbqcGY=gPM%|T7No!ARD?V~{z z(U+{AdVLihKNm)x8-de9$SZuJs|KYex5- zEw7)xg5Zh}6(-Qr1MP%Y_D$>3u0O~Gvlci~Mi6%Ygrm45$;$k| zFJDOWc2cQJCSMn>V0_9mT=gA6uRazI^^Z=rz2>!l|3jg9$p;^uNAw$emZE-#lYVEG zamS_WctfdWEo(x#L%o#QNem8*aFmQpkBxrI5n(!g@Qe|~)Rb=A1@x}B?2je~;5{`ohSo+ujc#r!G7tsAbhRZ+d&D!hluG z=68ckZfx&tv#ZzJK#rZ?tVsOEuQlH=F;Ty!_oSzhSd3NZ} zBbBbvQrgmTQkD^kFeIk~{0`3B(IfTevUt;0@fox2ZK>3M1ssn-rj}V=0RfQVrO?8` z>KRw@@$}?4NKP7qUFg{Umaj|ezGNSas-1(CLy5XkLIbI$hp;)C}V1D z@F4!EF|4B-rc|v(Nd8=NRNMeNx z5d_-=y`1}atLEqctgNpBS@>sJ3QTOnuWT>s`Y~!7ZK7-1eYWo-`Tc>H2TRGr7m{T> zJ6EG5o27*q^KZdoWi0bNGvwD`MKjI3ROak$S=+Y3pNa=TDfEMrEga;r{QMJ=M%ri~GXdmY`N! z11(7{J}(83G$`)Sf!AKGIQ)8qwB{I|1W}fqpPaXN^c$D+%9gQ@u4WfXgE>LRC~!49 zqs{MSxGy8B6=F-2vOTT@7z-)vN-u3R8UkL{e`h;4qGDZ=B(bldI-A-)*q$3N#*D#z z;pl%E)*kPBgc*FhA8`ETu5*%B2X7;ltp48AO#Z4$dOKPp89tQO) zKau2$#dSkcsk>tP!JQ!cSv*6H(g>$N|3MSJ`YN8$a1Ko8jpH@Ok*9?G`!VgzAu?(hRJ6vh44|SzvX~V zDN0WtftTHIQ7lpBf0;XOGLh_dGGBrKWz-t0$+}^DGTb_TA*zmw)S{ z+17DWp)!)Ct2v6G3fziOgf-BO#-6G_G&N@H4p$+7DQ9*AL`M%^F5>;2J1_jsmd4Pk z8sYNCOJf|ccNl~s?Ix1*w|GmoEQb0_X66a~tyH2WG3x4V5Uqy&+UJ$mXe$H7f(4U) zGxLo5gVX7G1N{~6Et^7pe;K~+><)X;4Y7h8A}Y`O9xOs>|278)cUooFuuxL{V0P=y zG?>%bx+I->Sj^bZ+_5t%#q0vCi+CR!@6KV9A(|1rnrW=cvotaW)_~cJo<|AsbdC=I zaV*V%BVXiBAj8-HEt&Y=(2M``Gd}TOdOF-UH2aF*ygj*{1ruUkl&!6;^7iRyWL$is zCBPDJ`AMC%48w~0;{63DQ^5Z9C2LKRX4kCQY~?dsiS*~ZFxIj0leuo9Z#L`e>pdh8 z-zU;?U3XkwnJcNX5;q$?C=&5~4=8+onPwSz<E&<(OE;L?|YFE&K;`C?4SR(JW~!# zGko8aUYoXHqwGB`V%N3LYvFK=)r*!Yt%~k6Uax*1U`fKlf$LWN$rKfZi2%}}t;L%4*E>N9_t8~%Iq#w*k z2~#It+uzBzpw4kw2o+%boCU}NXIk-Ik0LYlUS$%$ z#y)rtQ2dxLkFH>$(0kj1TnR+D3k4#ZS1ypql~&)Br_mzSo}k8(!c2N{^5x^xy!7$0 jtmH?{lfd|=OF{#5(+^TIG6d8;?EvJYm8HrhjD!9S%=1Ef literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHoverNoData/Light.png b/test/componentFixtures/.screenshots/baseline/aiStats/AiStatsHoverNoData/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6fda930348a73ab00ec1d66d70d5de568b9448 GIT binary patch literal 7262 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 literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/ActionBar/Light.png b/test/componentFixtures/.screenshots/baseline/baseUI/ActionBar/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..9cb6bf18aeb59edbabb22bf2a4abb3f980086bae GIT binary patch literal 3917 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 Ah5!Hn literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/ButtonBar/Light.png b/test/componentFixtures/.screenshots/baseline/baseUI/ButtonBar/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..48c31188e4a40030d2397bce4dcb59b709b69896 GIT binary patch literal 4209 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 AMF0Q* literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/CountBadges/Dark.png b/test/componentFixtures/.screenshots/baseline/baseUI/CountBadges/Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2e82e8ae528cd1142ab896c19a50f4df355192d4 GIT binary patch literal 1912 zcmb`I`#%#31ICwnsaW-{H{{kKrE<23kS#6u;h-Fp%iNO6u)@Y#c++8d<+65M=9a1B9CAF>Vn)T{y z2ix_Uk6p)b;3Ubzq(lvj{iKtGJ7IWa4w_c{)Iilf%=bJKR*fc7r;JFnHvjF;n)~Bc zc+`hlRACCDZo?A4l?+v!!7qPlK&0**0|2yboB)8gPe6wNZ`1!_h=xF|EY{k>a7ped zL~Kk9qj2{EB$$&VowkXqO5rJ#ibR@nh+@$rXD?&t^9-GZRbtP$4v5A4r>jke|=!K!__AF>ReZr7F1*AAhf%dIwml+ zPqqmBR79a1I-rtZesTc_cGfye%s;hhwPXP|$8<@UTCA&b;`E~ko0K=CH75Ev&4blJ ztwOK_1mnx|&Idf!gW=``d6E7J8yzbqbxBPDi``rk~U8J#|Py>M>od8w1+3fELiE(~e&fK4$AD%uke2?uI>0Ol&pic^i`OY?5Qg>je z@e~E<{EI|u;V2s;?5i3-QWngEFMRcYybo7z)73~%#)H+Qi`yAb$uG1UF!3LP)c=Dc{?ONp@j4BSN%E}Dyn(&)X!*{xlcZ5YLei)6+ z{B~#BWTFo#N;feR&AqnF?{}RquP;Yl*@uCUc1eah7losMy7m7gujn{OftzDvasH$zBjJ(CUDIZDrhJF8Zy`^OKtC*XQ4`YRsQHb0{8=>n|FKwctBSjOYN?w z+3=ie;WCBN&)ry%9`Ha#mZ4df?Ct&QiapqD+r;%dP)elLND_9I8xGu^9M;7I$<`+?;H=BYg{V0R(3Pe^wsJ!&2SbimkD3p^rmDf|jV^27$ z*`J34iD1FeMs)^rs+-?5gtg9Ho?3bRd*_M|n-f<$>7t6li+ZMRcdR+nBIpXx_0M!W zboHn-z&J2^!*i_S-18~E_O`{3BU&GvQblCO@}k&(j4f+;9%4)JftyMD@#KFME=j@r(rn(){J)$gXQ%hAcgr4RrIp#6A zk{?#KgA(QZap||2!YUX~l7BiJj#{r*M0lSsE|z^yWUU=dA9t=^ZtP2T4ZMGYUX-O8 zV;mBcyK~*|8%L4K;{@a<&GUS$HG`Ge68#P*djJ!+Km4s{Pdmfgm7u`fH@Ib;=AMLL zuTah_!=EZMoK2<`Uz(EGSP@78%$NN2c&`S=h$^2E^g z_#(TtX>8rBZ*ReSqjEyX~rg|Eiw>{qtB# o-Mh`*-Ld#%g?mBu@8jGL2rt@r1oSgY*lPf;PM(fU_MvJ22LMU8&;S4c literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/CountBadges/Light.png b/test/componentFixtures/.screenshots/baseline/baseUI/CountBadges/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..671217dae1af5d0891b5d9eace4a7de98e14f018 GIT binary patch literal 1806 zcmb`IX*Ao38pi*$Q&mOB?bKB5OBrjWNUgC%shq)Jq|=mi>`TNhVr^}`Zi%g7)L^3a z6jMQv5UwIB_N|x(MN+LbsWhpmYrfuZ_niCTea?H{^L~2HbDm$etFwdT1-T0V07%|( zgt`HMNXO}Z>%8cxD%Lug1Hid~J5U>s_}{nRLL9G!$&2j|mlV%;v<={AwWt9R;x%?x zV(Ahhb>!96OKfXdO|P`cntuJvLJj9%G8krlmy$GXg0kKW5}sPWw3lc&47$*sDir%- zh3OilC8m_H^;2_7_5wjJyNW`qiA~Iemk%`(iyZ*~>y2|~06^499RS2NWPpbmGU9-> zZT49}nE(|9@?BL$07tC?08oGG2mmtw!`n!i28Yk*zkmOJp#@1xJz+`jF?$kE=jijE zw3HOc-~*e=X0!3UGH|$RqEY}kWIgC&{C4WX{w-v0lHkiBaet9OAgryeJ$fX<`i>5> z;eBPG=iUXyH$pi@jNv>b7Z;bXju#UsP=jQ!?{pIBv^T;c9BtLf`7A zi_7lc=$TMpp)PSd1Z7__5;1XbG9yJxt6(cX;cn|k*V{xQJxR6O;u*vLdTFuwK~@N9 zP)xV`AVv@T5v-W;kCDHotJ87gtmB5lJZe?FP zuyi~7w+X=xy!5$GERU$*>G)fwU`Pk$fc3}BBA!mVYTRV3iy}=r_605zGOoa?P1uyt zsqXgn`Z1h|&lg@TzjhsWKk41b+~ewI2j(i2zNLS5t!3jz1esN`l5p=$g=02)C;`Vem=!nHZFp7{Z*JE z@@)XhiI#P#V^PhdaQB~@5Hm9$=T4!=jximvbZ_P0$Ke;08?qU+!u7uL$`#vyOiS3{ z#1NL^(37AW(ByI1K)wBoW5ora@DB95unDigx zxUmnCuXbL`_1v>>zOK9HkiEpuUPoGezxCSOcVg^kvcQAd{lUci5=K4dh_^!^s7&4L z|Ly(j(D-=%d=r9UD4>2#t-$T**X6njGO(G0X2s;FWR=c&RG@dH?`Lj^HVGlwLQD>h zNol4eq2RlwaJPGii}2E(B&bEpZjsB=VZy+o&f~OA|5dcnz1~SC8~k1IC`3+&b;jn} z%$0?ah6t+gEb^gdT~#DWx_8&PHNpbb+sJn&LD@#Mm6PKmOsVv{(~^@p^hk^GKG`M; za_heh(e5&#DZRb%B?!(`f}{uq+{eZ_K}gebonC-D_Ri2|+Xrd?0d634Q2+n{ literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/HighlightedLabels/Dark.png b/test/componentFixtures/.screenshots/baseline/baseUI/HighlightedLabels/Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f1801ba1a87d1def3af66fffbe1300141b70b8e9 GIT binary patch literal 7104 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 DR=s;N literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/InputBoxes/Dark.png b/test/componentFixtures/.screenshots/baseline/baseUI/InputBoxes/Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..368dde03b45594adc8f87c90f01605798f8b306a GIT binary patch literal 5238 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 x)BdJ!{ke-6 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 U!b_f7NqhpRtLQ*Vl&qfr14MV7X8-^I literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/ProgressBars/Dark.png b/test/componentFixtures/.screenshots/baseline/baseUI/ProgressBars/Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..90b44bae5125e0f0ab807dd85d9cf2a5c45a3f7d GIT binary patch literal 5446 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 literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/ProgressBars/Light.png b/test/componentFixtures/.screenshots/baseline/baseUI/ProgressBars/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..f751604be902cd64383355bfed5f6989acca0565 GIT binary patch literal 5340 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�L!NHwpPsaYu+f?Q4pEAZu`Pl>`kS8svNJG zJm)j%K1Jn(n)K6%XikfS2h=g{}fzacbln!`(+ze zeEJ%v?g$Oj!@g3&FmF7N4Zz*$Y7xHLK9|9HH!=sP(b{q|<4lhY7g6Fk>gd~O`k9cK z96AL!(h-5E!Gc-kyQWs&@+mymY~HzOq;P;4yWG_m8l&hrOe>V#B4ZzH376oRw#YQg zbV{>Pe`hA#eGO>VY1xkLe*v|B7_#JgdOEtZvr_$TADW3|{M$XAr?V3>Hyctx0caUI NQ$tIGI=x58e*wonE>{2m literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/baseUI/Toggles/Light.png b/test/componentFixtures/.screenshots/baseline/baseUI/Toggles/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..292bea20ad6fec3b0ebffea232ea56ace0d44069 GIT binary patch literal 3658 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 literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/inlineCompletions/InsertionView/Light.png b/test/componentFixtures/.screenshots/baseline/inlineCompletions/InsertionView/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..33fc14473ddfbda38cc96f328cbe4c336c2b7d30 GIT binary patch literal 6038 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 literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/inlineCompletions/SideBySideView/Dark.png b/test/componentFixtures/.screenshots/baseline/inlineCompletions/SideBySideView/Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..be09882bf5af0c9295de28d100ea12c6ce0d687d GIT binary patch literal 6697 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 literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/inlineCompletions/SideBySideView/Light.png b/test/componentFixtures/.screenshots/baseline/inlineCompletions/SideBySideView/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..76ad59e3288baf2203d49b90cceec11f6ad1af3f GIT binary patch literal 6513 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 literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/inlineCompletions/WordReplacementView/Dark.png b/test/componentFixtures/.screenshots/baseline/inlineCompletions/WordReplacementView/Dark.png new file mode 100644 index 0000000000000000000000000000000000000000..67f5fa6685918e1615612986ec7ad3f64bf1fc00 GIT binary patch literal 5570 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 NbTkb$s?{Cd{}*IT-s1oO literal 0 HcmV?d00001 diff --git a/test/componentFixtures/.screenshots/baseline/inlineCompletions/WordReplacementView/Light.png b/test/componentFixtures/.screenshots/baseline/inlineCompletions/WordReplacementView/Light.png new file mode 100644 index 0000000000000000000000000000000000000000..085a5afe7f18a3ae21ccf6d988cf0ea3c4924015 GIT binary patch literal 5618 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