From 1c81b25bba680a762aed974d214d851843557101 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:24:42 +0000
Subject: [PATCH 01/15] chore: bump tailwind-merge from 2.6.0 to 2.6.1 in /site
(#25965)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps [tailwind-merge](https://github.com/dcastil/tailwind-merge) from
2.6.0 to 2.6.1.
Release notes
Sourced from tailwind-merge's
releases .
v2.6.1
Bug Fixes
Fix arbitrary value using color-mix not being detected
as color by @dcastil in #591
This fix was backported from v3.3.1 to make it available for v2
users.
Full Changelog : https://github.com/dcastil/tailwind-merge/compare/v2.6.0...v2.6.1
Thanks to @brandonmcconnell ,
@manavm1990 ,
@langy , @roboflow , @syntaxfm , @getsentry , @codecov , a private
sponsor, @block , @openclaw and more
via @thnxdev for
sponsoring tailwind-merge! ❤️
Commits
0377863
v2.6.1
ce73bc0
Update publish workflow
793325f
add v2.6.1 to changelog
d4ec7cd
.gitignore: Add Claude stuff
10e326a
Cherry-picked: Merge pull request #591
from dcastil/bugfix/590/fix-arbitrary-...
47c87d8
Merge pull request #515
from dcastil/dependabot/npm_and_yarn/vite-5.4.14
35eb83f
Merge pull request #516
from dcastil/dependabot/npm_and_yarn/dot-github/actio...
faf70cc
Bump undici from 5.28.4 to 5.28.5 in
/.github/actions/metrics-report
99f3ca4
Bump vite from 5.4.6 to 5.4.14
fb91ba4
Merge pull request #514
from dcastil/other/480/make-label-name-in-label-workf...
Additional commits viewable in compare
view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 2 +-
site/pnpm-lock.yaml | 18 +++++++++---------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/site/package.json b/site/package.json
index ac5ada7669..88a43f7656 100644
--- a/site/package.json
+++ b/site/package.json
@@ -111,7 +111,7 @@
"semver": "7.7.3",
"sonner": "2.0.7",
"streamdown": "2.5.0",
- "tailwind-merge": "2.6.0",
+ "tailwind-merge": "2.6.1",
"tailwindcss-animate": "1.0.7",
"tzdata": "1.0.46",
"ua-parser-js": "1.0.41",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index 23d9664bdc..aac7e37245 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -249,8 +249,8 @@ importers:
specifier: 2.5.0
version: 2.5.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
tailwind-merge:
- specifier: 2.6.0
- version: 2.6.0
+ specifier: 2.6.1
+ version: 2.6.1
tailwindcss-animate:
specifier: 1.0.7
version: 1.0.7(tailwindcss@3.4.18(yaml@2.8.3))
@@ -5740,11 +5740,11 @@ packages:
tabbable@6.4.0:
resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==, tarball: https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz}
- tailwind-merge@2.6.0:
- resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==, tarball: https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz}
+ tailwind-merge@2.6.1:
+ resolution: {integrity: sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==, tarball: https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.1.tgz}
- tailwind-merge@3.5.0:
- resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==, tarball: https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz}
+ tailwind-merge@3.6.0:
+ resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==, tarball: https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.6.0.tgz}
tailwindcss-animate@1.0.7:
resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==, tarball: https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz}
@@ -12176,7 +12176,7 @@ snapshots:
remark-parse: 11.0.0
remark-rehype: 11.1.2
remend: 1.3.0
- tailwind-merge: 3.5.0
+ tailwind-merge: 3.6.0
unified: 11.0.5
unist-util-visit: 5.1.0
unist-util-visit-parents: 6.0.2
@@ -12270,9 +12270,9 @@ snapshots:
tabbable@6.4.0: {}
- tailwind-merge@2.6.0: {}
+ tailwind-merge@2.6.1: {}
- tailwind-merge@3.5.0: {}
+ tailwind-merge@3.6.0: {}
tailwindcss-animate@1.0.7(tailwindcss@3.4.18(yaml@2.8.3)):
dependencies:
From 5e2889f6828e07eac1a8c64f858c5b340711763d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:29:04 +0000
Subject: [PATCH 02/15] chore: bump @types/lodash from 4.17.21 to 4.17.24 in
/site (#25969)
Bumps
[@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash)
from 4.17.21 to 4.17.24.
Commits
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 2 +-
site/pnpm-lock.yaml | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/site/package.json b/site/package.json
index 88a43f7656..8779ffad4e 100644
--- a/site/package.json
+++ b/site/package.json
@@ -145,7 +145,7 @@
"@types/express": "4.17.17",
"@types/file-saver": "2.0.7",
"@types/humanize-duration": "3.27.4",
- "@types/lodash": "4.17.21",
+ "@types/lodash": "4.17.24",
"@types/node": "20.19.39",
"@types/novnc__novnc": "1.5.0",
"@types/react": "19.2.15",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index aac7e37245..41b30943d8 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -346,8 +346,8 @@ importers:
specifier: 3.27.4
version: 3.27.4
'@types/lodash':
- specifier: 4.17.21
- version: 4.17.21
+ specifier: 4.17.24
+ version: 4.17.24
'@types/node':
specifier: 20.19.39
version: 20.19.39
@@ -2682,8 +2682,8 @@ packages:
'@types/humanize-duration@3.27.4':
resolution: {integrity: sha512-yaf7kan2Sq0goxpbcwTQ+8E9RP6HutFBPv74T/IA/ojcHKhuKVlk2YFYyHhWZeLvZPzzLE3aatuQB4h0iqyyUA==, tarball: https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.27.4.tgz}
- '@types/lodash@4.17.21':
- resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==, tarball: https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz}
+ '@types/lodash@4.17.24':
+ resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==, tarball: https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz}
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==, tarball: https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz}
@@ -8713,7 +8713,7 @@ snapshots:
'@types/humanize-duration@3.27.4': {}
- '@types/lodash@4.17.21': {}
+ '@types/lodash@4.17.24': {}
'@types/mdast@4.0.4':
dependencies:
From 73249e7c1a7a6fcf92c111192e7b46cf5cab8965 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:29:12 +0000
Subject: [PATCH 03/15] chore: bump react-router from 7.12.0 to 7.15.1 in /site
(#25963)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps
[react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router)
from 7.12.0 to 7.15.1.
Release notes
Sourced from react-router's
releases .
v7.15.1
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7151
v7.15.0
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7150
v7.14.2
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7142
v7.14.1
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7141
v7.14.0
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7140
v7.13.2
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7132
v7.13.1
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7131
v7.13.0
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v7130
Changelog
Sourced from react-router's
changelog .
v7.15.1
Patch Changes
Update router to operate on fetcher Maps in an immutable manner to
avoid delayed React renders from potentially reading an updated but not
yet committed Map. This could result in brief flickers in some
fetcher-driven optimistic UI scenarios. (#15028 )
Fix serverLoader() returning stale SSR data when a
client navigation aborts pending hydration before the hydration
clientLoader resolves (#15022 )
Fix RouterProvider onError callback not
being called for synchronous initial loader errors in SPA mode (#15039 )
(#14942 )
Memoize useFetchers to return a stable identity and
only change if fetchers changed (#15028 )
Internal refactor to consolidate mutation request detection through
shared utility (#15033 )
Unstable Changes
⚠️ Unstable
features are not recommended for production use
Add a new unstable_useRouterState() hook that
consolidates access to active and pending router states (RFC: #12358 )
(#15017 )
Data/Framework/RSC only — throws when used without a data router
This should allow you to consolidate usages of the following hooks
which will likely be deprecated and removed in a future major
version
useLocation
useSearchParams
useParams
useMatches
useNavigationType
useNavigation
let { active, pending } =
unstable_useRouterState();
// Active is always populated with the current location
active.location; // replaces useLocation()
active.searchParams; // replaces useSearchParams()[0]
active.params; // replaces useParams()
active.matches; // replaces useMatches()
active.type; // replaces useNavigationType()
// Pending is only populated during a navigation
pending.location; // replaces useNavigation().location
pending.searchParams; // equivalent to new
URLSearchParams(useNavigation().search)
pending.params; // Not directly accessible today
pending.matches; // Not directly accessible today
pending.type; // Not directly accessible today
pending.state; // replaces useNavigation().state
pending.formMethod; // replaces useNavigation().formMethod
pending.formAction; // replaces useNavigation().formAction
pending.formEncType; // replaces useNavigation().formEncType
pending.formData; // replaces useNavigation().formData
pending.json; // replaces useNavigation().json
pending.text; // replaces useNavigation().text
v7.15.0
... (truncated)
Commits
587d08f
Release v7.15.1 (#15038 )
89996bd
Fire onError for initial-load errors when RouterProvider mounts late (#15039 )
4322e58
Update docs for useRouterState
fadd6c4
Merge branch 'main' into release
6bf91ce
chore: format
44c3478
fix: prevent fetcher formData flicker and eliminate state.fetchers
mutations ...
7e6725a
Cleanup lint issues (#15030 )
aabd30c
Use shared isMutationMethod check (#15033 )
954a4a6
Fix stale SSR data when hydration is aborted by a same-route navigation
(#15022 )
041cd32
fix(react-router): Internal preloads refactor to preserve types (#14860 )
Additional commits viewable in compare
view
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 2 +-
site/pnpm-lock.yaml | 16 ++++++++--------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/site/package.json b/site/package.json
index 8779ffad4e..025d5d1331 100644
--- a/site/package.json
+++ b/site/package.json
@@ -101,7 +101,7 @@
"react-markdown": "9.1.0",
"react-query": "npm:@tanstack/react-query@5.77.0",
"react-resizable-panels": "3.0.6",
- "react-router": "7.12.0",
+ "react-router": "7.15.1",
"react-syntax-highlighter": "15.6.6",
"react-textarea-autosize": "8.5.9",
"react-virtualized-auto-sizer": "1.0.26",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index 41b30943d8..3f0579b305 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -219,8 +219,8 @@ importers:
specifier: 3.0.6
version: 3.0.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
react-router:
- specifier: 7.12.0
- version: 7.12.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+ specifier: 7.15.1
+ version: 7.15.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
react-syntax-highlighter:
specifier: 15.6.6
version: 15.6.6(react@19.2.6)
@@ -443,7 +443,7 @@ importers:
version: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
storybook-addon-remix-react-router:
specifier: 6.0.0
- version: 6.0.0(react-dom@19.2.6(react@19.2.6))(react-router@7.12.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
+ version: 6.0.0(react-dom@19.2.6(react@19.2.6))(react-router@7.15.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
tailwindcss:
specifier: 3.4.18
version: 3.4.18(yaml@2.8.3)
@@ -5257,8 +5257,8 @@ packages:
react: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- react-router@7.12.0:
- resolution: {integrity: sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==, tarball: https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz}
+ react-router@7.15.1:
+ resolution: {integrity: sha512-R8rl9HhgikFYoPJymnUtPXWbnDb3oget6lQnfIoupbt61aT9aOhRkDsY2XRhZRyX1Z/8a5sL74fXmFNm3NRK5A==, tarball: https://registry.npmjs.org/react-router/-/react-router-7.15.1.tgz}
engines: {node: '>=20.0.0'}
peerDependencies:
react: '>=18'
@@ -11678,7 +11678,7 @@ snapshots:
react: 19.2.6
react-dom: 19.2.6(react@19.2.6)
- react-router@7.12.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6):
+ react-router@7.15.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6):
dependencies:
cookie: 1.1.1
react: 19.2.6
@@ -12126,12 +12126,12 @@ snapshots:
dependencies:
internal-slot: 1.0.6
- storybook-addon-remix-react-router@6.0.0(react-dom@19.2.6(react@19.2.6))(react-router@7.12.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)):
+ storybook-addon-remix-react-router@6.0.0(react-dom@19.2.6(react@19.2.6))(react-router@7.15.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)):
dependencies:
'@mjackson/form-data-parser': 0.4.0
compare-versions: 6.1.0
react-inspector: 6.0.2(react@19.2.6)
- react-router: 7.12.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+ react-router: 7.15.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
optionalDependencies:
react: 19.2.6
From d370736f55ff69454ea1dafa097c4f436df100f9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:29:51 +0000
Subject: [PATCH 04/15] chore: bump motion from 12.38.0 to 12.40.0 in /site
(#25960)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps [motion](https://github.com/motiondivision/motion) from 12.38.0 to
12.40.0.
Changelog
Sourced from motion's
changelog .
[12.40.0] 2026-05-21
Added
path option to transition.
arc() for motion along an arc.
[12.39.0] 2026-05-18
Added
Support for repeatType and repeatDelay in
animation sequences.
Fixed
Variants: Re-run keyframe animations when switching between variant
labels even when they share identical keyframe arrays.
Drag: Preserve in-flight motion value animations across React 19
reorder unmount/remount so dragSnapToOrigin no longer
leaves the drag transform stranded after a layout swap.
LazyMotion: Share React contexts between the
framer-motion and framer-motion/m (and
therefore motion/react and motion/react-m) CJS
bundles so that <m.div> from the /m
subpath picks up features loaded by <LazyMotion> from
the main entry point.
useScroll: Support hydrating target and
container refs from anywhere in the tree.
Drag: Gesture no longer starts from incorrect start point when
rendered inside <AnimatePresence initial={false}
/>.
Drag: dragConstraints, when set as viewport-relative
ref, no longer break on scroll.§
Updated visualElement hydration order.
useAnimate: Now respects
skipAnimations.
AnimatePresence: Fix object-form initial
values not applied on re-entry after exit completes.
scroll: Fixed callback progress when tracking an
element.
useScroll: Fix hardware acceleration when tracking an
element.
Commits
38ebb94
v12.40.0
b1f766c
Latest
bca5544
Merge pull request #3699
from motiondivision/lochie/arcs-injectable
f1a96cf
arc(): rename amp/rotate, expose MotionPath, fix explicit cw/ccw
b4aaba0
pathRotation: non-destructive orientToPath rotation channel
8604ef3
Make arcs injectable via transition.path = arc()
f90fe29
add orientToPath
9ebe999
fix: test
bc2107e
Revert "no should"
6eeb92d
no should
Additional commits viewable in compare
view
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 2 +-
site/pnpm-lock.yaml | 36 ++++++++++++++++++------------------
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/site/package.json b/site/package.json
index 025d5d1331..8375847a63 100644
--- a/site/package.json
+++ b/site/package.json
@@ -89,7 +89,7 @@
"lodash": "4.18.1",
"lucide-react": "0.555.0",
"monaco-editor": "0.55.1",
- "motion": "12.38.0",
+ "motion": "12.40.0",
"pretty-bytes": "6.1.1",
"radix-ui": "1.4.3",
"react": "19.2.6",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index 3f0579b305..24832885db 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -183,8 +183,8 @@ importers:
specifier: 0.55.1
version: 0.55.1
motion:
- specifier: 12.38.0
- version: 12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+ specifier: 12.40.0
+ version: 12.40.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
pretty-bytes:
specifier: 6.1.1
version: 6.1.1
@@ -3901,8 +3901,8 @@ packages:
fraction.js@5.3.4:
resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==, tarball: https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz}
- framer-motion@12.38.0:
- resolution: {integrity: sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==, tarball: https://registry.npmjs.org/framer-motion/-/framer-motion-12.38.0.tgz}
+ framer-motion@12.40.0:
+ resolution: {integrity: sha512-uaBd3qC1v3KQqBEjwTUd183K6PbS+j0yR9w9VmEOLWA/tnUcSn8Xa3uck7t4dgpDoUss8xQTcj8W2L07lrnLFg==, tarball: https://registry.npmjs.org/framer-motion/-/framer-motion-12.40.0.tgz}
peerDependencies:
'@emotion/is-prop-valid': '*'
react: ^18.0.0 || ^19.0.0
@@ -4764,14 +4764,14 @@ packages:
moo-color@1.0.3:
resolution: {integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==, tarball: https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz}
- motion-dom@12.38.0:
- resolution: {integrity: sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==, tarball: https://registry.npmjs.org/motion-dom/-/motion-dom-12.38.0.tgz}
+ motion-dom@12.40.0:
+ resolution: {integrity: sha512-HxU3ZaBwNPVQUBQf1xxgq+7JrPNZvjLVxgbpEZL7RrWJnsxOf0/OM+yrHG9ogLQ31Do/r57Oz2gQWPK+6q62mg==, tarball: https://registry.npmjs.org/motion-dom/-/motion-dom-12.40.0.tgz}
- motion-utils@12.36.0:
- resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==, tarball: https://registry.npmjs.org/motion-utils/-/motion-utils-12.36.0.tgz}
+ motion-utils@12.39.0:
+ resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==, tarball: https://registry.npmjs.org/motion-utils/-/motion-utils-12.39.0.tgz}
- motion@12.38.0:
- resolution: {integrity: sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==, tarball: https://registry.npmjs.org/motion/-/motion-12.38.0.tgz}
+ motion@12.40.0:
+ resolution: {integrity: sha512-yjrHUrBFW6kQvjJwRsoiPSAhC5tRwRqNGJWmiJ4CrGnbKp0V88AdzkhBmDoqIsIPfarOe0Uddd37Xq43/gIocA==, tarball: https://registry.npmjs.org/motion/-/motion-12.40.0.tgz}
peerDependencies:
'@emotion/is-prop-valid': '*'
react: ^18.0.0 || ^19.0.0
@@ -9994,10 +9994,10 @@ snapshots:
fraction.js@5.3.4: {}
- framer-motion@12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6):
+ framer-motion@12.40.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6):
dependencies:
- motion-dom: 12.38.0
- motion-utils: 12.36.0
+ motion-dom: 12.40.0
+ motion-utils: 12.39.0
tslib: 2.8.1
optionalDependencies:
'@emotion/is-prop-valid': 1.4.0
@@ -11097,15 +11097,15 @@ snapshots:
dependencies:
color-name: 1.1.4
- motion-dom@12.38.0:
+ motion-dom@12.40.0:
dependencies:
- motion-utils: 12.36.0
+ motion-utils: 12.39.0
- motion-utils@12.36.0: {}
+ motion-utils@12.39.0: {}
- motion@12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6):
+ motion@12.40.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6):
dependencies:
- framer-motion: 12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
+ framer-motion: 12.40.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
tslib: 2.8.1
optionalDependencies:
'@emotion/is-prop-valid': 1.4.0
From e5b6469f6f8701bfa5b81fa9e54633c55bee0fdb Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:30:54 +0000
Subject: [PATCH 05/15] chore: bump @babel/plugin-syntax-typescript from 7.28.6
to 7.29.7 in /site (#25964)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps
[@babel/plugin-syntax-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-typescript)
from 7.28.6 to 7.29.7.
Release notes
Sourced from @babel/plugin-syntax-typescript's
releases .
v7.29.7 (2026-05-25)
Re-release all packages with npm provenance attestations
v7.29.6 (2026-05-25)
:bug: Bug Fix
babel-generator
babel-core
babel-core, babel-generator
Committers: 3
v7.29.5 (2026-05-05)
:house: Internal
babel-preset-env
Update @babel/* dependencies
v7.29.4 (2026-05-05)
:bug: Bug Fix
babel-plugin-transform-modules-systemjs
#17974
[7.x backport]fix(systemjs): improve module string name support (@JLHwung )
Committers: 1
v7.29.3 (2026-04-30)
:eyeglasses: Spec Compliance
:bug: Bug Fix
babel-helper-create-class-features-plugin,
babel-plugin-proposal-decorators
#17931
fix(decorators): replace super within all removed static elements (@JLHwung )
babel-register
babel-compat-data,
babel-plugin-bugfix-safari-rest-destructuring-rhs-array,
babel-preset-env
#17788 Add
bugfix plugin for Safari array rest destructuring bug (@JLHwung )
:nail_care: Polish
... (truncated)
Commits
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 2 +-
site/pnpm-lock.yaml | 18 +++++++++---------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/site/package.json b/site/package.json
index 8375847a63..807e75d317 100644
--- a/site/package.json
+++ b/site/package.json
@@ -123,7 +123,7 @@
},
"devDependencies": {
"@babel/core": "7.29.7",
- "@babel/plugin-syntax-typescript": "7.28.6",
+ "@babel/plugin-syntax-typescript": "7.29.7",
"@biomejs/biome": "2.4.10",
"@chromatic-com/storybook": "5.0.1",
"@octokit/types": "12.6.0",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index 24832885db..c5859fd617 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -280,8 +280,8 @@ importers:
specifier: 7.29.7
version: 7.29.7
'@babel/plugin-syntax-typescript':
- specifier: 7.28.6
- version: 7.28.6(@babel/core@7.29.7)
+ specifier: 7.29.7
+ version: 7.29.7(@babel/core@7.29.7)
'@biomejs/biome':
specifier: 2.4.10
version: 2.4.10
@@ -533,8 +533,8 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-plugin-utils@7.28.6':
- resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==, tarball: https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz}
+ '@babel/helper-plugin-utils@7.29.7':
+ resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==, tarball: https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz}
engines: {node: '>=6.9.0'}
'@babel/helper-string-parser@7.27.1':
@@ -566,8 +566,8 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/plugin-syntax-typescript@7.28.6':
- resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz}
+ '@babel/plugin-syntax-typescript@7.29.7':
+ resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -6478,7 +6478,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-plugin-utils@7.28.6': {}
+ '@babel/helper-plugin-utils@7.29.7': {}
'@babel/helper-string-parser@7.27.1': {}
@@ -6499,10 +6499,10 @@ snapshots:
dependencies:
'@babel/types': 7.29.7
- '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.7)':
+ '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)':
dependencies:
'@babel/core': 7.29.7
- '@babel/helper-plugin-utils': 7.28.6
+ '@babel/helper-plugin-utils': 7.29.7
'@babel/runtime@7.26.10':
dependencies:
From 532660d4f81e41a677d209e358d9d31d072010e4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:31:12 +0000
Subject: [PATCH 06/15] chore: bump @vitest/browser-playwright from 4.1.1 to
4.1.7 in /site (#25959)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps
[@vitest/browser-playwright](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser-playwright)
from 4.1.1 to 4.1.7.
Release notes
Sourced from @vitest/browser-playwright's
releases .
v4.1.7
🐞 Bug Fixes
v4.1.6
🐞 Bug Fixes
🏎 Performance
v4.1.5
🚀 Experimental Features
🐞 Bug Fixes
v4.1.4
🚀 Experimental Features
... (truncated)
Commits
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 2 +-
site/pnpm-lock.yaml | 147 +++++++++++++++++++++++++-------------------
2 files changed, 84 insertions(+), 65 deletions(-)
diff --git a/site/package.json b/site/package.json
index 807e75d317..f77b7a1a4d 100644
--- a/site/package.json
+++ b/site/package.json
@@ -159,7 +159,7 @@
"@types/ua-parser-js": "0.7.36",
"@types/uuid": "9.0.2",
"@vitejs/plugin-react": "6.0.1",
- "@vitest/browser-playwright": "4.1.1",
+ "@vitest/browser-playwright": "4.1.7",
"autoprefixer": "10.5.0",
"babel-plugin-react-compiler": "1.0.0",
"chromatic": "11.29.0",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index c5859fd617..42d6c2e4bc 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -308,13 +308,13 @@ importers:
version: 10.3.3(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-mcp':
specifier: ^0.6.0
- version: 0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.1)(@vitest/browser@4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)
+ version: 0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)
'@storybook/addon-themes':
specifier: 10.3.3
version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-vitest':
specifier: 10.3.3
- version: 10.3.3(@vitest/browser-playwright@4.1.1)(@vitest/browser@4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
+ version: 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
'@storybook/react-vite':
specifier: 10.3.3
version: 10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
@@ -388,8 +388,8 @@ importers:
specifier: 6.0.1
version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@vitest/browser-playwright':
- specifier: 4.1.1
- version: 4.1.1(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ specifier: 4.1.7
+ version: 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
autoprefixer:
specifier: 10.5.0
version: 10.5.0(postcss@8.5.10)
@@ -461,7 +461,7 @@ importers:
version: 0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
vitest:
specifier: 4.1.5
- version: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.1)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
packages:
@@ -2653,6 +2653,9 @@ packages:
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz}
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz}
+
'@types/express-serve-static-core@4.17.35':
resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==, tarball: https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz}
@@ -2829,16 +2832,16 @@ packages:
babel-plugin-react-compiler:
optional: true
- '@vitest/browser-playwright@4.1.1':
- resolution: {integrity: sha512-dtVSBZZha2k/7P7EAXXrEAoxuIKl8Yv9f2Dk4GN/DGfmhf4DQvkvu+57okR2wq/gan1xppKjL/aBxK/kbYrbGw==, tarball: https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.1.tgz}
+ '@vitest/browser-playwright@4.1.7':
+ resolution: {integrity: sha512-OlTlJej7YN6VwV7zJJoNeaCsctF+JXpzpZ4oBHUbrQFfIq+0KW2f07rprCLh9N/zRIZ0v4Mchn1QDDmWMUhPKw==, tarball: https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.7.tgz}
peerDependencies:
playwright: 1.55.1
- vitest: 4.1.1
+ vitest: 4.1.7
- '@vitest/browser@4.1.1':
- resolution: {integrity: sha512-gjjrFC4+kPVK/fN9URDJWrssU5Gqh8Az8pKG/NSfQ2V+ky8b/y1BgBg0Ug13+hOGp5pzInonmGRPn7vOgSLgzA==, tarball: https://registry.npmjs.org/@vitest/browser/-/browser-4.1.1.tgz}
+ '@vitest/browser@4.1.7':
+ resolution: {integrity: sha512-N2JFGfXoEGVAut+kHeru9dD4BUMq/q5xDvBARNl0tUsly3m5KglLOu8VO/6MkDfOlgxXTycojkt6gBKsuyR+IQ==, tarball: https://registry.npmjs.org/@vitest/browser/-/browser-4.1.7.tgz}
peerDependencies:
- vitest: 4.1.1
+ vitest: 4.1.7
'@vitest/expect@3.2.4':
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz}
@@ -2846,17 +2849,6 @@ packages:
'@vitest/expect@4.1.5':
resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz}
- '@vitest/mocker@4.1.1':
- resolution: {integrity: sha512-h3BOylsfsCLPeceuCPAAJ+BvNwSENgJa4hXoXu4im0bs9Lyp4URc4JYK4pWLZ4pG/UQn7AT92K6IByi6rE6g3A==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.1.tgz}
- peerDependencies:
- msw: ^2.4.9
- vite: ^6.0.0 || ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- msw:
- optional: true
- vite:
- optional: true
-
'@vitest/mocker@4.1.5':
resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz}
peerDependencies:
@@ -2868,15 +2860,26 @@ packages:
vite:
optional: true
+ '@vitest/mocker@4.1.7':
+ resolution: {integrity: sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.7.tgz}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^6.0.0 || ^7.0.0 || ^8.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
'@vitest/pretty-format@3.2.4':
resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz}
- '@vitest/pretty-format@4.1.1':
- resolution: {integrity: sha512-GM+TEQN5WhOygr1lp7skeVjdLPqqWMHsfzXrcHAqZJi/lIVh63H0kaRCY8MDhNWikx19zBUK8ceaLB7X5AH9NQ==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.1.tgz}
-
'@vitest/pretty-format@4.1.5':
resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz}
+ '@vitest/pretty-format@4.1.7':
+ resolution: {integrity: sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.7.tgz}
+
'@vitest/runner@4.1.5':
resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==, tarball: https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz}
@@ -2886,21 +2889,21 @@ packages:
'@vitest/spy@3.2.4':
resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz}
- '@vitest/spy@4.1.1':
- resolution: {integrity: sha512-6Ti/KT5OVaiupdIZEuZN7l3CZcR0cxnxt70Z0//3CtwgObwA6jZhmVBA3yrXSVN3gmwjgd7oDNLlsXz526gpRA==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-4.1.1.tgz}
-
'@vitest/spy@4.1.5':
resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz}
+ '@vitest/spy@4.1.7':
+ resolution: {integrity: sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-4.1.7.tgz}
+
'@vitest/utils@3.2.4':
resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz}
- '@vitest/utils@4.1.1':
- resolution: {integrity: sha512-cNxAlaB3sHoCdL6pj6yyUXv9Gry1NHNg0kFTXdvSIZXLHsqKH7chiWOkwJ5s5+d/oMwcoG9T0bKU38JZWKusrQ==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-4.1.1.tgz}
-
'@vitest/utils@4.1.5':
resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz}
+ '@vitest/utils@4.1.7':
+ resolution: {integrity: sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-4.1.7.tgz}
+
'@xterm/addon-canvas@0.7.0':
resolution: {integrity: sha512-LF5LYcfvefJuJ7QotNRdRSPc9YASAVDeoT5uyXS/nZshZXjYplGXRECBGiznwvhNL2I8bq1Lf5MzRwstsYQ2Iw==, tarball: https://registry.npmjs.org/@xterm/addon-canvas/-/addon-canvas-0.7.0.tgz}
peerDependencies:
@@ -6305,6 +6308,18 @@ packages:
utf-8-validate:
optional: true
+ ws@8.21.0:
+ resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==, tarball: https://registry.npmjs.org/ws/-/ws-8.21.0.tgz}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
wsl-utils@0.1.0:
resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==, tarball: https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz}
engines: {node: '>=18'}
@@ -8293,7 +8308,7 @@ snapshots:
optionalDependencies:
react: 19.2.6
- '@storybook/addon-mcp@0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.1)(@vitest/browser@4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)':
+ '@storybook/addon-mcp@0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)':
dependencies:
'@storybook/mcp': 0.7.0(typescript@6.0.2)
'@tmcp/adapter-valibot': 0.1.5(tmcp@1.19.3(typescript@6.0.2))(valibot@1.2.0(typescript@6.0.2))
@@ -8303,7 +8318,7 @@ snapshots:
tmcp: 1.19.3(typescript@6.0.2)
valibot: 1.2.0(typescript@6.0.2)
optionalDependencies:
- '@storybook/addon-vitest': 10.3.3(@vitest/browser-playwright@4.1.1)(@vitest/browser@4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
+ '@storybook/addon-vitest': 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
transitivePeerDependencies:
- '@tmcp/auth'
- typescript
@@ -8313,16 +8328,16 @@ snapshots:
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
ts-dedent: 2.2.0
- '@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.1)(@vitest/browser@4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)':
+ '@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)':
dependencies:
'@storybook/global': 5.0.0
'@storybook/icons': 2.0.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
optionalDependencies:
- '@vitest/browser': 4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
- '@vitest/browser-playwright': 4.1.1(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
'@vitest/runner': 4.1.5
- vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.1)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
transitivePeerDependencies:
- react
- react-dom
@@ -8674,10 +8689,12 @@ snapshots:
'@types/estree-jsx@1.0.5':
dependencies:
- '@types/estree': 1.0.8
+ '@types/estree': 1.0.9
'@types/estree@1.0.8': {}
+ '@types/estree@1.0.9': {}
+
'@types/express-serve-static-core@4.17.35':
dependencies:
'@types/node': 20.19.39
@@ -8847,30 +8864,30 @@ snapshots:
'@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
babel-plugin-react-compiler: 1.0.0
- '@vitest/browser-playwright@4.1.1(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
+ '@vitest/browser-playwright@4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
dependencies:
- '@vitest/browser': 4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
- '@vitest/mocker': 4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
playwright: 1.55.1
tinyrainbow: 3.1.0
- vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.1)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
transitivePeerDependencies:
- bufferutil
- msw
- utf-8-validate
- vite
- '@vitest/browser@4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
+ '@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
dependencies:
'@blazediff/core': 1.9.1
- '@vitest/mocker': 4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
- '@vitest/utils': 4.1.1
+ '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/utils': 4.1.7
magic-string: 0.30.21
pngjs: 7.0.0
sirv: 3.0.2
tinyrainbow: 3.1.0
- vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.1)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
- ws: 8.20.0
+ vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ ws: 8.21.0
transitivePeerDependencies:
- bufferutil
- msw
@@ -8894,18 +8911,18 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.1.1(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@vitest/mocker@4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
- '@vitest/spy': 4.1.1
+ '@vitest/spy': 4.1.5
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
msw: 2.4.8(typescript@6.0.2)
vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
- '@vitest/mocker@4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@vitest/mocker@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
- '@vitest/spy': 4.1.5
+ '@vitest/spy': 4.1.7
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
@@ -8916,11 +8933,11 @@ snapshots:
dependencies:
tinyrainbow: 2.0.0
- '@vitest/pretty-format@4.1.1':
+ '@vitest/pretty-format@4.1.5':
dependencies:
tinyrainbow: 3.1.0
- '@vitest/pretty-format@4.1.5':
+ '@vitest/pretty-format@4.1.7':
dependencies:
tinyrainbow: 3.1.0
@@ -8940,28 +8957,28 @@ snapshots:
dependencies:
tinyspy: 4.0.4
- '@vitest/spy@4.1.1': {}
-
'@vitest/spy@4.1.5': {}
+ '@vitest/spy@4.1.7': {}
+
'@vitest/utils@3.2.4':
dependencies:
'@vitest/pretty-format': 3.2.4
loupe: 3.2.1
tinyrainbow: 2.0.0
- '@vitest/utils@4.1.1':
- dependencies:
- '@vitest/pretty-format': 4.1.1
- convert-source-map: 2.0.0
- tinyrainbow: 3.1.0
-
'@vitest/utils@4.1.5':
dependencies:
'@vitest/pretty-format': 4.1.5
convert-source-map: 2.0.0
tinyrainbow: 3.1.0
+ '@vitest/utils@4.1.7':
+ dependencies:
+ '@vitest/pretty-format': 4.1.7
+ convert-source-map: 2.0.0
+ tinyrainbow: 3.1.0
+
'@xterm/addon-canvas@0.7.0(@xterm/xterm@5.5.0)':
dependencies:
'@xterm/xterm': 5.5.0
@@ -9852,7 +9869,7 @@ snapshots:
estree-walker@3.0.3:
dependencies:
- '@types/estree': 1.0.8
+ '@types/estree': 1.0.9
esutils@2.0.3: {}
@@ -12635,7 +12652,7 @@ snapshots:
jiti: 1.21.7
yaml: 2.8.3
- vitest@4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.1)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
+ vitest@4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
dependencies:
'@vitest/expect': 4.1.5
'@vitest/mocker': 4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
@@ -12659,7 +12676,7 @@ snapshots:
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 20.19.39
- '@vitest/browser-playwright': 4.1.1(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
jsdom: 27.2.0
transitivePeerDependencies:
- msw
@@ -12771,6 +12788,8 @@ snapshots:
ws@8.20.0: {}
+ ws@8.21.0: {}
+
wsl-utils@0.1.0:
dependencies:
is-wsl: 3.1.1
From 5bb089b0cd1cf71b1d175e966e25da33cb43a13a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:32:12 +0000
Subject: [PATCH 07/15] chore: bump postcss from 8.5.10 to 8.5.15 in /site
(#25962)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[//]: # (dependabot-start)
⚠️ **Dependabot is rebasing this PR** ⚠️
Rebasing might not happen immediately, so don't worry if this takes some
time.
Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.
---
[//]: # (dependabot-end)
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.10 to
8.5.15.
Release notes
Sourced from postcss's
releases .
8.5.15
Fixed declaration parsing performance (by @homanp ).
8.5.14
Fixed custom syntax regression (by @43081j ).
8.5.13
Fixed postcss-scss commend regression.
8.5.12
Fixed reading any file via user-generated CSS.
Added opts.unsafeMap to disable checks.
8.5.11
Fixed nested brackets parsing performance (by @offset ).
Changelog
Sourced from postcss's
changelog .
8.5.15
Fixed declaration parsing performance (by @homanp ).
8.5.14
Fixed custom syntax regression (by @43081j ).
8.5.13
Fixed postcss-scss commend regression.
8.5.12
Fixed reading any file via user-generated CSS.
Added opts.unsafeMap to disable checks.
8.5.11
Fixed nested brackets parsing performance (by @offset ).
Commits
eae46db
Release 8.5.15 version
79508ff
Update CI actions
b128e21
Speed up declaration parsing by avoiding creating new array on each
token
9825dca
Fix code format
55789c8
Update dependencies
84fbbe9
Install older pnpm action for old Node.js
9f860bd
Revert pnpm action for old Node.js
0877198
Update CI actions
b2d1a33
Fix linter warnings
0700dac
Merge pull request #2088
from rootvector2/add-oss-fuzz-harness
Additional commits viewable in compare
view
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 2 +-
site/pnpm-lock.yaml | 52 ++++++++++++++++++++++-----------------------
2 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/site/package.json b/site/package.json
index f77b7a1a4d..50c3ed443c 100644
--- a/site/package.json
+++ b/site/package.json
@@ -170,7 +170,7 @@
"jsdom": "27.2.0",
"knip": "5.71.0",
"msw": "2.4.8",
- "postcss": "8.5.10",
+ "postcss": "8.5.15",
"protobufjs": "7.6.1",
"resize-observer-polyfill": "1.5.1",
"rollup-plugin-visualizer": "7.0.1",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index 42d6c2e4bc..75f28a39c7 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -392,7 +392,7 @@ importers:
version: 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
autoprefixer:
specifier: 10.5.0
- version: 10.5.0(postcss@8.5.10)
+ version: 10.5.0(postcss@8.5.15)
babel-plugin-react-compiler:
specifier: 1.0.0
version: 1.0.0
@@ -421,8 +421,8 @@ importers:
specifier: 2.4.8
version: 2.4.8(typescript@6.0.2)
postcss:
- specifier: 8.5.10
- version: 8.5.10
+ specifier: 8.5.15
+ version: 8.5.15
protobufjs:
specifier: 7.6.1
version: 7.6.1
@@ -4817,8 +4817,8 @@ packages:
nan@2.23.0:
resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==, tarball: https://registry.npmjs.org/nan/-/nan-2.23.0.tgz}
- nanoid@3.3.11:
- resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==, tarball: https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz}
+ nanoid@3.3.12:
+ resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==, tarball: https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
@@ -5064,8 +5064,8 @@ packages:
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, tarball: https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz}
- postcss@8.5.10:
- resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz}
+ postcss@8.5.15:
+ resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz}
engines: {node: ^10 || ^12 || >=14}
powershell-utils@0.1.0:
@@ -9074,13 +9074,13 @@ snapshots:
asynckit@0.4.0: {}
- autoprefixer@10.5.0(postcss@8.5.10):
+ autoprefixer@10.5.0(postcss@8.5.15):
dependencies:
browserslist: 4.28.2
caniuse-lite: 1.0.30001791
fraction.js: 5.3.4
picocolors: 1.1.1
- postcss: 8.5.10
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
available-typed-arrays@1.0.7:
@@ -11168,7 +11168,7 @@ snapshots:
nan@2.23.0:
optional: true
- nanoid@3.3.11: {}
+ nanoid@3.3.12: {}
negotiator@0.6.3: {}
@@ -11387,29 +11387,29 @@ snapshots:
possible-typed-array-names@1.0.0: {}
- postcss-import@15.1.0(postcss@8.5.10):
+ postcss-import@15.1.0(postcss@8.5.15):
dependencies:
- postcss: 8.5.10
+ postcss: 8.5.15
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.11
- postcss-js@4.1.0(postcss@8.5.10):
+ postcss-js@4.1.0(postcss@8.5.15):
dependencies:
camelcase-css: 2.0.1
- postcss: 8.5.10
+ postcss: 8.5.15
- postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.10)(yaml@2.8.3):
+ postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.15)(yaml@2.8.3):
dependencies:
lilconfig: 3.1.3
optionalDependencies:
jiti: 1.21.7
- postcss: 8.5.10
+ postcss: 8.5.15
yaml: 2.8.3
- postcss-nested@6.2.0(postcss@8.5.10):
+ postcss-nested@6.2.0(postcss@8.5.15):
dependencies:
- postcss: 8.5.10
+ postcss: 8.5.15
postcss-selector-parser: 6.1.2
postcss-selector-parser@6.0.10:
@@ -11424,9 +11424,9 @@ snapshots:
postcss-value-parser@4.2.0: {}
- postcss@8.5.10:
+ postcss@8.5.15:
dependencies:
- nanoid: 3.3.11
+ nanoid: 3.3.12
picocolors: 1.1.1
source-map-js: 1.2.1
@@ -12311,11 +12311,11 @@ snapshots:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.1.1
- postcss: 8.5.10
- postcss-import: 15.1.0(postcss@8.5.10)
- postcss-js: 4.1.0(postcss@8.5.10)
- postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.10)(yaml@2.8.3)
- postcss-nested: 6.2.0(postcss@8.5.10)
+ postcss: 8.5.15
+ postcss-import: 15.1.0(postcss@8.5.15)
+ postcss-js: 4.1.0(postcss@8.5.15)
+ postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.15)(yaml@2.8.3)
+ postcss-nested: 6.2.0(postcss@8.5.15)
postcss-selector-parser: 6.1.2
resolve: 1.22.10
sucrase: 3.35.0
@@ -12642,7 +12642,7 @@ snapshots:
dependencies:
lightningcss: 1.32.0
picomatch: 4.0.4
- postcss: 8.5.10
+ postcss: 8.5.15
rolldown: 1.0.0-rc.17
tinyglobby: 0.2.16
optionalDependencies:
From 36e71e04edcb218aad1337b4988ddb404a2019cf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:41:19 +0000
Subject: [PATCH 08/15] chore: bump @types/node from 20.19.39 to 20.19.41 in
/site (#25955)
Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.19.39 to 20.19.41.
Commits
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 2 +-
site/pnpm-lock.yaml | 138 ++++++++++++++++++++++----------------------
2 files changed, 70 insertions(+), 70 deletions(-)
diff --git a/site/package.json b/site/package.json
index 50c3ed443c..519ec47024 100644
--- a/site/package.json
+++ b/site/package.json
@@ -146,7 +146,7 @@
"@types/file-saver": "2.0.7",
"@types/humanize-duration": "3.27.4",
"@types/lodash": "4.17.24",
- "@types/node": "20.19.39",
+ "@types/node": "20.19.41",
"@types/novnc__novnc": "1.5.0",
"@types/react": "19.2.15",
"@types/react-color": "3.0.13",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index 75f28a39c7..ee213752ed 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -296,28 +296,28 @@ importers:
version: 1.50.1
'@rolldown/plugin-babel':
specifier: 0.2.3
- version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@storybook/addon-a11y':
specifier: 10.3.3
version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-docs':
specifier: 10.3.3
- version: 10.3.3(@types/react@19.2.15)(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 10.3.3(@types/react@19.2.15)(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@storybook/addon-links':
specifier: 10.3.3
version: 10.3.3(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-mcp':
specifier: ^0.6.0
- version: 0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)
+ version: 0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)
'@storybook/addon-themes':
specifier: 10.3.3
version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-vitest':
specifier: 10.3.3
- version: 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
+ version: 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
'@storybook/react-vite':
specifier: 10.3.3
- version: 10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@tailwindcss/typography':
specifier: 0.5.19
version: 0.5.19(tailwindcss@3.4.18(yaml@2.8.3))
@@ -349,8 +349,8 @@ importers:
specifier: 4.17.24
version: 4.17.24
'@types/node':
- specifier: 20.19.39
- version: 20.19.39
+ specifier: 20.19.41
+ version: 20.19.41
'@types/novnc__novnc':
specifier: 1.5.0
version: 1.5.0
@@ -386,10 +386,10 @@ importers:
version: 9.0.2
'@vitejs/plugin-react':
specifier: 6.0.1
- version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@vitest/browser-playwright':
specifier: 4.1.7
- version: 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ version: 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
autoprefixer:
specifier: 10.5.0
version: 10.5.0(postcss@8.5.15)
@@ -416,7 +416,7 @@ importers:
version: 27.2.0
knip:
specifier: 5.71.0
- version: 5.71.0(@types/node@20.19.39)(typescript@6.0.2)
+ version: 5.71.0(@types/node@20.19.41)(typescript@6.0.2)
msw:
specifier: 2.4.8
version: 2.4.8(typescript@6.0.2)
@@ -455,13 +455,13 @@ importers:
version: 6.0.2
vite:
specifier: 8.0.10
- version: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ version: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
vite-plugin-checker:
specifier: 0.13.0
- version: 0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
vitest:
specifier: 4.1.5
- version: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
packages:
@@ -2709,8 +2709,8 @@ packages:
'@types/node@18.19.130':
resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==, tarball: https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz}
- '@types/node@20.19.39':
- resolution: {integrity: sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==, tarball: https://registry.npmjs.org/@types/node/-/node-20.19.39.tgz}
+ '@types/node@20.19.41':
+ resolution: {integrity: sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ==, tarball: https://registry.npmjs.org/@types/node/-/node-20.19.41.tgz}
'@types/node@22.19.19':
resolution: {integrity: sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==, tarball: https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz}
@@ -6967,11 +6967,11 @@ snapshots:
dependencies:
'@sinclair/typebox': 0.27.8
- '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
glob: 10.5.0
react-docgen-typescript: 2.4.0(typescript@6.0.2)
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
optionalDependencies:
typescript: 6.0.2
@@ -8217,14 +8217,14 @@ snapshots:
'@rolldown/binding-win32-x64-msvc@1.0.0-rc.17':
optional: true
- '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
'@babel/core': 7.29.7
picomatch: 4.0.4
rolldown: 1.0.0-rc.17
optionalDependencies:
'@babel/runtime': 7.26.10
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
'@rolldown/pluginutils@1.0.0-rc.17': {}
@@ -8284,10 +8284,10 @@ snapshots:
axe-core: 4.11.1
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- '@storybook/addon-docs@10.3.3(@types/react@19.2.15)(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@storybook/addon-docs@10.3.3(@types/react@19.2.15)(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
'@mdx-js/react': 3.1.1(@types/react@19.2.15)(react@19.2.6)
- '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@storybook/icons': 2.0.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
'@storybook/react-dom-shim': 10.3.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
react: 19.2.6
@@ -8308,7 +8308,7 @@ snapshots:
optionalDependencies:
react: 19.2.6
- '@storybook/addon-mcp@0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)':
+ '@storybook/addon-mcp@0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)':
dependencies:
'@storybook/mcp': 0.7.0(typescript@6.0.2)
'@tmcp/adapter-valibot': 0.1.5(tmcp@1.19.3(typescript@6.0.2))(valibot@1.2.0(typescript@6.0.2))
@@ -8318,7 +8318,7 @@ snapshots:
tmcp: 1.19.3(typescript@6.0.2)
valibot: 1.2.0(typescript@6.0.2)
optionalDependencies:
- '@storybook/addon-vitest': 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
+ '@storybook/addon-vitest': 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
transitivePeerDependencies:
- '@tmcp/auth'
- typescript
@@ -8328,38 +8328,38 @@ snapshots:
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
ts-dedent: 2.2.0
- '@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)':
+ '@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)':
dependencies:
'@storybook/global': 5.0.0
'@storybook/icons': 2.0.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
optionalDependencies:
- '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
- '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
'@vitest/runner': 4.1.5
- vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ vitest: 4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
transitivePeerDependencies:
- react
- react-dom
- '@storybook/builder-vite@10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@storybook/builder-vite@10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
- '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
ts-dedent: 2.2.0
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
transitivePeerDependencies:
- esbuild
- rollup
- webpack
- '@storybook/csf-plugin@10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@storybook/csf-plugin@10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
unplugin: 2.3.11
optionalDependencies:
esbuild: 0.25.12
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
'@storybook/global@5.0.0': {}
@@ -8384,11 +8384,11 @@ snapshots:
react-dom: 19.2.6(react@19.2.6)
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- '@storybook/react-vite@10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@storybook/react-vite@10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@rollup/pluginutils': 5.3.0
- '@storybook/builder-vite': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@storybook/builder-vite': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@storybook/react': 10.3.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)
empathic: 2.0.0
magic-string: 0.30.21
@@ -8398,7 +8398,7 @@ snapshots:
resolve: 1.22.11
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
tsconfig-paths: 4.2.0
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
transitivePeerDependencies:
- esbuild
- rollup
@@ -8537,7 +8537,7 @@ snapshots:
'@types/body-parser@1.19.2':
dependencies:
'@types/connect': 3.4.35
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
'@types/chai@5.2.3':
dependencies:
@@ -8554,7 +8554,7 @@ snapshots:
'@types/connect@3.4.35':
dependencies:
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
'@types/cookie@0.6.0': {}
@@ -8697,7 +8697,7 @@ snapshots:
'@types/express-serve-static-core@4.17.35':
dependencies:
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
'@types/send': 0.17.1
@@ -8746,13 +8746,13 @@ snapshots:
'@types/mute-stream@0.0.4':
dependencies:
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
'@types/node@18.19.130':
dependencies:
undici-types: 5.26.5
- '@types/node@20.19.39':
+ '@types/node@20.19.41':
dependencies:
undici-types: 6.21.0
@@ -8817,13 +8817,13 @@ snapshots:
'@types/send@0.17.1':
dependencies:
'@types/mime': 1.3.2
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
'@types/serve-static@1.15.2':
dependencies:
'@types/http-errors': 2.0.1
'@types/mime': 3.0.1
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
'@types/ssh2@1.15.5':
dependencies:
@@ -8856,37 +8856,37 @@ snapshots:
dependencies:
valibot: 1.2.0(typescript@6.0.2)
- '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-rc.7
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
optionalDependencies:
- '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
babel-plugin-react-compiler: 1.0.0
- '@vitest/browser-playwright@4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
+ '@vitest/browser-playwright@4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
dependencies:
- '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
- '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
playwright: 1.55.1
tinyrainbow: 3.1.0
- vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ vitest: 4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
transitivePeerDependencies:
- bufferutil
- msw
- utf-8-validate
- vite
- '@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
+ '@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
dependencies:
'@blazediff/core': 1.9.1
- '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@vitest/utils': 4.1.7
magic-string: 0.30.21
pngjs: 7.0.0
sirv: 3.0.2
tinyrainbow: 3.1.0
- vitest: 4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ vitest: 4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
ws: 8.21.0
transitivePeerDependencies:
- bufferutil
@@ -8911,23 +8911,23 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@vitest/mocker@4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
'@vitest/spy': 4.1.5
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
msw: 2.4.8(typescript@6.0.2)
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
- '@vitest/mocker@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@vitest/mocker@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
'@vitest/spy': 4.1.7
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
msw: 2.4.8(typescript@6.0.2)
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -10533,10 +10533,10 @@ snapshots:
khroma@2.1.0: {}
- knip@5.71.0(@types/node@20.19.39)(typescript@6.0.2):
+ knip@5.71.0(@types/node@20.19.41)(typescript@6.0.2):
dependencies:
'@nodelib/fs.walk': 1.2.8
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
fast-glob: 3.3.3
formatly: 0.3.0
jiti: 2.6.1
@@ -11488,7 +11488,7 @@ snapshots:
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.1
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
long: 5.3.2
proxy-addr@2.0.7:
@@ -12621,7 +12621,7 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite-plugin-checker@0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
+ vite-plugin-checker@0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
dependencies:
'@babel/code-frame': 7.29.0
chokidar: 4.0.3
@@ -12631,14 +12631,14 @@ snapshots:
proper-lockfile: 4.1.2
tiny-invariant: 1.3.3
tinyglobby: 0.2.16
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
vscode-uri: 3.1.0
optionalDependencies:
'@biomejs/biome': 2.4.10
optionator: 0.9.3
typescript: 6.0.2
- vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3):
+ vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3):
dependencies:
lightningcss: 1.32.0
picomatch: 4.0.4
@@ -12646,16 +12646,16 @@ snapshots:
rolldown: 1.0.0-rc.17
tinyglobby: 0.2.16
optionalDependencies:
- '@types/node': 20.19.39
+ '@types/node': 20.19.41
esbuild: 0.25.12
fsevents: 2.3.3
jiti: 1.21.7
yaml: 2.8.3
- vitest@4.1.5(@types/node@20.19.39)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
+ vitest@4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
dependencies:
'@vitest/expect': 4.1.5
- '@vitest/mocker': 4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/mocker': 4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@vitest/pretty-format': 4.1.5
'@vitest/runner': 4.1.5
'@vitest/snapshot': 4.1.5
@@ -12672,11 +12672,11 @@ snapshots:
tinyexec: 1.1.2
tinyglobby: 0.2.16
tinyrainbow: 3.1.0
- vite: 8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
why-is-node-running: 2.3.0
optionalDependencies:
- '@types/node': 20.19.39
- '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.39)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@types/node': 20.19.41
+ '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
jsdom: 27.2.0
transitivePeerDependencies:
- msw
From 81288656cd148dae0b91b1d7dd88c62036d00158 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 08:52:12 +0000
Subject: [PATCH 09/15] chore: bump the vite group across 1 directory with 3
updates (#25951)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps the vite group with 3 updates in the /site directory:
[@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react),
[vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) and
[vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Updates `@vitejs/plugin-react` from 6.0.1 to 6.0.2
Release notes
Sourced from @vitejs/plugin-react's
releases .
plugin-react@6.0.2
Allow all options in reactCompilerPreset (#1189 )
This is a type only change. Only compilationMode and
target options were available for
reactCompilerPreset.
Changelog
Sourced from @vitejs/plugin-react's
changelog .
6.0.2 (2026-05-14)
Allow all options in reactCompilerPreset (#1189 )
This is a type only change. Only compilationMode and
target options were available for
reactCompilerPreset.
Commits
Updates `vite` from 8.0.10 to 8.0.14
Release notes
Sourced from vite's
releases .
v8.0.14
Please refer to CHANGELOG.md
for details.
v8.0.13
Please refer to CHANGELOG.md
for details.
v8.0.12
Please refer to CHANGELOG.md
for details.
v8.0.11
Please refer to CHANGELOG.md
for details.
Changelog
Sourced from vite's
changelog .
8.0.14
(2026-05-21)
Features
Bug Fixes
deps: update all non-major dependencies (#22471 )
(98b8163 )
dev: handle errors when sending messages to vite
server (#22450 )
(e8e9a34 )
html: handle trailing slash paths in
transformIndexHtml (#22480 )
(5d94d1b )
optimizer: pass oxc jsx options to transformSync in
dependency scan (#22342 )
(b3132da )
Miscellaneous Chores
deps: update rolldown-related dependencies (#22470 )
(7cb728e )
remove irrelevant commits from changelog (2c69495 )
Code Refactoring
glob: do not rewrite import path for absolute base
(#22310 )
(0ae2844 )
Tests
8.0.13
(2026-05-14)
Features
bundled-dev: add lazy bundling support (#21406 )
(4f0949f )
optimizer: improve the esbuild plugin converter to
pass some properties of build result to onEnd (#22357 )
(47071ce )
update rolldown to 1.0.1 (#22444 )
(8c766a6 )
Bug Fixes
build: copy public directory after building same
environment with write=false (#22328 )
(158e8ae )
css: await sass/less/styl worker disposal on
teardown (fix #22274 )
(#22275 )
(b7edcb7 )
css: keep deprecated
name/originalFileName in synthetic
assetFileNames call (#22439 )
(8e59c97 )
make isBundled per environment (#22257 )
(a576326 )
ssr: avoid rewriting labels that collide with
imports (#22451 )
(d9b18e0 )
Miscellaneous Chores
8.0.12
(2026-05-11)
Features
... (truncated)
Commits
c917f1e
release: v8.0.14
5d94d1b
fix(html): handle trailing slash paths in transformIndexHtml (#22480 )
98b8163
fix(deps): update all non-major dependencies (#22471 )
96efc88
feat: update rolldown to 1.0.2 (#22484 )
ebf39a0
test(css): sass does not use main field (#22449 )
0ae2844
refactor(glob): do not rewrite import path for absolute base (#22310 )
7cb728e
chore(deps): update rolldown-related dependencies (#22470 )
b3132da
fix(optimizer): pass oxc jsx options to transformSync in dependency scan
...
e8e9a34
fix(dev): handle errors when sending messages to vite server (#22450 )
2c69495
chore: remove irrelevant commits from changelog
Additional commits viewable in compare
view
Updates `vitest` from 4.1.5 to 4.1.7
Release notes
Sourced from vitest's
releases .
v4.1.7
🐞 Bug Fixes
v4.1.6
🐞 Bug Fixes
🏎 Performance
Commits
a09d472
chore: release v4.1.7
a8fd24c
chore: release v4.1.6
18af98c
fix(browser): simplify orchestrator otel carrier (#10285 )
3188260
feat(browser): provide project reference in
ToMatchScreenshotResolvePath (#...
See full diff in compare
view
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
site/package.json | 6 +-
site/pnpm-lock.yaml | 409 ++++++++++++++++++++------------------------
2 files changed, 193 insertions(+), 222 deletions(-)
diff --git a/site/package.json b/site/package.json
index 519ec47024..0bca138fe5 100644
--- a/site/package.json
+++ b/site/package.json
@@ -158,7 +158,7 @@
"@types/ssh2": "1.15.5",
"@types/ua-parser-js": "0.7.36",
"@types/uuid": "9.0.2",
- "@vitejs/plugin-react": "6.0.1",
+ "@vitejs/plugin-react": "6.0.2",
"@vitest/browser-playwright": "4.1.7",
"autoprefixer": "10.5.0",
"babel-plugin-react-compiler": "1.0.0",
@@ -181,9 +181,9 @@
"tailwindcss": "3.4.18",
"ts-proto": "1.181.2",
"typescript": "6.0.2",
- "vite": "8.0.10",
+ "vite": "8.0.14",
"vite-plugin-checker": "0.13.0",
- "vitest": "4.1.5"
+ "vitest": "4.1.7"
},
"browserslist": [
"chrome 110",
diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml
index ee213752ed..d8063999ef 100644
--- a/site/pnpm-lock.yaml
+++ b/site/pnpm-lock.yaml
@@ -296,28 +296,28 @@ importers:
version: 1.50.1
'@rolldown/plugin-babel':
specifier: 0.2.3
- version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@storybook/addon-a11y':
specifier: 10.3.3
version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-docs':
specifier: 10.3.3
- version: 10.3.3(@types/react@19.2.15)(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 10.3.3(@types/react@19.2.15)(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@storybook/addon-links':
specifier: 10.3.3
version: 10.3.3(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-mcp':
specifier: ^0.6.0
- version: 0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)
+ version: 0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7))(@vitest/runner@4.1.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.7))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)
'@storybook/addon-themes':
specifier: 10.3.3
version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-vitest':
specifier: 10.3.3
- version: 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
+ version: 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7))(@vitest/runner@4.1.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.7)
'@storybook/react-vite':
specifier: 10.3.3
- version: 10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@tailwindcss/typography':
specifier: 0.5.19
version: 0.5.19(tailwindcss@3.4.18(yaml@2.8.3))
@@ -385,11 +385,11 @@ importers:
specifier: 9.0.2
version: 9.0.2
'@vitejs/plugin-react':
- specifier: 6.0.1
- version: 6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ specifier: 6.0.2
+ version: 6.0.2(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@vitest/browser-playwright':
specifier: 4.1.7
- version: 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ version: 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7)
autoprefixer:
specifier: 10.5.0
version: 10.5.0(postcss@8.5.15)
@@ -431,7 +431,7 @@ importers:
version: 1.5.1
rollup-plugin-visualizer:
specifier: 7.0.1
- version: 7.0.1(rolldown@1.0.0-rc.17)
+ version: 7.0.1(rolldown@1.0.2)
rxjs:
specifier: 7.8.2
version: 7.8.2
@@ -454,14 +454,14 @@ importers:
specifier: 6.0.2
version: 6.0.2
vite:
- specifier: 8.0.10
- version: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ specifier: 8.0.14
+ version: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
vite-plugin-checker:
specifier: 0.13.0
- version: 0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ version: 0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
vitest:
- specifier: 4.1.5
- version: 4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ specifier: 4.1.7
+ version: 4.1.7(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
packages:
@@ -1305,8 +1305,8 @@ packages:
'@open-draft/until@2.1.0':
resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==, tarball: https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz}
- '@oxc-project/types@0.127.0':
- resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==, tarball: https://registry.npmjs.org/@oxc-project/types/-/types-0.127.0.tgz}
+ '@oxc-project/types@0.132.0':
+ resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==, tarball: https://registry.npmjs.org/@oxc-project/types/-/types-0.132.0.tgz}
'@oxc-resolver/binding-android-arm-eabi@11.14.0':
resolution: {integrity: sha512-jB47iZ/thvhE+USCLv+XY3IknBbkKr/p7OBsQDTHode/GPw+OHRlit3NQ1bjt1Mj8V2CS7iHdSDYobZ1/0gagQ==, tarball: https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.14.0.tgz}
@@ -2159,97 +2159,97 @@ packages:
'@radix-ui/rect@1.1.1':
resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==, tarball: https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz}
- '@rolldown/binding-android-arm64@1.0.0-rc.17':
- resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==, tarball: https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz}
+ '@rolldown/binding-android-arm64@1.0.2':
+ resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==, tarball: https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@rolldown/binding-darwin-arm64@1.0.0-rc.17':
- resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==, tarball: https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz}
+ '@rolldown/binding-darwin-arm64@1.0.2':
+ resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==, tarball: https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@rolldown/binding-darwin-x64@1.0.0-rc.17':
- resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==, tarball: https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz}
+ '@rolldown/binding-darwin-x64@1.0.2':
+ resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==, tarball: https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@rolldown/binding-freebsd-x64@1.0.0-rc.17':
- resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==, tarball: https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz}
+ '@rolldown/binding-freebsd-x64@1.0.2':
+ resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==, tarball: https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17':
- resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz}
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.2':
+ resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17':
- resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz}
+ '@rolldown/binding-linux-arm64-gnu@1.0.2':
+ resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17':
- resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz}
+ '@rolldown/binding-linux-arm64-musl@1.0.2':
+ resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17':
- resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz}
+ '@rolldown/binding-linux-ppc64-gnu@1.0.2':
+ resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17':
- resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz}
+ '@rolldown/binding-linux-s390x-gnu@1.0.2':
+ resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17':
- resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.17.tgz}
+ '@rolldown/binding-linux-x64-gnu@1.0.2':
+ resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-musl@1.0.0-rc.17':
- resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz}
+ '@rolldown/binding-linux-x64-musl@1.0.2':
+ resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==, tarball: https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@rolldown/binding-openharmony-arm64@1.0.0-rc.17':
- resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==, tarball: https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz}
+ '@rolldown/binding-openharmony-arm64@1.0.2':
+ resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==, tarball: https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@rolldown/binding-wasm32-wasi@1.0.0-rc.17':
- resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==, tarball: https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz}
+ '@rolldown/binding-wasm32-wasi@1.0.2':
+ resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==, tarball: https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [wasm32]
- '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17':
- resolution: {integrity: sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==, tarball: https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz}
+ '@rolldown/binding-win32-arm64-msvc@1.0.2':
+ resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==, tarball: https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17':
- resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==, tarball: https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.17.tgz}
+ '@rolldown/binding-win32-x64-msvc@1.0.2':
+ resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==, tarball: https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -2271,11 +2271,8 @@ packages:
vite:
optional: true
- '@rolldown/pluginutils@1.0.0-rc.17':
- resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==, tarball: https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz}
-
- '@rolldown/pluginutils@1.0.0-rc.7':
- resolution: {integrity: sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==, tarball: https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz}
+ '@rolldown/pluginutils@1.0.1':
+ resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==, tarball: https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz}
'@rollup/pluginutils@5.3.0':
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==, tarball: https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz}
@@ -2503,6 +2500,9 @@ packages:
'@tybys/wasm-util@0.10.1':
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==, tarball: https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz}
+ '@tybys/wasm-util@0.10.2':
+ resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==, tarball: https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz}
+
'@types/aria-query@5.0.3':
resolution: {integrity: sha512-0Z6Tr7wjKJIk4OUEjVUQMtyunLDy339vcMaj38Kpj6jM2OE1p3S4kXExKZ7a3uXQAPCoy3sbrP1wibDKaf39oA==, tarball: https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.3.tgz}
@@ -2819,8 +2819,8 @@ packages:
peerDependencies:
valibot: ^1.4.0
- '@vitejs/plugin-react@6.0.1':
- resolution: {integrity: sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==, tarball: https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz}
+ '@vitejs/plugin-react@6.0.2':
+ resolution: {integrity: sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==, tarball: https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
peerDependencies:
'@rolldown/plugin-babel': ^0.1.7 || ^0.2.0
@@ -2846,19 +2846,8 @@ packages:
'@vitest/expect@3.2.4':
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz}
- '@vitest/expect@4.1.5':
- resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz}
-
- '@vitest/mocker@4.1.5':
- resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz}
- peerDependencies:
- msw: ^2.4.9
- vite: ^6.0.0 || ^7.0.0 || ^8.0.0
- peerDependenciesMeta:
- msw:
- optional: true
- vite:
- optional: true
+ '@vitest/expect@4.1.7':
+ resolution: {integrity: sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-4.1.7.tgz}
'@vitest/mocker@4.1.7':
resolution: {integrity: sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.7.tgz}
@@ -2874,33 +2863,24 @@ packages:
'@vitest/pretty-format@3.2.4':
resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz}
- '@vitest/pretty-format@4.1.5':
- resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz}
-
'@vitest/pretty-format@4.1.7':
resolution: {integrity: sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.7.tgz}
- '@vitest/runner@4.1.5':
- resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==, tarball: https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz}
+ '@vitest/runner@4.1.7':
+ resolution: {integrity: sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw==, tarball: https://registry.npmjs.org/@vitest/runner/-/runner-4.1.7.tgz}
- '@vitest/snapshot@4.1.5':
- resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==, tarball: https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.5.tgz}
+ '@vitest/snapshot@4.1.7':
+ resolution: {integrity: sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw==, tarball: https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.7.tgz}
'@vitest/spy@3.2.4':
resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz}
- '@vitest/spy@4.1.5':
- resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz}
-
'@vitest/spy@4.1.7':
resolution: {integrity: sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-4.1.7.tgz}
'@vitest/utils@3.2.4':
resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz}
- '@vitest/utils@4.1.5':
- resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz}
-
'@vitest/utils@4.1.7':
resolution: {integrity: sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-4.1.7.tgz}
@@ -5448,8 +5428,8 @@ packages:
robust-predicates@3.0.2:
resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==, tarball: https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz}
- rolldown@1.0.0-rc.17:
- resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==, tarball: https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz}
+ rolldown@1.0.2:
+ resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==, tarball: https://registry.npmjs.org/rolldown/-/rolldown-1.0.2.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
@@ -5781,14 +5761,18 @@ packages:
tinycolor2@1.6.0:
resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, tarball: https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz}
- tinyexec@1.1.2:
- resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==, tarball: https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz}
+ tinyexec@1.2.4:
+ resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==, tarball: https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz}
engines: {node: '>=18'}
tinyglobby@0.2.16:
resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==, tarball: https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz}
engines: {node: '>=12.0.0'}
+ tinyglobby@0.2.17:
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==, tarball: https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz}
+ engines: {node: '>=12.0.0'}
+
tinyrainbow@2.0.0:
resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==, tarball: https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz}
engines: {node: '>=14.0.0'}
@@ -6107,13 +6091,13 @@ packages:
vue-tsc:
optional: true
- vite@8.0.10:
- resolution: {integrity: sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==, tarball: https://registry.npmjs.org/vite/-/vite-8.0.10.tgz}
+ vite@8.0.14:
+ resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==, tarball: https://registry.npmjs.org/vite/-/vite-8.0.14.tgz}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
'@types/node': ^20.19.0 || >=22.12.0
- '@vitejs/devtools': ^0.1.0
+ '@vitejs/devtools': ^0.1.18
esbuild: ^0.25.0
jiti: '>=1.21.0'
less: ^4.0.0
@@ -6150,20 +6134,20 @@ packages:
yaml:
optional: true
- vitest@4.1.5:
- resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==, tarball: https://registry.npmjs.org/vitest/-/vitest-4.1.5.tgz}
+ vitest@4.1.7:
+ resolution: {integrity: sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA==, tarball: https://registry.npmjs.org/vitest/-/vitest-4.1.7.tgz}
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@opentelemetry/api': ^1.9.0
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
- '@vitest/browser-playwright': 4.1.5
- '@vitest/browser-preview': 4.1.5
- '@vitest/browser-webdriverio': 4.1.5
- '@vitest/coverage-istanbul': 4.1.5
- '@vitest/coverage-v8': 4.1.5
- '@vitest/ui': 4.1.5
+ '@vitest/browser-playwright': 4.1.7
+ '@vitest/browser-preview': 4.1.7
+ '@vitest/browser-webdriverio': 4.1.7
+ '@vitest/coverage-istanbul': 4.1.7
+ '@vitest/coverage-v8': 4.1.7
+ '@vitest/ui': 4.1.7
happy-dom: '*'
jsdom: '*'
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -6398,7 +6382,7 @@ snapshots:
'@antfu/install-pkg@1.1.0':
dependencies:
package-manager-detector: 1.6.0
- tinyexec: 1.1.2
+ tinyexec: 1.2.4
'@asamuzakjp/css-color@4.1.0':
dependencies:
@@ -6967,11 +6951,11 @@ snapshots:
dependencies:
'@sinclair/typebox': 0.27.8
- '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@6.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
glob: 10.5.0
react-docgen-typescript: 2.4.0(typescript@6.0.2)
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
optionalDependencies:
typescript: 6.0.2
@@ -7278,7 +7262,7 @@ snapshots:
dependencies:
'@emnapi/core': 1.10.0
'@emnapi/runtime': 1.10.0
- '@tybys/wasm-util': 0.10.1
+ '@tybys/wasm-util': 0.10.2
optional: true
'@neoconfetti/react@1.0.0': {}
@@ -7312,7 +7296,7 @@ snapshots:
'@open-draft/until@2.1.0': {}
- '@oxc-project/types@0.127.0': {}
+ '@oxc-project/types@0.132.0': {}
'@oxc-resolver/binding-android-arm-eabi@11.14.0':
optional: true
@@ -8168,67 +8152,65 @@ snapshots:
'@radix-ui/rect@1.1.1': {}
- '@rolldown/binding-android-arm64@1.0.0-rc.17':
+ '@rolldown/binding-android-arm64@1.0.2':
optional: true
- '@rolldown/binding-darwin-arm64@1.0.0-rc.17':
+ '@rolldown/binding-darwin-arm64@1.0.2':
optional: true
- '@rolldown/binding-darwin-x64@1.0.0-rc.17':
+ '@rolldown/binding-darwin-x64@1.0.2':
optional: true
- '@rolldown/binding-freebsd-x64@1.0.0-rc.17':
+ '@rolldown/binding-freebsd-x64@1.0.2':
optional: true
- '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17':
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.2':
optional: true
- '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17':
+ '@rolldown/binding-linux-arm64-gnu@1.0.2':
optional: true
- '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17':
+ '@rolldown/binding-linux-arm64-musl@1.0.2':
optional: true
- '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17':
+ '@rolldown/binding-linux-ppc64-gnu@1.0.2':
optional: true
- '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17':
+ '@rolldown/binding-linux-s390x-gnu@1.0.2':
optional: true
- '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17':
+ '@rolldown/binding-linux-x64-gnu@1.0.2':
optional: true
- '@rolldown/binding-linux-x64-musl@1.0.0-rc.17':
+ '@rolldown/binding-linux-x64-musl@1.0.2':
optional: true
- '@rolldown/binding-openharmony-arm64@1.0.0-rc.17':
+ '@rolldown/binding-openharmony-arm64@1.0.2':
optional: true
- '@rolldown/binding-wasm32-wasi@1.0.0-rc.17':
+ '@rolldown/binding-wasm32-wasi@1.0.2':
dependencies:
'@emnapi/core': 1.10.0
'@emnapi/runtime': 1.10.0
'@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
optional: true
- '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17':
+ '@rolldown/binding-win32-arm64-msvc@1.0.2':
optional: true
- '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17':
+ '@rolldown/binding-win32-x64-msvc@1.0.2':
optional: true
- '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
'@babel/core': 7.29.7
picomatch: 4.0.4
- rolldown: 1.0.0-rc.17
+ rolldown: 1.0.2
optionalDependencies:
'@babel/runtime': 7.26.10
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
- '@rolldown/pluginutils@1.0.0-rc.17': {}
-
- '@rolldown/pluginutils@1.0.0-rc.7': {}
+ '@rolldown/pluginutils@1.0.1': {}
'@rollup/pluginutils@5.3.0':
dependencies:
@@ -8284,10 +8266,10 @@ snapshots:
axe-core: 4.11.1
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- '@storybook/addon-docs@10.3.3(@types/react@19.2.15)(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@storybook/addon-docs@10.3.3(@types/react@19.2.15)(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
'@mdx-js/react': 3.1.1(@types/react@19.2.15)(react@19.2.6)
- '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@storybook/icons': 2.0.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
'@storybook/react-dom-shim': 10.3.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
react: 19.2.6
@@ -8308,7 +8290,7 @@ snapshots:
optionalDependencies:
react: 19.2.6
- '@storybook/addon-mcp@0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)':
+ '@storybook/addon-mcp@0.6.0(@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7))(@vitest/runner@4.1.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.7))(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)':
dependencies:
'@storybook/mcp': 0.7.0(typescript@6.0.2)
'@tmcp/adapter-valibot': 0.1.5(tmcp@1.19.3(typescript@6.0.2))(valibot@1.2.0(typescript@6.0.2))
@@ -8318,7 +8300,7 @@ snapshots:
tmcp: 1.19.3(typescript@6.0.2)
valibot: 1.2.0(typescript@6.0.2)
optionalDependencies:
- '@storybook/addon-vitest': 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)
+ '@storybook/addon-vitest': 10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7))(@vitest/runner@4.1.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.7)
transitivePeerDependencies:
- '@tmcp/auth'
- typescript
@@ -8328,38 +8310,38 @@ snapshots:
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
ts-dedent: 2.2.0
- '@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5))(@vitest/runner@4.1.5)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.5)':
+ '@storybook/addon-vitest@10.3.3(@vitest/browser-playwright@4.1.7)(@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7))(@vitest/runner@4.1.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vitest@4.1.7)':
dependencies:
'@storybook/global': 5.0.0
'@storybook/icons': 2.0.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
optionalDependencies:
- '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
- '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
- '@vitest/runner': 4.1.5
- vitest: 4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7)
+ '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7)
+ '@vitest/runner': 4.1.7
+ vitest: 4.1.7(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
transitivePeerDependencies:
- react
- react-dom
- '@storybook/builder-vite@10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@storybook/builder-vite@10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
- '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@storybook/csf-plugin': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
ts-dedent: 2.2.0
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
transitivePeerDependencies:
- esbuild
- rollup
- webpack
- '@storybook/csf-plugin@10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@storybook/csf-plugin@10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
unplugin: 2.3.11
optionalDependencies:
esbuild: 0.25.12
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
'@storybook/global@5.0.0': {}
@@ -8384,11 +8366,11 @@ snapshots:
react-dom: 19.2.6(react@19.2.6)
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- '@storybook/react-vite@10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@storybook/react-vite@10.3.3(esbuild@0.25.12)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@6.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@rollup/pluginutils': 5.3.0
- '@storybook/builder-vite': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@storybook/builder-vite': 10.3.3(esbuild@0.25.12)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@storybook/react': 10.3.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@6.0.2)
empathic: 2.0.0
magic-string: 0.30.21
@@ -8398,7 +8380,7 @@ snapshots:
resolve: 1.22.11
storybook: 10.3.3(@testing-library/dom@10.4.0)(prettier@3.4.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
tsconfig-paths: 4.2.0
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
transitivePeerDependencies:
- esbuild
- rollup
@@ -8509,6 +8491,11 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@tybys/wasm-util@0.10.2':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
'@types/aria-query@5.0.3': {}
'@types/aria-query@5.0.4': {}
@@ -8689,7 +8676,7 @@ snapshots:
'@types/estree-jsx@1.0.5':
dependencies:
- '@types/estree': 1.0.9
+ '@types/estree': 1.0.8
'@types/estree@1.0.8': {}
@@ -8856,37 +8843,37 @@ snapshots:
dependencies:
valibot: 1.2.0(typescript@6.0.2)
- '@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@vitejs/plugin-react@6.0.2(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
- '@rolldown/pluginutils': 1.0.0-rc.7
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ '@rolldown/pluginutils': 1.0.1
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
optionalDependencies:
- '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.0-rc.17)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.26.10)(rolldown@1.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
babel-plugin-react-compiler: 1.0.0
- '@vitest/browser-playwright@4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
+ '@vitest/browser-playwright@4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7)':
dependencies:
- '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
- '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/browser': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7)
+ '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
playwright: 1.55.1
tinyrainbow: 3.1.0
- vitest: 4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ vitest: 4.1.7(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
transitivePeerDependencies:
- bufferutil
- msw
- utf-8-validate
- vite
- '@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)':
+ '@vitest/browser@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7)':
dependencies:
'@blazediff/core': 1.9.1
- '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
'@vitest/utils': 4.1.7
magic-string: 0.30.21
pngjs: 7.0.0
sirv: 3.0.2
tinyrainbow: 3.1.0
- vitest: 4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ vitest: 4.1.7(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
ws: 8.21.0
transitivePeerDependencies:
- bufferutil
@@ -8902,54 +8889,41 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/expect@4.1.5':
+ '@vitest/expect@4.1.7':
dependencies:
'@standard-schema/spec': 1.1.0
'@types/chai': 5.2.3
- '@vitest/spy': 4.1.5
- '@vitest/utils': 4.1.5
+ '@vitest/spy': 4.1.7
+ '@vitest/utils': 4.1.7
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
- dependencies:
- '@vitest/spy': 4.1.5
- estree-walker: 3.0.3
- magic-string: 0.30.21
- optionalDependencies:
- msw: 2.4.8(typescript@6.0.2)
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
-
- '@vitest/mocker@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
+ '@vitest/mocker@4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))':
dependencies:
'@vitest/spy': 4.1.7
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
msw: 2.4.8(typescript@6.0.2)
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
'@vitest/pretty-format@3.2.4':
dependencies:
tinyrainbow: 2.0.0
- '@vitest/pretty-format@4.1.5':
- dependencies:
- tinyrainbow: 3.1.0
-
'@vitest/pretty-format@4.1.7':
dependencies:
tinyrainbow: 3.1.0
- '@vitest/runner@4.1.5':
+ '@vitest/runner@4.1.7':
dependencies:
- '@vitest/utils': 4.1.5
+ '@vitest/utils': 4.1.7
pathe: 2.0.3
- '@vitest/snapshot@4.1.5':
+ '@vitest/snapshot@4.1.7':
dependencies:
- '@vitest/pretty-format': 4.1.5
- '@vitest/utils': 4.1.5
+ '@vitest/pretty-format': 4.1.7
+ '@vitest/utils': 4.1.7
magic-string: 0.30.21
pathe: 2.0.3
@@ -8957,8 +8931,6 @@ snapshots:
dependencies:
tinyspy: 4.0.4
- '@vitest/spy@4.1.5': {}
-
'@vitest/spy@4.1.7': {}
'@vitest/utils@3.2.4':
@@ -8967,12 +8939,6 @@ snapshots:
loupe: 3.2.1
tinyrainbow: 2.0.0
- '@vitest/utils@4.1.5':
- dependencies:
- '@vitest/pretty-format': 4.1.5
- convert-source-map: 2.0.0
- tinyrainbow: 3.1.0
-
'@vitest/utils@4.1.7':
dependencies:
'@vitest/pretty-format': 4.1.7
@@ -11930,35 +11896,35 @@ snapshots:
robust-predicates@3.0.2: {}
- rolldown@1.0.0-rc.17:
+ rolldown@1.0.2:
dependencies:
- '@oxc-project/types': 0.127.0
- '@rolldown/pluginutils': 1.0.0-rc.17
+ '@oxc-project/types': 0.132.0
+ '@rolldown/pluginutils': 1.0.1
optionalDependencies:
- '@rolldown/binding-android-arm64': 1.0.0-rc.17
- '@rolldown/binding-darwin-arm64': 1.0.0-rc.17
- '@rolldown/binding-darwin-x64': 1.0.0-rc.17
- '@rolldown/binding-freebsd-x64': 1.0.0-rc.17
- '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.17
- '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.17
- '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.17
- '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.17
- '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.17
- '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.17
- '@rolldown/binding-linux-x64-musl': 1.0.0-rc.17
- '@rolldown/binding-openharmony-arm64': 1.0.0-rc.17
- '@rolldown/binding-wasm32-wasi': 1.0.0-rc.17
- '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.17
- '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17
+ '@rolldown/binding-android-arm64': 1.0.2
+ '@rolldown/binding-darwin-arm64': 1.0.2
+ '@rolldown/binding-darwin-x64': 1.0.2
+ '@rolldown/binding-freebsd-x64': 1.0.2
+ '@rolldown/binding-linux-arm-gnueabihf': 1.0.2
+ '@rolldown/binding-linux-arm64-gnu': 1.0.2
+ '@rolldown/binding-linux-arm64-musl': 1.0.2
+ '@rolldown/binding-linux-ppc64-gnu': 1.0.2
+ '@rolldown/binding-linux-s390x-gnu': 1.0.2
+ '@rolldown/binding-linux-x64-gnu': 1.0.2
+ '@rolldown/binding-linux-x64-musl': 1.0.2
+ '@rolldown/binding-openharmony-arm64': 1.0.2
+ '@rolldown/binding-wasm32-wasi': 1.0.2
+ '@rolldown/binding-win32-arm64-msvc': 1.0.2
+ '@rolldown/binding-win32-x64-msvc': 1.0.2
- rollup-plugin-visualizer@7.0.1(rolldown@1.0.0-rc.17):
+ rollup-plugin-visualizer@7.0.1(rolldown@1.0.2):
dependencies:
open: 11.0.0
picomatch: 4.0.4
source-map: 0.7.4
yargs: 18.0.0
optionalDependencies:
- rolldown: 1.0.0-rc.17
+ rolldown: 1.0.2
roughjs@4.6.6:
dependencies:
@@ -12341,13 +12307,18 @@ snapshots:
tinycolor2@1.6.0: {}
- tinyexec@1.1.2: {}
+ tinyexec@1.2.4: {}
tinyglobby@0.2.16:
dependencies:
fdir: 6.5.0(picomatch@4.0.4)
picomatch: 4.0.4
+ tinyglobby@0.2.17:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
+
tinyrainbow@2.0.0: {}
tinyrainbow@3.1.0: {}
@@ -12621,7 +12592,7 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite-plugin-checker@0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
+ vite-plugin-checker@0.13.0(@biomejs/biome@2.4.10)(optionator@0.9.3)(typescript@6.0.2)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
dependencies:
'@babel/code-frame': 7.29.0
chokidar: 4.0.3
@@ -12631,20 +12602,20 @@ snapshots:
proper-lockfile: 4.1.2
tiny-invariant: 1.3.3
tinyglobby: 0.2.16
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
vscode-uri: 3.1.0
optionalDependencies:
'@biomejs/biome': 2.4.10
optionator: 0.9.3
typescript: 6.0.2
- vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3):
+ vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3):
dependencies:
lightningcss: 1.32.0
picomatch: 4.0.4
postcss: 8.5.15
- rolldown: 1.0.0-rc.17
- tinyglobby: 0.2.16
+ rolldown: 1.0.2
+ tinyglobby: 0.2.17
optionalDependencies:
'@types/node': 20.19.41
esbuild: 0.25.12
@@ -12652,15 +12623,15 @@ snapshots:
jiti: 1.21.7
yaml: 2.8.3
- vitest@4.1.5(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
+ vitest@4.1.7(@types/node@20.19.41)(@vitest/browser-playwright@4.1.7)(jsdom@27.2.0)(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)):
dependencies:
- '@vitest/expect': 4.1.5
- '@vitest/mocker': 4.1.5(msw@2.4.8(typescript@6.0.2))(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
- '@vitest/pretty-format': 4.1.5
- '@vitest/runner': 4.1.5
- '@vitest/snapshot': 4.1.5
- '@vitest/spy': 4.1.5
- '@vitest/utils': 4.1.5
+ '@vitest/expect': 4.1.7
+ '@vitest/mocker': 4.1.7(msw@2.4.8(typescript@6.0.2))(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))
+ '@vitest/pretty-format': 4.1.7
+ '@vitest/runner': 4.1.7
+ '@vitest/snapshot': 4.1.7
+ '@vitest/spy': 4.1.7
+ '@vitest/utils': 4.1.7
es-module-lexer: 2.1.0
expect-type: 1.3.0
magic-string: 0.30.21
@@ -12669,14 +12640,14 @@ snapshots:
picomatch: 4.0.4
std-env: 4.1.0
tinybench: 2.9.0
- tinyexec: 1.1.2
- tinyglobby: 0.2.16
+ tinyexec: 1.2.4
+ tinyglobby: 0.2.17
tinyrainbow: 3.1.0
- vite: 8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
+ vite: 8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 20.19.41
- '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.10(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.5)
+ '@vitest/browser-playwright': 4.1.7(msw@2.4.8(typescript@6.0.2))(playwright@1.55.1)(vite@8.0.14(@types/node@20.19.41)(esbuild@0.25.12)(jiti@1.21.7)(yaml@2.8.3))(vitest@4.1.7)
jsdom: 27.2.0
transitivePeerDependencies:
- msw
From d72dc5bb23419aa16a183594c15eea5fa950518c Mon Sep 17 00:00:00 2001
From: Susana Ferreira
Date: Tue, 2 Jun 2026 10:14:31 +0100
Subject: [PATCH 10/15] feat(aibridge): add interception_id to request log
context (#25926)
Attach `interception_id` to the request context with `slog.With`, the
same pattern already used for `request_id`, so every log emitted with
that context carries it automatically.
Remove the now-redundant explicit `interception_id` fields from the
interception logger and the recorder warnings to avoid duplicate fields
on those lines.
Related to https://github.com/coder/internal/issues/1447
Related to
https://linear.app/codercom/issue/AIGOV-198/aibridge-key-failover-observability
---
aibridge/bridge.go | 4 +++-
aibridge/recorder/recorder.go | 12 ++++++------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/aibridge/bridge.go b/aibridge/bridge.go
index daf103fb10..65d822069b 100644
--- a/aibridge/bridge.go
+++ b/aibridge/bridge.go
@@ -236,6 +236,9 @@ func newInterceptionProcessor(p provider.Provider, cbs *circuitbreaker.ProviderC
traceAttrs := interceptor.TraceAttributes(r)
span.SetAttributes(traceAttrs...)
ctx = tracing.WithInterceptionAttributesInContext(ctx, traceAttrs)
+ // Attach the interception ID to the context so every log line
+ // emitted with this context can be correlated to the interception.
+ ctx = slog.With(ctx, slog.F("interception_id", interceptor.ID()))
r = r.WithContext(ctx)
// Record usage in the background to not block request flow.
@@ -272,7 +275,6 @@ func newInterceptionProcessor(p provider.Provider, cbs *circuitbreaker.ProviderC
log := logger.With(
slog.F("route", route),
slog.F("provider", p.Name()),
- slog.F("interception_id", interceptor.ID()),
slog.F("user_agent", r.UserAgent()),
slog.F("streaming", interceptor.Streaming()),
slog.F("credential_kind", string(cred.Kind)),
diff --git a/aibridge/recorder/recorder.go b/aibridge/recorder/recorder.go
index 26a9f24b5d..3f2435db35 100644
--- a/aibridge/recorder/recorder.go
+++ b/aibridge/recorder/recorder.go
@@ -40,7 +40,7 @@ func (r *WrappedRecorder) RecordInterception(ctx context.Context, req *Intercept
return nil
}
- r.logger.Warn(ctx, "failed to record interception", slog.Error(err), slog.F("interception_id", req.ID))
+ r.logger.Warn(ctx, "failed to record interception", slog.Error(err))
return err
}
@@ -58,7 +58,7 @@ func (r *WrappedRecorder) RecordInterceptionEnded(ctx context.Context, req *Inte
return nil
}
- r.logger.Warn(ctx, "failed to record that interception ended", slog.Error(err), slog.F("interception_id", req.ID))
+ r.logger.Warn(ctx, "failed to record that interception ended", slog.Error(err))
return err
}
@@ -76,7 +76,7 @@ func (r *WrappedRecorder) RecordPromptUsage(ctx context.Context, req *PromptUsag
return nil
}
- r.logger.Warn(ctx, "failed to record prompt usage", slog.Error(err), slog.F("interception_id", req.InterceptionID))
+ r.logger.Warn(ctx, "failed to record prompt usage", slog.Error(err))
return err
}
@@ -94,7 +94,7 @@ func (r *WrappedRecorder) RecordTokenUsage(ctx context.Context, req *TokenUsageR
return nil
}
- r.logger.Warn(ctx, "failed to record token usage", slog.Error(err), slog.F("interception_id", req.InterceptionID))
+ r.logger.Warn(ctx, "failed to record token usage", slog.Error(err))
return err
}
@@ -112,7 +112,7 @@ func (r *WrappedRecorder) RecordToolUsage(ctx context.Context, req *ToolUsageRec
return nil
}
- r.logger.Warn(ctx, "failed to record tool usage", slog.Error(err), slog.F("interception_id", req.InterceptionID))
+ r.logger.Warn(ctx, "failed to record tool usage", slog.Error(err))
return err
}
@@ -130,7 +130,7 @@ func (r *WrappedRecorder) RecordModelThought(ctx context.Context, req *ModelThou
return nil
}
- r.logger.Warn(ctx, "failed to record model thought", slog.Error(err), slog.F("interception_id", req.InterceptionID))
+ r.logger.Warn(ctx, "failed to record model thought", slog.Error(err))
return err
}
From 2269cec830cf03141778f284afe76015fa98fc30 Mon Sep 17 00:00:00 2001
From: "blinkagent[bot]" <237617714+blinkagent[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 06:15:51 -0400
Subject: [PATCH 11/15] feat(site): populate Model name from Known Model
display name (#25862)
---
.../applyKnownModelDefaults.test.ts | 29 +++++++++++++++++++
.../knownModels/applyKnownModelDefaults.ts | 9 ++++++
2 files changed, 38 insertions(+)
diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/applyKnownModelDefaults.test.ts b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/applyKnownModelDefaults.test.ts
index d537aa726c..4dbc1cc39b 100644
--- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/applyKnownModelDefaults.test.ts
+++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/applyKnownModelDefaults.test.ts
@@ -106,6 +106,35 @@ describe("applyKnownModelDefaults", () => {
expect(result.appliedFields).toEqual([]);
});
+ it("populates display name with the Known Model display name", () => {
+ const result = applyDefaults({
+ values: buildInitialModelFormValues(),
+ initialValues: buildInitialModelFormValues(),
+ provider: "anthropic",
+ knownModel: requireKnownModel("anthropic", "claude-opus-4-8"),
+ });
+
+ expect(result.values.displayName).toBe("Claude Opus 4.8");
+ expect(result.appliedFields).toContain("displayName");
+ });
+
+ it("skips display name when current value differs from initial value", () => {
+ const values = setPath(
+ buildInitialModelFormValues(),
+ "displayName",
+ "My Custom Name",
+ );
+ const result = applyDefaults({
+ values,
+ initialValues: buildInitialModelFormValues(),
+ provider: "anthropic",
+ knownModel: requireKnownModel("anthropic", "claude-opus-4-8"),
+ });
+
+ expect(result.values.displayName).toBe("My Custom Name");
+ expect(result.appliedFields).not.toContain("displayName");
+ });
+
it("populates context limit when current value still equals initial value", () => {
const result = applyDefaults({
values: buildInitialModelFormValues(),
diff --git a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/applyKnownModelDefaults.ts b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/applyKnownModelDefaults.ts
index b490073fdc..550c9a0f5e 100644
--- a/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/applyKnownModelDefaults.ts
+++ b/site/src/pages/AgentsPage/components/ChatModelAdminPanel/knownModels/applyKnownModelDefaults.ts
@@ -83,6 +83,15 @@ export const applyKnownModelDefaults = ({
const nextValues = structuredClone(values);
const appliedFields: string[] = [];
+ maybeApplyDefault({
+ appliedFields,
+ initialValues,
+ nextValues,
+ path: "displayName",
+ value: knownModel.displayName,
+ values,
+ });
+
if (knownModel.contextLimit !== undefined) {
maybeApplyDefault({
appliedFields,
From dd22086734629ecbce1c3764ba7b70e45df84131 Mon Sep 17 00:00:00 2001
From: Michael Suchacz <203725896+ibetitsmike@users.noreply.github.com>
Date: Tue, 2 Jun 2026 12:19:06 +0200
Subject: [PATCH 12/15] fix(coderd/x/chatd): preserve chat API key after
compaction (#25930)
> Mux updated this PR on behalf of Mike.
AI Gateway chat retries after context compaction could lose active turn
API key routing metadata because the prompt query keeps the compressed
model-only summary but omits the original visible user turn.
Persist the active API key ID onto compaction summaries explicitly.
Model construction now uses one active-turn lookup helper for visible
user turns and compressed summary boundaries, so prompt model
construction can recover the key when no later visible user turn exists.
Added unit and DB-backed coverage for the compacted prompt path.
---
coderd/x/chatd/chatd.go | 34 ++---
coderd/x/chatd/chatd_internal_test.go | 83 +++++++-----
coderd/x/chatd/model_routing_internal_test.go | 118 ++++++++++++++++--
3 files changed, 182 insertions(+), 53 deletions(-)
diff --git a/coderd/x/chatd/chatd.go b/coderd/x/chatd/chatd.go
index 013567e3e0..5a5ba7fb60 100644
--- a/coderd/x/chatd/chatd.go
+++ b/coderd/x/chatd/chatd.go
@@ -6468,22 +6468,14 @@ type runChatResult struct {
HistoryTipMessageID int64
}
-func contextWithActiveTurnAPIKeyID(ctx context.Context, messages []database.ChatMessage) context.Context {
- apiKeyID, ok := activeTurnAPIKeyIDFromMessages(messages)
- if !ok {
- return ctx
- }
- return aibridge.WithDelegatedAPIKeyID(ctx, apiKeyID)
-}
-
func activeTurnAPIKeyIDFromMessages(messages []database.ChatMessage) (string, bool) {
for i := len(messages) - 1; i >= 0; i-- {
message := messages[i]
if message.Role != database.ChatMessageRoleUser {
continue
}
- if message.Visibility != database.ChatMessageVisibilityBoth &&
- message.Visibility != database.ChatMessageVisibilityUser {
+ if !isUserVisibleChatMessage(message) &&
+ !(message.Visibility == database.ChatMessageVisibilityModel && message.Compressed) {
continue
}
if !message.APIKeyID.Valid || message.APIKeyID.String == "" {
@@ -6494,6 +6486,11 @@ func activeTurnAPIKeyIDFromMessages(messages []database.ChatMessage) (string, bo
return "", false
}
+func isUserVisibleChatMessage(message database.ChatMessage) bool {
+ return message.Visibility == database.ChatMessageVisibilityBoth ||
+ message.Visibility == database.ChatMessageVisibilityUser
+}
+
func allToolNames(allTools []fantasy.AgentTool) []string {
toolNames := make([]string, 0, len(allTools))
for _, tool := range allTools {
@@ -7124,7 +7121,9 @@ func (p *Server) runChat(
return result, xerrors.Errorf("get chat messages: %w", err)
}
modelOpts := modelBuildOptionsFromMessages(messages)
- ctx = contextWithActiveTurnAPIKeyID(ctx, messages)
+ if modelOpts.ActiveAPIKeyID != "" {
+ ctx = aibridge.WithDelegatedAPIKeyID(ctx, modelOpts.ActiveAPIKeyID)
+ }
// Load MCP server configs and user tokens in parallel with model
// resolution. These queries have no dependencies on each other and all
@@ -7831,6 +7830,7 @@ func (p *Server) runChat(
persistCtx,
chat.ID,
modelConfig.ID,
+ modelOpts.ActiveAPIKeyID,
compactionToolCallID,
result,
); err != nil {
@@ -8460,12 +8460,14 @@ func buildProviderTools(options *codersdk.ChatModelProviderOptions) []chatloop.P
return tools
}
-// persistChatContextSummary persists a chat context summary to the database.
-// This is invoked via the chat loop's compaction callback.
+// persistChatContextSummary is called from the chat loop's compaction
+// callback. activeAPIKeyID is stamped onto the summary user message. When
+// empty, it falls back to the delegated key in ctx.
func (p *Server) persistChatContextSummary(
ctx context.Context,
chatID uuid.UUID,
modelConfigID uuid.UUID,
+ activeAPIKeyID string,
toolCallID string,
result chatloop.CompactionResult,
) error {
@@ -8514,6 +8516,11 @@ func (p *Server) persistChatContextSummary(
return xerrors.Errorf("encode summary tool result: %w", err)
}
+ summaryAPIKeyID := activeAPIKeyID
+ if summaryAPIKeyID == "" {
+ summaryAPIKeyID, _ = aibridge.DelegatedAPIKeyIDFromContext(ctx)
+ }
+
var insertedMessages []database.ChatMessage
txErr := p.db.InTx(func(tx database.Store) error {
@@ -8522,7 +8529,6 @@ func (p *Server) persistChatContextSummary(
}
// Hidden summary user message (not published to subscribers).
- summaryAPIKeyID, _ := aibridge.DelegatedAPIKeyIDFromContext(ctx)
summaryUserMsg := newUserChatMessage(
summaryAPIKeyID,
systemContent,
diff --git a/coderd/x/chatd/chatd_internal_test.go b/coderd/x/chatd/chatd_internal_test.go
index 69aebbfe30..965b6b474e 100644
--- a/coderd/x/chatd/chatd_internal_test.go
+++ b/coderd/x/chatd/chatd_internal_test.go
@@ -6651,42 +6651,63 @@ func TestPersistChatContextSummarySetsAPIKeyID(t *testing.T) {
UserID: user.ID,
})
- ctx = aibridge.WithDelegatedAPIKeyID(ctx, apiKey.ID)
-
server := &Server{db: db}
+ persistAndAssertSummaryKey := func(
+ summaryCtx context.Context,
+ chatID uuid.UUID,
+ activeAPIKeyID string,
+ wantAPIKeyID string,
+ toolCallID string,
+ ) {
+ t.Helper()
- err := server.persistChatContextSummary(
- ctx,
- chat.ID,
- modelConfig.ID,
- "tool-call-id-1",
- chatloop.CompactionResult{
- SystemSummary: "summarized context",
- SummaryReport: "context was summarized",
- ThresholdPercent: 70,
- UsagePercent: 85.0,
- ContextTokens: 8500,
- ContextLimit: 10000,
- },
- )
- require.NoError(t, err)
+ err := server.persistChatContextSummary(
+ summaryCtx,
+ chatID,
+ modelConfig.ID,
+ activeAPIKeyID,
+ toolCallID,
+ chatloop.CompactionResult{
+ SystemSummary: "summarized context",
+ SummaryReport: "context was summarized",
+ ThresholdPercent: 70,
+ UsagePercent: 85.0,
+ ContextTokens: 8500,
+ ContextLimit: 10000,
+ },
+ )
+ require.NoError(t, err)
- msgs, err := db.GetChatMessagesForPromptByChatID(ctx, chat.ID)
- require.NoError(t, err)
+ msgs, err := db.GetChatMessagesForPromptByChatID(ctx, chatID)
+ require.NoError(t, err)
- // GetChatMessagesForPromptByChatID uses a compaction boundary CTE
- // that selects compressed=true, visibility='model'. Only the user
- // summary qualifies; the assistant (visibility=user) and tool
- // result (visibility=both) are excluded by the CTE filter.
- require.NotEmpty(t, msgs)
+ // GetChatMessagesForPromptByChatID uses a compaction boundary CTE
+ // that selects compressed=true, visibility='model'. Only the user
+ // summary qualifies; the assistant (visibility=user) and tool
+ // result (visibility=both) are excluded by the CTE filter.
+ require.NotEmpty(t, msgs)
- var foundUserSummary bool
- for _, msg := range msgs {
- if msg.Role == database.ChatMessageRoleUser {
- foundUserSummary = true
- require.True(t, msg.APIKeyID.Valid, "summary user message must have APIKeyID set")
- require.Equal(t, apiKey.ID, msg.APIKeyID.String, "summary user message APIKeyID must match")
+ var foundUserSummary bool
+ for _, msg := range msgs {
+ if msg.Role == database.ChatMessageRoleUser {
+ foundUserSummary = true
+ require.True(t, msg.APIKeyID.Valid, "summary user message must have APIKeyID set")
+ require.Equal(t, wantAPIKeyID, msg.APIKeyID.String, "summary user message APIKeyID must match")
+ }
}
+ require.True(t, foundUserSummary, "expected to find compressed user summary message")
}
- require.True(t, foundUserSummary, "expected to find compressed user summary message")
+
+ persistAndAssertSummaryKey(ctx, chat.ID, apiKey.ID, apiKey.ID, "tool-call-id-1")
+
+ fallbackChat := dbgen.Chat(t, db, database.Chat{
+ OwnerID: user.ID,
+ OrganizationID: org.ID,
+ LastModelConfigID: modelConfig.ID,
+ })
+ fallbackKey, _ := dbgen.APIKey(t, db, database.APIKey{
+ UserID: user.ID,
+ })
+ fallbackCtx := aibridge.WithDelegatedAPIKeyID(ctx, fallbackKey.ID)
+ persistAndAssertSummaryKey(fallbackCtx, fallbackChat.ID, "", fallbackKey.ID, "tool-call-id-2")
}
diff --git a/coderd/x/chatd/model_routing_internal_test.go b/coderd/x/chatd/model_routing_internal_test.go
index 0d2f317204..70e0797883 100644
--- a/coderd/x/chatd/model_routing_internal_test.go
+++ b/coderd/x/chatd/model_routing_internal_test.go
@@ -405,7 +405,7 @@ func TestActiveTurnAPIKeyIDFromMessages(t *testing.T) {
},
},
{
- name: "SkipsModelOnlyUserMessages",
+ name: "SkipsUncompressedModelOnlyUserMessages",
messages: []database.ChatMessage{
{ID: 1, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityBoth, APIKeyID: sqlNullString(oldKeyID)},
{ID: 2, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityModel, APIKeyID: sqlNullString(currentKeyID)},
@@ -413,6 +413,54 @@ func TestActiveTurnAPIKeyIDFromMessages(t *testing.T) {
wantKey: oldKeyID,
wantOK: true,
},
+ {
+ name: "CompressedSummaryFallback",
+ messages: []database.ChatMessage{
+ {ID: 1, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityModel, Compressed: true, APIKeyID: sqlNullString(currentKeyID)},
+ {ID: 2, Role: database.ChatMessageRoleAssistant, Visibility: database.ChatMessageVisibilityBoth},
+ },
+ wantKey: currentKeyID,
+ wantOK: true,
+ },
+ {
+ name: "LatestCompressedSummaryWins",
+ messages: []database.ChatMessage{
+ {ID: 1, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityModel, Compressed: true, APIKeyID: sqlNullString(oldKeyID)},
+ {ID: 2, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityModel, Compressed: true, APIKeyID: sqlNullString(currentKeyID)},
+ {ID: 3, Role: database.ChatMessageRoleAssistant, Visibility: database.ChatMessageVisibilityBoth},
+ },
+ wantKey: currentKeyID,
+ wantOK: true,
+ },
+ {
+ name: "VisibleUserWinsOverCompressedSummary",
+ messages: []database.ChatMessage{
+ {ID: 1, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityModel, Compressed: true, APIKeyID: sqlNullString(oldKeyID)},
+ {ID: 2, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityBoth, APIKeyID: sqlNullString(currentKeyID)},
+ },
+ wantKey: currentKeyID,
+ wantOK: true,
+ },
+ {
+ name: "MissingVisibleUserKeyDoesNotFallBackToCompressedSummary",
+ messages: []database.ChatMessage{
+ {ID: 1, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityModel, Compressed: true, APIKeyID: sqlNullString(oldKeyID)},
+ {ID: 2, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityBoth},
+ },
+ },
+ {
+ name: "UncompressedModelOnlyUserIgnored",
+ messages: []database.ChatMessage{
+ {ID: 1, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityModel, APIKeyID: sqlNullString(currentKeyID)},
+ },
+ },
+ {
+ name: "CompressedSummaryMissingKeyDoesNotFallBack",
+ messages: []database.ChatMessage{
+ {ID: 1, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityBoth, APIKeyID: sqlNullString(oldKeyID)},
+ {ID: 2, Role: database.ChatMessageRoleUser, Visibility: database.ChatMessageVisibilityModel, Compressed: true},
+ },
+ },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -421,15 +469,11 @@ func TestActiveTurnAPIKeyIDFromMessages(t *testing.T) {
gotKey, gotOK := activeTurnAPIKeyIDFromMessages(tt.messages)
require.Equal(t, tt.wantOK, gotOK)
require.Equal(t, tt.wantKey, gotKey)
- ctx := contextWithActiveTurnAPIKeyID(t.Context(), tt.messages)
- ctxKey, ctxOK := aibridge.DelegatedAPIKeyIDFromContext(ctx)
- require.Equal(t, tt.wantOK, ctxOK)
- require.Equal(t, tt.wantKey, ctxKey)
})
}
}
-func TestActiveTurnContextUsesPromptMessages(t *testing.T) {
+func TestPromptMessagesForVisibleUserPreserveActiveAPIKeyID(t *testing.T) {
t.Parallel()
db, _ := dbtestutil.NewDB(t)
@@ -477,12 +521,70 @@ func TestActiveTurnContextUsesPromptMessages(t *testing.T) {
messages, err := db.GetChatMessagesForPromptByChatID(ctx, chat.ID)
require.NoError(t, err)
- ctx = contextWithActiveTurnAPIKeyID(ctx, messages)
- gotKey, ok := aibridge.DelegatedAPIKeyIDFromContext(ctx)
+ gotKey, ok := activeTurnAPIKeyIDFromMessages(messages)
require.True(t, ok)
require.Equal(t, currentKey.ID, gotKey)
}
+func TestPromptMessagesForCompactedChatPreserveActiveAPIKeyID(t *testing.T) {
+ t.Parallel()
+
+ db, _ := dbtestutil.NewDB(t)
+ ctx := t.Context()
+ user := dbgen.User(t, db, database.User{})
+ org := dbgen.Organization(t, db, database.Organization{})
+ model := dbgen.ChatModelConfig(t, db, database.ChatModelConfig{})
+ chat := dbgen.Chat(t, db, database.Chat{OrganizationID: org.ID, OwnerID: user.ID, LastModelConfigID: model.ID})
+ key, _ := dbgen.APIKey(t, db, database.APIKey{UserID: user.ID})
+
+ visibleUser := dbgen.ChatMessage(t, db, database.ChatMessage{
+ ChatID: chat.ID,
+ CreatedBy: uuid.NullUUID{UUID: user.ID, Valid: true},
+ ModelConfigID: uuid.NullUUID{UUID: model.ID, Valid: true},
+ Role: database.ChatMessageRoleUser,
+ Visibility: database.ChatMessageVisibilityBoth,
+ APIKeyID: sqlNullString(key.ID),
+ })
+ dbgen.ChatMessage(t, db, database.ChatMessage{
+ ChatID: chat.ID,
+ ModelConfigID: uuid.NullUUID{UUID: model.ID, Valid: true},
+ Role: database.ChatMessageRoleAssistant,
+ Visibility: database.ChatMessageVisibilityBoth,
+ })
+ compressedSummary := dbgen.ChatMessage(t, db, database.ChatMessage{
+ ChatID: chat.ID,
+ ModelConfigID: uuid.NullUUID{UUID: model.ID, Valid: true},
+ Role: database.ChatMessageRoleUser,
+ Visibility: database.ChatMessageVisibilityModel,
+ Compressed: true,
+ APIKeyID: sqlNullString(key.ID),
+ })
+ afterSummary := dbgen.ChatMessage(t, db, database.ChatMessage{
+ ChatID: chat.ID,
+ ModelConfigID: uuid.NullUUID{UUID: model.ID, Valid: true},
+ Role: database.ChatMessageRoleAssistant,
+ Visibility: database.ChatMessageVisibilityBoth,
+ })
+
+ messages, err := db.GetChatMessagesForPromptByChatID(ctx, chat.ID)
+ require.NoError(t, err)
+
+ ids := make(map[int64]struct{}, len(messages))
+ for _, message := range messages {
+ ids[message.ID] = struct{}{}
+ }
+ _, hasVisibleUser := ids[visibleUser.ID]
+ require.False(t, hasVisibleUser)
+ _, hasSummary := ids[compressedSummary.ID]
+ require.True(t, hasSummary)
+ _, hasAfterSummary := ids[afterSummary.ID]
+ require.True(t, hasAfterSummary)
+
+ gotKey, ok := activeTurnAPIKeyIDFromMessages(messages)
+ require.True(t, ok)
+ require.Equal(t, key.ID, gotKey)
+}
+
func sqlNullString(value string) sql.NullString {
return sql.NullString{String: value, Valid: value != ""}
}
From 4d3bfa5fab37327c8169de5612068019f4791bda Mon Sep 17 00:00:00 2001
From: Michael Suchacz <203725896+ibetitsmike@users.noreply.github.com>
Date: Tue, 2 Jun 2026 12:44:45 +0200
Subject: [PATCH 13/15] fix(coderd/x/chatd): stabilize advisor stream test
(#25781)
`TestAdvisorHappyPath_RootChat` could subscribe after the active test
server had already processed the chat and published transient advisor
deltas, leaving the live delta collector empty.
Use a passive chatd test server until the live subscriber and collector
are registered, then start processing and wait for the expected advisor
deltas before canceling the stream.
Closes coder/internal#1548
Generated by Coder Agents.
Implementation notes
The failing assertion covered stream-only advisor `ResultDelta` events.
`CreateChat` signals the processor, so an already-started server can
publish those deltas before `Subscribe` registers its local stream
subscriber. The test now creates the chat on a passive server,
subscribes, starts the collector, then calls `Start()`.
---
coderd/x/chatd/chatd_test.go | 29 ++++++++++++-----------------
1 file changed, 12 insertions(+), 17 deletions(-)
diff --git a/coderd/x/chatd/chatd_test.go b/coderd/x/chatd/chatd_test.go
index 9e67c10230..353769dd02 100644
--- a/coderd/x/chatd/chatd_test.go
+++ b/coderd/x/chatd/chatd_test.go
@@ -26,6 +26,7 @@ import (
mcpserver "github.com/mark3labs/mcp-go/server"
"github.com/prometheus/client_golang/prometheus"
"github.com/sqlc-dev/pqtype"
+ "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.uber.org/mock/gomock"
"golang.org/x/xerrors"
@@ -9914,7 +9915,7 @@ func TestAdvisorHappyPath_RootChat(t *testing.T) {
MaxUsesPerRun: 3,
MaxOutputTokens: 16384,
})
- server := newActiveTestServer(t, db, ps)
+ server := newTestServer(t, db, ps, uuid.New())
chat, err := server.CreateChat(ctx, chatd.CreateOptions{
OrganizationID: org.ID,
@@ -9927,13 +9928,7 @@ func TestAdvisorHappyPath_RootChat(t *testing.T) {
})
require.NoError(t, err)
- // Subscribe before the worker commits any durable messages so we
- // observe the advisor tool-result deltas live. Buffered parts are
- // claimed by their committed durable message ID at publishMessage
- // time and dropped from snapshots of late-connecting subscribers, so
- // a post-completion Subscribe() would no longer see streaming
- // deltas. Collecting events from the live channel covers the
- // streaming UX contract this test exists to verify.
+ // Advisor deltas are transient; a late subscriber misses them.
_, liveEvents, cancelLive, ok := server.Subscribe(ctx, chat.ID, nil, 0)
require.True(t, ok)
var (
@@ -9969,6 +9964,8 @@ func TestAdvisorHappyPath_RootChat(t *testing.T) {
}
}()
+ server.Start()
+
require.Eventually(t, func() bool {
got, getErr := db.GetChatByID(ctx, chat.ID)
if getErr != nil {
@@ -10023,17 +10020,15 @@ func TestAdvisorHappyPath_RootChat(t *testing.T) {
require.True(t, parentSawAdvisorResult,
"parent must see the advisor reply in its continuation call")
- // Stop the live collector and assert it captured the streaming
- // advisor deltas during processing. Late subscribers no longer
- // see committed parts because publishMessage claims them out of
- // new snapshots, so the assertion must use the live collector.
+ require.EventuallyWithT(t, func(c *assert.CollectT) {
+ livePartsMu.Lock()
+ defer livePartsMu.Unlock()
+ assert.Equal(c, advisorDeltas, liveAdvisorDeltas,
+ "advisor nested text deltas must stream into the parent tool card")
+ }, testutil.WaitLong, testutil.IntervalFast)
+
cancelLive()
<-liveCollectorDone
- livePartsMu.Lock()
- collectedAdvisorDeltas := append([]string(nil), liveAdvisorDeltas...)
- livePartsMu.Unlock()
- require.Equal(t, advisorDeltas, collectedAdvisorDeltas,
- "advisor nested text deltas must stream into the parent tool card")
persisted, err := db.GetChatMessagesByChatID(ctx, database.GetChatMessagesByChatIDParams{
ChatID: chat.ID,
From f6a4ed309f24ec500110dbd29608ed128afd01e2 Mon Sep 17 00:00:00 2001
From: Thomas Kosiewski
Date: Tue, 2 Jun 2026 12:46:40 +0200
Subject: [PATCH 14/15] ci: fix Windows runner PATH casing for mise, not in cli
(#25972)
Co-authored-by: Claude Opus 4.8 (1M context)
---
.github/actions/setup-mise/action.yml | 31 +++++++++-----------
cli/agent_test.go | 4 +--
cli/configssh_internal_test.go | 11 ++-----
cli/configssh_windows.go | 10 +------
cli/root.go | 41 ++-------------------------
cli/root_test.go | 6 ++--
enterprise/cli/proxyserver_test.go | 2 +-
7 files changed, 22 insertions(+), 83 deletions(-)
diff --git a/.github/actions/setup-mise/action.yml b/.github/actions/setup-mise/action.yml
index 39aa9ab27d..751124ed42 100644
--- a/.github/actions/setup-mise/action.yml
+++ b/.github/actions/setup-mise/action.yml
@@ -166,23 +166,18 @@ runs:
mise_dir: ${{ steps.mise-data-dir.outputs.path }}
install_args: ${{ steps.cache-key.outputs.install-args }}
cache: "false"
+ # Do not export mise's resolved env (every tool install dir) into
+ # GITHUB_ENV. Tools resolve through the shims dir on GITHUB_PATH, so
+ # the export only bloats PATH. On Windows the mise go shim re-prepends
+ # those dirs at invocation, and the resulting PATH crosses cmd.exe's
+ # ~8191 character limit, which makes cmd.exe drop PATH entirely and
+ # fail to resolve native executables in subprocesses spawned by tests.
+ env: false
- - name: Ensure Git usr/bin is in PATH (Windows)
+ - name: Add Git usr/bin to PATH (Windows)
if: runner.os == 'Windows'
- shell: pwsh
- # jdx/mise-action exports "Path" via GITHUB_ENV which may
- # collide with bash's "PATH". Ensure Git usr/bin is present
- # and remove any duplicate Path/PATH entries from GITHUB_ENV
- # by writing both forms.
- run: | # zizmor: ignore[github-env]
- $gitdir = "C:\Program Files\Git\usr\bin"
- $current = $env:Path
- if ($current -notlike "*$gitdir*") {
- $current = "$gitdir;$current"
- }
- # Write both Path and PATH to GITHUB_ENV so that both
- # cmd.exe (uses Path) and bash/Go (uses PATH) see the
- # same value including Git usr/bin.
- "Path=$current" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
- "PATH=$current" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
-
+ shell: bash
+ # GITHUB_PATH is the casing-safe channel and keeps the entry short.
+ # cmd.exe subprocesses spawned by Go tests need MSYS coreutils such as
+ # printf, which live here.
+ run: echo "C:\Program Files\Git\usr\bin" >> "$GITHUB_PATH"
diff --git a/cli/agent_test.go b/cli/agent_test.go
index 9ea7afdcb1..60e8f68642 100644
--- a/cli/agent_test.go
+++ b/cli/agent_test.go
@@ -146,10 +146,8 @@ func TestWorkspaceAgent(t *testing.T) {
}).WithAgent().Do()
coderURLEnv := "$CODER_URL"
- headerCmd := "printf X-Process-Testing=very-wow-" + coderURLEnv + "'\\r\\n'X-Process-Testing2=more-wow"
if runtime.GOOS == "windows" {
coderURLEnv = "%CODER_URL%"
- headerCmd = "echo X-Process-Testing=very-wow-" + coderURLEnv + "& echo X-Process-Testing2=more-wow"
}
logDir := t.TempDir()
@@ -161,7 +159,7 @@ func TestWorkspaceAgent(t *testing.T) {
"--log-dir", logDir,
"--agent-header", "X-Testing=agent",
"--agent-header", "Cool-Header=Ethan was Here!",
- "--agent-header-command", headerCmd,
+ "--agent-header-command", "printf X-Process-Testing=very-wow-"+coderURLEnv+"'\\r\\n'X-Process-Testing2=more-wow",
"--socket-path", testutil.AgentSocketPath(t),
)
clitest.Start(t, agentInv)
diff --git a/cli/configssh_internal_test.go b/cli/configssh_internal_test.go
index 59b57439af..0ea2ae6ea5 100644
--- a/cli/configssh_internal_test.go
+++ b/cli/configssh_internal_test.go
@@ -229,15 +229,8 @@ func Test_sshConfigMatchExecEscape(t *testing.T) {
// OpenSSH processes %% escape sequences into %
escaped = strings.ReplaceAll(escaped, "%%", "%")
- c := exec.Command(cmd, arg, escaped) //nolint:gosec
- if runtime.GOOS == "windows" {
- // Deduplicate Path/PATH env vars so cmd.exe
- // subprocesses (like powershell.exe used for
- // paths with spaces) resolve correctly.
- c.Env = appendAndDedupEnv(os.Environ())
- }
- b, err := c.CombinedOutput()
- require.NoError(t, err, "command output: %s", string(b))
+ b, err := exec.Command(cmd, arg, escaped).CombinedOutput() //nolint:gosec
+ require.NoError(t, err)
got := strings.TrimSpace(string(b))
require.Equal(t, "yay", got)
})
diff --git a/cli/configssh_windows.go b/cli/configssh_windows.go
index 53473c7aa4..db81bce1ff 100644
--- a/cli/configssh_windows.go
+++ b/cli/configssh_windows.go
@@ -4,8 +4,6 @@ package cli
import (
"fmt"
- "os"
- "path/filepath"
"strings"
"golang.org/x/xerrors"
@@ -52,13 +50,7 @@ func sshConfigMatchExecEscape(path string) (string, error) {
if strings.ContainsAny(path, " ") {
// c.f. function comment for how this works.
- // Use absolute paths for powershell.exe and cmd.exe
- // to avoid PATH resolution issues when both Path and
- // PATH (MSYS-translated) exist in the environment.
- sysRoot := os.Getenv("SYSTEMROOT")
- pwsh := filepath.Join(sysRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe")
- cmd := filepath.Join(sysRoot, "System32", "cmd.exe")
- path = fmt.Sprintf("for /f %%%%a in ('%s -Command [char]34') do @%s /c %%%%a%s%%%%a", pwsh, cmd, path) //nolint:gocritic // We don't want %q here.
+ path = fmt.Sprintf("for /f %%%%a in ('powershell.exe -Command [char]34') do @cmd.exe /c %%%%a%s%%%%a", path) //nolint:gocritic // We don't want %q here.
}
return path, nil
}
diff --git a/cli/root.go b/cli/root.go
index 2e4aa7dd17..a40ac7c3c2 100644
--- a/cli/root.go
+++ b/cli/root.go
@@ -1701,44 +1701,7 @@ func (r roundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
return r(req)
}
-// appendAndDedupEnv appends extra environment variables and
-// deduplicates entries with the same key (case-insensitive on
-// Windows). For the PATH variable specifically, it prefers the
-// value that contains native Windows paths (with backslashes)
-// over MSYS-translated paths (with forward slashes). For all
-// other variables, the last value wins.
-func appendAndDedupEnv(env []string, extra ...string) []string {
- env = append(env, extra...)
- if runtime.GOOS != "windows" {
- return env
- }
- seen := make(map[string]int, len(env))
- result := make([]string, 0, len(env))
- for _, e := range env {
- key, val, ok := strings.Cut(e, "=")
- if !ok {
- result = append(result, e)
- continue
- }
- upper := strings.ToUpper(key)
- if idx, exists := seen[upper]; exists {
- if upper == "PATH" {
- // Prefer the value with native Windows paths.
- existingVal := result[idx][len(key)+1:]
- if strings.Contains(existingVal, "\\") && !strings.Contains(val, "\\") {
- continue
- }
- }
- result[idx] = e
- continue
- }
- seen[upper] = len(result)
- result = append(result, e)
- }
- return result
-}
-
-// headerTransport creates a new transport that executes `--header-command`
+// HeaderTransport creates a new transport that executes `--header-command`
// if it is set to add headers for all outbound requests.
func headerTransport(ctx context.Context, serverURL *url.URL, header []string, headerCommand string) (*codersdk.HeaderTransport, error) {
transport := &codersdk.HeaderTransport{
@@ -1756,7 +1719,7 @@ func headerTransport(ctx context.Context, serverURL *url.URL, header []string, h
var outBuf bytes.Buffer
// #nosec
cmd := exec.CommandContext(ctx, shell, caller, headerCommand)
- cmd.Env = appendAndDedupEnv(os.Environ(), "CODER_URL="+serverURL.String())
+ cmd.Env = append(os.Environ(), "CODER_URL="+serverURL.String())
cmd.Stdout = &outBuf
cmd.Stderr = io.Discard
err := cmd.Run()
diff --git a/cli/root_test.go b/cli/root_test.go
index aaf81f574e..fefb87382c 100644
--- a/cli/root_test.go
+++ b/cli/root_test.go
@@ -177,17 +177,15 @@ func TestRoot(t *testing.T) {
url = srv.URL
buf := new(bytes.Buffer)
coderURLEnv := "$CODER_URL"
- headerCmd := "printf X-Process-Testing=very-wow-" + coderURLEnv + "'\\r\\n'X-Process-Testing2=more-wow"
if runtime.GOOS == "windows" {
coderURLEnv = "%CODER_URL%"
- headerCmd = "echo X-Process-Testing=very-wow-" + coderURLEnv + "& echo X-Process-Testing2=more-wow"
}
inv, _ := clitest.New(t,
"--no-feature-warning",
"--no-version-warning",
"--header", "X-Testing=wow",
"--header", "Cool-Header=Dean was Here!",
- "--header-command", headerCmd,
+ "--header-command", "printf X-Process-Testing=very-wow-"+coderURLEnv+"'\\r\\n'X-Process-Testing2=more-wow",
"login", srv.URL,
)
inv.Stdout = buf
@@ -268,7 +266,7 @@ func TestDERPHeaders(t *testing.T) {
"--no-version-warning",
"ping", workspace.Name,
"-n", "1",
- "--header-command", "echo X-Process-Testing=very-wow",
+ "--header-command", "printf X-Process-Testing=very-wow",
}
for k, v := range expectedHeaders {
if k != "X-Process-Testing" {
diff --git a/enterprise/cli/proxyserver_test.go b/enterprise/cli/proxyserver_test.go
index 15f0003099..556597ab76 100644
--- a/enterprise/cli/proxyserver_test.go
+++ b/enterprise/cli/proxyserver_test.go
@@ -48,7 +48,7 @@ func Test_ProxyServer_Headers(t *testing.T) {
"--access-url", "http://localhost:8080",
"--http-address", ":0",
"--header", fmt.Sprintf("%s=%s", headerName1, headerVal1),
- "--header-command", fmt.Sprintf("echo %s=%s", headerName2, headerVal2),
+ "--header-command", fmt.Sprintf("printf %s=%s", headerName2, headerVal2),
)
pty := ptytest.New(t)
inv.Stdout = pty.Output()
From 7195be87b1fcf4946bad2ad308a029503a32b1a0 Mon Sep 17 00:00:00 2001
From: Cian Johnston
Date: Tue, 2 Jun 2026 11:55:34 +0100
Subject: [PATCH 15/15] fix(site): CredentialField: mask api key after submit
(#25848)
Fixes CODAGT-525
* Re-masks the field after submit
* Sets font to monospaced for legibility
* Extracts `createDeferred` to `testHelpers`
---
site/src/api/queries/aiProviders.ts | 2 +-
.../UpdateProviderPageView.tsx | 6 +
.../components/CredentialField.tsx | 8 +-
.../components/ProviderForm.stories.tsx | 292 +++++++++++++++++-
.../ProvidersPage/components/ProviderForm.tsx | 73 ++++-
.../pages/AgentsPage/AgentChatPage.test.ts | 17 +-
.../hooks/useChatDraftAttachments.test.ts | 17 +-
site/src/testHelpers/deferred.ts | 15 +
8 files changed, 379 insertions(+), 51 deletions(-)
create mode 100644 site/src/testHelpers/deferred.ts
diff --git a/site/src/api/queries/aiProviders.ts b/site/src/api/queries/aiProviders.ts
index ad8d722352..7a3f01cf53 100644
--- a/site/src/api/queries/aiProviders.ts
+++ b/site/src/api/queries/aiProviders.ts
@@ -8,7 +8,7 @@ import type {
const aiProvidersListKey = ["ai", "providers"] as const;
-const aiProviderKeyFor = (idOrName: string) =>
+export const aiProviderKeyFor = (idOrName: string) =>
[...aiProvidersListKey, idOrName] as const;
export const aiProvidersList = () => ({
diff --git a/site/src/pages/AISettingsPage/ProvidersPage/UpdateProviderPage/UpdateProviderPageView.tsx b/site/src/pages/AISettingsPage/ProvidersPage/UpdateProviderPage/UpdateProviderPageView.tsx
index 9991c3b8f6..005ece6744 100644
--- a/site/src/pages/AISettingsPage/ProvidersPage/UpdateProviderPage/UpdateProviderPageView.tsx
+++ b/site/src/pages/AISettingsPage/ProvidersPage/UpdateProviderPage/UpdateProviderPageView.tsx
@@ -7,6 +7,7 @@ import { toast } from "sonner";
import { getErrorMessage } from "#/api/errors";
import {
aiProvider,
+ aiProviderKeyFor,
deleteAIProviderMutation,
updateAIProviderMutation,
} from "#/api/queries/aiProviders";
@@ -171,6 +172,10 @@ const UpdateProviderPageView: React.FC = () => {
{ enabled: checked },
{
onSuccess: (updated) => {
+ queryClient.setQueryData(
+ aiProviderKeyFor(providerId),
+ updated,
+ );
toast.success(
`Provider "${updated.display_name || updated.name}" ${checked ? "enabled" : "disabled"}.`,
);
@@ -200,6 +205,7 @@ const UpdateProviderPageView: React.FC = () => {
const request = providerFormValuesToUpdate(values, provider);
try {
const updated = await updateMutation.mutateAsync(request);
+ queryClient.setQueryData(aiProviderKeyFor(providerId), updated);
toast.success(
`Provider "${updated.display_name || updated.name}" updated.`,
);
diff --git a/site/src/pages/AISettingsPage/ProvidersPage/components/CredentialField.tsx b/site/src/pages/AISettingsPage/ProvidersPage/components/CredentialField.tsx
index 888818f859..b584d326cd 100644
--- a/site/src/pages/AISettingsPage/ProvidersPage/components/CredentialField.tsx
+++ b/site/src/pages/AISettingsPage/ProvidersPage/components/CredentialField.tsx
@@ -10,6 +10,7 @@ type CredentialFieldProps = {
placeholder?: string;
description?: React.ReactNode;
required?: boolean;
+ onBlur?: () => void;
onFocus?: () => void;
};
@@ -20,6 +21,7 @@ export const CredentialField: React.FC = ({
placeholder,
description,
required = false,
+ onBlur,
onFocus,
}) => {
const inputId = useId();
@@ -62,9 +64,13 @@ export const CredentialField: React.FC = ({
{
+ helpers.onBlur(event);
+ onBlur?.();
+ }}
onFocus={onFocus}
autoComplete={autoComplete}
placeholder={placeholder}
diff --git a/site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.stories.tsx b/site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.stories.tsx
index 181a786a32..49c1e0c866 100644
--- a/site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.stories.tsx
+++ b/site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.stories.tsx
@@ -1,6 +1,8 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
+import { type ComponentProps, useState } from "react";
import { expect, fn, screen, userEvent, waitFor, within } from "storybook/test";
-import { ProviderForm } from "./ProviderForm";
+import { createDeferred, type Deferred } from "#/testHelpers/deferred";
+import { ProviderForm, SAVED_CREDENTIAL_MASK } from "./ProviderForm";
const meta: Meta = {
title: "pages/AISettingsPage/ProviderForm",
@@ -15,6 +17,88 @@ const meta: Meta = {
export default meta;
type Story = StoryObj;
+const SuccessfulSubmitProviderForm = ({
+ args,
+ deferred,
+}: {
+ args: ComponentProps;
+ deferred: Deferred;
+}) => {
+ const [isLoading, setIsLoading] = useState(false);
+
+ return (
+ {
+ args.onSubmit?.(values);
+ setIsLoading(true);
+ await deferred.promise;
+ setIsLoading(false);
+ }}
+ />
+ );
+};
+
+const FailedSubmitProviderForm = ({
+ args,
+ deferred,
+}: {
+ args: ComponentProps;
+ deferred: Deferred;
+}) => {
+ const [isLoading, setIsLoading] = useState(false);
+ const [submitError, setSubmitError] = useState();
+
+ return (
+ {
+ args.onSubmit?.(values);
+ setIsLoading(true);
+ await deferred.promise;
+ setSubmitError(new Error(errorSubmitMessage));
+ setIsLoading(false);
+ }}
+ />
+ );
+};
+
+const ExternalLoadingProviderForm = ({
+ args,
+ deferred,
+}: {
+ args: ComponentProps;
+ deferred: Deferred;
+}) => {
+ const [isLoading, setIsLoading] = useState(false);
+
+ return (
+ <>
+
+ {
+ setIsLoading(true);
+ await deferred.promise;
+ setIsLoading(false);
+ }}
+ >
+ Simulate external save
+
+ >
+ );
+};
+
+const errorSubmitMessage = "Failed to update provider.";
+
+let bedrockSubmitDeferred = createDeferred();
+let apiKeySubmitDeferred = createDeferred();
+let failedSubmitDeferred = createDeferred();
+let externalSaveDeferred = createDeferred();
+
export const AddAnthropicDefault: Story = {};
export const AddOpenAI: Story = {
@@ -47,6 +131,15 @@ export const AddBedrock: Story = {
};
export const EditBedrockKeepCredentials: Story = {
+ render: (args) => {
+ bedrockSubmitDeferred = createDeferred();
+ return (
+
+ );
+ },
args: {
editing: true,
bedrockSavedAccessCredentials: true,
@@ -62,6 +155,59 @@ export const EditBedrockKeepCredentials: Story = {
enabled: true,
},
},
+ play: async ({ canvasElement, args }) => {
+ const canvas = within(canvasElement);
+ const accessKeyInput = await canvas.findByLabelText(/^access key\s*\*?$/i);
+ const accessKeySecretInput =
+ await canvas.findByLabelText(/access key secret/i);
+
+ expect(accessKeyInput).toHaveProperty("type", "text");
+ expect(accessKeySecretInput).toHaveProperty("type", "text");
+ expect(accessKeyInput).toHaveValue(SAVED_CREDENTIAL_MASK);
+ expect(accessKeySecretInput).toHaveValue(SAVED_CREDENTIAL_MASK);
+
+ await userEvent.click(accessKeyInput);
+ await waitFor(() => expect(accessKeyInput).toHaveValue(""));
+ await userEvent.click(accessKeySecretInput);
+ await waitFor(() =>
+ expect(accessKeyInput).toHaveValue(SAVED_CREDENTIAL_MASK),
+ );
+
+ await userEvent.click(accessKeyInput);
+ await waitFor(() => expect(accessKeyInput).toHaveValue(""));
+ await userEvent.type(accessKeyInput, "AKIAI1lO0EXAMPLE");
+ expect(accessKeyInput).toHaveValue("AKIAI1lO0EXAMPLE");
+
+ await userEvent.click(accessKeySecretInput);
+ await waitFor(() => expect(accessKeySecretInput).toHaveValue(""));
+ await userEvent.type(accessKeySecretInput, "wJalrI1lO0Secret");
+ expect(accessKeySecretInput).toHaveValue("wJalrI1lO0Secret");
+
+ const displayName = canvas.getByLabelText(/display name/i);
+ await userEvent.clear(displayName);
+ await userEvent.type(displayName, "Updated Bedrock");
+
+ const submitButton = canvas.getByRole("button", {
+ name: /update provider/i,
+ });
+ await waitFor(() => expect(submitButton).toBeEnabled());
+ await userEvent.click(submitButton);
+
+ await waitFor(() =>
+ expect(args.onSubmit).toHaveBeenCalledWith(
+ expect.objectContaining({
+ accessKey: "AKIAI1lO0EXAMPLE",
+ accessKeySecret: "wJalrI1lO0Secret",
+ }),
+ ),
+ );
+ await waitFor(() => expect(submitButton).toBeDisabled());
+ bedrockSubmitDeferred.resolve();
+ await waitFor(() => {
+ expect(accessKeyInput).toHaveValue(SAVED_CREDENTIAL_MASK);
+ expect(accessKeySecretInput).toHaveValue(SAVED_CREDENTIAL_MASK);
+ });
+ },
};
export const AddCopilot: Story = {
@@ -141,6 +287,134 @@ export const Submitting: Story = {
};
export const CredentialFocusClear: Story = {
+ render: (args) => {
+ apiKeySubmitDeferred = createDeferred();
+ return (
+
+ );
+ },
+ args: {
+ editing: true,
+ openAiAnthropicSavedApiKey: true,
+ openAiAnthropicMaskedApiKey: "sk-ant-***\u2026***ABCD",
+ initialValues: {
+ type: "anthropic",
+ name: "production-anthropic",
+ displayName: "Production Anthropic",
+ baseUrl: "https://api.anthropic.com",
+ apiKey: "",
+ enabled: true,
+ },
+ },
+ play: async ({ canvasElement, args }) => {
+ const canvas = within(canvasElement);
+ const apiKeyInput = await canvas.findByLabelText(/api key/i);
+
+ expect(apiKeyInput).toHaveProperty("type", "text");
+ expect(apiKeyInput).toHaveValue("sk-ant-***\u2026***ABCD");
+
+ await userEvent.click(apiKeyInput);
+ await waitFor(() => expect(apiKeyInput).toHaveValue(""));
+
+ const displayName = canvas.getByLabelText(/display name/i);
+ await userEvent.click(displayName);
+ await waitFor(() =>
+ expect(apiKeyInput).toHaveValue("sk-ant-***\u2026***ABCD"),
+ );
+
+ await userEvent.click(apiKeyInput);
+ await waitFor(() => expect(apiKeyInput).toHaveValue(""));
+ await userEvent.type(apiKeyInput, "sk-ant-I1lO0-new-secret");
+ expect(apiKeyInput).toHaveValue("sk-ant-I1lO0-new-secret");
+
+ await userEvent.clear(displayName);
+ await userEvent.type(displayName, "Updated Anthropic");
+
+ const submitButton = canvas.getByRole("button", {
+ name: /update provider/i,
+ });
+ await waitFor(() => expect(submitButton).toBeEnabled());
+ await userEvent.click(submitButton);
+
+ await waitFor(() =>
+ expect(args.onSubmit).toHaveBeenCalledWith(
+ expect.objectContaining({
+ apiKey: "sk-ant-I1lO0-new-secret",
+ }),
+ ),
+ );
+ await waitFor(() => expect(submitButton).toBeDisabled());
+ apiKeySubmitDeferred.resolve();
+ await waitFor(() =>
+ expect(apiKeyInput).toHaveValue("sk-ant-***\u2026***ABCD"),
+ );
+ },
+};
+export const FailedSubmitKeepsCredential: Story = {
+ render: (args) => {
+ failedSubmitDeferred = createDeferred();
+ return (
+
+ );
+ },
+ args: {
+ editing: true,
+ openAiAnthropicSavedApiKey: true,
+ openAiAnthropicMaskedApiKey: "sk-ant-***\u2026***ABCD",
+ initialValues: {
+ type: "anthropic",
+ name: "production-anthropic",
+ displayName: "Production Anthropic",
+ baseUrl: "https://api.anthropic.com",
+ apiKey: "",
+ enabled: true,
+ },
+ },
+ play: async ({ canvasElement, args }) => {
+ const canvas = within(canvasElement);
+ const apiKeyInput = await canvas.findByLabelText(/api key/i);
+
+ await userEvent.click(apiKeyInput);
+ await waitFor(() => expect(apiKeyInput).toHaveValue(""));
+ await userEvent.type(apiKeyInput, "sk-ant-I1lO0-new-secret");
+
+ const displayName = canvas.getByLabelText(/display name/i);
+ await userEvent.clear(displayName);
+ await userEvent.type(displayName, "Failed Anthropic");
+
+ const submitButton = canvas.getByRole("button", {
+ name: /update provider/i,
+ });
+ await waitFor(() => expect(submitButton).toBeEnabled());
+ await userEvent.click(submitButton);
+
+ await waitFor(() =>
+ expect(args.onSubmit).toHaveBeenCalledWith(
+ expect.objectContaining({
+ apiKey: "sk-ant-I1lO0-new-secret",
+ }),
+ ),
+ );
+ await waitFor(() => expect(submitButton).toBeDisabled());
+ failedSubmitDeferred.resolve();
+ await expect(await canvas.findByText(errorSubmitMessage)).toBeVisible();
+ expect(apiKeyInput).toHaveValue("sk-ant-I1lO0-new-secret");
+ },
+};
+
+export const ExternalLoadingKeepsCredential: Story = {
+ render: (args) => {
+ externalSaveDeferred = createDeferred();
+ return (
+
+ );
+ },
args: {
editing: true,
openAiAnthropicSavedApiKey: true,
@@ -157,11 +431,25 @@ export const CredentialFocusClear: Story = {
play: async ({ canvasElement }) => {
const canvas = within(canvasElement);
const apiKeyInput = await canvas.findByLabelText(/api key/i);
- expect(apiKeyInput).toHaveValue("sk-ant-***\u2026***ABCD");
+ const submitButton = canvas.getByRole("button", {
+ name: /update provider/i,
+ });
+
await userEvent.click(apiKeyInput);
await waitFor(() => expect(apiKeyInput).toHaveValue(""));
+ await userEvent.type(apiKeyInput, "sk-ant-I1lO0-new-secret");
+ await waitFor(() => expect(submitButton).toBeEnabled());
+
+ await userEvent.click(
+ canvas.getByRole("button", { name: /simulate external save/i }),
+ );
+ await waitFor(() => expect(submitButton).toBeDisabled());
+ externalSaveDeferred.resolve();
+ await waitFor(() => expect(submitButton).toBeEnabled());
+ expect(apiKeyInput).toHaveValue("sk-ant-I1lO0-new-secret");
},
};
+
export const UnsavedChangesPrompt: Story = {
args: {
editing: true,
diff --git a/site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.tsx b/site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.tsx
index 7468d39b86..e2e46f7e20 100644
--- a/site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.tsx
+++ b/site/src/pages/AISettingsPage/ProvidersPage/components/ProviderForm.tsx
@@ -259,6 +259,21 @@ export const ProviderForm: FC = ({
const typeDefaults =
providerDefaults[resolvedType as keyof typeof providerDefaults];
+ // Seed Bedrock credentials with the mask when on file; focus clears it,
+ // and a re-submitted "" tells the API mapping to keep the value.
+ const maskedAccessKey = bedrockSavedAccessCredentials
+ ? SAVED_CREDENTIAL_MASK
+ : "";
+ const maskedAccessKeySecret = bedrockSavedAccessCredentials
+ ? SAVED_CREDENTIAL_MASK
+ : "";
+ // Same pattern for openai/anthropic. Prefer the API-supplied masked
+ // rendering so the user sees the key's identifying suffix.
+ const maskedApiKey = openAiAnthropicSavedApiKey
+ ? (openAiAnthropicMaskedApiKey ?? SAVED_CREDENTIAL_MASK)
+ : "";
+
+ const didSubmit = useRef(false);
const form = useFormik({
initialValues: {
...defaultInitialValues,
@@ -266,21 +281,16 @@ export const ProviderForm: FC = ({
// Edit overrides prefills with server values; create gets them as-is.
...(typeDefaults ?? {}),
...initialValues,
- // Seed Bedrock credentials with the mask when on file; focus clears it,
- // and a re-submitted "" tells the API mapping to keep the value.
- accessKey: bedrockSavedAccessCredentials ? SAVED_CREDENTIAL_MASK : "",
- accessKeySecret: bedrockSavedAccessCredentials
- ? SAVED_CREDENTIAL_MASK
- : "",
- // Same pattern for openai/anthropic. Prefer the API-supplied masked
- // rendering so the user sees the key's identifying suffix.
- apiKey: openAiAnthropicSavedApiKey
- ? (openAiAnthropicMaskedApiKey ?? SAVED_CREDENTIAL_MASK)
- : "",
+ accessKey: maskedAccessKey,
+ accessKeySecret: maskedAccessKeySecret,
+ apiKey: maskedApiKey,
},
validationSchema: getProviderFormSchema(editing),
validateOnMount: true,
- onSubmit: onSubmit ?? (() => {}),
+ onSubmit: (values) => {
+ didSubmit.current = true;
+ return onSubmit?.(values);
+ },
});
const getFieldHelpers = getFormHelpers(form, submitError);
@@ -297,17 +307,46 @@ export const ProviderForm: FC = ({
}
};
+ // Restores the mask when the user leaves the field without entering
+ // a new value, keeping the saved-credential appearance.
+ const handleCredentialBlur = (
+ field: "apiKey" | "accessKey" | "accessKeySecret",
+ ) => {
+ const initial = form.initialValues[field];
+ if (form.values[field] === "" && initial !== "") {
+ void form.setFieldValue(field, initial);
+ }
+ };
+
// When the parent's mutation finishes without an error, treat the just-
// submitted values as the new baseline so the unsaved-changes prompt does
// not fire on subsequent navigations. React Query reports a missing error
// as `null`, so a truthy check covers both null and undefined.
const previousIsLoading = useRef(isLoading);
useEffect(() => {
- if (previousIsLoading.current && !isLoading && !submitError) {
- form.resetForm({ values: form.values });
+ if (previousIsLoading.current && !isLoading) {
+ if (didSubmit.current && !submitError) {
+ // Restore credential fields to their initial masked sentinels so
+ // the raw key is never left visible after a successful save.
+ const remaskedValues = {
+ ...form.values,
+ apiKey: maskedApiKey,
+ accessKey: maskedAccessKey,
+ accessKeySecret: maskedAccessKeySecret,
+ };
+ form.resetForm({ values: remaskedValues });
+ }
+ didSubmit.current = false;
}
previousIsLoading.current = isLoading;
- }, [isLoading, submitError, form]);
+ }, [
+ isLoading,
+ submitError,
+ form,
+ maskedApiKey,
+ maskedAccessKey,
+ maskedAccessKeySecret,
+ ]);
const unsavedChanges = useUnsavedChangesPrompt(
form.dirty && !form.isSubmitting,
@@ -367,6 +406,7 @@ export const ProviderForm: FC = ({
required
label="API key"
helpers={getFieldHelpers("apiKey")}
+ onBlur={() => handleCredentialBlur("apiKey")}
onFocus={() => handleCredentialFocus("apiKey")}
autoComplete="new-password"
placeholder={apiKeyPlaceholder(form.values.type)}
@@ -430,12 +470,15 @@ export const ProviderForm: FC = ({
required
label="Access key"
helpers={getFieldHelpers("accessKey")}
+ onBlur={() => handleCredentialBlur("accessKey")}
onFocus={() => handleCredentialFocus("accessKey")}
+ autoComplete="new-password"
/>
handleCredentialBlur("accessKeySecret")}
onFocus={() => handleCredentialFocus("accessKeySecret")}
autoComplete="new-password"
/>
diff --git a/site/src/pages/AgentsPage/AgentChatPage.test.ts b/site/src/pages/AgentsPage/AgentChatPage.test.ts
index 9a20437dfe..b0acb53af1 100644
--- a/site/src/pages/AgentsPage/AgentChatPage.test.ts
+++ b/site/src/pages/AgentsPage/AgentChatPage.test.ts
@@ -2,6 +2,7 @@ import { act, renderHook } from "@testing-library/react";
import { createRef } from "react";
import { beforeEach, describe, expect, it, vi } from "vitest";
import type { ChatQueuedMessage } from "#/api/typesGenerated";
+import { createDeferred } from "#/testHelpers/deferred";
import { MockUserOwner, MockWorkspace } from "#/testHelpers/entities";
import {
draftInputStorageKeyPrefix,
@@ -79,22 +80,6 @@ const setMobileViewport = (isMobile: boolean) => {
});
};
-type Deferred = {
- promise: Promise;
- resolve: (value: T | PromiseLike) => void;
- reject: (reason?: unknown) => void;
-};
-
-const createDeferred = (): Deferred => {
- let resolve!: (value: T | PromiseLike) => void;
- let reject!: (reason?: unknown) => void;
- const promise = new Promise((res, rej) => {
- resolve = res;
- reject = rej;
- });
- return { promise, resolve, reject };
-};
-
describe("getWorkspaceOptionsWithLinkedWorkspace", () => {
it("includes a missing linked workspace only when the current user owns it", () => {
const existingWorkspace = {
diff --git a/site/src/pages/AgentsPage/hooks/useChatDraftAttachments.test.ts b/site/src/pages/AgentsPage/hooks/useChatDraftAttachments.test.ts
index 72ba18c0d5..ec94f93ab0 100644
--- a/site/src/pages/AgentsPage/hooks/useChatDraftAttachments.test.ts
+++ b/site/src/pages/AgentsPage/hooks/useChatDraftAttachments.test.ts
@@ -1,28 +1,13 @@
import { act, renderHook } from "@testing-library/react";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import { API } from "#/api/api";
+import { createDeferred } from "#/testHelpers/deferred";
import { chatDraftAttachmentStorageKey } from "../utils/chatDraftAttachmentStorage";
import {
resetChatDraftAttachmentRegistryForTest,
useChatDraftAttachments,
} from "./useChatDraftAttachments";
-type Deferred = {
- promise: Promise;
- resolve: (value: T | PromiseLike) => void;
- reject: (reason?: unknown) => void;
-};
-
-const createDeferred = (): Deferred => {
- let resolve!: (value: T | PromiseLike) => void;
- let reject!: (reason?: unknown) => void;
- const promise = new Promise((res, rej) => {
- resolve = res;
- reject = rej;
- });
- return { promise, resolve, reject };
-};
-
const orgID = "org-1";
const chatID = "chat-a";
const storageKey = chatDraftAttachmentStorageKey(orgID, chatID);
diff --git a/site/src/testHelpers/deferred.ts b/site/src/testHelpers/deferred.ts
new file mode 100644
index 0000000000..2ae217ece5
--- /dev/null
+++ b/site/src/testHelpers/deferred.ts
@@ -0,0 +1,15 @@
+export type Deferred = {
+ promise: Promise;
+ resolve: (value: T | PromiseLike) => void;
+ reject: (reason?: unknown) => void;
+};
+
+export const createDeferred = (): Deferred => {
+ let resolve!: (value: T | PromiseLike) => void;
+ let reject!: (reason?: unknown) => void;
+ const promise = new Promise((res, rej) => {
+ resolve = res;
+ reject = rej;
+ });
+ return { promise, resolve, reject };
+};