From 37c3ccd1bbec3412a9c3164d207480ccf4391e61 Mon Sep 17 00:00:00 2001
From: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com>
Date: Fri, 29 May 2026 10:37:52 +0530
Subject: [PATCH 1/7] fix: pin minimatch@10 to 10.2.5 to bypass ReDoS
(ENG-1113) (#8190)
---
package.json | 3 ++-
pnpm-lock.yaml | 11 ++---------
2 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/package.json b/package.json
index 8f71a91b4c41..455b3e20689a 100644
--- a/package.json
+++ b/package.json
@@ -96,6 +96,7 @@
"hono": "4.12.18",
"ip-address": "10.1.1",
"lodash": "4.18.1",
+ "minimatch@10": "10.2.5",
"node-forge": "1.4.0",
"postcss": "8.5.14",
"protobufjs@7": "7.5.8",
@@ -104,7 +105,7 @@
"uuid@11": "11.1.1"
},
"comments": {
- "overrides": "Security fixes for transitive dependencies that still fail a no-override audit. Remove each override when its upstream chain adopts a patched version: @hono/node-server/hono via Prisma dev tooling | @protobufjs/utf8 (CVE overlong UTF-8) - awaiting @opentelemetry/otlp-transformer update | @tootallnate/once and tar via sqlite3/node-gyp chain | @xmldom/xmldom (XML injection/DoS CVEs) - awaiting @boxyhq/saml20 to pin to >=0.9.10 | axios, lodash, and node-forge via @boxyhq/saml-jackson | ajv@6 via webpack/eslint | effect (GHSA-38f7-945m-qr2g) - awaiting @prisma/config update | fast-uri (CVE-2025-48944/48945) - awaiting ajv/schema-utils update | fast-xml-parser via AWS SDK XML builder | ip-address (XSS in Address6) - awaiting mongodb/socks update | postcss (CVE-2025-62695) - awaiting next.js to unpin postcss | protobufjs@7/8 (GHSA-xq3m-2v4x-88gg et al.) - awaiting @grpc/proto-loader/otlp-transformer update | uuid@11 (CVE-2025-61475) - awaiting typeorm update"
+ "overrides": "Security fixes for transitive dependencies that still fail a no-override audit. Remove each override when its upstream chain adopts a patched version: @hono/node-server/hono via Prisma dev tooling | @protobufjs/utf8 (CVE overlong UTF-8) - awaiting @opentelemetry/otlp-transformer update | @tootallnate/once and tar via sqlite3/node-gyp chain | @xmldom/xmldom (XML injection/DoS CVEs) - awaiting @boxyhq/saml20 to pin to >=0.9.10 | axios, lodash, and node-forge via @boxyhq/saml-jackson | ajv@6 via webpack/eslint | effect (GHSA-38f7-945m-qr2g) - awaiting @prisma/config update | fast-uri (CVE-2025-48944/48945) - awaiting ajv/schema-utils update | fast-xml-parser via AWS SDK XML builder | ip-address (XSS in Address6) - awaiting mongodb/socks update | minimatch@10 (CVE-2026-27904 / GHSA-23c5-xmqv-rm74, nested extglob ReDoS) - awaiting @rushstack/node-core-library (via vite-plugin-dts -> @microsoft/api-extractor) to bump to >=10.2.3 | postcss (CVE-2025-62695) - awaiting next.js to unpin postcss | protobufjs@7/8 (GHSA-xq3m-2v4x-88gg et al.) - awaiting @grpc/proto-loader/otlp-transformer update | uuid@11 (CVE-2025-61475) - awaiting typeorm update"
},
"patchedDependencies": {
"next-auth@4.24.13": "patches/next-auth@4.24.13.patch"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1fa4bf3995f9..12fc0ac00df0 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,6 +17,7 @@ overrides:
hono: 4.12.18
ip-address: 10.1.1
lodash: 4.18.1
+ minimatch@10: 10.2.5
node-forge: 1.4.0
postcss: 8.5.14
protobufjs@7: 7.5.8
@@ -9251,10 +9252,6 @@ packages:
resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
hasBin: true
- minimatch@10.2.1:
- resolution: {integrity: sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==}
- engines: {node: 20 || >=22}
-
minimatch@10.2.5:
resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
engines: {node: 18 || 20 || >=22}
@@ -14554,7 +14551,7 @@ snapshots:
'@rushstack/ts-command-line': 5.3.3(@types/node@25.4.0)
diff: 8.0.4
lodash: 4.18.1
- minimatch: 10.2.1
+ minimatch: 10.2.5
resolve: 1.22.11
semver: 7.5.4
source-map: 0.6.1
@@ -21912,10 +21909,6 @@ snapshots:
mini-svg-data-uri@1.4.4: {}
- minimatch@10.2.1:
- dependencies:
- brace-expansion: 5.0.6
-
minimatch@10.2.5:
dependencies:
brace-expansion: 5.0.6
From b350b0934aa6226993007f7fb5e38ab0eb135efa Mon Sep 17 00:00:00 2001
From: Javi Aguilar <122741+itsjavi@users.noreply.github.com>
Date: Fri, 29 May 2026 08:31:58 +0200
Subject: [PATCH 2/7] style: align main and settings nav icon styling (#8186)
---
.../components/MainNavigation.tsx | 5 +++--
.../components/SettingsSidebarContent.tsx | 20 +++++--------------
2 files changed, 8 insertions(+), 17 deletions(-)
diff --git a/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx b/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx
index ec4a575d5ad2..aa0817760aa9 100644
--- a/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx
+++ b/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx
@@ -456,6 +456,7 @@ export const MainNavigation = ({
const switcherIconClasses =
"flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-slate-100 text-slate-600";
+ const mainNavIconClassName = "h-4 w-4 shrink-0";
const isInitialWorkspacesLoading =
isWorkspaceDropdownOpen && !hasInitializedWorkspaces && !workspaceLoadError;
@@ -546,7 +547,7 @@ export const MainNavigation = ({
disabled={item.disabled}
disabledMessage={item.disabled ? disabledNavigationMessage : undefined}
linkText={item.name}>
-
+
)
)}
@@ -566,7 +567,7 @@ export const MainNavigation = ({
settingsNavigationItem.disabled ? disabledNavigationMessage : undefined
}
linkText={settingsNavigationItem.name}>
-
+
diff --git a/apps/web/app/(app)/workspaces/[workspaceId]/components/SettingsSidebarContent.tsx b/apps/web/app/(app)/workspaces/[workspaceId]/components/SettingsSidebarContent.tsx
index f2a3ffe61b9b..9ee00af2d77f 100644
--- a/apps/web/app/(app)/workspaces/[workspaceId]/components/SettingsSidebarContent.tsx
+++ b/apps/web/app/(app)/workspaces/[workspaceId]/components/SettingsSidebarContent.tsx
@@ -157,7 +157,6 @@ const SettingsNavLink = ({
};
const SectionHeader = ({
- icon,
label,
isCollapsed,
isTextVisible,
@@ -167,8 +166,7 @@ const SectionHeader = ({
currentId,
onSwitcherChange,
onSwitcherOpen,
-}: {
- icon: React.ReactNode;
+}: Readonly<{
label: string;
isCollapsed: boolean;
isTextVisible: boolean;
@@ -178,18 +176,17 @@ const SectionHeader = ({
currentId?: string;
onSwitcherChange?: (id: string) => void;
onSwitcherOpen?: () => void;
-}) => {
+}>) => {
if (isCollapsed) {
- return
{icon}
;
+ return null;
}
return (
-
{icon}
{label}
{switcherName && switcherItems && onSwitcherChange && (
open && onSwitcherOpen?.()}>
@@ -408,7 +405,6 @@ export const SettingsSidebarContent = ({
}
label={t("common.workspace")}
isCollapsed={isCollapsed}
isTextVisible={isTextVisible}
@@ -424,7 +420,6 @@ export const SettingsSidebarContent = ({
}
label={t("common.organization")}
isCollapsed={isCollapsed}
isTextVisible={isTextVisible}
@@ -439,12 +434,7 @@ export const SettingsSidebarContent = ({
- }
- label={t("common.account")}
- isCollapsed={isCollapsed}
- isTextVisible={isTextVisible}
- />
+
{renderSection(accountItems)}
From 1ec74ccae8803691a52432663dee7431f5477bfe Mon Sep 17 00:00:00 2001
From: Matti Nannt
Date: Fri, 29 May 2026 09:06:03 +0200
Subject: [PATCH 3/7] fix: resolve all pnpm audit vulnerabilities (#8193)
Co-authored-by: Claude Opus 4.8
---
package.json | 10 +-
pnpm-lock.yaml | 297 ++++++++++++++++++++++---------------------------
2 files changed, 139 insertions(+), 168 deletions(-)
diff --git a/package.json b/package.json
index 455b3e20689a..6c035de0af50 100644
--- a/package.json
+++ b/package.json
@@ -95,17 +95,23 @@
"fast-xml-parser": "5.7.0",
"hono": "4.12.18",
"ip-address": "10.1.1",
+ "js-cookie": "3.0.7",
"lodash": "4.18.1",
"minimatch@10": "10.2.5",
"node-forge": "1.4.0",
"postcss": "8.5.14",
"protobufjs@7": "7.5.8",
"protobufjs@8": "8.2.0",
+ "qs@6": "6.15.2",
"tar": "7.5.15",
- "uuid@11": "11.1.1"
+ "uuid@8": "11.1.1",
+ "uuid@9": "11.1.1",
+ "uuid@11": "11.1.1",
+ "ws@8": "8.21.0",
+ "yaml@2": "2.9.0"
},
"comments": {
- "overrides": "Security fixes for transitive dependencies that still fail a no-override audit. Remove each override when its upstream chain adopts a patched version: @hono/node-server/hono via Prisma dev tooling | @protobufjs/utf8 (CVE overlong UTF-8) - awaiting @opentelemetry/otlp-transformer update | @tootallnate/once and tar via sqlite3/node-gyp chain | @xmldom/xmldom (XML injection/DoS CVEs) - awaiting @boxyhq/saml20 to pin to >=0.9.10 | axios, lodash, and node-forge via @boxyhq/saml-jackson | ajv@6 via webpack/eslint | effect (GHSA-38f7-945m-qr2g) - awaiting @prisma/config update | fast-uri (CVE-2025-48944/48945) - awaiting ajv/schema-utils update | fast-xml-parser via AWS SDK XML builder | ip-address (XSS in Address6) - awaiting mongodb/socks update | minimatch@10 (CVE-2026-27904 / GHSA-23c5-xmqv-rm74, nested extglob ReDoS) - awaiting @rushstack/node-core-library (via vite-plugin-dts -> @microsoft/api-extractor) to bump to >=10.2.3 | postcss (CVE-2025-62695) - awaiting next.js to unpin postcss | protobufjs@7/8 (GHSA-xq3m-2v4x-88gg et al.) - awaiting @grpc/proto-loader/otlp-transformer update | uuid@11 (CVE-2025-61475) - awaiting typeorm update"
+ "overrides": "Security fixes for transitive dependencies that still fail a no-override audit. Remove each override when its upstream chain adopts a patched version: @hono/node-server/hono via Prisma dev tooling | @protobufjs/utf8 (CVE overlong UTF-8) - awaiting @opentelemetry/otlp-transformer update | @tootallnate/once and tar via sqlite3/node-gyp chain | @xmldom/xmldom (XML injection/DoS CVEs) - awaiting @boxyhq/saml20 to pin to >=0.9.10 | axios, lodash, and node-forge via @boxyhq/saml-jackson | ajv@6 via webpack/eslint | effect (GHSA-38f7-945m-qr2g) - awaiting @prisma/config update | fast-uri (CVE-2025-48944/48945) - awaiting ajv/schema-utils update | fast-xml-parser via AWS SDK XML builder | ip-address (XSS in Address6) - awaiting mongodb/socks update | js-cookie (GHSA-qjx8-664m-686j prototype hijack) - awaiting react-use to bump to >=3.0.7 | minimatch@10 (CVE-2026-27904 / GHSA-23c5-xmqv-rm74, nested extglob ReDoS) - awaiting @rushstack/node-core-library (via vite-plugin-dts -> @microsoft/api-extractor) to bump to >=10.2.3 | postcss (CVE-2025-62695) - awaiting next.js to unpin postcss | protobufjs@7/8 (GHSA-xq3m-2v4x-88gg et al.) - awaiting @grpc/proto-loader/otlp-transformer update | qs@6 (GHSA-q8mj-m7cp-5q26 DoS) - awaiting @googleapis/admin via @boxyhq/saml-jackson update | uuid@8/9/11 (GHSA-w5hq-g745-h8pq buffer bounds, CVE-2025-61475) - awaiting @azure/msal-node, @sentry/webpack-plugin and typeorm updates | ws@8 (GHSA-58qx-3vcg-4xpx memory disclosure) - awaiting storybook and react-email/socket.io updates | yaml@2 (GHSA-48c2-rrv3-qjmp stack overflow) - awaiting lint-staged update"
},
"patchedDependencies": {
"next-auth@4.24.13": "patches/next-auth@4.24.13.patch"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 12fc0ac00df0..a3338c3cd10e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,14 +16,20 @@ overrides:
fast-xml-parser: 5.7.0
hono: 4.12.18
ip-address: 10.1.1
+ js-cookie: 3.0.7
lodash: 4.18.1
minimatch@10: 10.2.5
node-forge: 1.4.0
postcss: 8.5.14
protobufjs@7: 7.5.8
protobufjs@8: 8.2.0
+ qs@6: 6.15.2
tar: 7.5.15
+ uuid@8: 11.1.1
+ uuid@9: 11.1.1
uuid@11: 11.1.1
+ ws@8: 8.21.0
+ yaml@2: 2.9.0
patchedDependencies:
next-auth@4.24.13:
@@ -79,7 +85,7 @@ importers:
version: 10.3.6(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/addon-docs':
specifier: 10.3.6
- version: 10.3.6(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
+ version: 10.3.6(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
'@storybook/addon-links':
specifier: 10.3.6
version: 10.3.6(react@19.2.6)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
@@ -88,10 +94,10 @@ importers:
version: 10.3.6(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
'@storybook/react-vite':
specifier: 10.3.6
- version: 10.3.6(esbuild@0.27.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
+ version: 10.3.6(esbuild@0.27.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
'@tailwindcss/vite':
specifier: 4.2.4
- version: 4.2.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.2.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@typescript-eslint/eslint-plugin':
specifier: 8.57.2
version: 8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)
@@ -100,7 +106,7 @@ importers:
version: 8.57.2(eslint@8.57.1)(typescript@5.9.3)
'@vitejs/plugin-react':
specifier: 5.1.4
- version: 5.1.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 5.1.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
eslint-plugin-react-refresh:
specifier: 0.4.26
version: 0.4.26(eslint@8.57.1)
@@ -112,7 +118,7 @@ importers:
version: 10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
apps/web:
dependencies:
@@ -518,13 +524,13 @@ importers:
version: 1.0.7(tailwindcss@3.4.19(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)))
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vite-tsconfig-paths:
specifier: 6.1.1
- version: 6.1.1(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 6.1.1(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
vitest:
specifier: 4.1.6
- version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
vitest-mock-extended:
specifier: 3.1.1
version: 3.1.1(typescript@5.9.3)(vitest@4.1.6)
@@ -564,10 +570,10 @@ importers:
version: 4.1.6(vitest@4.1.6)
vite:
specifier: 8.0.12
- version: 8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vitest:
specifier: 4.1.6
- version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/cache:
dependencies:
@@ -592,13 +598,13 @@ importers:
version: 4.1.6(vitest@4.1.6)
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vite-plugin-dts:
specifier: 4.5.4
- version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
vitest:
specifier: 4.1.6
- version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/config-eslint:
devDependencies:
@@ -716,10 +722,10 @@ importers:
version: 4.21.0
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vite-plugin-dts:
specifier: 4.5.4
- version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/email:
dependencies:
@@ -775,10 +781,10 @@ importers:
version: 4.21.0
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vitest:
specifier: 4.1.6
- version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/jobs:
dependencies:
@@ -809,16 +815,16 @@ importers:
version: link:../config-eslint
'@vitest/coverage-v8':
specifier: 4.0.18
- version: 4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
vite:
specifier: 7.3.2
- version: 7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vite-plugin-dts:
specifier: 4.5.4
- version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
vitest:
specifier: 4.0.18
- version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
packages/js-core:
devDependencies:
@@ -833,13 +839,13 @@ importers:
version: 4.1.6(vitest@4.1.6)
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vite-plugin-dts:
specifier: 4.5.4
- version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
vitest:
specifier: 4.1.6
- version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/logger:
dependencies:
@@ -864,10 +870,10 @@ importers:
version: link:../config-eslint
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vitest:
specifier: 4.1.6
- version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/storage:
dependencies:
@@ -895,10 +901,10 @@ importers:
version: 4.1.6(vitest@4.1.6)
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vitest:
specifier: 4.1.6
- version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/survey-ui:
dependencies:
@@ -956,13 +962,13 @@ importers:
version: 10.3.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)
'@storybook/react-vite':
specifier: 10.3.6
- version: 10.3.6(esbuild@0.27.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
+ version: 10.3.6(esbuild@0.27.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
'@tailwindcss/postcss':
specifier: 4.2.4
version: 4.2.4
'@tailwindcss/vite':
specifier: 4.2.4
- version: 4.2.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.2.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@types/react':
specifier: 19.2.14
version: 19.2.14
@@ -971,7 +977,7 @@ importers:
version: 19.2.3(@types/react@19.2.14)
'@vitejs/plugin-react':
specifier: 5.1.4
- version: 5.1.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 5.1.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@vitest/coverage-v8':
specifier: 4.1.6
version: 4.1.6(vitest@4.1.6)
@@ -989,16 +995,16 @@ importers:
version: 4.2.4
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vite-plugin-dts:
specifier: 4.5.4
- version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
vite-tsconfig-paths:
specifier: 6.1.1
- version: 6.1.1(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 6.1.1(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
vitest:
specifier: 4.1.6
- version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/surveys:
dependencies:
@@ -1041,7 +1047,7 @@ importers:
version: link:../types
'@preact/preset-vite':
specifier: 2.10.5
- version: 2.10.5(@babel/core@7.29.0)(preact@10.29.1)(rollup@4.59.0)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 2.10.5(@babel/core@7.29.0)(preact@10.29.1)(rollup@4.59.0)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@tailwindcss/postcss':
specifier: 4.2.4
version: 4.2.4
@@ -1074,10 +1080,10 @@ importers:
version: 4.2.4
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
vite-tsconfig-paths:
specifier: 6.1.1
- version: 6.1.1(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 6.1.1(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
packages/types:
dependencies:
@@ -1108,7 +1114,7 @@ importers:
version: link:../config-eslint
vite:
specifier: 7.3.3
- version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
packages:
@@ -8825,8 +8831,9 @@ packages:
jpeg-js@0.4.4:
resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==}
- js-cookie@2.2.1:
- resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==}
+ js-cookie@3.0.7:
+ resolution: {integrity: sha512-z/wZZgDrkNV1eA0ULjM/F9/50Ya8fbzgKneSpoPsXSGd0KnpdtHfOZWK+GcwLk+EZbS4F9RBhU+K2RgzuDaItw==}
+ engines: {node: '>=20'}
js-md4@0.3.2:
resolution: {integrity: sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==}
@@ -10174,8 +10181,8 @@ packages:
engines: {node: '>=10.13.0'}
hasBin: true
- qs@6.14.2:
- resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==}
+ qs@6.15.2:
+ resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==}
engines: {node: '>=0.6'}
quansync@0.2.11:
@@ -11533,16 +11540,6 @@ packages:
resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==}
hasBin: true
- uuid@8.3.2:
- resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
- deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
- hasBin: true
-
- uuid@9.0.1:
- resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
- deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
- hasBin: true
-
v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
@@ -11598,7 +11595,7 @@ packages:
sugarss: ^5.0.0
terser: ^5.16.0
tsx: ^4.8.1
- yaml: ^2.4.2
+ yaml: 2.9.0
peerDependenciesMeta:
'@types/node':
optional: true
@@ -11638,7 +11635,7 @@ packages:
sugarss: ^5.0.0
terser: ^5.16.0
tsx: ^4.8.1
- yaml: ^2.4.2
+ yaml: 2.9.0
peerDependenciesMeta:
'@types/node':
optional: true
@@ -11679,7 +11676,7 @@ packages:
sugarss: ^5.0.0
terser: ^5.16.0
tsx: ^4.8.1
- yaml: ^2.4.2
+ yaml: 2.9.0
peerDependenciesMeta:
'@types/node':
optional: true
@@ -11917,32 +11914,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
- ws@8.17.1:
- resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
- 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
-
- ws@8.18.3:
- resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
- 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
-
- ws@8.20.1:
- resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==}
+ ws@8.21.0:
+ resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
@@ -12026,8 +11999,8 @@ packages:
resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
engines: {node: '>=18'}
- yaml@2.8.2:
- resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==}
+ yaml@2.9.0:
+ resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==}
engines: {node: '>= 14.6'}
hasBin: true
@@ -13305,7 +13278,7 @@ snapshots:
dependencies:
'@azure/msal-common': 15.13.3
jsonwebtoken: 9.0.3
- uuid: 8.3.2
+ uuid: 11.1.1
'@azure/playwright@1.1.5(@playwright/test@1.58.2)':
dependencies:
@@ -14314,11 +14287,11 @@ snapshots:
minipass: 7.1.3
optional: true
- '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
glob: 13.0.6
react-docgen-typescript: 2.4.0(typescript@5.9.3)
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
optionalDependencies:
typescript: 5.9.3
@@ -14778,7 +14751,7 @@ snapshots:
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/core': 2.7.1(@opentelemetry/api@1.9.0)
- yaml: 2.8.2
+ yaml: 2.9.0
'@opentelemetry/context-async-hooks@2.6.0(@opentelemetry/api@1.9.0)':
dependencies:
@@ -15843,19 +15816,19 @@ snapshots:
'@posthog/types@1.369.5': {}
- '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.1)(rollup@4.59.0)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.1)(rollup@4.59.0)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0)
'@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0)
- '@prefresh/vite': 2.4.11(preact@10.29.1)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@prefresh/vite': 2.4.11(preact@10.29.1)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.0)
debug: 4.4.3
magic-string: 0.30.21
picocolors: 1.1.1
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
- vite-prerender-plugin: 0.5.12(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
+ vite-prerender-plugin: 0.5.12(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
zimmerframe: 1.1.4
transitivePeerDependencies:
- preact
@@ -15872,7 +15845,7 @@ snapshots:
'@prefresh/utils@1.2.1': {}
- '@prefresh/vite@2.4.11(preact@10.29.1)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@prefresh/vite@2.4.11(preact@10.29.1)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
'@babel/core': 7.29.0
'@prefresh/babel-plugin': 0.5.2
@@ -15880,7 +15853,7 @@ snapshots:
'@prefresh/utils': 1.2.1
'@rollup/pluginutils': 4.2.1
preact: 10.29.1
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
transitivePeerDependencies:
- supports-color
@@ -17121,7 +17094,7 @@ snapshots:
'@sentry/webpack-plugin@5.1.1(encoding@0.1.13)(webpack@5.105.4(lightningcss@1.32.0)(postcss@8.5.14))':
dependencies:
'@sentry/bundler-plugin-core': 5.1.1(encoding@0.1.13)
- uuid: 9.0.1
+ uuid: 11.1.1
webpack: 5.105.4(lightningcss@1.32.0)(postcss@8.5.14)
transitivePeerDependencies:
- encoding
@@ -17717,10 +17690,10 @@ snapshots:
axe-core: 4.11.0
storybook: 10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- '@storybook/addon-docs@10.3.6(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))':
+ '@storybook/addon-docs@10.3.6(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))':
dependencies:
'@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6)
- '@storybook/csf-plugin': 10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
+ '@storybook/csf-plugin': 10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
'@storybook/icons': 2.0.1(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
'@storybook/react-dom-shim': 10.3.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))
react: 19.2.6
@@ -17745,25 +17718,25 @@ snapshots:
dependencies:
storybook: 10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- '@storybook/builder-vite@10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))':
+ '@storybook/builder-vite@10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))':
dependencies:
- '@storybook/csf-plugin': 10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
+ '@storybook/csf-plugin': 10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
storybook: 10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
ts-dedent: 2.2.0
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
transitivePeerDependencies:
- esbuild
- rollup
- webpack
- '@storybook/csf-plugin@10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))':
+ '@storybook/csf-plugin@10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))':
dependencies:
storybook: 10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
unplugin: 2.3.11
optionalDependencies:
esbuild: 0.27.7
rollup: 4.59.0
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
webpack: 5.105.4(esbuild@0.27.7)(lightningcss@1.32.0)
'@storybook/global@5.0.0': {}
@@ -17779,11 +17752,11 @@ snapshots:
react-dom: 19.2.6(react@19.2.6)
storybook: 10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
- '@storybook/react-vite@10.3.6(esbuild@0.27.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))':
+ '@storybook/react-vite@10.3.6(esbuild@0.27.7)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
- '@storybook/builder-vite': 10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
+ '@storybook/builder-vite': 10.3.6(esbuild@0.27.7)(rollup@4.59.0)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.4(esbuild@0.27.7)(lightningcss@1.32.0))
'@storybook/react': 10.3.6(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(storybook@10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(typescript@5.9.3)
empathic: 2.0.0
magic-string: 0.30.21
@@ -17793,7 +17766,7 @@ snapshots:
resolve: 1.22.11
storybook: 10.3.6(@testing-library/dom@8.20.1)(prettier@3.8.3)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
tsconfig-paths: 4.2.0
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
transitivePeerDependencies:
- esbuild
- rollup
@@ -17918,12 +17891,12 @@ snapshots:
postcss-selector-parser: 6.0.10
tailwindcss: 3.4.19(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3))
- '@tailwindcss/vite@4.2.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@tailwindcss/vite@4.2.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
'@tailwindcss/node': 4.2.4
'@tailwindcss/oxide': 4.2.4
tailwindcss: 4.2.4
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
'@tanstack/query-core@5.99.2': {}
@@ -18648,7 +18621,7 @@ snapshots:
- supports-color
- vitest
- '@vitejs/plugin-react@5.1.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitejs/plugin-react@5.1.4(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
@@ -18656,11 +18629,11 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-rc.3
'@types/babel__core': 7.20.5
react-refresh: 0.18.0
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
'@bcoe/v8-coverage': 1.0.2
'@vitest/utils': 4.0.18
@@ -18672,7 +18645,7 @@ snapshots:
obug: 2.1.1
std-env: 3.10.0
tinyrainbow: 3.0.3
- vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
'@vitest/coverage-v8@4.1.6(vitest@4.1.6)':
dependencies:
@@ -18686,7 +18659,7 @@ snapshots:
obug: 2.1.1
std-env: 4.1.0
tinyrainbow: 3.1.0
- vitest: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ vitest: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@vitest/eslint-plugin@1.6.17(@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)(vitest@4.1.6)':
dependencies:
@@ -18696,7 +18669,7 @@ snapshots:
optionalDependencies:
'@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)
typescript: 5.9.3
- vitest: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ vitest: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
transitivePeerDependencies:
- supports-color
@@ -18726,29 +18699,29 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.0.18(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/mocker@4.0.18(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.0.18
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
- '@vitest/mocker@4.1.6(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/mocker@4.1.6(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.6
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
- '@vitest/mocker@4.1.6(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/mocker@4.1.6(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))':
dependencies:
'@vitest/spy': 4.1.6
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -20004,7 +19977,7 @@ snapshots:
cors: 2.8.5
debug: 4.4.3
engine.io-parser: 5.2.3
- ws: 8.18.3
+ ws: 8.21.0
transitivePeerDependencies:
- bufferutil
- supports-color
@@ -20535,7 +20508,7 @@ snapshots:
eslint: 8.57.1
optionalDependencies:
'@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)
- vitest: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ vitest: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
transitivePeerDependencies:
- supports-color
- typescript
@@ -20993,7 +20966,7 @@ snapshots:
extend: 3.0.2
gaxios: 7.1.4
google-auth-library: 10.6.1
- qs: 6.14.2
+ qs: 6.15.2
url-template: 2.0.8
transitivePeerDependencies:
- supports-color
@@ -21024,7 +20997,7 @@ snapshots:
'@types/ws': 8.18.1
entities: 7.0.1
whatwg-mimetype: 3.0.0
- ws: 8.20.1
+ ws: 8.21.0
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@@ -21500,7 +21473,7 @@ snapshots:
jpeg-js@0.4.4: {}
- js-cookie@2.2.1: {}
+ js-cookie@3.0.7: {}
js-md4@0.3.2: {}
@@ -21705,7 +21678,7 @@ snapshots:
picomatch: 4.0.4
string-argv: 0.3.2
tinyexec: 1.1.2
- yaml: 2.8.2
+ yaml: 2.9.0
listr2@9.0.5:
dependencies:
@@ -22123,7 +22096,7 @@ snapshots:
preact-render-to-string: 5.2.6(preact@10.28.2)
react: 19.2.6
react-dom: 19.2.6(react@19.2.6)
- uuid: 8.3.2
+ uuid: 11.1.1
optionalDependencies:
nodemailer: 8.0.7
@@ -22631,7 +22604,7 @@ snapshots:
postcss-load-config@4.0.2(postcss@8.5.14)(ts-node@10.9.2(@types/node@25.4.0)(typescript@5.9.3)):
dependencies:
lilconfig: 3.1.3
- yaml: 2.8.2
+ yaml: 2.9.0
optionalDependencies:
postcss: 8.5.14
ts-node: 10.9.2(@types/node@25.4.0)(typescript@5.9.3)
@@ -22869,7 +22842,7 @@ snapshots:
pngjs: 5.0.0
yargs: 15.4.1
- qs@6.14.2:
+ qs@6.15.2:
dependencies:
side-channel: 1.1.0
@@ -23093,7 +23066,7 @@ snapshots:
copy-to-clipboard: 3.3.3
fast-deep-equal: 3.1.3
fast-shallow-equal: 1.0.0
- js-cookie: 2.2.1
+ js-cookie: 3.0.7
nano-css: 5.6.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6)
react: 19.2.6
react-dom: 19.2.6(react@19.2.6)
@@ -23603,7 +23576,7 @@ snapshots:
socket.io-adapter@2.5.5:
dependencies:
debug: 4.3.7
- ws: 8.17.1
+ ws: 8.21.0
transitivePeerDependencies:
- bufferutil
- supports-color
@@ -23777,7 +23750,7 @@ snapshots:
recast: 0.23.11
semver: 7.7.3
use-sync-external-store: 1.6.0(react@19.2.6)
- ws: 8.20.1
+ ws: 8.21.0
optionalDependencies:
prettier: 3.8.3
transitivePeerDependencies:
@@ -24419,10 +24392,6 @@ snapshots:
uuid@14.0.0: {}
- uuid@8.3.2: {}
-
- uuid@9.0.1: {}
-
v8-compile-cache-lib@3.0.1:
optional: true
@@ -24455,7 +24424,7 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite-plugin-dts@4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vite-plugin-dts@4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)):
dependencies:
'@microsoft/api-extractor': 7.57.6(@types/node@25.4.0)
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
@@ -24468,13 +24437,13 @@ snapshots:
magic-string: 0.30.21
typescript: 5.9.3
optionalDependencies:
- vite: 7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
transitivePeerDependencies:
- '@types/node'
- rollup
- supports-color
- vite-plugin-dts@4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vite-plugin-dts@4.5.4(@types/node@25.4.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)):
dependencies:
'@microsoft/api-extractor': 7.57.6(@types/node@25.4.0)
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
@@ -24487,13 +24456,13 @@ snapshots:
magic-string: 0.30.21
typescript: 5.9.3
optionalDependencies:
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
transitivePeerDependencies:
- '@types/node'
- rollup
- supports-color
- vite-prerender-plugin@0.5.12(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vite-prerender-plugin@0.5.12(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)):
dependencies:
kolorist: 1.8.0
magic-string: 0.30.21
@@ -24501,19 +24470,19 @@ snapshots:
simple-code-frame: 1.3.0
source-map: 0.7.6
stack-trace: 1.0.0-pre2
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
- vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vite-tsconfig-paths@6.1.1(typescript@5.9.3)(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)):
dependencies:
debug: 4.4.3
globrex: 0.1.2
tsconfck: 3.1.6(typescript@5.9.3)
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
transitivePeerDependencies:
- supports-color
- typescript
- vite@7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2):
+ vite@7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0):
dependencies:
esbuild: 0.27.7
fdir: 6.5.0(picomatch@4.0.4)
@@ -24528,9 +24497,9 @@ snapshots:
lightningcss: 1.32.0
terser: 5.47.1
tsx: 4.21.0
- yaml: 2.8.2
+ yaml: 2.9.0
- vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2):
+ vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0):
dependencies:
esbuild: 0.27.7
fdir: 6.5.0(picomatch@4.0.4)
@@ -24545,9 +24514,9 @@ snapshots:
lightningcss: 1.32.0
terser: 5.47.1
tsx: 4.21.0
- yaml: 2.8.2
+ yaml: 2.9.0
- vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2):
+ vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0):
dependencies:
lightningcss: 1.32.0
picomatch: 4.0.4
@@ -24561,18 +24530,18 @@ snapshots:
jiti: 2.6.1
terser: 5.47.1
tsx: 4.21.0
- yaml: 2.8.2
+ yaml: 2.9.0
vitest-mock-extended@3.1.1(typescript@5.9.3)(vitest@4.1.6):
dependencies:
ts-essentials: 10.1.1(typescript@5.9.3)
typescript: 5.9.3
- vitest: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ vitest: 4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
- vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2):
+ vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(happy-dom@20.8.9)(jiti@2.6.1)(jsdom@29.1.1(@noble/hashes@2.0.1))(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0):
dependencies:
'@vitest/expect': 4.0.18
- '@vitest/mocker': 4.0.18(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitest/mocker': 4.0.18(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@vitest/pretty-format': 4.0.18
'@vitest/runner': 4.0.18
'@vitest/snapshot': 4.0.18
@@ -24589,7 +24558,7 @@ snapshots:
tinyexec: 1.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.0
@@ -24609,10 +24578,10 @@ snapshots:
- tsx
- yaml
- vitest@4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vitest@4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.6
- '@vitest/mocker': 4.1.6(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitest/mocker': 4.1.6(vite@7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.6
'@vitest/runner': 4.1.6
'@vitest/snapshot': 4.1.6
@@ -24629,7 +24598,7 @@ snapshots:
tinyexec: 1.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.1.0
- vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 7.3.3(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.0
@@ -24640,10 +24609,10 @@ snapshots:
transitivePeerDependencies:
- msw
- vitest@4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vitest@4.1.6(@opentelemetry/api@1.9.0)(@types/node@25.4.0)(@vitest/coverage-v8@4.1.6)(happy-dom@20.8.9)(jsdom@29.1.1(@noble/hashes@2.0.1))(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.6
- '@vitest/mocker': 4.1.6(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitest/mocker': 4.1.6(vite@8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0))
'@vitest/pretty-format': 4.1.6
'@vitest/runner': 4.1.6
'@vitest/snapshot': 4.1.6
@@ -24660,7 +24629,7 @@ snapshots:
tinyexec: 1.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.1.0
- vite: 8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 8.0.12(@types/node@25.4.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.47.1)(tsx@4.21.0)(yaml@2.9.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@opentelemetry/api': 1.9.0
@@ -24894,11 +24863,7 @@ snapshots:
wrappy@1.0.2: {}
- ws@8.17.1: {}
-
- ws@8.18.3: {}
-
- ws@8.20.1: {}
+ ws@8.21.0: {}
wsl-utils@0.1.0:
dependencies:
@@ -24955,7 +24920,7 @@ snapshots:
yallist@5.0.0:
optional: true
- yaml@2.8.2: {}
+ yaml@2.9.0: {}
yargs-parser@18.1.3:
dependencies:
From 4f8fe44663d238b43b3d377a850426f628c820e0 Mon Sep 17 00:00:00 2001
From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com>
Date: Fri, 29 May 2026 13:09:01 +0530
Subject: [PATCH 4/7] fix: fixes ces rating question's email embed UI (#8180)
---
.../components/RatingSmiley/index.tsx | 21 +++++++---
.../components/preview-email-template.tsx | 40 +++++++++++--------
2 files changed, 40 insertions(+), 21 deletions(-)
diff --git a/apps/web/modules/analysis/components/RatingSmiley/index.tsx b/apps/web/modules/analysis/components/RatingSmiley/index.tsx
index 52f1072b6f22..f9602faa71d5 100644
--- a/apps/web/modules/analysis/components/RatingSmiley/index.tsx
+++ b/apps/web/modules/analysis/components/RatingSmiley/index.tsx
@@ -6,6 +6,7 @@ interface RatingSmileyProps {
range: number;
addColors?: boolean;
baseUrl?: string;
+ size?: number;
}
const getSmileyColor = (range: number, idx: number) => {
@@ -31,7 +32,8 @@ const getSmiley = (
range: number,
active: boolean,
addColors: boolean,
- baseUrl?: string
+ baseUrl?: string,
+ size: number = 24
): JSX.Element => {
const activeColor = "bg-rating-fill";
const inactiveColor = addColors ? getSmileyColor(range, idx) : "bg-fill-none";
@@ -49,6 +51,8 @@ const getSmiley = (
"grinning-squinting",
];
+ const containerSize = size * 2;
+
const icon = (
);
return (
-
+
{" "}
{/* NOSONAR S5256 - Need table layout for email compatibility (gmail) */}
@@ -83,6 +93,7 @@ export const RatingSmiley = ({
range,
addColors = false,
baseUrl,
+ size,
}: RatingSmileyProps): JSX.Element => {
let iconsIdx: number[] = [];
if (range === 10) iconsIdx = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
@@ -92,5 +103,5 @@ export const RatingSmiley = ({
else if (range === 4) iconsIdx = [4, 5, 6, 7];
else if (range === 3) iconsIdx = [4, 5, 7];
- return getSmiley(iconsIdx[idx], idx, range, active, addColors, baseUrl);
+ return getSmiley(iconsIdx[idx], idx, range, active, addColors, baseUrl, size);
};
diff --git a/apps/web/modules/email/components/preview-email-template.tsx b/apps/web/modules/email/components/preview-email-template.tsx
index 4a3b73d9c1b3..892f6768d5e7 100644
--- a/apps/web/modules/email/components/preview-email-template.tsx
+++ b/apps/web/modules/email/components/preview-email-template.tsx
@@ -66,6 +66,8 @@ import {
} from "../lib/preview-email-template-styles";
import { getNPSOptionColor, getRatingNumberOptionColor } from "../lib/utils";
+const EMAIL_RATING_SMILEY_SIZE = 40;
+
interface PreviewEmailTemplateProps {
survey: TSurvey;
surveyUrl: string;
@@ -108,6 +110,7 @@ const getRatingContent = (scale: string, i: number, range: number, isColorCoding
range={range}
addColors={isColorCodingEnabled}
baseUrl={WEBAPP_URL}
+ size={EMAIL_RATING_SMILEY_SIZE}
/>
);
}
@@ -434,6 +437,7 @@ export async function PreviewEmailTemplate({
@@ -500,7 +504,7 @@ export async function PreviewEmailTemplate({
: undefined,
height: ratingOptionHeight,
isConnected: isNumberRating,
- isTransparent: firstQuestion.scale === "star",
+ isTransparent: firstQuestion.scale === "star" || firstQuestion.scale === "smiley",
optionCount: firstQuestion.range,
optionIndex: i,
})}>
@@ -517,6 +521,7 @@ export async function PreviewEmailTemplate({
@@ -914,32 +919,35 @@ function PreviewScaleOptionColumn({
function PreviewScaleLabels({
defaultLanguageCode,
lowerLabel,
+ optionCount,
styleTokens,
upperLabel,
}: Readonly<{
defaultLanguageCode: string;
lowerLabel: Parameters[0];
+ optionCount: number;
styleTokens: PreviewEmailStyleTokens;
upperLabel: Parameters[0];
}>): React.JSX.Element {
+ const columnStyle = getScaleColumnStyle(optionCount);
+ const labelTextStyle = { ...getHelperLabelTextStyle(styleTokens), textAlign: "center" as const };
+
return (
-
-
- {getLocalizedValue(lowerLabel, defaultLanguageCode)}
-
-
-
-
- {getLocalizedValue(upperLabel, defaultLanguageCode)}
-
-
+ {Array.from({ length: optionCount }, (_, i) => {
+ const isFirst = i === 0;
+ const isLast = i === optionCount - 1;
+ return (
+
+ {isFirst || isLast ? (
+
+ {getLocalizedValue(isFirst ? lowerLabel : upperLabel, defaultLanguageCode)}
+
+ ) : null}
+
+ );
+ })}
);
From c3a089a6cacbe180be17d0364df7d48aec4c4881 Mon Sep 17 00:00:00 2001
From: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com>
Date: Fri, 29 May 2026 14:00:25 +0530
Subject: [PATCH 5/7] =?UTF-8?q?fix:=20move=20"Create=20new=20organization"?=
=?UTF-8?q?=20CTA=20to=20Organization=20=E2=86=92=20General=20(ENG-809)=20?=
=?UTF-8?q?(#8171)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/MainNavigation.tsx | 38 ++++------------
.../components/WorkspaceLayout.tsx | 1 -
.../components/organization-breadcrumb.tsx | 43 ++++---------------
.../components/CreateOrganizationCard.tsx | 25 +++++++++++
.../settings/organization/general/page.tsx | 22 ++++++----
5 files changed, 56 insertions(+), 73 deletions(-)
create mode 100644 apps/web/app/(app)/workspaces/[workspaceId]/settings/organization/general/components/CreateOrganizationCard.tsx
diff --git a/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx b/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx
index aa0817760aa9..aefadba594a3 100644
--- a/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx
+++ b/apps/web/app/(app)/workspaces/[workspaceId]/components/MainNavigation.tsx
@@ -42,7 +42,6 @@ import { getFormattedErrorMessage } from "@/lib/utils/helper";
import { useSignOut } from "@/modules/auth/hooks/use-sign-out";
import { TrialAlert } from "@/modules/ee/billing/components/trial-alert";
import { TRIAL_BASE_RESPONSE_LIMIT, TrialBannerNew } from "@/modules/ee/billing/components/trial-banner-new";
-import { CreateOrganizationModal } from "@/modules/organization/components/CreateOrganizationModal";
import { ProfileAvatar } from "@/modules/ui/components/avatars";
import { Badge } from "@/modules/ui/components/badge";
import { Button } from "@/modules/ui/components/button";
@@ -70,7 +69,6 @@ interface NavigationProps {
isDevelopment: boolean;
membershipRole?: TOrganizationRole;
publicDomain: string;
- isMultiOrgEnabled: boolean;
organizationWorkspacesLimit: number;
isLicenseActive: boolean;
isAccessControlAllowed: boolean;
@@ -86,7 +84,6 @@ export const MainNavigation = ({
isFormbricksCloud,
isDevelopment,
publicDomain,
- isMultiOrgEnabled,
organizationWorkspacesLimit,
isLicenseActive,
isAccessControlAllowed,
@@ -232,7 +229,6 @@ export const MainNavigation = ({
const [workspaceLoadError, setWorkspaceLoadError] = useState(null);
const [organizationLoadError, setOrganizationLoadError] = useState(null);
const [openCreateWorkspaceModal, setOpenCreateWorkspaceModal] = useState(false);
- const [openCreateOrganizationModal, setOpenCreateOrganizationModal] = useState(false);
const [openWorkspaceLimitModal, setOpenWorkspaceLimitModal] = useState(false);
const renderSwitcherError = (error: string, onRetry: () => void, retryLabel: string) => (
@@ -751,27 +747,17 @@ export const MainNavigation = ({
t("common.try_again")
)}
{!isLoadingOrganizations && !organizationLoadError && (
- <>
-
- {organizations.map((org) => (
- handleOrganizationChange(org.id)}
- className="cursor-pointer">
- {org.name}
-
- ))}
-
- {isMultiOrgEnabled && (
+
+ {organizations.map((org) => (
setOpenCreateOrganizationModal(true)}
- className="w-full cursor-pointer justify-between">
- {t("common.create_new_organization")}
-
+ key={org.id}
+ checked={org.id === organization.id}
+ onClick={() => handleOrganizationChange(org.id)}
+ className="cursor-pointer">
+ {org.name}
- )}
- >
+ ))}
+
)}
)}
- {openCreateOrganizationModal && (
-
- )}
>
);
};
diff --git a/apps/web/app/(app)/workspaces/[workspaceId]/components/WorkspaceLayout.tsx b/apps/web/app/(app)/workspaces/[workspaceId]/components/WorkspaceLayout.tsx
index 967d6826bb9e..93ef33123aa5 100644
--- a/apps/web/app/(app)/workspaces/[workspaceId]/components/WorkspaceLayout.tsx
+++ b/apps/web/app/(app)/workspaces/[workspaceId]/components/WorkspaceLayout.tsx
@@ -69,7 +69,6 @@ export const WorkspaceLayout = async ({ layoutData, children }: WorkspaceLayoutP
isDevelopment={IS_DEVELOPMENT}
membershipRole={membership.role}
publicDomain={publicDomain}
- isMultiOrgEnabled={isMultiOrgEnabled}
organizationWorkspacesLimit={organizationWorkspacesLimit}
isLicenseActive={active}
isAccessControlAllowed={isAccessControlAllowed}
diff --git a/apps/web/app/(app)/workspaces/[workspaceId]/components/organization-breadcrumb.tsx b/apps/web/app/(app)/workspaces/[workspaceId]/components/organization-breadcrumb.tsx
index da8c4d71d6fa..7f31194906e5 100644
--- a/apps/web/app/(app)/workspaces/[workspaceId]/components/organization-breadcrumb.tsx
+++ b/apps/web/app/(app)/workspaces/[workspaceId]/components/organization-breadcrumb.tsx
@@ -1,21 +1,13 @@
"use client";
import * as Sentry from "@sentry/nextjs";
-import {
- Building2Icon,
- ChevronDownIcon,
- ChevronRightIcon,
- Loader2,
- PlusIcon,
- SettingsIcon,
-} from "lucide-react";
+import { Building2Icon, ChevronDownIcon, ChevronRightIcon, Loader2, SettingsIcon } from "lucide-react";
import { useRouter } from "next/navigation";
import { useEffect, useState, useTransition } from "react";
import { useTranslation } from "react-i18next";
import { logger } from "@formbricks/logger";
import { getOrganizationsForSwitcherAction } from "@/app/(app)/workspaces/[workspaceId]/actions";
import { getFormattedErrorMessage } from "@/lib/utils/helper";
-import { CreateOrganizationModal } from "@/modules/organization/components/CreateOrganizationModal";
import { BreadcrumbItem } from "@/modules/ui/components/breadcrumb";
import {
DropdownMenu,
@@ -42,7 +34,6 @@ export const OrganizationBreadcrumb = ({
}: OrganizationBreadcrumbProps) => {
const { t } = useTranslation();
const [isOrganizationDropdownOpen, setIsOrganizationDropdownOpen] = useState(false);
- const [openCreateOrganizationModal, setOpenCreateOrganizationModal] = useState(false);
const router = useRouter();
const [isPending, startTransition] = useTransition();
const [isLoadingOrganizations, setIsLoadingOrganizations] = useState(false);
@@ -161,27 +152,17 @@ export const OrganizationBreadcrumb = ({
)}
{!isLoadingOrganizations && !loadError && (
- <>
-
- {organizations.map((org) => (
- handleOrganizationChange(org.id)}
- className="cursor-pointer">
- {org.name}
-
- ))}
-
- {isMultiOrgEnabled && (
+
+ {organizations.map((org) => (
setOpenCreateOrganizationModal(true)}
+ key={org.id}
+ checked={org.id === currentOrganizationId}
+ onClick={() => handleOrganizationChange(org.id)}
className="cursor-pointer">
- {t("common.create_new_organization")}
-
+ {org.name}
- )}
- >
+ ))}
+
)}
>
)}
@@ -198,12 +179,6 @@ export const OrganizationBreadcrumb = ({
)}
- {openCreateOrganizationModal && (
-
- )}
);
};
diff --git a/apps/web/app/(app)/workspaces/[workspaceId]/settings/organization/general/components/CreateOrganizationCard.tsx b/apps/web/app/(app)/workspaces/[workspaceId]/settings/organization/general/components/CreateOrganizationCard.tsx
new file mode 100644
index 000000000000..3581ccf19898
--- /dev/null
+++ b/apps/web/app/(app)/workspaces/[workspaceId]/settings/organization/general/components/CreateOrganizationCard.tsx
@@ -0,0 +1,25 @@
+"use client";
+
+import { useState } from "react";
+import { useTranslation } from "react-i18next";
+import { CreateOrganizationModal } from "@/modules/organization/components/CreateOrganizationModal";
+import { Alert, AlertButton, AlertDescription } from "@/modules/ui/components/alert";
+
+export const CreateOrganizationCard = () => {
+ const { t } = useTranslation();
+ const [open, setOpen] = useState(false);
+
+ return (
+
+
+
+ {t("workspace.settings.general.create_new_organization_description")}
+
+ setOpen(true)}>
+ {t("workspace.settings.general.create_new_organization")}
+
+
+ {open &&
}
+
+ );
+};
diff --git a/apps/web/app/(app)/workspaces/[workspaceId]/settings/organization/general/page.tsx b/apps/web/app/(app)/workspaces/[workspaceId]/settings/organization/general/page.tsx
index 9b24bdf48f60..04d7ec9f33f7 100644
--- a/apps/web/app/(app)/workspaces/[workspaceId]/settings/organization/general/page.tsx
+++ b/apps/web/app/(app)/workspaces/[workspaceId]/settings/organization/general/page.tsx
@@ -22,6 +22,7 @@ import { getWorkspaceAuth } from "@/modules/workspaces/lib/utils";
import packageJson from "@/package.json";
import { SettingsCard } from "../../components/SettingsCard";
import { AISettingsToggle } from "./components/AISettingsToggle";
+import { CreateOrganizationCard } from "./components/CreateOrganizationCard";
import { DeleteOrganization } from "./components/DeleteOrganization";
import { EditOrganizationNameForm } from "./components/EditOrganizationNameForm";
import { SecurityListTip } from "./components/SecurityListTip";
@@ -88,15 +89,18 @@ const Page = async (props: Readonly<{ params: Promise<{ workspaceId: string }> }
enterpriseLicenseRequestFormUrl={ENTERPRISE_LICENSE_REQUEST_FORM_URL}
/>
{isMultiOrgEnabled && (
-
-
-
+ <>
+
+
+
+
+ >
)}
From 49f0dbe4e1dd9d859f57364788c13176cec1761b Mon Sep 17 00:00:00 2001
From: Tiago <1585571+xernobyl@users.noreply.github.com>
Date: Fri, 29 May 2026 08:39:19 +0000
Subject: [PATCH 6/7] fix: restore Microsoft SSO account lookup (#8168)
---
apps/web/modules/auth/lib/adapter.test.ts | 172 ++++++++++++++++++
apps/web/modules/auth/lib/adapter.ts | 61 +++++++
apps/web/modules/auth/lib/authOptions.ts | 4 +-
.../ee/sso/lib/provider-normalization.test.ts | 10 +
.../ee/sso/lib/provider-normalization.ts | 8 +
5 files changed, 253 insertions(+), 2 deletions(-)
create mode 100644 apps/web/modules/auth/lib/adapter.test.ts
create mode 100644 apps/web/modules/auth/lib/adapter.ts
diff --git a/apps/web/modules/auth/lib/adapter.test.ts b/apps/web/modules/auth/lib/adapter.test.ts
new file mode 100644
index 000000000000..99e8ddcef348
--- /dev/null
+++ b/apps/web/modules/auth/lib/adapter.test.ts
@@ -0,0 +1,172 @@
+import { PrismaAdapter } from "@next-auth/prisma-adapter";
+import type { PrismaClient } from "@prisma/client";
+import type { AdapterAccount } from "next-auth/adapters";
+import { createRequire } from "node:module";
+import path from "node:path";
+import { beforeEach, describe, expect, test, vi } from "vitest";
+import { logger } from "@formbricks/logger";
+import { getNextAuthAdapter } from "./adapter";
+
+type TCallbackHandler = (params: unknown) => Promise
;
+
+const mocks = vi.hoisted(() => ({
+ getUserByAccount: vi.fn(),
+ getUserByEmail: vi.fn(),
+ linkAccount: vi.fn(),
+ unlinkAccount: vi.fn(),
+ createUser: vi.fn(),
+ createSession: vi.fn(),
+}));
+
+vi.mock("@formbricks/logger", () => ({
+ logger: {
+ error: vi.fn(),
+ warn: vi.fn(),
+ info: vi.fn(),
+ debug: vi.fn(),
+ },
+}));
+
+vi.mock("@next-auth/prisma-adapter", () => ({
+ PrismaAdapter: vi.fn(),
+}));
+
+const requireNextAuthModule = createRequire(import.meta.url);
+const nextAuthPackageRoot = path.dirname(requireNextAuthModule.resolve("next-auth"));
+const callbackHandler = requireNextAuthModule(path.join(nextAuthPackageRoot, "core/lib/callback-handler.js"))
+ .default as TCallbackHandler;
+
+const baseAdapter = {
+ getUserByAccount: mocks.getUserByAccount,
+ getUserByEmail: mocks.getUserByEmail,
+ linkAccount: mocks.linkAccount,
+ unlinkAccount: mocks.unlinkAccount,
+ createUser: mocks.createUser,
+ createSession: mocks.createSession,
+};
+
+const prismaClient = {} as PrismaClient;
+
+const azureAccount: AdapterAccount = {
+ userId: "user_1",
+ type: "oauth",
+ provider: "azure-ad",
+ providerAccountId: "sub-123",
+};
+
+describe("getNextAuthAdapter", () => {
+ beforeEach(() => {
+ vi.clearAllMocks();
+ vi.mocked(PrismaAdapter).mockReturnValue(baseAdapter as never);
+ });
+
+ test("normalizes the Microsoft provider id to the canonical value when resolving a user", async () => {
+ const user = { id: "user_1", email: "user@example.com" };
+ mocks.getUserByAccount.mockResolvedValue(user);
+
+ const adapter = getNextAuthAdapter(prismaClient);
+ const result = await adapter.getUserByAccount?.({
+ provider: "azure-ad",
+ providerAccountId: "sub-123",
+ });
+
+ expect(mocks.getUserByAccount).toHaveBeenCalledWith({
+ provider: "azuread",
+ providerAccountId: "sub-123",
+ });
+ expect(result).toBe(user);
+ });
+
+ test("passes already-canonical providers through unchanged", async () => {
+ mocks.getUserByAccount.mockResolvedValue(null);
+
+ const adapter = getNextAuthAdapter(prismaClient);
+ await adapter.getUserByAccount?.({ provider: "google", providerAccountId: "g-1" });
+
+ expect(mocks.getUserByAccount).toHaveBeenCalledWith({
+ provider: "google",
+ providerAccountId: "g-1",
+ });
+ });
+
+ test("normalizes the provider when linking and unlinking accounts", async () => {
+ const adapter = getNextAuthAdapter(prismaClient);
+
+ await adapter.linkAccount?.(azureAccount);
+ await adapter.unlinkAccount?.({ provider: "azure-ad", providerAccountId: "sub-123" });
+
+ expect(mocks.linkAccount).toHaveBeenCalledWith(
+ expect.objectContaining({ provider: "azuread", providerAccountId: "sub-123", userId: "user_1" })
+ );
+ expect(mocks.unlinkAccount).toHaveBeenCalledWith({
+ provider: "azuread",
+ providerAccountId: "sub-123",
+ });
+ });
+
+ test("lets the NextAuth OAuth callback resolve canonical Microsoft account rows", async () => {
+ const user = { id: "user_1", email: "user@example.com" };
+ const session = {
+ sessionToken: "session-token",
+ userId: user.id,
+ expires: new Date("2026-01-01T00:00:00.000Z"),
+ };
+
+ mocks.getUserByAccount.mockImplementation(async ({ provider }) => (provider === "azuread" ? user : null));
+ mocks.getUserByEmail.mockResolvedValue(user);
+ mocks.createSession.mockResolvedValue(session);
+
+ const result = await callbackHandler({
+ sessionToken: undefined,
+ profile: { id: "profile_1", email: user.email },
+ account: azureAccount,
+ options: {
+ adapter: getNextAuthAdapter(prismaClient),
+ events: {},
+ jwt: {},
+ provider: { id: "azure-ad" },
+ session: {
+ strategy: "database",
+ generateSessionToken: () => "session-token",
+ maxAge: 60 * 60,
+ },
+ },
+ });
+
+ expect(result).toEqual({
+ session,
+ user,
+ isNewUser: false,
+ });
+ expect(mocks.getUserByAccount).toHaveBeenCalledWith({
+ provider: "azuread",
+ providerAccountId: "sub-123",
+ });
+ expect(mocks.getUserByEmail).not.toHaveBeenCalled();
+ expect(mocks.linkAccount).not.toHaveBeenCalled();
+ });
+
+ test("logs and rethrows when a delegated adapter method fails", async () => {
+ const failure = new Error("database unavailable");
+ mocks.getUserByAccount.mockRejectedValue(failure);
+
+ const adapter = getNextAuthAdapter(prismaClient);
+
+ await expect(
+ adapter.getUserByAccount?.({ provider: "azure-ad", providerAccountId: "sub-123" })
+ ).rejects.toThrow(failure);
+ expect(logger.error).toHaveBeenCalledWith(failure, 'NextAuth Prisma adapter "getUserByAccount" failed');
+ });
+
+ test("preserves base adapter methods that do not key on the provider", () => {
+ const adapter = getNextAuthAdapter(prismaClient);
+ expect(adapter.createUser).toBe(mocks.createUser);
+ });
+
+ test("throws when the base adapter is missing required account methods", () => {
+ vi.mocked(PrismaAdapter).mockReturnValueOnce({} as never);
+ expect(() => getNextAuthAdapter(prismaClient)).toThrow(
+ "PrismaAdapter is missing the account methods required for SSO sign-in"
+ );
+ });
+});
diff --git a/apps/web/modules/auth/lib/adapter.ts b/apps/web/modules/auth/lib/adapter.ts
new file mode 100644
index 000000000000..cd93f2ce5b0c
--- /dev/null
+++ b/apps/web/modules/auth/lib/adapter.ts
@@ -0,0 +1,61 @@
+import { PrismaAdapter } from "@next-auth/prisma-adapter";
+import type { PrismaClient } from "@prisma/client";
+import type { Awaitable } from "next-auth";
+import type { Adapter, AdapterAccount } from "next-auth/adapters";
+import { logger } from "@formbricks/logger";
+import { resolveAccountProvider } from "@/modules/ee/sso/lib/provider-normalization";
+
+type TProviderAccountKey = Pick;
+
+const normalizeProviderKey = (value: T): T => ({
+ ...value,
+ provider: resolveAccountProvider(value.provider),
+});
+
+/**
+ * Wraps an adapter method so any failure is logged with context before being re-thrown.
+ * NextAuth turns the re-thrown error into the relevant auth error page, so we keep the
+ * original behaviour while making adapter-level failures observable.
+ */
+const withAdapterErrorLogging =
+ (method: string, handler: (...args: TArgs) => Awaitable) =>
+ async (...args: TArgs): Promise => {
+ try {
+ return await handler(...args);
+ } catch (error) {
+ logger.error(error, `NextAuth Prisma adapter "${method}" failed`);
+ throw error;
+ }
+ };
+
+/**
+ * NextAuth resolves accounts by each provider's NextAuth `id` — Microsoft's is "azure-ad" — but
+ * Formbricks persists the canonical `IdentityProvider` value ("azuread") in `Account.provider`.
+ * Left unreconciled, the adapter's native lookup misses the stored row, falls back to matching by
+ * email, and rejects the sign-in with `OAuthAccountNotLinked`.
+ *
+ * Normalizing the provider at the adapter boundary keeps the native lookup/link/unlink aligned with
+ * both the stored rows and the custom SSO sign-in handler for every provider, without leaking
+ * provider-specific naming into the call sites.
+ */
+export const getNextAuthAdapter = (prismaClient: PrismaClient): Adapter => {
+ const baseAdapter = PrismaAdapter(prismaClient);
+ const { getUserByAccount, linkAccount, unlinkAccount } = baseAdapter;
+
+ if (!getUserByAccount || !linkAccount || !unlinkAccount) {
+ throw new Error("PrismaAdapter is missing the account methods required for SSO sign-in");
+ }
+
+ return {
+ ...baseAdapter,
+ getUserByAccount: withAdapterErrorLogging("getUserByAccount", (providerAccount: TProviderAccountKey) =>
+ getUserByAccount(normalizeProviderKey(providerAccount))
+ ),
+ linkAccount: withAdapterErrorLogging("linkAccount", (account: AdapterAccount) =>
+ linkAccount(normalizeProviderKey(account))
+ ),
+ unlinkAccount: withAdapterErrorLogging("unlinkAccount", (providerAccount: TProviderAccountKey) =>
+ unlinkAccount(normalizeProviderKey(providerAccount))
+ ),
+ };
+};
diff --git a/apps/web/modules/auth/lib/authOptions.ts b/apps/web/modules/auth/lib/authOptions.ts
index e99d340a854e..7cf9fdef657c 100644
--- a/apps/web/modules/auth/lib/authOptions.ts
+++ b/apps/web/modules/auth/lib/authOptions.ts
@@ -1,4 +1,3 @@
-import { PrismaAdapter } from "@next-auth/prisma-adapter";
import type { NextAuthOptions } from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";
import { cookies } from "next/headers";
@@ -37,6 +36,7 @@ import {
import { UNKNOWN_DATA } from "@/modules/ee/audit-logs/types/audit-log";
import { getSSOProviders } from "@/modules/ee/sso/lib/providers";
import { handleSsoCallback } from "@/modules/ee/sso/lib/sso-handlers";
+import { getNextAuthAdapter } from "./adapter";
import { createBrevoCustomer } from "./brevo";
type TSignInCallbackParams = Parameters["signIn"]>>[0];
@@ -137,7 +137,7 @@ const handleEnterpriseSsoSignIn = async ({
};
export const authOptions: NextAuthOptions = {
- adapter: PrismaAdapter(prisma),
+ adapter: getNextAuthAdapter(prisma),
providers: [
CredentialsProvider({
id: "credentials",
diff --git a/apps/web/modules/ee/sso/lib/provider-normalization.test.ts b/apps/web/modules/ee/sso/lib/provider-normalization.test.ts
index d91456b1086a..f256e524152e 100644
--- a/apps/web/modules/ee/sso/lib/provider-normalization.test.ts
+++ b/apps/web/modules/ee/sso/lib/provider-normalization.test.ts
@@ -3,6 +3,7 @@ import {
getLegacySsoProviderAliases,
getSsoProviderLookupCandidates,
normalizeSsoProvider,
+ resolveAccountProvider,
} from "./provider-normalization";
describe("SSO provider normalization", () => {
@@ -25,4 +26,13 @@ describe("SSO provider normalization", () => {
expect(getSsoProviderLookupCandidates("azuread")).toEqual(["azuread", "azure-ad"]);
expect(getSsoProviderLookupCandidates("google")).toEqual(["google"]);
});
+
+ test("resolves NextAuth provider ids to the canonical Account.provider string", () => {
+ expect(resolveAccountProvider("azure-ad")).toBe("azuread");
+ expect(resolveAccountProvider("google")).toBe("google");
+ });
+
+ test("passes unknown providers through unchanged", () => {
+ expect(resolveAccountProvider("credentials")).toBe("credentials");
+ });
});
diff --git a/apps/web/modules/ee/sso/lib/provider-normalization.ts b/apps/web/modules/ee/sso/lib/provider-normalization.ts
index 377e5e0cba25..24a15ad7f119 100644
--- a/apps/web/modules/ee/sso/lib/provider-normalization.ts
+++ b/apps/web/modules/ee/sso/lib/provider-normalization.ts
@@ -37,3 +37,11 @@ export const getSsoProviderLookupCandidates = (provider: string): string[] => {
return [normalizedProvider, ...getLegacySsoProviderAliases(normalizedProvider)];
};
+
+/**
+ * Resolves a NextAuth provider id (e.g. "azure-ad") to the canonical provider string persisted
+ * in `Account.provider` (e.g. "azuread"). Unknown providers are returned unchanged so callers
+ * never drop a value they were handed.
+ */
+export const resolveAccountProvider = (provider: string): string =>
+ normalizeSsoProvider(provider) ?? provider;
From 6a7f56188be8195d6a1e7e9264b8cf970e6a7f8c Mon Sep 17 00:00:00 2001
From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com>
Date: Fri, 29 May 2026 14:28:35 +0530
Subject: [PATCH 7/7] fix: S3 internal server error for older images (#8195)
---
packages/storage/src/service.test.ts | 49 ++++++++++++++++++++++++++++
packages/storage/src/service.ts | 4 ++-
2 files changed, 52 insertions(+), 1 deletion(-)
diff --git a/packages/storage/src/service.test.ts b/packages/storage/src/service.test.ts
index 9cc8c83a9ebd..c4e3f04f3da6 100644
--- a/packages/storage/src/service.test.ts
+++ b/packages/storage/src/service.test.ts
@@ -565,6 +565,55 @@ describe("service.ts", () => {
}
});
+ test("returns file not found when S3 reports NotFound", async () => {
+ vi.doMock("./constants", () => mockConstants);
+
+ const notFoundError = new Error("not found");
+ notFoundError.name = "NotFound";
+ const mockS3Client = {
+ send: vi.fn().mockRejectedValueOnce(notFoundError),
+ };
+
+ vi.doMock("./client", () => ({
+ createS3Client: vi.fn(() => mockS3Client),
+ }));
+
+ const { getFileStream } = await import("./service");
+
+ const result = await getFileStream("responses/missing.pdf");
+
+ expect(result.ok).toBe(false);
+
+ if (!result.ok) {
+ expect(result.error.code).toBe("file_not_found_error");
+ }
+ });
+
+ test("returns file not found when S3 error carries a 404 status code", async () => {
+ vi.doMock("./constants", () => mockConstants);
+
+ const s3Error = Object.assign(new Error("not found"), {
+ $metadata: { httpStatusCode: 404 },
+ });
+ const mockS3Client = {
+ send: vi.fn().mockRejectedValueOnce(s3Error),
+ };
+
+ vi.doMock("./client", () => ({
+ createS3Client: vi.fn(() => mockS3Client),
+ }));
+
+ const { getFileStream } = await import("./service");
+
+ const result = await getFileStream("responses/missing.pdf");
+
+ expect(result.ok).toBe(false);
+
+ if (!result.ok) {
+ expect(result.error.code).toBe("file_not_found_error");
+ }
+ });
+
test("logs and returns unknown when streaming fails unexpectedly", async () => {
vi.doMock("./constants", () => mockConstants);
diff --git a/packages/storage/src/service.ts b/packages/storage/src/service.ts
index 03138dc04688..575903683d4c 100644
--- a/packages/storage/src/service.ts
+++ b/packages/storage/src/service.ts
@@ -191,7 +191,9 @@ export const getFileStream = async (fileKey: string): Promise