From 4ce7b4dd9d9c6372db184de68ccfdd5618f1dcf1 Mon Sep 17 00:00:00 2001 From: Patrick Roza Date: Tue, 14 Jul 2026 20:31:01 +0200 Subject: [PATCH 1/4] chore(vscode): prepare extension for release under patroza namespace Publishes the extension as `patroza.t3-code` to the VS Code Marketplace and Open VSX, branded as an unofficial fork build of upstream pingdotgg/t3code. - Set publisher to `patroza` and mark the display name/description/README as a fork build so it is not mistaken for the official upstream extension. - Add the marketplace metadata vsce needs: 128x128 PNG icon (derived from the desktop app icon), repository/homepage/bugs, license, keywords, LICENSE, and a CHANGELOG. - Add `package`/`publish:vsce`/`publish:ovsx` scripts plus @vscode/vsce and ovsx. Packaging passes --no-dependencies because esbuild already bundles src/, so vsce never has to resolve the workspace:* deps it cannot understand, and --baseContentUrl/--baseImagesUrl so the README's relative links resolve against apps/vscode/ rather than the repo root. - Ignore *.vsix and drop dev-only files from the packaged extension. `private: true` is retained deliberately: vsce ignores it, and it still guards against an accidental `npm publish`. Verified with `vsce package`: 678 KB, 11 files, no warnings; the vsix manifest resolves to publisher `patroza`, id `t3-code`, and correct marketplace links. Co-Authored-By: Claude Opus 4.8 --- .gitignore | 1 + apps/vscode/.vscodeignore | 3 + apps/vscode/CHANGELOG.md | 16 + apps/vscode/LICENSE | 21 + apps/vscode/README.md | 50 ++ apps/vscode/media/icon.png | Bin 0 -> 21005 bytes apps/vscode/package.json | 32 +- pnpm-lock.yaml | 1525 +++++++++++++++++++++++++++++++++++- 8 files changed, 1630 insertions(+), 18 deletions(-) create mode 100644 apps/vscode/CHANGELOG.md create mode 100644 apps/vscode/LICENSE create mode 100644 apps/vscode/media/icon.png diff --git a/.gitignore b/.gitignore index ef6067824f2..bd532a9ebf2 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ apps/*/dist infra/*/dist .astro packages/*/dist +*.vsix .env .env.local build/ diff --git a/apps/vscode/.vscodeignore b/apps/vscode/.vscodeignore index 77f1925a04a..8303da26e75 100644 --- a/apps/vscode/.vscodeignore +++ b/apps/vscode/.vscodeignore @@ -1,6 +1,9 @@ .vscode/** +.vscodeignore node_modules/** src/** tsconfig.json vite.config.* *.test.* +*.vsix +dist/**/*.map diff --git a/apps/vscode/CHANGELOG.md b/apps/vscode/CHANGELOG.md new file mode 100644 index 00000000000..c7c0bd73e8e --- /dev/null +++ b/apps/vscode/CHANGELOG.md @@ -0,0 +1,16 @@ +# Changelog + +All notable changes to the T3 Code VS Code extension are documented in this file. + +## 0.0.37 + +Initial marketplace release of the `patroza` fork build. + +- Dedicated T3 Code sidebar webview with a worktree-scoped thread picker, synchronized transcript, + context control, and prompt composer. +- Native `@t3` VS Code Chat participant with `/new`, `/threads`, `/history`, `/context`, `/stop`, + and `/status` commands. +- Realtime thread synchronization with the T3 Code web, desktop, and mobile clients. +- Editor context, slash commands, images, approvals, tools, and tasks. +- Connects to a local T3 Desktop runtime when advertised, otherwise falls back to `t3Code.serverUrl`. + Remote servers authenticate with a bearer token held in VS Code secret storage. diff --git a/apps/vscode/LICENSE b/apps/vscode/LICENSE new file mode 100644 index 00000000000..55ee675bb1d --- /dev/null +++ b/apps/vscode/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 T3 Tools Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/apps/vscode/README.md b/apps/vscode/README.md index 8386c738385..7e3840b24a1 100644 --- a/apps/vscode/README.md +++ b/apps/vscode/README.md @@ -2,11 +2,23 @@ ![T3 Code in VS Code](media/screenshot.jpg) +> **Unofficial fork build.** This extension is published as `patroza.t3-code` from +> [patroza/t3code](https://github.com/patroza/t3code), a fork of +> [pingdotgg/t3code](https://github.com/pingdotgg/t3code). It is not published or supported by +> T3 Tools Inc. Report issues against +> [this fork's tracker](https://github.com/patroza/t3code/issues). + This package exposes T3 Code as a dedicated VS Code secondary-sidebar chat tab, alongside the Claude Code, Chat, and Codex tabs. It connects directly to the same T3 Code server used by the web, desktop, and mobile clients, so projects, threads, messages, turn state, and assistant streaming remain synchronized. It also provides an optional native `@t3` participant inside VS Code Chat. +## Requirements + +The extension is a client only — it needs a T3 Code backend to talk to. Either run T3 Desktop on the +same machine as the extension host, or point `t3Code.serverUrl` at a reachable T3 Code server. +VS Code 1.95 or newer is required. + ## Development 1. Start T3 Code (`pnpm dev`), which listens at `http://127.0.0.1:3773` by default. @@ -45,3 +57,41 @@ column. Explicit Chat references such as `#file` and attached selections are alw The **T3 Code: Ask About Selection** editor action opens Chat with `@t3` prefilled. Context is sent as structured-looking provider context using workspace-relative paths and language-aware Markdown fences. T3 Code clients present that envelope as a context reference rather than authored text. + +## Releasing + +The extension publishes to the `patroza` namespace on both the VS Code Marketplace and Open VSX. +Extension IDs and versions are shared between the two, so publish the same `.vsix` to each. + +Bump `version` in `apps/vscode/package.json` and add a `CHANGELOG.md` entry first, then: + +```sh +pnpm --filter t3-code package # -> t3-code-.vsix +``` + +`package` runs the `vscode:prepublish` build and bundles `src/` with esbuild, so `--no-dependencies` +is passed deliberately: nothing from `node_modules` ships, and vsce never has to resolve the +`workspace:*` dependencies it cannot understand. The `--baseContentUrl` / `--baseImagesUrl` flags +make the README's relative links resolve against `apps/vscode/` on GitHub, which vsce cannot infer +for an extension living in a monorepo subdirectory. + +Inspect the packaged contents before publishing: + +```sh +pnpm --filter t3-code exec vsce ls --no-dependencies +``` + +Publishing needs a token per registry, neither of which is stored in this repo: + +- **Marketplace** — an Azure DevOps PAT for the `patroza` publisher, with Marketplace: Manage scope. + Pass it as `VSCE_PAT`, or run `vsce login patroza` once. +- **Open VSX** — an access token for the `patroza` namespace from . + Pass it as `OVSX_PAT`. The namespace must be created once with `ovsx create-namespace patroza`. + +```sh +VSCE_PAT=... pnpm --filter t3-code publish:vsce +OVSX_PAT=... pnpm --filter t3-code publish:ovsx t3-code-.vsix +``` + +Tag the release as `vscode-v` so extension tags do not collide with the `v*.*.*` tags that +drive the desktop release workflow. diff --git a/apps/vscode/media/icon.png b/apps/vscode/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1468647d283590f5089ad3174945202448917c09 GIT binary patch literal 21005 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 M07*qoM6N<$g8MBpy8r+H literal 0 HcmV?d00001 diff --git a/apps/vscode/package.json b/apps/vscode/package.json index d89b3d49803..ae8c3263926 100644 --- a/apps/vscode/package.json +++ b/apps/vscode/package.json @@ -1,21 +1,42 @@ { "name": "t3-code", - "displayName": "T3 Code", + "displayName": "T3 Code (patroza build)", "version": "0.0.37", "private": true, - "description": "A dedicated VS Code chat client for synchronized T3 Code threads.", + "description": "Unofficial fork build of T3 Code: a dedicated VS Code chat client for synchronized T3 Code threads.", "categories": [ "AI", "Chat", "Other" ], - "publisher": "t3code", + "keywords": [ + "agent", + "ai", + "chat", + "claude", + "codex" + ], + "homepage": "https://github.com/patroza/t3code/tree/main/apps/vscode", + "bugs": { + "url": "https://github.com/patroza/t3code/issues" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/patroza/t3code.git", + "directory": "apps/vscode" + }, + "publisher": "patroza", "type": "module", "main": "./dist/extension.cjs", "scripts": { "build": "esbuild src/extension.ts --bundle --platform=node --format=cjs --target=node20 --external:vscode --outfile=dist/extension.cjs && esbuild src/webview.ts --bundle --platform=browser --format=iife --target=es2022 --outfile=dist/webview.js", "typecheck": "tsgo --noEmit", - "test": "vp test run" + "test": "vp test run", + "vscode:prepublish": "vp run build", + "package": "vsce package --no-dependencies --baseContentUrl https://github.com/patroza/t3code/blob/main/apps/vscode --baseImagesUrl https://raw.githubusercontent.com/patroza/t3code/main/apps/vscode", + "publish:vsce": "vsce publish --no-dependencies --baseContentUrl https://github.com/patroza/t3code/blob/main/apps/vscode --baseImagesUrl https://raw.githubusercontent.com/patroza/t3code/main/apps/vscode", + "publish:ovsx": "ovsx publish --packagePath" }, "dependencies": { "@t3tools/client-runtime": "workspace:*", @@ -27,7 +48,9 @@ }, "devDependencies": { "@types/vscode": "1.95.0", + "@vscode/vsce": "^3.6.0", "esbuild": "^0.28.0", + "ovsx": "^0.10.1", "vite-plus": "catalog:" }, "contributes": { @@ -197,6 +220,7 @@ "extensionKind": [ "workspace" ], + "icon": "media/icon.png", "engines": { "vscode": "^1.95.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d9a8fc35da..031370dd927 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,7 +172,7 @@ importers: dependencies: astro: specifier: ^7.0.3 - version: 7.0.3(@astrojs/markdown-remark@7.2.0)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.12.4)(aws4fetch@1.0.20)(idb-keyval@6.2.1)(ioredis@5.11.0)(jiti@2.7.0)(rollup@4.61.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) + version: 7.0.3(@astrojs/markdown-remark@7.2.0)(@azure/identity@4.13.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.12.4)(aws4fetch@1.0.20)(idb-keyval@6.2.1)(ioredis@5.11.0)(jiti@2.7.0)(rollup@4.61.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0) devDependencies: '@astrojs/check': specifier: ^0.9.7 @@ -519,9 +519,15 @@ importers: '@types/vscode': specifier: 1.95.0 version: 1.95.0 + '@vscode/vsce': + specifier: ^3.6.0 + version: 3.9.2 esbuild: specifier: ^0.28.0 version: 0.28.1 + ovsx: + specifier: ^0.10.1 + version: 0.10.12 vite-plus: specifier: 'catalog:' version: 0.2.2(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0) @@ -1210,6 +1216,56 @@ packages: resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} engines: {node: '>=18.0.0'} + '@azu/format-text@1.0.2': + resolution: {integrity: sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==} + + '@azu/style-format@1.0.1': + resolution: {integrity: sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==} + + '@azure/abort-controller@2.1.2': + resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} + engines: {node: '>=18.0.0'} + + '@azure/core-auth@1.10.1': + resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==} + engines: {node: '>=20.0.0'} + + '@azure/core-client@1.10.2': + resolution: {integrity: sha512-1D2LpsU7y9xrqKjdIbsB7PlrRePw0xsVV8p+AKTlzITrWmscajryfJCdDJB/oGwvDI5HmRo04eMMADB67uwAwQ==} + engines: {node: '>=20.0.0'} + + '@azure/core-rest-pipeline@1.24.0': + resolution: {integrity: sha512-PpLsoDQ3AMmKZ0VU+0GrmqMxgp/sExjlVm4R+nLWngeoEGAzOIPVifaxKGU5gMv+nWELUoHfvrolWD+ZS/nFJg==} + engines: {node: '>=20.0.0'} + + '@azure/core-tracing@1.3.1': + resolution: {integrity: sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==} + engines: {node: '>=20.0.0'} + + '@azure/core-util@1.13.1': + resolution: {integrity: sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==} + engines: {node: '>=20.0.0'} + + '@azure/identity@4.13.1': + resolution: {integrity: sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw==} + engines: {node: '>=20.0.0'} + + '@azure/logger@1.3.0': + resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==} + engines: {node: '>=20.0.0'} + + '@azure/msal-browser@5.17.0': + resolution: {integrity: sha512-/yTnW2TCk9Mh+2b/NOaHAN+MryUNxzRTaJD/YtrqOA9bpBWfTXn/iyReRbaLrK/btBo3stEzLyEvuWp2NZ5DuA==} + engines: {node: '>=0.8.0'} + + '@azure/msal-common@16.11.1': + resolution: {integrity: sha512-yPohvMwWLv1XnaWnIUyKUh8CvcVChCGqG/VluGwfGmaAfrZTNt5yQ+sIs462Sgw6+e2K83KGmMJ860p73ZSCrw==} + engines: {node: '>=0.8.0'} + + '@azure/msal-node@5.4.0': + resolution: {integrity: sha512-6EZEParwHRlnSSIikw8FNAnAzwmh71uhveUXdPNFeZFviJ9SH+rwFiurhjzXqICYTrpm3E+dj693QOwfPbJXAQ==} + engines: {node: '>=20'} + '@babel/code-frame@7.29.7': resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} @@ -3156,6 +3212,9 @@ packages: resolution: {integrity: sha512-VVPPgHyQ6ShqnrmDWuxjmUIsO9gWyOZFmuOfLd9LfBGQJwZfy0gvv9pbHSJuoFNIYC7ZDX9aoFwowjcdSC4E8w==} engines: {node: '>=18'} + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@napi-rs/wasm-runtime@1.1.6': resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} peerDependencies: @@ -3184,6 +3243,97 @@ packages: '@nodable/entities@2.1.1': resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==} + '@node-rs/crc32-android-arm-eabi@1.10.6': + resolution: {integrity: sha512-vZAMuJXm3TpWPOkkhxdrofWDv+Q+I2oO7ucLRbXyAPmXFNDhHtBxbO1rk9Qzz+M3eep8ieS4/+jCL1Q0zacNMQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@node-rs/crc32-android-arm64@1.10.6': + resolution: {integrity: sha512-Vl/JbjCinCw/H9gEpZveWCMjxjcEChDcDBM8S4hKay5yyoRCUHJPuKr4sjVDBeOm+1nwU3oOm6Ca8dyblwp4/w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@node-rs/crc32-darwin-arm64@1.10.6': + resolution: {integrity: sha512-kARYANp5GnmsQiViA5Qu74weYQ3phOHSYQf0G+U5wB3NB5JmBHnZcOc46Ig21tTypWtdv7u63TaltJQE41noyg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@node-rs/crc32-darwin-x64@1.10.6': + resolution: {integrity: sha512-Q99bevJVMfLTISpkpKBlXgtPUItrvTWKFyiqoKH5IvscZmLV++NH4V13Pa17GTBmv9n18OwzgQY4/SRq6PQNVA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@node-rs/crc32-freebsd-x64@1.10.6': + resolution: {integrity: sha512-66hpawbNjrgnS9EDMErta/lpaqOMrL6a6ee+nlI2viduVOmRZWm9Rg9XdGTK/+c4bQLdtC6jOd+Kp4EyGRYkAg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@node-rs/crc32-linux-arm-gnueabihf@1.10.6': + resolution: {integrity: sha512-E8Z0WChH7X6ankbVm8J/Yym19Cq3otx6l4NFPS6JW/cWdjv7iw+Sps2huSug+TBprjbcEA+s4TvEwfDI1KScjg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@node-rs/crc32-linux-arm64-gnu@1.10.6': + resolution: {integrity: sha512-LmWcfDbqAvypX0bQjQVPmQGazh4dLiVklkgHxpV4P0TcQ1DT86H/SWpMBMs/ncF8DGuCQ05cNyMv1iddUDugoQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@node-rs/crc32-linux-arm64-musl@1.10.6': + resolution: {integrity: sha512-k8ra/bmg0hwRrIEE8JL1p32WfaN9gDlUUpQRWsbxd1WhjqvXea7kKO6K4DwVxyxlPhBS9Gkb5Urq7Y4mXANzaw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@node-rs/crc32-linux-x64-gnu@1.10.6': + resolution: {integrity: sha512-IfjtqcuFK7JrSZ9mlAFhb83xgium30PguvRjIMI45C3FJwu18bnLk1oR619IYb/zetQT82MObgmqfKOtgemEKw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@node-rs/crc32-linux-x64-musl@1.10.6': + resolution: {integrity: sha512-LbFYsA5M9pNunOweSt6uhxenYQF94v3bHDAQRPTQ3rnjn+mK6IC7YTAYoBjvoJP8lVzcvk9hRj8wp4Jyh6Y80g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@node-rs/crc32-wasm32-wasi@1.10.6': + resolution: {integrity: sha512-KaejdLgHMPsRaxnM+OG9L9XdWL2TabNx80HLdsCOoX9BVhEkfh39OeahBo8lBmidylKbLGMQoGfIKDjq0YMStw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@node-rs/crc32-win32-arm64-msvc@1.10.6': + resolution: {integrity: sha512-x50AXiSxn5Ccn+dCjLf1T7ZpdBiV1Sp5aC+H2ijhJO4alwznvXgWbopPRVhbp2nj0i+Gb6kkDUEyU+508KAdGQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@node-rs/crc32-win32-ia32-msvc@1.10.6': + resolution: {integrity: sha512-DpDxQLaErJF9l36aghe1Mx+cOnYLKYo6qVPqPL9ukJ5rAGLtCdU0C+Zoi3gs9ySm8zmbFgazq/LvmsZYU42aBw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@node-rs/crc32-win32-x64-msvc@1.10.6': + resolution: {integrity: sha512-5B1vXosIIBw1m2Rcnw62IIfH7W9s9f7H7Ma0rRuhT8HR4Xh8QCgw6NJSI2S2MCngsGktYnAhyUvs81b7efTyQw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@node-rs/crc32@1.10.6': + resolution: {integrity: sha512-+llXfqt+UzgoDzT9of5vPQPGqTAVCohU74I9zIBkNo5TH6s2P31DFJOGsJQKN207f0GHnYv5pV3wh3BCY/un/A==} + engines: {node: '>= 10'} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -4423,6 +4573,51 @@ packages: cpu: [x64] os: [win32] + '@secretlint/config-creator@10.2.2': + resolution: {integrity: sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==} + engines: {node: '>=20.0.0'} + + '@secretlint/config-loader@10.2.2': + resolution: {integrity: sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==} + engines: {node: '>=20.0.0'} + + '@secretlint/core@10.2.2': + resolution: {integrity: sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==} + engines: {node: '>=20.0.0'} + + '@secretlint/formatter@10.2.2': + resolution: {integrity: sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==} + engines: {node: '>=20.0.0'} + + '@secretlint/node@10.2.2': + resolution: {integrity: sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==} + engines: {node: '>=20.0.0'} + + '@secretlint/profiler@10.2.2': + resolution: {integrity: sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==} + + '@secretlint/resolver@10.2.2': + resolution: {integrity: sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==} + + '@secretlint/secretlint-formatter-sarif@10.2.2': + resolution: {integrity: sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==} + + '@secretlint/secretlint-rule-no-dotenv@10.2.2': + resolution: {integrity: sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==} + engines: {node: '>=20.0.0'} + + '@secretlint/secretlint-rule-preset-recommend@10.2.2': + resolution: {integrity: sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==} + engines: {node: '>=20.0.0'} + + '@secretlint/source-creator@10.2.2': + resolution: {integrity: sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==} + engines: {node: '>=20.0.0'} + + '@secretlint/types@10.2.2': + resolution: {integrity: sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==} + engines: {node: '>=20.0.0'} + '@shikijs/core@4.2.0': resolution: {integrity: sha512-Hc87Ab1Ld/vEbZRCbwx344I5v+4RU8CVToUTRkqXL1+TjbuOp9U5Xa0M23V4GEWHxVn+yO5otb+HkQVm3ptWQQ==} engines: {node: '>=20'} @@ -4473,6 +4668,10 @@ packages: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@smithy/core@3.24.6': resolution: {integrity: sha512-wBXDRup6UU97VKyaiRo8AssnfStPtG0oAAfpq/bC0a1YYau8pM86YB4kM6ccoVi1mS8l/UHbn9oDM+7uozr/ug==} engines: {node: '>=18.0.0'} @@ -4846,6 +5045,21 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@textlint/ast-node-types@15.7.1': + resolution: {integrity: sha512-Wii5UgUKFEh9Uv6wbq1zr4/Kf+dtjiUuzPrrXzKp8H+ifkvKNzi23V4Nz+6wVyHQn5T28AFuc8VH8OtzvGYecA==} + + '@textlint/linter-formatter@15.7.1': + resolution: {integrity: sha512-TdwZ/debWYFD05K3CcoHtwvnCrza29wZxD+BjDTk/V5N7iRqkK1dTTHSD4A8AIgROLiDkHJmIKQbasbmsg8AvA==} + + '@textlint/module-interop@15.7.1': + resolution: {integrity: sha512-Jg+sQW2L/cRJypk59wtcMUVVpt8vmit5ZMT3gUnFwevP3A6Qp1HfOtUy9ObT4hBX3lOSGT/ekcCDxR1pL7uH1g==} + + '@textlint/resolver@15.7.1': + resolution: {integrity: sha512-8XnO0pgF6mXnm41VvWmBbEIdGPhiCUt31uLZkOis1ECeg/1SoUcIT6Mx/F0e1rukq8l0UlOSeY9a31CsvRMK0g==} + + '@textlint/types@15.7.1': + resolution: {integrity: sha512-Vye/GmFNBTgVzZFtIFJTmLB+s2A7oIADxNG6r9UhfPuY+Czv0z5G3xeyFZZudPlfxURsKUyPIU5XsjOFqVp33A==} + '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -4930,6 +5144,9 @@ packages: '@types/node@24.12.4': resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: @@ -4944,6 +5161,9 @@ packages: '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + '@types/sarif@2.1.7': + resolution: {integrity: sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==} + '@types/statuses@2.0.6': resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} @@ -5018,6 +5238,10 @@ packages: engines: {node: '>=16.20.0'} hasBin: true + '@typespec/ts-http-runtime@0.3.6': + resolution: {integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==} + engines: {node: '>=20.0.0'} + '@ungap/structured-clone@1.3.1': resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} @@ -5215,6 +5439,59 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + '@vscode/vsce-sign-alpine-arm64@2.0.6': + resolution: {integrity: sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==} + cpu: [arm64] + os: [alpine] + + '@vscode/vsce-sign-alpine-x64@2.0.6': + resolution: {integrity: sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==} + cpu: [x64] + os: [alpine] + + '@vscode/vsce-sign-darwin-arm64@2.0.6': + resolution: {integrity: sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==} + cpu: [arm64] + os: [darwin] + + '@vscode/vsce-sign-darwin-x64@2.0.6': + resolution: {integrity: sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==} + cpu: [x64] + os: [darwin] + + '@vscode/vsce-sign-linux-arm64@2.0.6': + resolution: {integrity: sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==} + cpu: [arm64] + os: [linux] + + '@vscode/vsce-sign-linux-arm@2.0.6': + resolution: {integrity: sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==} + cpu: [arm] + os: [linux] + + '@vscode/vsce-sign-linux-x64@2.0.6': + resolution: {integrity: sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==} + cpu: [x64] + os: [linux] + + '@vscode/vsce-sign-win32-arm64@2.0.6': + resolution: {integrity: sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==} + cpu: [arm64] + os: [win32] + + '@vscode/vsce-sign-win32-x64@2.0.6': + resolution: {integrity: sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==} + cpu: [x64] + os: [win32] + + '@vscode/vsce-sign@2.0.9': + resolution: {integrity: sha512-8IvaRvtFyzUnGGl3f5+1Cnor3LqaUWvhaUjAYO8Y39OUYlOf3cRd+dowuQYLpZcP3uwSG+mURwjEBOSq4SOJ0g==} + + '@vscode/vsce@3.9.2': + resolution: {integrity: sha512-XSxMosEEDO6vLxELAHVkwmhC0qe0ijZni2jB9Rcs8kQsW4lhTDQ/wMzmwFs/buotAWSnpmUp/dRWD2ufG3UYKA==} + engines: {node: '>= 20'} + hasBin: true + '@xmldom/xmldom@0.8.13': resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==} engines: {node: '>=10.0.0'} @@ -5493,6 +5770,10 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + astro@7.0.3: resolution: {integrity: sha512-CK+G+Tl2DMV1EXCwVG45vyurxf2IfRTklMxDhRKn+tst9Yl8rWXpudL62Fa6zin5Bt968FBvuyASj1aJShROZg==} engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'} @@ -5542,6 +5823,9 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + azure-devops-node-api@12.5.0: + resolution: {integrity: sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==} + babel-dead-code-elimination@1.0.12: resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} @@ -5636,11 +5920,18 @@ packages: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} + binaryextensions@6.11.0: + resolution: {integrity: sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==} + engines: {node: '>=4'} + bippy@0.5.41: resolution: {integrity: sha512-jCP2pXXLhXqPrAN+iSEFZmLI4uUM4fjSqajh0K+TmM062VehfDT3ZJNkrTGyN701Z5XMejs9qAudSqkMGhSMKg==} peerDependencies: react: '>=17.0.1' + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -5655,6 +5946,9 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + boundary@2.0.0: + resolution: {integrity: sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==} + bowser@2.14.1: resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} @@ -5697,6 +5991,9 @@ packages: buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -5722,6 +6019,10 @@ packages: bun-types@1.3.14: resolution: {integrity: sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ==} + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -5790,6 +6091,13 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.2.0: + resolution: {integrity: sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==} + engines: {node: '>=20.18.1'} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -5798,6 +6106,9 @@ packages: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -5885,6 +6196,10 @@ packages: resolution: {integrity: sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw==} engines: {node: '>=0.10.0'} + cockatiel@3.2.1: + resolution: {integrity: sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==} + engines: {node: '>=16'} + code-excerpt@4.0.0: resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5935,6 +6250,10 @@ packages: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -6111,10 +6430,22 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} + defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -6126,6 +6457,10 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -6354,6 +6689,13 @@ packages: duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + + editions@6.22.0: + resolution: {integrity: sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==} + engines: {ecmascript: '>= es5', node: '>=4'} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -6411,6 +6753,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + encoding-sniffer@0.2.1: + resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} + end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -6426,6 +6771,10 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -6526,6 +6875,10 @@ packages: resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} engines: {node: '>=18.0.0'} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + expect-type@1.4.0: resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} @@ -6968,6 +7321,15 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + fontace@0.4.1: resolution: {integrity: sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==} @@ -6994,6 +7356,9 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -7071,6 +7436,9 @@ packages: resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} engines: {node: '>=6'} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -7097,6 +7465,10 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} + globby@14.1.0: + resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} + engines: {node: '>=18'} + gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -7216,6 +7588,9 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} @@ -7235,6 +7610,10 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} @@ -7269,6 +7648,10 @@ packages: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} + index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} + engines: {node: '>=18'} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -7276,6 +7659,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@7.0.0: resolution: {integrity: sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} @@ -7323,6 +7709,10 @@ packages: is-arrayish@0.3.4: resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + is-core-module@2.16.2: resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} engines: {node: '>= 0.4'} @@ -7378,6 +7768,10 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} + is-it-type@5.1.3: + resolution: {integrity: sha512-AX2uU0HW+TxagTgQXOJY7+2fbFHemC7YFBwN1XqD8qQMKdtfbOC8OC3fUb4s5NU59a3662Dzwto8tWDdZYRXxg==} + engines: {node: '>=12'} + is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} @@ -7440,6 +7834,10 @@ packages: isomorphic.js@0.2.5: resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} + istextorbinary@9.5.0: + resolution: {integrity: sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==} + engines: {node: '>=4'} + jake@10.9.4: resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} engines: {node: '>=10'} @@ -7541,9 +7939,22 @@ packages: jsonfile@6.2.1: resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + jsonwebtoken@9.0.3: + resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} + engines: {node: '>=12', npm: '>=6'} + jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + + jws@4.0.1: + resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + + keytar@7.9.0: + resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -7810,6 +8221,9 @@ packages: resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} + linkify-it@5.0.2: + resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==} + locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -7820,13 +8234,37 @@ packages: lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + lodash.throttle@4.1.1: resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} @@ -7891,6 +8329,10 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + markdown-it@14.3.0: + resolution: {integrity: sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==} + hasBin: true + markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -7970,6 +8412,9 @@ packages: mdn-data@2.27.1: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + media-typer@1.1.0: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} @@ -8219,6 +8664,9 @@ packages: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -8264,6 +8712,9 @@ packages: multitars@1.0.0: resolution: {integrity: sha512-H/J4fMLedtudftaYMOg7ajzLYgT3/rwbWVJbqr/iUgB8DQztn38ys5HOqI1CzSxx8QhXXwOOnnBvd4v3jG5+Mg==} + mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + mute-stream@2.0.0: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} @@ -8283,6 +8734,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -8302,10 +8756,17 @@ packages: nlcst-to-string@4.0.0: resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + node-abi@3.94.0: + resolution: {integrity: sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==} + engines: {node: '>=10'} + node-abi@4.31.0: resolution: {integrity: sha512-Erq5w/t3syw3s4sDsUaX4QttIdBPsGKTT1DTRsCkTonGggczhlDKm/wDX3o+HPJpQ41EjXCbcmXf0tgr5YZJXw==} engines: {node: '>=22.12.0'} + node-addon-api@4.3.0: + resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} + node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} @@ -8345,11 +8806,19 @@ packages: resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} + node-sarif-builder@3.4.0: + resolution: {integrity: sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==} + engines: {node: '>=20'} + nopt@9.0.0: resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -8430,6 +8899,10 @@ packages: oniguruma-to-es@4.3.6: resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -8449,6 +8922,11 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + ovsx@0.10.12: + resolution: {integrity: sha512-WwMj1iQDvCk02029oxPnkFXsPrHZ+WzmoNW5pJ8JGepHtL30i2JE4s3C3wqzQqj6a35vx2hp0gV3TdfefGmvMg==} + engines: {node: '>= 20'} + hasBin: true + oxfmt@0.57.0: resolution: {integrity: sha512-ZB7Bi+rGDSqmVIo9jwcLyFgjxXvQhDdU+jx+ZrVy6VRiVXK2+CHc4hO3J4dUQjHe7V0ymHB+MDuv5z+NhK07HA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8499,6 +8977,10 @@ packages: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} + p-map@7.0.5: + resolution: {integrity: sha512-e8vJF4XdVkzqqSHguEMz41mQO1wKwxKm5ENrUJQUu9kLDCtn83cxbyHZcszr4QC5zEA7WffRRC4gsTecC7J9oA==} + engines: {node: '>=18'} + p-queue@9.3.0: resolution: {integrity: sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==} engines: {node: '>=20'} @@ -8520,6 +9002,10 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + parse-latin@7.0.0: resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} @@ -8527,6 +9013,15 @@ packages: resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} engines: {node: '>=10'} + parse-semver@1.1.1: + resolution: {integrity: sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==} + + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -8573,6 +9068,10 @@ packages: path-to-regexp@8.4.2: resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -8672,6 +9171,13 @@ packages: resolution: {integrity: sha512-ZIfcLJC+7E7FBFnDxm9MPmt7D+DidyQ26lewieO75AdhA2ayMtsJSES0iWzqJQbcVRSrTufQoy0DR94xHue0oA==} engines: {node: '>=10.4.0'} + pluralize@2.0.0: + resolution: {integrity: sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + pngjs@3.4.0: resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} engines: {node: '>=4.0.0'} @@ -8732,6 +9238,12 @@ packages: preact@11.0.0-beta.0: resolution: {integrity: sha512-IcODoASASYwJ9kxz7+MJeiJhvLriwSb4y4mHIyxdgaRZp6kPUud7xytrk/6GZw8U3y6EFJaRb5wi9SrEK+8+lg==} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. + hasBin: true + prettier@3.8.3: resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} engines: {node: '>=14'} @@ -8799,6 +9311,10 @@ packages: pump@3.0.4: resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -8842,6 +9358,13 @@ packages: resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} engines: {node: '>= 0.10'} + rc-config-loader@4.1.4: + resolution: {integrity: sha512-3GiwEzklkbXTDp52UR5nT8iXgYAx1V9ZG/kDZT7p60u2GCv2XTwQq4NzinMoMpNtXhmt3WkhYXcj6HH8HdwCEQ==} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + react-devtools-core@6.1.5: resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==} @@ -9065,8 +9588,20 @@ packages: resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} hasBin: true - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + read-pkg@9.0.1: + resolution: {integrity: sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==} + engines: {node: '>=18'} + + read@1.0.7: + resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} + engines: {node: '>=0.8'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} @@ -9262,6 +9797,10 @@ packages: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -9291,6 +9830,11 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} + secretlint@10.2.2: + resolution: {integrity: sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==} + engines: {node: '>=20.0.0'} + hasBin: true + semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} @@ -9408,6 +9952,16 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + simple-invariant@2.0.1: + resolution: {integrity: sha512-1sbhsxqI+I2tqlmjbz99GXNmZtr6tKIyEgGGnJw/MKGblalqk/XoOYYFJlBzTKZCxx8kLaD3FD5s9BEEjx5Pyg==} + engines: {node: '>=10'} + simple-plist@1.3.1: resolution: {integrity: sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==} @@ -9425,6 +9979,14 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + slice-ansi@8.0.0: resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} engines: {node: '>=20'} @@ -9455,6 +10017,18 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.23: + resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} + split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -9560,12 +10134,19 @@ packages: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + strnum@2.3.0: resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} structured-headers@0.4.1: resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} + structured-source@4.0.0: + resolution: {integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==} + style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} @@ -9592,6 +10173,10 @@ packages: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + engines: {node: '>=14.18'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -9604,6 +10189,10 @@ packages: tabbable@6.4.0: resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + table@6.9.0: + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} + tagged-tag@1.0.0: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} @@ -9621,6 +10210,13 @@ packages: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} + tar-fs@2.1.5: + resolution: {integrity: sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + tar@7.5.16: resolution: {integrity: sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w==} engines: {node: '>=18'} @@ -9636,6 +10232,10 @@ packages: resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} engines: {node: '>=8'} + terminal-link@4.0.0: + resolution: {integrity: sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==} + engines: {node: '>=18'} + terminal-size@4.0.1: resolution: {integrity: sha512-avMLDQpUI9I5XFrklECw1ZEUPJhqzcwSWsyyI8blhRLT+8N1jLJWLWWYQpB2q2xthq8xDvjZPISVh53T/+CLYQ==} engines: {node: '>=18'} @@ -9645,6 +10245,13 @@ packages: engines: {node: '>=10'} hasBin: true + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + textextensions@6.11.0: + resolution: {integrity: sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==} + engines: {node: '>=4'} + throat@5.0.0: resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} @@ -9739,6 +10346,13 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -9755,6 +10369,10 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + type-fest@5.7.0: resolution: {integrity: sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg==} engines: {node: '>=20'} @@ -9763,6 +10381,9 @@ packages: resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} engines: {node: '>= 18'} + typed-rest-client@1.8.11: + resolution: {integrity: sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==} + typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} @@ -9774,6 +10395,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} @@ -9783,6 +10407,9 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + underscore@1.13.8: + resolution: {integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==} + undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -9817,6 +10444,14 @@ packages: resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -9963,6 +10598,9 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -10016,6 +10654,9 @@ packages: deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-name@5.0.1: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -10030,6 +10671,10 @@ packages: react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + version-range@4.15.0: + resolution: {integrity: sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==} + engines: {node: '>=4'} + vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} @@ -10218,9 +10863,18 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + whatwg-url-minimum@0.1.2: resolution: {integrity: sha512-XPEm0XFQWNVG292lII1PrRRJl3sItrs7CettZ4ncYxuDVpLyy+NwlGyut2hXI0JswcJUxeCH+CyOJK0ZzAXD6A==} @@ -10300,6 +10954,10 @@ packages: utf-8-validate: optional: true + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + xcode@3.0.1: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} @@ -10316,6 +10974,10 @@ packages: resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} engines: {node: '>=16.0.0'} + xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + xml2js@0.6.0: resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} engines: {node: '>=4.0.0'} @@ -10370,9 +11032,20 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yauzl-promise@4.0.0: + resolution: {integrity: sha512-/HCXpyHXJQQHvFq9noqrjfa/WpQC2XYs3vI7tBiAi4QiIU1knvYhZGaO1QPjwIVMdqflxbmwgMXtYeaRiAE0CA==} + engines: {node: '>=16'} + yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + yauzl@3.4.0: + resolution: {integrity: sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==} + engines: {node: '>=12'} + + yazl@2.5.1: + resolution: {integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==} + yjs@13.6.31: resolution: {integrity: sha512-Eq+5BRfbeGyqGVrTJL3bEcr8gKkxPuyuoHmAwpk52fDb8kOVMrfVSTRPd6yiGgX5Fskb96qCRjzjbRjrL4YEnw==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} @@ -10853,6 +11526,94 @@ snapshots: '@aws/lambda-invoke-store@0.2.4': {} + '@azu/format-text@1.0.2': {} + + '@azu/style-format@1.0.1': + dependencies: + '@azu/format-text': 1.0.2 + + '@azure/abort-controller@2.1.2': + dependencies: + tslib: 2.8.1 + + '@azure/core-auth@1.10.1': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-util': 1.13.1 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-client@1.10.2': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/logger': 1.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-rest-pipeline@1.24.0': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/logger': 1.3.0 + '@typespec/ts-http-runtime': 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-tracing@1.3.1': + dependencies: + tslib: 2.8.1 + + '@azure/core-util@1.13.1': + dependencies: + '@azure/abort-controller': 2.1.2 + '@typespec/ts-http-runtime': 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/identity@4.13.1': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-client': 1.10.2 + '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/logger': 1.3.0 + '@azure/msal-browser': 5.17.0 + '@azure/msal-node': 5.4.0 + open: 10.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/logger@1.3.0': + dependencies: + '@typespec/ts-http-runtime': 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/msal-browser@5.17.0': + dependencies: + '@azure/msal-common': 16.11.1 + + '@azure/msal-common@16.11.1': {} + + '@azure/msal-node@5.4.0': + dependencies: + '@azure/msal-common': 16.11.1 + jsonwebtoken: 9.0.3 + '@babel/code-frame@7.29.7': dependencies: '@babel/helper-validator-identifier': 7.29.7 @@ -13219,6 +13980,13 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@tybys/wasm-util': 0.10.3 + optional: true + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 @@ -13247,6 +14015,67 @@ snapshots: '@nodable/entities@2.1.1': {} + '@node-rs/crc32-android-arm-eabi@1.10.6': + optional: true + + '@node-rs/crc32-android-arm64@1.10.6': + optional: true + + '@node-rs/crc32-darwin-arm64@1.10.6': + optional: true + + '@node-rs/crc32-darwin-x64@1.10.6': + optional: true + + '@node-rs/crc32-freebsd-x64@1.10.6': + optional: true + + '@node-rs/crc32-linux-arm-gnueabihf@1.10.6': + optional: true + + '@node-rs/crc32-linux-arm64-gnu@1.10.6': + optional: true + + '@node-rs/crc32-linux-arm64-musl@1.10.6': + optional: true + + '@node-rs/crc32-linux-x64-gnu@1.10.6': + optional: true + + '@node-rs/crc32-linux-x64-musl@1.10.6': + optional: true + + '@node-rs/crc32-wasm32-wasi@1.10.6': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@node-rs/crc32-win32-arm64-msvc@1.10.6': + optional: true + + '@node-rs/crc32-win32-ia32-msvc@1.10.6': + optional: true + + '@node-rs/crc32-win32-x64-msvc@1.10.6': + optional: true + + '@node-rs/crc32@1.10.6': + optionalDependencies: + '@node-rs/crc32-android-arm-eabi': 1.10.6 + '@node-rs/crc32-android-arm64': 1.10.6 + '@node-rs/crc32-darwin-arm64': 1.10.6 + '@node-rs/crc32-darwin-x64': 1.10.6 + '@node-rs/crc32-freebsd-x64': 1.10.6 + '@node-rs/crc32-linux-arm-gnueabihf': 1.10.6 + '@node-rs/crc32-linux-arm64-gnu': 1.10.6 + '@node-rs/crc32-linux-arm64-musl': 1.10.6 + '@node-rs/crc32-linux-x64-gnu': 1.10.6 + '@node-rs/crc32-linux-x64-musl': 1.10.6 + '@node-rs/crc32-wasm32-wasi': 1.10.6 + '@node-rs/crc32-win32-arm64-msvc': 1.10.6 + '@node-rs/crc32-win32-ia32-msvc': 1.10.6 + '@node-rs/crc32-win32-x64-msvc': 1.10.6 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -14469,6 +15298,80 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.61.0': optional: true + '@secretlint/config-creator@10.2.2': + dependencies: + '@secretlint/types': 10.2.2 + + '@secretlint/config-loader@10.2.2': + dependencies: + '@secretlint/profiler': 10.2.2 + '@secretlint/resolver': 10.2.2 + '@secretlint/types': 10.2.2 + ajv: 8.20.0 + debug: 4.4.3 + rc-config-loader: 4.1.4 + transitivePeerDependencies: + - supports-color + + '@secretlint/core@10.2.2': + dependencies: + '@secretlint/profiler': 10.2.2 + '@secretlint/types': 10.2.2 + debug: 4.4.3 + structured-source: 4.0.0 + transitivePeerDependencies: + - supports-color + + '@secretlint/formatter@10.2.2': + dependencies: + '@secretlint/resolver': 10.2.2 + '@secretlint/types': 10.2.2 + '@textlint/linter-formatter': 15.7.1 + '@textlint/module-interop': 15.7.1 + '@textlint/types': 15.7.1 + chalk: 5.6.2 + debug: 4.4.3 + pluralize: 8.0.0 + strip-ansi: 7.2.0 + table: 6.9.0 + terminal-link: 4.0.0 + transitivePeerDependencies: + - supports-color + + '@secretlint/node@10.2.2': + dependencies: + '@secretlint/config-loader': 10.2.2 + '@secretlint/core': 10.2.2 + '@secretlint/formatter': 10.2.2 + '@secretlint/profiler': 10.2.2 + '@secretlint/source-creator': 10.2.2 + '@secretlint/types': 10.2.2 + debug: 4.4.3 + p-map: 7.0.5 + transitivePeerDependencies: + - supports-color + + '@secretlint/profiler@10.2.2': {} + + '@secretlint/resolver@10.2.2': {} + + '@secretlint/secretlint-formatter-sarif@10.2.2': + dependencies: + node-sarif-builder: 3.4.0 + + '@secretlint/secretlint-rule-no-dotenv@10.2.2': + dependencies: + '@secretlint/types': 10.2.2 + + '@secretlint/secretlint-rule-preset-recommend@10.2.2': {} + + '@secretlint/source-creator@10.2.2': + dependencies: + '@secretlint/types': 10.2.2 + istextorbinary: 9.5.0 + + '@secretlint/types@10.2.2': {} + '@shikijs/core@4.2.0': dependencies: '@shikijs/primitive': 4.2.0 @@ -14528,6 +15431,8 @@ snapshots: '@sindresorhus/is@4.6.0': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@smithy/core@3.24.6': dependencies: '@aws-crypto/crc32': 5.2.0 @@ -14883,6 +15788,35 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 + '@textlint/ast-node-types@15.7.1': {} + + '@textlint/linter-formatter@15.7.1': + dependencies: + '@azu/format-text': 1.0.2 + '@azu/style-format': 1.0.1 + '@textlint/module-interop': 15.7.1 + '@textlint/resolver': 15.7.1 + '@textlint/types': 15.7.1 + chalk: 4.1.2 + debug: 4.4.3 + js-yaml: 4.2.0 + lodash: 4.18.1 + pluralize: 2.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + table: 6.9.0 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + '@textlint/module-interop@15.7.1': {} + + '@textlint/resolver@15.7.1': {} + + '@textlint/types@15.7.1': + dependencies: + '@textlint/ast-node-types': 15.7.1 + '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 @@ -14985,6 +15919,8 @@ snapshots: dependencies: undici-types: 7.16.0 + '@types/normalize-package-data@2.4.4': {} + '@types/react-dom@19.2.3(@types/react@19.2.16)': dependencies: '@types/react': 19.2.16 @@ -15001,6 +15937,8 @@ snapshots: dependencies: '@types/node': 24.12.4 + '@types/sarif@2.1.7': {} + '@types/statuses@2.0.6': {} '@types/trusted-types@2.0.7': @@ -15058,6 +15996,14 @@ snapshots: '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260604.1 '@typescript/native-preview-win32-x64': 7.0.0-dev.20260604.1 + '@typespec/ts-http-runtime@0.3.6': + dependencies: + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + '@ungap/structured-clone@1.3.1': {} '@vercel/config@0.3.0': @@ -15242,6 +16188,81 @@ snapshots: '@vscode/l10n@0.0.18': {} + '@vscode/vsce-sign-alpine-arm64@2.0.6': + optional: true + + '@vscode/vsce-sign-alpine-x64@2.0.6': + optional: true + + '@vscode/vsce-sign-darwin-arm64@2.0.6': + optional: true + + '@vscode/vsce-sign-darwin-x64@2.0.6': + optional: true + + '@vscode/vsce-sign-linux-arm64@2.0.6': + optional: true + + '@vscode/vsce-sign-linux-arm@2.0.6': + optional: true + + '@vscode/vsce-sign-linux-x64@2.0.6': + optional: true + + '@vscode/vsce-sign-win32-arm64@2.0.6': + optional: true + + '@vscode/vsce-sign-win32-x64@2.0.6': + optional: true + + '@vscode/vsce-sign@2.0.9': + optionalDependencies: + '@vscode/vsce-sign-alpine-arm64': 2.0.6 + '@vscode/vsce-sign-alpine-x64': 2.0.6 + '@vscode/vsce-sign-darwin-arm64': 2.0.6 + '@vscode/vsce-sign-darwin-x64': 2.0.6 + '@vscode/vsce-sign-linux-arm': 2.0.6 + '@vscode/vsce-sign-linux-arm64': 2.0.6 + '@vscode/vsce-sign-linux-x64': 2.0.6 + '@vscode/vsce-sign-win32-arm64': 2.0.6 + '@vscode/vsce-sign-win32-x64': 2.0.6 + + '@vscode/vsce@3.9.2': + dependencies: + '@azure/identity': 4.13.1 + '@secretlint/node': 10.2.2 + '@secretlint/secretlint-formatter-sarif': 10.2.2 + '@secretlint/secretlint-rule-no-dotenv': 10.2.2 + '@secretlint/secretlint-rule-preset-recommend': 10.2.2 + '@vscode/vsce-sign': 2.0.9 + azure-devops-node-api: 12.5.0 + chalk: 4.1.2 + cheerio: 1.2.0 + cockatiel: 3.2.1 + commander: 12.1.0 + form-data: 4.0.5 + glob: 13.0.6 + hosted-git-info: 4.1.0 + jsonc-parser: 3.3.1 + leven: 3.1.0 + markdown-it: 14.3.0 + mime: 1.6.0 + minimatch: 10.2.5 + parse-semver: 1.1.1 + read: 1.0.7 + secretlint: 10.2.2 + semver: 7.8.5 + tmp: 0.2.7 + typed-rest-client: 1.8.11 + url-join: 4.0.1 + xml2js: 0.5.0 + yauzl: 3.4.0 + yazl: 2.5.1 + optionalDependencies: + keytar: 7.9.0 + transitivePeerDependencies: + - supports-color + '@xmldom/xmldom@0.8.13': {} '@xmldom/xmldom@0.9.10': {} @@ -15523,7 +16544,9 @@ snapshots: assertion-error@2.0.1: {} - astro@7.0.3(@astrojs/markdown-remark@7.2.0)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.12.4)(aws4fetch@1.0.20)(idb-keyval@6.2.1)(ioredis@5.11.0)(jiti@2.7.0)(rollup@4.61.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0): + astral-regex@2.0.0: {} + + astro@7.0.3(@astrojs/markdown-remark@7.2.0)(@azure/identity@4.13.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.12.4)(aws4fetch@1.0.20)(idb-keyval@6.2.1)(ioredis@5.11.0)(jiti@2.7.0)(rollup@4.61.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0): dependencies: '@astrojs/compiler-rs': 0.2.3(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) '@astrojs/internal-helpers': 0.10.0 @@ -15574,7 +16597,7 @@ snapshots: ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 - unstorage: 1.17.5(aws4fetch@1.0.20)(idb-keyval@6.2.1)(ioredis@5.11.0) + unstorage: 1.17.5(@azure/identity@4.13.1)(aws4fetch@1.0.20)(idb-keyval@6.2.1)(ioredis@5.11.0) vfile: 6.0.3 vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)' vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@24.12.4)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(yaml@2.9.0)) @@ -15646,6 +16669,11 @@ snapshots: axobject-query@4.1.0: {} + azure-devops-node-api@12.5.0: + dependencies: + tunnel: 0.0.6 + typed-rest-client: 1.8.11 + babel-dead-code-elimination@1.0.12: dependencies: '@babel/core': 7.29.7 @@ -15825,10 +16853,21 @@ snapshots: big-integer@1.6.52: {} + binaryextensions@6.11.0: + dependencies: + editions: 6.22.0 + bippy@0.5.41(react@19.2.6): dependencies: react: 19.2.6 + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + bluebird@3.7.2: {} body-parser@2.3.0: @@ -15850,6 +16889,8 @@ snapshots: boolean@3.2.0: optional: true + boundary@2.0.0: {} + bowser@2.14.1: {} bplist-creator@0.1.0: @@ -15899,6 +16940,8 @@ snapshots: buffer-crc32@0.2.13: {} + buffer-equal-constant-time@1.0.1: {} + buffer-from@1.1.2: {} buffer@5.7.1: @@ -15948,6 +16991,10 @@ snapshots: dependencies: '@types/node': 24.12.4 + bundle-name@4.1.0: + dependencies: + run-applescript: 7.1.0 + bytes@3.1.2: {} bytestreamjs@2.0.1: {} @@ -16007,14 +17054,40 @@ snapshots: character-reference-invalid@2.0.1: {} - chokidar@4.0.3: + cheerio-select@2.1.0: dependencies: - readdirp: 4.1.2 + boolbase: 1.0.0 + css-select: 5.2.2 + css-what: 6.2.2 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + + cheerio@1.2.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + encoding-sniffer: 0.2.1 + htmlparser2: 10.1.0 + parse5: 7.3.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 7.27.1 + whatwg-mimetype: 4.0.0 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 chokidar@5.0.0: dependencies: readdirp: 5.0.0 + chownr@1.1.4: + optional: true + chownr@3.0.0: {} chrome-launcher@0.15.2: @@ -16094,6 +17167,8 @@ snapshots: cluster-key-slot@1.1.1: {} + cockatiel@3.2.1: {} + code-excerpt@4.0.0: dependencies: convert-to-spaces: 2.0.1 @@ -16136,6 +17211,8 @@ snapshots: commander@5.1.0: {} + commander@6.2.1: {} + commander@7.2.0: {} commander@9.5.0: @@ -16300,8 +17377,18 @@ snapshots: dependencies: mimic-response: 3.1.0 + deep-extend@0.6.0: + optional: true + deepmerge@4.3.1: {} + default-browser-id@5.0.1: {} + + default-browser@5.5.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 + defaults@1.0.4: dependencies: clone: 1.0.4 @@ -16313,14 +17400,14 @@ snapshots: es-define-property: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 - optional: true + + define-lazy-prop@3.0.0: {} define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - optional: true defu@6.1.7: {} @@ -16439,6 +17526,14 @@ snapshots: dependencies: readable-stream: 2.3.8 + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + + editions@6.22.0: + dependencies: + version-range: 4.15.0 + ee-first@1.1.1: {} effect@4.0.0-beta.78(patch_hash=c502bc684210b707dfceb87d8fe6ad6843395af6e19cfc02cd65854898bde2c5): @@ -16550,6 +17645,11 @@ snapshots: encodeurl@2.0.0: {} + encoding-sniffer@0.2.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -16563,6 +17663,8 @@ snapshots: entities@6.0.1: {} + entities@7.0.1: {} + env-paths@2.2.1: {} environment@1.1.0: {} @@ -16685,6 +17787,9 @@ snapshots: dependencies: eventsource-parser: 3.1.0 + expand-template@2.0.3: + optional: true + expect-type@1.4.0: {} expo-application@56.0.3(expo@56.0.12): @@ -17451,6 +18556,8 @@ snapshots: flow-enums-runtime@0.0.6: {} + follow-redirects@1.16.0: {} + fontace@0.4.1: dependencies: fontkitten: 1.0.3 @@ -17475,6 +18582,9 @@ snapshots: fresh@2.0.0: {} + fs-constants@1.0.0: + optional: true + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -17563,6 +18673,9 @@ snapshots: getenv@2.0.0: {} + github-from-package@0.0.0: + optional: true + github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -17600,7 +18713,15 @@ snapshots: dependencies: define-properties: 1.2.1 gopd: 1.2.0 - optional: true + + globby@14.1.0: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.5 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 gopd@1.2.0: {} @@ -17641,7 +18762,6 @@ snapshots: has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 - optional: true has-symbols@1.1.0: {} @@ -17804,6 +18924,13 @@ snapshots: html-void-elements@3.0.0: {} + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 + http-cache-semantics@4.2.0: {} http-errors@2.0.1: @@ -17833,6 +18960,10 @@ snapshots: transitivePeerDependencies: - supports-color + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + iconv-lite@0.7.2: dependencies: safer-buffer: 2.1.2 @@ -17857,6 +18988,8 @@ snapshots: indent-string@5.0.0: {} + index-to-position@1.2.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -17864,6 +18997,9 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: + optional: true + ini@7.0.0: {} ink@6.8.0(@types/react@19.2.16)(bufferutil@4.1.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react@19.2.6)(utf-8-validate@6.0.6): @@ -17934,6 +19070,10 @@ snapshots: is-arrayish@0.3.4: {} + is-ci@2.0.0: + dependencies: + ci-info: 2.0.0 + is-core-module@2.16.2: dependencies: hasown: 2.0.4 @@ -17968,6 +19108,10 @@ snapshots: is-interactive@2.0.0: {} + is-it-type@5.1.3: + dependencies: + globalthis: 1.0.4 + is-node-process@1.2.0: {} is-number@7.0.0: {} @@ -18006,6 +19150,12 @@ snapshots: isomorphic.js@0.2.5: {} + istextorbinary@9.5.0: + dependencies: + binaryextensions: 6.11.0 + editions: 6.22.0 + textextensions: 6.11.0 + jake@10.9.4: dependencies: async: 3.2.6 @@ -18100,6 +19250,19 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsonwebtoken@9.0.3: + dependencies: + jws: 4.0.1 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.8.5 + jszip@3.10.1: dependencies: lie: 3.3.0 @@ -18107,6 +19270,23 @@ snapshots: readable-stream: 2.3.8 setimmediate: 1.0.5 + jwa@2.0.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@4.0.1: + dependencies: + jwa: 2.0.1 + safe-buffer: 5.2.1 + + keytar@7.9.0: + dependencies: + node-addon-api: 4.3.0 + prebuild-install: 7.1.3 + optional: true + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -18304,6 +19484,10 @@ snapshots: lightningcss-win32-arm64-msvc: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0 + linkify-it@5.0.2: + dependencies: + uc.micro: 2.1.0 + locate-path@3.0.0: dependencies: p-locate: 3.0.0 @@ -18313,10 +19497,26 @@ snapshots: lodash.escaperegexp@4.1.2: {} + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} + lodash.isequal@4.5.0: {} + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.once@4.1.1: {} + lodash.throttle@4.1.1: {} + lodash.truncate@4.4.2: {} + lodash@4.18.1: {} log-symbols@2.2.0: @@ -18374,6 +19574,15 @@ snapshots: dependencies: tmpl: 1.0.5 + markdown-it@14.3.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.2 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + markdown-table@3.0.4: {} marked@15.0.12: {} @@ -18558,6 +19767,8 @@ snapshots: mdn-data@2.27.1: {} + mdurl@2.0.0: {} + media-typer@1.1.0: {} memoize-one@5.2.1: {} @@ -18995,6 +20206,9 @@ snapshots: dependencies: minipass: 7.1.3 + mkdirp-classic@0.5.3: + optional: true + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -19054,6 +20268,8 @@ snapshots: multitars@1.0.0: {} + mute-stream@0.0.8: {} + mute-stream@2.0.0: {} mysql2@3.22.4(@types/node@24.12.4): @@ -19074,6 +20290,9 @@ snapshots: nanoid@3.3.12: {} + napi-build-utils@2.0.0: + optional: true + negotiator@0.6.3: {} negotiator@0.6.4: {} @@ -19086,10 +20305,18 @@ snapshots: dependencies: '@types/nlcst': 2.0.3 + node-abi@3.94.0: + dependencies: + semver: 7.8.5 + optional: true + node-abi@4.31.0: dependencies: semver: 7.8.5 + node-addon-api@4.3.0: + optional: true + node-addon-api@7.1.1: {} node-api-version@0.2.1: @@ -19131,10 +20358,21 @@ snapshots: node-releases@2.0.46: {} + node-sarif-builder@3.4.0: + dependencies: + '@types/sarif': 2.1.7 + fs-extra: 11.3.5 + nopt@9.0.0: dependencies: abbrev: 4.0.0 + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.8.5 + validate-npm-package-license: 3.0.4 + normalize-path@3.0.0: {} normalize-url@6.1.0: {} @@ -19160,8 +20398,7 @@ snapshots: object-inspect@1.13.4: {} - object-keys@1.1.1: - optional: true + object-keys@1.1.1: {} obuf@1.1.2: {} @@ -19209,6 +20446,13 @@ snapshots: regex: 6.1.0 regex-recursion: 6.0.2 + open@10.2.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + open@7.4.2: dependencies: is-docker: 2.2.1 @@ -19240,6 +20484,20 @@ snapshots: outvariant@1.4.3: {} + ovsx@0.10.12: + dependencies: + '@vscode/vsce': 3.9.2 + commander: 6.2.1 + follow-redirects: 1.16.0 + is-ci: 2.0.0 + leven: 3.1.0 + semver: 7.8.5 + tmp: 0.2.7 + yauzl-promise: 4.0.0 + transitivePeerDependencies: + - debug + - supports-color + oxfmt@0.57.0(vite-plus@0.2.2(@types/node@24.12.4)(bufferutil@4.1.0)(esbuild@0.28.1)(jiti@2.7.0)(msw@2.12.11(@types/node@24.12.4)(typescript@6.0.3))(terser@5.48.0)(typescript@6.0.3)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)): dependencies: tinypool: 2.1.0 @@ -19316,6 +20574,8 @@ snapshots: dependencies: p-limit: 2.3.0 + p-map@7.0.5: {} + p-queue@9.3.0: dependencies: eventemitter3: 5.0.4 @@ -19339,6 +20599,12 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.29.7 + index-to-position: 1.2.0 + type-fest: 4.41.0 + parse-latin@7.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -19353,6 +20619,19 @@ snapshots: dependencies: pngjs: 3.4.0 + parse-semver@1.1.1: + dependencies: + semver: 5.7.2 + + parse5-htmlparser2-tree-adapter@7.1.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.3.0 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.3.0 + parse5@7.3.0: dependencies: entities: 6.0.1 @@ -19384,6 +20663,8 @@ snapshots: path-to-regexp@8.4.2: {} + path-type@6.0.0: {} + pathe@2.0.3: {} pe-library@0.4.1: {} @@ -19480,6 +20761,10 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 15.1.1 + pluralize@2.0.0: {} + + pluralize@8.0.0: {} + pngjs@3.4.0: {} pngjs@7.0.0: {} @@ -19523,6 +20808,22 @@ snapshots: preact@11.0.0-beta.0: {} + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.1.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.94.0 + pump: 3.0.4 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.5 + tunnel-agent: 0.6.0 + optional: true + prettier@3.8.3: {} pretty-cache-header@1.0.0: @@ -19587,6 +20888,8 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 + punycode.js@2.3.1: {} + punycode@2.3.1: {} pure-rand@8.4.0: {} @@ -19628,6 +20931,23 @@ snapshots: iconv-lite: 0.7.2 unpipe: 1.0.0 + rc-config-loader@4.1.4: + dependencies: + debug: 4.4.3 + js-yaml: 4.2.0 + json5: 2.2.3 + require-from-string: 2.0.2 + transitivePeerDependencies: + - supports-color + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + optional: true + react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6): dependencies: shell-quote: 1.8.4 @@ -20054,6 +21374,18 @@ snapshots: transitivePeerDependencies: - supports-color + read-pkg@9.0.1: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 6.0.2 + parse-json: 8.3.0 + type-fest: 4.41.0 + unicorn-magic: 0.1.0 + + read@1.0.7: + dependencies: + mute-stream: 0.0.8 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.2 @@ -20064,6 +21396,13 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + optional: true + readdirp@4.1.2: {} readdirp@5.0.0: {} @@ -20393,6 +21732,8 @@ snapshots: transitivePeerDependencies: - supports-color + run-applescript@7.1.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -20435,6 +21776,18 @@ snapshots: ajv-formats: 2.1.1(ajv@8.20.0) ajv-keywords: 5.1.0(ajv@8.20.0) + secretlint@10.2.2: + dependencies: + '@secretlint/config-creator': 10.2.2 + '@secretlint/formatter': 10.2.2 + '@secretlint/node': 10.2.2 + '@secretlint/profiler': 10.2.2 + debug: 4.4.3 + globby: 14.1.0 + read-pkg: 9.0.1 + transitivePeerDependencies: + - supports-color + semver-compare@1.0.0: optional: true @@ -20608,6 +21961,18 @@ snapshots: signal-exit@4.1.0: {} + simple-concat@1.0.1: + optional: true + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + optional: true + + simple-invariant@2.0.1: {} + simple-plist@1.3.1: dependencies: bplist-creator: 0.1.0 @@ -20630,6 +21995,14 @@ snapshots: sisteransi@1.0.5: {} + slash@5.1.0: {} + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + slice-ansi@8.0.0: dependencies: ansi-styles: 6.2.3 @@ -20652,6 +22025,20 @@ snapshots: space-separated-tokens@2.0.2: {} + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.23 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.23 + + spdx-license-ids@3.0.23: {} + split-on-first@1.1.0: {} split2@4.2.0: {} @@ -20744,10 +22131,17 @@ snapshots: min-indent: 1.0.1 optional: true + strip-json-comments@2.0.1: + optional: true + strnum@2.3.0: {} structured-headers@0.4.1: {} + structured-source@4.0.0: + dependencies: + boundary: 2.0.0 + style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 @@ -20779,6 +22173,11 @@ snapshots: has-flag: 4.0.0 supports-color: 7.2.0 + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + supports-preserve-symlinks-flag@1.0.0: {} svgo@4.0.1: @@ -20793,6 +22192,14 @@ snapshots: tabbable@6.4.0: {} + table@6.9.0: + dependencies: + ajv: 8.20.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + tagged-tag@1.0.0: {} tailwind-merge@3.6.0: {} @@ -20803,6 +22210,23 @@ snapshots: tapable@2.3.3: {} + tar-fs@2.1.5: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.4 + tar-stream: 2.2.0 + optional: true + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + tar@7.5.16: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -20826,6 +22250,11 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 + terminal-link@4.0.0: + dependencies: + ansi-escapes: 7.3.0 + supports-hyperlinks: 3.2.0 + terminal-size@4.0.1: {} terser@5.48.0: @@ -20835,6 +22264,12 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + text-table@0.2.0: {} + + textextensions@6.11.0: + dependencies: + editions: 6.22.0 + throat@5.0.0: {} timestring@6.0.0: {} @@ -20904,6 +22339,13 @@ snapshots: tslib@2.8.1: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + optional: true + + tunnel@0.0.6: {} + type-fest@0.13.1: optional: true @@ -20913,6 +22355,8 @@ snapshots: type-fest@2.19.0: {} + type-fest@4.41.0: {} + type-fest@5.7.0: dependencies: tagged-tag: 1.0.0 @@ -20923,6 +22367,12 @@ snapshots: media-typer: 1.1.0 mime-types: 3.0.2 + typed-rest-client@1.8.11: + dependencies: + qs: 6.15.3 + tunnel: 0.0.6 + underscore: 1.13.8 + typesafe-path@0.2.2: {} typescript-auto-import-cache@0.3.6: @@ -20931,12 +22381,16 @@ snapshots: typescript@6.0.3: {} + uc.micro@2.1.0: {} + ufo@1.6.4: {} ultrahtml@1.6.0: {} uncrypto@0.1.3: {} + underscore@1.13.8: {} + undici-types@7.16.0: {} undici@6.26.0: {} @@ -20960,6 +22414,10 @@ snapshots: unicode-property-aliases-ecmascript@2.2.0: {} + unicorn-magic@0.1.0: {} + + unicorn-magic@0.3.0: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -21051,7 +22509,7 @@ snapshots: rolldown: 1.0.0-rc.17 optional: true - unstorage@1.17.5(aws4fetch@1.0.20)(idb-keyval@6.2.1)(ioredis@5.11.0): + unstorage@1.17.5(@azure/identity@4.13.1)(aws4fetch@1.0.20)(idb-keyval@6.2.1)(ioredis@5.11.0): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 @@ -21062,6 +22520,7 @@ snapshots: ofetch: 1.5.1 ufo: 1.6.4 optionalDependencies: + '@azure/identity': 4.13.1 aws4fetch: 1.0.20 idb-keyval: 6.2.1 ioredis: 5.11.0 @@ -21087,6 +22546,8 @@ snapshots: punycode: 2.3.1 optional: true + url-join@4.0.1: {} + use-callback-ref@1.3.3(@types/react@19.2.16)(react@19.2.3): dependencies: react: 19.2.3 @@ -21151,6 +22612,11 @@ snapshots: uuid@7.0.3: {} + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + validate-npm-package-name@5.0.1: {} vary@1.1.2: {} @@ -21174,6 +22640,8 @@ snapshots: - '@types/react-dom' optional: true + version-range@4.15.0: {} + vfile-location@5.0.3: dependencies: '@types/unist': 3.0.3 @@ -21402,8 +22870,14 @@ snapshots: webpack-virtual-modules@0.6.2: {} + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-fetch@3.6.20: {} + whatwg-mimetype@4.0.0: {} + whatwg-url-minimum@0.1.2: {} whatwg-url-without-unicode@8.0.0-3: @@ -21473,6 +22947,10 @@ snapshots: bufferutil: 4.1.0 utf-8-validate: 6.0.6 + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.1 + xcode@3.0.1: dependencies: simple-plist: 1.3.1 @@ -21492,6 +22970,11 @@ snapshots: xml-naming@0.1.0: {} + xml2js@0.5.0: + dependencies: + sax: 1.6.0 + xmlbuilder: 11.0.1 + xml2js@0.6.0: dependencies: sax: 1.6.0 @@ -21543,11 +23026,25 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yauzl-promise@4.0.0: + dependencies: + '@node-rs/crc32': 1.10.6 + is-it-type: 5.1.3 + simple-invariant: 2.0.1 + yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 + yauzl@3.4.0: + dependencies: + pend: 1.2.0 + + yazl@2.5.1: + dependencies: + buffer-crc32: 0.2.13 + yjs@13.6.31: dependencies: lib0: 0.2.117 From 584af9df2f8f8d6a4882ddbd8d72b1ae411cc29c Mon Sep 17 00:00:00 2001 From: Patrick Roza Date: Tue, 14 Jul 2026 21:23:57 +0200 Subject: [PATCH 2/4] docs(vscode): document server URL and settings, add commands to set them The README explained the connection model only in passing, inside the Development section, and never stated the default server URL or how to change it. The settings themselves were only reachable by knowing their names. - Add "Connecting to a server" and "Settings" sections covering the http://127.0.0.1:3773 default, when to change it, the desktop-runtime precedence, machine scope, and every setting with its default. - Add "T3 Code: Set Server URL", which prefills the current value and validates input, and "T3 Code: Open Settings", which filters the Settings UI to this extension. - Expand the settings descriptions so the Settings UI is self-explanatory. serverUrlValidationMessage lives in serverResolution.ts beside the normalizeServerUrl call it guards: that parses with `new URL(...)`, so an unparseable value used to surface as a connection failure rather than at entry. Keeping it there also keeps it testable, since extension.ts imports `vscode`. Also record the Dec 1 2026 Azure DevOps global PAT retirement and the correct PAT scopes in the release docs. Co-Authored-By: Claude Opus 4.8 --- apps/vscode/CHANGELOG.md | 8 +++- apps/vscode/README.md | 55 ++++++++++++++++++++---- apps/vscode/package.json | 23 ++++++++-- apps/vscode/src/extension.ts | 32 +++++++++++++- apps/vscode/src/serverResolution.test.ts | 22 +++++++++- apps/vscode/src/serverResolution.ts | 22 ++++++++++ 6 files changed, 146 insertions(+), 16 deletions(-) diff --git a/apps/vscode/CHANGELOG.md b/apps/vscode/CHANGELOG.md index c7c0bd73e8e..1c6ae8ee8db 100644 --- a/apps/vscode/CHANGELOG.md +++ b/apps/vscode/CHANGELOG.md @@ -12,5 +12,9 @@ Initial marketplace release of the `patroza` fork build. and `/status` commands. - Realtime thread synchronization with the T3 Code web, desktop, and mobile clients. - Editor context, slash commands, images, approvals, tools, and tasks. -- Connects to a local T3 Desktop runtime when advertised, otherwise falls back to `t3Code.serverUrl`. - Remote servers authenticate with a bearer token held in VS Code secret storage. +- Connects to a local T3 Desktop runtime when advertised, otherwise falls back to `t3Code.serverUrl` + (default `http://127.0.0.1:3773`). Remote servers authenticate with a bearer token held in VS Code + secret storage. +- **T3 Code: Set Server URL** sets the server URL from the Command Palette, prefilled with the + current value and validated before it is saved. **T3 Code: Open Settings** opens the extension's + settings. diff --git a/apps/vscode/README.md b/apps/vscode/README.md index 7e3840b24a1..19d791406d1 100644 --- a/apps/vscode/README.md +++ b/apps/vscode/README.md @@ -19,6 +19,47 @@ The extension is a client only — it needs a T3 Code backend to talk to. Either same machine as the extension host, or point `t3Code.serverUrl` at a reachable T3 Code server. VS Code 1.95 or newer is required. +## Connecting to a server + +**The default is `http://127.0.0.1:3773`**, which is a T3 Code server running on your own machine. +If that describes your setup, there is nothing to configure. Change the URL if your server runs on +another host or a different port. + +Run **T3 Code: Set Server URL** from the Command Palette to change it. The prompt is prefilled with +the current value and rejects anything that isn't an `http`/`https` URL, so a typo surfaces +immediately instead of as a failed connection later. The extension reconnects as soon as the +setting changes. + +If the server requires authentication, run **T3 Code: Set Server Bearer Token**. The token is kept +in VS Code's secret storage — never in your settings file — and is exchanged for a short-lived +WebSocket ticket. + +Two details worth knowing: + +- **A local T3 Desktop runtime wins over this setting.** The extension prefers the backend + advertised by the T3 Desktop process beside its extension host, and only falls back to + `t3Code.serverUrl`. This is what makes local, SSH, and other remote windows work independently, + rather than treating a synced `127.0.0.1` setting as the same machine. +- **`t3Code.serverUrl` is machine-scoped.** It is stored per machine in your user settings and + cannot be set per workspace, so a `127.0.0.1` URL never follows you to a different machine. + +Connection trouble is usually quickest to diagnose from **T3 Code: Show Diagnostics**, which logs +each endpoint the extension tried and why it was rejected. + +## Settings + +Run **T3 Code: Open Settings** to open all of these in the Settings UI, or edit `settings.json` +directly. + +| Setting | Default | What it does | +| ---------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `t3Code.serverUrl` | `http://127.0.0.1:3773` | Fallback server URL, used when no local T3 Desktop runtime is advertised. WebSocket and environment endpoints are derived from it. | +| `t3Code.defaultRuntimeMode` | `full-access` | Runtime mode for new threads: `approval-required`, `auto-accept-edits`, or `full-access`. | +| `t3Code.desktopClientSettingsPath` | `""` (auto-detect) | Path to T3 Desktop's `client-settings.json`, to share provider and model favorites. Auto-detects `~/.t3/userdata` or `~/.t3/dev` when empty. | + +The default runtime mode is `full-access`, meaning new threads apply edits and run commands without +asking. Set `t3Code.defaultRuntimeMode` to `approval-required` if you would rather review each one. + ## Development 1. Start T3 Code (`pnpm dev`), which listens at `http://127.0.0.1:3773` by default. @@ -28,12 +69,6 @@ VS Code 1.95 or newer is required. 4. Select the **T3 Code** tab in the secondary sidebar. Use **T3 Code: Open Chat** from the Command Palette if the secondary sidebar is hidden. -The extension first uses the backend advertised by the T3 Desktop runtime beside its extension -host. This works independently in local, SSH, and other remote windows and avoids treating a -synced `127.0.0.1` setting as the same machine. For a fallback backend, set `t3Code.serverUrl`. -Remote servers can use **T3 Code: Set Server Bearer Token**; the token is stored in VS Code secret -storage and exchanged for a short-lived WebSocket ticket. - ## Dedicated chat workflow The T3 Code tab contains a worktree-scoped thread picker, synchronized transcript, context control, @@ -83,8 +118,12 @@ pnpm --filter t3-code exec vsce ls --no-dependencies Publishing needs a token per registry, neither of which is stored in this repo: -- **Marketplace** — an Azure DevOps PAT for the `patroza` publisher, with Marketplace: Manage scope. - Pass it as `VSCE_PAT`, or run `vsce login patroza` once. +- **Marketplace** — an Azure DevOps PAT for the `patroza` publisher, created with the **Marketplace: + Manage** scope and the organization set to **All accessible organizations** (a PAT scoped to a + single organization fails at publish time with a 401). Pass it as `VSCE_PAT`, or run + `vsce login patroza` once. Note that Azure DevOps retires global PATs on **December 1, 2026**; the + replacement, `vsce publish --azure-credential` backed by Microsoft Entra ID, currently only covers + CI pipelines, so manual publishing still depends on a PAT until then. - **Open VSX** — an access token for the `patroza` namespace from . Pass it as `OVSX_PAT`. The namespace must be created once with `ovsx create-namespace patroza`. diff --git a/apps/vscode/package.json b/apps/vscode/package.json index ae8c3263926..e31427b8662 100644 --- a/apps/vscode/package.json +++ b/apps/vscode/package.json @@ -166,6 +166,16 @@ "command": "t3Code.openChat", "title": "T3 Code: Open Chat", "category": "T3 Code" + }, + { + "command": "t3Code.setServerUrl", + "title": "T3 Code: Set Server URL", + "category": "T3 Code" + }, + { + "command": "t3Code.openSettings", + "title": "T3 Code: Open Settings", + "category": "T3 Code" } ], "menus": { @@ -184,7 +194,7 @@ "type": "string", "scope": "machine", "default": "http://127.0.0.1:3773", - "description": "Fallback T3 Code server HTTP URL when no local T3 Desktop runtime is advertised. WebSocket and environment endpoints are derived from it." + "markdownDescription": "Fallback T3 Code server HTTP URL, used when no local T3 Desktop runtime is advertised beside this extension host. WebSocket and environment endpoints are derived from it.\n\nThe default `http://127.0.0.1:3773` matches a T3 Code server on this machine. Point it at your own host (for example `https://t3.example.com`) to use a remote server, and run **T3 Code: Set Server Bearer Token** if that server requires authentication.\n\nRun **T3 Code: Set Server URL** to change this with validation." }, "t3Code.defaultRuntimeMode": { "type": "string", @@ -193,13 +203,18 @@ "auto-accept-edits", "full-access" ], + "enumDescriptions": [ + "Ask before each edit or command.", + "Apply edits automatically, but ask before running commands.", + "Apply edits and run commands without asking." + ], "default": "full-access", - "description": "Runtime mode for new T3 Code threads." + "markdownDescription": "Runtime mode applied to new T3 Code threads. Defaults to `full-access`; choose `approval-required` to review every edit and command before it runs." }, "t3Code.desktopClientSettingsPath": { "type": "string", "default": "", - "description": "Optional path to T3 Desktop's client-settings.json for sharing provider and model favorites. The default auto-detects ~/.t3/userdata or ~/.t3/dev." + "markdownDescription": "Optional path to T3 Desktop's `client-settings.json`, used to share provider and model favorites with the desktop app. Leave empty to auto-detect `~/.t3/userdata` or `~/.t3/dev`." } } } @@ -210,8 +225,10 @@ "onCommand:t3Code.clearBearerToken", "onCommand:t3Code.newThread", "onCommand:t3Code.openChat", + "onCommand:t3Code.openSettings", "onCommand:t3Code.selectThread", "onCommand:t3Code.setBearerToken", + "onCommand:t3Code.setServerUrl", "onCommand:t3Code.showDiagnostics", "onCommand:t3Code.toggleEditorContext", "onView:t3Code.chatView", diff --git a/apps/vscode/src/extension.ts b/apps/vscode/src/extension.ts index ba741a0b20c..27e46bc4727 100644 --- a/apps/vscode/src/extension.ts +++ b/apps/vscode/src/extension.ts @@ -15,7 +15,11 @@ import { readDesktopBootstrapCredential, readDesktopServerUrl, } from "./desktopFavorites.ts"; -import { serverCandidates } from "./serverResolution.ts"; +import { + DEFAULT_SERVER_URL, + serverCandidates, + serverUrlValidationMessage, +} from "./serverResolution.ts"; import { T3ChatViewProvider } from "./chatViewProvider.ts"; import { T3Client } from "./t3Client.ts"; @@ -124,7 +128,7 @@ function configuration(): { } { const config = vscode.workspace.getConfiguration("t3Code"); return { - serverUrl: config.get("serverUrl", "http://127.0.0.1:3773"), + serverUrl: config.get("serverUrl", DEFAULT_SERVER_URL), runtimeMode: config.get("defaultRuntimeMode", "full-access"), }; } @@ -455,6 +459,30 @@ export function activate(context: vscode.ExtensionContext): void { await context.secrets.delete(BEARER_TOKEN_SECRET); void vscode.window.showInformationMessage("T3 Code bearer token cleared."); }), + vscode.commands.registerCommand("t3Code.setServerUrl", async () => { + const setting = vscode.workspace.getConfiguration("t3Code").inspect("serverUrl"); + const current = setting?.globalValue ?? setting?.defaultValue ?? DEFAULT_SERVER_URL; + const url = await vscode.window.showInputBox({ + title: "T3 Code Server URL", + prompt: `Fallback server used when no local T3 Desktop runtime is advertised. Default: ${DEFAULT_SERVER_URL}`, + value: current, + ignoreFocusOut: true, + validateInput: (value) => serverUrlValidationMessage(value), + }); + if (url === undefined) return; + // `serverUrl` is machine-scoped, so Global is the only target that + // applies; a workspace write would be ignored and silently do nothing. + await vscode.workspace + .getConfiguration("t3Code") + .update("serverUrl", url.trim(), vscode.ConfigurationTarget.Global); + void vscode.window.showInformationMessage(`T3 Code server URL set to ${url.trim()}.`); + }), + vscode.commands.registerCommand("t3Code.openSettings", async () => { + await vscode.commands.executeCommand( + "workbench.action.openSettings", + `@ext:${context.extension.id}`, + ); + }), { dispose: () => void client.dispose() }, ); } diff --git a/apps/vscode/src/serverResolution.test.ts b/apps/vscode/src/serverResolution.test.ts index 010aa425eaf..d0960f3d889 100644 --- a/apps/vscode/src/serverResolution.test.ts +++ b/apps/vscode/src/serverResolution.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vite-plus/test"; -import { serverCandidates } from "./serverResolution.ts"; +import { serverCandidates, serverUrlValidationMessage } from "./serverResolution.ts"; describe("serverCandidates", () => { it("prefers the backend advertised by the local desktop runtime", () => { @@ -22,3 +22,23 @@ describe("serverCandidates", () => { ]); }); }); + +describe("serverUrlValidationMessage", () => { + it("accepts http and https URLs", () => { + expect(serverUrlValidationMessage("http://127.0.0.1:3773")).toBeNull(); + expect(serverUrlValidationMessage("https://t3.example.com")).toBeNull(); + expect(serverUrlValidationMessage(" http://127.0.0.1:3773 ")).toBeNull(); + }); + + it("rejects values serverCandidates cannot parse", () => { + expect(serverUrlValidationMessage("")).not.toBeNull(); + expect(serverUrlValidationMessage(" ")).not.toBeNull(); + expect(serverUrlValidationMessage("127.0.0.1:3773")).not.toBeNull(); + expect(serverUrlValidationMessage("not a url")).not.toBeNull(); + }); + + it("rejects non-http protocols that would parse but never connect", () => { + expect(serverUrlValidationMessage("ws://127.0.0.1:3773")).not.toBeNull(); + expect(serverUrlValidationMessage("file:///tmp/t3")).not.toBeNull(); + }); +}); diff --git a/apps/vscode/src/serverResolution.ts b/apps/vscode/src/serverResolution.ts index 8ada338919e..9344ecce1a6 100644 --- a/apps/vscode/src/serverResolution.ts +++ b/apps/vscode/src/serverResolution.ts @@ -1,8 +1,30 @@ +export const DEFAULT_SERVER_URL = "http://127.0.0.1:3773"; + export interface ServerCandidate { readonly source: "desktop" | "configured"; readonly url: string; } +/** + * `normalizeServerUrl` parses with `new URL(...)`, so an unparseable configured + * value throws while connecting rather than where it was entered. Validate at + * entry to keep that failure out of the connection path. + */ +export function serverUrlValidationMessage(value: string): string | null { + const trimmed = value.trim(); + if (trimmed === "") return `Enter a server URL, for example ${DEFAULT_SERVER_URL}`; + let parsed: URL; + try { + parsed = new URL(trimmed); + } catch { + return `Enter a valid absolute URL, for example ${DEFAULT_SERVER_URL}`; + } + if (parsed.protocol !== "http:" && parsed.protocol !== "https:") { + return "The server URL must use http or https."; + } + return null; +} + function normalizeServerUrl(value: string | null): string | null { if (value === null || value.trim() === "") return null; return new URL(value).toString(); From 9aac019bdcd7f919ffdc664179cf12960e4c0aee Mon Sep 17 00:00:00 2001 From: Patrick Roza Date: Tue, 14 Jul 2026 21:30:09 +0200 Subject: [PATCH 3/4] build(vscode): pin packaged README links to the commit being published vsce rewrites the README's relative links against --baseContentUrl/--baseImagesUrl because it cannot infer that this extension lives in a monorepo subdirectory. Those were pointed at `main`, which meant the screenshot 404'd on the marketplace until the extension reached main, and would break again if the file ever moved. scripts/vsce.ts now resolves the current commit and pins both URLs to it, so a published version's README refers to the tree it was built from. A published README cannot be corrected without shipping a new version, so the script also refuses to run when HEAD is not on a remote branch (the links would 404 for everyone) and warns when the working tree is dirty. The GitHub slug and subdirectory are derived from package.json's repository field rather than duplicated in the scripts. Co-Authored-By: Claude Opus 4.8 --- apps/vscode/.vscodeignore | 1 + apps/vscode/README.md | 20 +++++++--- apps/vscode/package.json | 4 +- apps/vscode/scripts/vsce.ts | 74 +++++++++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+), 8 deletions(-) create mode 100644 apps/vscode/scripts/vsce.ts diff --git a/apps/vscode/.vscodeignore b/apps/vscode/.vscodeignore index 8303da26e75..13c0a0604f3 100644 --- a/apps/vscode/.vscodeignore +++ b/apps/vscode/.vscodeignore @@ -1,6 +1,7 @@ .vscode/** .vscodeignore node_modules/** +scripts/** src/** tsconfig.json vite.config.* diff --git a/apps/vscode/README.md b/apps/vscode/README.md index 19d791406d1..93ec6989199 100644 --- a/apps/vscode/README.md +++ b/apps/vscode/README.md @@ -98,17 +98,25 @@ fences. T3 Code clients present that envelope as a context reference rather than The extension publishes to the `patroza` namespace on both the VS Code Marketplace and Open VSX. Extension IDs and versions are shared between the two, so publish the same `.vsix` to each. -Bump `version` in `apps/vscode/package.json` and add a `CHANGELOG.md` entry first, then: +Bump `version` in `apps/vscode/package.json`, add a `CHANGELOG.md` entry, then commit and **push** — +packaging pins README links to the current commit and refuses to run if that commit is not on a +remote branch. Then: ```sh pnpm --filter t3-code package # -> t3-code-.vsix ``` -`package` runs the `vscode:prepublish` build and bundles `src/` with esbuild, so `--no-dependencies` -is passed deliberately: nothing from `node_modules` ships, and vsce never has to resolve the -`workspace:*` dependencies it cannot understand. The `--baseContentUrl` / `--baseImagesUrl` flags -make the README's relative links resolve against `apps/vscode/` on GitHub, which vsce cannot infer -for an extension living in a monorepo subdirectory. +Both `package` and `publish:vsce` go through `scripts/vsce.ts`, which runs the `vscode:prepublish` +build and supplies two sets of flags: + +- `--no-dependencies`, because esbuild already bundles `src/`. Nothing from `node_modules` ships, + and vsce never has to resolve the `workspace:*` dependencies it cannot understand. +- `--baseContentUrl` / `--baseImagesUrl` pinned to the current commit, because vsce cannot infer + that this extension lives in a monorepo subdirectory and would otherwise rewrite the README's + relative links to the repository root. Pinning to the commit rather than `main` keeps each + published version's README pointing at the tree it was built from, so the screenshot survives + files moving later and works even when a version is published before its commit reaches `main`. + A published README cannot be corrected without publishing a new version. Inspect the packaged contents before publishing: diff --git a/apps/vscode/package.json b/apps/vscode/package.json index e31427b8662..3c2cac0b304 100644 --- a/apps/vscode/package.json +++ b/apps/vscode/package.json @@ -34,8 +34,8 @@ "typecheck": "tsgo --noEmit", "test": "vp test run", "vscode:prepublish": "vp run build", - "package": "vsce package --no-dependencies --baseContentUrl https://github.com/patroza/t3code/blob/main/apps/vscode --baseImagesUrl https://raw.githubusercontent.com/patroza/t3code/main/apps/vscode", - "publish:vsce": "vsce publish --no-dependencies --baseContentUrl https://github.com/patroza/t3code/blob/main/apps/vscode --baseImagesUrl https://raw.githubusercontent.com/patroza/t3code/main/apps/vscode", + "package": "node scripts/vsce.ts package", + "publish:vsce": "node scripts/vsce.ts publish", "publish:ovsx": "ovsx publish --packagePath" }, "dependencies": { diff --git a/apps/vscode/scripts/vsce.ts b/apps/vscode/scripts/vsce.ts new file mode 100644 index 00000000000..3683eafc6d9 --- /dev/null +++ b/apps/vscode/scripts/vsce.ts @@ -0,0 +1,74 @@ +// @effect-diagnostics nodeBuiltinImport:off +import * as NodeChildProcess from "node:child_process"; +import * as NodeFS from "node:fs"; +import * as NodePath from "node:path"; +import * as NodeURL from "node:url"; + +/** + * Runs vsce with README links pinned to the current commit. + * + * vsce cannot infer that this extension lives in a monorepo subdirectory, so + * relative README links are rewritten against --baseContentUrl/--baseImagesUrl. + * Pinning those to the commit rather than a branch keeps a published version's + * README pointing at the tree it was built from: the screenshot still resolves + * after files move on main, and a version published before its commit reaches + * main is not left with a broken image. + */ + +const extensionRoot = NodePath.resolve( + NodePath.dirname(NodeURL.fileURLToPath(import.meta.url)), + "..", +); + +const git = (...args: ReadonlyArray): string => + NodeChildProcess.execFileSync("git", args, { cwd: extensionRoot, encoding: "utf8" }).trim(); + +const fail = (message: string): never => { + console.error(`vsce: ${message}`); + process.exit(1); +}; + +const manifest: unknown = JSON.parse( + NodeFS.readFileSync(NodePath.join(extensionRoot, "package.json"), "utf8"), +); +if (typeof manifest !== "object" || manifest === null) fail("package.json is not an object."); +const repository = (manifest as { repository?: { url?: string; directory?: string } }).repository; +const repositoryUrl = repository?.url; +const directory = repository?.directory; +if (repositoryUrl === undefined || directory === undefined) { + fail("package.json needs repository.url and repository.directory to pin README links."); +} + +const slug = /github\.com\/(?[^/]+\/[^/]+?)(?:\.git)?$/u.exec(repositoryUrl!)?.groups?.slug; +if (slug === undefined) fail(`Cannot read a GitHub slug from repository.url "${repositoryUrl!}".`); + +const commit = git("rev-parse", "HEAD"); + +// A commit that has not been pushed produces links that 404 for everyone else, +// and a published version's README cannot be corrected afterwards. +if (git("branch", "--remotes", "--contains", commit) === "") { + fail( + `Commit ${commit} is not on any remote branch, so pinned README links would 404.\n` + + "Push the branch before packaging or publishing.", + ); +} +if (git("status", "--porcelain") !== "") { + console.warn( + `vsce: warning: the working tree is dirty. README links pin to ${commit.slice(0, 9)}, which does not include uncommitted changes.`, + ); +} + +const [command, ...rest] = process.argv.slice(2); +if (command === undefined) fail("Usage: node scripts/vsce.ts [args...]"); + +const args = [ + command!, + "--no-dependencies", + "--baseContentUrl", + `https://github.com/${slug!}/blob/${commit}/${directory!}`, + "--baseImagesUrl", + `https://raw.githubusercontent.com/${slug!}/${commit}/${directory!}`, + ...rest, +]; +console.log(`vsce: pinning README links to ${commit.slice(0, 9)}`); +NodeChildProcess.execFileSync("vsce", args, { cwd: extensionRoot, stdio: "inherit" }); From ffcc2fc379df440f331eed7edfbd64569cef5534 Mon Sep 17 00:00:00 2001 From: Patrick Roza Date: Tue, 14 Jul 2026 21:32:23 +0200 Subject: [PATCH 4/4] chore(vscode): release 0.0.38 0.0.37 is already on the marketplace, and a published version cannot be replaced, so the settings commands and docs ship as 0.0.38. This also repairs the live listing: 0.0.37's README links pointed at main before the extension existed there, so its screenshot 404s. Co-Authored-By: Claude Opus 4.8 --- apps/vscode/CHANGELOG.md | 14 +++++++++++--- apps/vscode/package.json | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/vscode/CHANGELOG.md b/apps/vscode/CHANGELOG.md index 1c6ae8ee8db..2e80e899d57 100644 --- a/apps/vscode/CHANGELOG.md +++ b/apps/vscode/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to the T3 Code VS Code extension are documented in this file. +## 0.0.38 + +- Add **T3 Code: Set Server URL**, which sets the server URL from the Command Palette, prefilled + with the current value and validated before it is saved, and **T3 Code: Open Settings**, which + opens the extension's settings. +- Document the server URL default (`http://127.0.0.1:3773`), when to change it, and every setting + with its default. Expand the settings descriptions shown in the Settings UI. +- Fix the screenshot on the marketplace listing, which did not load in 0.0.37 because the packaged + README's links pointed at a branch that did not yet contain the extension. Packaged README links + are now pinned to the commit each version is built from. + ## 0.0.37 Initial marketplace release of the `patroza` fork build. @@ -15,6 +26,3 @@ Initial marketplace release of the `patroza` fork build. - Connects to a local T3 Desktop runtime when advertised, otherwise falls back to `t3Code.serverUrl` (default `http://127.0.0.1:3773`). Remote servers authenticate with a bearer token held in VS Code secret storage. -- **T3 Code: Set Server URL** sets the server URL from the Command Palette, prefilled with the - current value and validated before it is saved. **T3 Code: Open Settings** opens the extension's - settings. diff --git a/apps/vscode/package.json b/apps/vscode/package.json index 3c2cac0b304..400761da9dd 100644 --- a/apps/vscode/package.json +++ b/apps/vscode/package.json @@ -1,7 +1,7 @@ { "name": "t3-code", "displayName": "T3 Code (patroza build)", - "version": "0.0.37", + "version": "0.0.38", "private": true, "description": "Unofficial fork build of T3 Code: a dedicated VS Code chat client for synchronized T3 Code threads.", "categories": [