diff --git a/.gitignore b/.gitignore
index 023a0bd12..27c2b6a62 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,4 +35,3 @@ release-artifacts
*.tgz
.claude
-apps/appkit-minter/src/pages/example.tsx
diff --git a/apps/appkit-minter/src/core/configs/app-kit.ts b/apps/appkit-minter/src/core/configs/app-kit.ts
index 05acc9613..b9b08a2ed 100644
--- a/apps/appkit-minter/src/core/configs/app-kit.ts
+++ b/apps/appkit-minter/src/core/configs/app-kit.ts
@@ -6,9 +6,8 @@
*
*/
-import { AppKit, Network } from '@ton/appkit';
+import { AppKit, Network, tonConnect } from '@ton/appkit';
import { OmnistonSwapProvider } from '@ton/appkit/swap/omniston';
-import { TonConnectConnector } from '@ton/appkit';
import { ENV_TON_API_KEY_MAINNET, ENV_TON_API_KEY_TESTNET } from '@/core/configs/env';
@@ -28,7 +27,7 @@ export const appKit = new AppKit({
},
},
connectors: [
- new TonConnectConnector({
+ tonConnect({
tonConnectOptions: {
manifestUrl: 'https://tonconnect-sdk-demo-dapp.vercel.app/tonconnect-manifest.json',
},
diff --git a/apps/appkit-next/.gitignore b/apps/appkit-next/.gitignore
new file mode 100644
index 000000000..5ef6a5207
--- /dev/null
+++ b/apps/appkit-next/.gitignore
@@ -0,0 +1,41 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.*
+.yarn/*
+!.yarn/patches
+!.yarn/plugins
+!.yarn/releases
+!.yarn/versions
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+
+# env files (can opt-in for committing if needed)
+.env*
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/apps/appkit-next/README.md b/apps/appkit-next/README.md
new file mode 100644
index 000000000..66bb426ff
--- /dev/null
+++ b/apps/appkit-next/README.md
@@ -0,0 +1,36 @@
+This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
+
+## Getting Started
+
+First, run the development server:
+
+```bash
+npm run dev
+# or
+yarn dev
+# or
+pnpm dev
+# or
+bun dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+You can start editing the page by modifying `app/page.js`. The page auto-updates as you edit the file.
+
+This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
+
+## Learn More
+
+To learn more about Next.js, take a look at the following resources:
+
+- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
+- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
+
+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
+
+## Deploy on Vercel
+
+The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
+
+Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
diff --git a/apps/appkit-next/next.config.js b/apps/appkit-next/next.config.js
new file mode 100644
index 000000000..4678774e6
--- /dev/null
+++ b/apps/appkit-next/next.config.js
@@ -0,0 +1,4 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {};
+
+export default nextConfig;
diff --git a/apps/appkit-next/package.json b/apps/appkit-next/package.json
new file mode 100644
index 000000000..eef3709cc
--- /dev/null
+++ b/apps/appkit-next/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "appkit-next",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "clean": "rm -rf .next node_modules"
+ },
+ "dependencies": {
+ "@tanstack/react-query": "catalog:",
+ "@ton/appkit": "workspace:*",
+ "@ton/appkit-react": "workspace:*",
+ "@ton/core": "catalog:",
+ "@ton/crypto": "catalog:",
+ "@ton/walletkit": "workspace:*",
+ "@tonconnect/sdk": "catalog:",
+ "@tonconnect/ui": "catalog:",
+ "next": "16.1.6",
+ "react": "catalog:",
+ "react-dom": "catalog:"
+ },
+ "devDependencies": {
+ "@tailwindcss/postcss": "^4",
+ "@types/node": "^25.2.3",
+ "@types/react": "catalog:",
+ "@types/react-dom": "catalog:",
+ "tailwindcss": "^4",
+ "typescript": "^5.9.3"
+ }
+}
diff --git a/apps/appkit-next/postcss.config.mjs b/apps/appkit-next/postcss.config.mjs
new file mode 100644
index 000000000..f3926c273
--- /dev/null
+++ b/apps/appkit-next/postcss.config.mjs
@@ -0,0 +1,7 @@
+const config = {
+ plugins: {
+ '@tailwindcss/postcss': {},
+ },
+};
+
+export default config;
diff --git a/apps/appkit-next/public/file.svg b/apps/appkit-next/public/file.svg
new file mode 100644
index 000000000..004145cdd
--- /dev/null
+++ b/apps/appkit-next/public/file.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/appkit-next/public/globe.svg b/apps/appkit-next/public/globe.svg
new file mode 100644
index 000000000..567f17b0d
--- /dev/null
+++ b/apps/appkit-next/public/globe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/appkit-next/public/next.svg b/apps/appkit-next/public/next.svg
new file mode 100644
index 000000000..5174b28c5
--- /dev/null
+++ b/apps/appkit-next/public/next.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/appkit-next/public/vercel.svg b/apps/appkit-next/public/vercel.svg
new file mode 100644
index 000000000..770539603
--- /dev/null
+++ b/apps/appkit-next/public/vercel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/appkit-next/public/window.svg b/apps/appkit-next/public/window.svg
new file mode 100644
index 000000000..b2b2a44f6
--- /dev/null
+++ b/apps/appkit-next/public/window.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/appkit-next/src/app/favicon.ico b/apps/appkit-next/src/app/favicon.ico
new file mode 100644
index 000000000..718d6fea4
Binary files /dev/null and b/apps/appkit-next/src/app/favicon.ico differ
diff --git a/apps/appkit-next/src/app/globals.css b/apps/appkit-next/src/app/globals.css
new file mode 100644
index 000000000..a2dc41ece
--- /dev/null
+++ b/apps/appkit-next/src/app/globals.css
@@ -0,0 +1,26 @@
+@import "tailwindcss";
+
+:root {
+ --background: #ffffff;
+ --foreground: #171717;
+}
+
+@theme inline {
+ --color-background: var(--background);
+ --color-foreground: var(--foreground);
+ --font-sans: var(--font-geist-sans);
+ --font-mono: var(--font-geist-mono);
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --background: #0a0a0a;
+ --foreground: #ededed;
+ }
+}
+
+body {
+ background: var(--background);
+ color: var(--foreground);
+ font-family: Arial, Helvetica, sans-serif;
+}
diff --git a/apps/appkit-next/src/app/layout.tsx b/apps/appkit-next/src/app/layout.tsx
new file mode 100644
index 000000000..ce77d248c
--- /dev/null
+++ b/apps/appkit-next/src/app/layout.tsx
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) TonTech.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+import type { Metadata } from 'next';
+import type { ReactNode } from 'react';
+
+import AppKitContext from '../context';
+import './globals.css';
+
+export const metadata: Metadata = {
+ title: 'Create Next App',
+ description: 'Generated by create next app',
+};
+
+export default function RootLayout({ children }: { children: ReactNode }) {
+ return (
+
+
+ {children}
+
+
+ );
+}
diff --git a/apps/appkit-next/src/app/page.tsx b/apps/appkit-next/src/app/page.tsx
new file mode 100644
index 000000000..a78ad232d
--- /dev/null
+++ b/apps/appkit-next/src/app/page.tsx
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) TonTech.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+import { Balance } from '../components/balance';
+import { Header } from '../components/header';
+
+export default function Home() {
+ return (
+
+
+
+
+ );
+}
diff --git a/apps/appkit-next/src/components/balance.tsx b/apps/appkit-next/src/components/balance.tsx
new file mode 100644
index 000000000..263255690
--- /dev/null
+++ b/apps/appkit-next/src/components/balance.tsx
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) TonTech.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+'use client';
+
+import { useBalance } from '@ton/appkit-react';
+import type { FC } from 'react';
+
+export const Balance: FC = () => {
+ const { data: balance } = useBalance({
+ query: {
+ refetchInterval: 20000,
+ },
+ });
+
+ return (
+
+
Balance:
+
{balance ? `${balance} TON` : 'Loading...'}
+
+ );
+};
diff --git a/apps/appkit-next/src/components/header.tsx b/apps/appkit-next/src/components/header.tsx
new file mode 100644
index 000000000..7e43d44a1
--- /dev/null
+++ b/apps/appkit-next/src/components/header.tsx
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) TonTech.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+'use client';
+
+import { TonConnectButton } from '@ton/appkit-react';
+import type { FC } from 'react';
+
+export const Header: FC = () => {
+ return (
+
+
+
+ );
+};
diff --git a/apps/appkit-next/src/config/env.ts b/apps/appkit-next/src/config/env.ts
new file mode 100644
index 000000000..7e58e3ad2
--- /dev/null
+++ b/apps/appkit-next/src/config/env.ts
@@ -0,0 +1,12 @@
+/**
+ * Copyright (c) TonTech.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+export const ENV_TON_API_KEY_MAINNET =
+ process.env.NEXT_PUBLIC_TON_API_KEY ?? '25a9b2326a34b39a5fa4b264fb78fb4709e1bd576fc5e6b176639f5b71e94b0d';
+export const ENV_TON_API_KEY_TESTNET =
+ process.env.NEXT_PUBLIC_TON_API_TESTNET_KEY ?? 'd852b54d062f631565761042cccea87fa6337c41eb19b075e6c7fb88898a3992';
diff --git a/apps/appkit-next/src/context.tsx b/apps/appkit-next/src/context.tsx
new file mode 100644
index 000000000..1fcacc631
--- /dev/null
+++ b/apps/appkit-next/src/context.tsx
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) TonTech.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ *
+ */
+
+'use client';
+
+import { AppKit, Network, AppKitProvider, tonConnect } from '@ton/appkit-react';
+import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
+// import { useState, useEffect } from 'react';
+import type { ReactNode } from 'react';
+
+import { ENV_TON_API_KEY_MAINNET, ENV_TON_API_KEY_TESTNET } from './config/env';
+
+// Import styles
+import '@ton/appkit-react/styles.css';
+
+const appKit = new AppKit({
+ ssr: true,
+ networks: {
+ [Network.mainnet().chainId]: {
+ apiClient: {
+ url: 'https://toncenter.com',
+ key: ENV_TON_API_KEY_MAINNET,
+ },
+ },
+ [Network.testnet().chainId]: {
+ apiClient: {
+ url: 'https://testnet.toncenter.com',
+ key: ENV_TON_API_KEY_TESTNET,
+ },
+ },
+ },
+ connectors: [
+ tonConnect({
+ tonConnectOptions: {
+ manifestUrl: 'https://tonconnect-sdk-demo-dapp.vercel.app/tonconnect-manifest.json',
+ },
+ }),
+ ],
+});
+
+const queryClient = new QueryClient();
+
+export default function AppKitContext({ children }: { children: ReactNode }) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/apps/appkit-next/tsconfig.json b/apps/appkit-next/tsconfig.json
new file mode 100644
index 000000000..877b650fc
--- /dev/null
+++ b/apps/appkit-next/tsconfig.json
@@ -0,0 +1,41 @@
+{
+ "compilerOptions": {
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "react-jsx",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": [
+ "./src/*"
+ ]
+ },
+ "target": "ES2017"
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ ".next/types/**/*.ts",
+ ".next/dev/types/**/*.ts"
+ ],
+ "exclude": [
+ "node_modules"
+ ]
+}
diff --git a/demo/examples/src/appkit/actions/connectors/add-connector.ts b/demo/examples/src/appkit/actions/connectors/add-connector.ts
index c6e031ce1..2ba50c1ee 100644
--- a/demo/examples/src/appkit/actions/connectors/add-connector.ts
+++ b/demo/examples/src/appkit/actions/connectors/add-connector.ts
@@ -8,13 +8,13 @@
import type { AppKit } from '@ton/appkit';
import { addConnector } from '@ton/appkit';
-import { TonConnectConnector } from '@ton/appkit';
+import { tonConnect } from '@ton/appkit';
export const addConnectorExample = (appKit: AppKit) => {
// SAMPLE_START: ADD_CONNECTOR
const stopWatching = addConnector(
appKit,
- new TonConnectConnector({
+ tonConnect({
tonConnectOptions: {
manifestUrl: 'https://tonconnect-sdk-demo-dapp.vercel.app/tonconnect-manifest.json',
},
diff --git a/demo/examples/src/appkit/actions/connectors/connectors.test.ts b/demo/examples/src/appkit/actions/connectors/connectors.test.ts
index a0c415c53..223439185 100644
--- a/demo/examples/src/appkit/actions/connectors/connectors.test.ts
+++ b/demo/examples/src/appkit/actions/connectors/connectors.test.ts
@@ -50,7 +50,7 @@ describe('Connector Actions Examples (Integration)', () => {
} as unknown as Connector;
// Add connector to AppKit
- appKit.addConnector(mockConnector);
+ appKit.addConnector(() => mockConnector);
});
afterEach(() => {
diff --git a/demo/examples/src/appkit/components/providers/app-kit-provider.tsx b/demo/examples/src/appkit/components/providers/app-kit-provider.tsx
index 0190d7db8..fcb47adb4 100644
--- a/demo/examples/src/appkit/components/providers/app-kit-provider.tsx
+++ b/demo/examples/src/appkit/components/providers/app-kit-provider.tsx
@@ -8,7 +8,7 @@
import { AppKit, Network } from '@ton/appkit';
import { AppKitProvider } from '@ton/appkit-react';
-import { TonConnectConnector } from '@ton/appkit';
+import { tonConnect } from '@ton/appkit';
import type { FC } from 'react';
// Initialize AppKit (outside component)
@@ -19,7 +19,7 @@ const appKit = new AppKit({
},
},
connectors: [
- new TonConnectConnector({
+ tonConnect({
tonConnectOptions: { manifestUrl: 'https://your-app.com/tonconnect-manifest.json' },
}),
],
diff --git a/demo/examples/src/appkit/connectors/tonconnect/connector.ts b/demo/examples/src/appkit/connectors/tonconnect/connector.ts
index b3d4aedd2..b0de7f12b 100644
--- a/demo/examples/src/appkit/connectors/tonconnect/connector.ts
+++ b/demo/examples/src/appkit/connectors/tonconnect/connector.ts
@@ -7,7 +7,7 @@
*/
import { AppKit, Network } from '@ton/appkit';
-import { TonConnectConnector } from '@ton/appkit';
+import { tonConnect } from '@ton/appkit';
import { TonConnectUI } from '@tonconnect/ui';
export const tonConnectConnectorExample = async () => {
@@ -27,7 +27,7 @@ export const tonConnectConnectorExample = async () => {
},
},
},
- connectors: [new TonConnectConnector({ tonConnectUI })],
+ connectors: [tonConnect({ tonConnectUI })],
});
// SAMPLE_END: TON_CONNECT_CONNECTOR
@@ -46,7 +46,7 @@ export const tonConnectOptionsExample = async () => {
},
},
connectors: [
- new TonConnectConnector({
+ tonConnect({
tonConnectOptions: {
manifestUrl: 'https://my-app.com/tonconnect-manifest.json',
},
@@ -72,8 +72,8 @@ export const addConnectorExample = async () => {
},
});
- // 2. Initialize TonConnect connector
- const connector = new TonConnectConnector({
+ // 2. Initialize TonConnect connector function
+ const connector = tonConnect({
tonConnectOptions: {
manifestUrl: 'https://my-app.com/tonconnect-manifest.json',
},
diff --git a/demo/examples/src/appkit/setup-react.tsx b/demo/examples/src/appkit/setup-react.tsx
index bb33d4b98..c72dcb2d7 100644
--- a/demo/examples/src/appkit/setup-react.tsx
+++ b/demo/examples/src/appkit/setup-react.tsx
@@ -10,7 +10,7 @@
// SAMPLE_START: APPKIT_REACT_INIT
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
-import { AppKit, Network, TonConnectConnector } from '@ton/appkit';
+import { AppKit, Network, tonConnect } from '@ton/appkit';
import { AppKitProvider } from '@ton/appkit-react';
import type { FC } from 'react';
@@ -44,7 +44,7 @@ const appKit = new AppKit({
// },
},
connectors: [
- new TonConnectConnector({
+ tonConnect({
tonConnectOptions: {
manifestUrl: 'https://tonconnect-sdk-demo-dapp.vercel.app/tonconnect-manifest.json',
},
diff --git a/demo/examples/src/appkit/setup.ts b/demo/examples/src/appkit/setup.ts
index 83a09f1d8..7c9591e9f 100644
--- a/demo/examples/src/appkit/setup.ts
+++ b/demo/examples/src/appkit/setup.ts
@@ -6,8 +6,7 @@
*
*/
-import { AppKit, Network } from '@ton/appkit';
-import { TonConnectConnector } from '@ton/appkit';
+import { AppKit, Network, tonConnect } from '@ton/appkit';
export const setupAppKitExample = () => {
// SAMPLE_START: APPKIT_INIT
@@ -29,7 +28,7 @@ export const setupAppKitExample = () => {
// },
},
connectors: [
- new TonConnectConnector({
+ tonConnect({
tonConnectOptions: {
manifestUrl: 'https://tonconnect-sdk-demo-dapp.vercel.app/tonconnect-manifest.json',
},
diff --git a/eslint.config.js b/eslint.config.js
index f7c969dda..82d28e4e9 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -27,12 +27,17 @@ module.exports = [
'**/dist/*',
'**/*stryker*/*',
'**/*coverage*/*',
+ '**/.turbo/*',
+ '**/.next/*',
+ '**/.cursor/*',
+ '**/.changeset/*',
'**/dist-extension/*',
'**/dist-extension-chrome/*',
'**/dist-extension-firefox/*',
'**/Packages/TONWalletKit/*',
'**/TONWalletApp/TONWalletApp/*',
'**/androidkit/**',
+ '**/next-env.d.ts',
],
},
{
diff --git a/packages/appkit-react/.gitignore b/packages/appkit-react/.gitignore
index 37fffde8f..ae13eccde 100644
--- a/packages/appkit-react/.gitignore
+++ b/packages/appkit-react/.gitignore
@@ -28,4 +28,5 @@ dist-ssr
styled-system
styled-system-studio
+# Typescript
tsconfig.tsbuildinfo
diff --git a/packages/appkit-react/src/features/network/hooks/use-networks.ts b/packages/appkit-react/src/features/network/hooks/use-networks.ts
index 47d3084d2..b91d5e796 100644
--- a/packages/appkit-react/src/features/network/hooks/use-networks.ts
+++ b/packages/appkit-react/src/features/network/hooks/use-networks.ts
@@ -31,5 +31,5 @@ export const useNetworks = (): UseNetworksReturnType => {
return getNetworks(appKit);
}, [appKit]);
- return useSyncExternalStore(subscribe, getSnapshot, () => []);
+ return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
};
diff --git a/packages/appkit-react/src/features/wallets/hooks/use-connected-wallets.ts b/packages/appkit-react/src/features/wallets/hooks/use-connected-wallets.ts
index 6f9db71b7..d0edf039e 100644
--- a/packages/appkit-react/src/features/wallets/hooks/use-connected-wallets.ts
+++ b/packages/appkit-react/src/features/wallets/hooks/use-connected-wallets.ts
@@ -28,5 +28,5 @@ export const useConnectedWallets = (): UseConnectedWalletsReturnType => {
return getConnectedWallets(appKit);
}, [appKit]);
- return useSyncExternalStore(subscribe, getSnapshot, () => []);
+ return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
};
diff --git a/packages/appkit-react/src/features/wallets/hooks/use-connector-by-id.ts b/packages/appkit-react/src/features/wallets/hooks/use-connector-by-id.ts
index 52fafef06..143208573 100644
--- a/packages/appkit-react/src/features/wallets/hooks/use-connector-by-id.ts
+++ b/packages/appkit-react/src/features/wallets/hooks/use-connector-by-id.ts
@@ -26,5 +26,5 @@ export const useConnectorById = (id: string): Connector | undefined => {
return getConnectorById(appKit, { id });
}, [appKit, id]);
- return useSyncExternalStore(subscribe, getSnapshot, () => undefined);
+ return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
};
diff --git a/packages/appkit-react/src/features/wallets/hooks/use-connectors.ts b/packages/appkit-react/src/features/wallets/hooks/use-connectors.ts
index 1d6af5eb7..f6553b56c 100644
--- a/packages/appkit-react/src/features/wallets/hooks/use-connectors.ts
+++ b/packages/appkit-react/src/features/wallets/hooks/use-connectors.ts
@@ -28,5 +28,5 @@ export const useConnectors = (): UseConnectorsReturnType => {
return getConnectors(appKit);
}, [appKit]);
- return useSyncExternalStore(subscribe, getSnapshot, () => []);
+ return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
};
diff --git a/packages/appkit-react/src/features/wallets/hooks/use-selected-wallet.ts b/packages/appkit-react/src/features/wallets/hooks/use-selected-wallet.ts
index f87f89d2d..5963eb4bd 100644
--- a/packages/appkit-react/src/features/wallets/hooks/use-selected-wallet.ts
+++ b/packages/appkit-react/src/features/wallets/hooks/use-selected-wallet.ts
@@ -31,7 +31,7 @@ export const useSelectedWallet = (): UseSelectedWalletReturnType => {
return getSelectedWallet(appKit);
}, [appKit]);
- const wallet = useSyncExternalStore(subscribe, getSnapshot, () => null);
+ const wallet = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
const setWalletId = useCallback(
(walletId: string | null) => {
diff --git a/packages/appkit-react/src/tonconnect/tonconnect-bridge.tsx b/packages/appkit-react/src/tonconnect/tonconnect-bridge.tsx
index b38f11b9d..a9f6e6e51 100644
--- a/packages/appkit-react/src/tonconnect/tonconnect-bridge.tsx
+++ b/packages/appkit-react/src/tonconnect/tonconnect-bridge.tsx
@@ -28,11 +28,14 @@ export const TonConnectBridge: FC = ({
children,
connectorId = TONCONNECT_DEFAULT_CONNECTOR_ID,
}) => {
- const connector = useConnectorById(connectorId) as TonConnectConnector | undefined;
- const tonConnectUI = useMemo(() => connector?.tonConnectUI, [connector]);
+ const connector = useConnectorById(connectorId);
+ const tonConnectUI = useMemo(
+ () => (connector && connector.type === 'tonconnect' ? (connector as TonConnectConnector).tonConnectUI : null),
+ [connector],
+ );
if (!tonConnectUI) {
- return <>{children}>;
+ return children;
}
return {children} ;
diff --git a/packages/appkit/src/actions/connectors/add-connector.ts b/packages/appkit/src/actions/connectors/add-connector.ts
index 1558282ad..280a250f1 100644
--- a/packages/appkit/src/actions/connectors/add-connector.ts
+++ b/packages/appkit/src/actions/connectors/add-connector.ts
@@ -7,15 +7,15 @@
*/
import type { AppKit } from '../../core/app-kit';
-import type { Connector } from '../../types/connector';
+import type { CreateConnectorFn } from '../../types/connector';
-export type AddConnectorParameters = Connector;
+export type AddConnectorParameters = CreateConnectorFn;
export type AddConnectorReturnType = () => void;
/**
* Add a wallet connector
*/
-export const addConnector = (appKit: AppKit, connector: AddConnectorParameters): AddConnectorReturnType => {
- return appKit.addConnector(connector);
+export const addConnector = (appKit: AppKit, connectorFn: AddConnectorParameters): AddConnectorReturnType => {
+ return appKit.addConnector(connectorFn);
};
diff --git a/packages/appkit/src/connectors/tonconnect/connectors/ton-connect-connector.ts b/packages/appkit/src/connectors/tonconnect/connectors/ton-connect-connector.ts
index bc209101e..8141ddd00 100644
--- a/packages/appkit/src/connectors/tonconnect/connectors/ton-connect-connector.ts
+++ b/packages/appkit/src/connectors/tonconnect/connectors/ton-connect-connector.ts
@@ -15,6 +15,7 @@ import type { Connector, ConnectorMetadata } from '../../../types/connector';
import type { WalletInterface } from '../../../types/wallet';
import type { AppKitEmitter } from '../../../core/app-kit';
import { TONCONNECT_DEFAULT_CONNECTOR_ID } from '../constants/id';
+import { createConnector } from '../../../types/connector';
export interface TonConnectConnectorConfig {
id?: string;
@@ -23,77 +24,113 @@ export interface TonConnectConnectorConfig {
tonConnectUI?: TonConnectUI;
}
-export class TonConnectConnector implements Connector {
- readonly id: string;
- readonly type = 'tonconnect';
- readonly metadata: ConnectorMetadata;
- readonly tonConnectUI: TonConnectUI;
-
- private emitter: AppKitEmitter | null = null;
- private unsubscribeTonConnect: (() => void) | null = null;
-
- constructor(config: TonConnectConnectorConfig) {
- if (config.tonConnectOptions && config.tonConnectUI) {
- // eslint-disable-next-line no-console
- console.warn(
- 'TonConnectConnector: both tonConnectOptions and tonConnectUI are provided, using tonConnectUI',
- );
- }
+export type TonConnectConnector = Connector & {
+ type: 'tonconnect';
+ tonConnectUI: TonConnectUI | null;
+};
- this.id = config.id ?? TONCONNECT_DEFAULT_CONNECTOR_ID;
- this.tonConnectUI = config?.tonConnectUI ?? new TonConnectUI(config.tonConnectOptions);
- this.metadata = {
- name: 'TonConnect',
- iconUrl: 'https://avatars.githubusercontent.com/u/113980577',
- ...config.metadata,
- };
- }
+export const tonConnect = (config: TonConnectConnectorConfig) => {
+ return createConnector(({ emitter, ssr }: { emitter: AppKitEmitter; ssr?: boolean }): TonConnectConnector => {
+ let originalTonConnectUI: TonConnectUI | null = null;
+ let unsubscribeTonConnect: (() => void) | null = null;
+
+ const id = config.id ?? TONCONNECT_DEFAULT_CONNECTOR_ID;
- async initialize(emitter: AppKitEmitter): Promise {
- this.emitter = emitter;
+ function getTonConnectUI() {
+ if (originalTonConnectUI) {
+ return originalTonConnectUI;
+ }
- // Subscribe to TonConnect status changes
- this.unsubscribeTonConnect = this.tonConnectUI.onStatusChange((wallet) => {
- const wallets = this.getConnectedWallets();
+ if (ssr && typeof window === 'undefined') {
+ return null;
+ }
- if (wallet) {
- this.emitter?.emit(CONNECTOR_EVENTS.CONNECTED, { wallets, connectorId: this.id }, this.id);
+ // check if we have pre-defined UI
+ if (config.tonConnectUI) {
+ originalTonConnectUI = config.tonConnectUI;
} else {
- this.emitter?.emit(CONNECTOR_EVENTS.DISCONNECTED, { connectorId: this.id }, this.id);
+ originalTonConnectUI = new TonConnectUI(config.tonConnectOptions);
}
- });
-
- // Restore existing connection
- await this.tonConnectUI.connector.restoreConnection();
- }
-
- destroy(): void {
- this.unsubscribeTonConnect?.();
- this.unsubscribeTonConnect = null;
- this.emitter = null;
- }
-
- async connectWallet(): Promise {
- await this.tonConnectUI.openModal();
- }
-
- async disconnectWallet(): Promise {
- await this.tonConnectUI.disconnect();
- }
-
- getConnectedWallets(): WalletInterface[] {
- if (this.tonConnectUI.connected && this.tonConnectUI.wallet) {
- const wallet = this.tonConnectUI.wallet;
-
- const walletAdapter = new TonConnectWalletAdapter({
- connectorId: this.id,
- tonConnectWallet: wallet,
- tonConnectUI: this.tonConnectUI,
- });
- return [walletAdapter];
+ setupListeners();
+
+ // restore connection
+ if (originalTonConnectUI) {
+ originalTonConnectUI.connector.restoreConnection();
+ }
+
+ return originalTonConnectUI;
}
- return [];
- }
-}
+ function getConnectedWallets(): WalletInterface[] {
+ const ui = getTonConnectUI();
+
+ if (ui && ui.connected && ui.wallet) {
+ const wallet = ui.wallet;
+
+ return [
+ new TonConnectWalletAdapter({
+ connectorId: id,
+ tonConnectWallet: wallet,
+ tonConnectUI: ui,
+ }),
+ ];
+ }
+
+ return [];
+ }
+
+ function setupListeners() {
+ if (!originalTonConnectUI || unsubscribeTonConnect) {
+ return;
+ }
+
+ unsubscribeTonConnect = originalTonConnectUI.onStatusChange((wallet) => {
+ const wallets = getConnectedWallets();
+
+ if (wallet) {
+ emitter.emit(CONNECTOR_EVENTS.CONNECTED, { wallets, connectorId: id }, id);
+ } else {
+ emitter.emit(CONNECTOR_EVENTS.DISCONNECTED, { connectorId: id }, id);
+ }
+ });
+ }
+
+ return {
+ id,
+ type: 'tonconnect',
+ metadata: {
+ name: 'TonConnect',
+ iconUrl: 'https://avatars.githubusercontent.com/u/113980577',
+ ...config.metadata,
+ },
+
+ get tonConnectUI() {
+ return getTonConnectUI();
+ },
+
+ getConnectedWallets,
+
+ async connectWallet(): Promise {
+ const ui = getTonConnectUI();
+
+ if (ui) {
+ await ui.openModal();
+ }
+ },
+
+ async disconnectWallet(): Promise {
+ const ui = getTonConnectUI();
+
+ if (ui) {
+ await ui.disconnect();
+ }
+ },
+
+ destroy() {
+ unsubscribeTonConnect?.();
+ originalTonConnectUI = null;
+ },
+ };
+ });
+};
diff --git a/packages/appkit/src/connectors/tonconnect/index.ts b/packages/appkit/src/connectors/tonconnect/index.ts
index 37e0d0991..81524eeb8 100644
--- a/packages/appkit/src/connectors/tonconnect/index.ts
+++ b/packages/appkit/src/connectors/tonconnect/index.ts
@@ -26,6 +26,9 @@ export { TonConnectWalletAdapter } from './adapters/ton-connect-wallet-adapter';
export type { TonConnectWalletAdapterConfig } from './adapters/ton-connect-wallet-adapter';
// Connector exports
-export { TonConnectConnector } from './connectors/ton-connect-connector';
+export {
+ tonConnect,
+ type TonConnectConnectorConfig,
+ type TonConnectConnector,
+} from './connectors/ton-connect-connector';
export { TONCONNECT_DEFAULT_CONNECTOR_ID } from './constants/id';
-export type { TonConnectConnectorConfig } from './connectors/ton-connect-connector';
diff --git a/packages/appkit/src/core/app-kit/services/app-kit.ts b/packages/appkit/src/core/app-kit/services/app-kit.ts
index 93ec8a986..38901fff9 100644
--- a/packages/appkit/src/core/app-kit/services/app-kit.ts
+++ b/packages/appkit/src/core/app-kit/services/app-kit.ts
@@ -11,7 +11,7 @@ import { Network, SwapManager } from '@ton/walletkit';
import type { Provider } from 'src/types/provider';
import type { AppKitConfig } from '../types/config';
-import type { Connector } from '../../../types/connector';
+import type { Connector, CreateConnectorFn } from '../../../types/connector';
import { Emitter } from '../../emitter';
import { CONNECTOR_EVENTS, WALLETS_EVENTS } from '../constants/events';
import type { AppKitEmitter, AppKitEvents } from '../types/events';
@@ -64,7 +64,11 @@ export class AppKit {
/**
* Add a wallet connector
*/
- addConnector(connector: Connector): () => void {
+ /**
+ * Add a wallet connector
+ */
+ addConnector(createConnectorFn: CreateConnectorFn): () => void {
+ const connector = createConnectorFn({ emitter: this.emitter, ssr: this.config.ssr });
const id = connector.id;
const oldConnector = this.connectors.find((c) => c.id === id);
@@ -73,7 +77,6 @@ export class AppKit {
}
this.connectors.push(connector);
- connector.initialize(this.emitter, this.networkManager);
return () => {
this.removeConnector(connector);
diff --git a/packages/appkit/src/core/app-kit/types/config.ts b/packages/appkit/src/core/app-kit/types/config.ts
index 75b69617e..2f8e64984 100644
--- a/packages/appkit/src/core/app-kit/types/config.ts
+++ b/packages/appkit/src/core/app-kit/types/config.ts
@@ -8,7 +8,7 @@
import type { NetworkAdapters } from '@ton/walletkit';
-import type { Connector } from '../../../types/connector';
+import type { CreateConnectorFn } from '../../../types/connector';
import type { Provider } from '../../../types/provider';
/**
@@ -23,6 +23,19 @@ export interface AppKitConfig {
* Values contain apiClient configuration (url and optional API key)
*/
networks?: NetworkAdapters;
- connectors?: Connector[];
+
+ /**
+ * Wallet connectors
+ */
+ connectors?: CreateConnectorFn[];
+
+ /**
+ * Wallet providers
+ */
providers?: Provider[];
+
+ /**
+ * Enable server-side rendering support
+ */
+ ssr?: boolean;
}
diff --git a/packages/appkit/src/types/connector.ts b/packages/appkit/src/types/connector.ts
index c5c52921b..87750a223 100644
--- a/packages/appkit/src/types/connector.ts
+++ b/packages/appkit/src/types/connector.ts
@@ -6,8 +6,6 @@
*
*/
-import type { NetworkManager } from '@ton/walletkit';
-
import type { WalletInterface } from './wallet';
import type { AppKitEmitter } from '../core/app-kit';
@@ -18,14 +16,11 @@ export interface Connector {
/** Provider unique identifier */
readonly id: string;
- /** Protocol type (e.g. 'tonconnect', 'ledger', 'mnemonic') */
+ /** Protocol type (e.g. 'tonconnect') */
readonly type: string;
readonly metadata: ConnectorMetadata;
- /** Initialize connector (restore connections, setup event listeners) */
- initialize(emitter: AppKitEmitter, networkManager: NetworkManager): Promise;
-
/** Cleanup connector resources */
destroy(): void;
@@ -43,3 +38,9 @@ export interface ConnectorMetadata {
name: string;
iconUrl?: string;
}
+
+export type CreateConnectorFn = (config: { emitter: AppKitEmitter; ssr?: boolean }) => Connector;
+
+export function createConnector(createConnectorFn: CreateConnectorFn): CreateConnectorFn {
+ return createConnectorFn;
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c03e44df7..60ad59979 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -59,10 +59,10 @@ importers:
devDependencies:
'@changesets/cli':
specifier: ^2.29.8
- version: 2.29.8(@types/node@24.10.13)
+ version: 2.29.8(@types/node@25.2.3)
'@ton/toolchain':
specifier: github:the-ton-tech/toolchain#v1.5.0
- version: https://codeload.github.com/the-ton-tech/toolchain/tar.gz/31376da778155bd0984d68abf2a46dce417bacb8(jest@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1))(jiti@2.6.1)(typescript@5.9.3)
+ version: https://codeload.github.com/the-ton-tech/toolchain/tar.gz/31376da778155bd0984d68abf2a46dce417bacb8(jest@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1))(jiti@2.6.1)(typescript@5.9.3)
eslint:
specifier: ^9.39.2
version: 9.39.2(jiti@2.6.1)
@@ -89,7 +89,7 @@ importers:
version: 0.7.8
'@tailwindcss/vite':
specifier: ^4.1.18
- version: 4.1.18(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ version: 4.1.18(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
'@ton/appkit':
specifier: workspace:*
version: link:../../packages/appkit
@@ -159,7 +159,7 @@ importers:
version: 19.2.3(@types/react@19.2.8)
'@vitejs/plugin-react':
specifier: ^5.1.2
- version: 5.1.4(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ version: 5.1.4(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
eslint:
specifier: ^9.39.2
version: 9.39.2(jiti@2.6.1)
@@ -180,11 +180,66 @@ importers:
version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
vite-bundle-analyzer:
specifier: ^1.3.2
version: 1.3.2
+ apps/appkit-next:
+ dependencies:
+ '@tanstack/react-query':
+ specifier: 'catalog:'
+ version: 5.90.20(react@19.2.3)
+ '@ton/appkit':
+ specifier: workspace:*
+ version: link:../../packages/appkit
+ '@ton/appkit-react':
+ specifier: workspace:*
+ version: link:../../packages/appkit-react
+ '@ton/core':
+ specifier: 'catalog:'
+ version: 0.63.0(@ton/crypto@3.3.0)
+ '@ton/crypto':
+ specifier: 'catalog:'
+ version: 3.3.0
+ '@ton/walletkit':
+ specifier: workspace:*
+ version: link:../../packages/walletkit
+ '@tonconnect/sdk':
+ specifier: 'catalog:'
+ version: 3.4.1
+ '@tonconnect/ui':
+ specifier: 'catalog:'
+ version: 2.4.1
+ next:
+ specifier: 16.1.6
+ version: 16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react:
+ specifier: 'catalog:'
+ version: 19.2.3
+ react-dom:
+ specifier: 'catalog:'
+ version: 19.2.3(react@19.2.3)
+ devDependencies:
+ '@tailwindcss/postcss':
+ specifier: ^4
+ version: 4.1.18
+ '@types/node':
+ specifier: ^25.2.3
+ version: 25.2.3
+ '@types/react':
+ specifier: 'catalog:'
+ version: 19.2.8
+ '@types/react-dom':
+ specifier: 'catalog:'
+ version: 19.2.3(@types/react@19.2.8)
+ tailwindcss:
+ specifier: ^4
+ version: 4.1.18
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
apps/demo-wallet:
dependencies:
'@demo/v4ledger-adapter':
@@ -201,7 +256,7 @@ importers:
version: 6.30.0
'@tailwindcss/vite':
specifier: ^4.1.18
- version: 4.1.18(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ version: 4.1.18(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
'@ton/core':
specifier: 'catalog:'
version: 0.63.0(@ton/crypto@3.3.0)
@@ -213,7 +268,7 @@ importers:
version: link:../../packages/walletkit
'@truecarry/vite-plugin-web-extension':
specifier: ^4.5.1
- version: 4.5.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)
+ version: 4.5.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)
'@truecarry/webext-bridge':
specifier: ^6.0.2
version: 6.0.2
@@ -286,7 +341,7 @@ importers:
version: 0.12.4
'@vitejs/plugin-react':
specifier: ^5.1.2
- version: 5.1.4(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ version: 5.1.4(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
allure-js-commons:
specifier: ^3.4.5
version: 3.4.5(allure-playwright@3.4.5(@playwright/test@1.58.2))
@@ -319,7 +374,7 @@ importers:
version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
vite-bundle-analyzer:
specifier: ^1.3.2
version: 1.3.2
@@ -586,7 +641,7 @@ importers:
version: 20.6.1
vitest:
specifier: ^4.0.17
- version: 4.0.18(@types/node@24.10.13)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@types/node@25.2.3)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
demo/v4ledger-adapter:
dependencies:
@@ -676,7 +731,7 @@ importers:
version: 5.8.3
vitest:
specifier: ^4.0.17
- version: 4.0.18(@types/node@24.10.13)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@types/node@25.2.3)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
packages/appkit-react:
dependencies:
@@ -698,13 +753,13 @@ importers:
devDependencies:
'@storybook/addon-docs':
specifier: 10.2.8
- version: 10.2.8(@types/react@19.2.8)(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ version: 10.2.8(@types/react@19.2.8)(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
'@storybook/react':
specifier: 10.2.8
version: 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)
'@storybook/react-vite':
specifier: 10.2.8
- version: 10.2.8(esbuild@0.27.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ version: 10.2.8(esbuild@0.27.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
'@storybook/test':
specifier: ^8.6.15
version: 8.6.15(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
@@ -737,10 +792,10 @@ importers:
version: 5.9.3
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
vite-plugin-node-polyfills:
specifier: ^0.25.0
- version: 0.25.0(rollup@4.57.1)(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ version: 0.25.0(rollup@4.57.1)(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
packages/mcp:
dependencies:
@@ -802,7 +857,7 @@ importers:
version: 30.2.0
'@stryker-mutator/core':
specifier: ^9.4.0
- version: 9.5.1(@types/node@24.10.13)
+ version: 9.5.1(@types/node@25.2.3)
'@ton/core':
specifier: 'catalog:'
version: 0.63.0(@ton/crypto@3.3.0)
@@ -835,7 +890,7 @@ importers:
version: 9.39.2(jiti@2.6.1)
jest:
specifier: ^30.2.0
- version: 30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))
+ version: 30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))
node-hid:
specifier: ^3.2.0
version: 3.2.0
@@ -847,13 +902,13 @@ importers:
version: 13.2.16(magicast@0.5.1)
ts-jest:
specifier: ^29.4.6
- version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3)))(typescript@5.9.3)
+ version: 29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)))(typescript@5.9.3)
ts-json-schema-generator:
specifier: ^2.4.0
version: 2.4.0
ts-node:
specifier: ^10.9.2
- version: 10.9.2(@types/node@24.10.13)(typescript@5.9.3)
+ version: 10.9.2(@types/node@25.2.3)(typescript@5.9.3)
tsx:
specifier: ^4.21.0
version: 4.21.0
@@ -862,13 +917,13 @@ importers:
version: 5.9.3
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
vite-bundle-analyzer:
specifier: ^1.3.2
version: 1.3.2
vitest:
specifier: ^4.0.17
- version: 4.0.18(@types/node@24.10.13)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 4.0.18(@types/node@25.2.3)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
optionalDependencies:
'@ston-fi/omniston-sdk':
specifier: ^0.7.8
@@ -897,7 +952,7 @@ importers:
version: 5.9.3
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
packages/walletkit-ios-bridge:
dependencies:
@@ -928,7 +983,7 @@ importers:
version: 5.9.3
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ version: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
packages:
@@ -946,6 +1001,10 @@ packages:
'@adobe/css-tools@4.4.4':
resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==}
+ '@alloc/quick-lru@5.2.0':
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ engines: {node: '>=10'}
+
'@anthropic-ai/sdk@0.52.0':
resolution: {integrity: sha512-d4c+fg+xy9e46c8+YnrrgIQR45CZlAi7PwdzIfDXDM6ACxEZli1/fxhURsq30ZpMZy6LvSkr41jGq5aF5TD7rQ==}
hasBin: true
@@ -2023,6 +2082,143 @@ packages:
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
+ '@img/colour@1.0.0':
+ resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==}
+ engines: {node: '>=18'}
+
+ '@img/sharp-darwin-arm64@0.34.5':
+ resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@img/sharp-darwin-x64@0.34.5':
+ resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
+ resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@img/sharp-libvips-darwin-x64@1.2.4':
+ resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@img/sharp-libvips-linux-arm64@1.2.4':
+ resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-arm@1.2.4':
+ resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==}
+ cpu: [arm]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
+ resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
+ resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-s390x@1.2.4':
+ resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-x64@1.2.4':
+ resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
+ resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-linux-arm64@0.34.5':
+ resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-linux-arm@0.34.5':
+ resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@img/sharp-linux-ppc64@0.34.5':
+ resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@img/sharp-linux-riscv64@0.34.5':
+ resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@img/sharp-linux-s390x@0.34.5':
+ resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [s390x]
+ os: [linux]
+
+ '@img/sharp-linux-x64@0.34.5':
+ resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-linuxmusl-arm64@0.34.5':
+ resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-linuxmusl-x64@0.34.5':
+ resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-wasm32@0.34.5':
+ resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [wasm32]
+
+ '@img/sharp-win32-arm64@0.34.5':
+ resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [win32]
+
+ '@img/sharp-win32-ia32@0.34.5':
+ resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ia32]
+ os: [win32]
+
+ '@img/sharp-win32-x64@0.34.5':
+ resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [win32]
+
'@inquirer/ansi@2.0.3':
resolution: {integrity: sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw==}
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
@@ -2398,6 +2594,57 @@ packages:
'@napi-rs/wasm-runtime@1.1.1':
resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==}
+ '@next/env@16.1.6':
+ resolution: {integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==}
+
+ '@next/swc-darwin-arm64@16.1.6':
+ resolution: {integrity: sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@next/swc-darwin-x64@16.1.6':
+ resolution: {integrity: sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@next/swc-linux-arm64-gnu@16.1.6':
+ resolution: {integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@next/swc-linux-arm64-musl@16.1.6':
+ resolution: {integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@next/swc-linux-x64-gnu@16.1.6':
+ resolution: {integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@next/swc-linux-x64-musl@16.1.6':
+ resolution: {integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@next/swc-win32-arm64-msvc@16.1.6':
+ resolution: {integrity: sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@next/swc-win32-x64-msvc@16.1.6':
+ resolution: {integrity: sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
'@noble/curves@1.9.7':
resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
engines: {node: ^14.21.3 || >=16}
@@ -3616,6 +3863,9 @@ packages:
'@stryker-mutator/util@9.5.1':
resolution: {integrity: sha512-KXmbEeXF3Z20P+9W8i/f1j+U5nWSm9oeb1VNV6j5/RfzhnMKWZCrvojJqRfnxdkCiMIFWMAHSlM9K0mfFZLNXQ==}
+ '@swc/helpers@0.5.15':
+ resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
+
'@tailwindcss/node@4.1.18':
resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==}
@@ -3701,6 +3951,9 @@ packages:
resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==}
engines: {node: '>= 10'}
+ '@tailwindcss/postcss@4.1.18':
+ resolution: {integrity: sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==}
+
'@tailwindcss/vite@4.1.18':
resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==}
peerDependencies:
@@ -3914,8 +4167,8 @@ packages:
'@types/node@22.19.11':
resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==}
- '@types/node@24.10.13':
- resolution: {integrity: sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==}
+ '@types/node@25.2.3':
+ resolution: {integrity: sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==}
'@types/react-dom@19.2.3':
resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
@@ -7452,6 +7705,27 @@ packages:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
+ next@16.1.6:
+ resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==}
+ engines: {node: '>=20.9.0'}
+ hasBin: true
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+ '@playwright/test': ^1.51.1
+ babel-plugin-react-compiler: '*'
+ react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
+ react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
+ sass: ^1.3.0
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ '@playwright/test':
+ optional: true
+ babel-plugin-react-compiler:
+ optional: true
+ sass:
+ optional: true
+
node-abi@3.77.0:
resolution: {integrity: sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==}
engines: {node: '>=10'}
@@ -7871,6 +8145,10 @@ packages:
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines: {node: '>= 0.4'}
+ postcss@8.4.31:
+ resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
postcss@8.4.49:
resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
engines: {node: ^10 || ^12 || >=14}
@@ -8606,6 +8884,10 @@ packages:
shallowequal@1.1.0:
resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==}
+ sharp@0.34.5:
+ resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -8895,6 +9177,19 @@ packages:
stubborn-utils@1.0.2:
resolution: {integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==}
+ styled-jsx@5.1.6:
+ resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@babel/core': '*'
+ babel-plugin-macros: '*'
+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ babel-plugin-macros:
+ optional: true
+
sucrase@3.35.1:
resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -9954,6 +10249,8 @@ snapshots:
'@adobe/css-tools@4.4.4': {}
+ '@alloc/quick-lru@5.2.0': {}
+
'@anthropic-ai/sdk@0.52.0': {}
'@asamuzakjp/css-color@4.1.2':
@@ -10761,7 +11058,7 @@ snapshots:
dependencies:
'@changesets/types': 6.1.0
- '@changesets/cli@2.29.8(@types/node@24.10.13)':
+ '@changesets/cli@2.29.8(@types/node@25.2.3)':
dependencies:
'@changesets/apply-release-plan': 7.0.14
'@changesets/assemble-release-plan': 6.0.9
@@ -10777,7 +11074,7 @@ snapshots:
'@changesets/should-skip-package': 0.1.2
'@changesets/types': 6.1.0
'@changesets/write': 0.4.0
- '@inquirer/external-editor': 1.0.3(@types/node@24.10.13)
+ '@inquirer/external-editor': 1.0.3(@types/node@25.2.3)
'@manypkg/get-packages': 1.1.3
ansi-colors: 4.1.3
ci-info: 3.9.0
@@ -11437,131 +11734,228 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {}
+ '@img/colour@1.0.0':
+ optional: true
+
+ '@img/sharp-darwin-arm64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-arm64': 1.2.4
+ optional: true
+
+ '@img/sharp-darwin-x64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-x64': 1.2.4
+ optional: true
+
+ '@img/sharp-libvips-darwin-arm64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-darwin-x64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-arm64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-arm@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-ppc64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-riscv64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-s390x@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-x64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linuxmusl-arm64@1.2.4':
+ optional: true
+
+ '@img/sharp-libvips-linuxmusl-x64@1.2.4':
+ optional: true
+
+ '@img/sharp-linux-arm64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm64': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-arm@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-ppc64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-ppc64': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-riscv64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-riscv64': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-s390x@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-s390x': 1.2.4
+ optional: true
+
+ '@img/sharp-linux-x64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-x64': 1.2.4
+ optional: true
+
+ '@img/sharp-linuxmusl-arm64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.4
+ optional: true
+
+ '@img/sharp-linuxmusl-x64@0.34.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.4
+ optional: true
+
+ '@img/sharp-wasm32@0.34.5':
+ dependencies:
+ '@emnapi/runtime': 1.8.1
+ optional: true
+
+ '@img/sharp-win32-arm64@0.34.5':
+ optional: true
+
+ '@img/sharp-win32-ia32@0.34.5':
+ optional: true
+
+ '@img/sharp-win32-x64@0.34.5':
+ optional: true
+
'@inquirer/ansi@2.0.3': {}
- '@inquirer/checkbox@5.0.4(@types/node@24.10.13)':
+ '@inquirer/checkbox@5.0.4(@types/node@25.2.3)':
dependencies:
'@inquirer/ansi': 2.0.3
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
'@inquirer/figures': 2.0.3
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/confirm@6.0.4(@types/node@24.10.13)':
+ '@inquirer/confirm@6.0.4(@types/node@25.2.3)':
dependencies:
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/core@11.1.1(@types/node@24.10.13)':
+ '@inquirer/core@11.1.1(@types/node@25.2.3)':
dependencies:
'@inquirer/ansi': 2.0.3
'@inquirer/figures': 2.0.3
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
cli-width: 4.1.0
mute-stream: 3.0.0
signal-exit: 4.1.0
wrap-ansi: 9.0.2
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/editor@5.0.4(@types/node@24.10.13)':
+ '@inquirer/editor@5.0.4(@types/node@25.2.3)':
dependencies:
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
- '@inquirer/external-editor': 2.0.3(@types/node@24.10.13)
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
+ '@inquirer/external-editor': 2.0.3(@types/node@25.2.3)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/expand@5.0.4(@types/node@24.10.13)':
+ '@inquirer/expand@5.0.4(@types/node@25.2.3)':
dependencies:
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/external-editor@1.0.3(@types/node@24.10.13)':
+ '@inquirer/external-editor@1.0.3(@types/node@25.2.3)':
dependencies:
chardet: 2.1.1
iconv-lite: 0.7.2
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/external-editor@2.0.3(@types/node@24.10.13)':
+ '@inquirer/external-editor@2.0.3(@types/node@25.2.3)':
dependencies:
chardet: 2.1.1
iconv-lite: 0.7.2
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
'@inquirer/figures@2.0.3': {}
- '@inquirer/input@5.0.4(@types/node@24.10.13)':
+ '@inquirer/input@5.0.4(@types/node@25.2.3)':
dependencies:
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/number@4.0.4(@types/node@24.10.13)':
+ '@inquirer/number@4.0.4(@types/node@25.2.3)':
dependencies:
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/password@5.0.4(@types/node@24.10.13)':
+ '@inquirer/password@5.0.4(@types/node@25.2.3)':
dependencies:
'@inquirer/ansi': 2.0.3
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
-
- '@inquirer/prompts@8.2.0(@types/node@24.10.13)':
- dependencies:
- '@inquirer/checkbox': 5.0.4(@types/node@24.10.13)
- '@inquirer/confirm': 6.0.4(@types/node@24.10.13)
- '@inquirer/editor': 5.0.4(@types/node@24.10.13)
- '@inquirer/expand': 5.0.4(@types/node@24.10.13)
- '@inquirer/input': 5.0.4(@types/node@24.10.13)
- '@inquirer/number': 4.0.4(@types/node@24.10.13)
- '@inquirer/password': 5.0.4(@types/node@24.10.13)
- '@inquirer/rawlist': 5.2.0(@types/node@24.10.13)
- '@inquirer/search': 4.1.0(@types/node@24.10.13)
- '@inquirer/select': 5.0.4(@types/node@24.10.13)
+ '@types/node': 25.2.3
+
+ '@inquirer/prompts@8.2.0(@types/node@25.2.3)':
+ dependencies:
+ '@inquirer/checkbox': 5.0.4(@types/node@25.2.3)
+ '@inquirer/confirm': 6.0.4(@types/node@25.2.3)
+ '@inquirer/editor': 5.0.4(@types/node@25.2.3)
+ '@inquirer/expand': 5.0.4(@types/node@25.2.3)
+ '@inquirer/input': 5.0.4(@types/node@25.2.3)
+ '@inquirer/number': 4.0.4(@types/node@25.2.3)
+ '@inquirer/password': 5.0.4(@types/node@25.2.3)
+ '@inquirer/rawlist': 5.2.0(@types/node@25.2.3)
+ '@inquirer/search': 4.1.0(@types/node@25.2.3)
+ '@inquirer/select': 5.0.4(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/rawlist@5.2.0(@types/node@24.10.13)':
+ '@inquirer/rawlist@5.2.0(@types/node@25.2.3)':
dependencies:
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/search@4.1.0(@types/node@24.10.13)':
+ '@inquirer/search@4.1.0(@types/node@25.2.3)':
dependencies:
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
'@inquirer/figures': 2.0.3
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/select@5.0.4(@types/node@24.10.13)':
+ '@inquirer/select@5.0.4(@types/node@25.2.3)':
dependencies:
'@inquirer/ansi': 2.0.3
- '@inquirer/core': 11.1.1(@types/node@24.10.13)
+ '@inquirer/core': 11.1.1(@types/node@25.2.3)
'@inquirer/figures': 2.0.3
- '@inquirer/type': 4.0.3(@types/node@24.10.13)
+ '@inquirer/type': 4.0.3(@types/node@25.2.3)
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
- '@inquirer/type@4.0.3(@types/node@24.10.13)':
+ '@inquirer/type@4.0.3(@types/node@25.2.3)':
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
'@isaacs/balanced-match@4.0.1': {}
@@ -11597,13 +11991,13 @@ snapshots:
'@jest/console@30.2.0':
dependencies:
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
chalk: 4.1.2
jest-message-util: 30.2.0
jest-util: 30.2.0
slash: 3.0.0
- '@jest/core@30.2.0(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))':
+ '@jest/core@30.2.0(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))':
dependencies:
'@jest/console': 30.2.0
'@jest/pattern': 30.0.1
@@ -11611,14 +12005,14 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 4.3.1
exit-x: 0.2.2
graceful-fs: 4.2.11
jest-changed-files: 30.2.0
- jest-config: 30.2.0(@types/node@22.19.11)(esbuild-register@3.6.0(esbuild@0.27.3))(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))
+ jest-config: 30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))
jest-haste-map: 30.2.0
jest-message-util: 30.2.0
jest-regex-util: 30.0.1
@@ -11651,14 +12045,14 @@ snapshots:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-mock: 29.7.0
'@jest/environment@30.2.0':
dependencies:
'@jest/fake-timers': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-mock: 30.2.0
'@jest/expect-utils@30.2.0':
@@ -11676,7 +12070,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -11685,7 +12079,7 @@ snapshots:
dependencies:
'@jest/types': 30.2.0
'@sinonjs/fake-timers': 13.0.5
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-message-util: 30.2.0
jest-mock: 30.2.0
jest-util: 30.2.0
@@ -11703,7 +12097,7 @@ snapshots:
'@jest/pattern@30.0.1':
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-regex-util: 30.0.1
'@jest/reporters@30.2.0(node-notifier@10.0.1)':
@@ -11714,7 +12108,7 @@ snapshots:
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
'@jridgewell/trace-mapping': 0.3.31
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
chalk: 4.1.2
collect-v8-coverage: 1.0.3
exit-x: 0.2.2
@@ -11816,7 +12210,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
'@types/yargs': 17.0.34
chalk: 4.1.2
@@ -11826,15 +12220,15 @@ snapshots:
'@jest/schemas': 30.0.5
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
'@types/yargs': 17.0.34
chalk: 4.1.2
- '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
glob: 13.0.2
react-docgen-typescript: 2.4.0(typescript@5.9.3)
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
optionalDependencies:
typescript: 5.9.3
@@ -12009,6 +12403,32 @@ snapshots:
'@tybys/wasm-util': 0.10.1
optional: true
+ '@next/env@16.1.6': {}
+
+ '@next/swc-darwin-arm64@16.1.6':
+ optional: true
+
+ '@next/swc-darwin-x64@16.1.6':
+ optional: true
+
+ '@next/swc-linux-arm64-gnu@16.1.6':
+ optional: true
+
+ '@next/swc-linux-arm64-musl@16.1.6':
+ optional: true
+
+ '@next/swc-linux-x64-gnu@16.1.6':
+ optional: true
+
+ '@next/swc-linux-x64-musl@16.1.6':
+ optional: true
+
+ '@next/swc-win32-arm64-msvc@16.1.6':
+ optional: true
+
+ '@next/swc-win32-x64-msvc@16.1.6':
+ optional: true
+
'@noble/curves@1.9.7':
dependencies:
'@noble/hashes': 1.8.0
@@ -13365,10 +13785,10 @@ snapshots:
- bufferutil
- utf-8-validate
- '@storybook/addon-docs@10.2.8(@types/react@19.2.8)(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
+ '@storybook/addon-docs@10.2.8(@types/react@19.2.8)(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
'@mdx-js/react': 3.1.1(@types/react@19.2.8)(react@19.2.3)
- '@storybook/csf-plugin': 10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ '@storybook/csf-plugin': 10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
'@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.3))(react@19.2.3)
'@storybook/react-dom-shim': 10.2.8(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))
react: 19.2.3
@@ -13382,25 +13802,25 @@ snapshots:
- vite
- webpack
- '@storybook/builder-vite@10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
+ '@storybook/builder-vite@10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
- '@storybook/csf-plugin': 10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ '@storybook/csf-plugin': 10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
storybook: 10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
ts-dedent: 2.2.0
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
transitivePeerDependencies:
- esbuild
- rollup
- webpack
- '@storybook/csf-plugin@10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
+ '@storybook/csf-plugin@10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
storybook: 10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
unplugin: 2.3.11
optionalDependencies:
esbuild: 0.27.3
rollup: 4.57.1
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
'@storybook/global@5.0.0': {}
@@ -13432,11 +13852,11 @@ snapshots:
react-dom: 19.2.4(react@19.2.3)
storybook: 10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- '@storybook/react-vite@10.2.8(esbuild@0.27.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
+ '@storybook/react-vite@10.2.8(esbuild@0.27.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@5.9.3)(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
'@rollup/pluginutils': 5.3.0(rollup@4.57.1)
- '@storybook/builder-vite': 10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ '@storybook/builder-vite': 10.2.8(esbuild@0.27.3)(rollup@4.57.1)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
'@storybook/react': 10.2.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.9.3)
empathic: 2.0.0
magic-string: 0.30.21
@@ -13446,7 +13866,7 @@ snapshots:
resolve: 1.22.11
storybook: 10.2.8(@testing-library/dom@10.4.1)(prettier@3.6.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
tsconfig-paths: 4.2.0
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
transitivePeerDependencies:
- esbuild
- rollup
@@ -13485,9 +13905,9 @@ snapshots:
tslib: 2.8.1
typed-inject: 5.0.0
- '@stryker-mutator/core@9.5.1(@types/node@24.10.13)':
+ '@stryker-mutator/core@9.5.1(@types/node@25.2.3)':
dependencies:
- '@inquirer/prompts': 8.2.0(@types/node@24.10.13)
+ '@inquirer/prompts': 8.2.0(@types/node@25.2.3)
'@stryker-mutator/api': 9.5.1
'@stryker-mutator/instrumenter': 9.5.1
'@stryker-mutator/util': 9.5.1
@@ -13536,6 +13956,10 @@ snapshots:
'@stryker-mutator/util@9.5.1': {}
+ '@swc/helpers@0.5.15':
+ dependencies:
+ tslib: 2.8.1
+
'@tailwindcss/node@4.1.18':
dependencies:
'@jridgewell/remapping': 2.3.5
@@ -13597,12 +14021,20 @@ snapshots:
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
'@tailwindcss/oxide-win32-x64-msvc': 4.1.18
- '@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
+ '@tailwindcss/postcss@4.1.18':
+ dependencies:
+ '@alloc/quick-lru': 5.2.0
+ '@tailwindcss/node': 4.1.18
+ '@tailwindcss/oxide': 4.1.18
+ postcss: 8.5.6
+ tailwindcss: 4.1.18
+
+ '@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
'@tailwindcss/node': 4.1.18
'@tailwindcss/oxide': 4.1.18
tailwindcss: 4.1.18
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
'@tanstack/query-core@5.90.20': {}
@@ -13703,14 +14135,14 @@ snapshots:
transitivePeerDependencies:
- debug
- '@ton/toolchain@https://codeload.github.com/the-ton-tech/toolchain/tar.gz/31376da778155bd0984d68abf2a46dce417bacb8(jest@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1))(jiti@2.6.1)(typescript@5.9.3)':
+ '@ton/toolchain@https://codeload.github.com/the-ton-tech/toolchain/tar.gz/31376da778155bd0984d68abf2a46dce417bacb8(jest@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1))(jiti@2.6.1)(typescript@5.9.3)':
dependencies:
'@eslint/js': 9.39.2
'@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/parser': 8.40.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.39.2(jiti@2.6.1)
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.40.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))
- eslint-plugin-jest: 28.14.0(@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1))(typescript@5.9.3)
+ eslint-plugin-jest: 28.14.0(@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1))(typescript@5.9.3)
eslint-plugin-prettier: 5.5.4(eslint@9.39.2(jiti@2.6.1))(prettier@3.6.2)
globals: 16.5.0
prettier: 3.6.2
@@ -13783,7 +14215,7 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@truecarry/vite-plugin-web-extension@4.5.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)':
+ '@truecarry/vite-plugin-web-extension@4.5.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)':
dependencies:
ajv: 8.17.1
async-lock: 1.4.1
@@ -13793,7 +14225,7 @@ snapshots:
lodash.uniq: 4.5.0
lodash.uniqby: 4.7.0
md5: 2.3.0
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
web-ext-option-types: 8.3.1
web-ext-run: 0.2.4
webextension-polyfill: 0.10.0
@@ -13883,7 +14315,7 @@ snapshots:
'@types/graceful-fs@4.1.9':
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
'@types/hammerjs@2.0.46': {}
@@ -13920,7 +14352,7 @@ snapshots:
dependencies:
undici-types: 6.21.0
- '@types/node@24.10.13':
+ '@types/node@25.2.3':
dependencies:
undici-types: 7.16.0
@@ -13963,7 +14395,7 @@ snapshots:
'@types/ws@8.18.1':
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
'@types/yargs-parser@21.0.3': {}
@@ -14228,7 +14660,7 @@ snapshots:
'@urql/core': 5.2.0
wonka: 6.3.5
- '@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
+ '@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
@@ -14236,7 +14668,7 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-rc.3
'@types/babel__core': 7.20.5
react-refresh: 0.18.0
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -14252,7 +14684,7 @@ snapshots:
obug: 2.1.1
std-env: 3.10.0
tinyrainbow: 3.0.3
- vitest: 4.0.18(@types/node@24.10.13)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 4.0.18(@types/node@25.2.3)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
'@vitest/expect@2.0.5':
dependencies:
@@ -14286,13 +14718,13 @@ snapshots:
optionalDependencies:
vite: 7.3.1(@types/node@22.19.11)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
- '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
+ '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))':
dependencies:
'@vitest/spy': 4.0.18
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
'@vitest/pretty-format@2.0.5':
dependencies:
@@ -14344,7 +14776,7 @@ snapshots:
sirv: 3.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
- vitest: 4.0.18(@types/node@24.10.13)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vitest: 4.0.18(@types/node@25.2.3)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
'@vitest/utils@2.0.5':
dependencies:
@@ -15048,7 +15480,7 @@ snapshots:
chrome-launcher@0.15.2:
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@@ -15057,7 +15489,7 @@ snapshots:
chrome-launcher@1.2.0:
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 2.0.2
@@ -15066,7 +15498,7 @@ snapshots:
chromium-edge-launcher@0.2.0:
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@@ -15794,13 +16226,13 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1))(typescript@5.9.3):
+ eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(jest@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1))(typescript@5.9.3):
dependencies:
'@typescript-eslint/utils': 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.39.2(jiti@2.6.1)
optionalDependencies:
'@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)
- jest: 30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))
+ jest: 30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))
transitivePeerDependencies:
- supports-color
- typescript
@@ -16580,7 +17012,7 @@ snapshots:
happy-dom@20.6.1:
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
'@types/whatwg-mimetype': 3.0.2
'@types/ws': 8.18.1
entities: 6.0.1
@@ -17043,7 +17475,7 @@ snapshots:
'@jest/expect': 30.2.0
'@jest/test-result': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
chalk: 4.1.2
co: 4.6.0
dedent: 1.7.0
@@ -17063,15 +17495,15 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3)):
+ jest-cli@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)):
dependencies:
- '@jest/core': 30.2.0(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))
+ '@jest/core': 30.2.0(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))
'@jest/test-result': 30.2.0
'@jest/types': 30.2.0
chalk: 4.1.2
exit-x: 0.2.2
import-local: 3.2.0
- jest-config: 30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))
+ jest-config: 30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))
jest-util: 30.2.0
jest-validate: 30.2.0
yargs: 17.7.2
@@ -17084,7 +17516,7 @@ snapshots:
- supports-color
- ts-node
- jest-config@30.2.0(@types/node@22.19.11)(esbuild-register@3.6.0(esbuild@0.27.3))(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3)):
+ jest-config@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)):
dependencies:
'@babel/core': 7.29.0
'@jest/get-type': 30.1.0
@@ -17111,43 +17543,9 @@ snapshots:
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
esbuild-register: 3.6.0(esbuild@0.27.3)
- ts-node: 10.9.2(@types/node@24.10.13)(typescript@5.9.3)
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-config@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3)):
- dependencies:
- '@babel/core': 7.29.0
- '@jest/get-type': 30.1.0
- '@jest/pattern': 30.0.1
- '@jest/test-sequencer': 30.2.0
- '@jest/types': 30.2.0
- babel-jest: 30.2.0(@babel/core@7.29.0)
- chalk: 4.1.2
- ci-info: 4.3.1
- deepmerge: 4.3.1
- glob: 10.5.0
- graceful-fs: 4.2.11
- jest-circus: 30.2.0
- jest-docblock: 30.2.0
- jest-environment-node: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-runner: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 30.2.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 24.10.13
- esbuild-register: 3.6.0(esbuild@0.27.3)
- ts-node: 10.9.2(@types/node@24.10.13)(typescript@5.9.3)
+ ts-node: 10.9.2(@types/node@25.2.3)(typescript@5.9.3)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -17176,7 +17574,7 @@ snapshots:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -17185,7 +17583,7 @@ snapshots:
'@jest/environment': 30.2.0
'@jest/fake-timers': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-mock: 30.2.0
jest-util: 30.2.0
jest-validate: 30.2.0
@@ -17196,7 +17594,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.9
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -17211,7 +17609,7 @@ snapshots:
jest-haste-map@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -17262,13 +17660,13 @@ snapshots:
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-util: 29.7.0
jest-mock@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-util: 30.2.0
jest-pnp-resolver@1.2.3(jest-resolve@30.2.0):
@@ -17304,7 +17702,7 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
chalk: 4.1.2
emittery: 0.13.1
exit-x: 0.2.2
@@ -17333,7 +17731,7 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
chalk: 4.1.2
cjs-module-lexer: 2.1.1
collect-v8-coverage: 1.0.3
@@ -17380,7 +17778,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -17389,7 +17787,7 @@ snapshots:
jest-util@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
chalk: 4.1.2
ci-info: 4.3.1
graceful-fs: 4.2.11
@@ -17417,7 +17815,7 @@ snapshots:
dependencies:
'@jest/test-result': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -17426,25 +17824,25 @@ snapshots:
jest-worker@29.7.0:
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@30.2.0:
dependencies:
- '@types/node': 22.19.11
+ '@types/node': 25.2.3
'@ungap/structured-clone': 1.3.0
jest-util: 30.2.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3)):
+ jest@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)):
dependencies:
- '@jest/core': 30.2.0(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))
+ '@jest/core': 30.2.0(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))
'@jest/types': 30.2.0
import-local: 3.2.0
- jest-cli: 30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))
+ jest-cli: 30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))
optionalDependencies:
node-notifier: 10.0.1
transitivePeerDependencies:
@@ -18104,6 +18502,32 @@ snapshots:
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
+ next@16.1.6(@babel/core@7.29.0)(@playwright/test@1.58.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ dependencies:
+ '@next/env': 16.1.6
+ '@swc/helpers': 0.5.15
+ baseline-browser-mapping: 2.9.19
+ caniuse-lite: 1.0.30001767
+ postcss: 8.4.31
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.3)
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 16.1.6
+ '@next/swc-darwin-x64': 16.1.6
+ '@next/swc-linux-arm64-gnu': 16.1.6
+ '@next/swc-linux-arm64-musl': 16.1.6
+ '@next/swc-linux-x64-gnu': 16.1.6
+ '@next/swc-linux-x64-musl': 16.1.6
+ '@next/swc-win32-arm64-msvc': 16.1.6
+ '@next/swc-win32-x64-msvc': 16.1.6
+ '@playwright/test': 1.58.2
+ babel-plugin-react-compiler: 1.0.0
+ sharp: 0.34.5
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+
node-abi@3.77.0:
dependencies:
semver: 7.7.3
@@ -18569,6 +18993,12 @@ snapshots:
possible-typed-array-names@1.1.0: {}
+ postcss@8.4.31:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
postcss@8.4.49:
dependencies:
nanoid: 3.3.11
@@ -19544,6 +19974,38 @@ snapshots:
shallowequal@1.1.0: {}
+ sharp@0.34.5:
+ dependencies:
+ '@img/colour': 1.0.0
+ detect-libc: 2.1.2
+ semver: 7.7.3
+ optionalDependencies:
+ '@img/sharp-darwin-arm64': 0.34.5
+ '@img/sharp-darwin-x64': 0.34.5
+ '@img/sharp-libvips-darwin-arm64': 1.2.4
+ '@img/sharp-libvips-darwin-x64': 1.2.4
+ '@img/sharp-libvips-linux-arm': 1.2.4
+ '@img/sharp-libvips-linux-arm64': 1.2.4
+ '@img/sharp-libvips-linux-ppc64': 1.2.4
+ '@img/sharp-libvips-linux-riscv64': 1.2.4
+ '@img/sharp-libvips-linux-s390x': 1.2.4
+ '@img/sharp-libvips-linux-x64': 1.2.4
+ '@img/sharp-libvips-linuxmusl-arm64': 1.2.4
+ '@img/sharp-libvips-linuxmusl-x64': 1.2.4
+ '@img/sharp-linux-arm': 0.34.5
+ '@img/sharp-linux-arm64': 0.34.5
+ '@img/sharp-linux-ppc64': 0.34.5
+ '@img/sharp-linux-riscv64': 0.34.5
+ '@img/sharp-linux-s390x': 0.34.5
+ '@img/sharp-linux-x64': 0.34.5
+ '@img/sharp-linuxmusl-arm64': 0.34.5
+ '@img/sharp-linuxmusl-x64': 0.34.5
+ '@img/sharp-wasm32': 0.34.5
+ '@img/sharp-win32-arm64': 0.34.5
+ '@img/sharp-win32-ia32': 0.34.5
+ '@img/sharp-win32-x64': 0.34.5
+ optional: true
+
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
@@ -19853,6 +20315,13 @@ snapshots:
stubborn-utils@1.0.2: {}
+ styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.3):
+ dependencies:
+ client-only: 0.0.1
+ react: 19.2.3
+ optionalDependencies:
+ '@babel/core': 7.29.0
+
sucrase@3.35.1:
dependencies:
'@jridgewell/gen-mapping': 0.3.13
@@ -20101,12 +20570,12 @@ snapshots:
ts-interface-checker@0.1.13: {}
- ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3)))(typescript@5.9.3):
+ ts-jest@29.4.6(@babel/core@7.29.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.2.0)(jest@30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)))(typescript@5.9.3):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
handlebars: 4.7.8
- jest: 30.2.0(@types/node@24.10.13)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3))
+ jest: 30.2.0(@types/node@25.2.3)(esbuild-register@3.6.0(esbuild@0.27.3))(node-notifier@10.0.1)(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
@@ -20133,14 +20602,14 @@ snapshots:
tslib: 2.8.1
typescript: 5.9.3
- ts-node@10.9.2(@types/node@24.10.13)(typescript@5.9.3):
+ ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
acorn: 8.15.0
acorn-walk: 8.3.4
arg: 4.1.3
@@ -20502,11 +20971,11 @@ snapshots:
vite-bundle-analyzer@1.3.2: {}
- vite-plugin-node-polyfills@0.25.0(rollup@4.57.1)(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)):
+ vite-plugin-node-polyfills@0.25.0(rollup@4.57.1)(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)):
dependencies:
'@rollup/plugin-inject': 5.0.5(rollup@4.57.1)
node-stdlib-browser: 1.3.1
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
transitivePeerDependencies:
- rollup
@@ -20527,7 +20996,7 @@ snapshots:
tsx: 4.21.0
yaml: 2.8.1
- vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1):
+ vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1):
dependencies:
esbuild: 0.27.3
fdir: 6.5.0(picomatch@4.0.3)
@@ -20536,7 +21005,7 @@ snapshots:
rollup: 4.57.1
tinyglobby: 0.2.15
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
fsevents: 2.3.3
jiti: 2.6.1
lightningcss: 1.31.1
@@ -20584,10 +21053,10 @@ snapshots:
- tsx
- yaml
- vitest@4.0.18(@types/node@24.10.13)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1):
+ vitest@4.0.18(@types/node@25.2.3)(@vitest/ui@4.0.18)(happy-dom@20.6.1)(jiti@2.6.1)(jsdom@28.0.0(@noble/hashes@2.0.1))(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1):
dependencies:
'@vitest/expect': 4.0.18
- '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
+ '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1))
'@vitest/pretty-format': 4.0.18
'@vitest/runner': 4.0.18
'@vitest/snapshot': 4.0.18
@@ -20604,10 +21073,10 @@ snapshots:
tinyexec: 1.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
- vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
+ vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.1)
why-is-node-running: 2.3.0
optionalDependencies:
- '@types/node': 24.10.13
+ '@types/node': 25.2.3
'@vitest/ui': 4.0.18(vitest@4.0.18)
happy-dom: 20.6.1
jsdom: 28.0.0(@noble/hashes@2.0.1)