From d930340cf0603f1ba3bb805d9db7eb543024e00e Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Wed, 1 Oct 2025 14:21:29 -0400 Subject: [PATCH 01/15] feat: switch to yar router --- apps/docs/content/docs/core-concepts.mdx | 17 +- .../nextjs/app/posts/[[...all]]/page.tsx | 51 +- apps/examples/nextjs/package.json | 4 +- apps/examples/tanstack/.gitignore | 3 +- apps/examples/tanstack/.nvmrc | 2 + apps/examples/tanstack/src/routeTree.gen.ts | 55 +- apps/examples/tanstack/src/router.ts | 7 +- apps/examples/tanstack/src/routes/posts/$.tsx | 10 +- apps/examples/tanstack/vite.config.ts | 10 +- e2e/README.md | 5 + packages/better-blog/package.json | 89 +- .../__tests__/blog-router-page.test.tsx | 125 +- .../better-blog/blog-router-page.tsx | 83 +- .../components/better-blog/default-error.tsx | 12 + .../src/components/better-blog/loading.tsx | 59 +- .../src/providers/memory/memory-provider.ts | 19 +- .../src/router/blog-router-client.tsx | 36 + .../better-blog/src/router/blog-router.ts | 33 + .../better-blog/src/router/error-resolver.tsx | 77 - packages/better-blog/src/router/index.ts | 10 +- .../src/router/loading-resolver.tsx | 104 - .../better-blog/src/router/page-resolver.tsx | 56 - .../src/router/pluggable-routes.tsx | 147 + packages/better-blog/src/router/router.ts | 120 +- packages/better-blog/src/router/routes.ts | 91 + packages/better-blog/src/router/routes.tsx | 68 - .../src/server/pages/server-adapter.tsx | 16 +- packages/better-blog/src/types/index.ts | 7 + packages/better-blog/tsup.config.ts | 1 + pnpm-lock.yaml | 8443 ++++++----------- 30 files changed, 3612 insertions(+), 6148 deletions(-) create mode 100644 apps/examples/tanstack/.nvmrc create mode 100644 packages/better-blog/src/components/better-blog/default-error.tsx create mode 100644 packages/better-blog/src/router/blog-router-client.tsx create mode 100644 packages/better-blog/src/router/blog-router.ts delete mode 100644 packages/better-blog/src/router/error-resolver.tsx delete mode 100644 packages/better-blog/src/router/loading-resolver.tsx delete mode 100644 packages/better-blog/src/router/page-resolver.tsx create mode 100644 packages/better-blog/src/router/pluggable-routes.tsx create mode 100644 packages/better-blog/src/router/routes.ts delete mode 100644 packages/better-blog/src/router/routes.tsx diff --git a/apps/docs/content/docs/core-concepts.mdx b/apps/docs/content/docs/core-concepts.mdx index f62fbb1..d464c69 100644 --- a/apps/docs/content/docs/core-concepts.mdx +++ b/apps/docs/content/docs/core-concepts.mdx @@ -10,7 +10,7 @@ description: How Better Blog is structured and key APIs - `better-blog/hooks`: React hooks (client) - `better-blog/client`: `BlogPageRouter` and page components (client-only) - `better-blog/context`: `BlogProvider`, context and UI types -- `better-blog/router`: route helpers (`matchRoute`, `resolveLoadingComponent`) +- `better-blog/router`: pluggable routes powered by [@olliethedev/yar](https://github.com/olliethedev/yar) - `better-blog/server/pages`: SSR/SSG adapter (`createBlogServerAdapter`) - `better-blog/api`: API router (`createBlogApiRouter`) - `better-blog/sitemap`: sitemap generation (`createBlogSitemap`) @@ -41,9 +41,22 @@ export interface BlogDataProvider { } ``` +### Router + +Better Blog uses [@olliethedev/yar](https://github.com/olliethedev/yar) for its routing layer. + +Better Blog ships with pre-configured routes: +- `/` - Home (list of posts) +- `/new` - Create new post +- `/drafts` - Draft posts +- `/:slug` - View post by slug +- `/:slug/edit` - Edit post +- `/tag/:tag` - Posts by tag + ### Architecture -- Schema-driven routes and data; minimal state in components +- Pluggable, composable routes powered by yar +- Schema-driven data with minimal state in components - Strict client/server separation via dedicated entry points ### TanStack Query diff --git a/apps/examples/nextjs/app/posts/[[...all]]/page.tsx b/apps/examples/nextjs/app/posts/[[...all]]/page.tsx index 6a2e6d8..ba2ca2f 100644 --- a/apps/examples/nextjs/app/posts/[[...all]]/page.tsx +++ b/apps/examples/nextjs/app/posts/[[...all]]/page.tsx @@ -1,26 +1,30 @@ import { getProvider } from "@/lib/providers" import { getOrCreateQueryClient } from "@/lib/query-client" -import { createBlogServerAdapter } from "better-blog/server/pages" -import type { Metadata } from "next" +import { HydrationBoundary, dehydrate } from "@tanstack/react-query" +import { BlogPageRouter } from "better-blog/client" +import { matchRoute } from "better-blog/router" +import { prefetchBlogData } from "better-blog/server/pages" // Create query client for React Query const queryClient = getOrCreateQueryClient() -// Create the server adapter -const serverAdapter = createBlogServerAdapter({ - // Must be a promise or value; we resolve provider at runtime - provider: await getProvider(), - queryClient -}) +// // Create the server adapter +// const serverAdapter = createBlogServerAdapter({ +// // Must be a promise or value; we resolve provider at runtime +// provider: await getProvider(), +// queryClient +// }) -// Export the required Next.js functions -export const generateStaticParams = serverAdapter.generateStaticParams -export const generateMetadata: (context: { - params: Promise<{ all: string[] | undefined }> -}) => Promise = async ({ params }) => { - const { all } = await params - return serverAdapter.generateNextMetadata(all?.join("/")) as unknown as Metadata -} +// // Export the required Next.js functions +// export const generateStaticParams = serverAdapter.generateStaticParams +// export const generateMetadata: (context: { +// params: Promise<{ all: string[] | undefined }> +// }) => Promise = async ({ params }) => { +// const { all } = await params +// return serverAdapter.generateNextMetadata( +// all?.join("/") +// ) as unknown as Metadata +// } // Main page component export default async function BlogPage({ @@ -29,7 +33,18 @@ export default async function BlogPage({ params: Promise<{ all: string[] | undefined }> }) { const { all } = await params - const { BlogServerRouter } = serverAdapter + // const { BlogServerRouter } = serverAdapter - return + // return + const routeMatch = matchRoute(all?.join("/").split("/").filter(Boolean)) + await prefetchBlogData({ + match: routeMatch, + provider: await getProvider(), + queryClient + }) + const dehydratedState = dehydrate(queryClient) + return + + + } diff --git a/apps/examples/nextjs/package.json b/apps/examples/nextjs/package.json index 94817f5..079b85a 100644 --- a/apps/examples/nextjs/package.json +++ b/apps/examples/nextjs/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "next dev --turbopack", - "build": "next build --turbopack", + "dev": "next dev", + "build": "next build", "start": "next start", "start:e2e": "rm -rf .next && pnpm build && NODE_ENV=test next start", "lint": "eslint", diff --git a/apps/examples/tanstack/.gitignore b/apps/examples/tanstack/.gitignore index 574fe27..65fd129 100644 --- a/apps/examples/tanstack/.gitignore +++ b/apps/examples/tanstack/.gitignore @@ -2,4 +2,5 @@ node_modules .tanstack .nitro .output -.turbo \ No newline at end of file +.turbo +dist \ No newline at end of file diff --git a/apps/examples/tanstack/.nvmrc b/apps/examples/tanstack/.nvmrc new file mode 100644 index 0000000..07f06b3 --- /dev/null +++ b/apps/examples/tanstack/.nvmrc @@ -0,0 +1,2 @@ +22.17.1 + diff --git a/apps/examples/tanstack/src/routeTree.gen.ts b/apps/examples/tanstack/src/routeTree.gen.ts index 1fb3509..c571273 100644 --- a/apps/examples/tanstack/src/routeTree.gen.ts +++ b/apps/examples/tanstack/src/routeTree.gen.ts @@ -8,14 +8,9 @@ // You should NOT make any changes in this file as it will be overwritten. // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. -import { createServerRootRoute } from '@tanstack/react-start/server' - import { Route as rootRouteImport } from './routes/__root' import { Route as IndexRouteImport } from './routes/index' import { Route as PostsSplatRouteImport } from './routes/posts/$' -import { ServerRoute as ApiPostsSplatServerRouteImport } from './routes/api/posts/$' - -const rootServerRouteImport = createServerRootRoute() const IndexRoute = IndexRouteImport.update({ id: '/', @@ -27,11 +22,6 @@ const PostsSplatRoute = PostsSplatRouteImport.update({ path: '/posts/$', getParentRoute: () => rootRouteImport, } as any) -const ApiPostsSplatServerRoute = ApiPostsSplatServerRouteImport.update({ - id: '/api/posts/$', - path: '/api/posts/$', - getParentRoute: () => rootServerRouteImport, -} as any) export interface FileRoutesByFullPath { '/': typeof IndexRoute @@ -58,27 +48,6 @@ export interface RootRouteChildren { IndexRoute: typeof IndexRoute PostsSplatRoute: typeof PostsSplatRoute } -export interface FileServerRoutesByFullPath { - '/api/posts/$': typeof ApiPostsSplatServerRoute -} -export interface FileServerRoutesByTo { - '/api/posts/$': typeof ApiPostsSplatServerRoute -} -export interface FileServerRoutesById { - __root__: typeof rootServerRouteImport - '/api/posts/$': typeof ApiPostsSplatServerRoute -} -export interface FileServerRouteTypes { - fileServerRoutesByFullPath: FileServerRoutesByFullPath - fullPaths: '/api/posts/$' - fileServerRoutesByTo: FileServerRoutesByTo - to: '/api/posts/$' - id: '__root__' | '/api/posts/$' - fileServerRoutesById: FileServerRoutesById -} -export interface RootServerRouteChildren { - ApiPostsSplatServerRoute: typeof ApiPostsSplatServerRoute -} declare module '@tanstack/react-router' { interface FileRoutesByPath { @@ -98,17 +67,6 @@ declare module '@tanstack/react-router' { } } } -declare module '@tanstack/react-start/server' { - interface ServerFileRoutesByPath { - '/api/posts/$': { - id: '/api/posts/$' - path: '/api/posts/$' - fullPath: '/api/posts/$' - preLoaderRoute: typeof ApiPostsSplatServerRouteImport - parentRoute: typeof rootServerRouteImport - } - } -} const rootRouteChildren: RootRouteChildren = { IndexRoute: IndexRoute, @@ -117,9 +75,12 @@ const rootRouteChildren: RootRouteChildren = { export const routeTree = rootRouteImport ._addFileChildren(rootRouteChildren) ._addFileTypes() -const rootServerRouteChildren: RootServerRouteChildren = { - ApiPostsSplatServerRoute: ApiPostsSplatServerRoute, + +import type { getRouter } from './router.ts' +import type { createStart } from '@tanstack/react-start' +declare module '@tanstack/react-start' { + interface Register { + ssr: true + router: Awaited> + } } -export const serverRouteTree = rootServerRouteImport - ._addFileChildren(rootServerRouteChildren) - ._addFileTypes() diff --git a/apps/examples/tanstack/src/router.ts b/apps/examples/tanstack/src/router.ts index 2705f01..33809eb 100644 --- a/apps/examples/tanstack/src/router.ts +++ b/apps/examples/tanstack/src/router.ts @@ -1,7 +1,7 @@ +import { QueryClient } from '@tanstack/react-query' // src/router.tsx import { createRouter as createTanStackRouter } from '@tanstack/react-router' import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query' -import { QueryClient } from '@tanstack/react-query' import { routeTree } from './routeTree.gen' // The root route is defined in `routes/__root.tsx` @@ -32,6 +32,11 @@ export function createRouter() { return router } +// TanStack Start requires getRouter to be exported +export function getRouter() { + return createRouter() +} + declare module '@tanstack/react-router' { interface Register { router: ReturnType diff --git a/apps/examples/tanstack/src/routes/posts/$.tsx b/apps/examples/tanstack/src/routes/posts/$.tsx index 0806343..de756f6 100644 --- a/apps/examples/tanstack/src/routes/posts/$.tsx +++ b/apps/examples/tanstack/src/routes/posts/$.tsx @@ -1,8 +1,9 @@ import { createFileRoute } from "@tanstack/react-router" import { BlogMetaTags, BlogPageRouter } from "better-blog/client" -import { createBlogServerAdapter } from "better-blog/server/pages"; +import { matchRoute } from "better-blog/router" +import { prefetchBlogData } from "better-blog/server/pages" -import { blogDataProvider } from "../../lib/blog-data-provider"; +import { blogDataProvider } from "../../lib/blog-data-provider" export const Route = createFileRoute("/posts/$")({ @@ -10,11 +11,12 @@ export const Route = createFileRoute("/posts/$")({ // Head is now handled via in the component for better DX component: RouteComponent, loader: async ({ params, context }) => { - const serverAdapter = createBlogServerAdapter({ + const routeMatch = matchRoute(params._splat?.split("/").filter(Boolean)) + await prefetchBlogData({ + match: routeMatch, provider: blogDataProvider, queryClient: context.queryClient, }) - await serverAdapter.prefetch({ path: params._splat }) return null } }) diff --git a/apps/examples/tanstack/vite.config.ts b/apps/examples/tanstack/vite.config.ts index e5a24a2..aaf62f1 100644 --- a/apps/examples/tanstack/vite.config.ts +++ b/apps/examples/tanstack/vite.config.ts @@ -1,11 +1,11 @@ +import { dirname, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import tailwindcss from '@tailwindcss/vite' +import { tanstackStart } from '@tanstack/react-start/plugin/vite' +import viteReact from '@vitejs/plugin-react' // vite.config.ts import { defineConfig } from 'vite' -import { fileURLToPath } from 'url' -import { dirname, resolve } from 'path' import tsConfigPaths from 'vite-tsconfig-paths' -import { tanstackStart } from '@tanstack/react-start/plugin/vite' -import viteReact from '@vitejs/plugin-react' -import tailwindcss from '@tailwindcss/vite' // Get __dirname equivalent in ESM const __filename = fileURLToPath(import.meta.url) diff --git a/e2e/README.md b/e2e/README.md index bbfce1c..399d27d 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -13,6 +13,11 @@ This folder contains the Playwright-based E2E suite for validating Better Blog a - Teardown projects clean up (delete SQLite files, stop/remove containers, kill servers). - Tests are framework-agnostic where possible and run against the example apps. +## Prerequisites + +- Node.js 20.19+ or 22.12+ (required by Vite used in TanStack Start example) +- If using nvm, run `nvm use` in the tanstack example directory + ## Quick start ```bash diff --git a/packages/better-blog/package.json b/packages/better-blog/package.json index 4cf7cf4..bedb760 100644 --- a/packages/better-blog/package.json +++ b/packages/better-blog/package.json @@ -24,15 +24,25 @@ "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", - "files": ["dist"], - "keywords": ["typescript", "react", "blog", "shadcn", "nextjs"], + "files": [ + "dist" + ], + "keywords": [ + "typescript", + "react", + "blog", + "shadcn", + "nextjs" + ], "author": "olliethedev", "license": "MIT", "publishConfig": { "access": "public", "provenance": true }, - "sideEffects": ["./dist/style.css"], + "sideEffects": [ + "./dist/style.css" + ], "exports": { "./css": "./dist/style.css", ".": { @@ -85,6 +95,16 @@ "default": "./dist/router.cjs" } }, + "./router/client": { + "import": { + "types": "./dist/router/client.d.ts", + "default": "./dist/router/client.js" + }, + "require": { + "types": "./dist/router/client.d.cts", + "default": "./dist/router/client.cjs" + } + }, "./context": { "import": { "types": "./dist/context.d.ts", @@ -188,20 +208,51 @@ }, "typesVersions": { "*": { - "types": ["dist/types.d.ts"], - "queries": ["dist/queries.d.ts"], - "hooks": ["dist/hooks.d.ts"], - "router": ["dist/router.d.ts"], - "context": ["dist/context.d.ts"], - "client": ["dist/client.d.ts"], - "api": ["dist/api.d.ts"], - "server/pages": ["dist/server/pages.d.ts"], - "sitemap": ["dist/sitemap.d.ts"], - "providers/api": ["dist/providers/api.d.ts"], - "providers/drizzle": ["dist/providers/drizzle.d.ts"], - "providers/memory": ["dist/providers/memory.d.ts"], - "providers/prisma": ["dist/providers/prisma.d.ts"], - "providers/sql": ["dist/providers/sql.d.ts"] + "types": [ + "dist/types.d.ts" + ], + "queries": [ + "dist/queries.d.ts" + ], + "hooks": [ + "dist/hooks.d.ts" + ], + "router": [ + "dist/router.d.ts" + ], + "router/client": [ + "dist/router/client.d.ts" + ], + "context": [ + "dist/context.d.ts" + ], + "client": [ + "dist/client.d.ts" + ], + "api": [ + "dist/api.d.ts" + ], + "server/pages": [ + "dist/server/pages.d.ts" + ], + "sitemap": [ + "dist/sitemap.d.ts" + ], + "providers/api": [ + "dist/providers/api.d.ts" + ], + "providers/drizzle": [ + "dist/providers/drizzle.d.ts" + ], + "providers/memory": [ + "dist/providers/memory.d.ts" + ], + "providers/prisma": [ + "dist/providers/prisma.d.ts" + ], + "providers/sql": [ + "dist/providers/sql.d.ts" + ] } }, "devDependencies": { @@ -290,7 +341,7 @@ "dependencies": { "@milkdown/crepe": "^7.15.3", "@milkdown/kit": "^7.15.3", - "better-call": "^1.0.19", - "rou3": "^0.7.5" + "@olliethedev/yar": "1.0.5", + "better-call": "^1.0.19" } } diff --git a/packages/better-blog/src/components/better-blog/__tests__/blog-router-page.test.tsx b/packages/better-blog/src/components/better-blog/__tests__/blog-router-page.test.tsx index d0c2348..8cf78f4 100644 --- a/packages/better-blog/src/components/better-blog/__tests__/blog-router-page.test.tsx +++ b/packages/better-blog/src/components/better-blog/__tests__/blog-router-page.test.tsx @@ -1,15 +1,13 @@ import { BlogProvider } from "@/context/better-blog-context" -import type { PageComponentOverrides } from "@/types" +import { QueryClient, QueryClientProvider } from "@tanstack/react-query" import { render, screen } from "@testing-library/react" import { BlogPageRouter } from "../blog-router-page" function renderWithProvider({ path, - overrides, basePath = "/posts" }: { path?: string - overrides?: PageComponentOverrides basePath?: string }) { const dataProvider = { @@ -17,102 +15,89 @@ function renderWithProvider({ getPostBySlug: async () => null } + const queryClient = new QueryClient({ + defaultOptions: { + queries: { retry: false } + } + }) + return render( - "https://example.com/image.jpg"} - > - - + + "https://example.com/image.jpg"} + > + + + ) } -const Home = () =>
Home Mock
-const Post = () =>
Post Mock
-const Tag = () =>
Tag Mock
-const Drafts = () =>
Drafts Mock
-const NewPost = () =>
New Mock
-const EditPost = () =>
Edit Mock
- -const overrides: PageComponentOverrides = { - HomeComponent: Home, - PostComponent: Post, - TagComponent: Tag, - DraftsComponent: Drafts, - NewPostComponent: NewPost, - EditPostComponent: EditPost -} - -describe("BlogPageRouter rendering with overrides", () => { - test("renders Home for root path (uses basePath context)", () => { - renderWithProvider({ path: "/posts", overrides }) - expect(screen.getByTestId("home")).toBeInTheDocument() +describe("BlogPageRouter", () => { + test("renders Home for root path (uses basePath context)", async () => { + renderWithProvider({ path: "/posts" }) + const header = await screen.findByTestId("page-header") + expect(header).toBeInTheDocument() }) - test("renders Post for dynamic slug", () => { - renderWithProvider({ path: "/posts/hello-world", overrides }) - expect(screen.getByTestId("post")).toBeInTheDocument() + test("renders Post for dynamic slug", async () => { + renderWithProvider({ path: "/posts/hello-world" }) + // Will eventually show empty state since no post exists + const emptyState = await screen.findByTestId("empty-state") + expect(emptyState).toBeInTheDocument() }) - test("renders Tag for /tag/:tag", () => { - renderWithProvider({ path: "/posts/tag/react", overrides }) - expect(screen.getByTestId("tag")).toBeInTheDocument() + test("renders Tag for /tag/:tag", async () => { + renderWithProvider({ path: "/posts/tag/react" }) + const header = await screen.findByTestId("page-header") + expect(header).toBeInTheDocument() }) - test("renders Drafts for /drafts", () => { - renderWithProvider({ path: "/posts/drafts", overrides }) - expect(screen.getByTestId("drafts")).toBeInTheDocument() + test("renders Drafts for /drafts", async () => { + renderWithProvider({ path: "/posts/drafts" }) + // Wait for Suspense to resolve + const header = await screen.findByTestId("page-header") + expect(header).toBeInTheDocument() }) - test("renders New for /new", () => { - renderWithProvider({ path: "/posts/new", overrides }) - expect(screen.getByTestId("new")).toBeInTheDocument() + test("renders New for /new", async () => { + renderWithProvider({ path: "/posts/new" }) + const header = await screen.findByTestId("page-header") + expect(header).toBeInTheDocument() }) - test("renders Edit for /:slug/edit", () => { - renderWithProvider({ path: "/posts/my-post/edit", overrides }) - expect(screen.getByTestId("edit")).toBeInTheDocument() + test("renders Edit for /:slug/edit", async () => { + renderWithProvider({ path: "/posts/my-post/edit" }) + // Will eventually show empty state since no post exists + const emptyState = await screen.findByTestId("empty-state") + expect(emptyState).toBeInTheDocument() }) }) describe("BlogPageRouter NotFound behavior", () => { - test("renders default NotFound with unknown route message when no override", () => { + test("renders default NotFound with unknown route message", async () => { renderWithProvider({ path: "/posts/does-not-exist/deep" }) - // Default NotFound renders a heading and the routeMatch.metadata.title as message - expect(screen.getByText("Not Found")).toBeInTheDocument() + // Default NotFound renders error placeholder with localized strings + const errorPlaceholder = await screen.findByTestId("error-placeholder") + expect(errorPlaceholder).toBeInTheDocument() expect( screen.getByText(/Unknown route: \/does-not-exist\/deep/) ).toBeInTheDocument() }) - test("uses NotFoundComponent override and passes message", () => { - const NotFoundComponent = ({ message }: { message: string }) => ( -
Custom Not Found: {message}
- ) - - renderWithProvider({ - path: "/posts/does-not-exist/deep", - overrides: { NotFoundComponent } - }) - - const el = screen.getByTestId("not-found") - expect(el).toBeInTheDocument() - expect(el.textContent).toContain("Unknown route: /does-not-exist/deep") - }) - - test('basePath normalization works for "posts" (no slashes)', () => { - renderWithProvider({ path: "/posts/new", overrides, basePath: "posts" }) - expect(screen.getByTestId("new")).toBeInTheDocument() + test('basePath normalization works for "posts" (no slashes)', async () => { + renderWithProvider({ path: "/posts/new", basePath: "posts" }) + const header = await screen.findByTestId("page-header") + expect(header).toBeInTheDocument() }) - test('basePath normalization works for "/posts/" (leading and trailing slash)', () => { + test('basePath normalization works for "/posts/" (leading and trailing slash)', async () => { renderWithProvider({ path: "/posts/new", - overrides, basePath: "/posts/" }) - expect(screen.getByTestId("new")).toBeInTheDocument() + const header = await screen.findByTestId("page-header") + expect(header).toBeInTheDocument() }) }) diff --git a/packages/better-blog/src/components/better-blog/blog-router-page.tsx b/packages/better-blog/src/components/better-blog/blog-router-page.tsx index b30d901..4030e96 100644 --- a/packages/better-blog/src/components/better-blog/blog-router-page.tsx +++ b/packages/better-blog/src/components/better-blog/blog-router-page.tsx @@ -1,18 +1,26 @@ "use client" +import { DefaultError } from "@/components/better-blog/default-error" import { ErrorPlaceholder } from "@/components/better-blog/error-placeholder" +import { ListPageSkeleton } from "@/components/better-blog/list-page-skeleton" import { BlogContext } from "@/context/better-blog-context" import { useBlogContext } from "@/hooks/context-hooks" -import { usePageOverrides } from "@/hooks/context-hooks" import type { RouteMatch } from "@/types" import React, { Suspense } from "react" import { RouteProvider } from "../../context/route-context" - +import { blogRouterClient } from "../../router/blog-router-client" import { matchRoute } from "../../router/router" -import { resolveErrorComponent } from "@/router/error-resolver" -import { resolveLoadingComponent } from "@/router/loading-resolver" -import { resolvePageComponent } from "@/router/page-resolver" + + +// Default loading component +function PostsLoading() { + return ( +
+ +
+ ) +} // Not Found route placeholder using localized strings function NotFoundPage({ message }: { message: string }) { @@ -25,32 +33,32 @@ function NotFoundPage({ message }: { message: string }) { // Internal component that renders based on routeMatch function BlogPageRouterContent({ routeMatch, - NotFoundComponent = NotFoundPage + NotFoundComponent = NotFoundPage, + path }: { routeMatch: RouteMatch NotFoundComponent?: React.ComponentType<{ message: string }> + path: string }) { - // Components get route data via useRoute hook - no prop drilling needed! - // Get page overrides from context - const pageOverrides = usePageOverrides() + // Use yar router to get the route with all components + const route = blogRouterClient.getRoute(path) - // Resolve the component from the client-side component mappings with overrides - const Component = resolvePageComponent(routeMatch.type, pageOverrides) - const ErrorComponent = resolveErrorComponent(routeMatch.type, pageOverrides) - const LoadingComponent = resolveLoadingComponent( - routeMatch.type, - pageOverrides - ) + if (route) { + // Get components from the route, with simple fallbacks + const PageComponent = route.PageComponent + const ErrorComponent = route.ErrorComponent || DefaultError + const LoadingComponent = route.LoadingComponent || PostsLoading - if (Component) { - const fallback = LoadingComponent ? : null - return ( - - - - - - ) + if (PageComponent) { + const fallback = LoadingComponent ? : null + return ( + + + + + + ) + } } // Fallback for unknown routes @@ -90,26 +98,31 @@ class RouteErrorBoundary extends React.Component< } } -// Main component that takes slug and handles routing + context internally +// Main component that handles routing using yar export function BlogPageRouter({ path }: { path?: string }) { const { basePath } = useBlogContext() - const routeMatch = matchRoute(path?.split("/").filter(Boolean), basePath) - - // Get page overrides from context to extract NotFoundComponent - const pageOverrides = usePageOverrides() - const NotFoundComponent = pageOverrides?.NotFoundComponent + const pathSegments = path?.split("/").filter(Boolean) || [] + + // Strip basePath if present + let normalizedPath = pathSegments + if ( + basePath && + pathSegments[0] === basePath.split("/").filter(Boolean)[0] + ) { + normalizedPath = pathSegments.slice(1) + } + + const fullPath = normalizedPath.length ? `/${normalizedPath.join("/")}` : "/" + const routeMatch = matchRoute(pathSegments, basePath) return (
- +
) diff --git a/packages/better-blog/src/components/better-blog/default-error.tsx b/packages/better-blog/src/components/better-blog/default-error.tsx new file mode 100644 index 0000000..8f426cd --- /dev/null +++ b/packages/better-blog/src/components/better-blog/default-error.tsx @@ -0,0 +1,12 @@ +"use client" +import { useBlogContext } from "@/hooks/context-hooks" +import { ErrorPlaceholder } from "./error-placeholder" + + +// Default error component +export function DefaultError({ message }: { message?: string }) { + const { localization } = useBlogContext() + const title = localization.BLOG_LIST_ERROR_TITLE + const desc = message ?? localization.BLOG_LIST_ERROR + return +} \ No newline at end of file diff --git a/packages/better-blog/src/components/better-blog/loading.tsx b/packages/better-blog/src/components/better-blog/loading.tsx index aa77bb1..41883b7 100644 --- a/packages/better-blog/src/components/better-blog/loading.tsx +++ b/packages/better-blog/src/components/better-blog/loading.tsx @@ -1,30 +1,33 @@ -// Re-export loading components from the server-safe loading resolver -// This maintains backward compatibility while ensuring the components -// can be used on both client and server in Next.js -export { - FormLoading, - PostsLoading, - PostLoading -} from "../../router/loading-resolver" +// Loading components are now defined in individual routes via yar +// Users can create custom routes with their own loading states -// For backward compatibility, we'll keep the defaultLoadingComponents export -// but import it from the loading resolver -import type { RouteMatch } from "@/types" -import { - FormLoading, - PostLoading, - PostsLoading -} from "../../router/loading-resolver" +import { FormPageSkeleton } from "./form-page-skeleton" +import { ListPageSkeleton } from "./list-page-skeleton" +import { PostPageSkeleton } from "./post-page-skeleton" -export const defaultLoadingComponents: Record< - RouteMatch["type"], - React.ComponentType -> = { - home: PostsLoading, - post: PostLoading, - tag: PostsLoading, - drafts: PostsLoading, - new: FormLoading, - edit: FormLoading, - unknown: PostLoading -} as const +export { FormPageSkeleton, ListPageSkeleton, PostPageSkeleton } + +// Export default loading components for backward compatibility +export function FormLoading() { + return ( +
+ +
+ ) +} + +export function PostsLoading() { + return ( +
+ +
+ ) +} + +export function PostLoading() { + return ( +
+ +
+ ) +} diff --git a/packages/better-blog/src/providers/memory/memory-provider.ts b/packages/better-blog/src/providers/memory/memory-provider.ts index 17efe0e..f37eb4e 100644 --- a/packages/better-blog/src/providers/memory/memory-provider.ts +++ b/packages/better-blog/src/providers/memory/memory-provider.ts @@ -237,13 +237,18 @@ export async function createSeededMemoryProvider( ): Promise { const rawPosts = getTestPosts() const authorId = "1" - const author = (await options?.getAuthor?.(authorId)) ?? - rawPosts[0]?.author ?? { id: authorId, name: "John Doe" } - const posts = rawPosts.map((post) => ({ - ...post, - authorId, - author - })) + const baseAuthor = + (await options?.getAuthor?.(authorId)) ?? + { id: authorId, name: "John Doe" } + const posts = rawPosts.map((post) => { + const effectiveAuthor = post.author ?? baseAuthor + return { + ...post, + authorId, + // Clone to avoid shared object references that some serializers encode as circular refs + author: effectiveAuthor ? { ...effectiveAuthor } : null + } + }) return createMemoryProvider({ seedPosts: posts, ...options }) } diff --git a/packages/better-blog/src/router/blog-router-client.tsx b/packages/better-blog/src/router/blog-router-client.tsx new file mode 100644 index 0000000..6790e19 --- /dev/null +++ b/packages/better-blog/src/router/blog-router-client.tsx @@ -0,0 +1,36 @@ +"use client" + +// Client-side blog router with components +import { createRouter } from "@olliethedev/yar" +import { + draftsRoute, + editPostRoute, + homeRoute, + newPostRoute, + postRoute, + tagRoute +} from "./pluggable-routes" + +/** + * All blog routes with components in a single object + * Order matters: more specific routes should come before dynamic ones + */ +const clientRoutes = { + home: homeRoute, + new: newPostRoute, + drafts: draftsRoute, + tag: tagRoute, + edit: editPostRoute, + post: postRoute +} as const + +/** + * Create and export the client-side blog router instance with components + */ +export const blogRouterClient = createRouter(clientRoutes) + +/** + * Export route type for type inference + */ +export type BlogRoutesClient = typeof clientRoutes + diff --git a/packages/better-blog/src/router/blog-router.ts b/packages/better-blog/src/router/blog-router.ts new file mode 100644 index 0000000..d334678 --- /dev/null +++ b/packages/better-blog/src/router/blog-router.ts @@ -0,0 +1,33 @@ +// Blog router instance using yar +import { createRouter } from "@olliethedev/yar" +import { + draftsRoute, + editPostRoute, + homeRoute, + newPostRoute, + postRoute, + tagRoute +} from "./routes" + +/** + * All blog routes in a single object + * Order matters: more specific routes should come before dynamic ones + */ +const routes = { + home: homeRoute, + new: newPostRoute, + drafts: draftsRoute, + tag: tagRoute, + edit: editPostRoute, + post: postRoute +} as const + +/** + * Create and export the blog router instance + */ +export const blogRouter = createRouter(routes) + +/** + * Export route type for type inference + */ +export type BlogRoutes = typeof routes diff --git a/packages/better-blog/src/router/error-resolver.tsx b/packages/better-blog/src/router/error-resolver.tsx deleted file mode 100644 index 2cac548..0000000 --- a/packages/better-blog/src/router/error-resolver.tsx +++ /dev/null @@ -1,77 +0,0 @@ -// This file is intentionally kept separate from client components to ensure -// it can be used on both server and client in environments like Next.js - -import { ErrorPlaceholder } from "@/components/better-blog/error-placeholder" -import { useBlogContext } from "@/hooks/context-hooks" -import type { PageComponentOverrides, RouteMatch } from "@/types" - -function DefaultError({ message }: { message?: string }) { - // Pull localized strings - const { localization } = useBlogContext() - const title = localization.BLOG_LIST_ERROR_TITLE - const desc = message ?? localization.BLOG_LIST_ERROR - return -} - -// Default error components per route -const defaultErrorComponents: Record< - RouteMatch["type"], - React.ComponentType<{ message?: string }> -> = { - home: DefaultError, - post: DefaultError, - tag: DefaultError, - drafts: DefaultError, - new: DefaultError, - edit: DefaultError, - unknown: DefaultError -} as const - -/** - * Resolves the final error component for a route type, applying overrides. - * Server-safe: does not import client-only modules. - */ -export function resolveErrorComponent( - routeType: RouteMatch["type"], - overrides?: PageComponentOverrides -): React.ComponentType<{ message?: string }> | undefined { - if (routeType === "unknown" || !(routeType in defaultErrorComponents)) { - return undefined - } - - const type = routeType - - if (overrides) { - switch (type) { - case "home": - return ( - overrides.HomeErrorComponent || defaultErrorComponents.home - ) - case "post": - return ( - overrides.PostErrorComponent || defaultErrorComponents.post - ) - case "tag": - return overrides.TagErrorComponent || defaultErrorComponents.tag - case "drafts": - return ( - overrides.DraftsErrorComponent || - defaultErrorComponents.drafts - ) - case "new": - return ( - overrides.NewPostErrorComponent || - defaultErrorComponents.new - ) - case "edit": - return ( - overrides.EditPostErrorComponent || - defaultErrorComponents.edit - ) - } - } - - return defaultErrorComponents[type] -} - -export { DefaultError } diff --git a/packages/better-blog/src/router/index.ts b/packages/better-blog/src/router/index.ts index efb9014..bf67263 100644 --- a/packages/better-blog/src/router/index.ts +++ b/packages/better-blog/src/router/index.ts @@ -1,7 +1,11 @@ +// Core router exports (server-safe, no component imports) export * from "./router" export * from "./types" -// export { resolveLoadingComponent } from "./loading-resolver" -// export { resolveErrorComponent } from "./error-resolver" -// export { resolvePageComponent } from "./page-resolver" +export * from "./routes" +export { blogRouter, type BlogRoutes } from "./blog-router" export { resolveMetadata, resolveSEO } from "./meta-resolver" export { buildTanStackHead } from "./tanstack-head" + +// Client-side exports (for use in client components) +export { blogRouterClient, type BlogRoutesClient } from "./blog-router-client" +export * as clientRoutes from "./pluggable-routes" diff --git a/packages/better-blog/src/router/loading-resolver.tsx b/packages/better-blog/src/router/loading-resolver.tsx deleted file mode 100644 index 06655cf..0000000 --- a/packages/better-blog/src/router/loading-resolver.tsx +++ /dev/null @@ -1,104 +0,0 @@ -// This file is intentionally kept separate from client components to ensure -// it can be used on both server and client in environments like Next.js - -import type { PageComponentOverrides, RouteMatch } from "@/types" -import { FormPageSkeleton } from "../components/better-blog/form-page-skeleton" -import { ListPageSkeleton } from "../components/better-blog/list-page-skeleton" -import { PostPageSkeleton } from "../components/better-blog/post-page-skeleton" - -// Define loading components using the skeleton components directly -// This avoids importing from a file that might have client dependencies -function FormLoading() { - return ( -
- -
- ) -} - -function PostsLoading() { - return ( -
- -
- ) -} - -function PostLoading() { - return ( -
- -
- ) -} - -// Create the default loading components map -const defaultLoadingComponents: Record< - RouteMatch["type"], - React.ComponentType -> = { - home: PostsLoading, - post: PostLoading, - tag: PostsLoading, - drafts: PostsLoading, - new: FormLoading, - edit: FormLoading, - unknown: PostLoading -} as const - -/** - * Resolves the final loading component for a route type, applying overrides - * This function is designed to work on both server and client - */ -export function resolveLoadingComponent( - routeType: RouteMatch["type"], - overrides?: PageComponentOverrides -): React.ComponentType | undefined { - // Handle unknown route types early - if (routeType === "unknown" || !(routeType in defaultLoadingComponents)) { - return undefined - } - - const type = routeType - - // Check for override first - if (overrides) { - switch (type) { - case "home": - return ( - overrides.HomeLoadingComponent || - defaultLoadingComponents.home - ) - case "post": - return ( - overrides.PostLoadingComponent || - defaultLoadingComponents.post - ) - case "tag": - return ( - overrides.TagLoadingComponent || - defaultLoadingComponents.tag - ) - case "drafts": - return ( - overrides.DraftsLoadingComponent || - defaultLoadingComponents.drafts - ) - case "new": - return ( - overrides.NewPostLoadingComponent || - defaultLoadingComponents.new - ) - case "edit": - return ( - overrides.EditPostLoadingComponent || - defaultLoadingComponents.edit - ) - } - } - - // Fall back to default - return defaultLoadingComponents[type] -} - -export { FormLoading, PostsLoading, PostLoading } diff --git a/packages/better-blog/src/router/page-resolver.tsx b/packages/better-blog/src/router/page-resolver.tsx deleted file mode 100644 index e2e25b6..0000000 --- a/packages/better-blog/src/router/page-resolver.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import type { PageComponentOverrides, RouteMatch } from "@/types" - -import { - DraftsPageComponent, - EditPostPageComponent, - HomePageComponent, - NewPostPageComponent, - PostPageComponent, - TagPageComponent -} from "@/components/better-blog/pages" - -// Default component mappings (excluding 'unknown' type) -const defaultComponents = { - home: HomePageComponent, - post: PostPageComponent, - tag: TagPageComponent, - drafts: DraftsPageComponent, - new: NewPostPageComponent, - edit: EditPostPageComponent -} as const - -/** - * Resolves the final component for a route type, applying overrides - */ -export function resolvePageComponent( - routeType: RouteMatch["type"], - overrides?: PageComponentOverrides -): React.ComponentType | undefined { - // Handle unknown route types early - if (routeType === "unknown" || !(routeType in defaultComponents)) { - return undefined - } - - const type = routeType - - // Check for override first - if (overrides) { - switch (type) { - case "home": - return overrides.HomeComponent || defaultComponents.home - case "post": - return overrides.PostComponent || defaultComponents.post - case "tag": - return overrides.TagComponent || defaultComponents.tag - case "drafts": - return overrides.DraftsComponent || defaultComponents.drafts - case "new": - return overrides.NewPostComponent || defaultComponents.new - case "edit": - return overrides.EditPostComponent || defaultComponents.edit - } - } - - // Fall back to default - return defaultComponents[type] -} diff --git a/packages/better-blog/src/router/pluggable-routes.tsx b/packages/better-blog/src/router/pluggable-routes.tsx new file mode 100644 index 0000000..d6f1077 --- /dev/null +++ b/packages/better-blog/src/router/pluggable-routes.tsx @@ -0,0 +1,147 @@ +"use client" + +import { FormPageSkeleton } from "@/components/better-blog/form-page-skeleton" +import { ListPageSkeleton } from "@/components/better-blog/list-page-skeleton" +import { + DraftsPageComponent, + EditPostPageComponent, + HomePageComponent, + NewPostPageComponent, + PostPageComponent, + TagPageComponent +} from "@/components/better-blog/pages" +import { PostPageSkeleton } from "@/components/better-blog/post-page-skeleton" + +import { DefaultError } from "@/components/better-blog/default-error" +// Pluggable route definitions with components for client-side use +import { createRoute } from "@olliethedev/yar" + +// Default loading components +function FormLoading() { + return ( +
+ +
+ ) +} + +function PostsLoading() { + return ( +
+ +
+ ) +} + +function PostLoading() { + return ( +
+ +
+ ) +} + +/** + * Home route with components - displays list of all published posts + * Path: / + */ +export const homeRoute = createRoute( + "/", + () => ({ + PageComponent: HomePageComponent, + LoadingComponent: PostsLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: "Blog Posts" }, + { name: "description", content: "Latest blog posts" } + ] + }) +) + +/** + * Post route with components - displays a single post by slug + * Path: /:slug + */ +export const postRoute = createRoute( + "/:slug", + ({ params }) => ({ + PageComponent: PostPageComponent, + LoadingComponent: PostLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: `Post: ${params.slug || ""}` }, + { name: "description", content: "Blog post content" } + ] + }) +) + +/** + * Tag route with components - displays posts filtered by tag + * Path: /tag/:tag + */ +export const tagRoute = createRoute( + "/tag/:tag", + ({ params }) => ({ + PageComponent: TagPageComponent, + LoadingComponent: PostsLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: `Posts tagged: ${params.tag || ""}` }, + { + name: "description", + content: `All posts tagged with ${params.tag || ""}` + } + ] + }) +) + +/** + * Drafts route with components - displays all draft posts + * Path: /drafts + */ +export const draftsRoute = createRoute( + "/drafts", + () => ({ + PageComponent: DraftsPageComponent, + LoadingComponent: PostsLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: "My Drafts" }, + { name: "description", content: "Draft posts" } + ] + }) +) + +/** + * New post route with components - form to create a new post + * Path: /new + */ +export const newPostRoute = createRoute( + "/new", + () => ({ + PageComponent: NewPostPageComponent, + LoadingComponent: FormLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: "Create New Post" }, + { name: "description", content: "Create a new blog post" } + ] + }) +) + +/** + * Edit post route with components - form to edit an existing post + * Path: /:slug/edit + */ +export const editPostRoute = createRoute( + "/:slug/edit", + ({ params }) => ({ + PageComponent: EditPostPageComponent, + LoadingComponent: FormLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: `Editing: ${params.slug || ""}` }, + { name: "description", content: "Edit blog post" } + ] + }) +) diff --git a/packages/better-blog/src/router/router.ts b/packages/better-blog/src/router/router.ts index 2b62254..b947a85 100644 --- a/packages/better-blog/src/router/router.ts +++ b/packages/better-blog/src/router/router.ts @@ -1,26 +1,10 @@ import type { RouteMatch } from "@/types" -import { - addRoute as addRou3Route, - createRouter as createRou3Router, - findRoute as rou3FindRoute -} from "rou3" -import { routeSchema } from "./routes" -import type { RouteDefinition } from "./types" - -// Build a singleton rou3 router from our route schema -const __rou3Router = (() => { - const router = createRou3Router() - for (let index = 0; index < routeSchema.routes.length; index++) { - const routeDef = routeSchema.routes[index] - const path = routeDef.pattern.length - ? `/${routeDef.pattern.join("/")}` - : "/" - // Store routeDef in payload for selection - addRou3Route(router, "GET", path, routeDef) - } - return router -})() +import { blogRouter } from "./blog-router" +/** + * Match a route based on path segments and return route information + * Uses yar's synchronous getRoute (v1.0.3+) for route matching + */ export function matchRoute( pathSegments?: string[], basePath?: string @@ -36,42 +20,86 @@ export function matchRoute( const path = normalizedSlug.length ? `/${normalizedSlug.join("/")}` : "/" - // Find all potential matches via rou3, then pick the most specific - const match = rou3FindRoute(__rou3Router, "GET", path) - if (match) { + // Use yar's synchronous getRoute to match the route + const route = blogRouter.getRoute(path) + + if (route) { + const { meta, params } = route + const metaTags = meta ? meta() : [] + + // Extract title and description from meta tags + const titleTag = metaTags.find( + ( + tag: React.JSX.IntrinsicElements["meta"] | undefined + ): tag is React.JSX.IntrinsicElements["meta"] => + tag !== undefined && "name" in tag && tag.name === "title" + ) + const descriptionTag = metaTags.find( + ( + tag: React.JSX.IntrinsicElements["meta"] | undefined + ): tag is React.JSX.IntrinsicElements["meta"] => + tag !== undefined && "name" in tag && tag.name === "description" + ) + + const title = + (titleTag && "content" in titleTag ? titleTag.content : undefined) || + "Untitled" + const description = + descriptionTag && "content" in descriptionTag + ? descriptionTag.content + : undefined + + // Determine route type from path and params + const type = determineRouteType(path, params) + return { - type: match.data.type, - params: match.params, - metadata: resolveMetadata(match.data, match.params ?? {}) + type, + params, + metadata: { + title, + description + } } } + // Return unknown route if no match return { type: "unknown", metadata: { title: `Unknown route: ${path}` } } -} /** - * Resolves metadata from route definition, handling both static and dynamic values - */ +} -function resolveMetadata( - routeDef: RouteDefinition, - params: Record -): { title: string; description?: string; image?: string } { - const resolveValue = ( - value: string | ((params: Record) => string) | undefined - ): string | undefined => { - if (typeof value === "function") { - return value(params) - } - return value +/** + * Determine the route type based on path and params + */ +function determineRouteType( + path: string, + params?: Record +): RouteMatch["type"] { + if (path === "/") { + return "home" } - - return { - title: resolveValue(routeDef.metadata.title) || "Untitled", - description: resolveValue(routeDef.metadata.description), - image: resolveValue(routeDef.metadata.image) + if (path === "/new") { + return "new" + } + if (path === "/drafts") { + return "drafts" } + if (path.startsWith("/tag/")) { + return "tag" + } + if (path.endsWith("/edit") && params?.slug) { + return "edit" + } + if (params?.slug) { + return "post" + } + return "unknown" } + +/** + * Export the blog router for advanced use cases + */ +export { blogRouter } from "./blog-router" diff --git a/packages/better-blog/src/router/routes.ts b/packages/better-blog/src/router/routes.ts new file mode 100644 index 0000000..a409ded --- /dev/null +++ b/packages/better-blog/src/router/routes.ts @@ -0,0 +1,91 @@ +// Server-safe route definitions (no component imports) +// This file can be imported in both server and client contexts +import { createRoute } from "@olliethedev/yar" + +/** + * Home route - displays list of all published posts + * Path: / + */ +export const homeRoute = createRoute( + "/", + () => ({ + meta: () => [ + { name: "title", content: "Blog Posts" }, + { name: "description", content: "Latest blog posts" } + ] + }) +) + +/** + * Post route - displays a single post by slug + * Path: /:slug + */ +export const postRoute = createRoute( + "/:slug", + ({ params }) => ({ + meta: () => [ + { name: "title", content: `Post: ${params.slug || ""}` }, + { name: "description", content: "Blog post content" } + ] + }) +) + +/** + * Tag route - displays posts filtered by tag + * Path: /tag/:tag + */ +export const tagRoute = createRoute( + "/tag/:tag", + ({ params }) => ({ + meta: () => [ + { name: "title", content: `Posts tagged: ${params.tag || ""}` }, + { + name: "description", + content: `All posts tagged with ${params.tag || ""}` + } + ] + }) +) + +/** + * Drafts route - displays all draft posts + * Path: /drafts + */ +export const draftsRoute = createRoute( + "/drafts", + () => ({ + meta: () => [ + { name: "title", content: "My Drafts" }, + { name: "description", content: "Draft posts" } + ] + }) +) + +/** + * New post route - form to create a new post + * Path: /new + */ +export const newPostRoute = createRoute( + "/new", + () => ({ + meta: () => [ + { name: "title", content: "Create New Post" }, + { name: "description", content: "Create a new blog post" } + ] + }) +) + +/** + * Edit post route - form to edit an existing post + * Path: /:slug/edit + */ +export const editPostRoute = createRoute( + "/:slug/edit", + ({ params }) => ({ + meta: () => [ + { name: "title", content: `Editing: ${params.slug || ""}` }, + { name: "description", content: "Edit blog post" } + ] + }) +) + diff --git a/packages/better-blog/src/router/routes.tsx b/packages/better-blog/src/router/routes.tsx deleted file mode 100644 index 9869aaf..0000000 --- a/packages/better-blog/src/router/routes.tsx +++ /dev/null @@ -1,68 +0,0 @@ -// Server-safe route definitions (no React component imports) -import type { RouteSchema } from "./types" -import type { RouteDefinition } from "./types" - -const routes: RouteDefinition[] = [ - { - type: "home", - pattern: [], - staticRoutes: [{ slug: [] }], - metadata: { - title: "Blog Posts", - description: "Latest blog posts" - } - }, - - { - type: "post", - pattern: [":slug"], - metadata: { - title: (params) => `Post: ${params.slug}`, - description: "Blog post content" - } - }, - - { - type: "tag", - pattern: ["tag", ":tag"], - metadata: { - title: (params) => `Posts tagged: ${params.tag}`, - description: (params) => `All posts tagged with ${params.tag}` - } - }, - - { - type: "drafts", - pattern: ["drafts"], - staticRoutes: [{ slug: ["drafts"] }], - metadata: { - title: "My Drafts", - description: "Draft posts" - } - }, - - { - type: "new", - pattern: ["new"], - staticRoutes: [{ slug: ["new"] }], - metadata: { - title: "Create New Post", - description: "Create a new blog post" - } - - // No data handler needed for new post page - }, - - { - type: "edit", - pattern: [":slug", "edit"], - metadata: { - title: (params) => `Editing: ${params.slug}`, - description: "Edit blog post" - } - } -] - -export const routeSchema: RouteSchema = { - routes -} diff --git a/packages/better-blog/src/server/pages/server-adapter.tsx b/packages/better-blog/src/server/pages/server-adapter.tsx index d5c6e87..5ad7277 100644 --- a/packages/better-blog/src/server/pages/server-adapter.tsx +++ b/packages/better-blog/src/server/pages/server-adapter.tsx @@ -1,5 +1,4 @@ import { resolveMetadata, resolveSEO } from "@/router/meta-resolver" -import { routeSchema } from "@/router/routes" import type { BlogDataProvider, BlogPageMetadata, @@ -143,14 +142,13 @@ function mapSeoToNextMetadata( } function generateStaticRoutes(): Array<{ slug: string[] }> { - const staticRoutes: Array<{ slug: string[] }> = [] - - // Collect static routes from all route definitions - for (const routeDef of routeSchema.routes) { - if (routeDef.staticRoutes) { - staticRoutes.push(...routeDef.staticRoutes) - } - } + // Static routes for SSG generation + // These are the routes that don't require dynamic parameters + const staticRoutes: Array<{ slug: string[] }> = [ + { slug: [] }, // home route + { slug: ["new"] }, // new post route + { slug: ["drafts"] } // drafts route + ] return staticRoutes } diff --git a/packages/better-blog/src/types/index.ts b/packages/better-blog/src/types/index.ts index ed60264..68f24f7 100644 --- a/packages/better-blog/src/types/index.ts +++ b/packages/better-blog/src/types/index.ts @@ -57,6 +57,13 @@ export interface RouteMatch { image?: string } } +/** + * @deprecated PageComponentOverrides is deprecated in favor of creating custom routes with yar. + * Instead of using pageOverrides, create custom routes using createRoute from @olliethedev/yar + * and combine them with Better Blog's routes. + * + * This interface is kept for backward compatibility but will be removed in a future version. + */ export interface PageComponentOverrides { HomeComponent?: React.ComponentType PostComponent?: React.ComponentType diff --git a/packages/better-blog/tsup.config.ts b/packages/better-blog/tsup.config.ts index c2df8a2..b83793d 100644 --- a/packages/better-blog/tsup.config.ts +++ b/packages/better-blog/tsup.config.ts @@ -11,6 +11,7 @@ export default defineConfig((env) => { queries: "./src/queries/index.ts", hooks: "./src/hooks/index.ts", router: "./src/router/index.ts", + "router/client": "./src/router/pluggable-routes.tsx", context: "./src/context/index.ts", api: "./src/api/index.ts", "server/pages": "./src/server/pages/index.tsx", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e5d9842..9ee5b71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ importers: version: 1.9.4 turbo: specifier: ^2.5.5 - version: 2.5.5 + version: 2.5.8 apps/docs: dependencies: @@ -28,28 +28,28 @@ importers: version: link:../../packages/better-blog framer-motion: specifier: ^12.19.1 - version: 12.23.12(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 12.23.22(react-dom@19.1.1(react@19.1.1))(react@19.1.1) fumadocs-core: specifier: 15.7.11 - version: 15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + version: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) fumadocs-docgen: specifier: ^3.0.0 - version: 3.0.0(fumadocs-core@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)) + version: 3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)) fumadocs-mdx: specifier: 11.9.1 - version: 11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.5(@types/node@24.0.3)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + version: 11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.7(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) fumadocs-typescript: specifier: ^4.0.8 - version: 4.0.8(@types/react@19.1.9)(fumadocs-core@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.13))(typescript@5.8.3) + version: 4.0.10(@types/react@19.1.16)(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3) fumadocs-ui: specifier: 15.7.11 - version: 15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.13) + version: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) lucide-react: specifier: ^0.522.0 version: 0.522.0(react@19.1.1) next: specifier: 15.3.4 - version: 15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: specifier: 19.1.1 version: 19.1.1 @@ -61,14 +61,14 @@ importers: version: 5.5.0(react@19.1.1) shiki: specifier: ^3.12.2 - version: 3.12.2 + version: 3.13.0 ts-morph: specifier: ^26.0.0 version: 26.0.0 devDependencies: '@tailwindcss/postcss': specifier: ^4.1.10 - version: 4.1.13 + version: 4.1.14 '@types/mdx': specifier: ^2.0.13 version: 2.0.13 @@ -77,37 +77,37 @@ importers: version: 24.0.3 '@types/react': specifier: ^19.1.8 - version: 19.1.9 + version: 19.1.16 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.7(@types/react@19.1.9) + version: 19.1.9(@types/react@19.1.16) eslint: specifier: ^8 version: 8.57.1 eslint-config-next: specifier: 15.3.4 - version: 15.3.4(eslint@8.57.1)(typescript@5.8.3) + version: 15.3.4(eslint@8.57.1)(typescript@5.9.3) postcss: specifier: ^8.5.6 version: 8.5.6 tailwindcss: specifier: ^4.1.10 - version: 4.1.13 + version: 4.1.14 typescript: specifier: ^5.8.3 - version: 5.8.3 + version: 5.9.3 apps/examples/nextjs: dependencies: '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.3(@types/react@19.1.9)(react@19.1.1) + version: 1.2.3(@types/react@19.1.16)(react@19.1.1) '@tanstack/react-query': specifier: ^5.84.1 - version: 5.87.4(react@19.1.1) + version: 5.90.2(react@19.1.1) '@tanstack/react-query-devtools': specifier: ^5.85.5 - version: 5.87.4(@tanstack/react-query@5.87.4(react@19.1.1))(react@19.1.1) + version: 5.90.2(@tanstack/react-query@5.90.2(react@19.1.1))(react@19.1.1) better-blog: specifier: workspace:* version: link:../../../packages/better-blog @@ -122,7 +122,7 @@ importers: version: 0.522.0(react@19.1.1) next: specifier: 15.5.3 - version: 15.5.3(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 15.5.3(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) pg: specifier: ^8.12.0 version: 8.16.3 @@ -141,55 +141,55 @@ importers: version: 3.3.1 '@tailwindcss/postcss': specifier: ^4 - version: 4.1.13 + version: 4.1.14 '@types/node': specifier: ^20 - version: 20.19.15 + version: 20.19.19 '@types/pg': specifier: ^8.12.0 version: 8.15.5 '@types/react': specifier: ^19 - version: 19.1.9 + version: 19.1.16 '@types/react-dom': specifier: ^19 - version: 19.1.7(@types/react@19.1.9) + version: 19.1.9(@types/react@19.1.16) dotenv-cli: specifier: ^10.0.0 version: 10.0.0 eslint: specifier: ^9 - version: 9.35.0(jiti@2.5.1) + version: 9.36.0(jiti@2.6.1) eslint-config-next: specifier: 15.5.3 - version: 15.5.3(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) + version: 15.5.3(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) kysely: specifier: ^0.28.5 - version: 0.28.5 + version: 0.28.7 tailwindcss: specifier: ^4 - version: 4.1.13 + version: 4.1.14 tw-animate-css: specifier: ^1.3.8 - version: 1.3.8 + version: 1.4.0 typescript: specifier: ^5 - version: 5.8.3 + version: 5.9.3 apps/examples/react: dependencies: '@radix-ui/react-dropdown-menu': specifier: ^2.1.15 - version: 2.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.3(@types/react@19.1.9)(react@19.1.1) + version: 1.2.3(@types/react@19.1.16)(react@19.1.1) '@tailwindcss/vite': specifier: ^4.1.11 - version: 4.1.13(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + version: 4.1.14(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) '@tanstack/react-query': specifier: ^5.84.1 - version: 5.87.4(react@19.1.1) + version: 5.90.2(react@19.1.1) better-blog: specifier: workspace:* version: link:../../../packages/better-blog @@ -213,62 +213,62 @@ importers: version: 19.1.1(react@19.1.1) react-router-dom: specifier: ^7.7.1 - version: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) tailwind-merge: specifier: ^3.3.1 version: 3.3.1 tw-animate-css: specifier: ^1.3.6 - version: 1.3.8 + version: 1.4.0 devDependencies: '@eslint/js': specifier: ^9.30.1 - version: 9.35.0 + version: 9.36.0 '@originjs/vite-plugin-commonjs': specifier: ^1.0.3 version: 1.0.3 '@tailwindcss/postcss': specifier: ^4.1.11 - version: 4.1.13 + version: 4.1.14 '@types/node': specifier: ^24.2.1 - version: 24.5.1 + version: 24.6.1 '@types/react': specifier: ^19.1.8 - version: 19.1.9 + version: 19.1.16 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.7(@types/react@19.1.9) + version: 19.1.9(@types/react@19.1.16) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.7.0(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + version: 4.7.0(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) eslint: specifier: ^9.30.1 - version: 9.35.0(jiti@2.5.1) + version: 9.36.0(jiti@2.6.1) eslint-plugin-react-hooks: specifier: ^5.2.0 - version: 5.2.0(eslint@9.35.0(jiti@2.5.1)) + version: 5.2.0(eslint@9.36.0(jiti@2.6.1)) eslint-plugin-react-refresh: specifier: ^0.4.20 - version: 0.4.20(eslint@9.35.0(jiti@2.5.1)) + version: 0.4.22(eslint@9.36.0(jiti@2.6.1)) globals: specifier: ^16.3.0 version: 16.4.0 tailwindcss: specifier: ^4.1.11 - version: 4.1.13 + version: 4.1.14 typescript: specifier: ~5.8.3 version: 5.8.3 typescript-eslint: specifier: ^8.35.1 - version: 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) + version: 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) vite: specifier: ^7.0.4 - version: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + version: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) vite-plugin-commonjs: specifier: ^0.10.4 version: 0.10.4 @@ -277,25 +277,25 @@ importers: dependencies: '@tailwindcss/postcss': specifier: ^4.1.12 - version: 4.1.13 + version: 4.1.14 '@tailwindcss/vite': specifier: ^4.1.12 - version: 4.1.13(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + version: 4.1.14(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) '@tanstack/react-query': specifier: ^5.85.5 - version: 5.87.4(react@19.1.1) + version: 5.90.2(react@19.1.1) '@tanstack/react-query-devtools': specifier: ^5.85.5 - version: 5.87.4(@tanstack/react-query@5.87.4(react@19.1.1))(react@19.1.1) + version: 5.90.2(@tanstack/react-query@5.90.2(react@19.1.1))(react@19.1.1) '@tanstack/react-router': specifier: ^1.131.28 - version: 1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@tanstack/react-router-ssr-query': specifier: ^1.131.28 - version: 1.131.49(@tanstack/query-core@5.87.4)(@tanstack/react-query@5.87.4(react@19.1.1))(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.131.48)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.132.27(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.132.27)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@tanstack/react-start': specifier: ^1.131.28 - version: 1.131.48(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.3(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + version: 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) better-blog: specifier: workspace:* version: link:../../../packages/better-blog @@ -322,41 +322,41 @@ importers: version: 3.3.1 tailwindcss: specifier: ^4.1.12 - version: 4.1.13 + version: 4.1.14 vite: specifier: ^7.1.3 - version: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + version: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) zod: specifier: ^4.1.9 - version: 4.1.9 + version: 4.1.11 devDependencies: '@types/react': specifier: ^19.1.11 - version: 19.1.13 + version: 19.1.16 '@types/react-dom': specifier: ^19.1.8 - version: 19.1.9(@types/react@19.1.13) + version: 19.1.9(@types/react@19.1.16) '@vitejs/plugin-react': specifier: ^5.0.1 - version: 5.0.3(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + version: 5.0.4(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) tw-animate-css: specifier: ^1.3.7 - version: 1.3.8 + version: 1.4.0 typescript: specifier: ^5.9.2 - version: 5.9.2 + version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.2)(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + version: 5.1.4(typescript@5.9.3)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) e2e: devDependencies: '@playwright/test': specifier: ^1.48.2 - version: 1.55.0 + version: 1.55.1 tsx: specifier: ^4.20.3 - version: 4.20.3 + version: 4.20.6 packages/better-blog: dependencies: @@ -365,85 +365,88 @@ importers: version: 5.2.2(react-hook-form@7.63.0(react@19.1.1)) '@lukemorales/query-key-factory': specifier: ^1.3.4 - version: 1.3.4(@tanstack/query-core@5.87.4)(@tanstack/react-query@5.87.4(react@19.1.1)) + version: 1.3.4(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1)) '@milkdown/crepe': specifier: ^7.15.3 - version: 7.15.3(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.40.1)(typescript@5.8.3) + version: 7.16.0(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.41.2)(typescript@5.9.3) '@milkdown/kit': specifier: ^7.15.3 - version: 7.15.3(@codemirror/language@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(typescript@5.8.3) + version: 7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3) + '@olliethedev/yar': + specifier: 1.0.5 + version: 1.0.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16) '@radix-ui/react-accordion': specifier: '>=1.2.0' - version: 1.2.12(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-alert-dialog': specifier: '>=1.1.0' - version: 1.1.14(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-avatar': specifier: '>=1.1.0' - version: 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-checkbox': specifier: '>=1.1.0' - version: 1.3.2(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.3.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-context': specifier: '>=1.1.0' - version: 1.1.2(@types/react@19.1.9)(react@19.1.1) + version: 1.1.2(@types/react@19.1.16)(react@19.1.1) '@radix-ui/react-dialog': specifier: '>=1.1.0' - version: 1.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-dropdown-menu': specifier: '>=2.1.0' - version: 2.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-icons': specifier: '>=1.1.0' version: 1.3.2(react@19.1.1) '@radix-ui/react-label': specifier: '>=2.1.0' - version: 2.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-popover': specifier: '>=1.1.0' - version: 1.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-primitive': specifier: '>=2.0.0' - version: 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-radio-group': specifier: '>=1.3.0' - version: 1.3.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.3.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-select': specifier: '>=2.2.0' - version: 2.2.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.2.6(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-separator': specifier: '>=1.1.0' - version: 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-slot': specifier: '>=1.1.0' - version: 1.2.3(@types/react@19.1.9)(react@19.1.1) + version: 1.2.3(@types/react@19.1.16)(react@19.1.1) '@radix-ui/react-switch': specifier: '>=1.1.0' - version: 1.2.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.6(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-tabs': specifier: '>=1.1.0' - version: 1.1.13(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.13(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-toggle': specifier: '>=1.1.0' - version: 1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-toggle-group': specifier: '>=1.1.0' - version: 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-tooltip': specifier: '>=1.2.0' - version: 1.2.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-use-callback-ref': specifier: '>=1.1.0' - version: 1.1.1(@types/react@19.1.9)(react@19.1.1) + version: 1.1.1(@types/react@19.1.16)(react@19.1.1) '@radix-ui/react-use-layout-effect': specifier: '>=1.1.0' - version: 1.1.1(@types/react@19.1.9)(react@19.1.1) + version: 1.1.1(@types/react@19.1.16)(react@19.1.1) '@tanstack/react-query': specifier: '>=5.66.0' - version: 5.87.4(react@19.1.1) + version: 5.90.2(react@19.1.1) '@types/bun': specifier: ^1.2.20 - version: 1.2.21(@types/react@19.1.9) + version: 1.2.23(@types/react@19.1.16) better-call: specifier: 1.0.19 version: 1.0.19 @@ -455,7 +458,7 @@ importers: version: 2.1.1 cmdk: specifier: '>=1.1.0' - version: 1.1.1(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.1(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) date-fns: specifier: '>=4.1.0' version: 4.1.0 @@ -464,7 +467,7 @@ importers: version: 11.11.1 lucide-react: specifier: '>=0.469.0' - version: 0.522.0(react@19.1.1) + version: 0.542.0(react@19.1.1) next-themes: specifier: '>=0.4.0' version: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -473,7 +476,7 @@ importers: version: 19.1.1 react-day-picker: specifier: '>=9.8.1' - version: 9.8.1(react@19.1.1) + version: 9.11.0(react@19.1.1) react-dom: specifier: 19.1.1 version: 19.1.1(react@19.1.1) @@ -482,16 +485,13 @@ importers: version: 7.63.0(react@19.1.1) react-markdown: specifier: '>=10.1.0' - version: 10.1.0(@types/react@19.1.9)(react@19.1.1) + version: 10.1.0(@types/react@19.1.16)(react@19.1.1) rehype-highlight: specifier: '>=7.0.0' version: 7.0.2 remark-gfm: specifier: '>=4.0.0' version: 4.0.1 - rou3: - specifier: ^0.7.5 - version: 0.7.5 sonner: specifier: '>=1.7.0' version: 2.0.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -500,14 +500,14 @@ importers: version: 3.3.1 tailwindcss: specifier: '>=3.0.0' - version: 4.1.13 + version: 4.1.14 zod: specifier: '>=3.24.0' - version: 4.1.9 + version: 4.1.11 devDependencies: '@babel/preset-env': specifier: ^7.28.3 - version: 7.28.3(@babel/core@7.28.0) + version: 7.28.3(@babel/core@7.28.4) '@biomejs/biome': specifier: 1.9.4 version: 1.9.4 @@ -516,13 +516,13 @@ importers: version: 5.22.0(prisma@5.22.0) '@tailwindcss/typography': specifier: ^0.5.16 - version: 0.5.16(tailwindcss@4.1.13) + version: 0.5.19(tailwindcss@4.1.14) '@testing-library/jest-dom': specifier: ^6.6.4 - version: 6.6.4 + version: 6.9.0 '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@testing-library/user-event': specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -534,37 +534,37 @@ importers: version: 30.0.0 '@types/node': specifier: ^24.1.0 - version: 24.1.0 + version: 24.6.1 '@types/pg': specifier: ^8.11.10 version: 8.15.5 '@types/react': specifier: ^19.1.8 - version: 19.1.9 + version: 19.1.16 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.7(@types/react@19.1.9) + version: 19.1.9(@types/react@19.1.16) babel-jest: specifier: ^30.1.2 - version: 30.1.2(@babel/core@7.28.0) + version: 30.2.0(@babel/core@7.28.4) better-sqlite3: specifier: ^11.10.0 version: 11.10.0 drizzle-orm: specifier: ^0.36.0 - version: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.9)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.9))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) + version: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.16)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.16))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) esbuild-plugin-preserve-directives: specifier: ^0.0.11 - version: 0.0.11(esbuild@0.25.9) + version: 0.0.11(esbuild@0.25.10) jest: specifier: ^30.0.5 - version: 30.0.5(@types/node@24.1.0) + version: 30.2.0(@types/node@24.6.1) jest-environment-jsdom: specifier: ^30.0.5 - version: 30.0.5 + version: 30.2.0 kysely: specifier: ^0.28.5 - version: 0.28.5 + version: 0.28.7 pg: specifier: ^8.12.0 version: 8.16.3 @@ -573,39 +573,35 @@ importers: version: 5.22.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.13) + version: 1.0.7(tailwindcss@4.1.14) ts-jest: specifier: ^29.4.0 - version: 29.4.0(@babel/core@7.28.0)(@jest/transform@30.1.2)(@jest/types@30.0.5)(babel-jest@30.1.2(@babel/core@7.28.0))(esbuild@0.25.9)(jest-util@30.0.5)(jest@30.0.5(@types/node@24.1.0))(typescript@5.8.3) + version: 29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.10)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@5.9.3) tsc-watch: specifier: ^7.1.1 - version: 7.1.1(typescript@5.8.3) + version: 7.2.0(typescript@5.9.3) tsup: specifier: ^8.5.0 - version: 8.5.0(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.1) + version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3) tsx: specifier: ^4.20.3 - version: 4.20.3 + version: 4.20.6 turbo: specifier: ^2.5.5 - version: 2.5.5 + version: 2.5.8 typescript: specifier: ^5.8.3 - version: 5.8.3 + version: 5.9.3 packages: - '@adobe/css-tools@4.4.3': - resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} + '@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'} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - '@asamuzakjp/css-color@3.2.0': resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} @@ -617,22 +613,14 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.28.0': - resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.28.0': - resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} + '@babel/compat-data@7.28.4': + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} engines: {node: '>=6.9.0'} '@babel/core@7.28.4': resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.28.0': - resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} - engines: {node: '>=6.9.0'} - '@babel/generator@7.28.3': resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} engines: {node: '>=6.9.0'} @@ -674,12 +662,6 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.28.3': resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} @@ -726,19 +708,10 @@ packages: resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.2': - resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.4': resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.0': - resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.28.4': resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} @@ -1224,26 +1197,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.28.2': - resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.0': - resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} - engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.4': resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.4': resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} @@ -1310,12 +1275,8 @@ packages: cpu: [x64] os: [win32] - '@cloudflare/kv-asset-handler@0.4.0': - resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} - engines: {node: '>=18.0.0'} - - '@codemirror/autocomplete@6.18.6': - resolution: {integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==} + '@codemirror/autocomplete@6.19.0': + resolution: {integrity: sha512-61Hfv3cF07XvUxNeC3E7jhG8XNi1Yom1G0lRC936oLnlF+jrbrv8rc/J98XlYzcsAoTVupfsf5fLej1aI8kyIg==} '@codemirror/commands@6.8.1': resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} @@ -1332,8 +1293,8 @@ packages: '@codemirror/lang-go@6.0.1': resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==} - '@codemirror/lang-html@6.4.9': - resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} + '@codemirror/lang-html@6.4.10': + resolution: {integrity: sha512-h/SceTVsN5r+WE+TVP2g3KDvNoSzbSrtZXCKo4vkKdbfT5t4otuVgngGdFukOO/rwRD2++pCxoh6xD4TEVMkQA==} '@codemirror/lang-java@6.0.2': resolution: {integrity: sha512-m5Nt1mQ/cznJY7tMfQTJchmrjdjQ71IDs+55d1GAa8DGaB8JXWsVCkVT284C3RTASaY43YknrK2X3hPO/J3MOQ==} @@ -1347,8 +1308,8 @@ packages: '@codemirror/lang-less@6.0.2': resolution: {integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==} - '@codemirror/lang-liquid@6.2.3': - resolution: {integrity: sha512-yeN+nMSrf/lNii3FJxVVEGQwFG0/2eDyH6gNOj+TGCa0hlNO4bhQnoO5ISnd7JOG+7zTEcI/GOoyraisFVY7jQ==} + '@codemirror/lang-liquid@6.3.0': + resolution: {integrity: sha512-fY1YsUExcieXRTsCiwX/bQ9+PbCTA/Fumv7C7mTUZHoFkibfESnaXwpr2aKH6zZVwysEunsHHkaIpM/pl3xETQ==} '@codemirror/lang-markdown@6.3.4': resolution: {integrity: sha512-fBm0BO03azXnTAsxhONDYHi/qWSI+uSEIpzKM7h/bkIc9fHnFp9y7KTMXKON0teNT97pFhc1a9DQTtWBYEZ7ug==} @@ -1365,8 +1326,8 @@ packages: '@codemirror/lang-sass@6.0.2': resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==} - '@codemirror/lang-sql@6.9.1': - resolution: {integrity: sha512-ecSk3gm/mlINcURMcvkCZmXgdzPSq8r/yfCtTB4vgqGGIbBC2IJIAy7GqYTy5pgBEooTVmHP2GZK6Z7h63CDGg==} + '@codemirror/lang-sql@6.10.0': + resolution: {integrity: sha512-6ayPkEd/yRw0XKBx5uAiToSgGECo/GY2NoJIHXIIQh1EVwLuKoU8BP/qK0qH5NLXAbtJRLuT73hx7P9X34iO4w==} '@codemirror/lang-vue@0.1.3': resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==} @@ -1383,11 +1344,11 @@ packages: '@codemirror/language-data@6.5.1': resolution: {integrity: sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==} - '@codemirror/language@6.11.2': - resolution: {integrity: sha512-p44TsNArL4IVXDTbapUmEkAlvWs2CFQbcfc0ymDsis1kH2wh0gcY96AS29c/vp2d0y2Tquk1EDSaawpzilUiAw==} + '@codemirror/language@6.11.3': + resolution: {integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==} - '@codemirror/legacy-modes@6.5.1': - resolution: {integrity: sha512-DJYQQ00N1/KdESpZV7jg9hafof/iBNp9h7TYo1SLMk86TWl9uDsVdho2dzd81K+v4retmK6mdC7WpuOQDytQqw==} + '@codemirror/legacy-modes@6.5.2': + resolution: {integrity: sha512-/jJbwSTazlQEDOQw2FJ8LEEKVS72pU0lx6oM54kGpL8t/NJ2Jda3CZ4pcltiKTdqYSRk3ug1B3pil1gsjA6+8Q==} '@codemirror/lint@6.8.5': resolution: {integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==} @@ -1401,11 +1362,11 @@ packages: '@codemirror/theme-one-dark@6.1.3': resolution: {integrity: sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==} - '@codemirror/view@6.38.1': - resolution: {integrity: sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ==} + '@codemirror/view@6.38.4': + resolution: {integrity: sha512-hduz0suCcUSC/kM8Fq3A9iLwInJDl8fD1xLpTIk+5xkNm8z/FT7UsIa9sOXrkpChh+XXc18RzswE8QqELsVl+g==} - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} engines: {node: '>=18'} '@csstools/css-calc@2.1.4': @@ -1415,8 +1376,8 @@ packages: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@3.0.10': - resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.5 @@ -1444,68 +1405,68 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + '@esbuild/aix-ppc64@0.25.10': + resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + '@esbuild/android-arm64@0.25.10': + resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + '@esbuild/android-arm@0.25.10': + resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + '@esbuild/android-x64@0.25.10': + resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + '@esbuild/darwin-arm64@0.25.10': + resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + '@esbuild/darwin-x64@0.25.10': + resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + '@esbuild/freebsd-arm64@0.25.10': + resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + '@esbuild/freebsd-x64@0.25.10': + resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + '@esbuild/linux-arm64@0.25.10': + resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + '@esbuild/linux-arm@0.25.10': + resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + '@esbuild/linux-ia32@0.25.10': + resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -1516,92 +1477,92 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + '@esbuild/linux-loong64@0.25.10': + resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + '@esbuild/linux-mips64el@0.25.10': + resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + '@esbuild/linux-ppc64@0.25.10': + resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + '@esbuild/linux-riscv64@0.25.10': + resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + '@esbuild/linux-s390x@0.25.10': + resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + '@esbuild/linux-x64@0.25.10': + resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.9': - resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} + '@esbuild/netbsd-arm64@0.25.10': + resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + '@esbuild/netbsd-x64@0.25.10': + resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.9': - resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} + '@esbuild/openbsd-arm64@0.25.10': + resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + '@esbuild/openbsd-x64@0.25.10': + resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.9': - resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} + '@esbuild/openharmony-arm64@0.25.10': + resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + '@esbuild/sunos-x64@0.25.10': + resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + '@esbuild/win32-arm64@0.25.10': + resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + '@esbuild/win32-ia32@0.25.10': + resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + '@esbuild/win32-x64@0.25.10': + resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1640,8 +1601,8 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.35.0': - resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==} + '@eslint/js@9.36.0': + resolution: {integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -1655,11 +1616,11 @@ packages: '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} - '@floating-ui/dom@1.7.3': - resolution: {integrity: sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==} + '@floating-ui/dom@1.7.4': + resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} - '@floating-ui/react-dom@2.1.5': - resolution: {integrity: sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==} + '@floating-ui/react-dom@2.1.6': + resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==} peerDependencies: react: 19.1.1 react-dom: 19.1.1 @@ -1700,131 +1661,132 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@img/sharp-darwin-arm64@0.34.3': - resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} + '@img/colour@1.0.0': + resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.34.4': + resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.3': - resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} + '@img/sharp-darwin-x64@0.34.4': + resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.0': - resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} + '@img/sharp-libvips-darwin-arm64@1.2.3': + resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.0': - resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} + '@img/sharp-libvips-darwin-x64@1.2.3': + resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.0': - resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} + '@img/sharp-libvips-linux-arm64@1.2.3': + resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.2.0': - resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} + '@img/sharp-libvips-linux-arm@1.2.3': + resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.2.0': - resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} + '@img/sharp-libvips-linux-ppc64@1.2.3': + resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==} cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-s390x@1.2.0': - resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} + '@img/sharp-libvips-linux-s390x@1.2.3': + resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.2.0': - resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} + '@img/sharp-libvips-linux-x64@1.2.3': + resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': - resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': + resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.2.0': - resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} + '@img/sharp-libvips-linuxmusl-x64@1.2.3': + resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.34.3': - resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} + '@img/sharp-linux-arm64@0.34.4': + resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.34.3': - resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} + '@img/sharp-linux-arm@0.34.4': + resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-ppc64@0.34.3': - resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} + '@img/sharp-linux-ppc64@0.34.4': + resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] - '@img/sharp-linux-s390x@0.34.3': - resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} + '@img/sharp-linux-s390x@0.34.4': + resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.34.3': - resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} + '@img/sharp-linux-x64@0.34.4': + resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.3': - resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} + '@img/sharp-linuxmusl-arm64@0.34.4': + resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.3': - resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} + '@img/sharp-linuxmusl-x64@0.34.4': + resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.34.3': - resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} + '@img/sharp-wasm32@0.34.4': + resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.3': - resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} + '@img/sharp-win32-arm64@0.34.4': + resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.3': - resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} + '@img/sharp-win32-ia32@0.34.4': + resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.3': - resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} + '@img/sharp-win32-x64@0.34.4': + resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] - '@ioredis/commands@1.4.0': - resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} - '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -1849,12 +1811,12 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@30.0.5': - resolution: {integrity: sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA==} + '@jest/console@30.2.0': + resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/core@30.0.5': - resolution: {integrity: sha512-fKD0OulvRsXF1hmaFgHhVJzczWzA1RXMMo9LTPuFXo9q/alDbME3JIyWYqovWsUBWSoBcsHaGPSLF9rz4l9Qeg==} + '@jest/core@30.2.0': + resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1866,8 +1828,8 @@ packages: resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/environment-jsdom-abstract@30.0.5': - resolution: {integrity: sha512-gpWwiVxZunkoglP8DCnT3As9x5O8H6gveAOpvaJd2ATAoSh7ZSSCWbr9LQtUMvr8WD3VjG9YnDhsmkCK5WN1rQ==} + '@jest/environment-jsdom-abstract@30.2.0': + resolution: {integrity: sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -1876,36 +1838,36 @@ packages: canvas: optional: true - '@jest/environment@30.0.5': - resolution: {integrity: sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA==} + '@jest/environment@30.2.0': + resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@30.0.5': - resolution: {integrity: sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==} + '@jest/expect-utils@30.2.0': + resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@30.0.5': - resolution: {integrity: sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA==} + '@jest/expect@30.2.0': + resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/fake-timers@30.0.5': - resolution: {integrity: sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw==} + '@jest/fake-timers@30.2.0': + resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/get-type@30.0.1': - resolution: {integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==} + '@jest/get-type@30.1.0': + resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@30.0.5': - resolution: {integrity: sha512-7oEJT19WW4oe6HR7oLRvHxwlJk2gev0U9px3ufs8sX9PoD1Eza68KF0/tlN7X0dq/WVsBScXQGgCldA1V9Y/jA==} + '@jest/globals@30.2.0': + resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/pattern@30.0.1': resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@30.0.5': - resolution: {integrity: sha512-mafft7VBX4jzED1FwGC1o/9QUM2xebzavImZMeqnsklgcyxBto8mV4HzNSzUrryJ+8R9MFOM3HgYuDradWR+4g==} + '@jest/reporters@30.2.0': + resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1917,36 +1879,32 @@ packages: resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/snapshot-utils@30.0.5': - resolution: {integrity: sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ==} + '@jest/snapshot-utils@30.2.0': + resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/source-map@30.0.1': resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@30.0.5': - resolution: {integrity: sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - '@jest/test-sequencer@30.0.5': - resolution: {integrity: sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ==} + '@jest/test-result@30.2.0': + resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@30.0.5': - resolution: {integrity: sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg==} + '@jest/test-sequencer@30.2.0': + resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@30.1.2': - resolution: {integrity: sha512-UYYFGifSgfjujf1Cbd3iU/IQoSd6uwsj8XHj5DSDf5ERDcWMdJOPTkHWXj4U+Z/uMagyOQZ6Vne8C4nRIrCxqA==} + '@jest/transform@30.2.0': + resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/types@30.0.5': - resolution: {integrity: sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==} + '@jest/types@30.2.0': + resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jridgewell/gen-mapping@0.3.12': - resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} '@jridgewell/remapping@2.3.5': resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} @@ -1955,14 +1913,11 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.11': - resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.29': - resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@lezer/common@1.2.3': resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} @@ -1979,14 +1934,14 @@ packages: '@lezer/highlight@1.2.1': resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} - '@lezer/html@1.3.10': - resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} + '@lezer/html@1.3.12': + resolution: {integrity: sha512-RJ7eRWdaJe3bsiiLLHjCFT1JMk8m1YP9kaUbvu2rMLEoOnke9mcTVDyfOslsln0LtujdWespjJ39w6zo+RsQYw==} '@lezer/java@1.1.3': resolution: {integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==} - '@lezer/javascript@1.5.1': - resolution: {integrity: sha512-ATOImjeVJuvgm3JQ/bpo2Tmv55HSScE2MTPnKRMRIPx2cLhHGyX2VnqpHhtIV1tVzIjZDbcWQm+NCTF40ggZVw==} + '@lezer/javascript@1.5.4': + resolution: {integrity: sha512-vvYx3MhWqeZtGPwDStM2dwgljd5smolYD2lR2UyFcHfxbBQebqx8yjmFmxtJ/E6nN6u1D9srOiVWm3Rb4tmcUA==} '@lezer/json@1.0.3': resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} @@ -1997,8 +1952,8 @@ packages: '@lezer/markdown@1.4.3': resolution: {integrity: sha512-kfw+2uMrQ/wy/+ONfrH83OkdFNM0ye5Xq96cLlaCy7h5UT9FO54DU4oRoIc0CSBh5NWmWuiIJA7NGLMJbQ+Oxg==} - '@lezer/php@1.0.4': - resolution: {integrity: sha512-D2dJ0t8Z28/G1guztRczMFvPDUqzeMLSQbdWQmaiHV7urc8NlEOnjYk9UrZ531OcLiRxD4Ihcbv7AsDpNKDRaQ==} + '@lezer/php@1.0.5': + resolution: {integrity: sha512-W7asp9DhM6q0W6DYNwIkLSKOvxlXRrif+UXBMxzsJUuqmhE7oVU+gS3THO4S/Puh7Xzgm858UNaFi6dxTP8dJA==} '@lezer/python@1.1.18': resolution: {integrity: sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==} @@ -2022,83 +1977,78 @@ packages: '@tanstack/query-core': '>= 4.0.0' '@tanstack/react-query': '>= 4.0.0' - '@mapbox/node-pre-gyp@2.0.0': - resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} - engines: {node: '>=18'} - hasBin: true - '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} - '@milkdown/components@7.15.3': - resolution: {integrity: sha512-Xhfl3kV+SiUlfNbrIn4T30Q6sHFjhe7KsnydAaQsCBvfDB0Y5lin/qCWa5k/hGw+NUH6dO/GX75zQ77OOpw8dg==} + '@milkdown/components@7.16.0': + resolution: {integrity: sha512-25Rilbjdl/iHI2ZY74anX1hjlXY6yzKHnAxaQ5fbnLzIEqjarmpupi8A4fF8DnbI6Hs8z77YkTxzVaXpryKIKQ==} peerDependencies: '@codemirror/language': ^6 '@codemirror/state': ^6 '@codemirror/view': ^6 - '@milkdown/core@7.15.3': - resolution: {integrity: sha512-/sx77znzqaeRmJXkDVXNUFrodUqY6jn23FSufSa8TIGAc/IIUJIJnC5ppKUR0hdhcJInEk0sFCDeKJHjaIr+gQ==} + '@milkdown/core@7.16.0': + resolution: {integrity: sha512-Om7sTAPpihOA9xYJhrAAtdUiSgJRVy0ApotqivMVfx4981QfWcCjioorh6Me1S990ktp3gvvXWbn+BtIX0QiXA==} - '@milkdown/crepe@7.15.3': - resolution: {integrity: sha512-0YtkLObAuyfoLLKcXTkGJG3dNHxaxjuJ4Eu67T4eIkiXolK3xJRC7m137SbuejiZx9DMNUusenYThbm/bx0AWw==} + '@milkdown/crepe@7.16.0': + resolution: {integrity: sha512-xj2ptFGYsggWX2V2qUooCKiMtlR6o94hxdY+c7NjOuYRvAGHcdNlG/WwtUBrFSokce2f5H6RlBi4Uay+/6BW5g==} - '@milkdown/ctx@7.15.3': - resolution: {integrity: sha512-bbagm7NQDOTsWTDZuMi0ZHwjx/JfZr73sKWRK66aZ4MzkKM05tUYMdfcMJJzztWNzRke9IeYRrOMXuHVpxruxw==} + '@milkdown/ctx@7.16.0': + resolution: {integrity: sha512-BUmdmsNRL6cac0nLC80k8bAZQFPzlDGCwa8wrvyHHGlTD9u/1LTAOD3HsuOsAg7CRRO0ejxZai/jy+7AL/kemA==} - '@milkdown/exception@7.15.3': - resolution: {integrity: sha512-mj1ElCckSo2dgdaG8LL9w4lVh/tNmmZI+CQoXnREafa5rhFdxCyoh5BclX1oSUyW5j2N68Y75vEvJ0iagnL2Wg==} + '@milkdown/exception@7.16.0': + resolution: {integrity: sha512-lKMycZBB/3oEKwGvMINCnhtqoE03au0B5SWUONHON0QSTGsNOL5GfXiQKHcFRbeT0E6tbB99lj7Tz16YKz3asg==} - '@milkdown/kit@7.15.3': - resolution: {integrity: sha512-TSb2LGW/o1chVpd0r+JoJPwNf5qO60s7bm+h01XCIJSbNgOL+tcY+sEBHevGN6Wji0dCRzxuibKm5HWzTdPHeA==} + '@milkdown/kit@7.16.0': + resolution: {integrity: sha512-Wg5mxMRqKeVCLA4Uc9n9iN1HCOv0kt+8gZ8KCvtxa8CI4us/lAN/zfCl2XXfNXCcQlaWkSHT94qjat4pndyGUQ==} - '@milkdown/plugin-block@7.15.3': - resolution: {integrity: sha512-tk/GSEb7OVIca1otfe6yak5e33UlX+qEyMEkuuwYd618F2b6mVH22PbxqhxeL1INJ2/PoW8/s8tfe8s8/NcD5Q==} + '@milkdown/plugin-block@7.16.0': + resolution: {integrity: sha512-04vWhXbc0QQauPvHQBco9GX+jcxaQjt0qOXRkVBPY5RE2rnklPtUkzSDn6mL8YMyip9fT+4/eZmDbBZWbncm7Q==} - '@milkdown/plugin-clipboard@7.15.3': - resolution: {integrity: sha512-hffS++KNC8Rw4EzDthG8a1HevCvtQut1NgLxibV3c7qbIgXSfxlH7HZiRMkXR3qVmm3fYw7UqSFRAkqhyga8yg==} + '@milkdown/plugin-clipboard@7.16.0': + resolution: {integrity: sha512-yEDYVilsfwV0pf6Cjk90icumlR7ZBKhAxigOzgbjAUcTGMx5er7p/cf9MIIx1FaEykjV60xgpbpJ3m22QxL5qg==} - '@milkdown/plugin-cursor@7.15.3': - resolution: {integrity: sha512-76CNXZdecE6i6hUPp89tiRCzzX6JzwidhWdmIQ18e5BKae6P8xh0GK9IGlXv5vNu3QMqJTB/4rMAuKB0utNs6Q==} + '@milkdown/plugin-cursor@7.16.0': + resolution: {integrity: sha512-PblYvLtwyIR9QOUKfThoczM4wdOe3WNc3buj05TD0Q7dFuEylKt8+rcl9X+e/peJ58aw7gkpTUNJZ5xrlGZmyw==} - '@milkdown/plugin-history@7.15.3': - resolution: {integrity: sha512-MkpJBpCLe9qy6LOI0/n6CQXrIpXvV/tKt49tYboCti8ru7n/MPW+3JWn57P2MAfNnBWTZUA5+sk5DbsMuQkvBQ==} + '@milkdown/plugin-history@7.16.0': + resolution: {integrity: sha512-RHIh0qEZWJ3RPdqXYSnqvToVo5TEhFb2ymYRax0kTgLWcybpJZxzDO953vo7E9/ci1zoQonZmI9i5cGi06fywQ==} - '@milkdown/plugin-indent@7.15.3': - resolution: {integrity: sha512-aYMpkCDP2MA53AIZiXUWSMadWShrs/x2nonPNIvZiTtstcd5gWOtz/FqhTPKD8V1HphNdKhlEQRV89r0V4mnAw==} + '@milkdown/plugin-indent@7.16.0': + resolution: {integrity: sha512-NSiK72UDp1JTbZ+JYj5FJ7QesEBKSCjAqDO04eDnvMcUDOX7m6A36UCL5qrDqZWNq9wemVNgAFhA3J07am2XuA==} - '@milkdown/plugin-listener@7.15.3': - resolution: {integrity: sha512-wgs6KxIkk09oMU6lhBJONVXNse1Kaz+1nCA0uCdmekKFoOOBXEL4rMzGV3CV7qkrUJFYRVVZhupmqD0gX4EPPA==} + '@milkdown/plugin-listener@7.16.0': + resolution: {integrity: sha512-qsTN7pdCYPViQMzOz4etefibUaGSYZPhWJORXB/UeGtzK4Z/UtHN/06AtntgwSBsy7mjxt80YRD6nCOX330MwA==} - '@milkdown/plugin-slash@7.15.3': - resolution: {integrity: sha512-gd9uxgboRo78Yy1SNM1Cv99wgHlk8ULiO1taY/aNd9GJmplHsmrtxHnxQwlyBxNOcWVedrqilJWq9y5dkURkeA==} + '@milkdown/plugin-slash@7.16.0': + resolution: {integrity: sha512-xgvhGGbtjYmV6N8MJnd8/LnoVIuIPSr/TyH+VmUyBnhUa5flhlLt0zfYmEDJXqkWsnUHuExqJ00L7ybsUcAl/g==} - '@milkdown/plugin-tooltip@7.15.3': - resolution: {integrity: sha512-NdMRf0tnT3hYFlWccTVMCpP6gHTH34MLFGkF7xcGVzrXvA1Sb7y3WYp/T/dasc2YhHwI+/vM1X00POJEF4JwZA==} + '@milkdown/plugin-tooltip@7.16.0': + resolution: {integrity: sha512-auNEn2L8vqALVmL94Z6y5t7A8HTw4HeYrx2wwsENg61DssMdbazI04MVaeiZ2kb3Se1w+mEF3Io0jfhIyfHIVQ==} - '@milkdown/plugin-trailing@7.15.3': - resolution: {integrity: sha512-haNY2+LOOH/8EK4Y90vGDdzg2KFrl8xJyS/XDjEPrKP78hxAbR4fL3U9+vLSxPgtfwflWj6dgmp4mhAGR7kpQw==} + '@milkdown/plugin-trailing@7.16.0': + resolution: {integrity: sha512-WYAr9Hhoott4l+6Grj9w+xLiwGTPtM5QQU2u8hSSKf75VNt7scYN1Robbh0qj3KLiA7cRFR32/78N3VoMCSQCw==} - '@milkdown/plugin-upload@7.15.3': - resolution: {integrity: sha512-DZiDi7iWNZtJK1QnLMJ9dmCKAbAgrP1/UWtTnLg2t3kVnnvfJXCLzk/z1EekkRr3dX8saqLf3X2f14tQW5JIDQ==} + '@milkdown/plugin-upload@7.16.0': + resolution: {integrity: sha512-0gP7vq5kb1QQFKEh0FNipVGFeXeBVWaTZx8ioo8mB3tbTqaeNxU0nfp4WKKMD93Ypy1xDsABnFpZhQFGjJGshg==} - '@milkdown/preset-commonmark@7.15.3': - resolution: {integrity: sha512-q9XDf25YgrfEmUPD7XvF9u/HaXCSVjJUvzuwsxdsf0KGt9i4G6esONTC57RZTM4e5+H9USyreL1GB3LFHMLYNw==} + '@milkdown/preset-commonmark@7.16.0': + resolution: {integrity: sha512-Cac56ICJhpAr7xn3PdQU0yqZRZpJ18b8L2yquLx9VYHvmLG0QRvDUj0bB7w+yOt2QPo+D3LETZtmSVIPuOYMOg==} - '@milkdown/preset-gfm@7.15.3': - resolution: {integrity: sha512-gsymQvoup3CyV1DsxE8cX6vhp1RhUNm1Qu7Gl+Wri9PVZwq1zBUGFoWhbA4JafeEVzv3oDE3YVYQjAQ/+UipQQ==} + '@milkdown/preset-gfm@7.16.0': + resolution: {integrity: sha512-JGWmlU8Cn/avl0Jf4RSxqGOavLDNrSFGme5DoTKci7opDNokqce6sJnJVE9WRZyfSE8vUkNWbRHYWF9dOcLS7g==} - '@milkdown/prose@7.15.3': - resolution: {integrity: sha512-HlHsvsoQRdT1mHJpIicYu+Kylel/Gx9Q6YkPWdG3ZVQqLGL64eN3g8qL49m7tcWMBHjPl+PYysrTIEsHpfa9+A==} + '@milkdown/prose@7.16.0': + resolution: {integrity: sha512-0XkyTlo4yZ0rysIUSjVLRuR+jIHlH9MlFT9QgI+mrnTZovPo0ggyZd3OSHF14a+b0NpJ6RXdiOyZnxtcwdRsNw==} - '@milkdown/transformer@7.15.3': - resolution: {integrity: sha512-iRLjBUjTJTkvuZ9srBa/ZT9//rlCaCdjzfD3PwueL+e9ig3q+5RTV/SX2Geiuh1ULbuJ7rPT6aXXjxB+NkWiww==} + '@milkdown/transformer@7.16.0': + resolution: {integrity: sha512-rWpT2hadTAa0bN/XOwpPBthtzTAg8m7ZTNegSPAsr+r7tZHa8kOokXIkR2UTUp9W2cyueIFJCdABz91YHtfrKw==} - '@milkdown/utils@7.15.3': - resolution: {integrity: sha512-YwIEN3t77coiTMAKPduc6FiCyGuaBTNXMJeRGE3CY/ySEToiG4em3uu4am9OEA26uE5VrEjS7h1EuxVlOEGWDQ==} + '@milkdown/utils@7.16.0': + resolution: {integrity: sha512-x1WKTNFE073rtvFJYdcNnQHRy97U4eXeJqy1c+Rf1aLrB319xwsOktQn07YKn8jZGHM2qpzM4oIWHF97ggUHfA==} '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -2230,6 +2180,15 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + '@ocavue/utils@0.7.1': + resolution: {integrity: sha512-gY/YWdyTPGx8YTT0q/0tQJs6kPJ2XeXRPfdzWLt+wefIOuwb1n5Nq3GwKM/AY+Wab3dbx6w+MkX8VSbrm3l6Xg==} + + '@olliethedev/yar@1.0.5': + resolution: {integrity: sha512-OZwOJt7C2lAKCw247SlQnrUthrcypdoa+c87us/gUQuYWzVAyC39gn+TD+HHsfxzKOnrXlAVuYX6EuG/j1rb/A==} + peerDependencies: + '@types/react': ^19.1.16 + '@types/react-dom': ^19.1.9 + '@oozcitak/dom@1.15.10': resolution: {integrity: sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==} engines: {node: '>=8.0'} @@ -2246,190 +2205,102 @@ packages: resolution: {integrity: sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==} engines: {node: '>=8.0'} - '@orama/orama@3.1.13': - resolution: {integrity: sha512-O0hdKt4K31i8fpq8Bw5RfdPVAqm0EdduBUcluPo2MRcfCOwUEf5JlnvRhf/J0ezOYOD8jQ/LumYZxOVi/XK/BA==} + '@orama/orama@3.1.14': + resolution: {integrity: sha512-Iq4RxYC7y0pA/hLgcUGpYYs5Vze4qNmJk0Qi1uIrg2bHGpm6A06nbjWcH9h4HQsddkDFFlanLj/zYBH3Sxdb4w==} engines: {node: '>= 20.0.0'} '@originjs/vite-plugin-commonjs@1.0.3': resolution: {integrity: sha512-KuEXeGPptM2lyxdIEJ4R11+5ztipHoE7hy8ClZt3PYaOVQ/pyngd2alaSrPnwyFeOW1UagRBaQ752aA1dTMdOQ==} - '@oxc-transform/binding-android-arm64@0.82.3': - resolution: {integrity: sha512-25Wh8wRSVMNiGJHeT1kIOKynrXbMoSR5vkhL+j7GyXs+R7tA3Vah574NK86y7k8Ayz7bmddSepue+Mp4/B2bqg==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-android-arm64@0.92.0': + resolution: {integrity: sha512-BeIZ3tE+L7wrvqep868+pnOaShTMvEOYopvWmEHB0LtHT/wkeabHwMwOdKCnSfFGxybPVShftNLBBPu3jkILpQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-transform/binding-darwin-arm64@0.82.3': - resolution: {integrity: sha512-AUXBcudAnFG74NkeKb03dkJ7jMrqasj8dr1p3KK4n4t/h687D63zWS7Ujqm46ilMJAta7yOQOXRG01ulrYfZ9w==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-darwin-arm64@0.92.0': + resolution: {integrity: sha512-7Sx9rKMif+MgHaOpddi8ZEO+swB3MmmFnDsMCZ2hkKqz0w294us7GsxraifqvouUxucsQXu3sUp7DugDC46HMw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-transform/binding-darwin-x64@0.82.3': - resolution: {integrity: sha512-ZibkYbQxnmEWA3PZzvt1s48hzZ8x7JXja9jBGxcztyku3CeJfg84VLBQtKplQ+X/844b6SguGovhzM+f+B8mfw==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-darwin-x64@0.92.0': + resolution: {integrity: sha512-1p608PJkBBOqinNsmR25Ait9wq2skIloJuSsLpklUYZk4EVjDvC6YSk8SA+07K5HvK+/IbOBQVkOekT9nWGHEQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-transform/binding-freebsd-x64@0.82.3': - resolution: {integrity: sha512-TgWClgWmsd+PqB8KjzmCDg4LgjJSjr9M6iMo7DnMpJQ8wKn6OXax1uzUmAhMVURn3fZ/mOjreVlxnsMo0EDGBg==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-freebsd-x64@0.92.0': + resolution: {integrity: sha512-+NzBjKRwZ9bbwW8wf99WiMRV4UP3rX9B6rC2sCcb2eGVUbH62OXTGuA7HkWSPCrQgoL/U9jbNyaxfpHS0Zew0w==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-transform/binding-linux-arm-gnueabihf@0.82.3': - resolution: {integrity: sha512-doD+InoG9wTY20zGeiY2yhhZQ/7JeyegxQziCxzSWwMVDFX9Ta1M3EPPLJ2HFpSrx1UAHoNtaXsTJK0kZRXptg==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-arm-gnueabihf@0.92.0': + resolution: {integrity: sha512-P+sMDUZAXmxw7Srv+NVl7ScM2SgFEMJeX27ygCF4TQCIb/erUF+KM7UcFaR7Pm2y03gBMG1ZTwARzF3zlsEGIg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm-musleabihf@0.82.3': - resolution: {integrity: sha512-PQPNo7/HzULjG5mZ4S6zgyLRCSMf9XubNJkOKvlk2+G8dnui9qe74jWbuZLdnlHbWiYmVxOlWt7c3FPdUcGSmw==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-arm-musleabihf@0.92.0': + resolution: {integrity: sha512-2BYFOfGgUSKFyiRL9Kdj8i2Xqe7tFHg1HCkJvxzLnceaSGqndrNuE4BeHLUM1XjEAvrh4DzBANm3QXLkMeMFaw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm64-gnu@0.82.3': - resolution: {integrity: sha512-u8UCgPfVVfk/nIjhKfWNgT5J+qB3RjxnYWLg1TLV+TDKAXKRQvkTS7q+rygDSM3S+yaf8zZqqFf9Yz4mlKchvg==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-arm64-gnu@0.92.0': + resolution: {integrity: sha512-ZgWflNUOj/sttUZDwLycJj5HxI5vM1bzmmQ5RRtNdGf33EGTN1RDNANIn02RLlhsWgBTQM/DpxZUWzIjV4iKhw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-arm64-musl@0.82.3': - resolution: {integrity: sha512-//hl3Xe36+fwyBrzKpTSMgSDqscbqpkeQ1TTvfkZS7IKuLoSM7lVbU+fpaOslDXUezLg9SwN6Cn2sL61OX7IaA==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-arm64-musl@0.92.0': + resolution: {integrity: sha512-eUW2wDSFfQPjBBTPd0AHjzGWX5K/19IhJN2Qcj5sg76WfqsSOPKa/vseRDAma5Z7A4TgaeNlGSuvyLv0ys3TRQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-riscv64-gnu@0.82.3': - resolution: {integrity: sha512-iOPpMG0EAvOOZ048OdmuUhWV5NRXERDVj/+k5IUIOzXuxZSjrJK/NjirdpYnXXLMx3lDIm2muMR1ESg0f8eb+A==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-riscv64-gnu@0.92.0': + resolution: {integrity: sha512-yys5q9ZybivJz6ZDrfMJBxWu7aol1RA7SQQsEjTfnVKVAFcNzTowmnNv+JK4LFjGPBoovuOQIHl7mazbkyo2kA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-transform/binding-linux-s390x-gnu@0.82.3': - resolution: {integrity: sha512-pdgFqoFoqs6JNoaV540RZSMq4uaArlL1ZnjT1rsL662K4CejOAFmyuroCw98DdF/TQsuFQV1a4At7jHlF1H+0Q==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-s390x-gnu@0.92.0': + resolution: {integrity: sha512-y43cP1rTRM2S0IJr/HDEJ95rapZhRYatvEZunmdccIxMY0h0LXfc1KPQNisMbZzY+UYQ9kBvVaT7ZsxKicVsxg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxc-transform/binding-linux-x64-gnu@0.82.3': - resolution: {integrity: sha512-OJ9k0xIqejBNp+6dn1V/QZk0iHBqJsq/Jm/+9wjg3gJyDOZFq0qU/zHAuUzObro6JGFBmPvAZsVi4qEaYZLIQA==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-x64-gnu@0.92.0': + resolution: {integrity: sha512-r4IQJu/kgzXCC3LEGRijWutljO9Ma09dphkBh5vO65wMZHGibWznGcGyYfcLAjlzoOmHzv/pUEOGCfK506bN+w==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-transform/binding-linux-x64-musl@0.82.3': - resolution: {integrity: sha512-nPaIuIm0OM2Xylt3suhiLw6POklE8KlpO2hRuGtiLQTFWORPgB3SzDTrp2Trxob40bsbCTVyeWHB/VsC/vw5Gw==} - engines: {node: '>=14.0.0'} + '@oxc-transform/binding-linux-x64-musl@0.92.0': + resolution: {integrity: sha512-nZ+3gMiKZKBI/5xgtCYVe6e+j0ZOdhugJypIVQrZU8XUFt9AAxnqus6Fw7WLA53z4SV8wpPjhkcwHiOIpxv+Vw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-transform/binding-wasm32-wasi@0.82.3': - resolution: {integrity: sha512-srV5VaR6cgs808dm/gBDAuqUaPqgWsoLMPbmojMt/qGu2fEOSQzv5i3X0b5V6OyHM9k53BK449k22JHTCzpyAg==} + '@oxc-transform/binding-wasm32-wasi@0.92.0': + resolution: {integrity: sha512-e7ZZtUvXdLnovrwK3+fJEmEOVrRU9uAPeGMnzzkNj8tlf1ee3sFu3KR5+T9lmIUMNGz4+PIDXcI+3B4xFjlO4Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-transform/binding-win32-arm64-msvc@0.82.3': - resolution: {integrity: sha512-6/YlbsKYXjd7lsEp2rdqaJ19MiLW6D+JZP6OSRrkZhRS0aFjpVB1NDEMquYr0dB+/Dd8NchHJoeNhJrhE80PgA==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [win32] - - '@oxc-transform/binding-win32-x64-msvc@0.82.3': - resolution: {integrity: sha512-2s19kAMWzeg4HDWTOxwXj9i+j3PXOISZeEwZT9IiEWX6as0o4Ab2zAnQvjwgKgCg3HProDmCHz3KFr8eBClhqQ==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-wasm@2.5.1': - resolution: {integrity: sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==} - engines: {node: '>= 10.0.0'} - bundledDependencies: - - napi-wasm - - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} - engines: {node: '>= 10.0.0'} + '@oxc-transform/binding-win32-arm64-msvc@0.92.0': + resolution: {integrity: sha512-QgHdC3yd9eglkP4KGO1vtyFFklTHKlC7YyzncQWo/i5VZcq1g3mBGqhz7IQtrtrtA08KegsAM0XcKorew3YFnw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} - engines: {node: '>= 10.0.0'} + '@oxc-transform/binding-win32-x64-msvc@0.92.0': + resolution: {integrity: sha512-S0hE59gAAOqUFLCRc6jRzQg8A10BbZnm2LrBnLqNtIZLt4hlsOBbpfSCTPEMgcVpZ7Vm+keQCAf8/JFMkpOSHg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} - engines: {node: '>= 10.0.0'} - '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2438,20 +2309,11 @@ packages: resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.55.0': - resolution: {integrity: sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==} + '@playwright/test@1.55.1': + resolution: {integrity: sha512-IVAh/nOJaw6W9g+RJVlIQJ6gSiER+ae6mKQ5CX1bERzQgbC1VSeBlwdvczT7pxb0GWiyrxH4TGKbMfDb4Sq/ig==} engines: {node: '>=18'} hasBin: true - '@poppinss/colors@4.1.5': - resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} - - '@poppinss/dumper@0.6.4': - resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} - - '@poppinss/exception@1.2.2': - resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} - '@prisma/client@5.22.0': resolution: {integrity: sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA==} engines: {node: '>=16.13'} @@ -2479,9 +2341,6 @@ packages: '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} - '@radix-ui/primitive@1.1.2': - resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} @@ -2498,8 +2357,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-alert-dialog@1.1.14': - resolution: {integrity: sha512-IOZfZ3nPvN6lXpJTBCunFQPRSvK8MDgSc1FB85xnIpUKOw9en0dJj8JmCAxV7BiZdtYlUpmrQjoTFkVYtdoWzQ==} + '@radix-ui/react-alert-dialog@1.1.15': + resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2537,8 +2396,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-checkbox@1.3.2': - resolution: {integrity: sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==} + '@radix-ui/react-checkbox@1.3.3': + resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2594,19 +2453,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.14': - resolution: {integrity: sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: 19.1.1 - react-dom: 19.1.1 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-dialog@1.1.15': resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} peerDependencies: @@ -2629,19 +2475,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.10': - resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: 19.1.1 - react-dom: 19.1.1 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-dismissable-layer@1.1.11': resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: @@ -2655,8 +2488,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dropdown-menu@2.1.15': - resolution: {integrity: sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==} + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2668,15 +2501,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.2': - resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} - peerDependencies: - '@types/react': '*' - react: 19.1.1 - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-focus-guards@1.1.3': resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: @@ -2726,8 +2550,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-menu@2.1.15': - resolution: {integrity: sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==} + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2765,19 +2589,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popper@1.2.7': - resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: 19.1.1 - react-dom: 19.1.1 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-popper@1.2.8': resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} peerDependencies: @@ -2804,19 +2615,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.4': - resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: 19.1.1 - react-dom: 19.1.1 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-presence@1.1.5': resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} peerDependencies: @@ -2843,21 +2641,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-radio-group@1.3.7': - resolution: {integrity: sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: 19.1.1 - react-dom: 19.1.1 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-roving-focus@1.1.10': - resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==} + '@radix-ui/react-radio-group@1.3.8': + resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2895,8 +2680,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-select@2.2.5': - resolution: {integrity: sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==} + '@radix-ui/react-select@2.2.6': + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2930,8 +2715,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-switch@1.2.5': - resolution: {integrity: sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==} + '@radix-ui/react-switch@1.2.6': + resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2956,8 +2741,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle-group@1.1.10': - resolution: {integrity: sha512-kiU694Km3WFLTC75DdqgM/3Jauf3rD9wxeS9XtyWFKsBUeZA337lC+6uUazT7I1DhanZ5gyD5Stf8uf2dbQxOQ==} + '@radix-ui/react-toggle-group@1.1.11': + resolution: {integrity: sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2969,8 +2754,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle@1.1.9': - resolution: {integrity: sha512-ZoFkBBz9zv9GWer7wIjvdRxmh2wyc2oKWw6C6CseWd6/yq1DK/l5lJ+wnsmFwJZbBYqr02mrf8A2q/CVCuM3ZA==} + '@radix-ui/react-toggle@1.1.10': + resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2982,8 +2767,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tooltip@1.2.7': - resolution: {integrity: sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==} + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3095,283 +2880,119 @@ packages: '@rolldown/pluginutils@1.0.0-beta.27': resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} - '@rolldown/pluginutils@1.0.0-beta.35': - resolution: {integrity: sha512-slYrCpoxJUqzFDDNlvrOYRazQUNRvWPjXA17dAOISY3rDMxX6k8K4cj2H+hEYMHF81HO3uNd5rHVigAWRM5dSg==} - - '@rollup/plugin-alias@5.1.1': - resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-commonjs@28.0.6': - resolution: {integrity: sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-node-resolve@16.0.1': - resolution: {integrity: sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-replace@6.0.2': - resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@rolldown/pluginutils@1.0.0-beta.38': + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} - '@rollup/rollup-android-arm-eabi@4.46.2': - resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} - cpu: [arm] - os: [android] + '@rolldown/pluginutils@1.0.0-beta.40': + resolution: {integrity: sha512-s3GeJKSQOwBlzdUrj4ISjJj5SfSh+aqn0wjOar4Bx95iV1ETI7F6S/5hLcfAxZ9kXDcyrAkxPlqmd1ZITttf+w==} - '@rollup/rollup-android-arm-eabi@4.51.0': - resolution: {integrity: sha512-VyfldO8T/C5vAXBGIobrAnUE+VJNVLw5z9h4NgSDq/AJZWt/fXqdW+0PJbk+M74xz7yMDRiHtlsuDV7ew6K20w==} + '@rollup/rollup-android-arm-eabi@4.52.3': + resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.46.2': - resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-android-arm64@4.51.0': - resolution: {integrity: sha512-Z3ujzDZgsEVSokgIhmOAReh9SGT2qloJJX2Xo1Q3nPU1EhCXrV0PbpR3r7DWRgozqnjrPZQkLe5cgBPIYp70Vg==} + '@rollup/rollup-android-arm64@4.52.3': + resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.46.2': - resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-arm64@4.51.0': - resolution: {integrity: sha512-T3gskHgArUdR6TCN69li5VELVAZK+iQ4iwMoSMNYixoj+56EC9lTj35rcxhXzIJt40YfBkvDy3GS+t5zh7zM6g==} + '@rollup/rollup-darwin-arm64@4.52.3': + resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.46.2': - resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.51.0': - resolution: {integrity: sha512-Hh7n/fh0g5UjH6ATDF56Qdf5bzdLZKIbhp5KftjMYG546Ocjeyg15dxphCpH1FFY2PJ2G6MiOVL4jMq5VLTyrQ==} + '@rollup/rollup-darwin-x64@4.52.3': + resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.46.2': - resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} + '@rollup/rollup-freebsd-arm64@4.52.3': + resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.51.0': - resolution: {integrity: sha512-0EddADb6FBvfqYoxwVom3hAbAvpSVUbZqmR1wmjk0MSZ06hn/UxxGHKRqEQDMkts7XiZjejVB+TLF28cDTU+gA==} - cpu: [arm64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.46.2': - resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} - cpu: [x64] - os: [freebsd] - - '@rollup/rollup-freebsd-x64@4.51.0': - resolution: {integrity: sha512-MpqaEDLo3JuVPF+wWV4mK7V8akL76WCz8ndfz1aVB7RhvXFO3k7yT7eu8OEuog4VTSyNu5ibvN9n6lgjq/qLEQ==} + '@rollup/rollup-freebsd-x64@4.52.3': + resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': - resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-gnueabihf@4.51.0': - resolution: {integrity: sha512-WEWAGFNFFpvSWAIT3MYvxTkYHv/cJl9yWKpjhheg7ONfB0hetZt/uwBnM3GZqSHrk5bXCDYTFXg3jQyk/j7eXQ==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.46.2': - resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': + resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.51.0': - resolution: {integrity: sha512-9bxtxj8QoAp++LOq5PGDGkEEOpCDk9rOEHUcXadnijedDH8IXrBt6PnBa4Y6NblvGWdoxvXZYghZLaliTCmAng==} + '@rollup/rollup-linux-arm-musleabihf@4.52.3': + resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.46.2': - resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.51.0': - resolution: {integrity: sha512-DdqA+fARqIsfqDYkKo2nrWMp0kvu/wPJ2G8lZ4DjYhn+8QhrjVuzmsh7tTkhULwjvHTN59nWVzAixmOi6rqjNA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.46.2': - resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} + '@rollup/rollup-linux-arm64-gnu@4.52.3': + resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.51.0': - resolution: {integrity: sha512-2XVRNzcUJE1UJua8P4a1GXS5jafFWE+pQ6zhUbZzptOu/70p1F6+0FTi6aGPd6jNtnJqGMjtBCXancC2dhYlWw==} + '@rollup/rollup-linux-arm64-musl@4.52.3': + resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.51.0': - resolution: {integrity: sha512-R8QhY0kLIPCAVXWi2yftDSpn7Jtejey/WhMoBESSfwGec5SKdFVupjxFlKoQ7clVRuaDpiQf7wNx3EBZf4Ey6g==} - cpu: [loong64] - os: [linux] - - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': - resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} + '@rollup/rollup-linux-loong64-gnu@4.52.3': + resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.46.2': - resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-ppc64-gnu@4.51.0': - resolution: {integrity: sha512-I498RPfxx9cMv1KTHQ9tg2Ku1utuQm+T5B+Xro+WNu3FzAFSKp4awKfgMoZwjoPgNbaFGINaOM25cQW6WuBhiQ==} + '@rollup/rollup-linux-ppc64-gnu@4.52.3': + resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.46.2': - resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} + '@rollup/rollup-linux-riscv64-gnu@4.52.3': + resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.51.0': - resolution: {integrity: sha512-o8COudsb8lvtdm9ixg9aKjfX5aeoc2x9KGE7WjtrmQFquoCRZ9jtzGlonujE4WhvXFepTraWzT4RcwyDDeHXjA==} + '@rollup/rollup-linux-riscv64-musl@4.52.3': + resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.46.2': - resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-musl@4.51.0': - resolution: {integrity: sha512-0shJPgSXMdYzOQzpM5BJN2euXY1f8uV8mS6AnrbMcH2KrkNsbpMxWB1wp8UEdiJ1NtyBkCk3U/HfX5mEONBq6w==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.46.2': - resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} + '@rollup/rollup-linux-s390x-gnu@4.52.3': + resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.51.0': - resolution: {integrity: sha512-L7pV+ny7865jamSCQwyozBYjFRUKaTsPqDz7ClOtJCDu4paf2uAa0mrcHwSt4XxZP2ogFZS9uuitH3NXdeBEJA==} - cpu: [s390x] + '@rollup/rollup-linux-x64-gnu@4.52.3': + resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==} + cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.46.2': - resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} + '@rollup/rollup-linux-x64-musl@4.52.3': + resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.51.0': - resolution: {integrity: sha512-4YHhP+Rv3T3+H3TPbUvWOw5tuSwhrVhkHHZhk4hC9VXeAOKR26/IsUAT4FsB4mT+kfIdxxb1BezQDEg/voPO8A==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.46.2': - resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.51.0': - resolution: {integrity: sha512-P7U7U03+E5w7WgJtvSseNLOX1UhknVPmEaqgUENFWfNxNBa1OhExT6qYGmyF8gepcxWSaSfJsAV5UwhWrYefdQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-openharmony-arm64@4.51.0': - resolution: {integrity: sha512-FuD8g3u9W6RPwdO1R45hZFORwa1g9YXEMesAKP/sOi7mDqxjbni8S3zAXJiDcRfGfGBqpRYVuH54Gu3FTuSoEw==} + '@rollup/rollup-openharmony-arm64@4.52.3': + resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.46.2': - resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-arm64-msvc@4.51.0': - resolution: {integrity: sha512-zST+FdMCX3QAYfmZX3dp/Fy8qLUetfE17QN5ZmmFGPrhl86qvRr+E9u2bk7fzkIXsfQR30Z7ZRS7WMryPPn4rQ==} + '@rollup/rollup-win32-arm64-msvc@4.52.3': + resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.46.2': - resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} + '@rollup/rollup-win32-ia32-msvc@4.52.3': + resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.51.0': - resolution: {integrity: sha512-U+qhoCVAZmTHCmUKxdQxw1jwAFNFXmOpMME7Npt5GTb1W/7itfgAgNluVOvyeuSeqW+dEQLFuNZF3YZPO8XkMg==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.46.2': - resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} + '@rollup/rollup-win32-x64-gnu@4.52.3': + resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.51.0': - resolution: {integrity: sha512-z6UpFzMhXSD8NNUfCi2HO+pbpSzSWIIPgb1TZsEZjmZYtk6RUIC63JYjlFBwbBZS3jt3f1q6IGfkj3g+GnBt2Q==} + '@rollup/rollup-win32-x64-msvc@4.52.3': + resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==} cpu: [x64] os: [win32] @@ -3381,43 +3002,35 @@ packages: '@rushstack/eslint-patch@1.12.0': resolution: {integrity: sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==} - '@shikijs/core@3.12.2': - resolution: {integrity: sha512-L1Safnhra3tX/oJK5kYHaWmLEBJi1irASwewzY3taX5ibyXyMkkSDZlq01qigjryOBwrXSdFgTiZ3ryzSNeu7Q==} + '@shikijs/core@3.13.0': + resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} - '@shikijs/engine-javascript@3.12.2': - resolution: {integrity: sha512-Nm3/azSsaVS7hk6EwtHEnTythjQfwvrO5tKqMlaH9TwG1P+PNaR8M0EAKZ+GaH2DFwvcr4iSfTveyxMIvXEHMw==} + '@shikijs/engine-javascript@3.13.0': + resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==} - '@shikijs/engine-oniguruma@3.12.2': - resolution: {integrity: sha512-hozwnFHsLvujK4/CPVHNo3Bcg2EsnG8krI/ZQ2FlBlCRpPZW4XAEQmEwqegJsypsTAN9ehu2tEYe30lYKSZW/w==} + '@shikijs/engine-oniguruma@3.13.0': + resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==} - '@shikijs/langs@3.12.2': - resolution: {integrity: sha512-bVx5PfuZHDSHoBal+KzJZGheFuyH4qwwcwG/n+MsWno5cTlKmaNtTsGzJpHYQ8YPbB5BdEdKU1rga5/6JGY8ww==} + '@shikijs/langs@3.13.0': + resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==} - '@shikijs/rehype@3.12.2': - resolution: {integrity: sha512-9wg+FKv0ByaQScTonpZdrDhADOoJP/yCWLAuiYYG6GehwNV5rGwnLvWKj33UmtLedKMSHzWUdB+Un6rfDFo/FA==} + '@shikijs/rehype@3.13.0': + resolution: {integrity: sha512-dxvB5gXEpiTI3beGwOPEwxFxQNmUWM4cwOWbvUmL6DnQJGl18/+cCjVHZK2OnasmU0v7SvM39Zh3iliWdwfBDA==} - '@shikijs/themes@3.12.2': - resolution: {integrity: sha512-fTR3QAgnwYpfGczpIbzPjlRnxyONJOerguQv1iwpyQZ9QXX4qy/XFQqXlf17XTsorxnHoJGbH/LXBvwtqDsF5A==} + '@shikijs/themes@3.13.0': + resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==} - '@shikijs/transformers@3.12.2': - resolution: {integrity: sha512-+z1aMq4N5RoNGY8i7qnTYmG2MBYzFmwkm/yOd6cjEI7OVzcldVvzQCfxU1YbIVgsyB0xHVc2jFe1JhgoXyUoSQ==} + '@shikijs/transformers@3.13.0': + resolution: {integrity: sha512-833lcuVzcRiG+fXvgslWsM2f4gHpjEgui1ipIknSizRuTgMkNZupiXE5/TVJ6eSYfhNBFhBZKkReKWO2GgYmqA==} - '@shikijs/types@3.12.2': - resolution: {integrity: sha512-K5UIBzxCyv0YoxN3LMrKB9zuhp1bV+LgewxuVwHdl4Gz5oePoUFrr9EfgJlGlDeXCU1b/yhdnXeuRvAnz8HN8Q==} + '@shikijs/types@3.13.0': + resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@sinclair/typebox@0.34.38': - resolution: {integrity: sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==} - - '@sindresorhus/is@7.1.0': - resolution: {integrity: sha512-7F/yz2IphV39hiS2zB4QYVkivrptHHh0K8qJJd9HhuWSdvf8AN7NpebW3CcDZDBQsUPMoDKWsY2WWgW7bqOcfA==} - engines: {node: '>=18'} - - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} + '@sinclair/typebox@0.34.41': + resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} @@ -3425,9 +3038,6 @@ packages: '@sinonjs/fake-timers@13.0.5': resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} - '@speed-highlight/core@1.2.7': - resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} - '@standard-schema/spec@1.0.0': resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} @@ -3440,65 +3050,65 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@tailwindcss/node@4.1.13': - resolution: {integrity: sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==} + '@tailwindcss/node@4.1.14': + resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==} - '@tailwindcss/oxide-android-arm64@4.1.13': - resolution: {integrity: sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==} + '@tailwindcss/oxide-android-arm64@4.1.14': + resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.13': - resolution: {integrity: sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==} + '@tailwindcss/oxide-darwin-arm64@4.1.14': + resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.13': - resolution: {integrity: sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==} + '@tailwindcss/oxide-darwin-x64@4.1.14': + resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.13': - resolution: {integrity: sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==} + '@tailwindcss/oxide-freebsd-x64@4.1.14': + resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13': - resolution: {integrity: sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': + resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.13': - resolution: {integrity: sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': + resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.13': - resolution: {integrity: sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': + resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.13': - resolution: {integrity: sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': + resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.13': - resolution: {integrity: sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==} + '@tailwindcss/oxide-linux-x64-musl@4.1.14': + resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.13': - resolution: {integrity: sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==} + '@tailwindcss/oxide-wasm32-wasi@4.1.14': + resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -3509,64 +3119,64 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.13': - resolution: {integrity: sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': + resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.13': - resolution: {integrity: sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': + resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.13': - resolution: {integrity: sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==} + '@tailwindcss/oxide@4.1.14': + resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==} engines: {node: '>= 10'} - '@tailwindcss/postcss@4.1.13': - resolution: {integrity: sha512-HLgx6YSFKJT7rJqh9oJs/TkBFhxuMOfUKSBEPYwV+t78POOBsdQ7crhZLzwcH3T0UyUuOzU/GK5pk5eKr3wCiQ==} + '@tailwindcss/postcss@4.1.14': + resolution: {integrity: sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==} - '@tailwindcss/typography@0.5.16': - resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} + '@tailwindcss/typography@0.5.19': + resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==} peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@tailwindcss/vite@4.1.13': - resolution: {integrity: sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==} + '@tailwindcss/vite@4.1.14': + resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 - '@tanstack/directive-functions-plugin@1.131.2': - resolution: {integrity: sha512-5Pz6aVPS0BW+0bLvMzWsoajfjI6ZeWqkbVBaQfIbSTm4DOBO05JuQ/pb7W7m3GbCb5TK1a/SKDhuTX6Ag5I7UQ==} + '@tanstack/directive-functions-plugin@1.132.21': + resolution: {integrity: sha512-gNUBOtto6FpCtloBISnBK7OH0GJZsEom4L8IHoRdV2td9F9qodHuuewsOeExtNnCQXfL3b5CfCeFNDlREr/urg==} engines: {node: '>=12'} peerDependencies: - vite: '>=6.0.0' + vite: '>=6.0.0 || >=7.0.0' - '@tanstack/history@1.131.2': - resolution: {integrity: sha512-cs1WKawpXIe+vSTeiZUuSBy8JFjEuDgdMKZFRLKwQysKo8y2q6Q1HvS74Yw+m5IhOW1nTZooa6rlgdfXcgFAaw==} + '@tanstack/history@1.132.21': + resolution: {integrity: sha512-5ziPz3YarKU5cBJoEJ4muV8cy+5W4oWdJMqW7qosMrK5fb9Qfm+QWX+kO3emKJMu4YOUofVu3toEuuD3x1zXKw==} engines: {node: '>=12'} - '@tanstack/query-core@5.87.4': - resolution: {integrity: sha512-uNsg6zMxraEPDVO2Bn+F3/ctHi+Zsk+MMpcN8h6P7ozqD088F6mFY5TfGM7zuyIrL7HKpDyu6QHfLWiDxh3cuw==} + '@tanstack/query-core@5.90.2': + resolution: {integrity: sha512-k/TcR3YalnzibscALLwxeiLUub6jN5EDLwKDiO7q5f4ICEoptJ+n9+7vcEFy5/x/i6Q+Lb/tXrsKCggf5uQJXQ==} - '@tanstack/query-devtools@5.87.3': - resolution: {integrity: sha512-LkzxzSr2HS1ALHTgDmJH5eGAVsSQiuwz//VhFW5OqNk0OQ+Fsqba0Tsf+NzWRtXYvpgUqwQr4b2zdFZwxHcGvg==} + '@tanstack/query-devtools@5.90.1': + resolution: {integrity: sha512-GtINOPjPUH0OegJExZ70UahT9ykmAhmtNVcmtdnOZbxLwT7R5OmRztR5Ahe3/Cu7LArEmR6/588tAycuaWb1xQ==} - '@tanstack/react-query-devtools@5.87.4': - resolution: {integrity: sha512-JYcnVJBBW1DCPyNGM0S2CyrLpe6KFiL2gpYd/k9tAp62Du7+Y27zkzd+dKFyxpFadYaTxsx4kUA7YvnkMLVUoQ==} + '@tanstack/react-query-devtools@5.90.2': + resolution: {integrity: sha512-vAXJzZuBXtCQtrY3F/yUNJCV4obT/A/n81kb3+YqLbro5Z2+phdAbceO+deU3ywPw8B42oyJlp4FhO0SoivDFQ==} peerDependencies: - '@tanstack/react-query': ^5.87.4 + '@tanstack/react-query': ^5.90.2 react: 19.1.1 - '@tanstack/react-query@5.87.4': - resolution: {integrity: sha512-T5GT/1ZaNsUXf5I3RhcYuT17I4CPlbZgyLxc/ZGv7ciS6esytlbjb3DgUFO6c8JWYMDpdjSWInyGZUErgzqhcA==} + '@tanstack/react-query@5.90.2': + resolution: {integrity: sha512-CLABiR+h5PYfOWr/z+vWFt5VsOA2ekQeRQBFSKlcoW6Ndx/f8rfyVmq4LbgOM4GG2qtxAxjLYLOpCNTYm4uKzw==} peerDependencies: react: 19.1.1 - '@tanstack/react-router-ssr-query@1.131.49': - resolution: {integrity: sha512-hR0yrIZlg7/TBEElKMeDQOW7CaZDhKj5DRZoHNDdqEjGtrCgzU6AYTlZWrgCzXMC7YKvjCwBxwdo0CnqivDIgw==} + '@tanstack/react-router-ssr-query@1.132.27': + resolution: {integrity: sha512-QKJOxoemxuuX/fSEw814KabcYH2cqXWPOrZKf1+IFEdLJzA6YKrqP23rC72hHR7lXRX5aheiaLdmWr/4UZm0UQ==} engines: {node: '>=12'} peerDependencies: '@tanstack/query-core': '>=5.66.0' @@ -3575,65 +3185,57 @@ packages: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/react-router@1.131.48': - resolution: {integrity: sha512-iT9k/+J4vkoXyI1lBu0StSCLXgfOIMf/IDPh+pZ5HhMPab/wx0PDgIFFgEq9qM1CCykDnKqqeDY0QZWBUS4V1A==} + '@tanstack/react-router@1.132.27': + resolution: {integrity: sha512-fxSm1kxrtl3dQslqqKgYnIbQf7qW4fyWXKQhZYCWBFHO2GT11DWPZTNkTXw5YifOpw2RTmYJBH3C44t1HF95Cw==} engines: {node: '>=12'} peerDependencies: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/react-start-client@1.131.48': - resolution: {integrity: sha512-7A1pU5QV+4URxQXhcMCZd3mv7ujuPwBlwkbQlcYDcQTI0VQOAbwpDbUiCWp4vYrq1cQBv5ZahHG+MPKy+4d5PQ==} - engines: {node: '>=12'} + '@tanstack/react-start-client@1.132.27': + resolution: {integrity: sha512-Y7usVckKyxoSvToASs7iA48MDFHwdwWXcnWR3VrF7xE11BQX9FBZMC0zoj+mBEuew6tuRik7s4NOMT7FQQH0HQ==} + engines: {node: '>=22.12.0'} peerDependencies: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/react-start-plugin@1.131.48': - resolution: {integrity: sha512-TP2AMsTrRQf66WLl4vgUPQ9iTMMwh1WG1g5x4u9QSLWgXIobNhSphzrImNxx/6YFJZd2W38HDAtbbwk35eh7Gw==} - engines: {node: '>=12'} - peerDependencies: - '@vitejs/plugin-react': '>=4.3.4' - vite: '>=6.0.0' - - '@tanstack/react-start-server@1.131.48': - resolution: {integrity: sha512-BPy0abr/hVH1p6AtuakYsYhfkdOL/QYYCO8uPQaSRJHVxicWirzc/srV3GPqPVdiaZqX6C17BI1F/t6+U5uEhQ==} - engines: {node: '>=12'} + '@tanstack/react-start-server@1.132.27': + resolution: {integrity: sha512-ZdUQymY33X8B4pcuqEskVljN4TH3J1miJKd6hCsMLcuA4YoYhkUYsEi5JczjKdVSa8E8flXegt/0ACpc0la7rA==} + engines: {node: '>=22.12.0'} peerDependencies: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/react-start@1.131.48': - resolution: {integrity: sha512-v72e72rTOPpDZVaHAMRMTWtxskdIH1Z2/S4PFOCRkjto0sZHqCijG0u5XDK97Hth4hQwoGAFobGlJMHhnQg2dw==} - engines: {node: '>=12'} + '@tanstack/react-start@1.132.27': + resolution: {integrity: sha512-fVpszyUtF982qhYjo899oCcUFcd2kb3Iu1X2DpoIHhqrOVUqwLzGNSQTTVEOKT6PFX2Q2/7ci3BKN1Awb/rdWw==} + engines: {node: '>=22.12.0'} peerDependencies: - '@vitejs/plugin-react': '>=4.3.4' react: 19.1.1 react-dom: 19.1.1 - vite: '>=6.0.0' + vite: '>=7.0.0' - '@tanstack/react-store@0.7.5': - resolution: {integrity: sha512-A+WZtEnHZpvbKXm8qR+xndNKywBLez2KKKKEQc7w0Qs45GvY1LpRI3BTZNmELwEVim8+Apf99iEDH2J+MUIzlQ==} + '@tanstack/react-store@0.7.7': + resolution: {integrity: sha512-qqT0ufegFRDGSof9D/VqaZgjNgp4tRPHZIJq2+QIHkMUtHjaJ0lYrrXjeIUJvjnTbgPfSD1XgOMEt0lmANn6Zg==} peerDependencies: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/router-core@1.131.48': - resolution: {integrity: sha512-Zw024eJECTLn57bR8oncR4YUTvQ8P41pDnVEXevWPuR6wdKRsIUmhfJowzgf4ppF9Lgl5DUWEhOcj4Awr4tTOQ==} + '@tanstack/router-core@1.132.27': + resolution: {integrity: sha512-mNx+nba7mXc7sJdX+kYH4rSW8f7Jx/+0hPOkX4XAnqiq7I1ng3gGqmGuf4+2BYTG2aD+aTSPExUPczy9VNgRfQ==} engines: {node: '>=12'} - '@tanstack/router-generator@1.131.48': - resolution: {integrity: sha512-spLqLJ1pD6y8wTxdKSRUS7fMINbuqsTEk1Ot0wxdrD1lKwJT8F7yKovSfl+h2WcifFN84B1gc5F3ZRmcp7fTeA==} + '@tanstack/router-generator@1.132.27': + resolution: {integrity: sha512-dlW33RGxgG0mBF8vRqUs5CeId6wOf4qY6GmT2Pv6NgCVtrD7wsMSM1BasIRufNIxRT6FVnE7rztMy9wN7oCaKg==} engines: {node: '>=12'} - '@tanstack/router-plugin@1.131.48': - resolution: {integrity: sha512-5Bt7M3rP6bYNIwFYhLj5AjPdfBqWmrjIliq06rV1iCQ8GJvXPVSuZHwT+jDzxEsyRzHUjk5kuK3ytimXmexpSQ==} + '@tanstack/router-plugin@1.132.27': + resolution: {integrity: sha512-0mo+jdgO7L5hOPGyrmKtyy20ZUfX4LwN30IXS7mhsaSHbZub+XLS3Ta6mDxNLmOXAJLPI3Gc90yI8jVwhizv5Q==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' - '@tanstack/react-router': ^1.131.48 - vite: '>=5.0.0 || >=6.0.0' - vite-plugin-solid: ^2.11.2 + '@tanstack/react-router': ^1.132.27 + vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' + vite-plugin-solid: ^2.11.8 webpack: '>=5.92.0' peerDependenciesMeta: '@rsbuild/core': @@ -3647,64 +3249,52 @@ packages: webpack: optional: true - '@tanstack/router-ssr-query-core@1.131.48': - resolution: {integrity: sha512-s1MR+xnShbWMFS4FcHZ7XGcZXoaesaboR9c+r2+FFZ5x8REpLjgH6kwpp9W1V6w4KOAAmzAYkgUbsXcmGYScEg==} + '@tanstack/router-ssr-query-core@1.132.27': + resolution: {integrity: sha512-MDNE02EQhYt2fNlHYbFzAzzUGxcSLcRgLVKS1XSZZRPaxVeRg5eW2hqy2DCVDaharongkWGz/KmC1qPpRixRKw==} engines: {node: '>=12'} peerDependencies: '@tanstack/query-core': '>=5.66.0' '@tanstack/router-core': '>=1.127.0' - '@tanstack/router-utils@1.131.2': - resolution: {integrity: sha512-sr3x0d2sx9YIJoVth0QnfEcAcl+39sQYaNQxThtHmRpyeFYNyM2TTH+Ud3TNEnI3bbzmLYEUD+7YqB987GzhDA==} + '@tanstack/router-utils@1.132.21': + resolution: {integrity: sha512-d9MvyhdPaKN78hQOss89bayiv/HR/7FpVHuKTNGEzzYrBWDVIUBd0yMNaBxQBpTg6NuNxtZ01ZJS5VkbedbzJw==} engines: {node: '>=12'} - '@tanstack/server-functions-plugin@1.131.2': - resolution: {integrity: sha512-hWsaSgEZAVyzHg8+IcJWCEtfI9ZSlNELErfLiGHG9XCHEXMegFWsrESsKHlASzJqef9RsuOLDl+1IMPIskwdDw==} + '@tanstack/server-functions-plugin@1.132.21': + resolution: {integrity: sha512-QV5sHy3yKMzDinWdRCeg/PwIys95myvxVRllopc0ht4WDOewZW/kNYBq8buvJUhgN4adj4YCV+HJsXwW4YrxZQ==} engines: {node: '>=12'} - '@tanstack/start-client-core@1.131.48': - resolution: {integrity: sha512-lPnDGdLdRrKTELRkaxNXUjv5nhbf5zudq0aq9GzrB1ly6byIdu0YH0EmRo8xcb7wBnlVNa+woN2BeDcfF+/Q0w==} - engines: {node: '>=12'} + '@tanstack/start-client-core@1.132.27': + resolution: {integrity: sha512-YUqsdFT6YlYwXKO72ghvRBCzvX5OLdhW/KBP/rMVKcEzSbS/CEPbhds2ljmNQkKkCxsb/imJHsvdflM0waMrHA==} + engines: {node: '>=22.12.0'} - '@tanstack/start-plugin-core@1.131.48': - resolution: {integrity: sha512-Z8e0/YOkXf+Y9lMGbo7GQpaS40Nt+XrLJT89EBZGN837W5yTCcq6ANE+HYZMZJiusVCzNDl0lT+5ryEX/R92mA==} - engines: {node: '>=12'} + '@tanstack/start-plugin-core@1.132.27': + resolution: {integrity: sha512-LxvOzFAiKRCHJ2+ebelByVc9fyAg+CLYue3V2IP4HNyjwLAvKHsbt+ljgs+gxJDPgvR/3KgEoqIzDWeMF5mumg==} + engines: {node: '>=22.12.0'} peerDependencies: - vite: '>=6.0.0' - - '@tanstack/start-server-core@1.131.48': - resolution: {integrity: sha512-kWvvjRGprW8QWodOjVQchVqOEVjNl6ZFwNMp/UdbVuUNry5lDwEJvS859EI54YQYm1ijtzyLVekbvz6sdNt1LA==} - engines: {node: '>=12'} - - '@tanstack/start-server-functions-client@1.131.48': - resolution: {integrity: sha512-WeR537FatdDX3j3CHNvWWxjkfGBuf9QVCjfq34M6pMDOT7kux+AOAkRDXUeQkfT44UhgYygH5BEPd8W5ecCb7w==} - engines: {node: '>=12'} + vite: '>=7.0.0' - '@tanstack/start-server-functions-fetcher@1.131.48': - resolution: {integrity: sha512-mmguzV+Icd8tEcZ9IazaIzqt2BGKwvsvys8DDpMwzoltSzTCnOKiB6GyeGqIz6qMb+L7Lk7d62MhMo8a1BIiuQ==} - engines: {node: '>=12'} - - '@tanstack/start-server-functions-server@1.131.2': - resolution: {integrity: sha512-u67d6XspczlC/dYki/Id28oWsTjkZMJhDqO4E23U3rHs8eYgxvMBHKqdeqWgOyC+QWT9k6ze1pJmbv+rmc3wOQ==} - engines: {node: '>=12'} + '@tanstack/start-server-core@1.132.27': + resolution: {integrity: sha512-BIBFpmAqECur+5mbG6ZcGjlg93q4qpkwiwRDUmpiBRRWQxG4IYprjQ8ajzCar1yqedB1tqEhRpbkaBNnLIu+oQ==} + engines: {node: '>=22.12.0'} - '@tanstack/start-storage-context@1.131.48': - resolution: {integrity: sha512-bvI0KejHxzGFWHRH3fZ/jNdGVJuTstlzk/RIC8c0qiBk7Hf7DP72s1rA3hNLmOYlM4qloQK/i+HuFrfu8cHoRA==} - engines: {node: '>=12'} + '@tanstack/start-storage-context@1.132.27': + resolution: {integrity: sha512-4WomOGK7KPsnwoMXWT/bxNGRiaoyryEOm1ho44AsbRRD4IjpB+U5vWtT2Sho9grHMjlm4iaOrbklxKfeGhVqGg==} + engines: {node: '>=22.12.0'} - '@tanstack/store@0.7.5': - resolution: {integrity: sha512-qd/OjkjaFRKqKU4Yjipaen/EOB9MyEg6Wr9fW103RBPACf1ZcKhbhcu2S5mj5IgdPib6xFIgCUti/mKVkl+fRw==} + '@tanstack/store@0.7.7': + resolution: {integrity: sha512-xa6pTan1bcaqYDS9BDpSiS63qa6EoDkPN9RsRaxHuDdVDNntzq3xNwR5YKTU/V3SkSyC9T4YVOPh2zRQN0nhIQ==} - '@tanstack/virtual-file-routes@1.131.2': - resolution: {integrity: sha512-VEEOxc4mvyu67O+Bl0APtYjwcNRcL9it9B4HKbNgcBTIOEalhk+ufBl4kiqc8WP1sx1+NAaiS+3CcJBhrqaSRg==} + '@tanstack/virtual-file-routes@1.132.21': + resolution: {integrity: sha512-+eT+vxZnf2/QPr9ci5aPn7i3MnVyWYNG2DUqiKJXGi7EvuFrXV9r8zDK40QfUTNGdCg9F880YOVe3cTwMCO0zw==} engines: {node: '>=12'} '@testing-library/dom@10.4.1': resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} - '@testing-library/jest-dom@6.6.4': - resolution: {integrity: sha512-xDXgLjVunjHqczScfkCJ9iyjdNOVHvvCdqHSSxwM9L0l/wHkTRum67SDc020uAlCoqktJplgO2AAQeLP1wgqDQ==} + '@testing-library/jest-dom@6.9.0': + resolution: {integrity: sha512-QHdxYMJ0YPGKYofMc6zYvo7LOViVhdc6nPg/OtM2cf9MQrwEcTxFCs7d/GJ5eSyPkHzOiBkc/KfLdFJBHzldtQ==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} '@testing-library/react@16.3.0': @@ -3731,15 +3321,15 @@ packages: '@ts-morph/common@0.27.0': resolution: {integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==} + '@ts-morph/common@0.28.0': + resolution: {integrity: sha512-4w6X/oFmvXcwux6y6ExfM/xSqMHw20cYwFJH+BlYrtGa6nwY9qGq8GXnUs1sVYeF2o/KT3S8hAH6sKBI3VOkBg==} + '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - '@types/babel__code-frame@7.0.6': - resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} - '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -3755,8 +3345,8 @@ packages: '@types/better-sqlite3@7.6.13': resolution: {integrity: sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==} - '@types/bun@1.2.21': - resolution: {integrity: sha512-NiDnvEqmbfQ6dmZ3EeUO577s4P5bf4HCTXtI6trMc6f6RzirY5IrF3aIookuSpyslFzrnvv2lmEWv5HyC1X79A==} + '@types/bun@1.2.23': + resolution: {integrity: sha512-le8ueOY5b6VKYf19xT3McVbXqLqmxzPXHsQT/q9JHgikJ2X22wyTW3g3ohz2ZMnp7dod6aduIiq8A14Xyimm0A==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -3809,39 +3399,25 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@20.19.15': - resolution: {integrity: sha512-W3bqcbLsRdFDVcmAM5l6oLlcl67vjevn8j1FPZ4nx+K5jNoWCh+FC/btxFoBPnvQlrHHDwfjp1kjIEDfwJ0Mog==} + '@types/node@20.19.19': + resolution: {integrity: sha512-pb1Uqj5WJP7wrcbLU7Ru4QtA0+3kAXrkutGiD26wUKzSMgNNaPARTUDQmElUXp64kh3cWdou3Q0C7qwwxqSFmg==} '@types/node@24.0.3': resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==} - '@types/node@24.1.0': - resolution: {integrity: sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==} - - '@types/node@24.5.1': - resolution: {integrity: sha512-/SQdmUP2xa+1rdx7VwB9yPq8PaKej8TD5cQ+XfKDPWWC+VDJU4rvVVagXqKUzhKjtFoNA8rXDJAkCxQPAe00+Q==} + '@types/node@24.6.1': + resolution: {integrity: sha512-ljvjjs3DNXummeIaooB4cLBKg2U6SPI6Hjra/9rRIy7CpM0HpLtG9HptkMKAb4HYWy5S7HUvJEuWgr/y0U8SHw==} '@types/pg@8.15.5': resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} - '@types/react-dom@19.1.7': - resolution: {integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==} - peerDependencies: - '@types/react': ^19.0.0 - '@types/react-dom@19.1.9': resolution: {integrity: sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==} peerDependencies: '@types/react': ^19.0.0 - '@types/react@19.1.13': - resolution: {integrity: sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==} - - '@types/react@19.1.9': - resolution: {integrity: sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==} - - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/react@19.1.16': + resolution: {integrity: sha512-WBM/nDbEZmDUORKnh5i1bTnAz6vTohUf9b8esSMu+b24+srbaxa04UbJgWx78CVfNXA20sNu0odEIluZDFdCog==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -3864,63 +3440,63 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.44.0': - resolution: {integrity: sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==} + '@typescript-eslint/eslint-plugin@8.45.0': + resolution: {integrity: sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.44.0 + '@typescript-eslint/parser': ^8.45.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.44.0': - resolution: {integrity: sha512-VGMpFQGUQWYT9LfnPcX8ouFojyrZ/2w3K5BucvxL/spdNehccKhB4jUyB1yBCXpr2XFm0jkECxgrpXBW2ipoAw==} + '@typescript-eslint/parser@8.45.0': + resolution: {integrity: sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.44.0': - resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==} + '@typescript-eslint/project-service@8.45.0': + resolution: {integrity: sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.44.0': - resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==} + '@typescript-eslint/scope-manager@8.45.0': + resolution: {integrity: sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.44.0': - resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==} + '@typescript-eslint/tsconfig-utils@8.45.0': + resolution: {integrity: sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.44.0': - resolution: {integrity: sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==} + '@typescript-eslint/type-utils@8.45.0': + resolution: {integrity: sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.44.0': - resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} + '@typescript-eslint/types@8.45.0': + resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.44.0': - resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==} + '@typescript-eslint/typescript-estree@8.45.0': + resolution: {integrity: sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.44.0': - resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==} + '@typescript-eslint/utils@8.45.0': + resolution: {integrity: sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.44.0': - resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} + '@typescript-eslint/visitor-keys@8.45.0': + resolution: {integrity: sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -4021,64 +3597,46 @@ packages: cpu: [x64] os: [win32] - '@vercel/nft@0.30.1': - resolution: {integrity: sha512-2mgJZv4AYBFkD/nJ4QmiX5Ymxi+AisPLPcS/KPXVqniyQNqKXX+wjieAbDXQP3HcogfEbpHoRMs49Cd4pfkk8g==} - engines: {node: '>=18'} - hasBin: true - '@vitejs/plugin-react@4.7.0': resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - '@vitejs/plugin-react@5.0.3': - resolution: {integrity: sha512-PFVHhosKkofGH0Yzrw1BipSedTH68BFF8ZWy1kfUpCtJcouXXY0+racG8sExw7hw0HoX36813ga5o3LTWZ4FUg==} + '@vitejs/plugin-react@5.0.4': + resolution: {integrity: sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - '@vue/compiler-core@3.5.18': - resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==} + '@vue/compiler-core@3.5.22': + resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==} - '@vue/compiler-dom@3.5.18': - resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==} + '@vue/compiler-dom@3.5.22': + resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==} - '@vue/compiler-sfc@3.5.18': - resolution: {integrity: sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==} + '@vue/compiler-sfc@3.5.22': + resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==} - '@vue/compiler-ssr@3.5.18': - resolution: {integrity: sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==} + '@vue/compiler-ssr@3.5.22': + resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==} - '@vue/reactivity@3.5.18': - resolution: {integrity: sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==} + '@vue/reactivity@3.5.22': + resolution: {integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==} - '@vue/runtime-core@3.5.18': - resolution: {integrity: sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==} + '@vue/runtime-core@3.5.22': + resolution: {integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==} - '@vue/runtime-dom@3.5.18': - resolution: {integrity: sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==} + '@vue/runtime-dom@3.5.22': + resolution: {integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==} - '@vue/server-renderer@3.5.18': - resolution: {integrity: sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==} + '@vue/server-renderer@3.5.22': + resolution: {integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==} peerDependencies: - vue: 3.5.18 - - '@vue/shared@3.5.18': - resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==} + vue: 3.5.22 - abbrev@3.0.1: - resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} - engines: {node: ^18.17.0 || >=20.5.0} - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 + '@vue/shared@3.5.22': + resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -4105,8 +3663,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} ansi-styles@4.3.0: @@ -4117,12 +3675,12 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} - ansis@4.1.0: - resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} engines: {node: '>=14'} any-promise@1.3.0: @@ -4132,14 +3690,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} - engines: {node: '>= 14'} - - archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} - engines: {node: '>= 14'} - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -4204,12 +3754,6 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} - async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - - async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - autoprefixer@10.4.21: resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} @@ -4229,35 +3773,21 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - b4a@1.7.1: - resolution: {integrity: sha512-ZovbrBV0g6JxK5cGUF1Suby1vLfKjv4RWi8IxoaO/Mon8BDD9I21RxjHFtgQ+kskJqLAVyQZly3uMBui+vhc8Q==} - peerDependencies: - react-native-b4a: '*' - peerDependenciesMeta: - react-native-b4a: - optional: true - babel-dead-code-elimination@1.0.10: resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} - babel-jest@30.0.5: - resolution: {integrity: sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - - babel-jest@30.1.2: - resolution: {integrity: sha512-IQCus1rt9kaSh7PQxLYRY5NmkNrNlU2TpabzwV7T2jljnpdHOcmnYYv8QmE04Li4S3a2Lj8/yXyET5pBarPr6g==} + babel-jest@30.2.0: + resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.11.0 + '@babel/core': ^7.11.0 || ^8.0.0-0 - babel-plugin-istanbul@7.0.0: - resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} + babel-plugin-istanbul@7.0.1: + resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} engines: {node: '>=12'} - babel-plugin-jest-hoist@30.0.1: - resolution: {integrity: sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==} + babel-plugin-jest-hoist@30.2.0: + resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} babel-plugin-polyfill-corejs2@0.4.14: @@ -4280,11 +3810,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0 || ^8.0.0-0 - babel-preset-jest@30.0.1: - resolution: {integrity: sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==} + babel-preset-jest@30.2.0: + resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.11.0 + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -4292,14 +3822,11 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.6.1: - resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} - base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.8.6: - resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==} + baseline-browser-mapping@2.8.10: + resolution: {integrity: sha512-uLfgBi+7IBNay8ECBO2mVMGZAc1VgZWEChxm4lv+TobGdG82LnXMjuNGo/BSSZZL4UmkWhxEHP2f5ziLNwGWMA==} hasBin: true better-call@1.0.19: @@ -4331,13 +3858,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.25.1: - resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.26.2: - resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} + browserslist@4.26.3: + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -4348,21 +3870,14 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - bun-types@1.2.21: - resolution: {integrity: sha512-sa2Tj77Ijc/NTLS0/Odjq/qngmEPZfbfnOERi0KRUYhT9R8M4VBioWVmMWE5GrYbKMc+5lVybXygLdibHaqVqw==} + bun-types@1.2.23: + resolution: {integrity: sha512-R9f0hKAZXgFU3mlrA0YpE/fiDvwV0FT9rORApt2aQVWSuJDzZOyB5QLc0N/4HF57CS8IXJ6+L5E4W1bW6NS2Aw==} peerDependencies: '@types/react': ^19 @@ -4376,14 +3891,6 @@ packages: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - c12@3.3.0: - resolution: {integrity: sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==} - peerDependencies: - magicast: ^0.3.5 - peerDependenciesMeta: - magicast: - optional: true - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -4412,11 +3919,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001731: - resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==} - - caniuse-lite@1.0.30001743: - resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} + caniuse-lite@1.0.30001746: + resolution: {integrity: sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -4467,9 +3971,6 @@ packages: resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} engines: {node: '>=8'} - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - cjs-module-lexer@2.1.0: resolution: {integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==} @@ -4479,10 +3980,6 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -4491,10 +3988,6 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - cmdk@1.1.1: resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} peerDependencies: @@ -4524,19 +4017,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -4545,16 +4028,6 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - compatx@0.2.0: - resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==} - - compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} - engines: {node: '>= 14'} - compute-scroll-into-view@3.1.1: resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} @@ -4564,9 +4037,6 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4574,9 +4044,6 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-es@1.2.2: - resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - cookie-es@2.0.0: resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==} @@ -4587,32 +4054,13 @@ packages: core-js-compat@3.45.1: resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - - crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} - engines: {node: '>= 14'} - crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} - croner@9.1.0: - resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} - engines: {node: '>=18.0'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crossws@0.3.5: - resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} @@ -4660,29 +4108,6 @@ packages: date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - db0@0.3.2: - resolution: {integrity: sha512-xzWNQ6jk/+NtdfLyXEipbX55dmDSeteLFt/ayF+wZUU5bzKgmrDOxmInUTbyVRp46YwnJdkDA1KhB7WIXFofJw==} - peerDependencies: - '@electric-sql/pglite': '*' - '@libsql/client': '*' - better-sqlite3: '*' - drizzle-orm: '*' - mysql2: '*' - sqlite3: '*' - peerDependenciesMeta: - '@electric-sql/pglite': - optional: true - '@libsql/client': - optional: true - better-sqlite3: - optional: true - drizzle-orm: - optional: true - mysql2: - optional: true - sqlite3: - optional: true - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -4691,8 +4116,8 @@ packages: supports-color: optional: true - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -4710,8 +4135,8 @@ packages: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} - dedent@1.6.0: - resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} + dedent@1.7.0: + resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -4733,39 +4158,16 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - - denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - - detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + detect-libc@2.1.1: + resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} engines: {node: '>=8'} detect-newline@3.1.0: @@ -4806,16 +4208,12 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.2.6: - resolution: {integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==} + dompurify@3.2.7: + resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - dot-prop@9.0.0: - resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} - engines: {node: '>=18'} - dotenv-cli@10.0.0: resolution: {integrity: sha512-lnOnttzfrzkRx2echxJHQRB6vOAMSCzzZg79IxpC00tU42wZPuZkQxNNrrwVAxaQZIIh001l4PxVlCrBxngBzA==} hasBin: true @@ -4828,8 +4226,8 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dotenv@17.2.2: - resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} + dotenv@17.2.3: + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} drizzle-orm@0.36.4: @@ -4934,19 +4332,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - - electron-to-chromium@1.5.194: - resolution: {integrity: sha512-SdnWJwSUot04UR51I2oPD8kuP2VI37/CADR1OHsFOUzZIvfWJBO6q11k5P/uKNyTT3cdOsnyjkrZ+DDShqYqJA==} - - electron-to-chromium@1.5.222: - resolution: {integrity: sha512-gA7psSwSwQRE60CEoLz6JBCQPIxNeuzB2nL8vE03GK/OHxlvykbLyeiumQy1iH5C2f3YbRAZpGCMT12a/9ih9w==} + electron-to-chromium@1.5.228: + resolution: {integrity: sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -4958,10 +4345,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - encoding-sniffer@0.2.1: resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} @@ -4980,11 +4363,8 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - error-stack-parser-es@1.0.5: - resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} es-abstract@1.24.0: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} @@ -5158,8 +4538,8 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.25.9: - resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} + esbuild@0.25.10: + resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} engines: {node: '>=18'} hasBin: true @@ -5167,9 +4547,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -5259,8 +4636,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.4.20: - resolution: {integrity: sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==} + eslint-plugin-react-refresh@0.4.22: + resolution: {integrity: sha512-atkAG6QaJMGoTLc4MDAP+rqZcfwQuTIh2IqHWFLy2TEjxr0MOK+5BSG4RzL2564AAPpZkDRsZXAUz68kjnU6Ug==} peerDependencies: eslint: '>=8.40' @@ -5292,8 +4669,8 @@ packages: deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true - eslint@9.35.0: - resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==} + eslint@9.36.0: + resolution: {integrity: sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -5358,29 +4735,13 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - event-stream@3.3.4: resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - exit-x@0.2.2: resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} @@ -5389,8 +4750,8 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - expect@30.0.5: - resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==} + expect@30.2.0: + resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} exsolve@1.0.7: @@ -5402,9 +4763,6 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -5434,6 +4792,9 @@ packages: picomatch: optional: true + fetchdts@0.1.7: + resolution: {integrity: sha512-YoZjBdafyLIop9lSxXVI33oLD5kN31q4Td+CasofLLYeLXRFeOsuOw0Uo+XNRi9PZlbfdlN2GmRtm4tCEQ9/KA==} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -5445,9 +4806,6 @@ packages: file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -5485,8 +4843,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@12.23.12: - resolution: {integrity: sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==} + framer-motion@12.23.22: + resolution: {integrity: sha512-ZgGvdxXCw55ZYvhoZChTlG6pUuehecgvEAJz0BHoC5pQKW1EC5xf1Mul1ej5+ai+pVY0pylyFfdl45qnM1/GsA==} peerDependencies: '@emotion/is-prop-valid': '*' react: 19.1.1 @@ -5499,10 +4857,6 @@ packages: react-dom: optional: true - fresh@2.0.0: - resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} - engines: {node: '>= 0.8'} - from@0.1.7: resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} @@ -5557,8 +4911,8 @@ packages: waku: optional: true - fumadocs-docgen@3.0.0: - resolution: {integrity: sha512-+a+FH7Q7P5k1P5SkANtEOSQECJ1TmGz5DJuCXcBVAiGLvWU8FQPBYCEPm1pQYeVp5o/FvpUhweOtMsZPdbvS/Q==} + fumadocs-docgen@3.0.1: + resolution: {integrity: sha512-baqTKSF+NjnHbEeeqZeJg3gCMkj+qvRxkOaAtYmK5UFug2n9rGO7QUNDDIZ4dTGAswT1Y5aatT40O9i0XJJ3ng==} peerDependencies: fumadocs-core: 15.7.11 @@ -5581,8 +4935,8 @@ packages: vite: optional: true - fumadocs-typescript@4.0.8: - resolution: {integrity: sha512-S+Ix6BMKppr3YlINHsX3vU6uyB7bAkD62SkRWl8zxmnOt0P6Sgs+iV4D2vpHbrqHb9Zq/Afa4PMD8J19ymkRgw==} + fumadocs-typescript@4.0.10: + resolution: {integrity: sha512-+B5FWDqOE1KbAGUHF658pnqSqwbnMGwyr/2G9WpH077LKqC/taienSLIsOhyFw2Q2KlBFD0lH6nam8xCGq+sqg==} peerDependencies: '@types/react': '*' fumadocs-core: 15.7.11 @@ -5620,6 +4974,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -5640,9 +4998,6 @@ packages: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} - get-port-please@3.2.0: - resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -5651,10 +5006,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} @@ -5662,10 +5013,6 @@ packages: get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} - giget@2.0.0: - resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} - hasBin: true - github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -5704,10 +5051,6 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@14.1.0: - resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} - engines: {node: '>=18'} - globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -5721,15 +5064,19 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - gzip-size@7.0.0: - resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - h3@1.13.0: - resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} + h3@2.0.0-beta.4: + resolution: {integrity: sha512-/JdwHUGuHjbBXAVxQN7T7QeI9cVlhsqMKVNFHebZVs9RoEYH85Ogh9O1DEy/1ZiJkmMwa1gNg6bBcGhc1Itjdg==} + engines: {node: '>=20.11.1'} + peerDependencies: + crossws: ^0.4.1 + peerDependenciesMeta: + crossws: + optional: true - h3@1.15.4: - resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} @@ -5783,9 +5130,6 @@ packages: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} - hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -5802,33 +5146,18 @@ packages: htmlparser2@10.0.0: resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - httpxy@0.1.7: - resolution: {integrity: sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -5883,13 +5212,6 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - ioredis@5.7.0: - resolution: {integrity: sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==} - engines: {node: '>=12.22.0'} - - iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -5903,9 +5225,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.4: - resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} - is-async-function@2.1.1: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} @@ -5944,16 +5263,6 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -5970,8 +5279,8 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -5981,18 +5290,10 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -6016,9 +5317,6 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -6035,10 +5333,6 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-string@1.1.1: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} @@ -6063,26 +5357,11 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbot@5.1.30: - resolution: {integrity: sha512-3wVJEonAns1OETX83uWsk5IAne2S5zfDcntD2hbtU23LelSqNXzXs9zKjMPOLMzroCgIjCfjYAEHrd2D6FOkiA==} + isbot@5.1.31: + resolution: {integrity: sha512-DPgQshehErHAqSCKDb3rNW03pa2wS/v5evvUqtxt6TTnHRqAG8FdzcSSJs9656pK6Y+NT7K9R4acEYXLHYfpUQ==} engines: {node: '>=18'} isexe@2.0.0: @@ -6104,8 +5383,8 @@ packages: resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} engines: {node: '>=8'} iterator.prototype@1.1.5: @@ -6115,21 +5394,16 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jake@10.9.2: - resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} - engines: {node: '>=10'} - hasBin: true - - jest-changed-files@30.0.5: - resolution: {integrity: sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A==} + jest-changed-files@30.2.0: + resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-circus@30.0.5: - resolution: {integrity: sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug==} + jest-circus@30.2.0: + resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-cli@30.0.5: - resolution: {integrity: sha512-Sa45PGMkBZzF94HMrlX4kUyPOwUpdZasaliKN3mifvDmkhLYqLLg8HQTzn6gq7vJGahFYMQjXgyJWfYImKZzOw==} + jest-cli@30.2.0: + resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -6138,8 +5412,8 @@ packages: node-notifier: optional: true - jest-config@30.0.5: - resolution: {integrity: sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA==} + jest-config@30.2.0: + resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' @@ -6153,20 +5427,20 @@ packages: ts-node: optional: true - jest-diff@30.0.5: - resolution: {integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==} + jest-diff@30.2.0: + resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-docblock@30.0.1: - resolution: {integrity: sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==} + jest-docblock@30.2.0: + resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@30.0.5: - resolution: {integrity: sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ==} + jest-each@30.2.0: + resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-jsdom@30.0.5: - resolution: {integrity: sha512-BmnDEoAH+jEjkPrvE9DTKS2r3jYSJWlN/r46h0/DBUxKrkgt2jAZ5Nj4wXLAcV1KWkRpcFqA5zri9SWzJZ1cCg==} + jest-environment-jsdom@30.2.0: + resolution: {integrity: sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -6174,32 +5448,28 @@ packages: canvas: optional: true - jest-environment-node@30.0.5: - resolution: {integrity: sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-haste-map@30.0.5: - resolution: {integrity: sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg==} + jest-environment-node@30.2.0: + resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-haste-map@30.1.0: - resolution: {integrity: sha512-JLeM84kNjpRkggcGpQLsV7B8W4LNUWz7oDNVnY1Vjj22b5/fAb3kk3htiD+4Na8bmJmjJR7rBtS2Rmq/NEcADg==} + jest-haste-map@30.2.0: + resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-leak-detector@30.0.5: - resolution: {integrity: sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg==} + jest-leak-detector@30.2.0: + resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-matcher-utils@30.0.5: - resolution: {integrity: sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==} + jest-matcher-utils@30.2.0: + resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-message-util@30.0.5: - resolution: {integrity: sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==} + jest-message-util@30.2.0: + resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-mock@30.0.5: - resolution: {integrity: sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==} + jest-mock@30.2.0: + resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-pnp-resolver@1.2.3: @@ -6215,48 +5485,44 @@ packages: resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@30.0.5: - resolution: {integrity: sha512-/xMvBR4MpwkrHW4ikZIWRttBBRZgWK4d6xt3xW1iRDSKt4tXzYkMkyPfBnSCgv96cpkrctfXs6gexeqMYqdEpw==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - - jest-resolve@30.0.5: - resolution: {integrity: sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg==} + jest-resolve-dependencies@30.2.0: + resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@30.0.5: - resolution: {integrity: sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw==} + jest-resolve@30.2.0: + resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@30.0.5: - resolution: {integrity: sha512-7oySNDkqpe4xpX5PPiJTe5vEa+Ak/NnNz2bGYZrA1ftG3RL3EFlHaUkA1Cjx+R8IhK0Vg43RML5mJedGTPNz3A==} + jest-runner@30.2.0: + resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@30.0.5: - resolution: {integrity: sha512-T00dWU/Ek3LqTp4+DcW6PraVxjk28WY5Ua/s+3zUKSERZSNyxTqhDXCWKG5p2HAJ+crVQ3WJ2P9YVHpj1tkW+g==} + jest-runtime@30.2.0: + resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-util@30.0.5: - resolution: {integrity: sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==} + jest-snapshot@30.2.0: + resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-validate@30.0.5: - resolution: {integrity: sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw==} + jest-util@30.2.0: + resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@30.0.5: - resolution: {integrity: sha512-z9slj/0vOwBDBjN3L4z4ZYaA+pG56d6p3kTUhFRYGvXbXMWhXmb/FIxREZCD06DYUwDKKnj2T80+Pb71CQ0KEg==} + jest-validate@30.2.0: + resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-worker@30.0.5: - resolution: {integrity: sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ==} + jest-watcher@30.2.0: + resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-worker@30.1.0: - resolution: {integrity: sha512-uvWcSjlwAAgIu133Tt77A05H7RIk3Ho8tZL50bQM2AkvLdluw9NG48lRCl3Dt+MOH719n/0nnb5YxUwcuJiKRA==} + jest-worker@30.2.0: + resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest@30.0.5: - resolution: {integrity: sha512-y2mfcJywuTUkvLm2Lp1/pFX8kTgMO5yyQGq/Sk/n2mN7XWYp4JsCZ/QXW34M8YScgk8bPZlREH04f6blPnoHnQ==} + jest@30.2.0: + resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -6265,8 +5531,8 @@ packages: node-notifier: optional: true - jiti@2.5.1: - resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true joycon@3.1.1: @@ -6276,9 +5542,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -6296,11 +5559,6 @@ packages: canvas: optional: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -6338,19 +5596,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - - knitwork@1.2.0: - resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} - - kysely@0.28.5: - resolution: {integrity: sha512-rlB0I/c6FBDWPcQoDtkxi9zIvpmnV5xoIalfCMSMCa7nuA6VGA3F54TW9mEgX4DVf10sXAWCF5fDbamI/5ZpKA==} + kysely@0.28.7: + resolution: {integrity: sha512-u/cAuTL4DRIiO2/g4vNGRgklEKNIj5Q3CG7RoUB5DV5SfEC2hMvPxKi0GWPmnzwL2ryIeud2VTcEEmqzTzEPNw==} engines: {node: '>=20.0.0'} language-subtag-registry@0.3.23: @@ -6360,10 +5607,6 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} - lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} - leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -6443,18 +5686,10 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - listhen@1.9.0: - resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} - hasBin: true - load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - local-pkg@1.1.2: - resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} - engines: {node: '>=14'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -6466,21 +5701,9 @@ packages: lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - lodash.castarray@4.4.0: - resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} - lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - - lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -6490,9 +5713,6 @@ packages: lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -6506,8 +5726,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.1: - resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==} + lru-cache@11.2.2: + resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -6535,9 +5755,6 @@ packages: magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} - magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -6735,32 +5952,10 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} - - mime-types@3.0.1: - resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} - engines: {node: '>= 0.6'} - - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - - mime@4.1.0: - resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} - engines: {node: '>=16'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -6776,10 +5971,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -6791,26 +5982,18 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@3.0.2: - resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} - hasBin: true - - mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} - mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} - motion-dom@12.23.12: - resolution: {integrity: sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==} + motion-dom@12.23.21: + resolution: {integrity: sha512-5xDXx/AbhrfgsQmSE7YESMn4Dpo6x5/DTZ4Iyy4xqDvVHWvFVoV+V2Ri2S/ksx+D40wrZ7gPYiMWshkdoqNgNQ==} motion-utils@12.23.6: resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} @@ -6826,16 +6009,16 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.5: - resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} + nanoid@5.1.6: + resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} engines: {node: ^18 || >=20} hasBin: true napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - napi-postinstall@0.3.2: - resolution: {integrity: sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==} + napi-postinstall@0.3.3: + resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true @@ -6846,6 +6029,9 @@ packages: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + next-themes@0.4.6: resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} peerDependencies: @@ -6894,63 +6080,19 @@ packages: sass: optional: true - nitropack@2.12.6: - resolution: {integrity: sha512-DEq31s0SP4/Z5DIoVBRo9DbWFPWwIoYD4cQMEz7eE+iJMiAP+1k9A3B9kcc6Ihc0jDJmfUcHYyh6h2XlynCx6g==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - xml2js: ^0.6.2 - peerDependenciesMeta: - xml2js: - optional: true - - node-abi@3.75.0: - resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} + node-abi@3.77.0: + resolution: {integrity: sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==} engines: {node: '>=10'} - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-cleanup@2.1.2: resolution: {integrity: sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==} - node-fetch-native@1.6.7: - resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-gyp-build@4.8.4: - resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} - hasBin: true - node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-mock-http@1.0.3: - resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - node-releases@2.0.21: resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} - nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -6963,10 +6105,6 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm-to-yarn@3.0.1: resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6974,13 +6112,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.21: - resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==} - - nypm@0.6.2: - resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} - engines: {node: ^14.16.0 || >=16.10.0} - hasBin: true + nwsapi@2.2.22: + resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -7014,19 +6147,6 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - ofetch@1.4.1: - resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} - - ohash@1.1.6: - resolution: {integrity: sha512-TBu7PtV8YkAZn0tSxobKY2n2aAQva936lhRrj6957aDaCf9IEtqsKbgMzXE/F/sjqYOwmrukeORHNLe5glk7Cg==} - - ohash@2.0.11: - resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -7034,20 +6154,12 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} oniguruma-to-es@4.3.3: resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -7059,9 +6171,9 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} - oxc-transform@0.82.3: - resolution: {integrity: sha512-/vpZvbKSGpUcD06oTPMdAoLLNl2YjIzPAhAR2UDmBy/EyrTObmopxqOL9Pczg/R5cpisi7PzXbsn25tu00Ruqw==} - engines: {node: '>=14.0.0'} + oxc-transform@0.92.0: + resolution: {integrity: sha512-mdYNJWmFAPcuMM8MNEKyHT5kOWp7hxsHfAjF2GGeij4IjmmbYMJ0o8JjT/1AirVesu2tk3PTEJAEsjDBPph+eA==} + engines: {node: ^20.19.0 || >=22.12.0} p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} @@ -7106,10 +6218,6 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -7125,10 +6233,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -7136,22 +6240,12 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-type@6.0.0: - resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} - engines: {node: '>=18'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} pause-stream@0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} - perfect-debounce@2.0.0: - resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} - pg-cloudflare@1.2.7: resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} @@ -7208,16 +6302,13 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkg-types@2.3.0: - resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - - playwright-core@1.55.0: - resolution: {integrity: sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==} + playwright-core@1.55.1: + resolution: {integrity: sha512-Z6Mh9mkwX+zxSlHqdr5AOcJnfp+xUWLCt9uKV18fhzA8eyxUd8NUWzAjxUh55RZKSYwDGX0cfaySdhZJGMoJ+w==} engines: {node: '>=18'} hasBin: true - playwright@1.55.0: - resolution: {integrity: sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==} + playwright@1.55.1: + resolution: {integrity: sha512-cJW4Xd/G3v5ovXtJJ52MAOclqeac9S/aGGgRzLabuF8TnIb6xHvMzKIa6JmrRzUkeXJgfL1MhukP0NK6l39h3A==} engines: {node: '>=18'} hasBin: true @@ -7292,16 +6383,12 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-bytes@7.0.1: - resolution: {integrity: sha512-285/jRCYIbMGDciDdrw0KPNC4LKEEwz/bwErcYNxSJOi4CpGUuLpb9gQpg3XJP0XYj9ldSRluXxih4lX2YN8Xw==} - engines: {node: '>=20'} - pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@30.0.5: - resolution: {integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==} + pretty-format@30.2.0: + resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} prisma@5.22.0: @@ -7309,13 +6396,6 @@ packages: engines: {node: '>=16.13'} hasBin: true - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -7328,6 +6408,9 @@ packages: prosemirror-commands@1.7.1: resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + prosemirror-drop-indicator@0.1.0: + resolution: {integrity: sha512-2owtnbsn6YcQdSletuC+RisMj7eAMn69Bpy0GZj3uUSabh6UmBPumN9Y4s8c76EqgORmxAyQy+I4+j0goHekOg==} + prosemirror-dropcursor@1.8.2: resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} @@ -7355,14 +6438,14 @@ packages: prosemirror-state@1.4.3: resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} - prosemirror-tables@1.7.1: - resolution: {integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==} + prosemirror-tables@1.8.1: + resolution: {integrity: sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==} prosemirror-transform@1.10.4: resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==} - prosemirror-view@1.40.1: - resolution: {integrity: sha512-pbwUjt3G7TlsQQHDiYSupWBhJswpLVB09xXm1YiJPdkjkh9Pe7Y51XdLh5VWIZmROLY8UpUpG03lkdhm9lzIBA==} + prosemirror-view@1.41.2: + resolution: {integrity: sha512-PGS/jETmh+Qjmre/6vcG7SNHAKiGc4vKOJmHMPRmvcUl7ISuVtrtHmH06UDUwaim4NDJfZfVMl7U7JkMMETa6g==} prosemirror-virtual-cursor@0.4.2: resolution: {integrity: sha512-pUMKnIuOhhnMcgIJUjhIQTVJruBEGxfMBVQSrK0g2qhGPDm1i12KdsVaFw15dYk+29tZcxjMeR7P5VDKwmbwJg==} @@ -7393,31 +6476,15 @@ packages: pure-rand@7.0.1: resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - rc9@2.1.2: - resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} - rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-day-picker@9.8.1: - resolution: {integrity: sha512-kMcLrp3PfN/asVJayVv82IjF3iLOOxuH5TNFWezX6lS/T8iVRFPTETpHl3TUSTH99IDMZLubdNPJr++rQctkEw==} + react-day-picker@9.11.0: + resolution: {integrity: sha512-L4FYOaPrr3+AEROeP6IG2mCORZZfxJDkJI2df8mv1jyPrNYeccgmFPZDaHyAuPCBCddQFozkxbikj2NhMEYfDQ==} engines: {node: '>=18'} peerDependencies: react: 19.1.1 @@ -7453,8 +6520,8 @@ packages: '@types/react': '>=18' react: 19.1.1 - react-medium-image-zoom@5.3.0: - resolution: {integrity: sha512-RCIzVlsKqy3BYgGgYbolUfuvx0aSKC7YhX/IJGEp+WJxsqdIVYJHkBdj++FAj6VD7RiWj6VVmdCfa/9vJE9hZg==} + react-medium-image-zoom@5.4.0: + resolution: {integrity: sha512-BsE+EnFVQzFIlyuuQrZ9iTwyKpKkqdFZV1ImEQN573QPqGrIUuNni7aF+sZwDcxlsuOMayCr6oO/PZR/yJnbRg==} peerDependencies: react: 19.1.1 react-dom: 19.1.1 @@ -7483,15 +6550,15 @@ packages: '@types/react': optional: true - react-router-dom@7.9.1: - resolution: {integrity: sha512-U9WBQssBE9B1vmRjo9qTM7YRzfZ3lUxESIZnsf4VjR/lXYz9MHjvOxHzr/aUm4efpktbVOrF09rL/y4VHa8RMw==} + react-router-dom@7.9.3: + resolution: {integrity: sha512-1QSbA0TGGFKTAc/aWjpfW/zoEukYfU4dc1dLkT/vvf54JoGMkW+fNA+3oyo2gWVW1GM7BxjJVHz5GnPJv40rvg==} engines: {node: '>=20.0.0'} peerDependencies: react: 19.1.1 react-dom: 19.1.1 - react-router@7.9.1: - resolution: {integrity: sha512-pfAByjcTpX55mqSDGwGnY9vDCpxqBLASg0BMNAuMmpSGESo/TaOUG6BllhAtAkCGx8Rnohik/XtaqiYUJtgW2g==} + react-router@7.9.3: + resolution: {integrity: sha512-4o2iWCFIwhI/eYAIL43+cjORXYn/aRQPgtFRRZb3VzoyQ5Uej0Bmqj7437L97N9NJW4wnicSwLOLS+yCXfAPgg==} engines: {node: '>=20.0.0'} peerDependencies: react: 19.1.1 @@ -7514,20 +6581,10 @@ packages: resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} engines: {node: '>=0.10.0'} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -7558,14 +6615,6 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} - - redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} - reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -7590,15 +6639,15 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpu-core@6.3.1: - resolution: {integrity: sha512-DzcswPr252wEr7Qz8AyAVbfyBDKLoYp6eRA1We2Fa9qirRFSdtkP5sHr3yglDKy2BbA0fd2T+j/CUSKes3FeVQ==} + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true rehype-highlight@7.0.2: @@ -7668,26 +6717,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-visualizer@6.0.3: - resolution: {integrity: sha512-ZU41GwrkDcCpVoffviuM9Clwjy5fcUxlz0oMoTXTYsK+tcIFzbdacnrr2n8TXcHxbGKKXtOdjxM2HUS4HjkwIw==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - rolldown: 1.x || ^1.0.0-beta - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rolldown: - optional: true - rollup: - optional: true - - rollup@4.46.2: - resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.51.0: - resolution: {integrity: sha512-7cR0XWrdp/UAj2HMY/Y4QQEUjidn3l2AY1wSeZoFjMbD8aOMPoV9wgTFYbrJpPzzvejDEini1h3CiUP8wLzxQA==} + rollup@4.52.3: + resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -7697,8 +6728,8 @@ packages: rou3@0.5.1: resolution: {integrity: sha512-OXMmJ3zRk2xeXFGfA3K+EOPHC5u7RDFG7lIOx0X1pdnhUkI8MdVrbV+sNsD80ElpUZ+MRHdyxPnFthq9VHs8uQ==} - rou3@0.7.5: - resolution: {integrity: sha512-bwUHDHw1HSARty7TWNV71R0NZs5fOt74OM+hcMdJyPfchfRktEmxLoMSNa7PwEp6WqJ0a3feKztsIfTUEYhskw==} + rou3@0.7.7: + resolution: {integrity: sha512-z+6o7c3DarUbuBMLIdhzj2CqJLtUWrGk4fZlf07dIMitX3UpBXeInJ3lMD9huxj9yh9eo1RqtXf9aL0YzkDDUA==} rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} @@ -7710,9 +6741,6 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -7737,9 +6765,6 @@ packages: scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -7749,13 +6774,6 @@ packages: engines: {node: '>=10'} hasBin: true - send@1.2.0: - resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} - engines: {node: '>= 18'} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - seroval-plugins@1.3.3: resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==} engines: {node: '>=10'} @@ -7766,13 +6784,6 @@ packages: resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} engines: {node: '>=10'} - serve-placeholder@2.0.2: - resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} - - serve-static@2.2.0: - resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} - engines: {node: '>= 18'} - set-cookie-parser@2.7.1: resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} @@ -7788,11 +6799,8 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - sharp@0.34.3: - resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} + sharp@0.34.4: + resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: @@ -7803,8 +6811,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@3.12.2: - resolution: {integrity: sha512-uIrKI+f9IPz1zDT+GMz+0RjzKJiijVr6WDWm9Pe3NNY6QigKCfifCEv9v9R2mDASKKjzjQ2QpFLcxaR3iHSnMA==} + shiki@3.13.0: + resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -7835,20 +6843,10 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - simple-swizzle@0.2.4: - resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - - smob@1.5.0: - resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} - sonner@2.0.7: resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} peerDependencies: @@ -7862,9 +6860,6 @@ packages: source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -7891,6 +6886,11 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + srvx@0.8.9: + resolution: {integrity: sha512-wYc3VLZHRzwYrWJhkEqkhLb31TI0SOkfYZDkUhXdp3NoCnNS0FqajiQszZZjfow/VYEuc6Q5sZh9nM6kPy2NBQ==} + engines: {node: '>=20.16.0'} + hasBin: true + stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} @@ -7898,20 +6898,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - - std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -7923,9 +6909,6 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - streamx@2.22.1: - resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==} - string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -7965,9 +6948,6 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -7978,8 +6958,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} strip-bom@3.0.0: @@ -7994,10 +6974,6 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -8010,9 +6986,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@3.0.0: - resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} - style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} @@ -8040,10 +7013,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@10.2.2: - resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} - engines: {node: '>=18'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -8063,10 +7032,6 @@ packages: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} - system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} - tailwind-merge@3.3.1: resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} @@ -8075,39 +7040,28 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@4.1.13: - resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==} + tailwindcss@4.1.14: + resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==} tapable@2.2.3: resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} engines: {node: '>=6'} - tar-fs@2.1.3: - resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==} + tar-fs@2.1.4: + resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - - tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + tar@7.5.1: + resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} engines: {node: '>=18'} - terser@5.44.0: - resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} - engines: {node: '>=10'} - hasBin: true - test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - text-decoder@1.2.3: - resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} - text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -8151,17 +7105,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - tough-cookie@5.1.2: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -8188,8 +7135,8 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest@29.4.0: - resolution: {integrity: sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==} + ts-jest@29.4.4: + resolution: {integrity: sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -8218,8 +7165,11 @@ packages: ts-morph@26.0.0: resolution: {integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==} - tsc-watch@7.1.1: - resolution: {integrity: sha512-r6t37Dkk4vK44HwxOe+OzjpE/gDamZAwqXhtcAJD/hPVblcjJK45NxbK0HcDASXG0U4pEnCh640JZbeDVSC6yA==} + ts-morph@27.0.0: + resolution: {integrity: sha512-xcqelpTR5PCuZMs54qp9DE3t7tPgA2v/P1/qdW4ke5b3Y5liTGTYj6a/twT35EQW/H5okRqp1UOqwNlgg0K0eQ==} + + tsc-watch@7.2.0: + resolution: {integrity: sha512-4gRFawQD1cVSaILvG7wl2x6NtteKbS2dGBMbL7Q6n1ldLIOKXCJUoEwUXdGuee4dp+zcnA6tukBBLz1lZrNI9w==} engines: {node: '>=12.12.0'} hasBin: true peerDependencies: @@ -8260,50 +7210,50 @@ packages: typescript: optional: true - tsx@4.20.3: - resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} + tsx@4.20.6: + resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==} engines: {node: '>=18.0.0'} hasBin: true tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - turbo-darwin-64@2.5.5: - resolution: {integrity: sha512-RYnTz49u4F5tDD2SUwwtlynABNBAfbyT2uU/brJcyh5k6lDLyNfYKdKmqd3K2ls4AaiALWrFKVSBsiVwhdFNzQ==} + turbo-darwin-64@2.5.8: + resolution: {integrity: sha512-Dh5bCACiHO8rUXZLpKw+m3FiHtAp2CkanSyJre+SInEvEr5kIxjGvCK/8MFX8SFRjQuhjtvpIvYYZJB4AGCxNQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.5.5: - resolution: {integrity: sha512-Tk+ZeSNdBobZiMw9aFypQt0DlLsWSFWu1ymqsAdJLuPoAH05qCfYtRxE1pJuYHcJB5pqI+/HOxtJoQ40726Btw==} + turbo-darwin-arm64@2.5.8: + resolution: {integrity: sha512-f1H/tQC9px7+hmXn6Kx/w8Jd/FneIUnvLlcI/7RGHunxfOkKJKvsoiNzySkoHQ8uq1pJnhJ0xNGTlYM48ZaJOQ==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.5.5: - resolution: {integrity: sha512-2/XvMGykD7VgsvWesZZYIIVXMlgBcQy+ZAryjugoTcvJv8TZzSU/B1nShcA7IAjZ0q7OsZ45uP2cOb8EgKT30w==} + turbo-linux-64@2.5.8: + resolution: {integrity: sha512-hMyvc7w7yadBlZBGl/bnR6O+dJTx3XkTeyTTH4zEjERO6ChEs0SrN8jTFj1lueNXKIHh1SnALmy6VctKMGnWfw==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.5.5: - resolution: {integrity: sha512-DW+8CjCjybu0d7TFm9dovTTVg1VRnlkZ1rceO4zqsaLrit3DgHnN4to4uwyuf9s2V/BwS3IYcRy+HG9BL596Iw==} + turbo-linux-arm64@2.5.8: + resolution: {integrity: sha512-LQELGa7bAqV2f+3rTMRPnj5G/OHAe2U+0N9BwsZvfMvHSUbsQ3bBMWdSQaYNicok7wOZcHjz2TkESn1hYK6xIQ==} cpu: [arm64] os: [linux] - turbo-windows-64@2.5.5: - resolution: {integrity: sha512-q5p1BOy8ChtSZfULuF1BhFMYIx6bevXu4fJ+TE/hyNfyHJIfjl90Z6jWdqAlyaFLmn99X/uw+7d6T/Y/dr5JwQ==} + turbo-windows-64@2.5.8: + resolution: {integrity: sha512-3YdcaW34TrN1AWwqgYL9gUqmZsMT4T7g8Y5Azz+uwwEJW+4sgcJkIi9pYFyU4ZBSjBvkfuPZkGgfStir5BBDJQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.5.5: - resolution: {integrity: sha512-AXbF1KmpHUq3PKQwddMGoKMYhHsy5t1YBQO8HZ04HLMR0rWv9adYlQ8kaeQJTko1Ay1anOBFTqaxfVOOsu7+1Q==} + turbo-windows-arm64@2.5.8: + resolution: {integrity: sha512-eFC5XzLmgXJfnAK3UMTmVECCwuBcORrWdewoiXBnUm934DY6QN8YowC/srhNnROMpaKaqNeRpoB5FxCww3eteQ==} cpu: [arm64] os: [win32] - turbo@2.5.5: - resolution: {integrity: sha512-eZ7wI6KjtT1eBqCnh2JPXWNUAxtoxxfi6VdBdZFvil0ychCOTxbm7YLRBi1JSt7U3c+u3CLxpoPxLdvr/Npr3A==} + turbo@2.5.8: + resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==} hasBin: true - tw-animate-css@1.3.8: - resolution: {integrity: sha512-Qrk3PZ7l7wUcGYhwZloqfkWCmaXZAoqjkdbIDvzfGshwGtexa/DAs9koXxIkrpEasyevandomzCBAV1Yyop5rw==} + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -8341,8 +7291,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.44.0: - resolution: {integrity: sha512-ib7mCkYuIzYonCq9XWF5XNw+fkj2zg629PSa9KNIQ47RXFF763S5BIX4wqz1+FLPogTZoiw8KmCiRPRa8bL3qw==} + typescript-eslint@8.45.0: + resolution: {integrity: sha512-qzDmZw/Z5beNLUrXfd0HIW6MzIaAV5WNDxmMs9/3ojGOpYavofgNAAD/nC6tGV2PczIi0iw8vot2eAe/sBn7zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -8353,16 +7303,18 @@ packages: engines: {node: '>=14.17'} hasBin: true - typescript@5.9.2: - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true ufo@1.6.1: resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} - ultrahtml@1.6.0: - resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} @@ -8371,14 +7323,11 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - unctx@2.4.1: - resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.12.0: - resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} + undici-types@7.13.0: + resolution: {integrity: sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==} undici-types@7.8.0: resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} @@ -8387,12 +7336,6 @@ packages: resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} engines: {node: '>=20.18.1'} - unenv@1.10.0: - resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} - - unenv@2.0.0-rc.21: - resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} - unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -8409,17 +7352,9 @@ packages: resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} - unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} - engines: {node: '>=18'} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unimport@5.3.0: - resolution: {integrity: sha512-cty7t1DESgm0OPfCy9oyn5u9B5t0tMW6tH6bXTjAGIO3SkJsbg/DXYHjrPrUKqultqbAAoltAfYsuu/FEDocjg==} - engines: {node: '>=18.12.0'} - unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} @@ -8444,10 +7379,6 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - unplugin-utils@0.3.0: - resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==} - engines: {node: '>=20.19.0'} - unplugin@2.3.10: resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} engines: {node: '>=18.12.0'} @@ -8455,88 +7386,12 @@ packages: unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - unstorage@1.17.1: - resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} - peerDependencies: - '@azure/app-configuration': ^1.8.0 - '@azure/cosmos': ^4.2.0 - '@azure/data-tables': ^13.3.0 - '@azure/identity': ^4.6.0 - '@azure/keyvault-secrets': ^4.9.0 - '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6.0.3 || ^7.0.0 - '@deno/kv': '>=0.9.0' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.3 - '@vercel/blob': '>=0.27.1' - '@vercel/functions': ^2.2.12 || ^3.0.0 - '@vercel/kv': ^1.0.1 - aws4fetch: ^1.0.20 - db0: '>=0.2.1' - idb-keyval: ^6.2.1 - ioredis: ^5.4.2 - uploadthing: ^7.4.4 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@deno/kv': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/blob': - optional: true - '@vercel/functions': - optional: true - '@vercel/kv': - optional: true - aws4fetch: - optional: true - db0: - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - uploadthing: - optional: true - - untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} - hasBin: true - - untyped@2.0.0: - resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} - hasBin: true - - unwasm@0.3.11: - resolution: {integrity: sha512-Vhp5gb1tusSQw5of/g3Q697srYgMXvwMgXMjcG4ZNga02fDX9coxJ9fAb0Ci38hM2Hv/U1FXRPGgjP2BYqhNoQ==} - update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' - uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -8592,8 +7447,8 @@ packages: vite: optional: true - vite@7.1.5: - resolution: {integrity: sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==} + vite@7.1.7: + resolution: {integrity: sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -8640,8 +7495,8 @@ packages: vite: optional: true - vue@3.5.18: - resolution: {integrity: sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==} + vue@3.5.22: + resolution: {integrity: sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -8658,9 +7513,6 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -8683,9 +7535,6 @@ packages: resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} engines: {node: '>=18'} - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -8714,6 +7563,9 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -8767,11 +7619,6 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} - engines: {node: '>= 14.6'} - hasBin: true - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -8784,43 +7631,25 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - youch-core@0.3.3: - resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} - - youch@4.1.0-beta.11: - resolution: {integrity: sha512-sQi6PERyO/mT8w564ojOVeAlYTtVQmC2GaktQAf+IdI75/GKIggosBuvyVXvEV+FATAT6RbLdIjFoiIId4ozoQ==} - - zip-stream@6.0.1: - resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} - engines: {node: '>= 14'} - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.1.8: - resolution: {integrity: sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==} - - zod@4.1.9: - resolution: {integrity: sha512-HI32jTq0AUAC125z30E8bQNz0RQ+9Uc+4J7V97gLYjZVKRjeydPgGt6dvQzFrav7MYOUGFqqOGiHpA/fdbd0cQ==} + zod@4.1.11: + resolution: {integrity: sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: - '@adobe/css-tools@4.4.3': {} + '@adobe/css-tools@4.4.4': {} '@alloc/quick-lru@5.2.0': {} - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - '@asamuzakjp/css-color@3.2.0': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 lru-cache: 10.4.3 @@ -8837,27 +7666,7 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.28.0': {} - - '@babel/core@7.28.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helpers': 7.28.2 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 - convert-source-map: 2.0.0 - debug: 4.4.1 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/compat-data@7.28.4': {} '@babel/core@7.28.4': dependencies: @@ -8872,27 +7681,19 @@ snapshots: '@babel/types': 7.28.4 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.28.0': - dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - jsesc: 3.1.0 - '@babel/generator@7.28.3': dependencies: '@babel/parser': 7.28.4 '@babel/types': 7.28.4 - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': @@ -8901,25 +7702,12 @@ snapshots: '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.28.0 + '@babel/compat-data': 7.28.4 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.1 + browserslist: 4.26.3 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.4 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -8933,19 +7721,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.3.1 + regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.0)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1 + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -8967,24 +7755,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -9000,24 +7770,15 @@ snapshots: '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -9048,106 +7809,92 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.28.2': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 '@babel/types': 7.28.4 - '@babel/parser@7.28.0': - dependencies: - '@babel/types': 7.28.4 - '@babel/parser@7.28.4': dependencies: '@babel/types': 7.28.4 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.0)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.4 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': @@ -9155,49 +7902,44 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': @@ -9205,176 +7947,168 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.28.0)': + '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.0)': + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.0)': + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.0)': + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.0) + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color @@ -9387,107 +8121,102 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.0)': + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) '@babel/traverse': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.0)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.0) + '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)': @@ -9495,58 +8224,53 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.0)': + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)': @@ -9560,108 +8284,108 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)': + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-env@7.28.3(@babel/core@7.28.0)': + '@babel/preset-env@7.28.3(@babel/core@7.28.4)': dependencies: - '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 + '@babel/compat-data': 7.28.4 + '@babel/core': 7.28.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.28.0) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.0) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.0) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.0) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.0) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.0) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.4) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.4) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.4) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.28.4) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.4) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.4) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.4) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.4) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.4) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.4) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4) core-js-compat: 3.45.1 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.4)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/types': 7.28.4 esutils: 2.0.3 @@ -9677,7 +8401,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/runtime@7.28.2': {} + '@babel/runtime@7.28.4': {} '@babel/template@7.27.2': dependencies: @@ -9685,18 +8409,6 @@ snapshots: '@babel/parser': 7.28.4 '@babel/types': 7.28.4 - '@babel/traverse@7.28.0': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - debug: 4.4.1 - transitivePeerDependencies: - - supports-color - '@babel/traverse@7.28.4': dependencies: '@babel/code-frame': 7.27.1 @@ -9705,15 +8417,10 @@ snapshots: '@babel/parser': 7.28.4 '@babel/template': 7.27.2 '@babel/types': 7.28.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.28.2': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -9760,148 +8467,144 @@ snapshots: '@biomejs/cli-win32-x64@1.9.4': optional: true - '@cloudflare/kv-asset-handler@0.4.0': + '@codemirror/autocomplete@6.19.0': dependencies: - mime: 3.0.0 - - '@codemirror/autocomplete@6.18.6': - dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 '@codemirror/commands@6.8.1': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 '@codemirror/lang-angular@0.1.4': dependencies: - '@codemirror/lang-html': 6.4.9 + '@codemirror/lang-html': 6.4.10 '@codemirror/lang-javascript': 6.2.4 - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-cpp@6.0.3': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@lezer/cpp': 1.1.3 '@codemirror/lang-css@6.3.1': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/css': 1.3.0 '@codemirror/lang-go@6.0.1': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/go': 1.0.1 - '@codemirror/lang-html@6.4.9': + '@codemirror/lang-html@6.4.10': dependencies: - '@codemirror/autocomplete': 6.18.6 + '@codemirror/autocomplete': 6.19.0 '@codemirror/lang-css': 6.3.1 '@codemirror/lang-javascript': 6.2.4 - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 '@lezer/css': 1.3.0 - '@lezer/html': 1.3.10 + '@lezer/html': 1.3.12 '@codemirror/lang-java@6.0.2': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@lezer/java': 1.1.3 '@codemirror/lang-javascript@6.2.4': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/language': 6.11.3 '@codemirror/lint': 6.8.5 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 - '@lezer/javascript': 1.5.1 + '@lezer/javascript': 1.5.4 '@codemirror/lang-json@6.0.2': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@lezer/json': 1.0.3 '@codemirror/lang-less@6.0.2': dependencies: '@codemirror/lang-css': 6.3.1 - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@codemirror/lang-liquid@6.2.3': + '@codemirror/lang-liquid@6.3.0': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/lang-html': 6.4.10 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-markdown@6.3.4': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/lang-html': 6.4.10 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 '@lezer/markdown': 1.4.3 '@codemirror/lang-php@6.0.2': dependencies: - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.11.2 + '@codemirror/lang-html': 6.4.10 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 - '@lezer/php': 1.0.4 + '@lezer/php': 1.0.5 '@codemirror/lang-python@6.2.1': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/python': 1.1.18 '@codemirror/lang-rust@6.0.2': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@lezer/rust': 1.0.2 '@codemirror/lang-sass@6.0.2': dependencies: '@codemirror/lang-css': 6.3.1 - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/sass': 1.1.0 - '@codemirror/lang-sql@6.9.1': + '@codemirror/lang-sql@6.10.0': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 @@ -9909,33 +8612,33 @@ snapshots: '@codemirror/lang-vue@0.1.3': dependencies: - '@codemirror/lang-html': 6.4.9 + '@codemirror/lang-html': 6.4.10 '@codemirror/lang-javascript': 6.2.4 - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-wast@6.0.2': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-xml@6.1.0': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 '@lezer/xml': 1.0.6 '@codemirror/lang-yaml@6.1.2': dependencies: - '@codemirror/autocomplete': 6.18.6 - '@codemirror/language': 6.11.2 + '@codemirror/autocomplete': 6.19.0 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 @@ -9948,48 +8651,48 @@ snapshots: '@codemirror/lang-cpp': 6.0.3 '@codemirror/lang-css': 6.3.1 '@codemirror/lang-go': 6.0.1 - '@codemirror/lang-html': 6.4.9 + '@codemirror/lang-html': 6.4.10 '@codemirror/lang-java': 6.0.2 '@codemirror/lang-javascript': 6.2.4 '@codemirror/lang-json': 6.0.2 '@codemirror/lang-less': 6.0.2 - '@codemirror/lang-liquid': 6.2.3 + '@codemirror/lang-liquid': 6.3.0 '@codemirror/lang-markdown': 6.3.4 '@codemirror/lang-php': 6.0.2 '@codemirror/lang-python': 6.2.1 '@codemirror/lang-rust': 6.0.2 '@codemirror/lang-sass': 6.0.2 - '@codemirror/lang-sql': 6.9.1 + '@codemirror/lang-sql': 6.10.0 '@codemirror/lang-vue': 0.1.3 '@codemirror/lang-wast': 6.0.2 '@codemirror/lang-xml': 6.1.0 '@codemirror/lang-yaml': 6.1.2 - '@codemirror/language': 6.11.2 - '@codemirror/legacy-modes': 6.5.1 + '@codemirror/language': 6.11.3 + '@codemirror/legacy-modes': 6.5.2 - '@codemirror/language@6.11.2': + '@codemirror/language@6.11.3': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 style-mod: 4.1.2 - '@codemirror/legacy-modes@6.5.1': + '@codemirror/legacy-modes@6.5.2': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/lint@6.8.5': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 crelt: 1.0.6 '@codemirror/search@6.5.11': dependencies: '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 crelt: 1.0.6 '@codemirror/state@6.5.2': @@ -9998,28 +8701,28 @@ snapshots: '@codemirror/theme-one-dark@6.1.3': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 '@lezer/highlight': 1.2.1 - '@codemirror/view@6.38.1': + '@codemirror/view@6.38.4': dependencies: '@codemirror/state': 6.5.2 crelt: 1.0.6 style-mod: 4.1.2 w3c-keyname: 2.2.8 - '@csstools/color-helpers@5.0.2': {} + '@csstools/color-helpers@5.1.0': {} '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/color-helpers': 5.0.2 + '@csstools/color-helpers': 5.1.0 '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 @@ -10048,85 +8751,85 @@ snapshots: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.9': + '@esbuild/aix-ppc64@0.25.10': optional: true - '@esbuild/android-arm64@0.25.9': + '@esbuild/android-arm64@0.25.10': optional: true - '@esbuild/android-arm@0.25.9': + '@esbuild/android-arm@0.25.10': optional: true - '@esbuild/android-x64@0.25.9': + '@esbuild/android-x64@0.25.10': optional: true - '@esbuild/darwin-arm64@0.25.9': + '@esbuild/darwin-arm64@0.25.10': optional: true - '@esbuild/darwin-x64@0.25.9': + '@esbuild/darwin-x64@0.25.10': optional: true - '@esbuild/freebsd-arm64@0.25.9': + '@esbuild/freebsd-arm64@0.25.10': optional: true - '@esbuild/freebsd-x64@0.25.9': + '@esbuild/freebsd-x64@0.25.10': optional: true - '@esbuild/linux-arm64@0.25.9': + '@esbuild/linux-arm64@0.25.10': optional: true - '@esbuild/linux-arm@0.25.9': + '@esbuild/linux-arm@0.25.10': optional: true - '@esbuild/linux-ia32@0.25.9': + '@esbuild/linux-ia32@0.25.10': optional: true '@esbuild/linux-loong64@0.14.54': optional: true - '@esbuild/linux-loong64@0.25.9': + '@esbuild/linux-loong64@0.25.10': optional: true - '@esbuild/linux-mips64el@0.25.9': + '@esbuild/linux-mips64el@0.25.10': optional: true - '@esbuild/linux-ppc64@0.25.9': + '@esbuild/linux-ppc64@0.25.10': optional: true - '@esbuild/linux-riscv64@0.25.9': + '@esbuild/linux-riscv64@0.25.10': optional: true - '@esbuild/linux-s390x@0.25.9': + '@esbuild/linux-s390x@0.25.10': optional: true - '@esbuild/linux-x64@0.25.9': + '@esbuild/linux-x64@0.25.10': optional: true - '@esbuild/netbsd-arm64@0.25.9': + '@esbuild/netbsd-arm64@0.25.10': optional: true - '@esbuild/netbsd-x64@0.25.9': + '@esbuild/netbsd-x64@0.25.10': optional: true - '@esbuild/openbsd-arm64@0.25.9': + '@esbuild/openbsd-arm64@0.25.10': optional: true - '@esbuild/openbsd-x64@0.25.9': + '@esbuild/openbsd-x64@0.25.10': optional: true - '@esbuild/openharmony-arm64@0.25.9': + '@esbuild/openharmony-arm64@0.25.10': optional: true - '@esbuild/sunos-x64@0.25.9': + '@esbuild/sunos-x64@0.25.10': optional: true - '@esbuild/win32-arm64@0.25.9': + '@esbuild/win32-arm64@0.25.10': optional: true - '@esbuild/win32-ia32@0.25.9': + '@esbuild/win32-ia32@0.25.10': optional: true - '@esbuild/win32-x64@0.25.9': + '@esbuild/win32-x64@0.25.10': optional: true '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': @@ -10134,9 +8837,9 @@ snapshots: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.0(eslint@9.35.0(jiti@2.5.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.36.0(jiti@2.6.1))': dependencies: - eslint: 9.35.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -10144,7 +8847,7 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10158,7 +8861,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.4.3 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -10172,7 +8875,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -10185,7 +8888,7 @@ snapshots: '@eslint/js@8.57.1': {} - '@eslint/js@9.35.0': {} + '@eslint/js@9.36.0': {} '@eslint/object-schema@2.1.6': {} @@ -10198,14 +8901,14 @@ snapshots: dependencies: '@floating-ui/utils': 0.2.10 - '@floating-ui/dom@1.7.3': + '@floating-ui/dom@1.7.4': dependencies: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@floating-ui/react-dom@2.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@floating-ui/dom': 1.7.3 + '@floating-ui/dom': 1.7.4 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -10230,7 +8933,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.1 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10241,94 +8944,95 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@img/sharp-darwin-arm64@0.34.3': + '@img/colour@1.0.0': + optional: true + + '@img/sharp-darwin-arm64@0.34.4': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.0 + '@img/sharp-libvips-darwin-arm64': 1.2.3 optional: true - '@img/sharp-darwin-x64@0.34.3': + '@img/sharp-darwin-x64@0.34.4': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.0 + '@img/sharp-libvips-darwin-x64': 1.2.3 optional: true - '@img/sharp-libvips-darwin-arm64@1.2.0': + '@img/sharp-libvips-darwin-arm64@1.2.3': optional: true - '@img/sharp-libvips-darwin-x64@1.2.0': + '@img/sharp-libvips-darwin-x64@1.2.3': optional: true - '@img/sharp-libvips-linux-arm64@1.2.0': + '@img/sharp-libvips-linux-arm64@1.2.3': optional: true - '@img/sharp-libvips-linux-arm@1.2.0': + '@img/sharp-libvips-linux-arm@1.2.3': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.0': + '@img/sharp-libvips-linux-ppc64@1.2.3': optional: true - '@img/sharp-libvips-linux-s390x@1.2.0': + '@img/sharp-libvips-linux-s390x@1.2.3': optional: true - '@img/sharp-libvips-linux-x64@1.2.0': + '@img/sharp-libvips-linux-x64@1.2.3': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.0': + '@img/sharp-libvips-linuxmusl-x64@1.2.3': optional: true - '@img/sharp-linux-arm64@0.34.3': + '@img/sharp-linux-arm64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.0 + '@img/sharp-libvips-linux-arm64': 1.2.3 optional: true - '@img/sharp-linux-arm@0.34.3': + '@img/sharp-linux-arm@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.0 + '@img/sharp-libvips-linux-arm': 1.2.3 optional: true - '@img/sharp-linux-ppc64@0.34.3': + '@img/sharp-linux-ppc64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.0 + '@img/sharp-libvips-linux-ppc64': 1.2.3 optional: true - '@img/sharp-linux-s390x@0.34.3': + '@img/sharp-linux-s390x@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.0 + '@img/sharp-libvips-linux-s390x': 1.2.3 optional: true - '@img/sharp-linux-x64@0.34.3': + '@img/sharp-linux-x64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.0 + '@img/sharp-libvips-linux-x64': 1.2.3 optional: true - '@img/sharp-linuxmusl-arm64@0.34.3': + '@img/sharp-linuxmusl-arm64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 optional: true - '@img/sharp-linuxmusl-x64@0.34.3': + '@img/sharp-linuxmusl-x64@0.34.4': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 optional: true - '@img/sharp-wasm32@0.34.3': + '@img/sharp-wasm32@0.34.4': dependencies: '@emnapi/runtime': 1.5.0 optional: true - '@img/sharp-win32-arm64@0.34.3': + '@img/sharp-win32-arm64@0.34.4': optional: true - '@img/sharp-win32-ia32@0.34.3': + '@img/sharp-win32-ia32@0.34.4': optional: true - '@img/sharp-win32-x64@0.34.3': + '@img/sharp-win32-x64@0.34.4': optional: true - '@ioredis/commands@1.4.0': {} - '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.0': @@ -10339,7 +9043,7 @@ snapshots: dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 @@ -10358,44 +9062,44 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@30.0.5': + '@jest/console@30.2.0': dependencies: - '@jest/types': 30.0.5 - '@types/node': 24.5.1 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 chalk: 4.1.2 - jest-message-util: 30.0.5 - jest-util: 30.0.5 + jest-message-util: 30.2.0 + jest-util: 30.2.0 slash: 3.0.0 - '@jest/core@30.0.5': + '@jest/core@30.2.0': dependencies: - '@jest/console': 30.0.5 + '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 - '@jest/reporters': 30.0.5 - '@jest/test-result': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 24.5.1 + '@jest/reporters': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-changed-files: 30.0.5 - jest-config: 30.0.5(@types/node@24.5.1) - jest-haste-map: 30.0.5 - jest-message-util: 30.0.5 + jest-changed-files: 30.2.0 + jest-config: 30.2.0(@types/node@24.6.1) + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 jest-regex-util: 30.0.1 - jest-resolve: 30.0.5 - jest-resolve-dependencies: 30.0.5 - jest-runner: 30.0.5 - jest-runtime: 30.0.5 - jest-snapshot: 30.0.5 - jest-util: 30.0.5 - jest-validate: 30.0.5 - jest-watcher: 30.0.5 + jest-resolve: 30.2.0 + jest-resolve-dependencies: 30.2.0 + jest-runner: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-watcher: 30.2.0 micromatch: 4.0.8 - pretty-format: 30.0.5 + pretty-format: 30.2.0 slash: 3.0.0 transitivePeerDependencies: - babel-plugin-macros @@ -10405,69 +9109,69 @@ snapshots: '@jest/diff-sequences@30.0.1': {} - '@jest/environment-jsdom-abstract@30.0.5(jsdom@26.1.0)': + '@jest/environment-jsdom-abstract@30.2.0(jsdom@26.1.0)': dependencies: - '@jest/environment': 30.0.5 - '@jest/fake-timers': 30.0.5 - '@jest/types': 30.0.5 + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 '@types/jsdom': 21.1.7 - '@types/node': 24.5.1 - jest-mock: 30.0.5 - jest-util: 30.0.5 + '@types/node': 24.6.1 + jest-mock: 30.2.0 + jest-util: 30.2.0 jsdom: 26.1.0 - '@jest/environment@30.0.5': + '@jest/environment@30.2.0': dependencies: - '@jest/fake-timers': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 24.5.1 - jest-mock: 30.0.5 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 + jest-mock: 30.2.0 - '@jest/expect-utils@30.0.5': + '@jest/expect-utils@30.2.0': dependencies: - '@jest/get-type': 30.0.1 + '@jest/get-type': 30.1.0 - '@jest/expect@30.0.5': + '@jest/expect@30.2.0': dependencies: - expect: 30.0.5 - jest-snapshot: 30.0.5 + expect: 30.2.0 + jest-snapshot: 30.2.0 transitivePeerDependencies: - supports-color - '@jest/fake-timers@30.0.5': + '@jest/fake-timers@30.2.0': dependencies: - '@jest/types': 30.0.5 + '@jest/types': 30.2.0 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 24.5.1 - jest-message-util: 30.0.5 - jest-mock: 30.0.5 - jest-util: 30.0.5 + '@types/node': 24.6.1 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 - '@jest/get-type@30.0.1': {} + '@jest/get-type@30.1.0': {} - '@jest/globals@30.0.5': + '@jest/globals@30.2.0': dependencies: - '@jest/environment': 30.0.5 - '@jest/expect': 30.0.5 - '@jest/types': 30.0.5 - jest-mock: 30.0.5 + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/types': 30.2.0 + jest-mock: 30.2.0 transitivePeerDependencies: - supports-color '@jest/pattern@30.0.1': dependencies: - '@types/node': 24.5.1 + '@types/node': 24.6.1 jest-regex-util: 30.0.1 - '@jest/reporters@30.0.5': + '@jest/reporters@30.2.0': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 30.0.5 - '@jest/test-result': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - '@jridgewell/trace-mapping': 0.3.29 - '@types/node': 24.5.1 + '@jest/console': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 24.6.1 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit-x: 0.2.2 @@ -10477,10 +9181,10 @@ snapshots: istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - jest-message-util: 30.0.5 - jest-util: 30.0.5 - jest-worker: 30.0.5 + istanbul-reports: 3.2.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + jest-worker: 30.2.0 slash: 3.0.0 string-length: 4.0.2 v8-to-istanbul: 9.3.0 @@ -10489,68 +9193,48 @@ snapshots: '@jest/schemas@30.0.5': dependencies: - '@sinclair/typebox': 0.34.38 + '@sinclair/typebox': 0.34.41 - '@jest/snapshot-utils@30.0.5': + '@jest/snapshot-utils@30.2.0': dependencies: - '@jest/types': 30.0.5 + '@jest/types': 30.2.0 chalk: 4.1.2 graceful-fs: 4.2.11 natural-compare: 1.4.0 '@jest/source-map@30.0.1': dependencies: - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 graceful-fs: 4.2.11 - '@jest/test-result@30.0.5': + '@jest/test-result@30.2.0': dependencies: - '@jest/console': 30.0.5 - '@jest/types': 30.0.5 + '@jest/console': 30.2.0 + '@jest/types': 30.2.0 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - '@jest/test-sequencer@30.0.5': - dependencies: - '@jest/test-result': 30.0.5 - graceful-fs: 4.2.11 - jest-haste-map: 30.0.5 - slash: 3.0.0 - - '@jest/transform@30.0.5': + '@jest/test-sequencer@30.2.0': dependencies: - '@babel/core': 7.28.0 - '@jest/types': 30.0.5 - '@jridgewell/trace-mapping': 0.3.29 - babel-plugin-istanbul: 7.0.0 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 + '@jest/test-result': 30.2.0 graceful-fs: 4.2.11 - jest-haste-map: 30.0.5 - jest-regex-util: 30.0.1 - jest-util: 30.0.5 - micromatch: 4.0.8 - pirates: 4.0.7 + jest-haste-map: 30.2.0 slash: 3.0.0 - write-file-atomic: 5.0.1 - transitivePeerDependencies: - - supports-color - '@jest/transform@30.1.2': + '@jest/transform@30.2.0': dependencies: '@babel/core': 7.28.4 - '@jest/types': 30.0.5 - '@jridgewell/trace-mapping': 0.3.29 - babel-plugin-istanbul: 7.0.0 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 7.0.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 30.1.0 + jest-haste-map: 30.2.0 jest-regex-util: 30.0.1 - jest-util: 30.0.5 + jest-util: 30.2.0 micromatch: 4.0.8 pirates: 4.0.7 slash: 3.0.0 @@ -10558,36 +9242,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/types@30.0.5': + '@jest/types@30.2.0': dependencies: '@jest/pattern': 30.0.1 '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.5.1 + '@types/node': 24.6.1 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.12': + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/source-map@0.3.11': - dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.29': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 @@ -10616,7 +9295,7 @@ snapshots: dependencies: '@lezer/common': 1.2.3 - '@lezer/html@1.3.10': + '@lezer/html@1.3.12': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 @@ -10628,7 +9307,7 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@lezer/javascript@1.5.1': + '@lezer/javascript@1.5.4': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 @@ -10649,7 +9328,7 @@ snapshots: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 - '@lezer/php@1.0.4': + '@lezer/php@1.0.5': dependencies: '@lezer/common': 1.2.3 '@lezer/highlight': 1.2.1 @@ -10685,23 +9364,10 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@lukemorales/query-key-factory@1.3.4(@tanstack/query-core@5.87.4)(@tanstack/react-query@5.87.4(react@19.1.1))': + '@lukemorales/query-key-factory@1.3.4(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))': dependencies: - '@tanstack/query-core': 5.87.4 - '@tanstack/react-query': 5.87.4(react@19.1.1) - - '@mapbox/node-pre-gyp@2.0.0': - dependencies: - consola: 3.4.2 - detect-libc: 2.0.4 - https-proxy-agent: 7.0.6 - node-fetch: 2.7.0 - nopt: 8.1.0 - semver: 7.7.2 - tar: 7.4.3 - transitivePeerDependencies: - - encoding - - supports-color + '@tanstack/query-core': 5.90.2 + '@tanstack/react-query': 5.90.2(react@19.1.1) '@marijn/find-cluster-break@1.0.2': {} @@ -10735,67 +9401,62 @@ snapshots: transitivePeerDependencies: - supports-color - '@milkdown/components@7.15.3(@codemirror/language@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(typescript@5.8.3)': + '@milkdown/components@7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3)': dependencies: - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 - '@floating-ui/dom': 1.7.3 - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/plugin-tooltip': 7.15.3 - '@milkdown/preset-commonmark': 7.15.3 - '@milkdown/preset-gfm': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/transformer': 7.15.3 - '@milkdown/utils': 7.15.3 + '@codemirror/view': 6.38.4 + '@floating-ui/dom': 1.7.4 + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/exception': 7.16.0 + '@milkdown/plugin-tooltip': 7.16.0 + '@milkdown/preset-commonmark': 7.16.0 + '@milkdown/preset-gfm': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/transformer': 7.16.0 + '@milkdown/utils': 7.16.0 '@types/lodash-es': 4.17.12 clsx: 2.1.1 - dompurify: 3.2.6 + dompurify: 3.2.7 lodash-es: 4.17.21 - nanoid: 5.1.5 - tslib: 2.8.1 + nanoid: 5.1.6 unist-util-visit: 5.0.0 - vue: 3.5.18(typescript@5.8.3) + vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - supports-color - typescript - '@milkdown/core@7.15.3': + '@milkdown/core@7.16.0': dependencies: - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/transformer': 7.15.3 + '@milkdown/ctx': 7.16.0 + '@milkdown/exception': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/transformer': 7.16.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 - tslib: 2.8.1 unified: 11.0.5 transitivePeerDependencies: - supports-color - '@milkdown/crepe@7.15.3(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.40.1)(typescript@5.8.3)': + '@milkdown/crepe@7.16.0(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.41.2)(typescript@5.9.3)': dependencies: '@codemirror/commands': 6.8.1 - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/language-data': 6.5.1 '@codemirror/state': 6.5.2 '@codemirror/theme-one-dark': 6.1.3 - '@codemirror/view': 6.38.1 - '@floating-ui/dom': 1.7.3 - '@milkdown/kit': 7.15.3(@codemirror/language@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(typescript@5.8.3) + '@codemirror/view': 6.38.4 + '@milkdown/kit': 7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3) '@types/lodash-es': 4.17.12 clsx: 2.1.1 codemirror: 6.0.2 katex: 0.16.22 lodash-es: 4.17.21 - nanoid: 5.1.5 - prosemirror-virtual-cursor: 0.4.2(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.40.1) + prosemirror-virtual-cursor: 0.4.2(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.41.2) remark-math: 6.0.0 - tslib: 2.8.1 unist-util-visit: 5.0.0 - vue: 3.5.18(typescript@5.8.3) + vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - prosemirror-model - prosemirror-state @@ -10803,36 +9464,32 @@ snapshots: - supports-color - typescript - '@milkdown/ctx@7.15.3': - dependencies: - '@milkdown/exception': 7.15.3 - tslib: 2.8.1 - - '@milkdown/exception@7.15.3': - dependencies: - tslib: 2.8.1 - - '@milkdown/kit@7.15.3(@codemirror/language@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(typescript@5.8.3)': - dependencies: - '@milkdown/components': 7.15.3(@codemirror/language@6.11.2)(@codemirror/state@6.5.2)(@codemirror/view@6.38.1)(typescript@5.8.3) - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/plugin-block': 7.15.3 - '@milkdown/plugin-clipboard': 7.15.3 - '@milkdown/plugin-cursor': 7.15.3 - '@milkdown/plugin-history': 7.15.3 - '@milkdown/plugin-indent': 7.15.3 - '@milkdown/plugin-listener': 7.15.3 - '@milkdown/plugin-slash': 7.15.3 - '@milkdown/plugin-tooltip': 7.15.3 - '@milkdown/plugin-trailing': 7.15.3 - '@milkdown/plugin-upload': 7.15.3 - '@milkdown/preset-commonmark': 7.15.3 - '@milkdown/preset-gfm': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/transformer': 7.15.3 - '@milkdown/utils': 7.15.3 - tslib: 2.8.1 + '@milkdown/ctx@7.16.0': + dependencies: + '@milkdown/exception': 7.16.0 + + '@milkdown/exception@7.16.0': {} + + '@milkdown/kit@7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3)': + dependencies: + '@milkdown/components': 7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3) + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/plugin-block': 7.16.0 + '@milkdown/plugin-clipboard': 7.16.0 + '@milkdown/plugin-cursor': 7.16.0 + '@milkdown/plugin-history': 7.16.0 + '@milkdown/plugin-indent': 7.16.0 + '@milkdown/plugin-listener': 7.16.0 + '@milkdown/plugin-slash': 7.16.0 + '@milkdown/plugin-tooltip': 7.16.0 + '@milkdown/plugin-trailing': 7.16.0 + '@milkdown/plugin-upload': 7.16.0 + '@milkdown/preset-commonmark': 7.16.0 + '@milkdown/preset-gfm': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/transformer': 7.16.0 + '@milkdown/utils': 7.16.0 transitivePeerDependencies: - '@codemirror/language' - '@codemirror/state' @@ -10840,154 +9497,133 @@ snapshots: - supports-color - typescript - '@milkdown/plugin-block@7.15.3': + '@milkdown/plugin-block@7.16.0': dependencies: - '@floating-ui/dom': 1.7.3 - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 + '@floating-ui/dom': 1.7.4 + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 '@types/lodash-es': 4.17.12 lodash-es: 4.17.21 - tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@milkdown/plugin-clipboard@7.15.3': + '@milkdown/plugin-clipboard@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 - tslib: 2.8.1 + '@milkdown/core': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 transitivePeerDependencies: - supports-color - '@milkdown/plugin-cursor@7.15.3': + '@milkdown/plugin-cursor@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 - tslib: 2.8.1 + '@milkdown/ctx': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 + prosemirror-drop-indicator: 0.1.0 transitivePeerDependencies: - supports-color - '@milkdown/plugin-history@7.15.3': + '@milkdown/plugin-history@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 - tslib: 2.8.1 + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 transitivePeerDependencies: - supports-color - '@milkdown/plugin-indent@7.15.3': + '@milkdown/plugin-indent@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 - tslib: 2.8.1 + '@milkdown/ctx': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 transitivePeerDependencies: - supports-color - '@milkdown/plugin-listener@7.15.3': + '@milkdown/plugin-listener@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/prose': 7.16.0 '@types/lodash-es': 4.17.12 lodash-es: 4.17.21 - tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@milkdown/plugin-slash@7.15.3': + '@milkdown/plugin-slash@7.16.0': dependencies: - '@floating-ui/dom': 1.7.3 - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 + '@floating-ui/dom': 1.7.4 + '@milkdown/ctx': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 '@types/lodash-es': 4.17.12 lodash-es: 4.17.21 - tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@milkdown/plugin-tooltip@7.15.3': + '@milkdown/plugin-tooltip@7.16.0': dependencies: - '@floating-ui/dom': 1.7.3 - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 + '@floating-ui/dom': 1.7.4 + '@milkdown/ctx': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 '@types/lodash-es': 4.17.12 lodash-es: 4.17.21 - tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@milkdown/plugin-trailing@7.15.3': + '@milkdown/plugin-trailing@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 - tslib: 2.8.1 + '@milkdown/ctx': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 transitivePeerDependencies: - supports-color - '@milkdown/plugin-upload@7.15.3': + '@milkdown/plugin-upload@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/utils': 7.15.3 - tslib: 2.8.1 + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/exception': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/utils': 7.16.0 transitivePeerDependencies: - supports-color - '@milkdown/preset-commonmark@7.15.3': + '@milkdown/preset-commonmark@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/transformer': 7.15.3 - '@milkdown/utils': 7.15.3 + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/exception': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/transformer': 7.16.0 + '@milkdown/utils': 7.16.0 remark-inline-links: 7.0.0 - tslib: 2.8.1 unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.1 transitivePeerDependencies: - supports-color - '@milkdown/preset-gfm@7.15.3': + '@milkdown/preset-gfm@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/preset-commonmark': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/transformer': 7.15.3 - '@milkdown/utils': 7.15.3 + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/exception': 7.16.0 + '@milkdown/preset-commonmark': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/transformer': 7.16.0 + '@milkdown/utils': 7.16.0 prosemirror-safari-ime-span: 1.0.2 remark-gfm: 4.0.1 - tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@milkdown/prose@7.15.3': + '@milkdown/prose@7.16.0': dependencies: - '@milkdown/exception': 7.15.3 + '@milkdown/exception': 7.16.0 prosemirror-changeset: 2.3.1 prosemirror-commands: 1.7.1 prosemirror-dropcursor: 1.8.2 @@ -10998,32 +9634,27 @@ snapshots: prosemirror-model: 1.25.3 prosemirror-schema-list: 1.5.1 prosemirror-state: 1.4.3 - prosemirror-tables: 1.7.1 + prosemirror-tables: 1.8.1 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 - tslib: 2.8.1 + prosemirror-view: 1.41.2 - '@milkdown/transformer@7.15.3': + '@milkdown/transformer@7.16.0': dependencies: - '@milkdown/exception': 7.15.3 - '@milkdown/prose': 7.15.3 + '@milkdown/exception': 7.16.0 + '@milkdown/prose': 7.16.0 remark: 15.0.1 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - tslib: 2.8.1 unified: 11.0.5 transitivePeerDependencies: - supports-color - '@milkdown/utils@7.15.3': + '@milkdown/utils@7.16.0': dependencies: - '@milkdown/core': 7.15.3 - '@milkdown/ctx': 7.15.3 - '@milkdown/exception': 7.15.3 - '@milkdown/prose': 7.15.3 - '@milkdown/transformer': 7.15.3 - nanoid: 5.1.5 - tslib: 2.8.1 + '@milkdown/core': 7.16.0 + '@milkdown/ctx': 7.16.0 + '@milkdown/exception': 7.16.0 + '@milkdown/prose': 7.16.0 + '@milkdown/transformer': 7.16.0 + nanoid: 5.1.6 transitivePeerDependencies: - supports-color @@ -11115,6 +9746,14 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} + '@ocavue/utils@0.7.1': {} + + '@olliethedev/yar@1.0.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)': + dependencies: + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) + rou3: 0.7.7 + '@oozcitak/dom@1.15.10': dependencies: '@oozcitak/infra': 1.0.8 @@ -11132,144 +9771,67 @@ snapshots: '@oozcitak/util@8.3.8': {} - '@orama/orama@3.1.13': {} + '@orama/orama@3.1.14': {} '@originjs/vite-plugin-commonjs@1.0.3': dependencies: esbuild: 0.14.54 - '@oxc-transform/binding-android-arm64@0.82.3': + '@oxc-transform/binding-android-arm64@0.92.0': optional: true - '@oxc-transform/binding-darwin-arm64@0.82.3': + '@oxc-transform/binding-darwin-arm64@0.92.0': optional: true - '@oxc-transform/binding-darwin-x64@0.82.3': + '@oxc-transform/binding-darwin-x64@0.92.0': optional: true - '@oxc-transform/binding-freebsd-x64@0.82.3': + '@oxc-transform/binding-freebsd-x64@0.92.0': optional: true - '@oxc-transform/binding-linux-arm-gnueabihf@0.82.3': + '@oxc-transform/binding-linux-arm-gnueabihf@0.92.0': optional: true - '@oxc-transform/binding-linux-arm-musleabihf@0.82.3': + '@oxc-transform/binding-linux-arm-musleabihf@0.92.0': optional: true - '@oxc-transform/binding-linux-arm64-gnu@0.82.3': + '@oxc-transform/binding-linux-arm64-gnu@0.92.0': optional: true - '@oxc-transform/binding-linux-arm64-musl@0.82.3': + '@oxc-transform/binding-linux-arm64-musl@0.92.0': optional: true - '@oxc-transform/binding-linux-riscv64-gnu@0.82.3': + '@oxc-transform/binding-linux-riscv64-gnu@0.92.0': optional: true - '@oxc-transform/binding-linux-s390x-gnu@0.82.3': + '@oxc-transform/binding-linux-s390x-gnu@0.92.0': optional: true - '@oxc-transform/binding-linux-x64-gnu@0.82.3': + '@oxc-transform/binding-linux-x64-gnu@0.92.0': optional: true - '@oxc-transform/binding-linux-x64-musl@0.82.3': + '@oxc-transform/binding-linux-x64-musl@0.92.0': optional: true - '@oxc-transform/binding-wasm32-wasi@0.82.3': + '@oxc-transform/binding-wasm32-wasi@0.92.0': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@oxc-transform/binding-win32-arm64-msvc@0.82.3': - optional: true - - '@oxc-transform/binding-win32-x64-msvc@0.82.3': - optional: true - - '@parcel/watcher-android-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-x64@2.5.1': - optional: true - - '@parcel/watcher-freebsd-x64@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true - - '@parcel/watcher-wasm@2.5.1': - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.8 - - '@parcel/watcher-win32-arm64@2.5.1': + '@oxc-transform/binding-win32-arm64-msvc@0.92.0': optional: true - '@parcel/watcher-win32-ia32@2.5.1': + '@oxc-transform/binding-win32-x64-msvc@0.92.0': optional: true - '@parcel/watcher-win32-x64@2.5.1': - optional: true - - '@parcel/watcher@2.5.1': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - '@pkgjs/parseargs@0.11.0': optional: true '@pkgr/core@0.2.9': {} - '@playwright/test@1.55.0': - dependencies: - playwright: 1.55.0 - - '@poppinss/colors@4.1.5': - dependencies: - kleur: 4.1.5 - - '@poppinss/dumper@0.6.4': + '@playwright/test@1.55.1': dependencies: - '@poppinss/colors': 4.1.5 - '@sindresorhus/is': 7.1.0 - supports-color: 10.2.2 - - '@poppinss/exception@1.2.2': {} + playwright: 1.55.1 '@prisma/client@5.22.0(prisma@5.22.0)': optionalDependencies: @@ -11298,908 +9860,698 @@ snapshots: '@radix-ui/number@1.1.1': {} - '@radix-ui/primitive@1.1.2': {} - '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-alert-dialog@1.1.14(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-checkbox@1.3.2(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) + + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.16)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-context@1.1.2(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.16)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 - - '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - aria-hidden: 1.2.6 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.9)(react@19.1.1) - optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.9)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.16)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.16)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - react: 19.1.1 - optionalDependencies: - '@types/react': 19.1.9 - - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) '@radix-ui/react-icons@1.3.2(react@19.1.1)': dependencies: react: 19.1.1 - '@radix-ui/react-id@1.1.1(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.16)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-menu@2.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) + + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.9)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.9)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@floating-ui/react-dom': 2.1.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.16)(react@19.1.1) '@radix-ui/rect': 1.1.1 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@floating-ui/react-dom': 2.1.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/rect': 1.1.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.9)(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-select@2.2.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.9)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.16)(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-toggle-group@1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-toggle': 1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) + + '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-toggle@1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) - - '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) + + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.16)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.16)(react@19.1.1)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.16)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.16)(react@19.1.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.16)(react@19.1.1)': dependencies: react: 19.1.1 use-sync-external-store: 1.5.0(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.16)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.16)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.16)(react@19.1.1)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.9)(react@19.1.1)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.16)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.9)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) '@radix-ui/rect@1.1.1': {} '@rolldown/pluginutils@1.0.0-beta.27': {} - '@rolldown/pluginutils@1.0.0-beta.35': {} - - '@rollup/plugin-alias@5.1.1(rollup@4.51.0)': - optionalDependencies: - rollup: 4.51.0 - - '@rollup/plugin-commonjs@28.0.6(rollup@4.51.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.51.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.5.0(picomatch@4.0.3) - is-reference: 1.2.1 - magic-string: 0.30.19 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.51.0 - - '@rollup/plugin-inject@5.0.5(rollup@4.51.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.51.0) - estree-walker: 2.0.2 - magic-string: 0.30.19 - optionalDependencies: - rollup: 4.51.0 - - '@rollup/plugin-json@6.1.0(rollup@4.51.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.51.0) - optionalDependencies: - rollup: 4.51.0 - - '@rollup/plugin-node-resolve@16.0.1(rollup@4.51.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.51.0) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.10 - optionalDependencies: - rollup: 4.51.0 - - '@rollup/plugin-replace@6.0.2(rollup@4.51.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.51.0) - magic-string: 0.30.19 - optionalDependencies: - rollup: 4.51.0 - - '@rollup/plugin-terser@0.4.4(rollup@4.51.0)': - dependencies: - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.44.0 - optionalDependencies: - rollup: 4.51.0 + '@rolldown/pluginutils@1.0.0-beta.38': {} - '@rollup/pluginutils@5.3.0(rollup@4.51.0)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.51.0 + '@rolldown/pluginutils@1.0.0-beta.40': {} - '@rollup/rollup-android-arm-eabi@4.46.2': + '@rollup/rollup-android-arm-eabi@4.52.3': optional: true - '@rollup/rollup-android-arm-eabi@4.51.0': + '@rollup/rollup-android-arm64@4.52.3': optional: true - '@rollup/rollup-android-arm64@4.46.2': + '@rollup/rollup-darwin-arm64@4.52.3': optional: true - '@rollup/rollup-android-arm64@4.51.0': + '@rollup/rollup-darwin-x64@4.52.3': optional: true - '@rollup/rollup-darwin-arm64@4.46.2': + '@rollup/rollup-freebsd-arm64@4.52.3': optional: true - '@rollup/rollup-darwin-arm64@4.51.0': + '@rollup/rollup-freebsd-x64@4.52.3': optional: true - '@rollup/rollup-darwin-x64@4.46.2': + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': optional: true - '@rollup/rollup-darwin-x64@4.51.0': + '@rollup/rollup-linux-arm-musleabihf@4.52.3': optional: true - '@rollup/rollup-freebsd-arm64@4.46.2': + '@rollup/rollup-linux-arm64-gnu@4.52.3': optional: true - '@rollup/rollup-freebsd-arm64@4.51.0': + '@rollup/rollup-linux-arm64-musl@4.52.3': optional: true - '@rollup/rollup-freebsd-x64@4.46.2': + '@rollup/rollup-linux-loong64-gnu@4.52.3': optional: true - '@rollup/rollup-freebsd-x64@4.51.0': + '@rollup/rollup-linux-ppc64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': + '@rollup/rollup-linux-riscv64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.51.0': + '@rollup/rollup-linux-riscv64-musl@4.52.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.46.2': + '@rollup/rollup-linux-s390x-gnu@4.52.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.51.0': + '@rollup/rollup-linux-x64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.46.2': + '@rollup/rollup-linux-x64-musl@4.52.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.51.0': + '@rollup/rollup-openharmony-arm64@4.52.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.46.2': + '@rollup/rollup-win32-arm64-msvc@4.52.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.51.0': + '@rollup/rollup-win32-ia32-msvc@4.52.3': optional: true - '@rollup/rollup-linux-loong64-gnu@4.51.0': + '@rollup/rollup-win32-x64-gnu@4.52.3': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-ppc64-gnu@4.51.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.51.0': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.46.2': - optional: true - - '@rollup/rollup-linux-riscv64-musl@4.51.0': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.51.0': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.46.2': - optional: true - - '@rollup/rollup-linux-x64-gnu@4.51.0': - optional: true - - '@rollup/rollup-linux-x64-musl@4.46.2': - optional: true - - '@rollup/rollup-linux-x64-musl@4.51.0': - optional: true - - '@rollup/rollup-openharmony-arm64@4.51.0': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.46.2': - optional: true - - '@rollup/rollup-win32-arm64-msvc@4.51.0': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.46.2': - optional: true - - '@rollup/rollup-win32-ia32-msvc@4.51.0': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.46.2': - optional: true - - '@rollup/rollup-win32-x64-msvc@4.51.0': + '@rollup/rollup-win32-x64-msvc@4.52.3': optional: true '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.12.0': {} - '@shikijs/core@3.12.2': + '@shikijs/core@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.12.2': + '@shikijs/engine-javascript@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 - '@shikijs/engine-oniguruma@3.12.2': + '@shikijs/engine-oniguruma@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.12.2': + '@shikijs/langs@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 - '@shikijs/rehype@3.12.2': + '@shikijs/rehype@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 '@types/hast': 3.0.4 hast-util-to-string: 3.0.1 - shiki: 3.12.2 + shiki: 3.13.0 unified: 11.0.5 unist-util-visit: 5.0.0 - '@shikijs/themes@3.12.2': + '@shikijs/themes@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 - '@shikijs/transformers@3.12.2': + '@shikijs/transformers@3.13.0': dependencies: - '@shikijs/core': 3.12.2 - '@shikijs/types': 3.12.2 + '@shikijs/core': 3.13.0 + '@shikijs/types': 3.13.0 - '@shikijs/types@3.12.2': + '@shikijs/types@3.13.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 '@shikijs/vscode-textmate@10.0.2': {} - '@sinclair/typebox@0.34.38': {} - - '@sindresorhus/is@7.1.0': {} - - '@sindresorhus/merge-streams@2.3.0': {} + '@sinclair/typebox@0.34.41': {} '@sinonjs/commons@3.0.1': dependencies: @@ -12209,8 +10561,6 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@speed-highlight/core@1.2.7': {} - '@standard-schema/spec@1.0.0': {} '@standard-schema/utils@0.3.0': {} @@ -12221,285 +10571,215 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.1.13': + '@tailwindcss/node@4.1.14': dependencies: '@jridgewell/remapping': 2.3.5 enhanced-resolve: 5.18.3 - jiti: 2.5.1 + jiti: 2.6.1 lightningcss: 1.30.1 magic-string: 0.30.19 source-map-js: 1.2.1 - tailwindcss: 4.1.13 + tailwindcss: 4.1.14 - '@tailwindcss/oxide-android-arm64@4.1.13': + '@tailwindcss/oxide-android-arm64@4.1.14': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.13': + '@tailwindcss/oxide-darwin-arm64@4.1.14': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.13': + '@tailwindcss/oxide-darwin-x64@4.1.14': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.13': + '@tailwindcss/oxide-freebsd-x64@4.1.14': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.13': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.13': + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.13': + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.13': + '@tailwindcss/oxide-linux-x64-musl@4.1.14': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.13': + '@tailwindcss/oxide-wasm32-wasi@4.1.14': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.13': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.13': + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': optional: true - '@tailwindcss/oxide@4.1.13': + '@tailwindcss/oxide@4.1.14': dependencies: - detect-libc: 2.0.4 - tar: 7.4.3 + detect-libc: 2.1.1 + tar: 7.5.1 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.13 - '@tailwindcss/oxide-darwin-arm64': 4.1.13 - '@tailwindcss/oxide-darwin-x64': 4.1.13 - '@tailwindcss/oxide-freebsd-x64': 4.1.13 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.13 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.13 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.13 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.13 - '@tailwindcss/oxide-linux-x64-musl': 4.1.13 - '@tailwindcss/oxide-wasm32-wasi': 4.1.13 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.13 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.13 - - '@tailwindcss/postcss@4.1.13': + '@tailwindcss/oxide-android-arm64': 4.1.14 + '@tailwindcss/oxide-darwin-arm64': 4.1.14 + '@tailwindcss/oxide-darwin-x64': 4.1.14 + '@tailwindcss/oxide-freebsd-x64': 4.1.14 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.14 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.14 + '@tailwindcss/oxide-linux-x64-musl': 4.1.14 + '@tailwindcss/oxide-wasm32-wasi': 4.1.14 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.14 + + '@tailwindcss/postcss@4.1.14': dependencies: '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.1.13 - '@tailwindcss/oxide': 4.1.13 + '@tailwindcss/node': 4.1.14 + '@tailwindcss/oxide': 4.1.14 postcss: 8.5.6 - tailwindcss: 4.1.13 + tailwindcss: 4.1.14 - '@tailwindcss/typography@0.5.16(tailwindcss@4.1.13)': + '@tailwindcss/typography@0.5.19(tailwindcss@4.1.14)': dependencies: - lodash.castarray: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 4.1.13 + tailwindcss: 4.1.14 - '@tailwindcss/vite@4.1.13(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@tailwindcss/vite@4.1.14(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': dependencies: - '@tailwindcss/node': 4.1.13 - '@tailwindcss/oxide': 4.1.13 - tailwindcss: 4.1.13 - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + '@tailwindcss/node': 4.1.14 + '@tailwindcss/oxide': 4.1.14 + tailwindcss: 4.1.14 + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) - '@tanstack/directive-functions-plugin@1.131.2(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@tanstack/directive-functions-plugin@1.132.21(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.4 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/router-utils': 1.131.2 + '@tanstack/router-utils': 1.132.21 babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) transitivePeerDependencies: - supports-color - '@tanstack/history@1.131.2': {} + '@tanstack/history@1.132.21': {} - '@tanstack/query-core@5.87.4': {} + '@tanstack/query-core@5.90.2': {} - '@tanstack/query-devtools@5.87.3': {} + '@tanstack/query-devtools@5.90.1': {} - '@tanstack/react-query-devtools@5.87.4(@tanstack/react-query@5.87.4(react@19.1.1))(react@19.1.1)': + '@tanstack/react-query-devtools@5.90.2(@tanstack/react-query@5.90.2(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/query-devtools': 5.87.3 - '@tanstack/react-query': 5.87.4(react@19.1.1) + '@tanstack/query-devtools': 5.90.1 + '@tanstack/react-query': 5.90.2(react@19.1.1) react: 19.1.1 - '@tanstack/react-query@5.87.4(react@19.1.1)': + '@tanstack/react-query@5.90.2(react@19.1.1)': dependencies: - '@tanstack/query-core': 5.87.4 + '@tanstack/query-core': 5.90.2 react: 19.1.1 - '@tanstack/react-router-ssr-query@1.131.49(@tanstack/query-core@5.87.4)(@tanstack/react-query@5.87.4(react@19.1.1))(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.131.48)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-router-ssr-query@1.132.27(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.132.27)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/query-core': 5.87.4 - '@tanstack/react-query': 5.87.4(react@19.1.1) - '@tanstack/react-router': 1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-ssr-query-core': 1.131.48(@tanstack/query-core@5.87.4)(@tanstack/router-core@1.131.48) + '@tanstack/query-core': 5.90.2 + '@tanstack/react-query': 5.90.2(react@19.1.1) + '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/router-ssr-query-core': 1.132.27(@tanstack/query-core@5.90.2)(@tanstack/router-core@1.132.27) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) transitivePeerDependencies: - '@tanstack/router-core' - '@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/history': 1.131.2 - '@tanstack/react-store': 0.7.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-core': 1.131.48 - isbot: 5.1.30 + '@tanstack/history': 1.132.21 + '@tanstack/react-store': 0.7.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/router-core': 1.132.27 + isbot: 5.1.31 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-client@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-start-client@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/react-router': 1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-core': 1.131.48 - '@tanstack/start-client-core': 1.131.48 - cookie-es: 1.2.2 + '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/router-core': 1.132.27 + '@tanstack/start-client-core': 1.132.27 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-plugin@1.131.48(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.3(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': - dependencies: - '@tanstack/start-plugin-core': 1.131.48(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) - '@vitejs/plugin-react': 5.0.3(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) - pathe: 2.0.3 - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) - zod: 3.25.76 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@rsbuild/core' - - '@tanstack/react-router' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - better-sqlite3 - - drizzle-orm - - encoding - - idb-keyval - - mysql2 - - react-native-b4a - - rolldown - - sqlite3 - - supports-color - - uploadthing - - vite-plugin-solid - - webpack - - xml2js - - '@tanstack/react-start-server@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-start-server@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/history': 1.131.2 - '@tanstack/react-router': 1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-core': 1.131.48 - '@tanstack/start-client-core': 1.131.48 - '@tanstack/start-server-core': 1.131.48 - h3: 1.13.0 - isbot: 5.1.30 + '@tanstack/history': 1.132.21 + '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/router-core': 1.132.27 + '@tanstack/start-client-core': 1.132.27 + '@tanstack/start-server-core': 1.132.27 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) + transitivePeerDependencies: + - crossws - '@tanstack/react-start@1.131.48(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.3(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@tanstack/react-start@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': dependencies: - '@tanstack/react-start-client': 1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/react-start-plugin': 1.131.48(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.3(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) - '@tanstack/react-start-server': 1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/start-server-functions-client': 1.131.48(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) - '@tanstack/start-server-functions-server': 1.131.2(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) - '@vitejs/plugin-react': 5.0.3(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/react-start-client': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/react-start-server': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/router-utils': 1.132.21 + '@tanstack/start-client-core': 1.132.27 + '@tanstack/start-plugin-core': 1.132.27(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + '@tanstack/start-server-core': 1.132.27 + pathe: 2.0.3 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - '@rsbuild/core' - - '@tanstack/react-router' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - better-sqlite3 - - drizzle-orm - - encoding - - idb-keyval - - mysql2 - - react-native-b4a - - rolldown - - sqlite3 + - crossws - supports-color - - uploadthing - vite-plugin-solid - webpack - - xml2js - '@tanstack/react-store@0.7.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-store@0.7.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/store': 0.7.5 + '@tanstack/store': 0.7.7 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) use-sync-external-store: 1.5.0(react@19.1.1) - '@tanstack/router-core@1.131.48': + '@tanstack/router-core@1.132.27': dependencies: - '@tanstack/history': 1.131.2 - '@tanstack/store': 0.7.5 - cookie-es: 1.2.2 + '@tanstack/history': 1.132.21 + '@tanstack/store': 0.7.7 + cookie-es: 2.0.0 seroval: 1.3.2 seroval-plugins: 1.3.3(seroval@1.3.2) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/router-generator@1.131.48': + '@tanstack/router-generator@1.132.27': dependencies: - '@tanstack/router-core': 1.131.48 - '@tanstack/router-utils': 1.131.2 - '@tanstack/virtual-file-routes': 1.131.2 + '@tanstack/router-core': 1.132.27 + '@tanstack/router-utils': 1.132.21 + '@tanstack/virtual-file-routes': 1.132.21 prettier: 3.6.2 recast: 0.23.11 source-map: 0.7.6 - tsx: 4.20.3 + tsx: 4.20.6 zod: 3.25.76 transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.131.48(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@tanstack/router-plugin@1.132.27(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) @@ -12507,37 +10787,39 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/router-core': 1.131.48 - '@tanstack/router-generator': 1.131.48 - '@tanstack/router-utils': 1.131.2 - '@tanstack/virtual-file-routes': 1.131.2 + '@tanstack/router-core': 1.132.27 + '@tanstack/router-generator': 1.132.27 + '@tanstack/router-utils': 1.132.21 + '@tanstack/virtual-file-routes': 1.132.21 babel-dead-code-elimination: 1.0.10 chokidar: 3.6.0 unplugin: 2.3.10 zod: 3.25.76 optionalDependencies: - '@tanstack/react-router': 1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) transitivePeerDependencies: - supports-color - '@tanstack/router-ssr-query-core@1.131.48(@tanstack/query-core@5.87.4)(@tanstack/router-core@1.131.48)': + '@tanstack/router-ssr-query-core@1.132.27(@tanstack/query-core@5.90.2)(@tanstack/router-core@1.132.27)': dependencies: - '@tanstack/query-core': 5.87.4 - '@tanstack/router-core': 1.131.48 + '@tanstack/query-core': 5.90.2 + '@tanstack/router-core': 1.132.27 - '@tanstack/router-utils@1.131.2': + '@tanstack/router-utils@1.132.21': dependencies: '@babel/core': 7.28.4 '@babel/generator': 7.28.3 '@babel/parser': 7.28.4 '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) - ansis: 4.1.0 + ansis: 4.2.0 diff: 8.0.2 + fast-glob: 3.3.3 + pathe: 2.0.3 transitivePeerDependencies: - supports-color - '@tanstack/server-functions-plugin@1.131.2(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@tanstack/server-functions-plugin@1.132.21(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.4 @@ -12546,123 +10828,76 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/directive-functions-plugin': 1.131.2(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + '@tanstack/directive-functions-plugin': 1.132.21(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color - vite - '@tanstack/start-client-core@1.131.48': + '@tanstack/start-client-core@1.132.27': dependencies: - '@tanstack/router-core': 1.131.48 - '@tanstack/start-storage-context': 1.131.48 - cookie-es: 1.2.2 + '@tanstack/router-core': 1.132.27 + '@tanstack/start-storage-context': 1.132.27 + seroval: 1.3.2 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/start-plugin-core@1.131.48(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@tanstack/start-plugin-core@1.132.27(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/router-core': 1.131.48 - '@tanstack/router-generator': 1.131.48 - '@tanstack/router-plugin': 1.131.48(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) - '@tanstack/router-utils': 1.131.2 - '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) - '@tanstack/start-server-core': 1.131.48 - '@types/babel__code-frame': 7.0.6 - '@types/babel__core': 7.20.5 + '@rolldown/pluginutils': 1.0.0-beta.40 + '@tanstack/router-core': 1.132.27 + '@tanstack/router-generator': 1.132.27 + '@tanstack/router-plugin': 1.132.27(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + '@tanstack/router-utils': 1.132.21 + '@tanstack/server-functions-plugin': 1.132.21(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + '@tanstack/start-server-core': 1.132.27 babel-dead-code-elimination: 1.0.10 cheerio: 1.1.2 - h3: 1.13.0 - nitropack: 2.12.6(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) + exsolve: 1.0.7 pathe: 2.0.3 + srvx: 0.8.9 + tinyglobby: 0.2.15 ufo: 1.6.1 - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) - vitefu: 1.1.1(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vitefu: 1.1.1(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) xmlbuilder2: 3.1.1 zod: 3.25.76 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - '@rsbuild/core' - '@tanstack/react-router' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - better-sqlite3 - - drizzle-orm - - encoding - - idb-keyval - - mysql2 - - react-native-b4a - - rolldown - - sqlite3 + - crossws - supports-color - - uploadthing - vite-plugin-solid - webpack - - xml2js - - '@tanstack/start-server-core@1.131.48': - dependencies: - '@tanstack/history': 1.131.2 - '@tanstack/router-core': 1.131.48 - '@tanstack/start-client-core': 1.131.48 - '@tanstack/start-storage-context': 1.131.48 - h3: 1.13.0 - isbot: 5.1.30 - tiny-invariant: 1.3.3 - tiny-warning: 1.0.3 - unctx: 2.4.1 - '@tanstack/start-server-functions-client@1.131.48(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@tanstack/start-server-core@1.132.27': dependencies: - '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) - '@tanstack/start-server-functions-fetcher': 1.131.48 - transitivePeerDependencies: - - supports-color - - vite - - '@tanstack/start-server-functions-fetcher@1.131.48': - dependencies: - '@tanstack/router-core': 1.131.48 - '@tanstack/start-client-core': 1.131.48 - - '@tanstack/start-server-functions-server@1.131.2(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': - dependencies: - '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)) + '@tanstack/history': 1.132.21 + '@tanstack/router-core': 1.132.27 + '@tanstack/start-client-core': 1.132.27 + '@tanstack/start-storage-context': 1.132.27 + h3-v2: h3@2.0.0-beta.4 + seroval: 1.3.2 tiny-invariant: 1.3.3 transitivePeerDependencies: - - supports-color - - vite + - crossws - '@tanstack/start-storage-context@1.131.48': + '@tanstack/start-storage-context@1.132.27': dependencies: - '@tanstack/router-core': 1.131.48 + '@tanstack/router-core': 1.132.27 - '@tanstack/store@0.7.5': {} + '@tanstack/store@0.7.7': {} - '@tanstack/virtual-file-routes@1.131.2': {} + '@tanstack/virtual-file-routes@1.132.21': {} '@testing-library/dom@10.4.1': dependencies: '@babel/code-frame': 7.27.1 - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -12670,25 +10905,24 @@ snapshots: picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.6.4': + '@testing-library/jest-dom@6.9.0': dependencies: - '@adobe/css-tools': 4.4.3 + '@adobe/css-tools': 4.4.4 aria-query: 5.3.2 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 - lodash: 4.17.21 picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 '@testing-library/dom': 10.4.1 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 - '@types/react-dom': 19.1.7(@types/react@19.1.9) + '@types/react': 19.1.16 + '@types/react-dom': 19.1.9(@types/react@19.1.16) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -12700,6 +10934,12 @@ snapshots: minimatch: 10.0.3 path-browserify: 1.0.1 + '@ts-morph/common@0.28.0': + dependencies: + minimatch: 10.0.3 + path-browserify: 1.0.1 + tinyglobby: 0.2.15 + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -12707,8 +10947,6 @@ snapshots: '@types/aria-query@5.0.4': {} - '@types/babel__code-frame@7.0.6': {} - '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.4 @@ -12732,11 +10970,11 @@ snapshots: '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 24.1.0 + '@types/node': 24.6.1 - '@types/bun@1.2.21(@types/react@19.1.9)': + '@types/bun@1.2.23(@types/react@19.1.16)': dependencies: - bun-types: 1.2.21(@types/react@19.1.9) + bun-types: 1.2.23(@types/react@19.1.16) transitivePeerDependencies: - '@types/react' @@ -12766,12 +11004,12 @@ snapshots: '@types/jest@30.0.0': dependencies: - expect: 30.0.5 - pretty-format: 30.0.5 + expect: 30.2.0 + pretty-format: 30.2.0 '@types/jsdom@21.1.7': dependencies: - '@types/node': 24.5.1 + '@types/node': 24.6.1 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -12795,7 +11033,7 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@20.19.15': + '@types/node@20.19.19': dependencies: undici-types: 6.21.0 @@ -12803,38 +11041,24 @@ snapshots: dependencies: undici-types: 7.8.0 - '@types/node@24.1.0': + '@types/node@24.6.1': dependencies: - undici-types: 7.8.0 - - '@types/node@24.5.1': - dependencies: - undici-types: 7.12.0 + undici-types: 7.13.0 '@types/pg@8.15.5': dependencies: - '@types/node': 24.1.0 + '@types/node': 24.6.1 pg-protocol: 1.10.3 pg-types: 2.2.0 - '@types/react-dom@19.1.7(@types/react@19.1.9)': + '@types/react-dom@19.1.9(@types/react@19.1.16)': dependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - '@types/react-dom@19.1.9(@types/react@19.1.13)': - dependencies: - '@types/react': 19.1.13 - - '@types/react@19.1.13': + '@types/react@19.1.16': dependencies: csstype: 3.1.3 - '@types/react@19.1.9': - dependencies: - csstype: 3.1.3 - - '@types/resolve@1.20.2': {} - '@types/stack-utils@2.0.3': {} '@types/tough-cookie@4.0.5': {} @@ -12852,32 +11076,32 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/type-utils': 8.44.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.44.0 + '@typescript-eslint/parser': 8.45.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/type-utils': 8.45.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 8.45.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.45.0 eslint: 8.57.1 graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/type-utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.44.0 - eslint: 9.35.0(jiti@2.5.1) + '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/type-utils': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/utils': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.45.0 + eslint: 9.36.0(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -12886,81 +11110,135 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/type-utils': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.45.0 + eslint: 9.36.0(jiti@2.6.1) + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.44.0 - debug: 4.4.1 + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.45.0 + debug: 4.4.3 eslint: 8.57.1 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.44.0 - debug: 4.4.1 - eslint: 9.35.0(jiti@2.5.1) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.45.0 + debug: 4.4.3 + eslint: 9.36.0(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.44.0(typescript@5.8.3)': + '@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.8.3) - '@typescript-eslint/types': 8.44.0 - debug: 4.4.1 + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.45.0 + debug: 4.4.3 + eslint: 9.36.0(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.45.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.8.3) + '@typescript-eslint/types': 8.45.0 + debug: 4.4.3 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.44.0': + '@typescript-eslint/project-service@8.45.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3) + '@typescript-eslint/types': 8.45.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.45.0': dependencies: - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/visitor-keys': 8.44.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/visitor-keys': 8.45.0 - '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.44.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.0(eslint@8.57.1)(typescript@5.8.3) - debug: 4.4.1 + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.45.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.45.0(eslint@8.57.1)(typescript@5.9.3) + debug: 4.4.3 eslint: 8.57.1 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - debug: 4.4.1 - eslint: 9.35.0(jiti@2.5.1) + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) + debug: 4.4.3 + eslint: 9.36.0(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.44.0': {} + '@typescript-eslint/type-utils@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.36.0(jiti@2.6.1) + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.45.0': {} - '@typescript-eslint/typescript-estree@8.44.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.45.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.44.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.8.3) - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/visitor-keys': 8.44.0 - debug: 4.4.1 + '@typescript-eslint/project-service': 8.45.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.8.3) + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/visitor-keys': 8.45.0 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -12970,31 +11248,58 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.44.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.45.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.45.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3) + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/visitor-keys': 8.45.0 + debug: 4.4.3 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.45.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + eslint: 8.57.1 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) - eslint: 8.57.1 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.8.3) + eslint: 9.36.0(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3)': + '@typescript-eslint/utils@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.44.0 - '@typescript-eslint/types': 8.44.0 - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) - eslint: 9.35.0(jiti@2.5.1) - typescript: 5.8.3 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + eslint: 9.36.0(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.44.0': + '@typescript-eslint/visitor-keys@8.45.0': dependencies: - '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/types': 8.45.0 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -13058,112 +11363,83 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vercel/nft@0.30.1(rollup@4.51.0)': - dependencies: - '@mapbox/node-pre-gyp': 2.0.0 - '@rollup/pluginutils': 5.3.0(rollup@4.51.0) - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) - async-sema: 3.1.1 - bindings: 1.5.0 - estree-walker: 2.0.2 - glob: 10.4.5 - graceful-fs: 4.2.11 - node-gyp-build: 4.8.4 - picomatch: 4.0.3 - resolve-from: 5.0.0 - transitivePeerDependencies: - - encoding - - rollup - - supports-color - - '@vitejs/plugin-react@4.7.0(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@vitejs/plugin-react@4.7.0(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.0.3(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1))': + '@vitejs/plugin-react@5.0.4(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) - '@rolldown/pluginutils': 1.0.0-beta.35 + '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.5.18': + '@vue/compiler-core@3.5.22': dependencies: '@babel/parser': 7.28.4 - '@vue/shared': 3.5.18 + '@vue/shared': 3.5.22 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.18': + '@vue/compiler-dom@3.5.22': dependencies: - '@vue/compiler-core': 3.5.18 - '@vue/shared': 3.5.18 + '@vue/compiler-core': 3.5.22 + '@vue/shared': 3.5.22 - '@vue/compiler-sfc@3.5.18': + '@vue/compiler-sfc@3.5.22': dependencies: '@babel/parser': 7.28.4 - '@vue/compiler-core': 3.5.18 - '@vue/compiler-dom': 3.5.18 - '@vue/compiler-ssr': 3.5.18 - '@vue/shared': 3.5.18 + '@vue/compiler-core': 3.5.22 + '@vue/compiler-dom': 3.5.22 + '@vue/compiler-ssr': 3.5.22 + '@vue/shared': 3.5.22 estree-walker: 2.0.2 magic-string: 0.30.19 postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.18': + '@vue/compiler-ssr@3.5.22': dependencies: - '@vue/compiler-dom': 3.5.18 - '@vue/shared': 3.5.18 + '@vue/compiler-dom': 3.5.22 + '@vue/shared': 3.5.22 - '@vue/reactivity@3.5.18': + '@vue/reactivity@3.5.22': dependencies: - '@vue/shared': 3.5.18 + '@vue/shared': 3.5.22 - '@vue/runtime-core@3.5.18': + '@vue/runtime-core@3.5.22': dependencies: - '@vue/reactivity': 3.5.18 - '@vue/shared': 3.5.18 + '@vue/reactivity': 3.5.22 + '@vue/shared': 3.5.22 - '@vue/runtime-dom@3.5.18': + '@vue/runtime-dom@3.5.22': dependencies: - '@vue/reactivity': 3.5.18 - '@vue/runtime-core': 3.5.18 - '@vue/shared': 3.5.18 + '@vue/reactivity': 3.5.22 + '@vue/runtime-core': 3.5.22 + '@vue/shared': 3.5.22 csstype: 3.1.3 - '@vue/server-renderer@3.5.18(vue@3.5.18(typescript@5.8.3))': - dependencies: - '@vue/compiler-ssr': 3.5.18 - '@vue/shared': 3.5.18 - vue: 3.5.18(typescript@5.8.3) - - '@vue/shared@3.5.18': {} - - abbrev@3.0.1: {} - - abort-controller@3.0.0: + '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.3))': dependencies: - event-target-shim: 5.0.1 + '@vue/compiler-ssr': 3.5.22 + '@vue/shared': 3.5.22 + vue: 3.5.22(typescript@5.9.3) - acorn-import-attributes@1.9.5(acorn@8.15.0): - dependencies: - acorn: 8.15.0 + '@vue/shared@3.5.22': {} acorn-jsx@5.3.2(acorn@8.15.0): dependencies: @@ -13186,7 +11462,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} + ansi-regex@6.2.2: {} ansi-styles@4.3.0: dependencies: @@ -13194,9 +11470,9 @@ snapshots: ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} + ansi-styles@6.2.3: {} - ansis@4.1.0: {} + ansis@4.2.0: {} any-promise@1.3.0: {} @@ -13205,28 +11481,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - archiver-utils@5.0.2: - dependencies: - glob: 10.4.5 - graceful-fs: 4.2.11 - is-stream: 2.0.1 - lazystream: 1.0.1 - lodash: 4.17.21 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - - archiver@7.0.1: - dependencies: - archiver-utils: 5.0.2 - async: 3.2.6 - buffer-crc32: 1.0.0 - readable-stream: 4.7.0 - readdir-glob: 1.1.3 - tar-stream: 3.1.7 - zip-stream: 6.0.1 - transitivePeerDependencies: - - react-native-b4a - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -13320,14 +11574,10 @@ snapshots: async-function@1.0.0: {} - async-sema@3.1.1: {} - - async@3.2.6: {} - autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.25.1 - caniuse-lite: 1.0.30001731 + browserslist: 4.26.3 + caniuse-lite: 1.0.30001746 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -13342,8 +11592,6 @@ snapshots: axobject-query@4.1.0: {} - b4a@1.7.1: {} - babel-dead-code-elimination@1.0.10: dependencies: '@babel/core': 7.28.4 @@ -13353,33 +11601,20 @@ snapshots: transitivePeerDependencies: - supports-color - babel-jest@30.0.5(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - '@jest/transform': 30.0.5 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 7.0.0 - babel-preset-jest: 30.0.1(@babel/core@7.28.0) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-jest@30.1.2(@babel/core@7.28.0): + babel-jest@30.2.0(@babel/core@7.28.4): dependencies: - '@babel/core': 7.28.0 - '@jest/transform': 30.1.2 + '@babel/core': 7.28.4 + '@jest/transform': 30.2.0 '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 7.0.0 - babel-preset-jest: 30.0.1(@babel/core@7.28.0) + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.28.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color - babel-plugin-istanbul@7.0.0: + babel-plugin-istanbul@7.0.1: dependencies: '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 @@ -13389,71 +11624,66 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-jest-hoist@30.0.1: + babel-plugin-jest-hoist@30.2.0: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.4 '@types/babel__core': 7.20.5 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.4): dependencies: - '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/compat-data': 7.28.4 + '@babel/core': 7.28.4 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.4): dependencies: - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) core-js-compat: 3.45.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.4): dependencies: - '@babel/core': 7.28.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.0) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0) - - babel-preset-jest@30.0.1(@babel/core@7.28.0): - dependencies: - '@babel/core': 7.28.0 - babel-plugin-jest-hoist: 30.0.1 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.0) + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4): + dependencies: + '@babel/core': 7.28.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) + + babel-preset-jest@30.2.0(@babel/core@7.28.4): + dependencies: + '@babel/core': 7.28.4 + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) bail@2.0.2: {} balanced-match@1.0.2: {} - bare-events@2.6.1: - optional: true - base64-js@1.5.1: {} - baseline-browser-mapping@2.8.6: {} + baseline-browser-mapping@2.8.10: {} better-call@1.0.19: dependencies: @@ -13495,20 +11725,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.25.1: + browserslist@4.26.3: dependencies: - caniuse-lite: 1.0.30001731 - electron-to-chromium: 1.5.194 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.1) - - browserslist@4.26.2: - dependencies: - baseline-browser-mapping: 2.8.6 - caniuse-lite: 1.0.30001743 - electron-to-chromium: 1.5.222 + baseline-browser-mapping: 2.8.10 + caniuse-lite: 1.0.30001746 + electron-to-chromium: 1.5.228 node-releases: 2.0.21 - update-browserslist-db: 1.1.3(browserslist@4.26.2) + update-browserslist-db: 1.1.3(browserslist@4.26.3) bs-logger@0.2.6: dependencies: @@ -13518,8 +11741,6 @@ snapshots: dependencies: node-int64: 0.4.0 - buffer-crc32@1.0.0: {} - buffer-from@1.1.2: {} buffer@5.7.1: @@ -13527,48 +11748,20 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - bun-types@1.2.21(@types/react@19.1.13): - dependencies: - '@types/node': 24.5.1 - '@types/react': 19.1.13 - optional: true - - bun-types@1.2.21(@types/react@19.1.9): + bun-types@1.2.23(@types/react@19.1.16): dependencies: - '@types/node': 24.5.1 - '@types/react': 19.1.9 + '@types/node': 24.6.1 + '@types/react': 19.1.16 - bundle-require@5.1.0(esbuild@0.25.9): + bundle-require@5.1.0(esbuild@0.25.10): dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 load-tsconfig: 0.2.5 busboy@1.6.0: dependencies: streamsearch: 1.1.0 - c12@3.3.0(magicast@0.3.5): - dependencies: - chokidar: 4.0.3 - confbox: 0.2.2 - defu: 6.1.4 - dotenv: 17.2.2 - exsolve: 1.0.7 - giget: 2.0.0 - jiti: 2.5.1 - ohash: 2.0.11 - pathe: 2.0.3 - perfect-debounce: 2.0.0 - pkg-types: 2.3.0 - rc9: 2.1.2 - optionalDependencies: - magicast: 0.3.5 - cac@6.7.14: {} call-bind-apply-helpers@1.0.2: @@ -13594,9 +11787,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001731: {} - - caniuse-lite@1.0.30001743: {} + caniuse-lite@1.0.30001746: {} ccount@2.0.1: {} @@ -13660,10 +11851,6 @@ snapshots: ci-info@4.3.0: {} - citty@0.1.6: - dependencies: - consola: 3.4.2 - cjs-module-lexer@2.1.0: {} class-variance-authority@0.7.1: @@ -13672,12 +11859,6 @@ snapshots: client-only@0.0.1: {} - clipboardy@4.0.0: - dependencies: - execa: 8.0.1 - is-wsl: 3.1.0 - is64bit: 2.0.0 - cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -13686,14 +11867,12 @@ snapshots: clsx@2.1.1: {} - cluster-key-slot@1.1.2: {} - - cmdk@1.1.1(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + cmdk@1.1.1(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) transitivePeerDependencies: @@ -13706,13 +11885,13 @@ snapshots: codemirror@6.0.2: dependencies: - '@codemirror/autocomplete': 6.18.6 + '@codemirror/autocomplete': 6.19.0 '@codemirror/commands': 6.8.1 - '@codemirror/language': 6.11.2 + '@codemirror/language': 6.11.3 '@codemirror/lint': 6.8.5 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 - '@codemirror/view': 6.38.1 + '@codemirror/view': 6.38.4 collapse-white-space@2.1.0: {} @@ -13724,83 +11903,38 @@ snapshots: color-name@1.1.4: {} - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.4 - optional: true - - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - optional: true - comma-separated-tokens@2.0.3: {} - commander@2.20.3: {} - commander@4.1.1: {} commander@8.3.0: {} - commondir@1.0.1: {} - - compatx@0.2.0: {} - - compress-commons@6.0.2: - dependencies: - crc-32: 1.2.2 - crc32-stream: 6.0.0 - is-stream: 2.0.1 - normalize-path: 3.0.0 - readable-stream: 4.7.0 - compute-scroll-into-view@3.1.1: {} concat-map@0.0.1: {} confbox@0.1.8: {} - confbox@0.2.2: {} - consola@3.4.2: {} convert-source-map@2.0.0: {} - cookie-es@1.2.2: {} - cookie-es@2.0.0: {} cookie@1.0.2: {} core-js-compat@3.45.1: dependencies: - browserslist: 4.26.2 - - core-util-is@1.0.3: {} - - crc-32@1.2.2: {} - - crc32-stream@6.0.0: - dependencies: - crc-32: 1.2.2 - readable-stream: 4.7.0 + browserslist: 4.26.3 crelt@1.0.6: {} - croner@9.1.0: {} - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crossws@0.3.5: - dependencies: - uncrypto: 0.1.3 - css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -13851,16 +11985,11 @@ snapshots: date-fns@4.1.0: {} - db0@0.3.2(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)): - optionalDependencies: - better-sqlite3: 11.10.0 - drizzle-orm: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) - debug@3.2.7: dependencies: ms: 2.1.3 - debug@4.4.1: + debug@4.4.3: dependencies: ms: 2.1.3 @@ -13874,7 +12003,7 @@ snapshots: dependencies: mimic-response: 3.1.0 - dedent@1.6.0: {} + dedent@1.7.0: {} deep-extend@0.6.0: {} @@ -13888,27 +12017,15 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - define-lazy-prop@2.0.0: {} - define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 - defu@6.1.4: {} - - denque@2.1.0: {} - - depd@2.0.0: {} - dequal@2.0.3: {} - destr@2.0.5: {} - - detect-libc@1.0.3: {} - - detect-libc@2.0.4: {} + detect-libc@2.1.1: {} detect-newline@3.1.0: {} @@ -13944,7 +12061,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.2.6: + dompurify@3.2.7: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -13954,14 +12071,10 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 - dot-prop@9.0.0: - dependencies: - type-fest: 4.41.0 - dotenv-cli@10.0.0: dependencies: cross-spawn: 7.0.6 - dotenv: 17.2.2 + dotenv: 17.2.3 dotenv-expand: 11.0.7 minimist: 1.2.8 @@ -13971,31 +12084,17 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.2.2: {} - - drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1): - optionalDependencies: - '@prisma/client': 5.22.0(prisma@5.22.0) - '@types/better-sqlite3': 7.6.13 - '@types/pg': 8.15.5 - '@types/react': 19.1.13 - better-sqlite3: 11.10.0 - bun-types: 1.2.21(@types/react@19.1.13) - kysely: 0.28.5 - pg: 8.16.3 - prisma: 5.22.0 - react: 19.1.1 - optional: true + dotenv@17.2.3: {} - drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.9)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.9))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1): + drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.16)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.16))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1): optionalDependencies: '@prisma/client': 5.22.0(prisma@5.22.0) '@types/better-sqlite3': 7.6.13 '@types/pg': 8.15.5 - '@types/react': 19.1.9 + '@types/react': 19.1.16 better-sqlite3: 11.10.0 - bun-types: 1.2.21(@types/react@19.1.9) - kysely: 0.28.5 + bun-types: 1.2.23(@types/react@19.1.16) + kysely: 0.28.7 pg: 8.16.3 prisma: 5.22.0 react: 19.1.1 @@ -14010,15 +12109,7 @@ snapshots: eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - - ejs@3.1.10: - dependencies: - jake: 10.9.2 - - electron-to-chromium@1.5.194: {} - - electron-to-chromium@1.5.222: {} + electron-to-chromium@1.5.228: {} emittery@0.13.1: {} @@ -14026,8 +12117,6 @@ snapshots: emoji-regex@9.2.2: {} - encodeurl@2.0.0: {} - encoding-sniffer@0.2.1: dependencies: iconv-lite: 0.6.3 @@ -14046,12 +12135,10 @@ snapshots: entities@6.0.1: {} - error-ex@1.3.2: + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 - error-stack-parser-es@1.0.5: {} - es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -14217,9 +12304,9 @@ snapshots: esbuild-openbsd-64@0.14.54: optional: true - esbuild-plugin-preserve-directives@0.0.11(esbuild@0.25.9): + esbuild-plugin-preserve-directives@0.0.11(esbuild@0.25.10): dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 esbuild-sunos-64@0.14.54: optional: true @@ -14257,80 +12344,78 @@ snapshots: esbuild-windows-64: 0.14.54 esbuild-windows-arm64: 0.14.54 - esbuild@0.25.9: + esbuild@0.25.10: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.9 - '@esbuild/android-arm': 0.25.9 - '@esbuild/android-arm64': 0.25.9 - '@esbuild/android-x64': 0.25.9 - '@esbuild/darwin-arm64': 0.25.9 - '@esbuild/darwin-x64': 0.25.9 - '@esbuild/freebsd-arm64': 0.25.9 - '@esbuild/freebsd-x64': 0.25.9 - '@esbuild/linux-arm': 0.25.9 - '@esbuild/linux-arm64': 0.25.9 - '@esbuild/linux-ia32': 0.25.9 - '@esbuild/linux-loong64': 0.25.9 - '@esbuild/linux-mips64el': 0.25.9 - '@esbuild/linux-ppc64': 0.25.9 - '@esbuild/linux-riscv64': 0.25.9 - '@esbuild/linux-s390x': 0.25.9 - '@esbuild/linux-x64': 0.25.9 - '@esbuild/netbsd-arm64': 0.25.9 - '@esbuild/netbsd-x64': 0.25.9 - '@esbuild/openbsd-arm64': 0.25.9 - '@esbuild/openbsd-x64': 0.25.9 - '@esbuild/openharmony-arm64': 0.25.9 - '@esbuild/sunos-x64': 0.25.9 - '@esbuild/win32-arm64': 0.25.9 - '@esbuild/win32-ia32': 0.25.9 - '@esbuild/win32-x64': 0.25.9 + '@esbuild/aix-ppc64': 0.25.10 + '@esbuild/android-arm': 0.25.10 + '@esbuild/android-arm64': 0.25.10 + '@esbuild/android-x64': 0.25.10 + '@esbuild/darwin-arm64': 0.25.10 + '@esbuild/darwin-x64': 0.25.10 + '@esbuild/freebsd-arm64': 0.25.10 + '@esbuild/freebsd-x64': 0.25.10 + '@esbuild/linux-arm': 0.25.10 + '@esbuild/linux-arm64': 0.25.10 + '@esbuild/linux-ia32': 0.25.10 + '@esbuild/linux-loong64': 0.25.10 + '@esbuild/linux-mips64el': 0.25.10 + '@esbuild/linux-ppc64': 0.25.10 + '@esbuild/linux-riscv64': 0.25.10 + '@esbuild/linux-s390x': 0.25.10 + '@esbuild/linux-x64': 0.25.10 + '@esbuild/netbsd-arm64': 0.25.10 + '@esbuild/netbsd-x64': 0.25.10 + '@esbuild/openbsd-arm64': 0.25.10 + '@esbuild/openbsd-x64': 0.25.10 + '@esbuild/openharmony-arm64': 0.25.10 + '@esbuild/sunos-x64': 0.25.10 + '@esbuild/win32-arm64': 0.25.10 + '@esbuild/win32-ia32': 0.25.10 + '@esbuild/win32-x64': 0.25.10 escalade@3.2.0: {} - escape-html@1.0.3: {} - escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} - eslint-config-next@15.3.4(eslint@8.57.1)(typescript@5.8.3): + eslint-config-next@15.3.4(eslint@8.57.1)(typescript@5.9.3): dependencies: '@next/eslint-plugin-next': 15.3.4 '@rushstack/eslint-patch': 1.12.0 - '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 8.44.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': 8.45.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x - supports-color - eslint-config-next@15.5.3(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3): + eslint-config-next@15.5.3(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3): dependencies: '@next/eslint-plugin-next': 15.5.3 '@rushstack/eslint-patch': 1.12.0 - '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - eslint: 9.35.0(jiti@2.5.1) + '@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.35.0(jiti@2.5.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.35.0(jiti@2.5.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.35.0(jiti@2.5.1)) - eslint-plugin-react: 7.37.5(eslint@9.35.0(jiti@2.5.1)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.35.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.36.0(jiti@2.6.1)) + eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.6.1)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.36.0(jiti@2.6.1)) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x @@ -14347,7 +12432,7 @@ snapshots: eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.1 + debug: 4.4.3 eslint: 8.57.1 get-tsconfig: 4.10.1 is-bun-module: 2.0.0 @@ -14355,48 +12440,48 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.35.0(jiti@2.5.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.1 - eslint: 9.35.0(jiti@2.5.1) + debug: 4.4.3 + eslint: 9.36.0(jiti@2.6.1) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.44.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.45.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.35.0(jiti@2.5.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - eslint: 9.35.0(jiti@2.5.1) + '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.35.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -14407,7 +12492,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.44.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -14419,13 +12504,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.44.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.45.0(eslint@8.57.1)(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.35.0(jiti@2.5.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -14434,9 +12519,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.35.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.35.0(jiti@2.5.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -14448,7 +12533,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -14473,7 +12558,7 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-jsx-a11y@6.10.2(eslint@9.35.0(jiti@2.5.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.36.0(jiti@2.6.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -14483,7 +12568,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.35.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -14496,13 +12581,13 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-react-hooks@5.2.0(eslint@9.35.0(jiti@2.5.1)): + eslint-plugin-react-hooks@5.2.0(eslint@9.36.0(jiti@2.6.1)): dependencies: - eslint: 9.35.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.1) - eslint-plugin-react-refresh@0.4.20(eslint@9.35.0(jiti@2.5.1)): + eslint-plugin-react-refresh@0.4.22(eslint@9.36.0(jiti@2.6.1)): dependencies: - eslint: 9.35.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.1) eslint-plugin-react@7.37.5(eslint@8.57.1): dependencies: @@ -14526,7 +12611,7 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-react@7.37.5(eslint@9.35.0(jiti@2.5.1)): + eslint-plugin-react@7.37.5(eslint@9.36.0(jiti@2.6.1)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -14534,7 +12619,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.35.0(jiti@2.5.1) + eslint: 9.36.0(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -14575,7 +12660,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -14605,15 +12690,15 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.35.0(jiti@2.5.1): + eslint@9.36.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.1 '@eslint/core': 0.15.2 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.35.0 + '@eslint/js': 9.36.0 '@eslint/plugin-kit': 0.3.5 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 @@ -14623,7 +12708,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -14643,7 +12728,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.5.1 + jiti: 2.6.1 transitivePeerDependencies: - supports-color @@ -14712,8 +12797,6 @@ snapshots: esutils@2.0.3: {} - etag@1.8.1: {} - event-stream@3.3.4: dependencies: duplexer: 0.1.2 @@ -14724,10 +12807,6 @@ snapshots: stream-combiner: 0.0.4 through: 2.3.8 - event-target-shim@5.0.1: {} - - events@3.3.0: {} - execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -14740,30 +12819,18 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - execa@8.0.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - exit-x@0.2.2: {} expand-template@2.0.3: {} - expect@30.0.5: + expect@30.2.0: dependencies: - '@jest/expect-utils': 30.0.5 - '@jest/get-type': 30.0.1 - jest-matcher-utils: 30.0.5 - jest-message-util: 30.0.5 - jest-mock: 30.0.5 - jest-util: 30.0.5 + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 exsolve@1.0.7: {} @@ -14771,8 +12838,6 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-fifo@1.3.2: {} - fast-glob@3.3.1: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -14805,6 +12870,8 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + fetchdts@0.1.7: {} + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -14815,10 +12882,6 @@ snapshots: file-uri-to-path@1.0.0: {} - filelist@1.0.4: - dependencies: - minimatch: 5.1.6 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -14836,8 +12899,8 @@ snapshots: fix-dts-default-cjs-exports@1.0.1: dependencies: magic-string: 0.30.19 - mlly: 1.7.4 - rollup: 4.46.2 + mlly: 1.8.0 + rollup: 4.52.3 flat-cache@3.2.0: dependencies: @@ -14863,17 +12926,15 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@12.23.12(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + framer-motion@12.23.22(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: - motion-dom: 12.23.12 + motion-dom: 12.23.21 motion-utils: 12.23.6 tslib: 2.8.1 optionalDependencies: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - fresh@2.0.0: {} - from@0.1.7: {} fs-constants@1.0.0: {} @@ -14886,55 +12947,55 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1): + fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1): dependencies: '@formatjs/intl-localematcher': 0.6.1 - '@orama/orama': 3.1.13 - '@shikijs/rehype': 3.12.2 - '@shikijs/transformers': 3.12.2 + '@orama/orama': 3.1.14 + '@shikijs/rehype': 3.13.0 + '@shikijs/transformers': 3.13.0 github-slugger: 2.0.0 hast-util-to-estree: 3.1.3 hast-util-to-jsx-runtime: 2.3.6 image-size: 2.0.2 negotiator: 1.0.0 npm-to-yarn: 3.0.1 - react-remove-scroll: 2.7.1(@types/react@19.1.9)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) remark: 15.0.1 remark-gfm: 4.0.1 remark-rehype: 11.1.2 scroll-into-view-if-needed: 3.1.0 - shiki: 3.12.2 + shiki: 3.13.0 unist-util-visit: 5.0.0 optionalDependencies: - '@tanstack/react-router': 1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@types/react': 19.1.9 - next: 15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@types/react': 19.1.16 + next: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react-router: 7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) transitivePeerDependencies: - supports-color - fumadocs-docgen@3.0.0(fumadocs-core@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)): + fumadocs-docgen@3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)): dependencies: estree-util-to-js: 2.0.0 estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) npm-to-yarn: 3.0.1 - oxc-transform: 0.82.3 + oxc-transform: 0.92.0 unist-util-visit: 5.0.0 - zod: 4.1.8 + zod: 4.1.11 - fumadocs-mdx@11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.5(@types/node@24.0.3)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)): + fumadocs-mdx@11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.7(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.0.0 chokidar: 4.0.3 - esbuild: 0.25.9 + esbuild: 0.25.10 estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) js-yaml: 4.1.0 - lru-cache: 11.2.1 + lru-cache: 11.2.2 picocolors: 1.1.1 remark-mdx: 3.1.1 remark-parse: 11.0.0 @@ -14942,58 +13003,58 @@ snapshots: tinyglobby: 0.2.15 unified: 11.0.5 unist-util-visit: 5.0.0 - zod: 4.1.8 + zod: 4.1.11 optionalDependencies: - next: 15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + next: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 - vite: 7.1.5(@types/node@24.0.3)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) transitivePeerDependencies: - supports-color - fumadocs-typescript@4.0.8(@types/react@19.1.9)(fumadocs-core@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.13))(typescript@5.8.3): + fumadocs-typescript@4.0.10(@types/react@19.1.16)(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3): dependencies: estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) hast-util-to-estree: 3.1.3 hast-util-to-jsx-runtime: 2.3.6 remark: 15.0.1 remark-rehype: 11.1.2 tinyglobby: 0.2.15 - ts-morph: 26.0.0 - typescript: 5.8.3 + ts-morph: 27.0.0 + typescript: 5.9.3 unist-util-visit: 5.0.0 optionalDependencies: - '@types/react': 19.1.9 - fumadocs-ui: 15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.13) + '@types/react': 19.1.16 + fumadocs-ui: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) transitivePeerDependencies: - supports-color - fumadocs-ui@15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.13): - dependencies: - '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.9)(react@19.1.1) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.7(@types/react@19.1.9))(@types/react@19.1.9)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + fumadocs-ui@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14): + dependencies: + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) class-variance-authority: 0.7.1 - fumadocs-core: 15.7.11(@tanstack/react-router@1.131.48(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.9)(next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) lodash.merge: 4.6.2 next-themes: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) postcss-selector-parser: 7.1.0 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-medium-image-zoom: 5.3.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react-medium-image-zoom: 5.4.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) scroll-into-view-if-needed: 3.1.0 tailwind-merge: 3.3.1 optionalDependencies: - '@types/react': 19.1.9 - next: 15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - tailwindcss: 4.1.13 + '@types/react': 19.1.16 + next: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + tailwindcss: 4.1.14 transitivePeerDependencies: - '@mixedbread/sdk' - '@oramacloud/client' @@ -15017,6 +13078,8 @@ snapshots: functions-have-names@1.2.3: {} + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -15038,8 +13101,6 @@ snapshots: get-package-type@0.1.0: {} - get-port-please@3.2.0: {} - get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -15047,8 +13108,6 @@ snapshots: get-stream@6.0.1: {} - get-stream@8.0.1: {} - get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 @@ -15059,15 +13118,6 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - giget@2.0.0: - dependencies: - citty: 0.1.6 - consola: 3.4.2 - defu: 6.1.4 - node-fetch-native: 1.6.7 - nypm: 0.6.2 - pathe: 2.0.3 - github-from-package@0.0.0: {} github-slugger@2.0.0: {} @@ -15111,15 +13161,6 @@ snapshots: define-properties: 1.2.1 gopd: 1.2.0 - globby@14.1.0: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.3 - ignore: 7.0.5 - path-type: 6.0.0 - slash: 5.1.0 - unicorn-magic: 0.3.0 - globrex@0.1.2: {} gopd@1.2.0: {} @@ -15128,34 +13169,21 @@ snapshots: graphemer@1.4.0: {} - gzip-size@7.0.0: - dependencies: - duplexer: 0.1.2 - - h3@1.13.0: + h3@2.0.0-beta.4: dependencies: - cookie-es: 1.2.2 - crossws: 0.3.5 - defu: 6.1.4 - destr: 2.0.5 - iron-webcrypto: 1.2.1 - ohash: 1.1.6 - radix3: 1.1.2 - ufo: 1.6.1 - uncrypto: 0.1.3 - unenv: 1.10.0 + cookie-es: 2.0.0 + fetchdts: 0.1.7 + rou3: 0.7.7 + srvx: 0.8.9 - h3@1.15.4: + handlebars@4.7.8: dependencies: - cookie-es: 1.2.2 - crossws: 0.3.5 - defu: 6.1.4 - destr: 2.0.5 - iron-webcrypto: 1.2.1 - node-mock-http: 1.0.3 - radix3: 1.1.2 - ufo: 1.6.1 - uncrypto: 0.1.3 + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 has-bigints@1.1.0: {} @@ -15255,8 +13283,6 @@ snapshots: highlight.js@11.11.1: {} - hookable@5.5.3: {} - html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -15274,36 +13300,22 @@ snapshots: domutils: 3.2.2 entities: 6.0.1 - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color - http-shutdown@1.2.2: {} - https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color - httpxy@0.1.7: {} - human-signals@2.1.0: {} - human-signals@5.0.0: {} - iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -15347,22 +13359,6 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - ioredis@5.7.0: - dependencies: - '@ioredis/commands': 1.4.0 - cluster-key-slot: 1.1.2 - debug: 4.4.1 - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - - iron-webcrypto@1.2.1: {} - is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -15378,9 +13374,6 @@ snapshots: is-arrayish@0.2.1: {} - is-arrayish@0.3.4: - optional: true - is-async-function@2.1.1: dependencies: async-function: 1.0.0 @@ -15425,10 +13418,6 @@ snapshots: is-decimal@2.0.1: {} - is-docker@2.2.1: {} - - is-docker@3.0.0: {} - is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -15439,9 +13428,10 @@ snapshots: is-generator-fn@2.1.0: {} - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -15452,14 +13442,8 @@ snapshots: is-hexadecimal@2.0.1: {} - is-inside-container@1.0.0: - dependencies: - is-docker: 3.0.0 - is-map@2.0.3: {} - is-module@1.0.0: {} - is-negative-zero@2.0.3: {} is-number-object@1.1.1: @@ -15475,10 +13459,6 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-reference@1.2.1: - dependencies: - '@types/estree': 1.0.8 - is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -15494,8 +13474,6 @@ snapshots: is-stream@2.0.1: {} - is-stream@3.0.0: {} - is-string@1.1.1: dependencies: call-bound: 1.0.4 @@ -15522,23 +13500,9 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 - - is-wsl@3.1.0: - dependencies: - is-inside-container: 1.0.0 - - is64bit@2.0.0: - dependencies: - system-architecture: 0.1.0 - - isarray@1.0.0: {} - isarray@2.0.5: {} - isbot@5.1.30: {} + isbot@5.1.31: {} isexe@2.0.0: {} @@ -15562,13 +13526,13 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: - '@jridgewell/trace-mapping': 0.3.29 - debug: 4.4.1 + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color - istanbul-reports@3.1.7: + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 @@ -15588,38 +13552,31 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.9.2: - dependencies: - async: 3.2.6 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - - jest-changed-files@30.0.5: + jest-changed-files@30.2.0: dependencies: execa: 5.1.1 - jest-util: 30.0.5 + jest-util: 30.2.0 p-limit: 3.1.0 - jest-circus@30.0.5: + jest-circus@30.2.0: dependencies: - '@jest/environment': 30.0.5 - '@jest/expect': 30.0.5 - '@jest/test-result': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 24.5.1 + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 chalk: 4.1.2 co: 4.6.0 - dedent: 1.6.0 + dedent: 1.7.0 is-generator-fn: 2.1.0 - jest-each: 30.0.5 - jest-matcher-utils: 30.0.5 - jest-message-util: 30.0.5 - jest-runtime: 30.0.5 - jest-snapshot: 30.0.5 - jest-util: 30.0.5 + jest-each: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-runtime: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 p-limit: 3.1.0 - pretty-format: 30.0.5 + pretty-format: 30.2.0 pure-rand: 7.0.1 slash: 3.0.0 stack-utils: 2.0.6 @@ -15627,17 +13584,17 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@30.0.5(@types/node@24.1.0): + jest-cli@30.2.0(@types/node@24.6.1): dependencies: - '@jest/core': 30.0.5 - '@jest/test-result': 30.0.5 - '@jest/types': 30.0.5 + '@jest/core': 30.2.0 + '@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.0.5(@types/node@24.1.0) - jest-util: 30.0.5 - jest-validate: 30.0.5 + jest-config: 30.2.0(@types/node@24.6.1) + jest-util: 30.2.0 + jest-validate: 30.2.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' @@ -15646,326 +13603,271 @@ snapshots: - supports-color - ts-node - jest-config@30.0.5(@types/node@24.1.0): - dependencies: - '@babel/core': 7.28.0 - '@jest/get-type': 30.0.1 - '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.0.5 - '@jest/types': 30.0.5 - babel-jest: 30.0.5(@babel/core@7.28.0) - chalk: 4.1.2 - ci-info: 4.3.0 - deepmerge: 4.3.1 - glob: 10.4.5 - graceful-fs: 4.2.11 - jest-circus: 30.0.5 - jest-docblock: 30.0.1 - jest-environment-node: 30.0.5 - jest-regex-util: 30.0.1 - jest-resolve: 30.0.5 - jest-runner: 30.0.5 - jest-util: 30.0.5 - jest-validate: 30.0.5 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 30.0.5 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 24.1.0 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-config@30.0.5(@types/node@24.5.1): + jest-config@30.2.0(@types/node@24.6.1): dependencies: - '@babel/core': 7.28.0 - '@jest/get-type': 30.0.1 + '@babel/core': 7.28.4 + '@jest/get-type': 30.1.0 '@jest/pattern': 30.0.1 - '@jest/test-sequencer': 30.0.5 - '@jest/types': 30.0.5 - babel-jest: 30.0.5(@babel/core@7.28.0) + '@jest/test-sequencer': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.4) chalk: 4.1.2 ci-info: 4.3.0 deepmerge: 4.3.1 glob: 10.4.5 graceful-fs: 4.2.11 - jest-circus: 30.0.5 - jest-docblock: 30.0.1 - jest-environment-node: 30.0.5 + 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.0.5 - jest-runner: 30.0.5 - jest-util: 30.0.5 - jest-validate: 30.0.5 + 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.0.5 + pretty-format: 30.2.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.6.1 transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-diff@30.0.5: + jest-diff@30.2.0: dependencies: '@jest/diff-sequences': 30.0.1 - '@jest/get-type': 30.0.1 + '@jest/get-type': 30.1.0 chalk: 4.1.2 - pretty-format: 30.0.5 + pretty-format: 30.2.0 - jest-docblock@30.0.1: + jest-docblock@30.2.0: dependencies: detect-newline: 3.1.0 - jest-each@30.0.5: + jest-each@30.2.0: dependencies: - '@jest/get-type': 30.0.1 - '@jest/types': 30.0.5 + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 chalk: 4.1.2 - jest-util: 30.0.5 - pretty-format: 30.0.5 + jest-util: 30.2.0 + pretty-format: 30.2.0 - jest-environment-jsdom@30.0.5: + jest-environment-jsdom@30.2.0: dependencies: - '@jest/environment': 30.0.5 - '@jest/environment-jsdom-abstract': 30.0.5(jsdom@26.1.0) + '@jest/environment': 30.2.0 + '@jest/environment-jsdom-abstract': 30.2.0(jsdom@26.1.0) '@types/jsdom': 21.1.7 - '@types/node': 24.1.0 + '@types/node': 24.6.1 jsdom: 26.1.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jest-environment-node@30.0.5: - dependencies: - '@jest/environment': 30.0.5 - '@jest/fake-timers': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 24.5.1 - jest-mock: 30.0.5 - jest-util: 30.0.5 - jest-validate: 30.0.5 - - jest-haste-map@30.0.5: + jest-environment-node@30.2.0: dependencies: - '@jest/types': 30.0.5 - '@types/node': 24.5.1 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 30.0.1 - jest-util: 30.0.5 - jest-worker: 30.0.5 - micromatch: 4.0.8 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 + jest-mock: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 - jest-haste-map@30.1.0: + jest-haste-map@30.2.0: dependencies: - '@jest/types': 30.0.5 - '@types/node': 24.5.1 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 30.0.1 - jest-util: 30.0.5 - jest-worker: 30.1.0 + jest-util: 30.2.0 + jest-worker: 30.2.0 micromatch: 4.0.8 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - jest-leak-detector@30.0.5: + jest-leak-detector@30.2.0: dependencies: - '@jest/get-type': 30.0.1 - pretty-format: 30.0.5 + '@jest/get-type': 30.1.0 + pretty-format: 30.2.0 - jest-matcher-utils@30.0.5: + jest-matcher-utils@30.2.0: dependencies: - '@jest/get-type': 30.0.1 + '@jest/get-type': 30.1.0 chalk: 4.1.2 - jest-diff: 30.0.5 - pretty-format: 30.0.5 + jest-diff: 30.2.0 + pretty-format: 30.2.0 - jest-message-util@30.0.5: + jest-message-util@30.2.0: dependencies: '@babel/code-frame': 7.27.1 - '@jest/types': 30.0.5 + '@jest/types': 30.2.0 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.8 - pretty-format: 30.0.5 + pretty-format: 30.2.0 slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@30.0.5: + jest-mock@30.2.0: dependencies: - '@jest/types': 30.0.5 - '@types/node': 24.5.1 - jest-util: 30.0.5 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 + jest-util: 30.2.0 - jest-pnp-resolver@1.2.3(jest-resolve@30.0.5): + jest-pnp-resolver@1.2.3(jest-resolve@30.2.0): optionalDependencies: - jest-resolve: 30.0.5 + jest-resolve: 30.2.0 jest-regex-util@30.0.1: {} - jest-resolve-dependencies@30.0.5: + jest-resolve-dependencies@30.2.0: dependencies: jest-regex-util: 30.0.1 - jest-snapshot: 30.0.5 + jest-snapshot: 30.2.0 transitivePeerDependencies: - supports-color - jest-resolve@30.0.5: + jest-resolve@30.2.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 30.0.5 - jest-pnp-resolver: 1.2.3(jest-resolve@30.0.5) - jest-util: 30.0.5 - jest-validate: 30.0.5 + jest-haste-map: 30.2.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0) + jest-util: 30.2.0 + jest-validate: 30.2.0 slash: 3.0.0 unrs-resolver: 1.11.1 - jest-runner@30.0.5: + jest-runner@30.2.0: dependencies: - '@jest/console': 30.0.5 - '@jest/environment': 30.0.5 - '@jest/test-result': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 24.5.1 + '@jest/console': 30.2.0 + '@jest/environment': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-docblock: 30.0.1 - jest-environment-node: 30.0.5 - jest-haste-map: 30.0.5 - jest-leak-detector: 30.0.5 - jest-message-util: 30.0.5 - jest-resolve: 30.0.5 - jest-runtime: 30.0.5 - jest-util: 30.0.5 - jest-watcher: 30.0.5 - jest-worker: 30.0.5 + jest-docblock: 30.2.0 + jest-environment-node: 30.2.0 + jest-haste-map: 30.2.0 + jest-leak-detector: 30.2.0 + jest-message-util: 30.2.0 + jest-resolve: 30.2.0 + jest-runtime: 30.2.0 + jest-util: 30.2.0 + jest-watcher: 30.2.0 + jest-worker: 30.2.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@30.0.5: + jest-runtime@30.2.0: dependencies: - '@jest/environment': 30.0.5 - '@jest/fake-timers': 30.0.5 - '@jest/globals': 30.0.5 + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/globals': 30.2.0 '@jest/source-map': 30.0.1 - '@jest/test-result': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 24.5.1 + '@jest/test-result': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 chalk: 4.1.2 cjs-module-lexer: 2.1.0 collect-v8-coverage: 1.0.2 glob: 10.4.5 graceful-fs: 4.2.11 - jest-haste-map: 30.0.5 - jest-message-util: 30.0.5 - jest-mock: 30.0.5 + jest-haste-map: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 jest-regex-util: 30.0.1 - jest-resolve: 30.0.5 - jest-snapshot: 30.0.5 - jest-util: 30.0.5 + jest-resolve: 30.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@30.0.5: + jest-snapshot@30.2.0: dependencies: - '@babel/core': 7.28.0 - '@babel/generator': 7.28.0 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) + '@babel/core': 7.28.4 + '@babel/generator': 7.28.3 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) '@babel/types': 7.28.4 - '@jest/expect-utils': 30.0.5 - '@jest/get-type': 30.0.1 - '@jest/snapshot-utils': 30.0.5 - '@jest/transform': 30.0.5 - '@jest/types': 30.0.5 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.0) + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.0 + '@jest/snapshot-utils': 30.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) chalk: 4.1.2 - expect: 30.0.5 + expect: 30.2.0 graceful-fs: 4.2.11 - jest-diff: 30.0.5 - jest-matcher-utils: 30.0.5 - jest-message-util: 30.0.5 - jest-util: 30.0.5 - pretty-format: 30.0.5 + jest-diff: 30.2.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + pretty-format: 30.2.0 semver: 7.7.2 synckit: 0.11.11 transitivePeerDependencies: - supports-color - jest-util@30.0.5: + jest-util@30.2.0: dependencies: - '@jest/types': 30.0.5 - '@types/node': 24.5.1 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 chalk: 4.1.2 ci-info: 4.3.0 graceful-fs: 4.2.11 picomatch: 4.0.3 - jest-validate@30.0.5: + jest-validate@30.2.0: dependencies: - '@jest/get-type': 30.0.1 - '@jest/types': 30.0.5 + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 camelcase: 6.3.0 chalk: 4.1.2 leven: 3.1.0 - pretty-format: 30.0.5 + pretty-format: 30.2.0 - jest-watcher@30.0.5: + jest-watcher@30.2.0: dependencies: - '@jest/test-result': 30.0.5 - '@jest/types': 30.0.5 - '@types/node': 24.5.1 + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 24.6.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 30.0.5 + jest-util: 30.2.0 string-length: 4.0.2 - jest-worker@30.0.5: - dependencies: - '@types/node': 24.5.1 - '@ungap/structured-clone': 1.3.0 - jest-util: 30.0.5 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest-worker@30.1.0: + jest-worker@30.2.0: dependencies: - '@types/node': 24.5.1 + '@types/node': 24.6.1 '@ungap/structured-clone': 1.3.0 - jest-util: 30.0.5 + jest-util: 30.2.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@30.0.5(@types/node@24.1.0): + jest@30.2.0(@types/node@24.6.1): dependencies: - '@jest/core': 30.0.5 - '@jest/types': 30.0.5 + '@jest/core': 30.2.0 + '@jest/types': 30.2.0 import-local: 3.2.0 - jest-cli: 30.0.5(@types/node@24.1.0) + jest-cli: 30.2.0(@types/node@24.6.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -15973,14 +13875,12 @@ snapshots: - supports-color - ts-node - jiti@2.5.1: {} + jiti@2.6.1: {} joycon@3.1.1: {} js-tokens@4.0.0: {} - js-tokens@9.0.1: {} - js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -15999,7 +13899,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.21 + nwsapi: 2.2.22 parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 @@ -16017,8 +13917,6 @@ snapshots: - supports-color - utf-8-validate - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -16050,13 +13948,7 @@ snapshots: dependencies: json-buffer: 3.0.1 - kleur@4.1.5: {} - - klona@2.0.6: {} - - knitwork@1.2.0: {} - - kysely@0.28.5: {} + kysely@0.28.7: {} language-subtag-registry@0.3.23: {} @@ -16064,10 +13956,6 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 - lazystream@1.0.1: - dependencies: - readable-stream: 2.3.8 - leven@3.1.0: {} levn@0.4.1: @@ -16107,7 +13995,7 @@ snapshots: lightningcss@1.30.1: dependencies: - detect-libc: 2.0.4 + detect-libc: 2.1.1 optionalDependencies: lightningcss-darwin-arm64: 1.30.1 lightningcss-darwin-x64: 1.30.1 @@ -16122,36 +14010,9 @@ snapshots: lilconfig@3.1.3: {} - lines-and-columns@1.2.4: {} - - listhen@1.9.0: - dependencies: - '@parcel/watcher': 2.5.1 - '@parcel/watcher-wasm': 2.5.1 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.4.2 - crossws: 0.3.5 - defu: 6.1.4 - get-port-please: 3.2.0 - h3: 1.15.4 - http-shutdown: 1.2.2 - jiti: 2.5.1 - mlly: 1.8.0 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.9.0 - ufo: 1.6.1 - untun: 0.1.3 - uqr: 0.1.2 - - load-tsconfig@0.2.5: {} + lines-and-columns@1.2.4: {} - local-pkg@1.1.2: - dependencies: - mlly: 1.8.0 - pkg-types: 2.3.0 - quansync: 0.2.11 + load-tsconfig@0.2.5: {} locate-path@5.0.0: dependencies: @@ -16163,24 +14024,14 @@ snapshots: lodash-es@4.17.21: {} - lodash.castarray@4.4.0: {} - lodash.debounce@4.0.8: {} - lodash.defaults@4.2.0: {} - - lodash.isarguments@3.1.0: {} - - lodash.isplainobject@4.0.6: {} - lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} lodash.sortby@4.7.0: {} - lodash@4.17.21: {} - longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -16195,7 +14046,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.1: {} + lru-cache@11.2.2: {} lru-cache@5.1.1: dependencies: @@ -16219,12 +14070,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magicast@0.3.5: - dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 - source-map-js: 1.2.1 - make-dir@4.0.0: dependencies: semver: 7.7.2 @@ -16683,7 +14528,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1 + debug: 4.4.3 decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -16707,20 +14552,8 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - mime-db@1.54.0: {} - - mime-types@3.0.1: - dependencies: - mime-db: 1.54.0 - - mime@3.0.0: {} - - mime@4.1.0: {} - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} - mimic-response@3.1.0: {} min-indent@1.0.1: {} @@ -16733,10 +14566,6 @@ snapshots: dependencies: brace-expansion: 1.1.12 - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.2 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.2 @@ -16745,21 +14574,12 @@ snapshots: minipass@7.1.2: {} - minizlib@3.0.2: + minizlib@3.1.0: dependencies: minipass: 7.1.2 mkdirp-classic@0.5.3: {} - mkdirp@3.0.1: {} - - mlly@1.7.4: - dependencies: - acorn: 8.15.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - mlly@1.8.0: dependencies: acorn: 8.15.0 @@ -16767,7 +14587,7 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.1 - motion-dom@12.23.12: + motion-dom@12.23.21: dependencies: motion-utils: 12.23.6 @@ -16783,28 +14603,30 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.5: {} + nanoid@5.1.6: {} napi-build-utils@2.0.0: {} - napi-postinstall@0.3.2: {} + napi-postinstall@0.3.3: {} natural-compare@1.4.0: {} negotiator@1.0.0: {} + neo-async@2.6.2: {} + next-themes@0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - next@15.3.4(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: '@next/env': 15.3.4 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001731 + caniuse-lite: 1.0.30001746 postcss: 8.4.31 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -16818,17 +14640,17 @@ snapshots: '@next/swc-linux-x64-musl': 15.3.4 '@next/swc-win32-arm64-msvc': 15.3.4 '@next/swc-win32-x64-msvc': 15.3.4 - '@playwright/test': 1.55.0 - sharp: 0.34.3 + '@playwright/test': 1.55.1 + sharp: 0.34.4 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@15.5.3(@playwright/test@1.55.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + next@15.5.3(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: '@next/env': 15.5.3 '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001731 + caniuse-lite: 1.0.30001746 postcss: 8.4.31 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -16842,143 +14664,22 @@ snapshots: '@next/swc-linux-x64-musl': 15.5.3 '@next/swc-win32-arm64-msvc': 15.5.3 '@next/swc-win32-x64-msvc': 15.5.3 - '@playwright/test': 1.55.0 - sharp: 0.34.3 + '@playwright/test': 1.55.1 + sharp: 0.34.4 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - nitropack@2.12.6(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)): - dependencies: - '@cloudflare/kv-asset-handler': 0.4.0 - '@rollup/plugin-alias': 5.1.1(rollup@4.51.0) - '@rollup/plugin-commonjs': 28.0.6(rollup@4.51.0) - '@rollup/plugin-inject': 5.0.5(rollup@4.51.0) - '@rollup/plugin-json': 6.1.0(rollup@4.51.0) - '@rollup/plugin-node-resolve': 16.0.1(rollup@4.51.0) - '@rollup/plugin-replace': 6.0.2(rollup@4.51.0) - '@rollup/plugin-terser': 0.4.4(rollup@4.51.0) - '@vercel/nft': 0.30.1(rollup@4.51.0) - archiver: 7.0.1 - c12: 3.3.0(magicast@0.3.5) - chokidar: 4.0.3 - citty: 0.1.6 - compatx: 0.2.0 - confbox: 0.2.2 - consola: 3.4.2 - cookie-es: 2.0.0 - croner: 9.1.0 - crossws: 0.3.5 - db0: 0.3.2(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) - defu: 6.1.4 - destr: 2.0.5 - dot-prop: 9.0.0 - esbuild: 0.25.9 - escape-string-regexp: 5.0.0 - etag: 1.8.1 - exsolve: 1.0.7 - globby: 14.1.0 - gzip-size: 7.0.0 - h3: 1.15.4 - hookable: 5.5.3 - httpxy: 0.1.7 - ioredis: 5.7.0 - jiti: 2.5.1 - klona: 2.0.6 - knitwork: 1.2.0 - listhen: 1.9.0 - magic-string: 0.30.19 - magicast: 0.3.5 - mime: 4.1.0 - mlly: 1.8.0 - node-fetch-native: 1.6.7 - node-mock-http: 1.0.3 - ofetch: 1.4.1 - ohash: 2.0.11 - pathe: 2.0.3 - perfect-debounce: 2.0.0 - pkg-types: 2.3.0 - pretty-bytes: 7.0.1 - radix3: 1.1.2 - rollup: 4.51.0 - rollup-plugin-visualizer: 6.0.3(rollup@4.51.0) - scule: 1.3.0 - semver: 7.7.2 - serve-placeholder: 2.0.2 - serve-static: 2.2.0 - source-map: 0.7.6 - std-env: 3.9.0 - ufo: 1.6.1 - ultrahtml: 1.6.0 - uncrypto: 0.1.3 - unctx: 2.4.1 - unenv: 2.0.0-rc.21 - unimport: 5.3.0 - unplugin-utils: 0.3.0 - unstorage: 1.17.1(db0@0.3.2(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)))(ioredis@5.7.0) - untyped: 2.0.0 - unwasm: 0.3.11 - youch: 4.1.0-beta.11 - youch-core: 0.3.3 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - better-sqlite3 - - drizzle-orm - - encoding - - idb-keyval - - mysql2 - - react-native-b4a - - rolldown - - sqlite3 - - supports-color - - uploadthing - - node-abi@3.75.0: + node-abi@3.77.0: dependencies: semver: 7.7.2 - node-addon-api@7.1.1: {} - node-cleanup@2.1.2: {} - node-fetch-native@1.6.7: {} - - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-forge@1.3.1: {} - - node-gyp-build@4.8.4: {} - node-int64@0.4.0: {} - node-mock-http@1.0.3: {} - - node-releases@2.0.19: {} - node-releases@2.0.21: {} - nopt@8.1.0: - dependencies: - abbrev: 3.0.1 - normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -16987,25 +14688,13 @@ snapshots: dependencies: path-key: 3.1.1 - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - npm-to-yarn@3.0.1: {} nth-check@2.1.1: dependencies: boolbase: 1.0.0 - nwsapi@2.2.21: {} - - nypm@0.6.2: - dependencies: - citty: 0.1.6 - consola: 3.4.2 - pathe: 2.0.3 - pkg-types: 2.3.0 - tinyexec: 1.0.1 + nwsapi@2.2.22: {} object-assign@4.1.1: {} @@ -17049,20 +14738,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - ofetch@1.4.1: - dependencies: - destr: 2.0.5 - node-fetch-native: 1.6.7 - ufo: 1.6.1 - - ohash@1.1.6: {} - - ohash@2.0.11: {} - - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -17071,10 +14746,6 @@ snapshots: dependencies: mimic-fn: 2.1.0 - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - oniguruma-parser@0.12.1: {} oniguruma-to-es@4.3.3: @@ -17083,12 +14754,6 @@ snapshots: regex: 6.0.1 regex-recursion: 6.0.2 - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -17106,23 +14771,23 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-transform@0.82.3: + oxc-transform@0.92.0: optionalDependencies: - '@oxc-transform/binding-android-arm64': 0.82.3 - '@oxc-transform/binding-darwin-arm64': 0.82.3 - '@oxc-transform/binding-darwin-x64': 0.82.3 - '@oxc-transform/binding-freebsd-x64': 0.82.3 - '@oxc-transform/binding-linux-arm-gnueabihf': 0.82.3 - '@oxc-transform/binding-linux-arm-musleabihf': 0.82.3 - '@oxc-transform/binding-linux-arm64-gnu': 0.82.3 - '@oxc-transform/binding-linux-arm64-musl': 0.82.3 - '@oxc-transform/binding-linux-riscv64-gnu': 0.82.3 - '@oxc-transform/binding-linux-s390x-gnu': 0.82.3 - '@oxc-transform/binding-linux-x64-gnu': 0.82.3 - '@oxc-transform/binding-linux-x64-musl': 0.82.3 - '@oxc-transform/binding-wasm32-wasi': 0.82.3 - '@oxc-transform/binding-win32-arm64-msvc': 0.82.3 - '@oxc-transform/binding-win32-x64-msvc': 0.82.3 + '@oxc-transform/binding-android-arm64': 0.92.0 + '@oxc-transform/binding-darwin-arm64': 0.92.0 + '@oxc-transform/binding-darwin-x64': 0.92.0 + '@oxc-transform/binding-freebsd-x64': 0.92.0 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.92.0 + '@oxc-transform/binding-linux-arm-musleabihf': 0.92.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.92.0 + '@oxc-transform/binding-linux-arm64-musl': 0.92.0 + '@oxc-transform/binding-linux-riscv64-gnu': 0.92.0 + '@oxc-transform/binding-linux-s390x-gnu': 0.92.0 + '@oxc-transform/binding-linux-x64-gnu': 0.92.0 + '@oxc-transform/binding-linux-x64-musl': 0.92.0 + '@oxc-transform/binding-wasm32-wasi': 0.92.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.92.0 + '@oxc-transform/binding-win32-x64-msvc': 0.92.0 p-limit@2.3.0: dependencies: @@ -17161,7 +14826,7 @@ snapshots: parse-json@5.2.0: dependencies: '@babel/code-frame': 7.27.1 - error-ex: 1.3.2 + error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -17178,8 +14843,6 @@ snapshots: dependencies: entities: 6.0.1 - parseurl@1.3.3: {} - path-browserify@1.0.1: {} path-exists@4.0.0: {} @@ -17188,8 +14851,6 @@ snapshots: path-key@3.1.1: {} - path-key@4.0.0: {} - path-parse@1.0.7: {} path-scurry@1.11.1: @@ -17197,18 +14858,12 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-type@6.0.0: {} - - pathe@1.1.2: {} - pathe@2.0.3: {} pause-stream@0.0.11: dependencies: through: 2.3.8 - perfect-debounce@2.0.0: {} - pg-cloudflare@1.2.7: optional: true @@ -17259,33 +14914,26 @@ snapshots: pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.7.4 - pathe: 2.0.3 - - pkg-types@2.3.0: - dependencies: - confbox: 0.2.2 - exsolve: 1.0.7 + mlly: 1.8.0 pathe: 2.0.3 - playwright-core@1.55.0: {} + playwright-core@1.55.1: {} - playwright@1.55.0: + playwright@1.55.1: dependencies: - playwright-core: 1.55.0 + playwright-core: 1.55.1 optionalDependencies: fsevents: 2.3.2 possible-typed-array-names@1.1.0: {} - postcss-load-config@6.0.1(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.1): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6): dependencies: lilconfig: 3.1.3 optionalDependencies: - jiti: 2.5.1 + jiti: 2.6.1 postcss: 8.5.6 - tsx: 4.20.3 - yaml: 2.8.1 + tsx: 4.20.6 postcss-selector-parser@6.0.10: dependencies: @@ -17323,32 +14971,30 @@ snapshots: prebuild-install@7.1.3: dependencies: - detect-libc: 2.0.4 + detect-libc: 2.1.1 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 - node-abi: 3.75.0 + node-abi: 3.77.0 pump: 3.0.3 rc: 1.2.8 simple-get: 4.0.1 - tar-fs: 2.1.3 + tar-fs: 2.1.4 tunnel-agent: 0.6.0 prelude-ls@1.2.1: {} prettier@3.6.2: {} - pretty-bytes@7.0.1: {} - pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@30.0.5: + pretty-format@30.2.0: dependencies: '@jest/schemas': 30.0.5 ansi-styles: 5.2.0 @@ -17360,10 +15006,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - process-nextick-args@2.0.1: {} - - process@0.11.10: {} - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -17382,24 +15024,31 @@ snapshots: prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 + prosemirror-drop-indicator@0.1.0: + dependencies: + '@ocavue/utils': 0.7.1 + prosemirror-model: 1.25.3 + prosemirror-state: 1.4.3 + prosemirror-view: 1.41.2 + prosemirror-dropcursor@1.8.2: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 + prosemirror-view: 1.41.2 prosemirror-gapcursor@1.3.2: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.3 prosemirror-state: 1.4.3 - prosemirror-view: 1.40.1 + prosemirror-view: 1.41.2 prosemirror-history@1.4.1: dependencies: prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 + prosemirror-view: 1.41.2 rope-sequence: 1.3.4 prosemirror-inputrules@1.5.0: @@ -17419,7 +15068,7 @@ snapshots: prosemirror-safari-ime-span@1.0.2: dependencies: prosemirror-state: 1.4.3 - prosemirror-view: 1.40.1 + prosemirror-view: 1.41.2 prosemirror-schema-list@1.5.1: dependencies: @@ -17431,31 +15080,31 @@ snapshots: dependencies: prosemirror-model: 1.25.3 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 + prosemirror-view: 1.41.2 - prosemirror-tables@1.7.1: + prosemirror-tables@1.8.1: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.3 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - prosemirror-view: 1.40.1 + prosemirror-view: 1.41.2 prosemirror-transform@1.10.4: dependencies: prosemirror-model: 1.25.3 - prosemirror-view@1.40.1: + prosemirror-view@1.41.2: dependencies: prosemirror-model: 1.25.3 prosemirror-state: 1.4.3 prosemirror-transform: 1.10.4 - prosemirror-virtual-cursor@0.4.2(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.40.1): + prosemirror-virtual-cursor@0.4.2(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.41.2): optionalDependencies: prosemirror-model: 1.25.3 prosemirror-state: 1.4.3 - prosemirror-view: 1.40.1 + prosemirror-view: 1.41.2 ps-tree@1.2.0: dependencies: @@ -17470,23 +15119,8 @@ snapshots: pure-rand@7.0.1: {} - quansync@0.2.11: {} - queue-microtask@1.2.3: {} - radix3@1.1.2: {} - - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - range-parser@1.2.1: {} - - rc9@2.1.2: - dependencies: - defu: 6.1.4 - destr: 2.0.5 - rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -17494,7 +15128,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-day-picker@9.8.1(react@19.1.1): + react-day-picker@9.11.0(react@19.1.1): dependencies: '@date-fns/tz': 1.4.1 date-fns: 4.1.0 @@ -17520,11 +15154,11 @@ snapshots: react-is@18.3.1: {} - react-markdown@10.1.0(@types/react@19.1.9)(react@19.1.1): + react-markdown@10.1.0(@types/react@19.1.16)(react@19.1.1): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.1.9 + '@types/react': 19.1.16 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 @@ -17538,39 +15172,39 @@ snapshots: transitivePeerDependencies: - supports-color - react-medium-image-zoom@5.3.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-medium-image-zoom@5.4.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) react-refresh@0.17.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.9)(react@19.1.1): + react-remove-scroll-bar@2.3.8(@types/react@19.1.16)(react@19.1.1): dependencies: react: 19.1.1 - react-style-singleton: 2.2.3(@types/react@19.1.9)(react@19.1.1) + react-style-singleton: 2.2.3(@types/react@19.1.16)(react@19.1.1) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - react-remove-scroll@2.7.1(@types/react@19.1.9)(react@19.1.1): + react-remove-scroll@2.7.1(@types/react@19.1.16)(react@19.1.1): dependencies: react: 19.1.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.9)(react@19.1.1) - react-style-singleton: 2.2.3(@types/react@19.1.9)(react@19.1.1) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.16)(react@19.1.1) + react-style-singleton: 2.2.3(@types/react@19.1.16)(react@19.1.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.9)(react@19.1.1) - use-sidecar: 1.1.3(@types/react@19.1.9)(react@19.1.1) + use-callback-ref: 1.3.3(@types/react@19.1.16)(react@19.1.1) + use-sidecar: 1.1.3(@types/react@19.1.16)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - react-router-dom@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-router-dom@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-router: 7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react-router: 7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - react-router@7.9.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: cookie: 1.0.2 react: 19.1.1 @@ -17578,44 +15212,22 @@ snapshots: optionalDependencies: react-dom: 19.1.1(react@19.1.1) - react-style-singleton@2.2.3(@types/react@19.1.9)(react@19.1.1): + react-style-singleton@2.2.3(@types/react@19.1.16)(react@19.1.1): dependencies: get-nonce: 1.0.1 react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 react@19.1.1: {} - readable-stream@2.3.8: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - readable-stream@4.7.0: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - - readdir-glob@1.1.3: - dependencies: - minimatch: 5.1.6 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -17664,12 +15276,6 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - redis-errors@1.2.0: {} - - redis-parser@3.0.0: - dependencies: - redis-errors: 1.2.0 - reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -17706,20 +15312,20 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpu-core@6.3.1: + regexpu-core@6.4.0: dependencies: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.12.0 + regjsparser: 0.13.0 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 regjsgen@0.8.0: {} - regjsparser@0.12.0: + regjsparser@0.13.0: dependencies: - jsesc: 3.0.2 + jsesc: 3.1.0 rehype-highlight@7.0.2: dependencies: @@ -17832,73 +15438,39 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-visualizer@6.0.3(rollup@4.51.0): - dependencies: - open: 8.4.2 - picomatch: 4.0.3 - source-map: 0.7.6 - yargs: 17.7.2 - optionalDependencies: - rollup: 4.51.0 - - rollup@4.46.2: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.46.2 - '@rollup/rollup-android-arm64': 4.46.2 - '@rollup/rollup-darwin-arm64': 4.46.2 - '@rollup/rollup-darwin-x64': 4.46.2 - '@rollup/rollup-freebsd-arm64': 4.46.2 - '@rollup/rollup-freebsd-x64': 4.46.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.46.2 - '@rollup/rollup-linux-arm-musleabihf': 4.46.2 - '@rollup/rollup-linux-arm64-gnu': 4.46.2 - '@rollup/rollup-linux-arm64-musl': 4.46.2 - '@rollup/rollup-linux-loongarch64-gnu': 4.46.2 - '@rollup/rollup-linux-ppc64-gnu': 4.46.2 - '@rollup/rollup-linux-riscv64-gnu': 4.46.2 - '@rollup/rollup-linux-riscv64-musl': 4.46.2 - '@rollup/rollup-linux-s390x-gnu': 4.46.2 - '@rollup/rollup-linux-x64-gnu': 4.46.2 - '@rollup/rollup-linux-x64-musl': 4.46.2 - '@rollup/rollup-win32-arm64-msvc': 4.46.2 - '@rollup/rollup-win32-ia32-msvc': 4.46.2 - '@rollup/rollup-win32-x64-msvc': 4.46.2 - fsevents: 2.3.3 - - rollup@4.51.0: + rollup@4.52.3: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.51.0 - '@rollup/rollup-android-arm64': 4.51.0 - '@rollup/rollup-darwin-arm64': 4.51.0 - '@rollup/rollup-darwin-x64': 4.51.0 - '@rollup/rollup-freebsd-arm64': 4.51.0 - '@rollup/rollup-freebsd-x64': 4.51.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.51.0 - '@rollup/rollup-linux-arm-musleabihf': 4.51.0 - '@rollup/rollup-linux-arm64-gnu': 4.51.0 - '@rollup/rollup-linux-arm64-musl': 4.51.0 - '@rollup/rollup-linux-loong64-gnu': 4.51.0 - '@rollup/rollup-linux-ppc64-gnu': 4.51.0 - '@rollup/rollup-linux-riscv64-gnu': 4.51.0 - '@rollup/rollup-linux-riscv64-musl': 4.51.0 - '@rollup/rollup-linux-s390x-gnu': 4.51.0 - '@rollup/rollup-linux-x64-gnu': 4.51.0 - '@rollup/rollup-linux-x64-musl': 4.51.0 - '@rollup/rollup-openharmony-arm64': 4.51.0 - '@rollup/rollup-win32-arm64-msvc': 4.51.0 - '@rollup/rollup-win32-ia32-msvc': 4.51.0 - '@rollup/rollup-win32-x64-msvc': 4.51.0 + '@rollup/rollup-android-arm-eabi': 4.52.3 + '@rollup/rollup-android-arm64': 4.52.3 + '@rollup/rollup-darwin-arm64': 4.52.3 + '@rollup/rollup-darwin-x64': 4.52.3 + '@rollup/rollup-freebsd-arm64': 4.52.3 + '@rollup/rollup-freebsd-x64': 4.52.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.3 + '@rollup/rollup-linux-arm-musleabihf': 4.52.3 + '@rollup/rollup-linux-arm64-gnu': 4.52.3 + '@rollup/rollup-linux-arm64-musl': 4.52.3 + '@rollup/rollup-linux-loong64-gnu': 4.52.3 + '@rollup/rollup-linux-ppc64-gnu': 4.52.3 + '@rollup/rollup-linux-riscv64-gnu': 4.52.3 + '@rollup/rollup-linux-riscv64-musl': 4.52.3 + '@rollup/rollup-linux-s390x-gnu': 4.52.3 + '@rollup/rollup-linux-x64-gnu': 4.52.3 + '@rollup/rollup-linux-x64-musl': 4.52.3 + '@rollup/rollup-openharmony-arm64': 4.52.3 + '@rollup/rollup-win32-arm64-msvc': 4.52.3 + '@rollup/rollup-win32-ia32-msvc': 4.52.3 + '@rollup/rollup-win32-x64-gnu': 4.52.3 + '@rollup/rollup-win32-x64-msvc': 4.52.3 fsevents: 2.3.3 rope-sequence@1.3.4: {} rou3@0.5.1: {} - rou3@0.7.5: {} + rou3@0.7.7: {} rrweb-cssom@0.8.0: {} @@ -17914,8 +15486,6 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 - safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} safe-push-apply@1.0.0: @@ -17941,51 +15511,16 @@ snapshots: dependencies: compute-scroll-into-view: 3.1.1 - scule@1.3.0: {} - semver@6.3.1: {} semver@7.7.2: {} - send@1.2.0: - dependencies: - debug: 4.4.1 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 2.0.0 - http-errors: 2.0.0 - mime-types: 3.0.1 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - seroval-plugins@1.3.3(seroval@1.3.2): dependencies: seroval: 1.3.2 seroval@1.3.2: {} - serve-placeholder@2.0.2: - dependencies: - defu: 6.1.4 - - serve-static@2.2.0: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 1.2.0 - transitivePeerDependencies: - - supports-color - set-cookie-parser@2.7.1: {} set-function-length@1.2.2: @@ -18010,36 +15545,34 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 - setprototypeof@1.2.0: {} - - sharp@0.34.3: + sharp@0.34.4: dependencies: - color: 4.2.3 - detect-libc: 2.0.4 + '@img/colour': 1.0.0 + detect-libc: 2.1.1 semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.3 - '@img/sharp-darwin-x64': 0.34.3 - '@img/sharp-libvips-darwin-arm64': 1.2.0 - '@img/sharp-libvips-darwin-x64': 1.2.0 - '@img/sharp-libvips-linux-arm': 1.2.0 - '@img/sharp-libvips-linux-arm64': 1.2.0 - '@img/sharp-libvips-linux-ppc64': 1.2.0 - '@img/sharp-libvips-linux-s390x': 1.2.0 - '@img/sharp-libvips-linux-x64': 1.2.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 - '@img/sharp-libvips-linuxmusl-x64': 1.2.0 - '@img/sharp-linux-arm': 0.34.3 - '@img/sharp-linux-arm64': 0.34.3 - '@img/sharp-linux-ppc64': 0.34.3 - '@img/sharp-linux-s390x': 0.34.3 - '@img/sharp-linux-x64': 0.34.3 - '@img/sharp-linuxmusl-arm64': 0.34.3 - '@img/sharp-linuxmusl-x64': 0.34.3 - '@img/sharp-wasm32': 0.34.3 - '@img/sharp-win32-arm64': 0.34.3 - '@img/sharp-win32-ia32': 0.34.3 - '@img/sharp-win32-x64': 0.34.3 + '@img/sharp-darwin-arm64': 0.34.4 + '@img/sharp-darwin-x64': 0.34.4 + '@img/sharp-libvips-darwin-arm64': 1.2.3 + '@img/sharp-libvips-darwin-x64': 1.2.3 + '@img/sharp-libvips-linux-arm': 1.2.3 + '@img/sharp-libvips-linux-arm64': 1.2.3 + '@img/sharp-libvips-linux-ppc64': 1.2.3 + '@img/sharp-libvips-linux-s390x': 1.2.3 + '@img/sharp-libvips-linux-x64': 1.2.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + '@img/sharp-linux-arm': 0.34.4 + '@img/sharp-linux-arm64': 0.34.4 + '@img/sharp-linux-ppc64': 0.34.4 + '@img/sharp-linux-s390x': 0.34.4 + '@img/sharp-linux-x64': 0.34.4 + '@img/sharp-linuxmusl-arm64': 0.34.4 + '@img/sharp-linuxmusl-x64': 0.34.4 + '@img/sharp-wasm32': 0.34.4 + '@img/sharp-win32-arm64': 0.34.4 + '@img/sharp-win32-ia32': 0.34.4 + '@img/sharp-win32-x64': 0.34.4 optional: true shebang-command@2.0.0: @@ -18048,14 +15581,14 @@ snapshots: shebang-regex@3.0.0: {} - shiki@3.12.2: + shiki@3.13.0: dependencies: - '@shikijs/core': 3.12.2 - '@shikijs/engine-javascript': 3.12.2 - '@shikijs/engine-oniguruma': 3.12.2 - '@shikijs/langs': 3.12.2 - '@shikijs/themes': 3.12.2 - '@shikijs/types': 3.12.2 + '@shikijs/core': 3.13.0 + '@shikijs/engine-javascript': 3.13.0 + '@shikijs/engine-oniguruma': 3.13.0 + '@shikijs/langs': 3.13.0 + '@shikijs/themes': 3.13.0 + '@shikijs/types': 3.13.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -18099,17 +15632,8 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 - simple-swizzle@0.2.4: - dependencies: - is-arrayish: 0.3.4 - optional: true - slash@3.0.0: {} - slash@5.1.0: {} - - smob@1.5.0: {} - sonner@2.0.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: react: 19.1.1 @@ -18122,11 +15646,6 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 - source-map-support@0.5.21: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - source-map@0.6.1: {} source-map@0.7.6: {} @@ -18145,20 +15664,16 @@ snapshots: sprintf-js@1.0.3: {} + srvx@0.8.9: + dependencies: + cookie-es: 2.0.0 + stable-hash@0.0.5: {} stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - standard-as-callback@2.1.0: {} - - statuses@2.0.1: {} - - statuses@2.0.2: {} - - std-env@3.9.0: {} - stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -18170,15 +15685,6 @@ snapshots: streamsearch@1.1.0: {} - streamx@2.22.1: - dependencies: - fast-fifo: 1.3.2 - text-decoder: 1.2.3 - optionalDependencies: - bare-events: 2.6.1 - transitivePeerDependencies: - - react-native-b4a - string-argv@0.3.2: {} string-length@4.0.2: @@ -18196,7 +15702,7 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 string.prototype.includes@2.0.1: dependencies: @@ -18248,10 +15754,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -18265,9 +15767,9 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.1.0 + ansi-regex: 6.2.2 strip-bom@3.0.0: {} @@ -18275,8 +15777,6 @@ snapshots: strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} - strip-indent@3.0.0: dependencies: min-indent: 1.0.1 @@ -18285,10 +15785,6 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@3.0.0: - dependencies: - js-tokens: 9.0.1 - style-mod@4.1.2: {} style-to-js@1.1.17: @@ -18306,7 +15802,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/gen-mapping': 0.3.13 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -18314,8 +15810,6 @@ snapshots: pirates: 4.0.7 ts-interface-checker: 0.1.13 - supports-color@10.2.2: {} - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -18332,19 +15826,17 @@ snapshots: dependencies: '@pkgr/core': 0.2.9 - system-architecture@0.1.0: {} - tailwind-merge@3.3.1: {} - tailwindcss-animate@1.0.7(tailwindcss@4.1.13): + tailwindcss-animate@1.0.7(tailwindcss@4.1.14): dependencies: - tailwindcss: 4.1.13 + tailwindcss: 4.1.14 - tailwindcss@4.1.13: {} + tailwindcss@4.1.14: {} tapable@2.2.3: {} - tar-fs@2.1.3: + tar-fs@2.1.4: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 @@ -18359,42 +15851,20 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - tar-stream@3.1.7: - dependencies: - b4a: 1.7.1 - fast-fifo: 1.3.2 - streamx: 2.22.1 - transitivePeerDependencies: - - react-native-b4a - - tar@7.4.3: + tar@7.5.1: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 minipass: 7.1.2 - minizlib: 3.0.2 - mkdirp: 3.0.1 + minizlib: 3.1.0 yallist: 5.0.0 - terser@5.44.0: - dependencies: - '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 - test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 - text-decoder@1.2.3: - dependencies: - b4a: 1.7.1 - transitivePeerDependencies: - - react-native-b4a - text-table@0.2.0: {} thenify-all@1.6.0: @@ -18432,14 +15902,10 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} - tough-cookie@5.1.2: dependencies: tldts: 6.1.86 - tr46@0.0.3: {} - tr46@1.0.1: dependencies: punycode: 2.3.1 @@ -18458,45 +15924,54 @@ snapshots: dependencies: typescript: 5.8.3 + ts-api-utils@2.1.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + ts-interface-checker@0.1.13: {} - ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@30.1.2)(@jest/types@30.0.5)(babel-jest@30.1.2(@babel/core@7.28.0))(esbuild@0.25.9)(jest-util@30.0.5)(jest@30.0.5(@types/node@24.1.0))(typescript@5.8.3): + ts-jest@29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.10)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 - ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 30.0.5(@types/node@24.1.0) + handlebars: 4.7.8 + jest: 30.2.0(@types/node@24.6.1) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.7.2 type-fest: 4.41.0 - typescript: 5.8.3 + typescript: 5.9.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.28.0 - '@jest/transform': 30.1.2 - '@jest/types': 30.0.5 - babel-jest: 30.1.2(@babel/core@7.28.0) - esbuild: 0.25.9 - jest-util: 30.0.5 + '@babel/core': 7.28.4 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + babel-jest: 30.2.0(@babel/core@7.28.4) + esbuild: 0.25.10 + jest-util: 30.2.0 ts-morph@26.0.0: dependencies: '@ts-morph/common': 0.27.0 code-block-writer: 13.0.3 - tsc-watch@7.1.1(typescript@5.8.3): + ts-morph@27.0.0: + dependencies: + '@ts-morph/common': 0.28.0 + code-block-writer: 13.0.3 + + tsc-watch@7.2.0(typescript@5.9.3): dependencies: cross-spawn: 7.0.6 node-cleanup: 2.1.2 ps-tree: 1.2.0 string-argv: 0.3.2 - typescript: 5.8.3 + typescript: 5.9.3 - tsconfck@3.1.6(typescript@5.9.2): + tsconfck@3.1.6(typescript@5.9.3): optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 tsconfig-paths@3.15.0: dependencies: @@ -18507,20 +15982,20 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.0(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.3)(typescript@5.8.3)(yaml@2.8.1): + tsup@8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3): dependencies: - bundle-require: 5.1.0(esbuild@0.25.9) + bundle-require: 5.1.0(esbuild@0.25.10) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 - debug: 4.4.1 - esbuild: 0.25.9 + debug: 4.4.3 + esbuild: 0.25.10 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.1) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6) resolve-from: 5.0.0 - rollup: 4.46.2 + rollup: 4.52.3 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 @@ -18528,16 +16003,16 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: postcss: 8.5.6 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - tsx@4.20.3: + tsx@4.20.6: dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -18546,34 +16021,34 @@ snapshots: dependencies: safe-buffer: 5.2.1 - turbo-darwin-64@2.5.5: + turbo-darwin-64@2.5.8: optional: true - turbo-darwin-arm64@2.5.5: + turbo-darwin-arm64@2.5.8: optional: true - turbo-linux-64@2.5.5: + turbo-linux-64@2.5.8: optional: true - turbo-linux-arm64@2.5.5: + turbo-linux-arm64@2.5.8: optional: true - turbo-windows-64@2.5.5: + turbo-windows-64@2.5.8: optional: true - turbo-windows-arm64@2.5.5: + turbo-windows-arm64@2.5.8: optional: true - turbo@2.5.5: + turbo@2.5.8: optionalDependencies: - turbo-darwin-64: 2.5.5 - turbo-darwin-arm64: 2.5.5 - turbo-linux-64: 2.5.5 - turbo-linux-arm64: 2.5.5 - turbo-windows-64: 2.5.5 - turbo-windows-arm64: 2.5.5 + turbo-darwin-64: 2.5.8 + turbo-darwin-arm64: 2.5.8 + turbo-linux-64: 2.5.8 + turbo-linux-arm64: 2.5.8 + turbo-windows-64: 2.5.8 + turbo-windows-arm64: 2.5.8 - tw-animate-css@1.3.8: {} + tw-animate-css@1.4.0: {} type-check@0.4.0: dependencies: @@ -18620,24 +16095,25 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3): + typescript-eslint@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.8.3) - eslint: 9.35.0(jiti@2.5.1) + '@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) + eslint: 9.36.0(jiti@2.6.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color typescript@5.8.3: {} - typescript@5.9.2: {} + typescript@5.9.3: {} ufo@1.6.1: {} - ultrahtml@1.6.0: {} + uglify-js@3.19.3: + optional: true unbox-primitive@1.1.0: dependencies: @@ -18648,37 +16124,14 @@ snapshots: uncrypto@0.1.3: {} - unctx@2.4.1: - dependencies: - acorn: 8.15.0 - estree-walker: 3.0.3 - magic-string: 0.30.19 - unplugin: 2.3.10 - undici-types@6.21.0: {} - undici-types@7.12.0: {} + undici-types@7.13.0: {} undici-types@7.8.0: {} undici@7.16.0: {} - unenv@1.10.0: - dependencies: - consola: 3.4.2 - defu: 6.1.4 - mime: 3.0.0 - node-fetch-native: 1.6.7 - pathe: 1.1.2 - - unenv@2.0.0-rc.21: - dependencies: - defu: 6.1.4 - exsolve: 1.0.7 - ohash: 2.0.11 - pathe: 2.0.3 - ufo: 1.6.1 - unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -18690,8 +16143,6 @@ snapshots: unicode-property-aliases-ecmascript@2.2.0: {} - unicorn-magic@0.3.0: {} - unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -18702,23 +16153,6 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unimport@5.3.0: - dependencies: - acorn: 8.15.0 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - local-pkg: 1.1.2 - magic-string: 0.30.19 - mlly: 1.8.0 - pathe: 2.0.3 - picomatch: 4.0.3 - pkg-types: 2.3.0 - scule: 1.3.0 - strip-literal: 3.0.0 - tinyglobby: 0.2.15 - unplugin: 2.3.10 - unplugin-utils: 0.3.0 - unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -18756,11 +16190,6 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - unplugin-utils@0.3.0: - dependencies: - pathe: 2.0.3 - picomatch: 4.0.3 - unplugin@2.3.10: dependencies: '@jridgewell/remapping': 2.3.5 @@ -18770,7 +16199,7 @@ snapshots: unrs-resolver@1.11.1: dependencies: - napi-postinstall: 0.3.2 + napi-postinstall: 0.3.3 optionalDependencies: '@unrs/resolver-binding-android-arm-eabi': 1.11.1 '@unrs/resolver-binding-android-arm64': 1.11.1 @@ -18792,75 +16221,30 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unstorage@1.17.1(db0@0.3.2(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)))(ioredis@5.7.0): - dependencies: - anymatch: 3.1.3 - chokidar: 4.0.3 - destr: 2.0.5 - h3: 1.15.4 - lru-cache: 10.4.3 - node-fetch-native: 1.6.7 - ofetch: 1.4.1 - ufo: 1.6.1 - optionalDependencies: - db0: 0.3.2(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.13)(better-sqlite3@11.10.0)(bun-types@1.2.21(@types/react@19.1.13))(kysely@0.28.5)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) - ioredis: 5.7.0 - - untun@0.1.3: - dependencies: - citty: 0.1.6 - consola: 3.4.2 - pathe: 1.1.2 - - untyped@2.0.0: - dependencies: - citty: 0.1.6 - defu: 6.1.4 - jiti: 2.5.1 - knitwork: 1.2.0 - scule: 1.3.0 - - unwasm@0.3.11: - dependencies: - knitwork: 1.2.0 - magic-string: 0.30.19 - mlly: 1.8.0 - pathe: 2.0.3 - pkg-types: 2.3.0 - unplugin: 2.3.10 - - update-browserslist-db@1.1.3(browserslist@4.25.1): - dependencies: - browserslist: 4.25.1 - escalade: 3.2.0 - picocolors: 1.1.1 - - update-browserslist-db@1.1.3(browserslist@4.26.2): + update-browserslist-db@1.1.3(browserslist@4.26.3): dependencies: - browserslist: 4.26.2 + browserslist: 4.26.3 escalade: 3.2.0 picocolors: 1.1.1 - uqr@0.1.2: {} - uri-js@4.4.1: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@19.1.9)(react@19.1.1): + use-callback-ref@1.3.3(@types/react@19.1.16)(react@19.1.1): dependencies: react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 - use-sidecar@1.1.3(@types/react@19.1.9)(react@19.1.1): + use-sidecar@1.1.3(@types/react@19.1.16)(react@19.1.1): dependencies: detect-node-es: 1.1.0 react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.9 + '@types/react': 19.1.16 use-sync-external-store@1.5.0(react@19.1.1): dependencies: @@ -18870,7 +16254,7 @@ snapshots: v8-to-istanbul@9.3.0: dependencies: - '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/trace-mapping': 0.3.31 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 @@ -18897,65 +16281,61 @@ snapshots: fast-glob: 3.3.3 magic-string: 0.30.19 - vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)): dependencies: - debug: 4.4.1 + debug: 4.4.3 globrex: 0.1.2 - tsconfck: 3.1.6(typescript@5.9.2) + tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) transitivePeerDependencies: - supports-color - typescript - vite@7.1.5(@types/node@24.0.3)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): + vite@7.1.7(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6): dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.46.2 + rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 24.0.3 fsevents: 2.3.3 - jiti: 2.5.1 + jiti: 2.6.1 lightningcss: 1.30.1 - terser: 5.44.0 - tsx: 4.20.3 - yaml: 2.8.1 + tsx: 4.20.6 optional: true - vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1): + vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6): dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.46.2 + rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.5.1 + '@types/node': 24.6.1 fsevents: 2.3.3 - jiti: 2.5.1 + jiti: 2.6.1 lightningcss: 1.30.1 - terser: 5.44.0 - tsx: 4.20.3 - yaml: 2.8.1 + tsx: 4.20.6 - vitefu@1.1.1(vite@7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1)): + vitefu@1.1.1(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)): optionalDependencies: - vite: 7.1.5(@types/node@24.5.1)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.3)(yaml@2.8.1) + vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) - vue@3.5.18(typescript@5.8.3): + vue@3.5.22(typescript@5.9.3): dependencies: - '@vue/compiler-dom': 3.5.18 - '@vue/compiler-sfc': 3.5.18 - '@vue/runtime-dom': 3.5.18 - '@vue/server-renderer': 3.5.18(vue@3.5.18(typescript@5.8.3)) - '@vue/shared': 3.5.18 + '@vue/compiler-dom': 3.5.22 + '@vue/compiler-sfc': 3.5.22 + '@vue/runtime-dom': 3.5.22 + '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.9.3)) + '@vue/shared': 3.5.22 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 w3c-keyname@2.2.8: {} @@ -18967,8 +16347,6 @@ snapshots: dependencies: makeerror: 1.0.12 - webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} webidl-conversions@7.0.0: {} @@ -18986,11 +16364,6 @@ snapshots: tr46: 5.1.1 webidl-conversions: 7.0.0 - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 @@ -19013,7 +16386,7 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 @@ -19044,6 +16417,8 @@ snapshots: word-wrap@1.2.5: {} + wordwrap@1.0.0: {} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -19052,9 +16427,9 @@ snapshots: wrap-ansi@8.1.0: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 5.1.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 wrappy@1.0.2: {} @@ -19084,9 +16459,6 @@ snapshots: yallist@5.0.0: {} - yaml@2.8.1: - optional: true - yargs-parser@21.1.1: {} yargs@17.7.2: @@ -19101,29 +16473,8 @@ snapshots: yocto-queue@0.1.0: {} - youch-core@0.3.3: - dependencies: - '@poppinss/exception': 1.2.2 - error-stack-parser-es: 1.0.5 - - youch@4.1.0-beta.11: - dependencies: - '@poppinss/colors': 4.1.5 - '@poppinss/dumper': 0.6.4 - '@speed-highlight/core': 1.2.7 - cookie: 1.0.2 - youch-core: 0.3.3 - - zip-stream@6.0.1: - dependencies: - archiver-utils: 5.0.2 - compress-commons: 6.0.2 - readable-stream: 4.7.0 - zod@3.25.76: {} - zod@4.1.8: {} - - zod@4.1.9: {} + zod@4.1.11: {} zwitch@2.0.4: {} From 2b5466d763c3b446295ee62b3303dfe95951e84a Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Thu, 2 Oct 2025 13:50:21 -0400 Subject: [PATCH 02/15] feat: router rework --- .../nextjs/app/posts/[[...all]]/page.tsx | 50 +- apps/examples/tanstack/package.json | 8 +- apps/examples/tanstack/src/routeTree.gen.ts | 55 +- e2e/README.md | 1 + packages/better-blog/package.json | 76 +- .../components/better-blog/blog-meta-tags.tsx | 4 +- .../better-blog/blog-router-page.tsx | 23 +- .../components/better-blog/default-error.tsx | 3 +- .../src/providers/memory/memory-provider.ts | 7 +- .../src/router/blog-router-client.tsx | 73 + packages/better-blog/src/router/index.ts | 4 - .../src/router/pluggable-routes.tsx | 132 +- packages/better-blog/src/router/router.ts | 37 +- packages/better-blog/src/router/routes.ts | 115 +- .../better-blog/src/router/tanstack-head.ts | 2 +- .../src/server/pages/server-adapter.tsx | 2 +- packages/better-blog/src/types/index.ts | 2 +- packages/better-blog/tsup.config.ts | 2 +- pnpm-lock.yaml | 3259 +++++++++++++---- 19 files changed, 2935 insertions(+), 920 deletions(-) diff --git a/apps/examples/nextjs/app/posts/[[...all]]/page.tsx b/apps/examples/nextjs/app/posts/[[...all]]/page.tsx index ba2ca2f..99d89ef 100644 --- a/apps/examples/nextjs/app/posts/[[...all]]/page.tsx +++ b/apps/examples/nextjs/app/posts/[[...all]]/page.tsx @@ -3,28 +3,32 @@ import { getOrCreateQueryClient } from "@/lib/query-client" import { HydrationBoundary, dehydrate } from "@tanstack/react-query" import { BlogPageRouter } from "better-blog/client" import { matchRoute } from "better-blog/router" -import { prefetchBlogData } from "better-blog/server/pages" +import { + createBlogServerAdapter, + prefetchBlogData +} from "better-blog/server/pages" +import type { Metadata } from "next" // Create query client for React Query const queryClient = getOrCreateQueryClient() -// // Create the server adapter -// const serverAdapter = createBlogServerAdapter({ -// // Must be a promise or value; we resolve provider at runtime -// provider: await getProvider(), -// queryClient -// }) +// Create the server adapter +const serverAdapter = createBlogServerAdapter({ + // Must be a promise or value; we resolve provider at runtime + provider: await getProvider(), + queryClient +}) -// // Export the required Next.js functions -// export const generateStaticParams = serverAdapter.generateStaticParams -// export const generateMetadata: (context: { -// params: Promise<{ all: string[] | undefined }> -// }) => Promise = async ({ params }) => { -// const { all } = await params -// return serverAdapter.generateNextMetadata( -// all?.join("/") -// ) as unknown as Metadata -// } +// Export the required Next.js functions +export const generateStaticParams = serverAdapter.generateStaticParams +export const generateMetadata: (context: { + params: Promise<{ all: string[] | undefined }> +}) => Promise = async ({ params }) => { + const { all } = await params + return serverAdapter.generateNextMetadata( + all?.join("/") + ) as Metadata +} // Main page component export default async function BlogPage({ @@ -33,9 +37,6 @@ export default async function BlogPage({ params: Promise<{ all: string[] | undefined }> }) { const { all } = await params - // const { BlogServerRouter } = serverAdapter - - // return const routeMatch = matchRoute(all?.join("/").split("/").filter(Boolean)) await prefetchBlogData({ match: routeMatch, @@ -43,8 +44,9 @@ export default async function BlogPage({ queryClient }) const dehydratedState = dehydrate(queryClient) - return - - - + return ( + + + + ) } diff --git a/apps/examples/tanstack/package.json b/apps/examples/tanstack/package.json index aacbc29..b5e318e 100644 --- a/apps/examples/tanstack/package.json +++ b/apps/examples/tanstack/package.json @@ -18,9 +18,9 @@ "@tailwindcss/vite": "^4.1.12", "@tanstack/react-query": "^5.85.5", "@tanstack/react-query-devtools": "^5.85.5", - "@tanstack/react-router": "^1.131.28", - "@tanstack/react-router-ssr-query": "^1.131.28", - "@tanstack/react-start": "^1.131.28", + "@tanstack/react-router": "1.131.28", + "@tanstack/react-router-ssr-query": "1.131.28", + "@tanstack/react-start": "1.131.28", "better-blog": "workspace:*", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", @@ -30,7 +30,7 @@ "react-dom": "^19.1.1", "tailwind-merge": "^3.3.1", "tailwindcss": "^4.1.12", - "vite": "^7.1.3", + "vite": "7.1.3", "zod": "^4.1.9" }, "devDependencies": { diff --git a/apps/examples/tanstack/src/routeTree.gen.ts b/apps/examples/tanstack/src/routeTree.gen.ts index c571273..1fb3509 100644 --- a/apps/examples/tanstack/src/routeTree.gen.ts +++ b/apps/examples/tanstack/src/routeTree.gen.ts @@ -8,9 +8,14 @@ // You should NOT make any changes in this file as it will be overwritten. // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. +import { createServerRootRoute } from '@tanstack/react-start/server' + import { Route as rootRouteImport } from './routes/__root' import { Route as IndexRouteImport } from './routes/index' import { Route as PostsSplatRouteImport } from './routes/posts/$' +import { ServerRoute as ApiPostsSplatServerRouteImport } from './routes/api/posts/$' + +const rootServerRouteImport = createServerRootRoute() const IndexRoute = IndexRouteImport.update({ id: '/', @@ -22,6 +27,11 @@ const PostsSplatRoute = PostsSplatRouteImport.update({ path: '/posts/$', getParentRoute: () => rootRouteImport, } as any) +const ApiPostsSplatServerRoute = ApiPostsSplatServerRouteImport.update({ + id: '/api/posts/$', + path: '/api/posts/$', + getParentRoute: () => rootServerRouteImport, +} as any) export interface FileRoutesByFullPath { '/': typeof IndexRoute @@ -48,6 +58,27 @@ export interface RootRouteChildren { IndexRoute: typeof IndexRoute PostsSplatRoute: typeof PostsSplatRoute } +export interface FileServerRoutesByFullPath { + '/api/posts/$': typeof ApiPostsSplatServerRoute +} +export interface FileServerRoutesByTo { + '/api/posts/$': typeof ApiPostsSplatServerRoute +} +export interface FileServerRoutesById { + __root__: typeof rootServerRouteImport + '/api/posts/$': typeof ApiPostsSplatServerRoute +} +export interface FileServerRouteTypes { + fileServerRoutesByFullPath: FileServerRoutesByFullPath + fullPaths: '/api/posts/$' + fileServerRoutesByTo: FileServerRoutesByTo + to: '/api/posts/$' + id: '__root__' | '/api/posts/$' + fileServerRoutesById: FileServerRoutesById +} +export interface RootServerRouteChildren { + ApiPostsSplatServerRoute: typeof ApiPostsSplatServerRoute +} declare module '@tanstack/react-router' { interface FileRoutesByPath { @@ -67,6 +98,17 @@ declare module '@tanstack/react-router' { } } } +declare module '@tanstack/react-start/server' { + interface ServerFileRoutesByPath { + '/api/posts/$': { + id: '/api/posts/$' + path: '/api/posts/$' + fullPath: '/api/posts/$' + preLoaderRoute: typeof ApiPostsSplatServerRouteImport + parentRoute: typeof rootServerRouteImport + } + } +} const rootRouteChildren: RootRouteChildren = { IndexRoute: IndexRoute, @@ -75,12 +117,9 @@ const rootRouteChildren: RootRouteChildren = { export const routeTree = rootRouteImport ._addFileChildren(rootRouteChildren) ._addFileTypes() - -import type { getRouter } from './router.ts' -import type { createStart } from '@tanstack/react-start' -declare module '@tanstack/react-start' { - interface Register { - ssr: true - router: Awaited> - } +const rootServerRouteChildren: RootServerRouteChildren = { + ApiPostsSplatServerRoute: ApiPostsSplatServerRoute, } +export const serverRouteTree = rootServerRouteImport + ._addFileChildren(rootServerRouteChildren) + ._addFileTypes() diff --git a/e2e/README.md b/e2e/README.md index 399d27d..43d629f 100644 --- a/e2e/README.md +++ b/e2e/README.md @@ -24,6 +24,7 @@ This folder contains the Playwright-based E2E suite for validating Better Blog a pnpm install pnpm e2e:install pnpm -w build +pnpm -F better-blog-e2e exec playwright install --with-deps chromium pnpm e2e ``` diff --git a/packages/better-blog/package.json b/packages/better-blog/package.json index bedb760..cc50d7a 100644 --- a/packages/better-blog/package.json +++ b/packages/better-blog/package.json @@ -24,25 +24,15 @@ "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", - "files": [ - "dist" - ], - "keywords": [ - "typescript", - "react", - "blog", - "shadcn", - "nextjs" - ], + "files": ["dist"], + "keywords": ["typescript", "react", "blog", "shadcn", "nextjs"], "author": "olliethedev", "license": "MIT", "publishConfig": { "access": "public", "provenance": true }, - "sideEffects": [ - "./dist/style.css" - ], + "sideEffects": ["./dist/style.css"], "exports": { "./css": "./dist/style.css", ".": { @@ -208,51 +198,21 @@ }, "typesVersions": { "*": { - "types": [ - "dist/types.d.ts" - ], - "queries": [ - "dist/queries.d.ts" - ], - "hooks": [ - "dist/hooks.d.ts" - ], - "router": [ - "dist/router.d.ts" - ], - "router/client": [ - "dist/router/client.d.ts" - ], - "context": [ - "dist/context.d.ts" - ], - "client": [ - "dist/client.d.ts" - ], - "api": [ - "dist/api.d.ts" - ], - "server/pages": [ - "dist/server/pages.d.ts" - ], - "sitemap": [ - "dist/sitemap.d.ts" - ], - "providers/api": [ - "dist/providers/api.d.ts" - ], - "providers/drizzle": [ - "dist/providers/drizzle.d.ts" - ], - "providers/memory": [ - "dist/providers/memory.d.ts" - ], - "providers/prisma": [ - "dist/providers/prisma.d.ts" - ], - "providers/sql": [ - "dist/providers/sql.d.ts" - ] + "types": ["dist/types.d.ts"], + "queries": ["dist/queries.d.ts"], + "hooks": ["dist/hooks.d.ts"], + "router": ["dist/router.d.ts"], + "router/client": ["dist/router/client.d.ts"], + "context": ["dist/context.d.ts"], + "client": ["dist/client.d.ts"], + "api": ["dist/api.d.ts"], + "server/pages": ["dist/server/pages.d.ts"], + "sitemap": ["dist/sitemap.d.ts"], + "providers/api": ["dist/providers/api.d.ts"], + "providers/drizzle": ["dist/providers/drizzle.d.ts"], + "providers/memory": ["dist/providers/memory.d.ts"], + "providers/prisma": ["dist/providers/prisma.d.ts"], + "providers/sql": ["dist/providers/sql.d.ts"] } }, "devDependencies": { diff --git a/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx b/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx index 0a1a5d2..4ca3959 100644 --- a/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx +++ b/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx @@ -1,7 +1,7 @@ "use client" import { BlogContext } from "@/context/better-blog-context" -import { matchRoute } from "@/router" +import { matchRouteClient } from "@/router/blog-router-client" import { resolveSEO } from "@/router/meta-resolver" import type { BlogDataProvider, RouteMatch, SeoSiteConfig } from "@/types" import React from "react" @@ -50,7 +50,7 @@ export function BlogMetaTags({ if (!routeMatch && !blog?.basePath) return const match = routeMatch ?? - matchRoute(path?.split("/").filter(Boolean), blog?.basePath) + matchRouteClient(path?.split("/").filter(Boolean), blog?.basePath) resolveSEO(match, effectiveProvider, site) .then((seo) => { if (!mounted) return diff --git a/packages/better-blog/src/components/better-blog/blog-router-page.tsx b/packages/better-blog/src/components/better-blog/blog-router-page.tsx index 4030e96..9d45582 100644 --- a/packages/better-blog/src/components/better-blog/blog-router-page.tsx +++ b/packages/better-blog/src/components/better-blog/blog-router-page.tsx @@ -8,10 +8,10 @@ import { useBlogContext } from "@/hooks/context-hooks" import type { RouteMatch } from "@/types" import React, { Suspense } from "react" import { RouteProvider } from "../../context/route-context" -import { blogRouterClient } from "../../router/blog-router-client" -import { matchRoute } from "../../router/router" - - +import { + blogRouterClient, + matchRouteClient +} from "../../router/blog-router-client" // Default loading component function PostsLoading() { @@ -106,7 +106,7 @@ export function BlogPageRouter({ }) { const { basePath } = useBlogContext() const pathSegments = path?.split("/").filter(Boolean) || [] - + // Strip basePath if present let normalizedPath = pathSegments if ( @@ -115,14 +115,19 @@ export function BlogPageRouter({ ) { normalizedPath = pathSegments.slice(1) } - - const fullPath = normalizedPath.length ? `/${normalizedPath.join("/")}` : "/" - const routeMatch = matchRoute(pathSegments, basePath) + + const fullPath = normalizedPath.length + ? `/${normalizedPath.join("/")}` + : "/" + const routeMatch = matchRouteClient(pathSegments, basePath) return (
- +
) diff --git a/packages/better-blog/src/components/better-blog/default-error.tsx b/packages/better-blog/src/components/better-blog/default-error.tsx index 8f426cd..5ce2d34 100644 --- a/packages/better-blog/src/components/better-blog/default-error.tsx +++ b/packages/better-blog/src/components/better-blog/default-error.tsx @@ -2,11 +2,10 @@ import { useBlogContext } from "@/hooks/context-hooks" import { ErrorPlaceholder } from "./error-placeholder" - // Default error component export function DefaultError({ message }: { message?: string }) { const { localization } = useBlogContext() const title = localization.BLOG_LIST_ERROR_TITLE const desc = message ?? localization.BLOG_LIST_ERROR return -} \ No newline at end of file +} diff --git a/packages/better-blog/src/providers/memory/memory-provider.ts b/packages/better-blog/src/providers/memory/memory-provider.ts index f37eb4e..4661ec0 100644 --- a/packages/better-blog/src/providers/memory/memory-provider.ts +++ b/packages/better-blog/src/providers/memory/memory-provider.ts @@ -237,9 +237,10 @@ export async function createSeededMemoryProvider( ): Promise { const rawPosts = getTestPosts() const authorId = "1" - const baseAuthor = - (await options?.getAuthor?.(authorId)) ?? - { id: authorId, name: "John Doe" } + const baseAuthor = (await options?.getAuthor?.(authorId)) ?? { + id: authorId, + name: "John Doe" + } const posts = rawPosts.map((post) => { const effectiveAuthor = post.author ?? baseAuthor return { diff --git a/packages/better-blog/src/router/blog-router-client.tsx b/packages/better-blog/src/router/blog-router-client.tsx index 6790e19..f35743e 100644 --- a/packages/better-blog/src/router/blog-router-client.tsx +++ b/packages/better-blog/src/router/blog-router-client.tsx @@ -34,3 +34,76 @@ export const blogRouterClient = createRouter(clientRoutes) */ export type BlogRoutesClient = typeof clientRoutes +import type { RouteMatch } from "@/types" +import { blogRouter } from "./blog-router" + +/** + * Match a route based on path segments and return route information + * Uses yar's synchronous getRoute (v1.0.3+) for route matching + */ +export function matchRouteClient( + pathSegments?: string[], + basePath?: string +): RouteMatch { + const normalizedSlug = pathSegments || [] + + if ( + basePath && + normalizedSlug[0] === basePath.split("/").filter(Boolean)[0] + ) { + normalizedSlug.shift() + } + + const path = normalizedSlug.length ? `/${normalizedSlug.join("/")}` : "/" + + // Use yar's synchronous getRoute to match the route + const route = blogRouter.getRoute(path) + + if (route) { + const { meta, params, extra } = route + const metaTags = meta ? meta() : [] + + // Extract title and description from meta tags + const titleTag = metaTags.find( + ( + tag: React.JSX.IntrinsicElements["meta"] | undefined + ): tag is React.JSX.IntrinsicElements["meta"] => + tag !== undefined && "name" in tag && tag.name === "title" + ) + const descriptionTag = metaTags.find( + ( + tag: React.JSX.IntrinsicElements["meta"] | undefined + ): tag is React.JSX.IntrinsicElements["meta"] => + tag !== undefined && "name" in tag && tag.name === "description" + ) + + const title = + (titleTag && "content" in titleTag + ? titleTag.content + : undefined) || "Untitled" + const description = + descriptionTag && "content" in descriptionTag + ? descriptionTag.content + : undefined + + // Determine route type from path and params + const type = extra?.type || "unknown" + + return { + type, + params, + metadata: { + title, + description + } + } + } + + // Return unknown route if no match + return { + type: "unknown", + metadata: { + title: `Unknown route: ${path}` + } + } +} diff --git a/packages/better-blog/src/router/index.ts b/packages/better-blog/src/router/index.ts index bf67263..a3743a4 100644 --- a/packages/better-blog/src/router/index.ts +++ b/packages/better-blog/src/router/index.ts @@ -5,7 +5,3 @@ export * from "./routes" export { blogRouter, type BlogRoutes } from "./blog-router" export { resolveMetadata, resolveSEO } from "./meta-resolver" export { buildTanStackHead } from "./tanstack-head" - -// Client-side exports (for use in client components) -export { blogRouterClient, type BlogRoutesClient } from "./blog-router-client" -export * as clientRoutes from "./pluggable-routes" diff --git a/packages/better-blog/src/router/pluggable-routes.tsx b/packages/better-blog/src/router/pluggable-routes.tsx index d6f1077..004a7a5 100644 --- a/packages/better-blog/src/router/pluggable-routes.tsx +++ b/packages/better-blog/src/router/pluggable-routes.tsx @@ -45,103 +45,85 @@ function PostLoading() { * Home route with components - displays list of all published posts * Path: / */ -export const homeRoute = createRoute( - "/", - () => ({ - PageComponent: HomePageComponent, - LoadingComponent: PostsLoading, - ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: "Blog Posts" }, - { name: "description", content: "Latest blog posts" } - ] - }) -) +export const homeRoute = createRoute("/", () => ({ + PageComponent: HomePageComponent, + LoadingComponent: PostsLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: "Blog Posts" }, + { name: "description", content: "Latest blog posts" } + ] +})) /** * Post route with components - displays a single post by slug * Path: /:slug */ -export const postRoute = createRoute( - "/:slug", - ({ params }) => ({ - PageComponent: PostPageComponent, - LoadingComponent: PostLoading, - ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: `Post: ${params.slug || ""}` }, - { name: "description", content: "Blog post content" } - ] - }) -) +export const postRoute = createRoute("/:slug", ({ params }) => ({ + PageComponent: PostPageComponent, + LoadingComponent: PostLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: `Post: ${params.slug || ""}` }, + { name: "description", content: "Blog post content" } + ] +})) /** * Tag route with components - displays posts filtered by tag * Path: /tag/:tag */ -export const tagRoute = createRoute( - "/tag/:tag", - ({ params }) => ({ - PageComponent: TagPageComponent, - LoadingComponent: PostsLoading, - ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: `Posts tagged: ${params.tag || ""}` }, - { - name: "description", - content: `All posts tagged with ${params.tag || ""}` - } - ] - }) -) +export const tagRoute = createRoute("/tag/:tag", ({ params }) => ({ + PageComponent: TagPageComponent, + LoadingComponent: PostsLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: `Posts tagged: ${params.tag || ""}` }, + { + name: "description", + content: `All posts tagged with ${params.tag || ""}` + } + ] +})) /** * Drafts route with components - displays all draft posts * Path: /drafts */ -export const draftsRoute = createRoute( - "/drafts", - () => ({ - PageComponent: DraftsPageComponent, - LoadingComponent: PostsLoading, - ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: "My Drafts" }, - { name: "description", content: "Draft posts" } - ] - }) -) +export const draftsRoute = createRoute("/drafts", () => ({ + PageComponent: DraftsPageComponent, + LoadingComponent: PostsLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: "My Drafts" }, + { name: "description", content: "Draft posts" } + ] +})) /** * New post route with components - form to create a new post * Path: /new */ -export const newPostRoute = createRoute( - "/new", - () => ({ - PageComponent: NewPostPageComponent, - LoadingComponent: FormLoading, - ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: "Create New Post" }, - { name: "description", content: "Create a new blog post" } - ] - }) -) +export const newPostRoute = createRoute("/new", () => ({ + PageComponent: NewPostPageComponent, + LoadingComponent: FormLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: "Create New Post" }, + { name: "description", content: "Create a new blog post" } + ] +})) /** * Edit post route with components - form to edit an existing post * Path: /:slug/edit */ -export const editPostRoute = createRoute( - "/:slug/edit", - ({ params }) => ({ - PageComponent: EditPostPageComponent, - LoadingComponent: FormLoading, - ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: `Editing: ${params.slug || ""}` }, - { name: "description", content: "Edit blog post" } - ] - }) -) +export const editPostRoute = createRoute("/:slug/edit", ({ params }) => ({ + PageComponent: EditPostPageComponent, + LoadingComponent: FormLoading, + ErrorComponent: DefaultError, + meta: () => [ + { name: "title", content: `Editing: ${params.slug || ""}` }, + { name: "description", content: "Edit blog post" } + ] +})) diff --git a/packages/better-blog/src/router/router.ts b/packages/better-blog/src/router/router.ts index b947a85..9c0a3e2 100644 --- a/packages/better-blog/src/router/router.ts +++ b/packages/better-blog/src/router/router.ts @@ -24,7 +24,7 @@ export function matchRoute( const route = blogRouter.getRoute(path) if (route) { - const { meta, params } = route + const { meta, params, extra } = route const metaTags = meta ? meta() : [] // Extract title and description from meta tags @@ -42,15 +42,16 @@ export function matchRoute( ) const title = - (titleTag && "content" in titleTag ? titleTag.content : undefined) || - "Untitled" + (titleTag && "content" in titleTag + ? titleTag.content + : undefined) || "Untitled" const description = descriptionTag && "content" in descriptionTag ? descriptionTag.content : undefined // Determine route type from path and params - const type = determineRouteType(path, params) + const type = extra?.type || "unknown" return { type, @@ -71,34 +72,6 @@ export function matchRoute( } } -/** - * Determine the route type based on path and params - */ -function determineRouteType( - path: string, - params?: Record -): RouteMatch["type"] { - if (path === "/") { - return "home" - } - if (path === "/new") { - return "new" - } - if (path === "/drafts") { - return "drafts" - } - if (path.startsWith("/tag/")) { - return "tag" - } - if (path.endsWith("/edit") && params?.slug) { - return "edit" - } - if (params?.slug) { - return "post" - } - return "unknown" -} - /** * Export the blog router for advanced use cases */ diff --git a/packages/better-blog/src/router/routes.ts b/packages/better-blog/src/router/routes.ts index a409ded..5d999f2 100644 --- a/packages/better-blog/src/router/routes.ts +++ b/packages/better-blog/src/router/routes.ts @@ -6,86 +6,85 @@ import { createRoute } from "@olliethedev/yar" * Home route - displays list of all published posts * Path: / */ -export const homeRoute = createRoute( - "/", - () => ({ - meta: () => [ - { name: "title", content: "Blog Posts" }, - { name: "description", content: "Latest blog posts" } - ] - }) -) +export const homeRoute = createRoute("/", () => ({ + meta: () => [ + { name: "title", content: "Blog Posts" }, + { name: "description", content: "Latest blog posts" } + ], + extra: { + type: "home" + } +})) /** * Post route - displays a single post by slug * Path: /:slug */ -export const postRoute = createRoute( - "/:slug", - ({ params }) => ({ - meta: () => [ - { name: "title", content: `Post: ${params.slug || ""}` }, - { name: "description", content: "Blog post content" } - ] - }) -) +export const postRoute = createRoute("/:slug", ({ params }) => ({ + meta: () => [ + { name: "title", content: `Post: ${params.slug || ""}` }, + { name: "description", content: "Blog post content" } + ], + extra: { + type: "post" + } +})) /** * Tag route - displays posts filtered by tag * Path: /tag/:tag */ -export const tagRoute = createRoute( - "/tag/:tag", - ({ params }) => ({ - meta: () => [ - { name: "title", content: `Posts tagged: ${params.tag || ""}` }, - { - name: "description", - content: `All posts tagged with ${params.tag || ""}` - } - ] - }) -) +export const tagRoute = createRoute("/tag/:tag", ({ params }) => ({ + meta: () => [ + { name: "title", content: `Posts tagged: ${params.tag || ""}` }, + { + name: "description", + content: `All posts tagged with ${params.tag || ""}` + } + ], + extra: { + type: "tag" + } +})) /** * Drafts route - displays all draft posts * Path: /drafts */ -export const draftsRoute = createRoute( - "/drafts", - () => ({ - meta: () => [ - { name: "title", content: "My Drafts" }, - { name: "description", content: "Draft posts" } - ] - }) -) +export const draftsRoute = createRoute("/drafts", () => ({ + meta: () => [ + { name: "title", content: "My Drafts" }, + { name: "description", content: "Draft posts" } + ], + extra: { + type: "drafts" + } +})) /** * New post route - form to create a new post * Path: /new */ -export const newPostRoute = createRoute( - "/new", - () => ({ - meta: () => [ - { name: "title", content: "Create New Post" }, - { name: "description", content: "Create a new blog post" } - ] - }) -) +export const newPostRoute = createRoute("/new", () => ({ + meta: () => [ + { name: "title", content: "Create New Post" }, + { name: "description", content: "Create a new blog post" } + ], + extra: { + type: "new" + } +})) /** * Edit post route - form to edit an existing post * Path: /:slug/edit */ -export const editPostRoute = createRoute( - "/:slug/edit", - ({ params }) => ({ - meta: () => [ - { name: "title", content: `Editing: ${params.slug || ""}` }, - { name: "description", content: "Edit blog post" } - ] - }) -) - +export const editPostRoute = createRoute("/:slug/edit", ({ params }) => ({ + meta: () => [ + { name: "title", content: `Editing: ${params.slug || ""}` }, + { name: "description", content: "Edit blog post" } + ], + extra: { + type: "edit" + } +})) diff --git a/packages/better-blog/src/router/tanstack-head.ts b/packages/better-blog/src/router/tanstack-head.ts index 4abc0b2..29641c4 100644 --- a/packages/better-blog/src/router/tanstack-head.ts +++ b/packages/better-blog/src/router/tanstack-head.ts @@ -28,7 +28,7 @@ export async function buildTanStackHead(options: { }): Promise { const match = options.match ?? - (await import("./router")).matchRoute( + (await import("./blog-router-client")).matchRouteClient( options.path?.split("/").filter(Boolean) ) const seo: BlogPageSEO = await resolveSEO( diff --git a/packages/better-blog/src/server/pages/server-adapter.tsx b/packages/better-blog/src/server/pages/server-adapter.tsx index 5ad7277..ce57023 100644 --- a/packages/better-blog/src/server/pages/server-adapter.tsx +++ b/packages/better-blog/src/server/pages/server-adapter.tsx @@ -8,7 +8,7 @@ import type { import type { QueryClient } from "@tanstack/react-query" import { HydrationBoundary, dehydrate } from "@tanstack/react-query" import { BlogPageRouter } from "../../components/better-blog/blog-router-page" -import { matchRoute } from "../../router" +import { matchRoute } from "../../router/router" import { prefetchBlogData } from "./prefetch" import type { BlogServerAdapter, CreateBlogServerAdapterOptions } from "./types" diff --git a/packages/better-blog/src/types/index.ts b/packages/better-blog/src/types/index.ts index 68f24f7..392a0a9 100644 --- a/packages/better-blog/src/types/index.ts +++ b/packages/better-blog/src/types/index.ts @@ -61,7 +61,7 @@ export interface RouteMatch { * @deprecated PageComponentOverrides is deprecated in favor of creating custom routes with yar. * Instead of using pageOverrides, create custom routes using createRoute from @olliethedev/yar * and combine them with Better Blog's routes. - * + * * This interface is kept for backward compatibility but will be removed in a future version. */ export interface PageComponentOverrides { diff --git a/packages/better-blog/tsup.config.ts b/packages/better-blog/tsup.config.ts index b83793d..29427b0 100644 --- a/packages/better-blog/tsup.config.ts +++ b/packages/better-blog/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig((env) => { queries: "./src/queries/index.ts", hooks: "./src/hooks/index.ts", router: "./src/router/index.ts", - "router/client": "./src/router/pluggable-routes.tsx", + "router/client": "./src/router/blog-router-client.tsx", context: "./src/context/index.ts", api: "./src/api/index.ts", "server/pages": "./src/server/pages/index.tsx", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ee5b71..70fdba9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,19 +31,19 @@ importers: version: 12.23.22(react-dom@19.1.1(react@19.1.1))(react@19.1.1) fumadocs-core: specifier: 15.7.11 - version: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + version: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) fumadocs-docgen: specifier: ^3.0.0 - version: 3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)) + version: 3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)) fumadocs-mdx: specifier: 11.9.1 - version: 11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.7(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + version: 11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) fumadocs-typescript: specifier: ^4.0.8 - version: 4.0.10(@types/react@19.1.16)(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3) + version: 4.0.10(@types/react@19.1.17)(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3) fumadocs-ui: specifier: 15.7.11 - version: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) + version: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) lucide-react: specifier: ^0.522.0 version: 0.522.0(react@19.1.1) @@ -77,10 +77,10 @@ importers: version: 24.0.3 '@types/react': specifier: ^19.1.8 - version: 19.1.16 + version: 19.1.17 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.9(@types/react@19.1.16) + version: 19.1.11(@types/react@19.1.17) eslint: specifier: ^8 version: 8.57.1 @@ -101,7 +101,7 @@ importers: dependencies: '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.3(@types/react@19.1.16)(react@19.1.1) + version: 1.2.3(@types/react@19.1.17)(react@19.1.1) '@tanstack/react-query': specifier: ^5.84.1 version: 5.90.2(react@19.1.1) @@ -150,10 +150,10 @@ importers: version: 8.15.5 '@types/react': specifier: ^19 - version: 19.1.16 + version: 19.1.17 '@types/react-dom': specifier: ^19 - version: 19.1.9(@types/react@19.1.16) + version: 19.1.11(@types/react@19.1.17) dotenv-cli: specifier: ^10.0.0 version: 10.0.0 @@ -180,13 +180,13 @@ importers: dependencies: '@radix-ui/react-dropdown-menu': specifier: ^2.1.15 - version: 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.3(@types/react@19.1.16)(react@19.1.1) + version: 1.2.3(@types/react@19.1.17)(react@19.1.1) '@tailwindcss/vite': specifier: ^4.1.11 - version: 4.1.14(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + version: 4.1.14(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) '@tanstack/react-query': specifier: ^5.84.1 version: 5.90.2(react@19.1.1) @@ -235,13 +235,13 @@ importers: version: 24.6.1 '@types/react': specifier: ^19.1.8 - version: 19.1.16 + version: 19.1.17 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.9(@types/react@19.1.16) + version: 19.1.11(@types/react@19.1.17) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.7.0(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + version: 4.7.0(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -268,7 +268,7 @@ importers: version: 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) vite: specifier: ^7.0.4 - version: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + version: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) vite-plugin-commonjs: specifier: ^0.10.4 version: 0.10.4 @@ -280,7 +280,7 @@ importers: version: 4.1.14 '@tailwindcss/vite': specifier: ^4.1.12 - version: 4.1.14(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + version: 4.1.14(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) '@tanstack/react-query': specifier: ^5.85.5 version: 5.90.2(react@19.1.1) @@ -288,14 +288,14 @@ importers: specifier: ^5.85.5 version: 5.90.2(@tanstack/react-query@5.90.2(react@19.1.1))(react@19.1.1) '@tanstack/react-router': - specifier: ^1.131.28 - version: 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: 1.131.28 + version: 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@tanstack/react-router-ssr-query': - specifier: ^1.131.28 - version: 1.132.27(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.132.27)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: 1.131.28 + version: 1.131.28(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.131.28)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@tanstack/react-start': - specifier: ^1.131.28 - version: 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + specifier: 1.131.28 + version: 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) better-blog: specifier: workspace:* version: link:../../../packages/better-blog @@ -324,21 +324,21 @@ importers: specifier: ^4.1.12 version: 4.1.14 vite: - specifier: ^7.1.3 - version: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + specifier: 7.1.3 + version: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) zod: specifier: ^4.1.9 version: 4.1.11 devDependencies: '@types/react': specifier: ^19.1.11 - version: 19.1.16 + version: 19.1.17 '@types/react-dom': specifier: ^19.1.8 - version: 19.1.9(@types/react@19.1.16) + version: 19.1.11(@types/react@19.1.17) '@vitejs/plugin-react': specifier: ^5.0.1 - version: 5.0.4(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + version: 5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) tw-animate-css: specifier: ^1.3.7 version: 1.4.0 @@ -347,7 +347,7 @@ importers: version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + version: 5.1.4(typescript@5.9.3)(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) e2e: devDependencies: @@ -374,79 +374,79 @@ importers: version: 7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3) '@olliethedev/yar': specifier: 1.0.5 - version: 1.0.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16) + version: 1.0.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17) '@radix-ui/react-accordion': specifier: '>=1.2.0' - version: 1.2.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-alert-dialog': specifier: '>=1.1.0' - version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-avatar': specifier: '>=1.1.0' - version: 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-checkbox': specifier: '>=1.1.0' - version: 1.3.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.3.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-context': specifier: '>=1.1.0' - version: 1.1.2(@types/react@19.1.16)(react@19.1.1) + version: 1.1.2(@types/react@19.1.17)(react@19.1.1) '@radix-ui/react-dialog': specifier: '>=1.1.0' - version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-dropdown-menu': specifier: '>=2.1.0' - version: 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-icons': specifier: '>=1.1.0' version: 1.3.2(react@19.1.1) '@radix-ui/react-label': specifier: '>=2.1.0' - version: 2.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-popover': specifier: '>=1.1.0' - version: 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-primitive': specifier: '>=2.0.0' - version: 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-radio-group': specifier: '>=1.3.0' - version: 1.3.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.3.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-select': specifier: '>=2.2.0' - version: 2.2.6(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-separator': specifier: '>=1.1.0' - version: 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-slot': specifier: '>=1.1.0' - version: 1.2.3(@types/react@19.1.16)(react@19.1.1) + version: 1.2.3(@types/react@19.1.17)(react@19.1.1) '@radix-ui/react-switch': specifier: '>=1.1.0' - version: 1.2.6(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-tabs': specifier: '>=1.1.0' - version: 1.1.13(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.13(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-toggle': specifier: '>=1.1.0' - version: 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-toggle-group': specifier: '>=1.1.0' - version: 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-tooltip': specifier: '>=1.2.0' - version: 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-use-callback-ref': specifier: '>=1.1.0' - version: 1.1.1(@types/react@19.1.16)(react@19.1.1) + version: 1.1.1(@types/react@19.1.17)(react@19.1.1) '@radix-ui/react-use-layout-effect': specifier: '>=1.1.0' - version: 1.1.1(@types/react@19.1.16)(react@19.1.1) + version: 1.1.1(@types/react@19.1.17)(react@19.1.1) '@tanstack/react-query': specifier: '>=5.66.0' version: 5.90.2(react@19.1.1) '@types/bun': specifier: ^1.2.20 - version: 1.2.23(@types/react@19.1.16) + version: 1.2.23(@types/react@19.1.17) better-call: specifier: 1.0.19 version: 1.0.19 @@ -458,7 +458,7 @@ importers: version: 2.1.1 cmdk: specifier: '>=1.1.0' - version: 1.1.1(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.1(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) date-fns: specifier: '>=4.1.0' version: 4.1.0 @@ -485,7 +485,7 @@ importers: version: 7.63.0(react@19.1.1) react-markdown: specifier: '>=10.1.0' - version: 10.1.0(@types/react@19.1.16)(react@19.1.1) + version: 10.1.0(@types/react@19.1.17)(react@19.1.1) rehype-highlight: specifier: '>=7.0.0' version: 7.0.2 @@ -522,7 +522,7 @@ importers: version: 6.9.0 '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@testing-library/user-event': specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -540,10 +540,10 @@ importers: version: 8.15.5 '@types/react': specifier: ^19.1.8 - version: 19.1.16 + version: 19.1.17 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.9(@types/react@19.1.16) + version: 19.1.11(@types/react@19.1.17) babel-jest: specifier: ^30.1.2 version: 30.2.0(@babel/core@7.28.4) @@ -552,7 +552,7 @@ importers: version: 11.10.0 drizzle-orm: specifier: ^0.36.0 - version: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.16)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.16))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) + version: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) esbuild-plugin-preserve-directives: specifier: ^0.0.11 version: 0.0.11(esbuild@0.25.10) @@ -1275,6 +1275,10 @@ packages: cpu: [x64] os: [win32] + '@cloudflare/kv-asset-handler@0.4.0': + resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} + engines: {node: '>=18.0.0'} + '@codemirror/autocomplete@6.19.0': resolution: {integrity: sha512-61Hfv3cF07XvUxNeC3E7jhG8XNi1Yom1G0lRC936oLnlF+jrbrv8rc/J98XlYzcsAoTVupfsf5fLej1aI8kyIg==} @@ -1787,6 +1791,9 @@ packages: cpu: [x64] os: [win32] + '@ioredis/commands@1.4.0': + resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} + '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -1913,6 +1920,9 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -1977,6 +1987,11 @@ packages: '@tanstack/query-core': '>= 4.0.0' '@tanstack/react-query': '>= 4.0.0' + '@mapbox/node-pre-gyp@2.0.0': + resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} + engines: {node: '>=18'} + hasBin: true + '@marijn/find-cluster-break@1.0.2': resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} @@ -2301,6 +2316,94 @@ packages: cpu: [x64] os: [win32] + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-wasm@2.5.1': + resolution: {integrity: sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -2314,6 +2417,15 @@ packages: engines: {node: '>=18'} hasBin: true + '@poppinss/colors@4.1.5': + resolution: {integrity: sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==} + + '@poppinss/dumper@0.6.4': + resolution: {integrity: sha512-iG0TIdqv8xJ3Lt9O8DrPRxw1MRLjNpoqiSGU03P/wNLP/s0ra0udPJ1J2Tx5M0J3H/cVyEgpbn8xUKRY9j59kQ==} + + '@poppinss/exception@1.2.2': + resolution: {integrity: sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==} + '@prisma/client@5.22.0': resolution: {integrity: sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA==} engines: {node: '>=16.13'} @@ -2883,8 +2995,77 @@ packages: '@rolldown/pluginutils@1.0.0-beta.38': resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} - '@rolldown/pluginutils@1.0.0-beta.40': - resolution: {integrity: sha512-s3GeJKSQOwBlzdUrj4ISjJj5SfSh+aqn0wjOar4Bx95iV1ETI7F6S/5hLcfAxZ9kXDcyrAkxPlqmd1ZITttf+w==} + '@rollup/plugin-alias@5.1.1': + resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@28.0.6': + resolution: {integrity: sha512-XSQB1K7FUU5QP+3lOQmVCE3I0FcbbNvmNT4VJSj93iUjayaARrTQeoRdiYQoftAJBLrR9t2agwAd3ekaTgHNlw==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@16.0.1': + resolution: {integrity: sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.2': + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true '@rollup/rollup-android-arm-eabi@4.52.3': resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==} @@ -3032,12 +3213,23 @@ packages: '@sinclair/typebox@0.34.41': resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==} + '@sindresorhus/is@7.1.0': + resolution: {integrity: sha512-7F/yz2IphV39hiS2zB4QYVkivrptHHh0K8qJJd9HhuWSdvf8AN7NpebW3CcDZDBQsUPMoDKWsY2WWgW7bqOcfA==} + engines: {node: '>=18'} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} '@sinonjs/fake-timers@13.0.5': resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} + '@speed-highlight/core@1.2.7': + resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} + '@standard-schema/spec@1.0.0': resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} @@ -3148,14 +3340,14 @@ packages: peerDependencies: vite: ^5.2.0 || ^6 || ^7 - '@tanstack/directive-functions-plugin@1.132.21': - resolution: {integrity: sha512-gNUBOtto6FpCtloBISnBK7OH0GJZsEom4L8IHoRdV2td9F9qodHuuewsOeExtNnCQXfL3b5CfCeFNDlREr/urg==} + '@tanstack/directive-functions-plugin@1.131.2': + resolution: {integrity: sha512-5Pz6aVPS0BW+0bLvMzWsoajfjI6ZeWqkbVBaQfIbSTm4DOBO05JuQ/pb7W7m3GbCb5TK1a/SKDhuTX6Ag5I7UQ==} engines: {node: '>=12'} peerDependencies: - vite: '>=6.0.0 || >=7.0.0' + vite: '>=6.0.0' - '@tanstack/history@1.132.21': - resolution: {integrity: sha512-5ziPz3YarKU5cBJoEJ4muV8cy+5W4oWdJMqW7qosMrK5fb9Qfm+QWX+kO3emKJMu4YOUofVu3toEuuD3x1zXKw==} + '@tanstack/history@1.131.2': + resolution: {integrity: sha512-cs1WKawpXIe+vSTeiZUuSBy8JFjEuDgdMKZFRLKwQysKo8y2q6Q1HvS74Yw+m5IhOW1nTZooa6rlgdfXcgFAaw==} engines: {node: '>=12'} '@tanstack/query-core@5.90.2': @@ -3175,8 +3367,8 @@ packages: peerDependencies: react: 19.1.1 - '@tanstack/react-router-ssr-query@1.132.27': - resolution: {integrity: sha512-QKJOxoemxuuX/fSEw814KabcYH2cqXWPOrZKf1+IFEdLJzA6YKrqP23rC72hHR7lXRX5aheiaLdmWr/4UZm0UQ==} + '@tanstack/react-router-ssr-query@1.131.28': + resolution: {integrity: sha512-TK9rRLTDlBUkCm+fmbJqbSGGnHQwo9+Okhi9ARaDL+nwu4zHul1SOzQdEc48F4pAcvxWqEl3W1F7othgSIjBVQ==} engines: {node: '>=12'} peerDependencies: '@tanstack/query-core': '>=5.66.0' @@ -3185,34 +3377,42 @@ packages: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/react-router@1.132.27': - resolution: {integrity: sha512-fxSm1kxrtl3dQslqqKgYnIbQf7qW4fyWXKQhZYCWBFHO2GT11DWPZTNkTXw5YifOpw2RTmYJBH3C44t1HF95Cw==} + '@tanstack/react-router@1.131.28': + resolution: {integrity: sha512-vWExhrqHJuT9v+6/2DCQ4pVvPaYoLazMNw8WXiLNuzBXh1FuEoIGaW3jw3DEP0OJCmMiWtTi34NzQnakkQZlQg==} engines: {node: '>=12'} peerDependencies: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/react-start-client@1.132.27': - resolution: {integrity: sha512-Y7usVckKyxoSvToASs7iA48MDFHwdwWXcnWR3VrF7xE11BQX9FBZMC0zoj+mBEuew6tuRik7s4NOMT7FQQH0HQ==} - engines: {node: '>=22.12.0'} + '@tanstack/react-start-client@1.131.28': + resolution: {integrity: sha512-eakFCFiXgTNKhplib5v67MJPsom1GfarZqq9KU7CGhSRp/RBARwNP0LsA9Xtui1FX5xRt/wU1lARtUcAMWqBQg==} + engines: {node: '>=12'} peerDependencies: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/react-start-server@1.132.27': - resolution: {integrity: sha512-ZdUQymY33X8B4pcuqEskVljN4TH3J1miJKd6hCsMLcuA4YoYhkUYsEi5JczjKdVSa8E8flXegt/0ACpc0la7rA==} - engines: {node: '>=22.12.0'} + '@tanstack/react-start-plugin@1.131.28': + resolution: {integrity: sha512-wSYl1nTLvVrVw2ITVMv+r2il809PkuGwXe1ckINfIL6NRvM6LsgTKVB8QmTR3kSbbX59tnQ5AxtXIHHow+0QPw==} + engines: {node: '>=12'} + peerDependencies: + '@vitejs/plugin-react': '>=4.3.4' + vite: '>=6.0.0' + + '@tanstack/react-start-server@1.131.28': + resolution: {integrity: sha512-S2G+cxvaij20+glN7Sy/5EusMEZrAD3kNQ0MvixLI0Ng5Ho6CqnP9SnIHX22Cu2dFHCTEVmYyc9Isjl+zA+rew==} + engines: {node: '>=12'} peerDependencies: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/react-start@1.132.27': - resolution: {integrity: sha512-fVpszyUtF982qhYjo899oCcUFcd2kb3Iu1X2DpoIHhqrOVUqwLzGNSQTTVEOKT6PFX2Q2/7ci3BKN1Awb/rdWw==} - engines: {node: '>=22.12.0'} + '@tanstack/react-start@1.131.28': + resolution: {integrity: sha512-EQEIwEyHwcNBrlefFo/wrgNfswoZopbnYRNZUZBn03e+eLCO5WeZyZ+77sFAJCmtfvBDKLzeEH0/Z7ceC1pMyQ==} + engines: {node: '>=12'} peerDependencies: + '@vitejs/plugin-react': '>=4.3.4' react: 19.1.1 react-dom: 19.1.1 - vite: '>=7.0.0' + vite: '>=6.0.0' '@tanstack/react-store@0.7.7': resolution: {integrity: sha512-qqT0ufegFRDGSof9D/VqaZgjNgp4tRPHZIJq2+QIHkMUtHjaJ0lYrrXjeIUJvjnTbgPfSD1XgOMEt0lmANn6Zg==} @@ -3220,22 +3420,22 @@ packages: react: 19.1.1 react-dom: 19.1.1 - '@tanstack/router-core@1.132.27': - resolution: {integrity: sha512-mNx+nba7mXc7sJdX+kYH4rSW8f7Jx/+0hPOkX4XAnqiq7I1ng3gGqmGuf4+2BYTG2aD+aTSPExUPczy9VNgRfQ==} + '@tanstack/router-core@1.131.28': + resolution: {integrity: sha512-f+vdfr3WKSS/BcqgI5s4vZg9xYb7NkvIolkaMELrbz3l+khkw1aTjx8wqCHRY4dqwIAxq+iZBZtMWXA7pztGJg==} engines: {node: '>=12'} - '@tanstack/router-generator@1.132.27': - resolution: {integrity: sha512-dlW33RGxgG0mBF8vRqUs5CeId6wOf4qY6GmT2Pv6NgCVtrD7wsMSM1BasIRufNIxRT6FVnE7rztMy9wN7oCaKg==} + '@tanstack/router-generator@1.131.28': + resolution: {integrity: sha512-e/6+2bfKhdiAgbFh4X0fADcnS7jNr6HqmDQ8Dcx9zpIGzWnj3pi9HUfHi7kmgZvxtCv8286BdVJsC7PqgxFHJw==} engines: {node: '>=12'} - '@tanstack/router-plugin@1.132.27': - resolution: {integrity: sha512-0mo+jdgO7L5hOPGyrmKtyy20ZUfX4LwN30IXS7mhsaSHbZub+XLS3Ta6mDxNLmOXAJLPI3Gc90yI8jVwhizv5Q==} + '@tanstack/router-plugin@1.131.28': + resolution: {integrity: sha512-7PxDjczsv90YQtphmjaakvHi8yF+d1mSs+ro8yIA/KrGD1+TaWvguAdFceDn/2ZGy5/tmCOVXQwuOg95HL8u6g==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' - '@tanstack/react-router': ^1.132.27 - vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' - vite-plugin-solid: ^2.11.8 + '@tanstack/react-router': ^1.131.28 + vite: '>=5.0.0 || >=6.0.0' + vite-plugin-solid: ^2.11.2 webpack: '>=5.92.0' peerDependenciesMeta: '@rsbuild/core': @@ -3249,44 +3449,56 @@ packages: webpack: optional: true - '@tanstack/router-ssr-query-core@1.132.27': - resolution: {integrity: sha512-MDNE02EQhYt2fNlHYbFzAzzUGxcSLcRgLVKS1XSZZRPaxVeRg5eW2hqy2DCVDaharongkWGz/KmC1qPpRixRKw==} + '@tanstack/router-ssr-query-core@1.131.28': + resolution: {integrity: sha512-SARWNSNc3CHPAzjgmFTJAiT8cps07k7k98XNxL+iW2e8ndksFWUXmD4Yxfwee+twKHolNsalMhCE2h6mZvQxqA==} engines: {node: '>=12'} peerDependencies: '@tanstack/query-core': '>=5.66.0' '@tanstack/router-core': '>=1.127.0' - '@tanstack/router-utils@1.132.21': - resolution: {integrity: sha512-d9MvyhdPaKN78hQOss89bayiv/HR/7FpVHuKTNGEzzYrBWDVIUBd0yMNaBxQBpTg6NuNxtZ01ZJS5VkbedbzJw==} + '@tanstack/router-utils@1.131.2': + resolution: {integrity: sha512-sr3x0d2sx9YIJoVth0QnfEcAcl+39sQYaNQxThtHmRpyeFYNyM2TTH+Ud3TNEnI3bbzmLYEUD+7YqB987GzhDA==} engines: {node: '>=12'} - '@tanstack/server-functions-plugin@1.132.21': - resolution: {integrity: sha512-QV5sHy3yKMzDinWdRCeg/PwIys95myvxVRllopc0ht4WDOewZW/kNYBq8buvJUhgN4adj4YCV+HJsXwW4YrxZQ==} + '@tanstack/server-functions-plugin@1.131.2': + resolution: {integrity: sha512-hWsaSgEZAVyzHg8+IcJWCEtfI9ZSlNELErfLiGHG9XCHEXMegFWsrESsKHlASzJqef9RsuOLDl+1IMPIskwdDw==} engines: {node: '>=12'} - '@tanstack/start-client-core@1.132.27': - resolution: {integrity: sha512-YUqsdFT6YlYwXKO72ghvRBCzvX5OLdhW/KBP/rMVKcEzSbS/CEPbhds2ljmNQkKkCxsb/imJHsvdflM0waMrHA==} - engines: {node: '>=22.12.0'} + '@tanstack/start-client-core@1.131.28': + resolution: {integrity: sha512-FQAvzdGGuSBxvswx4iGwbRdhegeY2huvfzHkX2qTo6p9poRqA2HxWX8HLSfvmt4zrgtzJd9VMZCjsys6+W83gw==} + engines: {node: '>=12'} - '@tanstack/start-plugin-core@1.132.27': - resolution: {integrity: sha512-LxvOzFAiKRCHJ2+ebelByVc9fyAg+CLYue3V2IP4HNyjwLAvKHsbt+ljgs+gxJDPgvR/3KgEoqIzDWeMF5mumg==} - engines: {node: '>=22.12.0'} + '@tanstack/start-plugin-core@1.131.28': + resolution: {integrity: sha512-BMIOXnEYci92vAMUKzh3L9w3DhWW71anQhDJmzw9Sie9/bCi16LmjCXAZi20sc0lhR4IhasKR82PbeCG6iFkSQ==} + engines: {node: '>=12'} peerDependencies: - vite: '>=7.0.0' + vite: '>=6.0.0' + + '@tanstack/start-server-core@1.131.28': + resolution: {integrity: sha512-V05OZPZlQQrP7q2pf04zhe6LrU3rB9NkTT8b4izrgz7XxI/NrGaZkpS1R3O/ijRUJwoWxyLwnhtvfVfVE8R1Sw==} + engines: {node: '>=12'} + + '@tanstack/start-server-functions-client@1.131.28': + resolution: {integrity: sha512-ktp82K3Yx/2N5kUXv8dcoE7soteW3G097DlcXMWhc+pLbN4Y8WC/Fo7j2JskaEAIqrwpIzcYrRSdFXgzO36+vA==} + engines: {node: '>=12'} + + '@tanstack/start-server-functions-fetcher@1.131.28': + resolution: {integrity: sha512-wHrxG2JLMh/N1/xUHs+/rtOGqtkANPbHxYfzrdcpxzvWfIIGj0xNMhj0ysY5vr4ow95St/0ntioz4FU4ySmSHQ==} + engines: {node: '>=12'} - '@tanstack/start-server-core@1.132.27': - resolution: {integrity: sha512-BIBFpmAqECur+5mbG6ZcGjlg93q4qpkwiwRDUmpiBRRWQxG4IYprjQ8ajzCar1yqedB1tqEhRpbkaBNnLIu+oQ==} - engines: {node: '>=22.12.0'} + '@tanstack/start-server-functions-server@1.131.2': + resolution: {integrity: sha512-u67d6XspczlC/dYki/Id28oWsTjkZMJhDqO4E23U3rHs8eYgxvMBHKqdeqWgOyC+QWT9k6ze1pJmbv+rmc3wOQ==} + engines: {node: '>=12'} - '@tanstack/start-storage-context@1.132.27': - resolution: {integrity: sha512-4WomOGK7KPsnwoMXWT/bxNGRiaoyryEOm1ho44AsbRRD4IjpB+U5vWtT2Sho9grHMjlm4iaOrbklxKfeGhVqGg==} - engines: {node: '>=22.12.0'} + '@tanstack/start-storage-context@1.131.28': + resolution: {integrity: sha512-0IOTHaN5FfB7fsa0FE9ByUsZATsIgrlKZ+dluZk/4amqJ7OTepa/4jAvjy9Nq1V9n+YfrkJrIJ/0ZDELl50o1A==} + engines: {node: '>=12'} '@tanstack/store@0.7.7': resolution: {integrity: sha512-xa6pTan1bcaqYDS9BDpSiS63qa6EoDkPN9RsRaxHuDdVDNntzq3xNwR5YKTU/V3SkSyC9T4YVOPh2zRQN0nhIQ==} - '@tanstack/virtual-file-routes@1.132.21': - resolution: {integrity: sha512-+eT+vxZnf2/QPr9ci5aPn7i3MnVyWYNG2DUqiKJXGi7EvuFrXV9r8zDK40QfUTNGdCg9F880YOVe3cTwMCO0zw==} + '@tanstack/virtual-file-routes@1.131.2': + resolution: {integrity: sha512-VEEOxc4mvyu67O+Bl0APtYjwcNRcL9it9B4HKbNgcBTIOEalhk+ufBl4kiqc8WP1sx1+NAaiS+3CcJBhrqaSRg==} engines: {node: '>=12'} '@testing-library/dom@10.4.1': @@ -3330,6 +3542,9 @@ packages: '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@types/babel__code-frame@7.0.6': + resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -3411,13 +3626,16 @@ packages: '@types/pg@8.15.5': resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} - '@types/react-dom@19.1.9': - resolution: {integrity: sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==} + '@types/react-dom@19.1.11': + resolution: {integrity: sha512-3BKc/yGdNTYQVVw4idqHtSOcFsgGuBbMveKCOgF8wQ5QtrYOc3jDIlzg3jef04zcXFIHLelyGlj0T+BJ8+KN+w==} peerDependencies: '@types/react': ^19.0.0 - '@types/react@19.1.16': - resolution: {integrity: sha512-WBM/nDbEZmDUORKnh5i1bTnAz6vTohUf9b8esSMu+b24+srbaxa04UbJgWx78CVfNXA20sNu0odEIluZDFdCog==} + '@types/react@19.1.17': + resolution: {integrity: sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==} + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -3597,6 +3815,11 @@ packages: cpu: [x64] os: [win32] + '@vercel/nft@0.30.2': + resolution: {integrity: sha512-pquXF3XZFg/T3TBor08rUhIGgOhdSilbn7WQLVP/aVSSO+25Rs4H/m3nxNDQ2x3znX7Z3yYjryN8xaLwypcwQg==} + engines: {node: '>=18'} + hasBin: true + '@vitejs/plugin-react@4.7.0': resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3638,6 +3861,19 @@ packages: '@vue/shared@3.5.22': resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -3690,6 +3926,14 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -3754,6 +3998,12 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + autoprefixer@10.4.21: resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} @@ -3773,6 +4023,14 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + b4a@1.7.3: + resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + babel-dead-code-elimination@1.0.10: resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} @@ -3822,6 +4080,9 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bare-events@2.7.0: + resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -3870,12 +4131,19 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bun-types@1.2.23: resolution: {integrity: sha512-R9f0hKAZXgFU3mlrA0YpE/fiDvwV0FT9rORApt2aQVWSuJDzZOyB5QLc0N/4HF57CS8IXJ6+L5E4W1bW6NS2Aw==} peerDependencies: @@ -3891,6 +4159,14 @@ packages: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} + c12@3.3.0: + resolution: {integrity: sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==} + peerDependencies: + magicast: ^0.3.5 + peerDependenciesMeta: + magicast: + optional: true + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -3971,6 +4247,9 @@ packages: resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} engines: {node: '>=8'} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + cjs-module-lexer@2.1.0: resolution: {integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==} @@ -3980,6 +4259,10 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -3988,6 +4271,10 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cluster-key-slot@1.1.2: + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} + cmdk@1.1.1: resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} peerDependencies: @@ -4020,6 +4307,9 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -4028,6 +4318,16 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compatx@0.2.0: + resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==} + + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + compute-scroll-into-view@3.1.1: resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} @@ -4037,6 +4337,9 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4044,6 +4347,9 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + cookie-es@2.0.0: resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==} @@ -4054,13 +4360,32 @@ packages: core-js-compat@3.45.1: resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + croner@9.1.0: + resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} + engines: {node: '>=18.0'} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} @@ -4108,6 +4433,29 @@ packages: date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + db0@0.3.3: + resolution: {integrity: sha512-k60CEeVGi2t35VnrnquJk/Uzr/RHDd6YwKZEtEaSh4+09XgoHBueTOBvCLNK1PU+RXGM6O8tA/Eq7/09nqcqAw==} + peerDependencies: + '@electric-sql/pglite': '*' + '@libsql/client': '*' + better-sqlite3: '*' + drizzle-orm: '*' + mysql2: '*' + sqlite3: '*' + peerDependenciesMeta: + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + better-sqlite3: + optional: true + drizzle-orm: + optional: true + mysql2: + optional: true + sqlite3: + optional: true + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -4158,14 +4506,37 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.1.1: resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} engines: {node: '>=8'} @@ -4214,6 +4585,10 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + dotenv-cli@10.0.0: resolution: {integrity: sha512-lnOnttzfrzkRx2echxJHQRB6vOAMSCzzZg79IxpC00tU42wZPuZkQxNNrrwVAxaQZIIh001l4PxVlCrBxngBzA==} hasBin: true @@ -4332,6 +4707,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + electron-to-chromium@1.5.228: resolution: {integrity: sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==} @@ -4345,6 +4723,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + encoding-sniffer@0.2.1: resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} @@ -4366,6 +4748,9 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + es-abstract@1.24.0: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} @@ -4547,6 +4932,9 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -4735,13 +5123,32 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + event-stream@3.3.4: resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + exit-x@0.2.2: resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} @@ -4763,6 +5170,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -4792,9 +5202,6 @@ packages: picomatch: optional: true - fetchdts@0.1.7: - resolution: {integrity: sha512-YoZjBdafyLIop9lSxXVI33oLD5kN31q4Td+CasofLLYeLXRFeOsuOw0Uo+XNRi9PZlbfdlN2GmRtm4tCEQ9/KA==} - file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -4857,6 +5264,10 @@ packages: react-dom: optional: true + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + from@0.1.7: resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} @@ -4998,6 +5409,9 @@ packages: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} + get-port-please@3.2.0: + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -5006,6 +5420,10 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} @@ -5013,6 +5431,10 @@ packages: get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + giget@2.0.0: + resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} + hasBin: true + github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -5051,6 +5473,10 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} + globby@14.1.0: + resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} + engines: {node: '>=18'} + globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -5064,14 +5490,15 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - h3@2.0.0-beta.4: - resolution: {integrity: sha512-/JdwHUGuHjbBXAVxQN7T7QeI9cVlhsqMKVNFHebZVs9RoEYH85Ogh9O1DEy/1ZiJkmMwa1gNg6bBcGhc1Itjdg==} - engines: {node: '>=20.11.1'} - peerDependencies: - crossws: ^0.4.1 - peerDependenciesMeta: - crossws: - optional: true + gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} + + h3@1.15.4: + resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} @@ -5130,6 +5557,9 @@ packages: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + html-encoding-sniffer@4.0.0: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} @@ -5146,18 +5576,33 @@ packages: htmlparser2@10.0.0: resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} + httpxy@0.1.7: + resolution: {integrity: sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -5212,6 +5657,13 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + ioredis@5.8.0: + resolution: {integrity: sha512-AUXbKn9gvo9hHKvk6LbZJQSKn/qIfkWXrnsyL9Yrf+oeXmla9Nmf6XEumOddyhM8neynpK5oAV6r9r99KBuwzA==} + engines: {node: '>=12.22.0'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -5263,6 +5715,16 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -5290,10 +5752,18 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -5317,6 +5787,9 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -5333,6 +5806,10 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-string@1.1.1: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} @@ -5357,6 +5834,21 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -5542,6 +6034,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -5596,6 +6091,17 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.2.0: + resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} + kysely@0.28.7: resolution: {integrity: sha512-u/cAuTL4DRIiO2/g4vNGRgklEKNIj5Q3CG7RoUB5DV5SfEC2hMvPxKi0GWPmnzwL2ryIeud2VTcEEmqzTzEPNw==} engines: {node: '>=20.0.0'} @@ -5607,6 +6113,10 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -5686,10 +6196,18 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + listhen@1.9.0: + resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} + hasBin: true + load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -5704,6 +6222,12 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.isarguments@3.1.0: + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -5713,6 +6237,9 @@ packages: lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -5755,6 +6282,9 @@ packages: magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -5952,10 +6482,32 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mime@4.1.0: + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -5971,6 +6523,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -6080,19 +6636,60 @@ packages: sass: optional: true + nitropack@2.12.6: + resolution: {integrity: sha512-DEq31s0SP4/Z5DIoVBRo9DbWFPWwIoYD4cQMEz7eE+iJMiAP+1k9A3B9kcc6Ihc0jDJmfUcHYyh6h2XlynCx6g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + xml2js: ^0.6.2 + peerDependenciesMeta: + xml2js: + optional: true + node-abi@3.77.0: resolution: {integrity: sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==} engines: {node: '>=10'} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-cleanup@2.1.2: resolution: {integrity: sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==} + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + node-mock-http@1.0.3: + resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} + node-releases@2.0.21: resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -6105,6 +6702,10 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-to-yarn@3.0.1: resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6115,6 +6716,11 @@ packages: nwsapi@2.2.22: resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} + nypm@0.6.2: + resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -6147,6 +6753,19 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + ohash@1.1.6: + resolution: {integrity: sha512-TBu7PtV8YkAZn0tSxobKY2n2aAQva936lhRrj6957aDaCf9IEtqsKbgMzXE/F/sjqYOwmrukeORHNLe5glk7Cg==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -6154,12 +6773,20 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} oniguruma-to-es@4.3.3: resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -6218,6 +6845,10 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -6233,6 +6864,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -6240,12 +6875,22 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} pause-stream@0.0.11: resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + perfect-debounce@2.0.0: + resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} + pg-cloudflare@1.2.7: resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} @@ -6302,6 +6947,9 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + playwright-core@1.55.1: resolution: {integrity: sha512-Z6Mh9mkwX+zxSlHqdr5AOcJnfp+xUWLCt9uKV18fhzA8eyxUd8NUWzAjxUh55RZKSYwDGX0cfaySdhZJGMoJ+w==} engines: {node: '>=18'} @@ -6383,6 +7031,10 @@ packages: engines: {node: '>=14'} hasBin: true + pretty-bytes@7.1.0: + resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} + engines: {node: '>=20'} + pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6396,6 +7048,13 @@ packages: engines: {node: '>=16.13'} hasBin: true + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -6476,9 +7135,25 @@ packages: pure-rand@7.0.1: resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -6581,10 +7256,20 @@ packages: resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} engines: {node: '>=0.10.0'} + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -6615,6 +7300,14 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -6717,6 +7410,19 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + rollup-plugin-visualizer@6.0.3: + resolution: {integrity: sha512-ZU41GwrkDcCpVoffviuM9Clwjy5fcUxlz0oMoTXTYsK+tcIFzbdacnrr2n8TXcHxbGKKXtOdjxM2HUS4HjkwIw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + rolldown: 1.x || ^1.0.0-beta + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + rollup@4.52.3: resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -6741,6 +7447,9 @@ packages: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -6765,6 +7474,9 @@ packages: scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -6774,6 +7486,13 @@ packages: engines: {node: '>=10'} hasBin: true + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + seroval-plugins@1.3.3: resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==} engines: {node: '>=10'} @@ -6784,6 +7503,13 @@ packages: resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} engines: {node: '>=10'} + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + set-cookie-parser@2.7.1: resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} @@ -6799,6 +7525,9 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + sharp@0.34.4: resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -6847,6 +7576,13 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + smob@1.5.0: + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + sonner@2.0.7: resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} peerDependencies: @@ -6860,6 +7596,9 @@ packages: source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -6886,11 +7625,6 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - srvx@0.8.9: - resolution: {integrity: sha512-wYc3VLZHRzwYrWJhkEqkhLb31TI0SOkfYZDkUhXdp3NoCnNS0FqajiQszZZjfow/VYEuc6Q5sZh9nM6kPy2NBQ==} - engines: {node: '>=20.16.0'} - hasBin: true - stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} @@ -6898,6 +7632,20 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -6909,6 +7657,9 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + streamx@2.23.0: + resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -6948,6 +7699,9 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -6974,6 +7728,10 @@ packages: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -6986,6 +7744,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + style-mod@4.1.2: resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} @@ -7013,6 +7774,10 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -7032,6 +7797,10 @@ packages: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + tailwind-merge@3.3.1: resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} @@ -7054,14 +7823,25 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar@7.5.1: resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} engines: {node: '>=18'} + terser@5.44.0: + resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} + engines: {node: '>=10'} + hasBin: true + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -7105,10 +7885,17 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + tough-cookie@5.1.2: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} @@ -7316,6 +8103,9 @@ packages: engines: {node: '>=0.8.0'} hasBin: true + ultrahtml@1.6.0: + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} @@ -7323,6 +8113,9 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + unctx@2.4.1: + resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==} + undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -7336,6 +8129,12 @@ packages: resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} engines: {node: '>=20.18.1'} + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + + unenv@2.0.0-rc.21: + resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} + unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -7352,9 +8151,17 @@ packages: resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unimport@5.4.1: + resolution: {integrity: sha512-wMZ2JKUCleCK2zfRHeWcbrUHKXOC3SVBYkyn/wTGzh0THX6sT4hSjuKXxKANN4/WMbT6ZPM4JzcDcnhD2x9Bpg==} + engines: {node: '>=18.12.0'} + unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} @@ -7379,6 +8186,10 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unplugin-utils@0.3.0: + resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==} + engines: {node: '>=20.19.0'} + unplugin@2.3.10: resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} engines: {node: '>=18.12.0'} @@ -7386,12 +8197,88 @@ packages: unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + unstorage@1.17.1: + resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 || ^7.0.0 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + untyped@2.0.0: + resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} + hasBin: true + + unwasm@0.3.11: + resolution: {integrity: sha512-Vhp5gb1tusSQw5of/g3Q697srYgMXvwMgXMjcG4ZNga02fDX9coxJ9fAb0Ci38hM2Hv/U1FXRPGgjP2BYqhNoQ==} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -7447,8 +8334,8 @@ packages: vite: optional: true - vite@7.1.7: - resolution: {integrity: sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==} + vite@7.1.3: + resolution: {integrity: sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -7513,6 +8400,9 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} @@ -7535,6 +8425,9 @@ packages: resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} engines: {node: '>=18'} + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} @@ -7631,6 +8524,16 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + + youch@4.1.0-beta.11: + resolution: {integrity: sha512-sQi6PERyO/mT8w564ojOVeAlYTtVQmC2GaktQAf+IdI75/GKIggosBuvyVXvEV+FATAT6RbLdIjFoiIId4ozoQ==} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -8467,6 +9370,10 @@ snapshots: '@biomejs/cli-win32-x64@1.9.4': optional: true + '@cloudflare/kv-asset-handler@0.4.0': + dependencies: + mime: 3.0.0 + '@codemirror/autocomplete@6.19.0': dependencies: '@codemirror/language': 6.11.3 @@ -9033,6 +9940,8 @@ snapshots: '@img/sharp-win32-x64@0.34.4': optional: true + '@ioredis/commands@1.4.0': {} + '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.0': @@ -9264,6 +10173,11 @@ snapshots: '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/sourcemap-codec@1.5.5': {} '@jridgewell/trace-mapping@0.3.31': @@ -9369,6 +10283,19 @@ snapshots: '@tanstack/query-core': 5.90.2 '@tanstack/react-query': 5.90.2(react@19.1.1) + '@mapbox/node-pre-gyp@2.0.0': + dependencies: + consola: 3.4.2 + detect-libc: 2.1.1 + https-proxy-agent: 7.0.6 + node-fetch: 2.7.0 + nopt: 8.1.0 + semver: 7.7.2 + tar: 7.5.1 + transitivePeerDependencies: + - encoding + - supports-color + '@marijn/find-cluster-break@1.0.2': {} '@mdx-js/mdx@3.1.1': @@ -9748,10 +10675,10 @@ snapshots: '@ocavue/utils@0.7.1': {} - '@olliethedev/yar@1.0.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)': + '@olliethedev/yar@1.0.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)': dependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) rou3: 0.7.7 '@oozcitak/dom@1.15.10': @@ -9824,6 +10751,71 @@ snapshots: '@oxc-transform/binding-win32-x64-msvc@0.92.0': optional: true + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-wasm@2.5.1': + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.8 + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + '@pkgjs/parseargs@0.11.0': optional: true @@ -9833,6 +10825,18 @@ snapshots: dependencies: playwright: 1.55.1 + '@poppinss/colors@4.1.5': + dependencies: + kleur: 4.1.5 + + '@poppinss/dumper@0.6.4': + dependencies: + '@poppinss/colors': 4.1.5 + '@sindresorhus/is': 7.1.0 + supports-color: 10.2.2 + + '@poppinss/exception@1.2.2': {} + '@prisma/client@5.22.0(prisma@5.22.0)': optionalDependencies: prisma: 5.22.0 @@ -9862,569 +10866,569 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.17)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-context@1.1.2(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.17)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.17)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.17)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) '@radix-ui/react-icons@1.3.2(react@19.1.1)': dependencies: react: 19.1.1 - '@radix-ui/react-id@1.1.1(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.17)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@floating-ui/react-dom': 2.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.1) '@radix-ui/rect': 1.1.1 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.17)(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-switch@1.2.6(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.17)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.17)(react@19.1.1)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.17)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.17)(react@19.1.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.17)(react@19.1.1)': dependencies: react: 19.1.1 use-sync-external-store: 1.5.0(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.17)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.17)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.17)(react@19.1.1)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.16)(react@19.1.1)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.17)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.16)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) '@radix-ui/rect@1.1.1': {} @@ -10432,7 +11436,68 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.38': {} - '@rolldown/pluginutils@1.0.0-beta.40': {} + '@rollup/plugin-alias@5.1.1(rollup@4.52.3)': + optionalDependencies: + rollup: 4.52.3 + + '@rollup/plugin-commonjs@28.0.6(rollup@4.52.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.5.0(picomatch@4.0.3) + is-reference: 1.2.1 + magic-string: 0.30.19 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.52.3 + + '@rollup/plugin-inject@5.0.5(rollup@4.52.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + estree-walker: 2.0.2 + magic-string: 0.30.19 + optionalDependencies: + rollup: 4.52.3 + + '@rollup/plugin-json@6.1.0(rollup@4.52.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + optionalDependencies: + rollup: 4.52.3 + + '@rollup/plugin-node-resolve@16.0.1(rollup@4.52.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.10 + optionalDependencies: + rollup: 4.52.3 + + '@rollup/plugin-replace@6.0.2(rollup@4.52.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + magic-string: 0.30.19 + optionalDependencies: + rollup: 4.52.3 + + '@rollup/plugin-terser@0.4.4(rollup@4.52.3)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.5.0 + terser: 5.44.0 + optionalDependencies: + rollup: 4.52.3 + + '@rollup/pluginutils@5.3.0(rollup@4.52.3)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.52.3 '@rollup/rollup-android-arm-eabi@4.52.3': optional: true @@ -10553,6 +11618,10 @@ snapshots: '@sinclair/typebox@0.34.41': {} + '@sindresorhus/is@7.1.0': {} + + '@sindresorhus/merge-streams@2.3.0': {} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 @@ -10561,6 +11630,8 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@speed-highlight/core@1.2.7': {} + '@standard-schema/spec@1.0.0': {} '@standard-schema/utils@0.3.0': {} @@ -10648,27 +11719,27 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.14 - '@tailwindcss/vite@4.1.14(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': + '@tailwindcss/vite@4.1.14(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@tailwindcss/node': 4.1.14 '@tailwindcss/oxide': 4.1.14 tailwindcss: 4.1.14 - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) - '@tanstack/directive-functions-plugin@1.132.21(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': + '@tanstack/directive-functions-plugin@1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.4 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/router-utils': 1.132.21 + '@tanstack/router-utils': 1.131.2 babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - '@tanstack/history@1.132.21': {} + '@tanstack/history@1.131.2': {} '@tanstack/query-core@5.90.2': {} @@ -10685,69 +11756,136 @@ snapshots: '@tanstack/query-core': 5.90.2 react: 19.1.1 - '@tanstack/react-router-ssr-query@1.132.27(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.132.27)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-router-ssr-query@1.131.28(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.131.28)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@tanstack/query-core': 5.90.2 '@tanstack/react-query': 5.90.2(react@19.1.1) - '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-ssr-query-core': 1.132.27(@tanstack/query-core@5.90.2)(@tanstack/router-core@1.132.27) + '@tanstack/react-router': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/router-ssr-query-core': 1.131.28(@tanstack/query-core@5.90.2)(@tanstack/router-core@1.131.28) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) transitivePeerDependencies: - '@tanstack/router-core' - '@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/history': 1.132.21 + '@tanstack/history': 1.131.2 '@tanstack/react-store': 0.7.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-core': 1.132.27 + '@tanstack/router-core': 1.131.28 isbot: 5.1.31 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-client@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-start-client@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-core': 1.132.27 - '@tanstack/start-client-core': 1.132.27 + '@tanstack/react-router': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/router-core': 1.131.28 + '@tanstack/start-client-core': 1.131.28 + cookie-es: 1.2.2 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-server@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@tanstack/react-start-plugin@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + dependencies: + '@tanstack/start-plugin-core': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@vitejs/plugin-react': 5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + pathe: 2.0.3 + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + zod: 3.25.76 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@rsbuild/core' + - '@tanstack/react-router' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - react-native-b4a + - rolldown + - sqlite3 + - supports-color + - uploadthing + - vite-plugin-solid + - webpack + - xml2js + + '@tanstack/react-start-server@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@tanstack/history': 1.132.21 - '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-core': 1.132.27 - '@tanstack/start-client-core': 1.132.27 - '@tanstack/start-server-core': 1.132.27 + '@tanstack/history': 1.131.2 + '@tanstack/react-router': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/router-core': 1.131.28 + '@tanstack/start-client-core': 1.131.28 + '@tanstack/start-server-core': 1.131.28 + h3: 1.13.0 + isbot: 5.1.31 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - transitivePeerDependencies: - - crossws - '@tanstack/react-start@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': + '@tanstack/react-start@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: - '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/react-start-client': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/react-start-server': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/router-utils': 1.132.21 - '@tanstack/start-client-core': 1.132.27 - '@tanstack/start-plugin-core': 1.132.27(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) - '@tanstack/start-server-core': 1.132.27 - pathe: 2.0.3 + '@tanstack/react-start-client': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/react-start-plugin': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/react-start-server': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@tanstack/start-server-functions-client': 1.131.28(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/start-server-functions-server': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@vitejs/plugin-react': 5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' - '@rsbuild/core' - - crossws + - '@tanstack/react-router' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - react-native-b4a + - rolldown + - sqlite3 - supports-color + - uploadthing - vite-plugin-solid - webpack + - xml2js '@tanstack/react-store@0.7.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: @@ -10756,21 +11894,21 @@ snapshots: react-dom: 19.1.1(react@19.1.1) use-sync-external-store: 1.5.0(react@19.1.1) - '@tanstack/router-core@1.132.27': + '@tanstack/router-core@1.131.28': dependencies: - '@tanstack/history': 1.132.21 + '@tanstack/history': 1.131.2 '@tanstack/store': 0.7.7 - cookie-es: 2.0.0 + cookie-es: 1.2.2 seroval: 1.3.2 seroval-plugins: 1.3.3(seroval@1.3.2) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/router-generator@1.132.27': + '@tanstack/router-generator@1.131.28': dependencies: - '@tanstack/router-core': 1.132.27 - '@tanstack/router-utils': 1.132.21 - '@tanstack/virtual-file-routes': 1.132.21 + '@tanstack/router-core': 1.131.28 + '@tanstack/router-utils': 1.131.2 + '@tanstack/virtual-file-routes': 1.131.2 prettier: 3.6.2 recast: 0.23.11 source-map: 0.7.6 @@ -10779,7 +11917,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.132.27(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': + '@tanstack/router-plugin@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) @@ -10787,26 +11925,26 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/router-core': 1.132.27 - '@tanstack/router-generator': 1.132.27 - '@tanstack/router-utils': 1.132.21 - '@tanstack/virtual-file-routes': 1.132.21 + '@tanstack/router-core': 1.131.28 + '@tanstack/router-generator': 1.131.28 + '@tanstack/router-utils': 1.131.2 + '@tanstack/virtual-file-routes': 1.131.2 babel-dead-code-elimination: 1.0.10 chokidar: 3.6.0 unplugin: 2.3.10 zod: 3.25.76 optionalDependencies: - '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + '@tanstack/react-router': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - '@tanstack/router-ssr-query-core@1.132.27(@tanstack/query-core@5.90.2)(@tanstack/router-core@1.132.27)': + '@tanstack/router-ssr-query-core@1.131.28(@tanstack/query-core@5.90.2)(@tanstack/router-core@1.131.28)': dependencies: '@tanstack/query-core': 5.90.2 - '@tanstack/router-core': 1.132.27 + '@tanstack/router-core': 1.131.28 - '@tanstack/router-utils@1.132.21': + '@tanstack/router-utils@1.131.2': dependencies: '@babel/core': 7.28.4 '@babel/generator': 7.28.3 @@ -10814,12 +11952,10 @@ snapshots: '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) ansis: 4.2.0 diff: 8.0.2 - fast-glob: 3.3.3 - pathe: 2.0.3 transitivePeerDependencies: - supports-color - '@tanstack/server-functions-plugin@1.132.21(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': + '@tanstack/server-functions-plugin@1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.4 @@ -10828,71 +11964,118 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/directive-functions-plugin': 1.132.21(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + '@tanstack/directive-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color - vite - '@tanstack/start-client-core@1.132.27': + '@tanstack/start-client-core@1.131.28': dependencies: - '@tanstack/router-core': 1.132.27 - '@tanstack/start-storage-context': 1.132.27 - seroval: 1.3.2 + '@tanstack/router-core': 1.131.28 + '@tanstack/start-storage-context': 1.131.28 + cookie-es: 1.2.2 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/start-plugin-core@1.132.27(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': + '@tanstack/start-plugin-core@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.28.4 '@babel/types': 7.28.4 - '@rolldown/pluginutils': 1.0.0-beta.40 - '@tanstack/router-core': 1.132.27 - '@tanstack/router-generator': 1.132.27 - '@tanstack/router-plugin': 1.132.27(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) - '@tanstack/router-utils': 1.132.21 - '@tanstack/server-functions-plugin': 1.132.21(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) - '@tanstack/start-server-core': 1.132.27 + '@tanstack/router-core': 1.131.28 + '@tanstack/router-generator': 1.131.28 + '@tanstack/router-plugin': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/router-utils': 1.131.2 + '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/start-server-core': 1.131.28 + '@types/babel__code-frame': 7.0.6 + '@types/babel__core': 7.20.5 babel-dead-code-elimination: 1.0.10 cheerio: 1.1.2 - exsolve: 1.0.7 + h3: 1.13.0 + nitropack: 2.12.6(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) pathe: 2.0.3 - srvx: 0.8.9 - tinyglobby: 0.2.15 ufo: 1.6.1 - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) - vitefu: 1.1.1(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vitefu: 1.1.1(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) xmlbuilder2: 3.1.1 zod: 3.25.76 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' - '@rsbuild/core' - '@tanstack/react-router' - - crossws + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - react-native-b4a + - rolldown + - sqlite3 - supports-color + - uploadthing - vite-plugin-solid - webpack + - xml2js - '@tanstack/start-server-core@1.132.27': + '@tanstack/start-server-core@1.131.28': dependencies: - '@tanstack/history': 1.132.21 - '@tanstack/router-core': 1.132.27 - '@tanstack/start-client-core': 1.132.27 - '@tanstack/start-storage-context': 1.132.27 - h3-v2: h3@2.0.0-beta.4 - seroval: 1.3.2 + '@tanstack/history': 1.131.2 + '@tanstack/router-core': 1.131.28 + '@tanstack/start-client-core': 1.131.28 + '@tanstack/start-storage-context': 1.131.28 + h3: 1.13.0 + isbot: 5.1.31 tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + unctx: 2.4.1 + + '@tanstack/start-server-functions-client@1.131.28(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + dependencies: + '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/start-server-functions-fetcher': 1.131.28 transitivePeerDependencies: - - crossws + - supports-color + - vite - '@tanstack/start-storage-context@1.132.27': + '@tanstack/start-server-functions-fetcher@1.131.28': dependencies: - '@tanstack/router-core': 1.132.27 + '@tanstack/router-core': 1.131.28 + '@tanstack/start-client-core': 1.131.28 + + '@tanstack/start-server-functions-server@1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + dependencies: + '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + tiny-invariant: 1.3.3 + transitivePeerDependencies: + - supports-color + - vite + + '@tanstack/start-storage-context@1.131.28': + dependencies: + '@tanstack/router-core': 1.131.28 '@tanstack/store@0.7.7': {} - '@tanstack/virtual-file-routes@1.132.21': {} + '@tanstack/virtual-file-routes@1.131.2': {} '@testing-library/dom@10.4.1': dependencies: @@ -10914,15 +12097,15 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.28.4 '@testing-library/dom': 10.4.1 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 - '@types/react-dom': 19.1.9(@types/react@19.1.16) + '@types/react': 19.1.17 + '@types/react-dom': 19.1.11(@types/react@19.1.17) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -10947,6 +12130,8 @@ snapshots: '@types/aria-query@5.0.4': {} + '@types/babel__code-frame@7.0.6': {} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.4 @@ -10972,9 +12157,9 @@ snapshots: dependencies: '@types/node': 24.6.1 - '@types/bun@1.2.23(@types/react@19.1.16)': + '@types/bun@1.2.23(@types/react@19.1.17)': dependencies: - bun-types: 1.2.23(@types/react@19.1.16) + bun-types: 1.2.23(@types/react@19.1.17) transitivePeerDependencies: - '@types/react' @@ -11051,14 +12236,16 @@ snapshots: pg-protocol: 1.10.3 pg-types: 2.2.0 - '@types/react-dom@19.1.9(@types/react@19.1.16)': + '@types/react-dom@19.1.11(@types/react@19.1.17)': dependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - '@types/react@19.1.16': + '@types/react@19.1.17': dependencies: csstype: 3.1.3 + '@types/resolve@1.20.2': {} + '@types/stack-utils@2.0.3': {} '@types/tough-cookie@4.0.5': {} @@ -11363,7 +12550,26 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitejs/plugin-react@4.7.0(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': + '@vercel/nft@0.30.2(rollup@4.52.3)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.0 + '@rollup/pluginutils': 5.3.0(rollup@4.52.3) + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 10.4.5 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.3 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@vitejs/plugin-react@4.7.0(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -11371,11 +12577,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.0.4(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6))': + '@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -11383,7 +12589,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color @@ -11441,6 +12647,16 @@ snapshots: '@vue/shared@3.5.22': {} + abbrev@3.0.1: {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -11481,6 +12697,28 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + archiver-utils@5.0.2: + dependencies: + glob: 10.4.5 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.7.0 + readdir-glob: 1.1.3 + tar-stream: 3.1.7 + zip-stream: 6.0.1 + transitivePeerDependencies: + - react-native-b4a + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -11574,6 +12812,10 @@ snapshots: async-function@1.0.0: {} + async-sema@3.1.1: {} + + async@3.2.6: {} + autoprefixer@10.4.21(postcss@8.5.6): dependencies: browserslist: 4.26.3 @@ -11592,6 +12834,8 @@ snapshots: axobject-query@4.1.0: {} + b4a@1.7.3: {} + babel-dead-code-elimination@1.0.10: dependencies: '@babel/core': 7.28.4 @@ -11681,6 +12925,8 @@ snapshots: balanced-match@1.0.2: {} + bare-events@2.7.0: {} + base64-js@1.5.1: {} baseline-browser-mapping@2.8.10: {} @@ -11741,6 +12987,8 @@ snapshots: dependencies: node-int64: 0.4.0 + buffer-crc32@1.0.0: {} + buffer-from@1.1.2: {} buffer@5.7.1: @@ -11748,10 +12996,15 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bun-types@1.2.23(@types/react@19.1.16): + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bun-types@1.2.23(@types/react@19.1.17): dependencies: '@types/node': 24.6.1 - '@types/react': 19.1.16 + '@types/react': 19.1.17 bundle-require@5.1.0(esbuild@0.25.10): dependencies: @@ -11762,6 +13015,23 @@ snapshots: dependencies: streamsearch: 1.1.0 + c12@3.3.0(magicast@0.3.5): + dependencies: + chokidar: 4.0.3 + confbox: 0.2.2 + defu: 6.1.4 + dotenv: 17.2.3 + exsolve: 1.0.7 + giget: 2.0.0 + jiti: 2.6.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.0.0 + pkg-types: 2.3.0 + rc9: 2.1.2 + optionalDependencies: + magicast: 0.3.5 + cac@6.7.14: {} call-bind-apply-helpers@1.0.2: @@ -11851,6 +13121,10 @@ snapshots: ci-info@4.3.0: {} + citty@0.1.6: + dependencies: + consola: 3.4.2 + cjs-module-lexer@2.1.0: {} class-variance-authority@0.7.1: @@ -11859,6 +13133,12 @@ snapshots: client-only@0.0.1: {} + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.0 + is64bit: 2.0.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -11867,12 +13147,14 @@ snapshots: clsx@2.1.1: {} - cmdk@1.1.1(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + cluster-key-slot@1.1.2: {} + + cmdk@1.1.1(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) transitivePeerDependencies: @@ -11905,20 +13187,38 @@ snapshots: comma-separated-tokens@2.0.3: {} + commander@2.20.3: {} + commander@4.1.1: {} commander@8.3.0: {} + commondir@1.0.1: {} + + compatx@0.2.0: {} + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + compute-scroll-into-view@3.1.1: {} concat-map@0.0.1: {} confbox@0.1.8: {} + confbox@0.2.2: {} + consola@3.4.2: {} convert-source-map@2.0.0: {} + cookie-es@1.2.2: {} + cookie-es@2.0.0: {} cookie@1.0.2: {} @@ -11927,14 +13227,29 @@ snapshots: dependencies: browserslist: 4.26.3 + core-util-is@1.0.3: {} + + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.7.0 + crelt@1.0.6: {} + croner@9.1.0: {} + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -11985,6 +13300,11 @@ snapshots: date-fns@4.1.0: {} + db0@0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)): + optionalDependencies: + better-sqlite3: 11.10.0 + drizzle-orm: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) + debug@3.2.7: dependencies: ms: 2.1.3 @@ -12017,14 +13337,26 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 + defu@6.1.4: {} + + denque@2.1.0: {} + + depd@2.0.0: {} + dequal@2.0.3: {} + destr@2.0.5: {} + + detect-libc@1.0.3: {} + detect-libc@2.1.1: {} detect-newline@3.1.0: {} @@ -12071,6 +13403,10 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + dot-prop@9.0.0: + dependencies: + type-fest: 4.41.0 + dotenv-cli@10.0.0: dependencies: cross-spawn: 7.0.6 @@ -12086,14 +13422,14 @@ snapshots: dotenv@17.2.3: {} - drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.16)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.16))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1): + drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1): optionalDependencies: '@prisma/client': 5.22.0(prisma@5.22.0) '@types/better-sqlite3': 7.6.13 '@types/pg': 8.15.5 - '@types/react': 19.1.16 + '@types/react': 19.1.17 better-sqlite3: 11.10.0 - bun-types: 1.2.23(@types/react@19.1.16) + bun-types: 1.2.23(@types/react@19.1.17) kysely: 0.28.7 pg: 8.16.3 prisma: 5.22.0 @@ -12109,6 +13445,8 @@ snapshots: eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} + electron-to-chromium@1.5.228: {} emittery@0.13.1: {} @@ -12117,6 +13455,8 @@ snapshots: emoji-regex@9.2.2: {} + encodeurl@2.0.0: {} + encoding-sniffer@0.2.1: dependencies: iconv-lite: 0.6.3 @@ -12139,6 +13479,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 + error-stack-parser-es@1.0.5: {} + es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -12375,6 +13717,8 @@ snapshots: escalade@3.2.0: {} + escape-html@1.0.3: {} + escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} @@ -12409,7 +13753,7 @@ snapshots: '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.36.0(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.6.1)) @@ -12429,33 +13773,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 8.57.1 + eslint: 9.36.0(jiti@2.6.1) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 9.36.0(jiti@2.6.1) + eslint: 8.57.1 get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -12470,14 +13814,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -12521,7 +13865,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -12797,6 +14141,8 @@ snapshots: esutils@2.0.3: {} + etag@1.8.1: {} + event-stream@3.3.4: dependencies: duplexer: 0.1.2 @@ -12807,6 +14153,14 @@ snapshots: stream-combiner: 0.0.4 through: 2.3.8 + event-target-shim@5.0.1: {} + + events-universal@1.0.1: + dependencies: + bare-events: 2.7.0 + + events@3.3.0: {} + execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -12819,6 +14173,18 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + exit-x@0.2.2: {} expand-template@2.0.3: {} @@ -12838,6 +14204,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.1: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -12870,8 +14238,6 @@ snapshots: optionalDependencies: picomatch: 4.0.3 - fetchdts@0.1.7: {} - file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -12935,6 +14301,8 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) + fresh@2.0.0: {} + from@0.1.7: {} fs-constants@1.0.0: {} @@ -12947,7 +14315,7 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1): + fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1): dependencies: '@formatjs/intl-localematcher': 0.6.1 '@orama/orama': 3.1.14 @@ -12959,7 +14327,7 @@ snapshots: image-size: 2.0.2 negotiator: 1.0.0 npm-to-yarn: 3.0.1 - react-remove-scroll: 2.7.1(@types/react@19.1.16)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) remark: 15.0.1 remark-gfm: 4.0.1 remark-rehype: 11.1.2 @@ -12967,8 +14335,8 @@ snapshots: shiki: 3.13.0 unist-util-visit: 5.0.0 optionalDependencies: - '@tanstack/react-router': 1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@types/react': 19.1.16 + '@tanstack/react-router': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@types/react': 19.1.17 next: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -12976,24 +14344,24 @@ snapshots: transitivePeerDependencies: - supports-color - fumadocs-docgen@3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)): + fumadocs-docgen@3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)): dependencies: estree-util-to-js: 2.0.0 estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) npm-to-yarn: 3.0.1 oxc-transform: 0.92.0 unist-util-visit: 5.0.0 zod: 4.1.11 - fumadocs-mdx@11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.7(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)): + fumadocs-mdx@11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.0.0 chokidar: 4.0.3 esbuild: 0.25.10 estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) js-yaml: 4.1.0 lru-cache: 11.2.2 picocolors: 1.1.1 @@ -13007,14 +14375,14 @@ snapshots: optionalDependencies: next: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 - vite: 7.1.7(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - fumadocs-typescript@4.0.10(@types/react@19.1.16)(fumadocs-core@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3): + fumadocs-typescript@4.0.10(@types/react@19.1.17)(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3): dependencies: estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) hast-util-to-estree: 3.1.3 hast-util-to-jsx-runtime: 2.3.6 remark: 15.0.1 @@ -13024,25 +14392,25 @@ snapshots: typescript: 5.9.3 unist-util-visit: 5.0.0 optionalDependencies: - '@types/react': 19.1.16 - fumadocs-ui: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) + '@types/react': 19.1.17 + fumadocs-ui: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) transitivePeerDependencies: - supports-color - fumadocs-ui@15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14): - dependencies: - '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.16)(react@19.1.1) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.9(@types/react@19.1.16))(@types/react@19.1.16)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14): + dependencies: + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) class-variance-authority: 0.7.1 - fumadocs-core: 15.7.11(@tanstack/react-router@1.132.27(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.16)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) lodash.merge: 4.6.2 next-themes: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) postcss-selector-parser: 7.1.0 @@ -13052,7 +14420,7 @@ snapshots: scroll-into-view-if-needed: 3.1.0 tailwind-merge: 3.3.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 next: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) tailwindcss: 4.1.14 transitivePeerDependencies: @@ -13101,6 +14469,8 @@ snapshots: get-package-type@0.1.0: {} + get-port-please@3.2.0: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -13108,6 +14478,8 @@ snapshots: get-stream@6.0.1: {} + get-stream@8.0.1: {} + get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 @@ -13118,6 +14490,15 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + giget@2.0.0: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + defu: 6.1.4 + node-fetch-native: 1.6.7 + nypm: 0.6.2 + pathe: 2.0.3 + github-from-package@0.0.0: {} github-slugger@2.0.0: {} @@ -13161,6 +14542,15 @@ snapshots: define-properties: 1.2.1 gopd: 1.2.0 + globby@14.1.0: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.5 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 + globrex@0.1.2: {} gopd@1.2.0: {} @@ -13169,12 +14559,34 @@ snapshots: graphemer@1.4.0: {} - h3@2.0.0-beta.4: + gzip-size@7.0.0: dependencies: - cookie-es: 2.0.0 - fetchdts: 0.1.7 - rou3: 0.7.7 - srvx: 0.8.9 + duplexer: 0.1.2 + + h3@1.13.0: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.5 + defu: 6.1.4 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + ohash: 1.1.6 + radix3: 1.1.2 + ufo: 1.6.1 + uncrypto: 0.1.3 + unenv: 1.10.0 + + h3@1.15.4: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.5 + defu: 6.1.4 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.3 + radix3: 1.1.2 + ufo: 1.6.1 + uncrypto: 0.1.3 handlebars@4.7.8: dependencies: @@ -13283,6 +14695,8 @@ snapshots: highlight.js@11.11.1: {} + hookable@5.5.3: {} + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 @@ -13300,6 +14714,14 @@ snapshots: domutils: 3.2.2 entities: 6.0.1 + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 @@ -13307,6 +14729,8 @@ snapshots: transitivePeerDependencies: - supports-color + http-shutdown@1.2.2: {} + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -13314,8 +14738,12 @@ snapshots: transitivePeerDependencies: - supports-color + httpxy@0.1.7: {} + human-signals@2.1.0: {} + human-signals@5.0.0: {} + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -13359,6 +14787,22 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 + ioredis@5.8.0: + dependencies: + '@ioredis/commands': 1.4.0 + cluster-key-slot: 1.1.2 + debug: 4.4.3 + denque: 2.1.0 + lodash.defaults: 4.2.0 + lodash.isarguments: 3.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + + iron-webcrypto@1.2.1: {} + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -13418,6 +14862,10 @@ snapshots: is-decimal@2.0.1: {} + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -13442,8 +14890,14 @@ snapshots: is-hexadecimal@2.0.1: {} + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-map@2.0.3: {} + is-module@1.0.0: {} + is-negative-zero@2.0.3: {} is-number-object@1.1.1: @@ -13459,6 +14913,10 @@ snapshots: is-potential-custom-element-name@1.0.1: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.8 + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -13474,6 +14932,8 @@ snapshots: is-stream@2.0.1: {} + is-stream@3.0.0: {} + is-string@1.1.1: dependencies: call-bound: 1.0.4 @@ -13500,6 +14960,20 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + + isarray@1.0.0: {} + isarray@2.0.5: {} isbot@5.1.31: {} @@ -13881,6 +15355,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -13948,6 +15424,12 @@ snapshots: dependencies: json-buffer: 3.0.1 + kleur@4.1.5: {} + + klona@2.0.6: {} + + knitwork@1.2.0: {} + kysely@0.28.7: {} language-subtag-registry@0.3.23: {} @@ -13956,6 +15438,10 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + leven@3.1.0: {} levn@0.4.1: @@ -14012,8 +15498,35 @@ snapshots: lines-and-columns@1.2.4: {} + listhen@1.9.0: + dependencies: + '@parcel/watcher': 2.5.1 + '@parcel/watcher-wasm': 2.5.1 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.4.2 + crossws: 0.3.5 + defu: 6.1.4 + get-port-please: 3.2.0 + h3: 1.15.4 + http-shutdown: 1.2.2 + jiti: 2.6.1 + mlly: 1.8.0 + node-forge: 1.3.1 + pathe: 1.1.2 + std-env: 3.9.0 + ufo: 1.6.1 + untun: 0.1.3 + uqr: 0.1.2 + load-tsconfig@0.2.5: {} + local-pkg@1.1.2: + dependencies: + mlly: 1.8.0 + pkg-types: 2.3.0 + quansync: 0.2.11 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -14026,12 +15539,18 @@ snapshots: lodash.debounce@4.0.8: {} + lodash.defaults@4.2.0: {} + + lodash.isarguments@3.1.0: {} + lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} lodash.sortby@4.7.0: {} + lodash@4.17.21: {} + longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -14070,6 +15589,12 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magicast@0.3.5: + dependencies: + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + source-map-js: 1.2.1 + make-dir@4.0.0: dependencies: semver: 7.7.2 @@ -14552,8 +16077,20 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + mime-db@1.54.0: {} + + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + + mime@3.0.0: {} + + mime@4.1.0: {} + mimic-fn@2.1.0: {} + mimic-fn@4.0.0: {} + mimic-response@3.1.0: {} min-indent@1.0.1: {} @@ -14566,6 +16103,10 @@ snapshots: dependencies: brace-expansion: 1.1.12 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.2 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.2 @@ -14670,16 +16211,135 @@ snapshots: - '@babel/core' - babel-plugin-macros + nitropack@2.12.6(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)): + dependencies: + '@cloudflare/kv-asset-handler': 0.4.0 + '@rollup/plugin-alias': 5.1.1(rollup@4.52.3) + '@rollup/plugin-commonjs': 28.0.6(rollup@4.52.3) + '@rollup/plugin-inject': 5.0.5(rollup@4.52.3) + '@rollup/plugin-json': 6.1.0(rollup@4.52.3) + '@rollup/plugin-node-resolve': 16.0.1(rollup@4.52.3) + '@rollup/plugin-replace': 6.0.2(rollup@4.52.3) + '@rollup/plugin-terser': 0.4.4(rollup@4.52.3) + '@vercel/nft': 0.30.2(rollup@4.52.3) + archiver: 7.0.1 + c12: 3.3.0(magicast@0.3.5) + chokidar: 4.0.3 + citty: 0.1.6 + compatx: 0.2.0 + confbox: 0.2.2 + consola: 3.4.2 + cookie-es: 2.0.0 + croner: 9.1.0 + crossws: 0.3.5 + db0: 0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) + defu: 6.1.4 + destr: 2.0.5 + dot-prop: 9.0.0 + esbuild: 0.25.10 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + exsolve: 1.0.7 + globby: 14.1.0 + gzip-size: 7.0.0 + h3: 1.15.4 + hookable: 5.5.3 + httpxy: 0.1.7 + ioredis: 5.8.0 + jiti: 2.6.1 + klona: 2.0.6 + knitwork: 1.2.0 + listhen: 1.9.0 + magic-string: 0.30.19 + magicast: 0.3.5 + mime: 4.1.0 + mlly: 1.8.0 + node-fetch-native: 1.6.7 + node-mock-http: 1.0.3 + ofetch: 1.4.1 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.0.0 + pkg-types: 2.3.0 + pretty-bytes: 7.1.0 + radix3: 1.1.2 + rollup: 4.52.3 + rollup-plugin-visualizer: 6.0.3(rollup@4.52.3) + scule: 1.3.0 + semver: 7.7.2 + serve-placeholder: 2.0.2 + serve-static: 2.2.0 + source-map: 0.7.6 + std-env: 3.9.0 + ufo: 1.6.1 + ultrahtml: 1.6.0 + uncrypto: 0.1.3 + unctx: 2.4.1 + unenv: 2.0.0-rc.21 + unimport: 5.4.1 + unplugin-utils: 0.3.0 + unstorage: 1.17.1(db0@0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)))(ioredis@5.8.0) + untyped: 2.0.0 + unwasm: 0.3.11 + youch: 4.1.0-beta.11 + youch-core: 0.3.3 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - better-sqlite3 + - drizzle-orm + - encoding + - idb-keyval + - mysql2 + - react-native-b4a + - rolldown + - sqlite3 + - supports-color + - uploadthing + node-abi@3.77.0: dependencies: semver: 7.7.2 + node-addon-api@7.1.1: {} + node-cleanup@2.1.2: {} + node-fetch-native@1.6.7: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-forge@1.3.1: {} + + node-gyp-build@4.8.4: {} + node-int64@0.4.0: {} + node-mock-http@1.0.3: {} + node-releases@2.0.21: {} + nopt@8.1.0: + dependencies: + abbrev: 3.0.1 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -14688,6 +16348,10 @@ snapshots: dependencies: path-key: 3.1.1 + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + npm-to-yarn@3.0.1: {} nth-check@2.1.1: @@ -14696,6 +16360,14 @@ snapshots: nwsapi@2.2.22: {} + nypm@0.6.2: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + pathe: 2.0.3 + pkg-types: 2.3.0 + tinyexec: 1.0.1 + object-assign@4.1.1: {} object-inspect@1.13.4: {} @@ -14738,6 +16410,20 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + ofetch@1.4.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.1 + + ohash@1.1.6: {} + + ohash@2.0.11: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -14746,6 +16432,10 @@ snapshots: dependencies: mimic-fn: 2.1.0 + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + oniguruma-parser@0.12.1: {} oniguruma-to-es@4.3.3: @@ -14754,6 +16444,12 @@ snapshots: regex: 6.0.1 regex-recursion: 6.0.2 + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -14843,6 +16539,8 @@ snapshots: dependencies: entities: 6.0.1 + parseurl@1.3.3: {} + path-browserify@1.0.1: {} path-exists@4.0.0: {} @@ -14851,6 +16549,8 @@ snapshots: path-key@3.1.1: {} + path-key@4.0.0: {} + path-parse@1.0.7: {} path-scurry@1.11.1: @@ -14858,12 +16558,18 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-type@6.0.0: {} + + pathe@1.1.2: {} + pathe@2.0.3: {} pause-stream@0.0.11: dependencies: through: 2.3.8 + perfect-debounce@2.0.0: {} + pg-cloudflare@1.2.7: optional: true @@ -14917,6 +16623,12 @@ snapshots: mlly: 1.8.0 pathe: 2.0.3 + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.7 + pathe: 2.0.3 + playwright-core@1.55.1: {} playwright@1.55.1: @@ -14988,6 +16700,8 @@ snapshots: prettier@3.6.2: {} + pretty-bytes@7.1.0: {} + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -15006,6 +16720,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -15119,8 +16837,23 @@ snapshots: pure-rand@7.0.1: {} + quansync@0.2.11: {} + queue-microtask@1.2.3: {} + radix3@1.1.2: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.5 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -15154,11 +16887,11 @@ snapshots: react-is@18.3.1: {} - react-markdown@10.1.0(@types/react@19.1.16)(react@19.1.1): + react-markdown@10.1.0(@types/react@19.1.17)(react@19.1.1): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.1.16 + '@types/react': 19.1.17 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 @@ -15179,24 +16912,24 @@ snapshots: react-refresh@0.17.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.16)(react@19.1.1): + react-remove-scroll-bar@2.3.8(@types/react@19.1.17)(react@19.1.1): dependencies: react: 19.1.1 - react-style-singleton: 2.2.3(@types/react@19.1.16)(react@19.1.1) + react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.1) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - react-remove-scroll@2.7.1(@types/react@19.1.16)(react@19.1.1): + react-remove-scroll@2.7.1(@types/react@19.1.17)(react@19.1.1): dependencies: react: 19.1.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.16)(react@19.1.1) - react-style-singleton: 2.2.3(@types/react@19.1.16)(react@19.1.1) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.17)(react@19.1.1) + react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.16)(react@19.1.1) - use-sidecar: 1.1.3(@types/react@19.1.16)(react@19.1.1) + use-callback-ref: 1.3.3(@types/react@19.1.17)(react@19.1.1) + use-sidecar: 1.1.3(@types/react@19.1.17)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 react-router-dom@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: @@ -15212,22 +16945,44 @@ snapshots: optionalDependencies: react-dom: 19.1.1(react@19.1.1) - react-style-singleton@2.2.3(@types/react@19.1.16)(react@19.1.1): + react-style-singleton@2.2.3(@types/react@19.1.17)(react@19.1.1): dependencies: get-nonce: 1.0.1 react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 react@19.1.1: {} + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -15276,6 +17031,12 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -15438,6 +17199,15 @@ snapshots: dependencies: glob: 7.2.3 + rollup-plugin-visualizer@6.0.3(rollup@4.52.3): + dependencies: + open: 8.4.2 + picomatch: 4.0.3 + source-map: 0.7.6 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.52.3 + rollup@4.52.3: dependencies: '@types/estree': 1.0.8 @@ -15486,6 +17256,8 @@ snapshots: has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} safe-push-apply@1.0.0: @@ -15511,16 +17283,51 @@ snapshots: dependencies: compute-scroll-into-view: 3.1.1 + scule@1.3.0: {} + semver@6.3.1: {} semver@7.7.2: {} + send@1.2.0: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + seroval-plugins@1.3.3(seroval@1.3.2): dependencies: seroval: 1.3.2 seroval@1.3.2: {} + serve-placeholder@2.0.2: + dependencies: + defu: 6.1.4 + + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color + set-cookie-parser@2.7.1: {} set-function-length@1.2.2: @@ -15545,6 +17352,8 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 + setprototypeof@1.2.0: {} + sharp@0.34.4: dependencies: '@img/colour': 1.0.0 @@ -15634,6 +17443,10 @@ snapshots: slash@3.0.0: {} + slash@5.1.0: {} + + smob@1.5.0: {} + sonner@2.0.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: react: 19.1.1 @@ -15646,6 +17459,11 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + source-map@0.6.1: {} source-map@0.7.6: {} @@ -15664,16 +17482,20 @@ snapshots: sprintf-js@1.0.3: {} - srvx@0.8.9: - dependencies: - cookie-es: 2.0.0 - stable-hash@0.0.5: {} stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 + standard-as-callback@2.1.0: {} + + statuses@2.0.1: {} + + statuses@2.0.2: {} + + std-env@3.9.0: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -15685,6 +17507,14 @@ snapshots: streamsearch@1.1.0: {} + streamx@2.23.0: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + transitivePeerDependencies: + - react-native-b4a + string-argv@0.3.2: {} string-length@4.0.2: @@ -15754,6 +17584,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -15777,6 +17611,8 @@ snapshots: strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 @@ -15785,6 +17621,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + style-mod@4.1.2: {} style-to-js@1.1.17: @@ -15810,6 +17650,8 @@ snapshots: pirates: 4.0.7 ts-interface-checker: 0.1.13 + supports-color@10.2.2: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -15826,6 +17668,8 @@ snapshots: dependencies: '@pkgr/core': 0.2.9 + system-architecture@0.1.0: {} + tailwind-merge@3.3.1: {} tailwindcss-animate@1.0.7(tailwindcss@4.1.14): @@ -15851,6 +17695,14 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + tar-stream@3.1.7: + dependencies: + b4a: 1.7.3 + fast-fifo: 1.3.2 + streamx: 2.23.0 + transitivePeerDependencies: + - react-native-b4a + tar@7.5.1: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -15859,12 +17711,25 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 + terser@5.44.0: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + text-decoder@1.2.3: + dependencies: + b4a: 1.7.3 + transitivePeerDependencies: + - react-native-b4a + text-table@0.2.0: {} thenify-all@1.6.0: @@ -15902,10 +17767,14 @@ snapshots: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + tough-cookie@5.1.2: dependencies: tldts: 6.1.86 + tr46@0.0.3: {} + tr46@1.0.1: dependencies: punycode: 2.3.1 @@ -16115,6 +17984,8 @@ snapshots: uglify-js@3.19.3: optional: true + ultrahtml@1.6.0: {} + unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -16124,6 +17995,13 @@ snapshots: uncrypto@0.1.3: {} + unctx@2.4.1: + dependencies: + acorn: 8.15.0 + estree-walker: 3.0.3 + magic-string: 0.30.19 + unplugin: 2.3.10 + undici-types@6.21.0: {} undici-types@7.13.0: {} @@ -16132,6 +18010,22 @@ snapshots: undici@7.16.0: {} + unenv@1.10.0: + dependencies: + consola: 3.4.2 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.7 + pathe: 1.1.2 + + unenv@2.0.0-rc.21: + dependencies: + defu: 6.1.4 + exsolve: 1.0.7 + ohash: 2.0.11 + pathe: 2.0.3 + ufo: 1.6.1 + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -16143,6 +18037,8 @@ snapshots: unicode-property-aliases-ecmascript@2.2.0: {} + unicorn-magic@0.3.0: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -16153,6 +18049,23 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 + unimport@5.4.1: + dependencies: + acorn: 8.15.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + local-pkg: 1.1.2 + magic-string: 0.30.19 + mlly: 1.8.0 + pathe: 2.0.3 + picomatch: 4.0.3 + pkg-types: 2.3.0 + scule: 1.3.0 + strip-literal: 3.1.0 + tinyglobby: 0.2.15 + unplugin: 2.3.10 + unplugin-utils: 0.3.0 + unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -16190,6 +18103,11 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + unplugin-utils@0.3.0: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.3 + unplugin@2.3.10: dependencies: '@jridgewell/remapping': 2.3.5 @@ -16221,30 +18139,69 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + unstorage@1.17.1(db0@0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)))(ioredis@5.8.0): + dependencies: + anymatch: 3.1.3 + chokidar: 4.0.3 + destr: 2.0.5 + h3: 1.15.4 + lru-cache: 10.4.3 + node-fetch-native: 1.6.7 + ofetch: 1.4.1 + ufo: 1.6.1 + optionalDependencies: + db0: 0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) + ioredis: 5.8.0 + + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + pathe: 1.1.2 + + untyped@2.0.0: + dependencies: + citty: 0.1.6 + defu: 6.1.4 + jiti: 2.6.1 + knitwork: 1.2.0 + scule: 1.3.0 + + unwasm@0.3.11: + dependencies: + knitwork: 1.2.0 + magic-string: 0.30.19 + mlly: 1.8.0 + pathe: 2.0.3 + pkg-types: 2.3.0 + unplugin: 2.3.10 + update-browserslist-db@1.1.3(browserslist@4.26.3): dependencies: browserslist: 4.26.3 escalade: 3.2.0 picocolors: 1.1.1 + uqr@0.1.2: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@19.1.16)(react@19.1.1): + use-callback-ref@1.3.3(@types/react@19.1.17)(react@19.1.1): dependencies: react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 - use-sidecar@1.1.3(@types/react@19.1.16)(react@19.1.1): + use-sidecar@1.1.3(@types/react@19.1.17)(react@19.1.1): dependencies: detect-node-es: 1.1.0 react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.16 + '@types/react': 19.1.17 use-sync-external-store@1.5.0(react@19.1.1): dependencies: @@ -16281,18 +18238,18 @@ snapshots: fast-glob: 3.3.3 magic-string: 0.30.19 - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - typescript - vite@7.1.7(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6): + vite@7.1.3(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -16305,10 +18262,11 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.1 + terser: 5.44.0 tsx: 4.20.6 optional: true - vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6): + vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -16321,11 +18279,12 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.1 + terser: 5.44.0 tsx: 4.20.6 - vitefu@1.1.1(vite@7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6)): + vitefu@1.1.1(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): optionalDependencies: - vite: 7.1.7(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) vue@3.5.22(typescript@5.9.3): dependencies: @@ -16347,6 +18306,8 @@ snapshots: dependencies: makeerror: 1.0.12 + webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} webidl-conversions@7.0.0: {} @@ -16364,6 +18325,11 @@ snapshots: tr46: 5.1.1 webidl-conversions: 7.0.0 + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 @@ -16473,6 +18439,25 @@ snapshots: yocto-queue@0.1.0: {} + youch-core@0.3.3: + dependencies: + '@poppinss/exception': 1.2.2 + error-stack-parser-es: 1.0.5 + + youch@4.1.0-beta.11: + dependencies: + '@poppinss/colors': 4.1.5 + '@poppinss/dumper': 0.6.4 + '@speed-highlight/core': 1.2.7 + cookie: 1.0.2 + youch-core: 0.3.3 + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.7.0 + zod@3.25.76: {} zod@4.1.11: {} From 23ec80eed2ef9b221813cb65e04e690813551810 Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Thu, 2 Oct 2025 15:39:03 -0400 Subject: [PATCH 03/15] chore: fix tests and types --- packages/better-blog/package.json | 78 ++++++++++++++----- .../src/router/blog-router-client.tsx | 2 +- .../src/router/pluggable-routes.tsx | 31 ++++++-- packages/better-blog/src/router/routes.ts | 13 ++-- packages/better-blog/src/test/setup.ts | 7 +- pnpm-lock.yaml | 41 +++++----- 6 files changed, 117 insertions(+), 55 deletions(-) diff --git a/packages/better-blog/package.json b/packages/better-blog/package.json index cc50d7a..d3a5b6b 100644 --- a/packages/better-blog/package.json +++ b/packages/better-blog/package.json @@ -24,15 +24,25 @@ "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", - "files": ["dist"], - "keywords": ["typescript", "react", "blog", "shadcn", "nextjs"], + "files": [ + "dist" + ], + "keywords": [ + "typescript", + "react", + "blog", + "shadcn", + "nextjs" + ], "author": "olliethedev", "license": "MIT", "publishConfig": { "access": "public", "provenance": true }, - "sideEffects": ["./dist/style.css"], + "sideEffects": [ + "./dist/style.css" + ], "exports": { "./css": "./dist/style.css", ".": { @@ -198,21 +208,51 @@ }, "typesVersions": { "*": { - "types": ["dist/types.d.ts"], - "queries": ["dist/queries.d.ts"], - "hooks": ["dist/hooks.d.ts"], - "router": ["dist/router.d.ts"], - "router/client": ["dist/router/client.d.ts"], - "context": ["dist/context.d.ts"], - "client": ["dist/client.d.ts"], - "api": ["dist/api.d.ts"], - "server/pages": ["dist/server/pages.d.ts"], - "sitemap": ["dist/sitemap.d.ts"], - "providers/api": ["dist/providers/api.d.ts"], - "providers/drizzle": ["dist/providers/drizzle.d.ts"], - "providers/memory": ["dist/providers/memory.d.ts"], - "providers/prisma": ["dist/providers/prisma.d.ts"], - "providers/sql": ["dist/providers/sql.d.ts"] + "types": [ + "dist/types.d.ts" + ], + "queries": [ + "dist/queries.d.ts" + ], + "hooks": [ + "dist/hooks.d.ts" + ], + "router": [ + "dist/router.d.ts" + ], + "router/client": [ + "dist/router/client.d.ts" + ], + "context": [ + "dist/context.d.ts" + ], + "client": [ + "dist/client.d.ts" + ], + "api": [ + "dist/api.d.ts" + ], + "server/pages": [ + "dist/server/pages.d.ts" + ], + "sitemap": [ + "dist/sitemap.d.ts" + ], + "providers/api": [ + "dist/providers/api.d.ts" + ], + "providers/drizzle": [ + "dist/providers/drizzle.d.ts" + ], + "providers/memory": [ + "dist/providers/memory.d.ts" + ], + "providers/prisma": [ + "dist/providers/prisma.d.ts" + ], + "providers/sql": [ + "dist/providers/sql.d.ts" + ] } }, "devDependencies": { @@ -301,7 +341,7 @@ "dependencies": { "@milkdown/crepe": "^7.15.3", "@milkdown/kit": "^7.15.3", - "@olliethedev/yar": "1.0.5", + "@olliethedev/yar": "^1.0.6", "better-call": "^1.0.19" } } diff --git a/packages/better-blog/src/router/blog-router-client.tsx b/packages/better-blog/src/router/blog-router-client.tsx index f35743e..44015b6 100644 --- a/packages/better-blog/src/router/blog-router-client.tsx +++ b/packages/better-blog/src/router/blog-router-client.tsx @@ -90,7 +90,7 @@ export function matchRouteClient( const type = extra?.type || "unknown" return { - type, + type: type as RouteMatch["type"], params, metadata: { title, diff --git a/packages/better-blog/src/router/pluggable-routes.tsx b/packages/better-blog/src/router/pluggable-routes.tsx index 004a7a5..b2a6404 100644 --- a/packages/better-blog/src/router/pluggable-routes.tsx +++ b/packages/better-blog/src/router/pluggable-routes.tsx @@ -13,6 +13,7 @@ import { import { PostPageSkeleton } from "@/components/better-blog/post-page-skeleton" import { DefaultError } from "@/components/better-blog/default-error" +import type { RouteMatch } from "@/types" // Pluggable route definitions with components for client-side use import { createRoute } from "@olliethedev/yar" @@ -52,7 +53,10 @@ export const homeRoute = createRoute("/", () => ({ meta: () => [ { name: "title", content: "Blog Posts" }, { name: "description", content: "Latest blog posts" } - ] + ], + extra: { + type: "home" as RouteMatch["type"] + } })) /** @@ -66,7 +70,10 @@ export const postRoute = createRoute("/:slug", ({ params }) => ({ meta: () => [ { name: "title", content: `Post: ${params.slug || ""}` }, { name: "description", content: "Blog post content" } - ] + ], + extra: { + type: "post" as RouteMatch["type"] + } })) /** @@ -83,7 +90,10 @@ export const tagRoute = createRoute("/tag/:tag", ({ params }) => ({ name: "description", content: `All posts tagged with ${params.tag || ""}` } - ] + ], + extra: { + type: "tag" as RouteMatch["type"] + } })) /** @@ -97,7 +107,10 @@ export const draftsRoute = createRoute("/drafts", () => ({ meta: () => [ { name: "title", content: "My Drafts" }, { name: "description", content: "Draft posts" } - ] + ], + extra: { + type: "drafts" as RouteMatch["type"] + } })) /** @@ -111,7 +124,10 @@ export const newPostRoute = createRoute("/new", () => ({ meta: () => [ { name: "title", content: "Create New Post" }, { name: "description", content: "Create a new blog post" } - ] + ], + extra: { + type: "new" as RouteMatch["type"] + } })) /** @@ -125,5 +141,8 @@ export const editPostRoute = createRoute("/:slug/edit", ({ params }) => ({ meta: () => [ { name: "title", content: `Editing: ${params.slug || ""}` }, { name: "description", content: "Edit blog post" } - ] + ], + extra: { + type: "edit" as RouteMatch["type"] + } })) diff --git a/packages/better-blog/src/router/routes.ts b/packages/better-blog/src/router/routes.ts index 5d999f2..98acdc3 100644 --- a/packages/better-blog/src/router/routes.ts +++ b/packages/better-blog/src/router/routes.ts @@ -1,5 +1,6 @@ // Server-safe route definitions (no component imports) // This file can be imported in both server and client contexts +import type { RouteMatch } from "@/types" import { createRoute } from "@olliethedev/yar" /** @@ -12,7 +13,7 @@ export const homeRoute = createRoute("/", () => ({ { name: "description", content: "Latest blog posts" } ], extra: { - type: "home" + type: "home" as RouteMatch["type"] } })) @@ -26,7 +27,7 @@ export const postRoute = createRoute("/:slug", ({ params }) => ({ { name: "description", content: "Blog post content" } ], extra: { - type: "post" + type: "post" as RouteMatch["type"] } })) @@ -43,7 +44,7 @@ export const tagRoute = createRoute("/tag/:tag", ({ params }) => ({ } ], extra: { - type: "tag" + type: "tag" as RouteMatch["type"] } })) @@ -57,7 +58,7 @@ export const draftsRoute = createRoute("/drafts", () => ({ { name: "description", content: "Draft posts" } ], extra: { - type: "drafts" + type: "drafts" as RouteMatch["type"] } })) @@ -71,7 +72,7 @@ export const newPostRoute = createRoute("/new", () => ({ { name: "description", content: "Create a new blog post" } ], extra: { - type: "new" + type: "new" as RouteMatch["type"] } })) @@ -85,6 +86,6 @@ export const editPostRoute = createRoute("/:slug/edit", ({ params }) => ({ { name: "description", content: "Edit blog post" } ], extra: { - type: "edit" + type: "edit" as RouteMatch["type"] } })) diff --git a/packages/better-blog/src/test/setup.ts b/packages/better-blog/src/test/setup.ts index 34a9101..2bc1520 100644 --- a/packages/better-blog/src/test/setup.ts +++ b/packages/better-blog/src/test/setup.ts @@ -1,5 +1,10 @@ // Jest setup for the project -import "@testing-library/jest-dom" +// Only import @testing-library/jest-dom in jsdom environment +// Some tests use @jest-environment node and don't have DOM globals +if (typeof window !== "undefined") { + // eslint-disable-next-line @typescript-eslint/no-require-imports + require("@testing-library/jest-dom") +} import { webcrypto as crypto } from "node:crypto" // Polyfills for Node test environment used by pg diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70fdba9..3c58ee3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -373,8 +373,8 @@ importers: specifier: ^7.15.3 version: 7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3) '@olliethedev/yar': - specifier: 1.0.5 - version: 1.0.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17) + specifier: ^1.0.6 + version: 1.0.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17) '@radix-ui/react-accordion': specifier: '>=1.2.0' version: 1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -516,7 +516,7 @@ importers: version: 5.22.0(prisma@5.22.0) '@tailwindcss/typography': specifier: ^0.5.16 - version: 0.5.19(tailwindcss@4.1.14) + version: 0.5.19 '@testing-library/jest-dom': specifier: ^6.6.4 version: 6.9.0 @@ -573,7 +573,7 @@ importers: version: 5.22.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.14) + version: 1.0.7 ts-jest: specifier: ^29.4.0 version: 29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.10)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@5.9.3) @@ -2198,8 +2198,8 @@ packages: '@ocavue/utils@0.7.1': resolution: {integrity: sha512-gY/YWdyTPGx8YTT0q/0tQJs6kPJ2XeXRPfdzWLt+wefIOuwb1n5Nq3GwKM/AY+Wab3dbx6w+MkX8VSbrm3l6Xg==} - '@olliethedev/yar@1.0.5': - resolution: {integrity: sha512-OZwOJt7C2lAKCw247SlQnrUthrcypdoa+c87us/gUQuYWzVAyC39gn+TD+HHsfxzKOnrXlAVuYX6EuG/j1rb/A==} + '@olliethedev/yar@1.0.6': + resolution: {integrity: sha512-j3I/VDKh7e7eRRMSnCqbFbVfjBZlnLruNamd78h/y2cE2mD7eRdIRT11Vgm2rZXSpuR0uqvUQfjXlp2EhgmfbA==} peerDependencies: '@types/react': ^19.1.16 '@types/react-dom': ^19.1.9 @@ -10675,7 +10675,7 @@ snapshots: '@ocavue/utils@0.7.1': {} - '@olliethedev/yar@1.0.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)': + '@olliethedev/yar@1.0.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)': dependencies: '@types/react': 19.1.17 '@types/react-dom': 19.1.11(@types/react@19.1.17) @@ -11714,10 +11714,9 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.1.14 - '@tailwindcss/typography@0.5.19(tailwindcss@4.1.14)': + '@tailwindcss/typography@0.5.19': dependencies: postcss-selector-parser: 6.0.10 - tailwindcss: 4.1.14 '@tailwindcss/vite@4.1.14(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: @@ -13753,7 +13752,7 @@ snapshots: '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.36.0(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.36.0(jiti@2.6.1)) @@ -13773,33 +13772,33 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 9.36.0(jiti@2.6.1) + eslint: 8.57.1 get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 8.57.1 + eslint: 9.36.0(jiti@2.6.1) get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -13814,14 +13813,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.36.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color @@ -13865,7 +13864,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.36.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)))(eslint@9.36.0(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.36.0(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -17672,9 +17671,7 @@ snapshots: tailwind-merge@3.3.1: {} - tailwindcss-animate@1.0.7(tailwindcss@4.1.14): - dependencies: - tailwindcss: 4.1.14 + tailwindcss-animate@1.0.7: {} tailwindcss@4.1.14: {} From e768f976ed4d0951b631ef36a616c8b900d8d1bc Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Thu, 2 Oct 2025 15:53:54 -0400 Subject: [PATCH 04/15] lint: fix --- packages/better-blog/package.json | 76 ++++++++----------------------- 1 file changed, 18 insertions(+), 58 deletions(-) diff --git a/packages/better-blog/package.json b/packages/better-blog/package.json index d3a5b6b..7757568 100644 --- a/packages/better-blog/package.json +++ b/packages/better-blog/package.json @@ -24,25 +24,15 @@ "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", - "files": [ - "dist" - ], - "keywords": [ - "typescript", - "react", - "blog", - "shadcn", - "nextjs" - ], + "files": ["dist"], + "keywords": ["typescript", "react", "blog", "shadcn", "nextjs"], "author": "olliethedev", "license": "MIT", "publishConfig": { "access": "public", "provenance": true }, - "sideEffects": [ - "./dist/style.css" - ], + "sideEffects": ["./dist/style.css"], "exports": { "./css": "./dist/style.css", ".": { @@ -208,51 +198,21 @@ }, "typesVersions": { "*": { - "types": [ - "dist/types.d.ts" - ], - "queries": [ - "dist/queries.d.ts" - ], - "hooks": [ - "dist/hooks.d.ts" - ], - "router": [ - "dist/router.d.ts" - ], - "router/client": [ - "dist/router/client.d.ts" - ], - "context": [ - "dist/context.d.ts" - ], - "client": [ - "dist/client.d.ts" - ], - "api": [ - "dist/api.d.ts" - ], - "server/pages": [ - "dist/server/pages.d.ts" - ], - "sitemap": [ - "dist/sitemap.d.ts" - ], - "providers/api": [ - "dist/providers/api.d.ts" - ], - "providers/drizzle": [ - "dist/providers/drizzle.d.ts" - ], - "providers/memory": [ - "dist/providers/memory.d.ts" - ], - "providers/prisma": [ - "dist/providers/prisma.d.ts" - ], - "providers/sql": [ - "dist/providers/sql.d.ts" - ] + "types": ["dist/types.d.ts"], + "queries": ["dist/queries.d.ts"], + "hooks": ["dist/hooks.d.ts"], + "router": ["dist/router.d.ts"], + "router/client": ["dist/router/client.d.ts"], + "context": ["dist/context.d.ts"], + "client": ["dist/client.d.ts"], + "api": ["dist/api.d.ts"], + "server/pages": ["dist/server/pages.d.ts"], + "sitemap": ["dist/sitemap.d.ts"], + "providers/api": ["dist/providers/api.d.ts"], + "providers/drizzle": ["dist/providers/drizzle.d.ts"], + "providers/memory": ["dist/providers/memory.d.ts"], + "providers/prisma": ["dist/providers/prisma.d.ts"], + "providers/sql": ["dist/providers/sql.d.ts"] } }, "devDependencies": { From ec5b6308c21c0ade905f88734fe428307237630e Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Thu, 2 Oct 2025 16:14:16 -0400 Subject: [PATCH 05/15] fix: test config --- packages/better-blog/src/providers/sql/dialect.ts | 1 + packages/better-blog/src/router/blog-router-client.tsx | 9 ++++----- packages/better-blog/src/test/setup.ts | 4 +++- packages/better-blog/tsconfig.json | 1 + 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/better-blog/src/providers/sql/dialect.ts b/packages/better-blog/src/providers/sql/dialect.ts index 21b966f..494be5e 100644 --- a/packages/better-blog/src/providers/sql/dialect.ts +++ b/packages/better-blog/src/providers/sql/dialect.ts @@ -1,3 +1,4 @@ +// @ts-expect-error - bun:sqlite is only available in Bun runtime, not in Node/test environments import type { Database as BunDatabase } from "bun:sqlite" // import type { DatabaseSync } from "node:sqlite"; import type { Database } from "better-sqlite3" diff --git a/packages/better-blog/src/router/blog-router-client.tsx b/packages/better-blog/src/router/blog-router-client.tsx index 44015b6..29cf2b3 100644 --- a/packages/better-blog/src/router/blog-router-client.tsx +++ b/packages/better-blog/src/router/blog-router-client.tsx @@ -2,6 +2,8 @@ // Client-side blog router with components import { createRouter } from "@olliethedev/yar" + +import type { RouteMatch } from "@/types" import { draftsRoute, editPostRoute, @@ -34,9 +36,6 @@ export const blogRouterClient = createRouter(clientRoutes) */ export type BlogRoutesClient = typeof clientRoutes -import type { RouteMatch } from "@/types" -import { blogRouter } from "./blog-router" - /** * Match a route based on path segments and return route information * Uses yar's synchronous getRoute (v1.0.3+) for route matching @@ -57,7 +56,7 @@ export function matchRouteClient( const path = normalizedSlug.length ? `/${normalizedSlug.join("/")}` : "/" // Use yar's synchronous getRoute to match the route - const route = blogRouter.getRoute(path) + const route = blogRouterClient.getRoute(path) if (route) { const { meta, params, extra } = route @@ -90,7 +89,7 @@ export function matchRouteClient( const type = extra?.type || "unknown" return { - type: type as RouteMatch["type"], + type: type, params, metadata: { title, diff --git a/packages/better-blog/src/test/setup.ts b/packages/better-blog/src/test/setup.ts index 2bc1520..249682a 100644 --- a/packages/better-blog/src/test/setup.ts +++ b/packages/better-blog/src/test/setup.ts @@ -1,5 +1,7 @@ // Jest setup for the project -// Only import @testing-library/jest-dom in jsdom environment +/// + +// Conditionally load the matchers only in jsdom environment // Some tests use @jest-environment node and don't have DOM globals if (typeof window !== "undefined") { // eslint-disable-next-line @typescript-eslint/no-require-imports diff --git a/packages/better-blog/tsconfig.json b/packages/better-blog/tsconfig.json index 13d6263..189563b 100644 --- a/packages/better-blog/tsconfig.json +++ b/packages/better-blog/tsconfig.json @@ -18,6 +18,7 @@ "@/*": ["./*"] }, "allowSyntheticDefaultImports": true, + "types": ["@testing-library/jest-dom", "jest", "node"], "noResolve": false }, "include": ["src"], From 3ec5322b6514dc3302f804de74586e6c482c93e7 Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Thu, 2 Oct 2025 16:28:08 -0400 Subject: [PATCH 06/15] fix: test config --- packages/better-blog/src/test/setup.ts | 14 +- pnpm-lock.yaml | 1161 ++++++++++++------------ 2 files changed, 589 insertions(+), 586 deletions(-) diff --git a/packages/better-blog/src/test/setup.ts b/packages/better-blog/src/test/setup.ts index 249682a..2b18e8b 100644 --- a/packages/better-blog/src/test/setup.ts +++ b/packages/better-blog/src/test/setup.ts @@ -1,12 +1,6 @@ // Jest setup for the project -/// +import '@testing-library/jest-dom'; -// Conditionally load the matchers only in jsdom environment -// Some tests use @jest-environment node and don't have DOM globals -if (typeof window !== "undefined") { - // eslint-disable-next-line @typescript-eslint/no-require-imports - require("@testing-library/jest-dom") -} import { webcrypto as crypto } from "node:crypto" // Polyfills for Node test environment used by pg @@ -27,3 +21,9 @@ if (!(global as unknown as { crypto?: Crypto }).crypto) { // @ts-ignore global.crypto = crypto as unknown as Crypto } + +global.ResizeObserver = jest.fn().mockImplementation(() => ({ + observe: jest.fn(), + unobserve: jest.fn(), + disconnect: jest.fn(), +})) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c58ee3..f6ad107 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,19 +31,19 @@ importers: version: 12.23.22(react-dom@19.1.1(react@19.1.1))(react@19.1.1) fumadocs-core: specifier: 15.7.11 - version: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + version: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) fumadocs-docgen: specifier: ^3.0.0 - version: 3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)) + version: 3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)) fumadocs-mdx: specifier: 11.9.1 - version: 11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + version: 11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) fumadocs-typescript: specifier: ^4.0.8 - version: 4.0.10(@types/react@19.1.17)(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3) + version: 4.0.10(@types/react@19.2.0)(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3) fumadocs-ui: specifier: 15.7.11 - version: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) + version: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) lucide-react: specifier: ^0.522.0 version: 0.522.0(react@19.1.1) @@ -77,10 +77,10 @@ importers: version: 24.0.3 '@types/react': specifier: ^19.1.8 - version: 19.1.17 + version: 19.2.0 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.11(@types/react@19.1.17) + version: 19.2.0(@types/react@19.2.0) eslint: specifier: ^8 version: 8.57.1 @@ -101,7 +101,7 @@ importers: dependencies: '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.3(@types/react@19.1.17)(react@19.1.1) + version: 1.2.3(@types/react@19.2.0)(react@19.1.1) '@tanstack/react-query': specifier: ^5.84.1 version: 5.90.2(react@19.1.1) @@ -150,10 +150,10 @@ importers: version: 8.15.5 '@types/react': specifier: ^19 - version: 19.1.17 + version: 19.2.0 '@types/react-dom': specifier: ^19 - version: 19.1.11(@types/react@19.1.17) + version: 19.2.0(@types/react@19.2.0) dotenv-cli: specifier: ^10.0.0 version: 10.0.0 @@ -180,13 +180,13 @@ importers: dependencies: '@radix-ui/react-dropdown-menu': specifier: ^2.1.15 - version: 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.16(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.3(@types/react@19.1.17)(react@19.1.1) + version: 1.2.3(@types/react@19.2.0)(react@19.1.1) '@tailwindcss/vite': specifier: ^4.1.11 - version: 4.1.14(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + version: 4.1.14(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) '@tanstack/react-query': specifier: ^5.84.1 version: 5.90.2(react@19.1.1) @@ -232,16 +232,16 @@ importers: version: 4.1.14 '@types/node': specifier: ^24.2.1 - version: 24.6.1 + version: 24.6.2 '@types/react': specifier: ^19.1.8 - version: 19.1.17 + version: 19.2.0 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.11(@types/react@19.1.17) + version: 19.2.0(@types/react@19.2.0) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.7.0(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + version: 4.7.0(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -253,7 +253,7 @@ importers: version: 5.2.0(eslint@9.36.0(jiti@2.6.1)) eslint-plugin-react-refresh: specifier: ^0.4.20 - version: 0.4.22(eslint@9.36.0(jiti@2.6.1)) + version: 0.4.23(eslint@9.36.0(jiti@2.6.1)) globals: specifier: ^16.3.0 version: 16.4.0 @@ -268,7 +268,7 @@ importers: version: 8.45.0(eslint@9.36.0(jiti@2.6.1))(typescript@5.8.3) vite: specifier: ^7.0.4 - version: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + version: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) vite-plugin-commonjs: specifier: ^0.10.4 version: 0.10.4 @@ -280,7 +280,7 @@ importers: version: 4.1.14 '@tailwindcss/vite': specifier: ^4.1.12 - version: 4.1.14(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + version: 4.1.14(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) '@tanstack/react-query': specifier: ^5.85.5 version: 5.90.2(react@19.1.1) @@ -295,7 +295,7 @@ importers: version: 1.131.28(@tanstack/query-core@5.90.2)(@tanstack/react-query@5.90.2(react@19.1.1))(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@tanstack/router-core@1.131.28)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@tanstack/react-start': specifier: 1.131.28 - version: 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + version: 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) better-blog: specifier: workspace:* version: link:../../../packages/better-blog @@ -325,20 +325,20 @@ importers: version: 4.1.14 vite: specifier: 7.1.3 - version: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + version: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) zod: specifier: ^4.1.9 version: 4.1.11 devDependencies: '@types/react': specifier: ^19.1.11 - version: 19.1.17 + version: 19.2.0 '@types/react-dom': specifier: ^19.1.8 - version: 19.1.11(@types/react@19.1.17) + version: 19.2.0(@types/react@19.2.0) '@vitejs/plugin-react': specifier: ^5.0.1 - version: 5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + version: 5.0.4(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) tw-animate-css: specifier: ^1.3.7 version: 1.4.0 @@ -347,7 +347,7 @@ importers: version: 5.9.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + version: 5.1.4(typescript@5.9.3)(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) e2e: devDependencies: @@ -374,79 +374,79 @@ importers: version: 7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3) '@olliethedev/yar': specifier: ^1.0.6 - version: 1.0.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17) + version: 1.0.6(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0) '@radix-ui/react-accordion': specifier: '>=1.2.0' - version: 1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.12(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-alert-dialog': specifier: '>=1.1.0' - version: 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-avatar': specifier: '>=1.1.0' - version: 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.10(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-checkbox': specifier: '>=1.1.0' - version: 1.3.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.3.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-context': specifier: '>=1.1.0' - version: 1.1.2(@types/react@19.1.17)(react@19.1.1) + version: 1.1.2(@types/react@19.2.0)(react@19.1.1) '@radix-ui/react-dialog': specifier: '>=1.1.0' - version: 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-dropdown-menu': specifier: '>=2.1.0' - version: 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.16(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-icons': specifier: '>=1.1.0' version: 1.3.2(react@19.1.1) '@radix-ui/react-label': specifier: '>=2.1.0' - version: 2.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-popover': specifier: '>=1.1.0' - version: 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-primitive': specifier: '>=2.0.0' - version: 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-radio-group': specifier: '>=1.3.0' - version: 1.3.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.3.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-select': specifier: '>=2.2.0' - version: 2.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.2.6(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-separator': specifier: '>=1.1.0' - version: 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-slot': specifier: '>=1.1.0' - version: 1.2.3(@types/react@19.1.17)(react@19.1.1) + version: 1.2.3(@types/react@19.2.0)(react@19.1.1) '@radix-ui/react-switch': specifier: '>=1.1.0' - version: 1.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.6(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-tabs': specifier: '>=1.1.0' - version: 1.1.13(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.13(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-toggle': specifier: '>=1.1.0' - version: 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.10(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-toggle-group': specifier: '>=1.1.0' - version: 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-tooltip': specifier: '>=1.2.0' - version: 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.2.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-use-callback-ref': specifier: '>=1.1.0' - version: 1.1.1(@types/react@19.1.17)(react@19.1.1) + version: 1.1.1(@types/react@19.2.0)(react@19.1.1) '@radix-ui/react-use-layout-effect': specifier: '>=1.1.0' - version: 1.1.1(@types/react@19.1.17)(react@19.1.1) + version: 1.1.1(@types/react@19.2.0)(react@19.1.1) '@tanstack/react-query': specifier: '>=5.66.0' version: 5.90.2(react@19.1.1) '@types/bun': specifier: ^1.2.20 - version: 1.2.23(@types/react@19.1.17) + version: 1.2.23(@types/react@19.2.0) better-call: specifier: 1.0.19 version: 1.0.19 @@ -458,7 +458,7 @@ importers: version: 2.1.1 cmdk: specifier: '>=1.1.0' - version: 1.1.1(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 1.1.1(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) date-fns: specifier: '>=4.1.0' version: 4.1.0 @@ -485,7 +485,7 @@ importers: version: 7.63.0(react@19.1.1) react-markdown: specifier: '>=10.1.0' - version: 10.1.0(@types/react@19.1.17)(react@19.1.1) + version: 10.1.0(@types/react@19.2.0)(react@19.1.1) rehype-highlight: specifier: '>=7.0.0' version: 7.0.2 @@ -516,13 +516,13 @@ importers: version: 5.22.0(prisma@5.22.0) '@tailwindcss/typography': specifier: ^0.5.16 - version: 0.5.19 + version: 0.5.19(tailwindcss@4.1.14) '@testing-library/jest-dom': specifier: ^6.6.4 - version: 6.9.0 + version: 6.9.1 '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@testing-library/user-event': specifier: ^14.6.1 version: 14.6.1(@testing-library/dom@10.4.1) @@ -534,16 +534,16 @@ importers: version: 30.0.0 '@types/node': specifier: ^24.1.0 - version: 24.6.1 + version: 24.6.2 '@types/pg': specifier: ^8.11.10 version: 8.15.5 '@types/react': specifier: ^19.1.8 - version: 19.1.17 + version: 19.2.0 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.11(@types/react@19.1.17) + version: 19.2.0(@types/react@19.2.0) babel-jest: specifier: ^30.1.2 version: 30.2.0(@babel/core@7.28.4) @@ -552,13 +552,13 @@ importers: version: 11.10.0 drizzle-orm: specifier: ^0.36.0 - version: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) + version: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) esbuild-plugin-preserve-directives: specifier: ^0.0.11 version: 0.0.11(esbuild@0.25.10) jest: specifier: ^30.0.5 - version: 30.2.0(@types/node@24.6.1) + version: 30.2.0(@types/node@24.6.2) jest-environment-jsdom: specifier: ^30.0.5 version: 30.2.0 @@ -573,10 +573,10 @@ importers: version: 5.22.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7 + version: 1.0.7(tailwindcss@4.1.14) ts-jest: specifier: ^29.4.0 - version: 29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.10)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@5.9.3) + version: 29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.10)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@5.9.3) tsc-watch: specifier: ^7.1.1 version: 7.2.0(typescript@5.9.3) @@ -1282,8 +1282,8 @@ packages: '@codemirror/autocomplete@6.19.0': resolution: {integrity: sha512-61Hfv3cF07XvUxNeC3E7jhG8XNi1Yom1G0lRC936oLnlF+jrbrv8rc/J98XlYzcsAoTVupfsf5fLej1aI8kyIg==} - '@codemirror/commands@6.8.1': - resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} + '@codemirror/commands@6.9.0': + resolution: {integrity: sha512-454TVgjhO6cMufsyyGN70rGIfJxJEjcqjBG2x2Y03Y/+Fm99d3O/Kv1QDYWuG6hvxsgmjXmBuATikIIYvERX+w==} '@codemirror/lang-angular@0.1.4': resolution: {integrity: sha512-oap+gsltb/fzdlTQWD6BFF4bSLKcDnlxDsLdePiJpCVNKWXSTAbiiQeYI3UmES+BLAdkmIC1WjyztC1pi/bX4g==} @@ -1297,8 +1297,8 @@ packages: '@codemirror/lang-go@6.0.1': resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==} - '@codemirror/lang-html@6.4.10': - resolution: {integrity: sha512-h/SceTVsN5r+WE+TVP2g3KDvNoSzbSrtZXCKo4vkKdbfT5t4otuVgngGdFukOO/rwRD2++pCxoh6xD4TEVMkQA==} + '@codemirror/lang-html@6.4.11': + resolution: {integrity: sha512-9NsXp7Nwp891pQchI7gPdTwBuSuT3K65NGTHWHNJ55HjYcHLllr0rbIZNdOzas9ztc1EUVBlHou85FFZS4BNnw==} '@codemirror/lang-java@6.0.2': resolution: {integrity: sha512-m5Nt1mQ/cznJY7tMfQTJchmrjdjQ71IDs+55d1GAa8DGaB8JXWsVCkVT284C3RTASaY43YknrK2X3hPO/J3MOQ==} @@ -1315,8 +1315,8 @@ packages: '@codemirror/lang-liquid@6.3.0': resolution: {integrity: sha512-fY1YsUExcieXRTsCiwX/bQ9+PbCTA/Fumv7C7mTUZHoFkibfESnaXwpr2aKH6zZVwysEunsHHkaIpM/pl3xETQ==} - '@codemirror/lang-markdown@6.3.4': - resolution: {integrity: sha512-fBm0BO03azXnTAsxhONDYHi/qWSI+uSEIpzKM7h/bkIc9fHnFp9y7KTMXKON0teNT97pFhc1a9DQTtWBYEZ7ug==} + '@codemirror/lang-markdown@6.4.0': + resolution: {integrity: sha512-ZeArR54seh4laFbUTVy0ZmQgO+C/cxxlW4jEoQMhL3HALScBpZBeZcLzrQmJsTEx4is9GzOe0bFAke2B1KZqeA==} '@codemirror/lang-php@6.0.2': resolution: {integrity: sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA==} @@ -1354,8 +1354,8 @@ packages: '@codemirror/legacy-modes@6.5.2': resolution: {integrity: sha512-/jJbwSTazlQEDOQw2FJ8LEEKVS72pU0lx6oM54kGpL8t/NJ2Jda3CZ4pcltiKTdqYSRk3ug1B3pil1gsjA6+8Q==} - '@codemirror/lint@6.8.5': - resolution: {integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==} + '@codemirror/lint@6.9.0': + resolution: {integrity: sha512-wZxW+9XDytH3SKvS8cQzMyQCaaazH8XL1EMHleHe00wVzsv7NBQKVW2yzEHrRhmM7ZOhVdItPbvlRBvMp9ej7A==} '@codemirror/search@6.5.11': resolution: {integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==} @@ -3505,8 +3505,8 @@ packages: resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} - '@testing-library/jest-dom@6.9.0': - resolution: {integrity: sha512-QHdxYMJ0YPGKYofMc6zYvo7LOViVhdc6nPg/OtM2cf9MQrwEcTxFCs7d/GJ5eSyPkHzOiBkc/KfLdFJBHzldtQ==} + '@testing-library/jest-dom@6.9.1': + resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} '@testing-library/react@16.3.0': @@ -3620,19 +3620,19 @@ packages: '@types/node@24.0.3': resolution: {integrity: sha512-R4I/kzCYAdRLzfiCabn9hxWfbuHS573x+r0dJMkkzThEa7pbrcDWK+9zu3e7aBOouf+rQAciqPFMnxwr0aWgKg==} - '@types/node@24.6.1': - resolution: {integrity: sha512-ljvjjs3DNXummeIaooB4cLBKg2U6SPI6Hjra/9rRIy7CpM0HpLtG9HptkMKAb4HYWy5S7HUvJEuWgr/y0U8SHw==} + '@types/node@24.6.2': + resolution: {integrity: sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==} '@types/pg@8.15.5': resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} - '@types/react-dom@19.1.11': - resolution: {integrity: sha512-3BKc/yGdNTYQVVw4idqHtSOcFsgGuBbMveKCOgF8wQ5QtrYOc3jDIlzg3jef04zcXFIHLelyGlj0T+BJ8+KN+w==} + '@types/react-dom@19.2.0': + resolution: {integrity: sha512-brtBs0MnE9SMx7px208g39lRmC5uHZs96caOJfTjFcYSLHNamvaSMfJNagChVNkup2SdtOxKX1FDBkRSJe1ZAg==} peerDependencies: - '@types/react': ^19.0.0 + '@types/react': ^19.2.0 - '@types/react@19.1.17': - resolution: {integrity: sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA==} + '@types/react@19.2.0': + resolution: {integrity: sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -4433,8 +4433,8 @@ packages: date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} - db0@0.3.3: - resolution: {integrity: sha512-k60CEeVGi2t35VnrnquJk/Uzr/RHDd6YwKZEtEaSh4+09XgoHBueTOBvCLNK1PU+RXGM6O8tA/Eq7/09nqcqAw==} + db0@0.3.4: + resolution: {integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==} peerDependencies: '@electric-sql/pglite': '*' '@libsql/client': '*' @@ -4710,8 +4710,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.228: - resolution: {integrity: sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==} + electron-to-chromium@1.5.229: + resolution: {integrity: sha512-cwhDcZKGcT/rEthLRJ9eBlMDkh1sorgsuk+6dpsehV0g9CABsIqBxU4rLRjG+d/U6pYU1s37A4lSKrVc5lSQYg==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -5024,8 +5024,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.4.22: - resolution: {integrity: sha512-atkAG6QaJMGoTLc4MDAP+rqZcfwQuTIh2IqHWFLy2TEjxr0MOK+5BSG4RzL2564AAPpZkDRsZXAUz68kjnU6Ug==} + eslint-plugin-react-refresh@0.4.23: + resolution: {integrity: sha512-G4j+rv0NmbIR45kni5xJOrYvCtyD3/7LjpVH8MPPcudXDcNu8gv+4ATTDXTtbRR8rTCM5HxECvCSsRmxKnWDsA==} peerDependencies: eslint: '>=8.40' @@ -7410,8 +7410,8 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-visualizer@6.0.3: - resolution: {integrity: sha512-ZU41GwrkDcCpVoffviuM9Clwjy5fcUxlz0oMoTXTYsK+tcIFzbdacnrr2n8TXcHxbGKKXtOdjxM2HUS4HjkwIw==} + rollup-plugin-visualizer@6.0.4: + resolution: {integrity: sha512-q8Q7J/6YofkmaGW1sH/fPRAz37x/+pd7VBuaUU7lwvOS/YikuiiEU9jeb9PH8XHiq50XFrUsBbOxeAMYQ7KZkg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -7812,8 +7812,8 @@ packages: tailwindcss@4.1.14: resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==} - tapable@2.2.3: - resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} tar-fs@2.1.4: @@ -8302,8 +8302,8 @@ packages: '@types/react': optional: true - use-sync-external-store@1.5.0: - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: react: 19.1.1 @@ -9381,7 +9381,7 @@ snapshots: '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 - '@codemirror/commands@6.8.1': + '@codemirror/commands@6.9.0': dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 @@ -9390,7 +9390,7 @@ snapshots: '@codemirror/lang-angular@0.1.4': dependencies: - '@codemirror/lang-html': 6.4.10 + '@codemirror/lang-html': 6.4.11 '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.3 '@lezer/common': 1.2.3 @@ -9418,7 +9418,7 @@ snapshots: '@lezer/common': 1.2.3 '@lezer/go': 1.0.1 - '@codemirror/lang-html@6.4.10': + '@codemirror/lang-html@6.4.11': dependencies: '@codemirror/autocomplete': 6.19.0 '@codemirror/lang-css': 6.3.1 @@ -9439,7 +9439,7 @@ snapshots: dependencies: '@codemirror/autocomplete': 6.19.0 '@codemirror/language': 6.11.3 - '@codemirror/lint': 6.8.5 + '@codemirror/lint': 6.9.0 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.4 '@lezer/common': 1.2.3 @@ -9461,7 +9461,7 @@ snapshots: '@codemirror/lang-liquid@6.3.0': dependencies: '@codemirror/autocomplete': 6.19.0 - '@codemirror/lang-html': 6.4.10 + '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.4 @@ -9469,10 +9469,10 @@ snapshots: '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 - '@codemirror/lang-markdown@6.3.4': + '@codemirror/lang-markdown@6.4.0': dependencies: '@codemirror/autocomplete': 6.19.0 - '@codemirror/lang-html': 6.4.10 + '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.4 @@ -9481,7 +9481,7 @@ snapshots: '@codemirror/lang-php@6.0.2': dependencies: - '@codemirror/lang-html': 6.4.10 + '@codemirror/lang-html': 6.4.11 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@lezer/common': 1.2.3 @@ -9519,7 +9519,7 @@ snapshots: '@codemirror/lang-vue@0.1.3': dependencies: - '@codemirror/lang-html': 6.4.10 + '@codemirror/lang-html': 6.4.11 '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.3 '@lezer/common': 1.2.3 @@ -9558,13 +9558,13 @@ snapshots: '@codemirror/lang-cpp': 6.0.3 '@codemirror/lang-css': 6.3.1 '@codemirror/lang-go': 6.0.1 - '@codemirror/lang-html': 6.4.10 + '@codemirror/lang-html': 6.4.11 '@codemirror/lang-java': 6.0.2 '@codemirror/lang-javascript': 6.2.4 '@codemirror/lang-json': 6.0.2 '@codemirror/lang-less': 6.0.2 '@codemirror/lang-liquid': 6.3.0 - '@codemirror/lang-markdown': 6.3.4 + '@codemirror/lang-markdown': 6.4.0 '@codemirror/lang-php': 6.0.2 '@codemirror/lang-python': 6.2.1 '@codemirror/lang-rust': 6.0.2 @@ -9590,7 +9590,7 @@ snapshots: dependencies: '@codemirror/language': 6.11.3 - '@codemirror/lint@6.8.5': + '@codemirror/lint@6.9.0': dependencies: '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.4 @@ -9974,7 +9974,7 @@ snapshots: '@jest/console@30.2.0': dependencies: '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 chalk: 4.1.2 jest-message-util: 30.2.0 jest-util: 30.2.0 @@ -9988,14 +9988,14 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.3.0 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@24.6.1) + jest-config: 30.2.0(@types/node@24.6.2) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -10024,7 +10024,7 @@ snapshots: '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 '@types/jsdom': 21.1.7 - '@types/node': 24.6.1 + '@types/node': 24.6.2 jest-mock: 30.2.0 jest-util: 30.2.0 jsdom: 26.1.0 @@ -10033,7 +10033,7 @@ snapshots: dependencies: '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 jest-mock: 30.2.0 '@jest/expect-utils@30.2.0': @@ -10051,7 +10051,7 @@ snapshots: dependencies: '@jest/types': 30.2.0 '@sinonjs/fake-timers': 13.0.5 - '@types/node': 24.6.1 + '@types/node': 24.6.2 jest-message-util: 30.2.0 jest-mock: 30.2.0 jest-util: 30.2.0 @@ -10069,7 +10069,7 @@ snapshots: '@jest/pattern@30.0.1': dependencies: - '@types/node': 24.6.1 + '@types/node': 24.6.2 jest-regex-util: 30.0.1 '@jest/reporters@30.2.0': @@ -10080,7 +10080,7 @@ snapshots: '@jest/transform': 30.2.0 '@jest/types': 30.2.0 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 24.6.1 + '@types/node': 24.6.2 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit-x: 0.2.2 @@ -10157,7 +10157,7 @@ snapshots: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.6.1 + '@types/node': 24.6.2 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -10368,7 +10368,7 @@ snapshots: '@milkdown/crepe@7.16.0(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.41.2)(typescript@5.9.3)': dependencies: - '@codemirror/commands': 6.8.1 + '@codemirror/commands': 6.9.0 '@codemirror/language': 6.11.3 '@codemirror/language-data': 6.5.1 '@codemirror/state': 6.5.2 @@ -10675,10 +10675,10 @@ snapshots: '@ocavue/utils@0.7.1': {} - '@olliethedev/yar@1.0.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)': + '@olliethedev/yar@1.0.6(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)': dependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) rou3: 0.7.7 '@oozcitak/dom@1.15.10': @@ -10866,569 +10866,569 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.0)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-context@1.1.2(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.0)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.2.0)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.0)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.0)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) '@radix-ui/react-icons@1.3.2(react@19.1.1)': dependencies: react: 19.1.1 - '@radix-ui/react-id@1.1.1(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.0)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-label@2.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-menu@2.1.16(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.2.0)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.2.0)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@floating-ui/react-dom': 2.1.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.0)(react@19.1.1) '@radix-ui/rect': 1.1.1 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) aria-hidden: 1.2.6 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.2.0)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.0)(react@19.1.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-switch@1.2.6(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.0)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.0)(react@19.1.1)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.0)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.0)(react@19.1.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.0)(react@19.1.1)': dependencies: react: 19.1.1 - use-sync-external-store: 1.5.0(react@19.1.1) + use-sync-external-store: 1.6.0(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.0)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.0)(react@19.1.1)': dependencies: react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.0)(react@19.1.1)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.17)(react@19.1.1)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.0)(react@19.1.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.17)(react@19.1.1) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.0)(react@19.1.1) react: 19.1.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) '@radix-ui/rect@1.1.1': {} @@ -11714,18 +11714,19 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.1.14 - '@tailwindcss/typography@0.5.19': + '@tailwindcss/typography@0.5.19(tailwindcss@4.1.14)': dependencies: postcss-selector-parser: 6.0.10 + tailwindcss: 4.1.14 - '@tailwindcss/vite@4.1.14(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tailwindcss/vite@4.1.14(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@tailwindcss/node': 4.1.14 '@tailwindcss/oxide': 4.1.14 tailwindcss: 4.1.14 - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) - '@tanstack/directive-functions-plugin@1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tanstack/directive-functions-plugin@1.131.2(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.4 @@ -11734,7 +11735,7 @@ snapshots: '@tanstack/router-utils': 1.131.2 babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color @@ -11788,12 +11789,12 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-plugin@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tanstack/react-start-plugin@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: - '@tanstack/start-plugin-core': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) - '@vitejs/plugin-react': 5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/start-plugin-core': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@vitejs/plugin-react': 5.0.4(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) pathe: 2.0.3 - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' @@ -11841,17 +11842,17 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@tanstack/react-start@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tanstack/react-start@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@tanstack/react-start-client': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/react-start-plugin': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/react-start-plugin': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) '@tanstack/react-start-server': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@tanstack/start-server-functions-client': 1.131.28(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) - '@tanstack/start-server-functions-server': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) - '@vitejs/plugin-react': 5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/start-server-functions-client': 1.131.28(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/start-server-functions-server': 1.131.2(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@vitejs/plugin-react': 5.0.4(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -11891,7 +11892,7 @@ snapshots: '@tanstack/store': 0.7.7 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - use-sync-external-store: 1.5.0(react@19.1.1) + use-sync-external-store: 1.6.0(react@19.1.1) '@tanstack/router-core@1.131.28': dependencies: @@ -11916,7 +11917,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tanstack/router-plugin@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) @@ -11934,7 +11935,7 @@ snapshots: zod: 3.25.76 optionalDependencies: '@tanstack/react-router': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color @@ -11954,7 +11955,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/server-functions-plugin@1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tanstack/server-functions-plugin@1.131.2(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.4 @@ -11963,7 +11964,7 @@ snapshots: '@babel/template': 7.27.2 '@babel/traverse': 7.28.4 '@babel/types': 7.28.4 - '@tanstack/directive-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/directive-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) babel-dead-code-elimination: 1.0.10 tiny-invariant: 1.3.3 transitivePeerDependencies: @@ -11978,27 +11979,27 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/start-plugin-core@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tanstack/start-plugin-core@1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1))(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.28.4 '@babel/types': 7.28.4 '@tanstack/router-core': 1.131.28 '@tanstack/router-generator': 1.131.28 - '@tanstack/router-plugin': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/router-plugin': 1.131.28(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) '@tanstack/router-utils': 1.131.2 - '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) '@tanstack/start-server-core': 1.131.28 '@types/babel__code-frame': 7.0.6 '@types/babel__core': 7.20.5 babel-dead-code-elimination: 1.0.10 cheerio: 1.1.2 h3: 1.13.0 - nitropack: 2.12.6(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) + nitropack: 2.12.6(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) pathe: 2.0.3 ufo: 1.6.1 - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) - vitefu: 1.1.1(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vitefu: 1.1.1(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) xmlbuilder2: 3.1.1 zod: 3.25.76 transitivePeerDependencies: @@ -12047,9 +12048,9 @@ snapshots: tiny-warning: 1.0.3 unctx: 2.4.1 - '@tanstack/start-server-functions-client@1.131.28(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tanstack/start-server-functions-client@1.131.28(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: - '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) '@tanstack/start-server-functions-fetcher': 1.131.28 transitivePeerDependencies: - supports-color @@ -12060,9 +12061,9 @@ snapshots: '@tanstack/router-core': 1.131.28 '@tanstack/start-client-core': 1.131.28 - '@tanstack/start-server-functions-server@1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@tanstack/start-server-functions-server@1.131.2(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: - '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) + '@tanstack/server-functions-plugin': 1.131.2(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)) tiny-invariant: 1.3.3 transitivePeerDependencies: - supports-color @@ -12087,7 +12088,7 @@ snapshots: picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.9.0': + '@testing-library/jest-dom@6.9.1': dependencies: '@adobe/css-tools': 4.4.4 aria-query: 5.3.2 @@ -12096,15 +12097,15 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.28.4 '@testing-library/dom': 10.4.1 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 - '@types/react-dom': 19.1.11(@types/react@19.1.17) + '@types/react': 19.2.0 + '@types/react-dom': 19.2.0(@types/react@19.2.0) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -12154,11 +12155,11 @@ snapshots: '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 24.6.1 + '@types/node': 24.6.2 - '@types/bun@1.2.23(@types/react@19.1.17)': + '@types/bun@1.2.23(@types/react@19.2.0)': dependencies: - bun-types: 1.2.23(@types/react@19.1.17) + bun-types: 1.2.23(@types/react@19.2.0) transitivePeerDependencies: - '@types/react' @@ -12193,7 +12194,7 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 24.6.1 + '@types/node': 24.6.2 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -12225,21 +12226,21 @@ snapshots: dependencies: undici-types: 7.8.0 - '@types/node@24.6.1': + '@types/node@24.6.2': dependencies: undici-types: 7.13.0 '@types/pg@8.15.5': dependencies: - '@types/node': 24.6.1 + '@types/node': 24.6.2 pg-protocol: 1.10.3 pg-types: 2.2.0 - '@types/react-dom@19.1.11(@types/react@19.1.17)': + '@types/react-dom@19.2.0(@types/react@19.2.0)': dependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - '@types/react@19.1.17': + '@types/react@19.2.0': dependencies: csstype: 3.1.3 @@ -12568,7 +12569,7 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-react@4.7.0(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@vitejs/plugin-react@4.7.0(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -12576,11 +12577,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': + '@vitejs/plugin-react@5.0.4(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -12588,7 +12589,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color @@ -12974,7 +12975,7 @@ snapshots: dependencies: baseline-browser-mapping: 2.8.10 caniuse-lite: 1.0.30001746 - electron-to-chromium: 1.5.228 + electron-to-chromium: 1.5.229 node-releases: 2.0.21 update-browserslist-db: 1.1.3(browserslist@4.26.3) @@ -13000,10 +13001,10 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bun-types@1.2.23(@types/react@19.1.17): + bun-types@1.2.23(@types/react@19.2.0): dependencies: - '@types/node': 24.6.1 - '@types/react': 19.1.17 + '@types/node': 24.6.2 + '@types/react': 19.2.0 bundle-require@5.1.0(esbuild@0.25.10): dependencies: @@ -13148,12 +13149,12 @@ snapshots: cluster-key-slot@1.1.2: {} - cmdk@1.1.1(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + cmdk@1.1.1(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) transitivePeerDependencies: @@ -13167,9 +13168,9 @@ snapshots: codemirror@6.0.2: dependencies: '@codemirror/autocomplete': 6.19.0 - '@codemirror/commands': 6.8.1 + '@codemirror/commands': 6.9.0 '@codemirror/language': 6.11.3 - '@codemirror/lint': 6.8.5 + '@codemirror/lint': 6.9.0 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.4 @@ -13299,10 +13300,10 @@ snapshots: date-fns@4.1.0: {} - db0@0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)): + db0@0.3.4(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)): optionalDependencies: better-sqlite3: 11.10.0 - drizzle-orm: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) + drizzle-orm: 0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1) debug@3.2.7: dependencies: @@ -13421,14 +13422,14 @@ snapshots: dotenv@17.2.3: {} - drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1): + drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1): optionalDependencies: '@prisma/client': 5.22.0(prisma@5.22.0) '@types/better-sqlite3': 7.6.13 '@types/pg': 8.15.5 - '@types/react': 19.1.17 + '@types/react': 19.2.0 better-sqlite3: 11.10.0 - bun-types: 1.2.23(@types/react@19.1.17) + bun-types: 1.2.23(@types/react@19.2.0) kysely: 0.28.7 pg: 8.16.3 prisma: 5.22.0 @@ -13446,7 +13447,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.228: {} + electron-to-chromium@1.5.229: {} emittery@0.13.1: {} @@ -13468,7 +13469,7 @@ snapshots: enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.3 + tapable: 2.3.0 entities@4.5.0: {} @@ -13928,7 +13929,7 @@ snapshots: dependencies: eslint: 9.36.0(jiti@2.6.1) - eslint-plugin-react-refresh@0.4.22(eslint@9.36.0(jiti@2.6.1)): + eslint-plugin-react-refresh@0.4.23(eslint@9.36.0(jiti@2.6.1)): dependencies: eslint: 9.36.0(jiti@2.6.1) @@ -14314,7 +14315,7 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1): + fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1): dependencies: '@formatjs/intl-localematcher': 0.6.1 '@orama/orama': 3.1.14 @@ -14326,7 +14327,7 @@ snapshots: image-size: 2.0.2 negotiator: 1.0.0 npm-to-yarn: 3.0.1 - react-remove-scroll: 2.7.1(@types/react@19.1.17)(react@19.1.1) + react-remove-scroll: 2.7.1(@types/react@19.2.0)(react@19.1.1) remark: 15.0.1 remark-gfm: 4.0.1 remark-rehype: 11.1.2 @@ -14335,7 +14336,7 @@ snapshots: unist-util-visit: 5.0.0 optionalDependencies: '@tanstack/react-router': 1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@types/react': 19.1.17 + '@types/react': 19.2.0 next: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -14343,24 +14344,24 @@ snapshots: transitivePeerDependencies: - supports-color - fumadocs-docgen@3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)): + fumadocs-docgen@3.0.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)): dependencies: estree-util-to-js: 2.0.0 estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) npm-to-yarn: 3.0.1 oxc-transform: 0.92.0 unist-util-visit: 5.0.0 zod: 4.1.11 - fumadocs-mdx@11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): + fumadocs-mdx@11.9.1(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.0.3)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.0.0 chokidar: 4.0.3 esbuild: 0.25.10 estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) js-yaml: 4.1.0 lru-cache: 11.2.2 picocolors: 1.1.1 @@ -14378,10 +14379,10 @@ snapshots: transitivePeerDependencies: - supports-color - fumadocs-typescript@4.0.10(@types/react@19.1.17)(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3): + fumadocs-typescript@4.0.10(@types/react@19.2.0)(fumadocs-core@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1))(fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14))(typescript@5.9.3): dependencies: estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) hast-util-to-estree: 3.1.3 hast-util-to-jsx-runtime: 2.3.6 remark: 15.0.1 @@ -14391,25 +14392,25 @@ snapshots: typescript: 5.9.3 unist-util-visit: 5.0.0 optionalDependencies: - '@types/react': 19.1.17 - fumadocs-ui: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) + '@types/react': 19.2.0 + fumadocs-ui: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14) transitivePeerDependencies: - supports-color - fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14): - dependencies: - '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.17)(react@19.1.1) - '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.11(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + fumadocs-ui@15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.14): + dependencies: + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.0)(react@19.1.1) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) class-variance-authority: 0.7.1 - fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.17)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.11(@tanstack/react-router@1.131.28(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.2.0)(next@15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react-router@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1) lodash.merge: 4.6.2 next-themes: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) postcss-selector-parser: 7.1.0 @@ -14419,7 +14420,7 @@ snapshots: scroll-into-view-if-needed: 3.1.0 tailwind-merge: 3.3.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 next: 15.3.4(@playwright/test@1.55.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) tailwindcss: 4.1.14 transitivePeerDependencies: @@ -15037,7 +15038,7 @@ snapshots: '@jest/expect': 30.2.0 '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0 @@ -15057,7 +15058,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@30.2.0(@types/node@24.6.1): + jest-cli@30.2.0(@types/node@24.6.2): dependencies: '@jest/core': 30.2.0 '@jest/test-result': 30.2.0 @@ -15065,7 +15066,7 @@ snapshots: chalk: 4.1.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.2.0(@types/node@24.6.1) + jest-config: 30.2.0(@types/node@24.6.2) jest-util: 30.2.0 jest-validate: 30.2.0 yargs: 17.7.2 @@ -15076,7 +15077,7 @@ snapshots: - supports-color - ts-node - jest-config@30.2.0(@types/node@24.6.1): + jest-config@30.2.0(@types/node@24.6.2): dependencies: '@babel/core': 7.28.4 '@jest/get-type': 30.1.0 @@ -15103,7 +15104,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 24.6.1 + '@types/node': 24.6.2 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -15132,7 +15133,7 @@ snapshots: '@jest/environment': 30.2.0 '@jest/environment-jsdom-abstract': 30.2.0(jsdom@26.1.0) '@types/jsdom': 21.1.7 - '@types/node': 24.6.1 + '@types/node': 24.6.2 jsdom: 26.1.0 transitivePeerDependencies: - bufferutil @@ -15144,7 +15145,7 @@ snapshots: '@jest/environment': 30.2.0 '@jest/fake-timers': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 jest-mock: 30.2.0 jest-util: 30.2.0 jest-validate: 30.2.0 @@ -15152,7 +15153,7 @@ snapshots: jest-haste-map@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -15191,7 +15192,7 @@ snapshots: jest-mock@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 jest-util: 30.2.0 jest-pnp-resolver@1.2.3(jest-resolve@30.2.0): @@ -15225,7 +15226,7 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 @@ -15254,7 +15255,7 @@ snapshots: '@jest/test-result': 30.2.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 chalk: 4.1.2 cjs-module-lexer: 2.1.0 collect-v8-coverage: 1.0.2 @@ -15301,7 +15302,7 @@ snapshots: jest-util@30.2.0: dependencies: '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 chalk: 4.1.2 ci-info: 4.3.0 graceful-fs: 4.2.11 @@ -15320,7 +15321,7 @@ snapshots: dependencies: '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 - '@types/node': 24.6.1 + '@types/node': 24.6.2 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -15329,18 +15330,18 @@ snapshots: jest-worker@30.2.0: dependencies: - '@types/node': 24.6.1 + '@types/node': 24.6.2 '@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.6.1): + jest@30.2.0(@types/node@24.6.2): dependencies: '@jest/core': 30.2.0 '@jest/types': 30.2.0 import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@24.6.1) + jest-cli: 30.2.0(@types/node@24.6.2) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -16210,7 +16211,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - nitropack@2.12.6(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)): + nitropack@2.12.6(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@rollup/plugin-alias': 5.1.1(rollup@4.52.3) @@ -16231,7 +16232,7 @@ snapshots: cookie-es: 2.0.0 croner: 9.1.0 crossws: 0.3.5 - db0: 0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) + db0: 0.3.4(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) defu: 6.1.4 destr: 2.0.5 dot-prop: 9.0.0 @@ -16263,7 +16264,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.52.3 - rollup-plugin-visualizer: 6.0.3(rollup@4.52.3) + rollup-plugin-visualizer: 6.0.4(rollup@4.52.3) scule: 1.3.0 semver: 7.7.2 serve-placeholder: 2.0.2 @@ -16277,7 +16278,7 @@ snapshots: unenv: 2.0.0-rc.21 unimport: 5.4.1 unplugin-utils: 0.3.0 - unstorage: 1.17.1(db0@0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)))(ioredis@5.8.0) + unstorage: 1.17.1(db0@0.3.4(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)))(ioredis@5.8.0) untyped: 2.0.0 unwasm: 0.3.11 youch: 4.1.0-beta.11 @@ -16886,11 +16887,11 @@ snapshots: react-is@18.3.1: {} - react-markdown@10.1.0(@types/react@19.1.17)(react@19.1.1): + react-markdown@10.1.0(@types/react@19.2.0)(react@19.1.1): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.1.17 + '@types/react': 19.2.0 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 @@ -16911,24 +16912,24 @@ snapshots: react-refresh@0.17.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.17)(react@19.1.1): + react-remove-scroll-bar@2.3.8(@types/react@19.2.0)(react@19.1.1): dependencies: react: 19.1.1 - react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.1) + react-style-singleton: 2.2.3(@types/react@19.2.0)(react@19.1.1) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - react-remove-scroll@2.7.1(@types/react@19.1.17)(react@19.1.1): + react-remove-scroll@2.7.1(@types/react@19.2.0)(react@19.1.1): dependencies: react: 19.1.1 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.17)(react@19.1.1) - react-style-singleton: 2.2.3(@types/react@19.1.17)(react@19.1.1) + react-remove-scroll-bar: 2.3.8(@types/react@19.2.0)(react@19.1.1) + react-style-singleton: 2.2.3(@types/react@19.2.0)(react@19.1.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.17)(react@19.1.1) - use-sidecar: 1.1.3(@types/react@19.1.17)(react@19.1.1) + use-callback-ref: 1.3.3(@types/react@19.2.0)(react@19.1.1) + use-sidecar: 1.1.3(@types/react@19.2.0)(react@19.1.1) optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 react-router-dom@7.9.3(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: @@ -16944,13 +16945,13 @@ snapshots: optionalDependencies: react-dom: 19.1.1(react@19.1.1) - react-style-singleton@2.2.3(@types/react@19.1.17)(react@19.1.1): + react-style-singleton@2.2.3(@types/react@19.2.0)(react@19.1.1): dependencies: get-nonce: 1.0.1 react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 react@19.1.1: {} @@ -17198,7 +17199,7 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-visualizer@6.0.3(rollup@4.52.3): + rollup-plugin-visualizer@6.0.4(rollup@4.52.3): dependencies: open: 8.4.2 picomatch: 4.0.3 @@ -17671,11 +17672,13 @@ snapshots: tailwind-merge@3.3.1: {} - tailwindcss-animate@1.0.7: {} + tailwindcss-animate@1.0.7(tailwindcss@4.1.14): + dependencies: + tailwindcss: 4.1.14 tailwindcss@4.1.14: {} - tapable@2.2.3: {} + tapable@2.3.0: {} tar-fs@2.1.4: dependencies: @@ -17796,12 +17799,12 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.10)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@5.9.3): + ts-jest@29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.10)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(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.6.1) + jest: 30.2.0(@types/node@24.6.2) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -18136,7 +18139,7 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unstorage@1.17.1(db0@0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)))(ioredis@5.8.0): + unstorage@1.17.1(db0@0.3.4(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)))(ioredis@5.8.0): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -18147,7 +18150,7 @@ snapshots: ofetch: 1.4.1 ufo: 1.6.1 optionalDependencies: - db0: 0.3.3(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.1.17)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.1.17))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) + db0: 0.3.4(better-sqlite3@11.10.0)(drizzle-orm@0.36.4(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.15.5)(@types/react@19.2.0)(better-sqlite3@11.10.0)(bun-types@1.2.23(@types/react@19.2.0))(kysely@0.28.7)(pg@8.16.3)(prisma@5.22.0)(react@19.1.1)) ioredis: 5.8.0 untun@0.1.3: @@ -18185,22 +18188,22 @@ snapshots: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@19.1.17)(react@19.1.1): + use-callback-ref@1.3.3(@types/react@19.2.0)(react@19.1.1): dependencies: react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - use-sidecar@1.1.3(@types/react@19.1.17)(react@19.1.1): + use-sidecar@1.1.3(@types/react@19.2.0)(react@19.1.1): dependencies: detect-node-es: 1.1.0 react: 19.1.1 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.17 + '@types/react': 19.2.0 - use-sync-external-store@1.5.0(react@19.1.1): + use-sync-external-store@1.6.0(react@19.1.1): dependencies: react: 19.1.1 @@ -18235,13 +18238,13 @@ snapshots: fast-glob: 3.3.3 magic-string: 0.30.19 - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) transitivePeerDependencies: - supports-color - typescript @@ -18263,7 +18266,7 @@ snapshots: tsx: 4.20.6 optional: true - vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): + vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -18272,16 +18275,16 @@ snapshots: rollup: 4.52.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.6.1 + '@types/node': 24.6.2 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.1 terser: 5.44.0 tsx: 4.20.6 - vitefu@1.1.1(vite@7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): + vitefu@1.1.1(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)): optionalDependencies: - vite: 7.1.3(@types/node@24.6.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) + vite: 7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6) vue@3.5.22(typescript@5.9.3): dependencies: From c03ac463fd332f15aaf33c0229cf35bdded20d6d Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Thu, 2 Oct 2025 16:29:59 -0400 Subject: [PATCH 07/15] fix: lint --- packages/better-blog/src/test/setup.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/better-blog/src/test/setup.ts b/packages/better-blog/src/test/setup.ts index 2b18e8b..50d4d07 100644 --- a/packages/better-blog/src/test/setup.ts +++ b/packages/better-blog/src/test/setup.ts @@ -1,6 +1,5 @@ // Jest setup for the project -import '@testing-library/jest-dom'; - +import "@testing-library/jest-dom" import { webcrypto as crypto } from "node:crypto" // Polyfills for Node test environment used by pg @@ -25,5 +24,5 @@ if (!(global as unknown as { crypto?: Crypto }).crypto) { global.ResizeObserver = jest.fn().mockImplementation(() => ({ observe: jest.fn(), unobserve: jest.fn(), - disconnect: jest.fn(), + disconnect: jest.fn() })) From f733d341d89a2948f0afee06331faa9681e9595c Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Fri, 3 Oct 2025 15:23:48 -0400 Subject: [PATCH 08/15] feat: router rework --- apps/docs/content/docs/react-router.mdx | 4 +- apps/docs/content/docs/tanstack-start.mdx | 73 ++++- .../nextjs/app/posts/[[...all]]/page.tsx | 28 +- apps/examples/react/src/BlogPage.tsx | 8 +- apps/examples/tanstack/src/routes/posts/$.tsx | 77 ++++- packages/better-blog/package.json | 2 +- packages/better-blog/src/client.ts | 1 + .../__tests__/blog-router-page.test.tsx | 103 ------ .../components/better-blog/blog-meta-tags.tsx | 32 +- .../better-blog/blog-router-page.tsx | 52 ++- .../components/better-blog/pages/404-page.tsx | 12 + .../better-blog/pages/edit-post-page.tsx | 4 +- .../better-blog/pages/post-page.tsx | 4 +- .../components/better-blog/pages/tag-page.tsx | 4 +- .../better-blog/src/context/route-context.tsx | 5 +- packages/better-blog/src/context/types.ts | 19 +- .../src/router/__tests__/router.test.ts | 88 ----- .../src/router/__tests__/seo-resolver.test.ts | 36 +- .../router/__tests__/tanstack-head.test.ts | 60 ---- .../src/router/blog-client-router.tsx | 39 +++ .../src/router/blog-router-client.tsx | 108 ------ packages/better-blog/src/router/index.ts | 105 +++++- .../better-blog/src/router/meta-resolver.ts | 114 +++++-- .../src/router/pluggable-routes.tsx | 82 ++--- packages/better-blog/src/router/router.ts | 78 ----- packages/better-blog/src/router/routes.ts | 308 +++++++++++++++--- .../better-blog/src/router/tanstack-head.ts | 101 ------ packages/better-blog/src/router/types.ts | 22 -- .../better-blog/src/server/pages/index.tsx | 1 - .../better-blog/src/server/pages/prefetch.ts | 61 ---- .../src/server/pages/server-adapter.tsx | 217 ++++++++++-- .../better-blog/src/server/pages/types.ts | 3 - packages/better-blog/src/types/index.ts | 30 +- packages/better-blog/tsup.config.ts | 1 - pnpm-lock.yaml | 21 +- 35 files changed, 930 insertions(+), 973 deletions(-) delete mode 100644 packages/better-blog/src/components/better-blog/__tests__/blog-router-page.test.tsx create mode 100644 packages/better-blog/src/components/better-blog/pages/404-page.tsx delete mode 100644 packages/better-blog/src/router/__tests__/router.test.ts delete mode 100644 packages/better-blog/src/router/__tests__/tanstack-head.test.ts create mode 100644 packages/better-blog/src/router/blog-client-router.tsx delete mode 100644 packages/better-blog/src/router/blog-router-client.tsx delete mode 100644 packages/better-blog/src/router/router.ts delete mode 100644 packages/better-blog/src/router/tanstack-head.ts delete mode 100644 packages/better-blog/src/router/types.ts delete mode 100644 packages/better-blog/src/server/pages/prefetch.ts diff --git a/apps/docs/content/docs/react-router.mdx b/apps/docs/content/docs/react-router.mdx index c16601a..e6d9268 100644 --- a/apps/docs/content/docs/react-router.mdx +++ b/apps/docs/content/docs/react-router.mdx @@ -29,17 +29,15 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( ```tsx import { useLocation } from "react-router-dom" import { BlogMetaTags, BlogPageRouter } from "better-blog/client" -import { matchRoute } from "better-blog/router" import { useBlogDataProvider } from "./useBlogDataProvider" export default function BlogEntryPage() { const location = useLocation() const dataProvider = useBlogDataProvider() - const routeMatch = matchRoute(location.pathname.split("/").filter(Boolean)) return (
{dataProvider && ( - + )}
diff --git a/apps/docs/content/docs/tanstack-start.mdx b/apps/docs/content/docs/tanstack-start.mdx index 0edca3c..c4c22d3 100644 --- a/apps/docs/content/docs/tanstack-start.mdx +++ b/apps/docs/content/docs/tanstack-start.mdx @@ -6,29 +6,76 @@ description: SSR/SSG with server prefetch and client hydration This renders all blog routes under `/posts/...` with server prefetch + client hydration. Provide separate data providers for server and client. #### 1) `src/routes/posts/$.tsx` (server) -Create the Better Blog server adapter, prefetch data in the loader, and render via `BlogPageRouter`. Set the page head with `buildTanStackHead`. +Prefetch data in the loader, render via `BlogPageRouter`, and build SEO metadata using the router's meta and extra fields. ```tsx import { createFileRoute } from "@tanstack/react-router" -import { createBlogServerAdapter } from "better-blog/server/pages"; -import { buildTanStackHead } from "better-blog/router" import { BlogPageRouter } from "better-blog/client" -import { blogDataProvider } from "../../lib/blog-data-provider"; +import { getRouteInfo, prefetchRoute, resolveSEO } from "better-blog/router" +import { blogDataProvider } from "../../lib/blog-data-provider" + +// Helper to normalize path from TanStack params +function normalizePath(splat?: string): string { + const pathSegments = splat?.split("/").filter(Boolean) || [] + return pathSegments.length ? `/${pathSegments.join("/")}` : "/" +} export const Route = createFileRoute("/posts/$")({ ssr: true, - head: ({ loaderData }) => loaderData as { meta?: any[]; links?: any[] }, component: RouteComponent, loader: async ({ params, context }) => { - const serverAdapter = createBlogServerAdapter({ - provider: blogDataProvider, - queryClient: context.queryClient, + const routePath = normalizePath(params._splat) + await prefetchRoute(routePath, blogDataProvider, context.queryClient) + return null + }, + head: async ({ params }) => { + const routePath = normalizePath(params._splat) + const routeInfo = getRouteInfo(routePath) + const seo = await resolveSEO(routeInfo, blogDataProvider) + + // Map SEO to TanStack head format + const meta: Array<{ name?: string; property?: string; content?: string; title?: string }> = [] + + if (seo.meta.title) meta.push({ title: seo.meta.title }) + if (seo.meta.description) meta.push({ name: "description", content: seo.meta.description }) + if (seo.meta.robots) meta.push({ name: "robots", content: seo.meta.robots }) + + // Open Graph + meta.push({ + property: "og:type", + content: seo.meta.openGraph?.type ?? (seo.meta.openGraph?.title ? "article" : "website") + }) + if (seo.meta.openGraph?.title ?? seo.meta.title) { + meta.push({ property: "og:title", content: seo.meta.openGraph?.title ?? seo.meta.title }) + } + if (seo.meta.openGraph?.description ?? seo.meta.description) { + meta.push({ property: "og:description", content: seo.meta.openGraph?.description ?? seo.meta.description }) + } + if (seo.meta.openGraph?.url) meta.push({ property: "og:url", content: seo.meta.openGraph.url }) + + const ogImage = seo.meta.openGraph?.images?.[0] + const ogImageUrl = typeof ogImage === "string" ? ogImage : ogImage?.url + if (ogImageUrl) meta.push({ property: "og:image", content: ogImageUrl }) + + // Twitter + meta.push({ + name: "twitter:card", + content: seo.meta.twitter?.card ?? (ogImageUrl ? "summary_large_image" : "summary") }) - await serverAdapter.prefetch({ path: params._splat }) - // Build head data on server - const head = await buildTanStackHead({ path: params._splat, provider: blogDataProvider }) - return head - } + if (seo.meta.twitter?.title ?? seo.meta.title) { + meta.push({ name: "twitter:title", content: seo.meta.twitter?.title ?? seo.meta.title }) + } + if (seo.meta.twitter?.description ?? seo.meta.description) { + meta.push({ name: "twitter:description", content: seo.meta.twitter?.description ?? seo.meta.description }) + } + if (ogImageUrl) meta.push({ name: "twitter:image", content: ogImageUrl }) + + // Links + const links: Array<{ rel: string; href: string }> = [] + if (seo.meta.canonicalUrl) links.push({ rel: "canonical", href: seo.meta.canonicalUrl }) + + return { meta, links } + }, }) function RouteComponent() { diff --git a/apps/examples/nextjs/app/posts/[[...all]]/page.tsx b/apps/examples/nextjs/app/posts/[[...all]]/page.tsx index 99d89ef..e52fc13 100644 --- a/apps/examples/nextjs/app/posts/[[...all]]/page.tsx +++ b/apps/examples/nextjs/app/posts/[[...all]]/page.tsx @@ -1,12 +1,6 @@ import { getProvider } from "@/lib/providers" import { getOrCreateQueryClient } from "@/lib/query-client" -import { HydrationBoundary, dehydrate } from "@tanstack/react-query" -import { BlogPageRouter } from "better-blog/client" -import { matchRoute } from "better-blog/router" -import { - createBlogServerAdapter, - prefetchBlogData -} from "better-blog/server/pages" +import { createBlogServerAdapter } from "better-blog/server/pages" import type { Metadata } from "next" // Create query client for React Query @@ -25,9 +19,7 @@ export const generateMetadata: (context: { params: Promise<{ all: string[] | undefined }> }) => Promise = async ({ params }) => { const { all } = await params - return serverAdapter.generateNextMetadata( - all?.join("/") - ) as Metadata + return serverAdapter.generateNextMetadata(all?.join("/")) as Metadata } // Main page component @@ -37,16 +29,8 @@ export default async function BlogPage({ params: Promise<{ all: string[] | undefined }> }) { const { all } = await params - const routeMatch = matchRoute(all?.join("/").split("/").filter(Boolean)) - await prefetchBlogData({ - match: routeMatch, - provider: await getProvider(), - queryClient - }) - const dehydratedState = dehydrate(queryClient) - return ( - - - - ) + const path = all?.join("/") + + // Use the server adapter's BlogServerRouter for SSR with hydration and prefetch + return } diff --git a/apps/examples/react/src/BlogPage.tsx b/apps/examples/react/src/BlogPage.tsx index 5744465..9541f4b 100644 --- a/apps/examples/react/src/BlogPage.tsx +++ b/apps/examples/react/src/BlogPage.tsx @@ -1,21 +1,15 @@ import { BlogMetaTags, BlogPageRouter } from "better-blog/client" -import { matchRoute } from "better-blog/router" import { useLocation } from "react-router-dom" import { useBlogDataProvider } from "./useBlogDataProvider" export default function BlogEntryPage() { const location = useLocation() - const dataProvider = useBlogDataProvider() - const routeMatch = matchRoute( - location.pathname.split("/").filter(Boolean), - "/posts" - ) return (
{dataProvider && ( - + )}
diff --git a/apps/examples/tanstack/src/routes/posts/$.tsx b/apps/examples/tanstack/src/routes/posts/$.tsx index de756f6..61fdcb4 100644 --- a/apps/examples/tanstack/src/routes/posts/$.tsx +++ b/apps/examples/tanstack/src/routes/posts/$.tsx @@ -1,33 +1,74 @@ import { createFileRoute } from "@tanstack/react-router" -import { BlogMetaTags, BlogPageRouter } from "better-blog/client" -import { matchRoute } from "better-blog/router" -import { prefetchBlogData } from "better-blog/server/pages" - +import { BlogPageRouter } from "better-blog/client" +import { getRouteInfo, prefetchRoute, resolveSEO } from "better-blog/router" import { blogDataProvider } from "../../lib/blog-data-provider" +// Helper to normalize path from TanStack params +function normalizePath(splat?: string): string { + const pathSegments = splat?.split("/").filter(Boolean) || [] + return pathSegments.length ? `/${pathSegments.join("/")}` : "/" +} export const Route = createFileRoute("/posts/$")({ ssr: true, - // Head is now handled via in the component for better DX component: RouteComponent, loader: async ({ params, context }) => { - const routeMatch = matchRoute(params._splat?.split("/").filter(Boolean)) - await prefetchBlogData({ - match: routeMatch, - provider: blogDataProvider, - queryClient: context.queryClient, - }) + const routePath = normalizePath(params._splat) + await prefetchRoute(routePath, blogDataProvider, context.queryClient) return null - } + }, + head: async ({ params }) => { + const routePath = normalizePath(params._splat) + const routeInfo = getRouteInfo(routePath) + const seo = await resolveSEO(routeInfo, blogDataProvider) + + // Map SEO to TanStack head format + const meta: Array<{ name?: string; property?: string; content?: string; title?: string }> = [] + + if (seo.meta.title) meta.push({ title: seo.meta.title }) + if (seo.meta.description) meta.push({ name: "description", content: seo.meta.description }) + if (seo.meta.robots) meta.push({ name: "robots", content: seo.meta.robots }) + + // Open Graph + meta.push({ + property: "og:type", + content: seo.meta.openGraph?.type ?? (seo.meta.openGraph?.title ? "article" : "website") + }) + if (seo.meta.openGraph?.title ?? seo.meta.title) { + meta.push({ property: "og:title", content: seo.meta.openGraph?.title ?? seo.meta.title }) + } + if (seo.meta.openGraph?.description ?? seo.meta.description) { + meta.push({ property: "og:description", content: seo.meta.openGraph?.description ?? seo.meta.description }) + } + if (seo.meta.openGraph?.url) meta.push({ property: "og:url", content: seo.meta.openGraph.url }) + + const ogImage = seo.meta.openGraph?.images?.[0] + const ogImageUrl = typeof ogImage === "string" ? ogImage : ogImage?.url + if (ogImageUrl) meta.push({ property: "og:image", content: ogImageUrl }) + + // Twitter + meta.push({ + name: "twitter:card", + content: seo.meta.twitter?.card ?? (ogImageUrl ? "summary_large_image" : "summary") + }) + if (seo.meta.twitter?.title ?? seo.meta.title) { + meta.push({ name: "twitter:title", content: seo.meta.twitter?.title ?? seo.meta.title }) + } + if (seo.meta.twitter?.description ?? seo.meta.description) { + meta.push({ name: "twitter:description", content: seo.meta.twitter?.description ?? seo.meta.description }) + } + if (ogImageUrl) meta.push({ name: "twitter:image", content: ogImageUrl }) + + // Links + const links: Array<{ rel: string; href: string }> = [] + if (seo.meta.canonicalUrl) links.push({ rel: "canonical", href: seo.meta.canonicalUrl }) + + return { meta, links } + }, }) function RouteComponent() { const { _splat } = Route.useParams(); - return ( - <> - - - - ) + return } diff --git a/packages/better-blog/package.json b/packages/better-blog/package.json index 7757568..cd24de4 100644 --- a/packages/better-blog/package.json +++ b/packages/better-blog/package.json @@ -301,7 +301,7 @@ "dependencies": { "@milkdown/crepe": "^7.15.3", "@milkdown/kit": "^7.15.3", - "@olliethedev/yar": "^1.0.6", + "@olliethedev/yar": "^1.1.0", "better-call": "^1.0.19" } } diff --git a/packages/better-blog/src/client.ts b/packages/better-blog/src/client.ts index 284ba26..9ebc4fc 100644 --- a/packages/better-blog/src/client.ts +++ b/packages/better-blog/src/client.ts @@ -1,5 +1,6 @@ // Client-only exports (use these only in client components with "use client") // Import these as: import { BlogPageRouter } from 'better-blog/client' export { BlogPageRouter } from "./components/better-blog/blog-router-page" +export { blogClientRouter } from "./router/blog-client-router" export * from "./components/better-blog/pages" export { BlogMetaTags } from "./components/better-blog/blog-meta-tags" diff --git a/packages/better-blog/src/components/better-blog/__tests__/blog-router-page.test.tsx b/packages/better-blog/src/components/better-blog/__tests__/blog-router-page.test.tsx deleted file mode 100644 index 8cf78f4..0000000 --- a/packages/better-blog/src/components/better-blog/__tests__/blog-router-page.test.tsx +++ /dev/null @@ -1,103 +0,0 @@ -import { BlogProvider } from "@/context/better-blog-context" -import { QueryClient, QueryClientProvider } from "@tanstack/react-query" -import { render, screen } from "@testing-library/react" -import { BlogPageRouter } from "../blog-router-page" - -function renderWithProvider({ - path, - basePath = "/posts" -}: { - path?: string - basePath?: string -}) { - const dataProvider = { - getAllPosts: async () => [], - getPostBySlug: async () => null - } - - const queryClient = new QueryClient({ - defaultOptions: { - queries: { retry: false } - } - }) - - return render( - - "https://example.com/image.jpg"} - > - - - - ) -} - -describe("BlogPageRouter", () => { - test("renders Home for root path (uses basePath context)", async () => { - renderWithProvider({ path: "/posts" }) - const header = await screen.findByTestId("page-header") - expect(header).toBeInTheDocument() - }) - - test("renders Post for dynamic slug", async () => { - renderWithProvider({ path: "/posts/hello-world" }) - // Will eventually show empty state since no post exists - const emptyState = await screen.findByTestId("empty-state") - expect(emptyState).toBeInTheDocument() - }) - - test("renders Tag for /tag/:tag", async () => { - renderWithProvider({ path: "/posts/tag/react" }) - const header = await screen.findByTestId("page-header") - expect(header).toBeInTheDocument() - }) - - test("renders Drafts for /drafts", async () => { - renderWithProvider({ path: "/posts/drafts" }) - // Wait for Suspense to resolve - const header = await screen.findByTestId("page-header") - expect(header).toBeInTheDocument() - }) - - test("renders New for /new", async () => { - renderWithProvider({ path: "/posts/new" }) - const header = await screen.findByTestId("page-header") - expect(header).toBeInTheDocument() - }) - - test("renders Edit for /:slug/edit", async () => { - renderWithProvider({ path: "/posts/my-post/edit" }) - // Will eventually show empty state since no post exists - const emptyState = await screen.findByTestId("empty-state") - expect(emptyState).toBeInTheDocument() - }) -}) - -describe("BlogPageRouter NotFound behavior", () => { - test("renders default NotFound with unknown route message", async () => { - renderWithProvider({ path: "/posts/does-not-exist/deep" }) - // Default NotFound renders error placeholder with localized strings - const errorPlaceholder = await screen.findByTestId("error-placeholder") - expect(errorPlaceholder).toBeInTheDocument() - expect( - screen.getByText(/Unknown route: \/does-not-exist\/deep/) - ).toBeInTheDocument() - }) - - test('basePath normalization works for "posts" (no slashes)', async () => { - renderWithProvider({ path: "/posts/new", basePath: "posts" }) - const header = await screen.findByTestId("page-header") - expect(header).toBeInTheDocument() - }) - - test('basePath normalization works for "/posts/" (leading and trailing slash)', async () => { - renderWithProvider({ - path: "/posts/new", - basePath: "/posts/" - }) - const header = await screen.findByTestId("page-header") - expect(header).toBeInTheDocument() - }) -}) diff --git a/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx b/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx index 4ca3959..64b0300 100644 --- a/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx +++ b/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx @@ -1,21 +1,18 @@ "use client" import { BlogContext } from "@/context/better-blog-context" -import { matchRouteClient } from "@/router/blog-router-client" +import { blogClientRouter } from "@/router/blog-client-router" import { resolveSEO } from "@/router/meta-resolver" -import type { BlogDataProvider, RouteMatch, SeoSiteConfig } from "@/types" +import type { BlogDataProvider, SeoSiteConfig } from "@/types" import React from "react" export function BlogMetaTags({ path, - routeMatch, provider, site }: { - /** If provided, used to compute the route match */ + /** Path to compute meta tags for */ path?: string - /** Provide a precomputed match to avoid re-matching */ - routeMatch?: RouteMatch /** Optional provider override, otherwise uses BlogContext */ provider?: BlogDataProvider /** Optional site config for canonical, publisher, etc. */ @@ -46,12 +43,21 @@ export function BlogMetaTags({ let mounted = true const effectiveProvider = provider ?? blog?.dataProvider if (!effectiveProvider) return - // Wait for basePath from context when computing from path - if (!routeMatch && !blog?.basePath) return - const match = - routeMatch ?? - matchRouteClient(path?.split("/").filter(Boolean), blog?.basePath) - resolveSEO(match, effectiveProvider, site) + + const normalizedPath = path?.replace(blog?.basePath ?? "", "") ?? "/" + const route = blogClientRouter.getRoute(normalizedPath) + + if (!route) return + + const type = (route.extra?.()?.type || "unknown") as import( + "@/types" + ).RouteType + const routeInfo: import("@/types").RouteInfo = { + type, + params: route.params + } + + resolveSEO(routeInfo, effectiveProvider, site) .then((seo) => { if (!mounted) return setState({ ...seo.meta, structuredData: seo.structuredData }) @@ -60,7 +66,7 @@ export function BlogMetaTags({ return () => { mounted = false } - }, [path, routeMatch, provider, blog?.dataProvider, site, blog?.basePath]) + }, [path, provider, blog?.dataProvider, site, blog?.basePath]) React.useEffect(() => { if (state.title) { diff --git a/packages/better-blog/src/components/better-blog/blog-router-page.tsx b/packages/better-blog/src/components/better-blog/blog-router-page.tsx index 9d45582..77ad0ff 100644 --- a/packages/better-blog/src/components/better-blog/blog-router-page.tsx +++ b/packages/better-blog/src/components/better-blog/blog-router-page.tsx @@ -1,17 +1,12 @@ -"use client" - import { DefaultError } from "@/components/better-blog/default-error" import { ErrorPlaceholder } from "@/components/better-blog/error-placeholder" import { ListPageSkeleton } from "@/components/better-blog/list-page-skeleton" import { BlogContext } from "@/context/better-blog-context" -import { useBlogContext } from "@/hooks/context-hooks" -import type { RouteMatch } from "@/types" +import { RouteProvider } from "@/context/route-context" +import type { useBlogContext } from "@/hooks/context-hooks" import React, { Suspense } from "react" -import { RouteProvider } from "../../context/route-context" -import { - blogRouterClient, - matchRouteClient -} from "../../router/blog-router-client" +import { blogClientRouter } from "../../router/blog-client-router" +import { NotFoundPage } from "./pages/404-page" // Default loading component function PostsLoading() { @@ -22,27 +17,16 @@ function PostsLoading() { ) } -// Not Found route placeholder using localized strings -function NotFoundPage({ message }: { message: string }) { - const { localization } = useBlogContext() - const title = localization.BLOG_PAGE_NOT_FOUND_TITLE - const desc = message || localization.BLOG_PAGE_NOT_FOUND_DESCRIPTION - return -} - -// Internal component that renders based on routeMatch +// Internal component that renders based on route function BlogPageRouterContent({ - routeMatch, + route, NotFoundComponent = NotFoundPage, path }: { - routeMatch: RouteMatch + route: ReturnType NotFoundComponent?: React.ComponentType<{ message: string }> path: string }) { - // Use yar router to get the route with all components - const route = blogRouterClient.getRoute(path) - if (route) { // Get components from the route, with simple fallbacks const PageComponent = route.PageComponent @@ -62,7 +46,7 @@ function BlogPageRouterContent({ } // Fallback for unknown routes - return + return } class RouteErrorBoundary extends React.Component< @@ -100,11 +84,12 @@ class RouteErrorBoundary extends React.Component< // Main component that handles routing using yar export function BlogPageRouter({ - path + path, + basePath }: { path?: string + basePath?: string }) { - const { basePath } = useBlogContext() const pathSegments = path?.split("/").filter(Boolean) || [] // Strip basePath if present @@ -119,15 +104,18 @@ export function BlogPageRouter({ const fullPath = normalizedPath.length ? `/${normalizedPath.join("/")}` : "/" - const routeMatch = matchRouteClient(pathSegments, basePath) + + // Use yar router directly to get the route + const route = blogClientRouter.getRoute(fullPath) + + // Extract type from extra and params from route + const type = route?.extra?.()?.type || "unknown" + const params = route?.params return (
- - + +
) diff --git a/packages/better-blog/src/components/better-blog/pages/404-page.tsx b/packages/better-blog/src/components/better-blog/pages/404-page.tsx new file mode 100644 index 0000000..a7288d4 --- /dev/null +++ b/packages/better-blog/src/components/better-blog/pages/404-page.tsx @@ -0,0 +1,12 @@ +"use client" + +import { useBlogContext } from "@/hooks/context-hooks" +import { ErrorPlaceholder } from "../error-placeholder" + +// Not Found route placeholder using localized strings +export function NotFoundPage({ message }: { message: string }) { + const { localization } = useBlogContext() + const title = localization.BLOG_PAGE_NOT_FOUND_TITLE + const desc = message || localization.BLOG_PAGE_NOT_FOUND_DESCRIPTION + return +} diff --git a/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx b/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx index 0737f01..86659bb 100644 --- a/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx @@ -9,8 +9,8 @@ import { PageHeader } from "../page-header" import { PageWrapper } from "./page-wrapper" export function EditPostPageComponent() { - const { routeMatch } = useRoute() - const slug = routeMatch.params!.slug + const { params } = useRoute() + const slug = params!.slug const { post } = useSuspensePost(slug!) const { localization } = useBlogContext() diff --git a/packages/better-blog/src/components/better-blog/pages/post-page.tsx b/packages/better-blog/src/components/better-blog/pages/post-page.tsx index 728f99f..e2b6e9c 100644 --- a/packages/better-blog/src/components/better-blog/pages/post-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/post-page.tsx @@ -13,8 +13,8 @@ import { PageHeader } from "../page-header" import { PageWrapper } from "./page-wrapper" export function PostPageComponent() { - const { routeMatch } = useRoute() - const slug = routeMatch.params!.slug + const { params } = useRoute() + const slug = params!.slug const { post } = useSuspensePost(slug!) const { localization } = useBlogContext() const { Link, Image } = useComponents() diff --git a/packages/better-blog/src/components/better-blog/pages/tag-page.tsx b/packages/better-blog/src/components/better-blog/pages/tag-page.tsx index 872e8ff..dc79c18 100644 --- a/packages/better-blog/src/components/better-blog/pages/tag-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/tag-page.tsx @@ -8,8 +8,8 @@ import { PostsList } from "../posts-list" import { PageWrapper } from "./page-wrapper" export function TagPageComponent() { - const { routeMatch } = useRoute() - const tag = routeMatch.params?.tag || "unknown" + const { params } = useRoute() + const tag = params?.tag || "unknown" const { posts, loadMore, hasMore, isLoadingMore } = useSuspensePosts({ tag }) diff --git a/packages/better-blog/src/context/route-context.tsx b/packages/better-blog/src/context/route-context.tsx index d30c672..0ea9a7b 100644 --- a/packages/better-blog/src/context/route-context.tsx +++ b/packages/better-blog/src/context/route-context.tsx @@ -5,9 +5,10 @@ import type { RouteContextValue, RouteProviderProps } from "./types" export const RouteContext = React.createContext(null) -export function RouteProvider({ routeMatch, children }: RouteProviderProps) { +export function RouteProvider({ type, params, children }: RouteProviderProps) { const contextValue: RouteContextValue = { - routeMatch + type, + params } return ( diff --git a/packages/better-blog/src/context/types.ts b/packages/better-blog/src/context/types.ts index 4e7b9a3..c2914aa 100644 --- a/packages/better-blog/src/context/types.ts +++ b/packages/better-blog/src/context/types.ts @@ -1,10 +1,5 @@ import type { BlogLocalization } from "@/localization/blog-localization" -import type { - BlogDataProvider, - PageComponentOverrides, - Post, - RouteMatch -} from "@/types" +import type { BlogDataProvider, PageComponentOverrides, Post } from "@/types" import type React from "react" import type { defaultNavigate, defaultReplace } from "./defaults" @@ -161,9 +156,17 @@ export interface BlogComponents { export type BlogUIComponents = Partial export interface RouteContextValue { - routeMatch: RouteMatch + /** + * Current route type for conditional rendering + */ + type: import("@/types").RouteType + /** + * Route parameters extracted from the path + */ + params?: Record } export interface RouteProviderProps { - routeMatch: RouteMatch + type: import("@/types").RouteType + params?: Record children: React.ReactNode } diff --git a/packages/better-blog/src/router/__tests__/router.test.ts b/packages/better-blog/src/router/__tests__/router.test.ts deleted file mode 100644 index 9d265d7..0000000 --- a/packages/better-blog/src/router/__tests__/router.test.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { matchRoute } from "../router" - -describe("matchRoute", () => { - test("matches home /", () => { - const match = matchRoute([]) - expect(match.type).toBe("home") - }) - - test("prioritizes static /new over dynamic /:slug", () => { - const match = matchRoute(["new"]) - expect(match.type).toBe("new") - }) - - test("matches dynamic /:slug for arbitrary slug", () => { - const match = matchRoute(["hello-world"]) - expect(match.type).toBe("post") - expect(match.params?.slug).toBe("hello-world") - }) - - test("matches /drafts as drafts route", () => { - const match = matchRoute(["drafts"]) - expect(match.type).toBe("drafts") - }) - - test("matches /:slug/edit as edit route", () => { - const match = matchRoute(["my-post", "edit"]) - expect(match.type).toBe("edit") - expect(match.params?.slug).toBe("my-post") - }) - - test("matches /tag/:tag as tag route", () => { - const match = matchRoute(["tag", "react"]) - expect(match.type).toBe("tag") - expect(match.params?.tag).toBe("react") - }) - - test("returns unknown for undefined routes", () => { - const match = matchRoute(["does-not-exist", "deep"]) - expect(match.type).toBe("unknown") - }) -}) - -describe("matchRoute with basePath stripping", () => { - const basePath = "/posts" - - test("strips basePath and matches home /", () => { - const match = matchRoute(["posts"], basePath) - expect(match.type).toBe("home") - }) - - test("strips basePath and matches /new", () => { - const match = matchRoute(["posts", "new"], basePath) - expect(match.type).toBe("new") - }) - - test("strips basePath and matches dynamic /:slug", () => { - const match = matchRoute(["posts", "hello-world"], basePath) - expect(match.type).toBe("post") - expect(match.params?.slug).toBe("hello-world") - }) - - test("strips basePath and matches /drafts", () => { - const match = matchRoute(["posts", "drafts"], basePath) - expect(match.type).toBe("drafts") - }) - - test("strips basePath and matches /:slug/edit", () => { - const match = matchRoute(["posts", "my-post", "edit"], basePath) - expect(match.type).toBe("edit") - expect(match.params?.slug).toBe("my-post") - }) - - test("strips basePath and matches /tag/:tag", () => { - const match = matchRoute(["posts", "tag", "react"], basePath) - expect(match.type).toBe("tag") - expect(match.params?.tag).toBe("react") - }) - - test("strips basePath and returns unknown for undefined routes", () => { - const match = matchRoute(["posts", "does-not-exist", "deep"], basePath) - expect(match.type).toBe("unknown") - }) - - test('basePath normalization variants are handled ("posts" and "/posts/")', () => { - expect(matchRoute(["posts", "new"], "posts").type).toBe("new") - expect(matchRoute(["posts", "new"], "/posts/").type).toBe("new") - }) -}) diff --git a/packages/better-blog/src/router/__tests__/seo-resolver.test.ts b/packages/better-blog/src/router/__tests__/seo-resolver.test.ts index 483c951..2933448 100644 --- a/packages/better-blog/src/router/__tests__/seo-resolver.test.ts +++ b/packages/better-blog/src/router/__tests__/seo-resolver.test.ts @@ -1,4 +1,4 @@ -import type { BlogDataProvider, Post, RouteMatch, SeoSiteConfig } from "@/types" +import type { BlogDataProvider, Post, RouteInfo, SeoSiteConfig } from "@/types" import { resolveSEO } from "../meta-resolver" function createProvider(posts: Post[]): BlogDataProvider { @@ -47,13 +47,12 @@ const site: SeoSiteConfig = { describe("resolveSEO", () => { test("uses post data for post route and builds JSON-LD", async () => { const provider = createProvider([basePost]) - const match: RouteMatch = { + const routeInfo: RouteInfo = { type: "post", - params: { slug: "hello-world" }, - metadata: { title: "Fallback Title", description: "Fallback Desc" } + params: { slug: "hello-world" } } - const seo = await resolveSEO(match, provider, site) + const seo = await resolveSEO(routeInfo, provider, site) expect(seo.meta.title).toBe("Hello World") expect(seo.meta.description).toBe("An intro post") expect(seo.meta.openGraph?.images?.length).toBe(1) @@ -65,20 +64,18 @@ describe("resolveSEO", () => { ).toBe(true) }) - test("falls back to route metadata when post not found", async () => { + test("falls back to route defaults when post not found", async () => { const provider = createProvider([]) - const match: RouteMatch = { + const routeInfo: RouteInfo = { type: "post", - params: { slug: "missing" }, - metadata: { - title: "Route Title", - description: "Route Desc", - image: "https://img/route.png" - } + params: { slug: "missing" } } - const seo = await resolveSEO(match, provider, site) - expect(seo.meta.title).toBe("Route Title") - expect(seo.meta.description).toBe("Route Desc") + const seo = await resolveSEO(routeInfo, provider, site) + // Should use default title from getDefaultTitle() + expect(seo.meta.title).toBe("Post: missing") + // Should use default description from getDefaultDescription() + expect(seo.meta.description).toBe("Blog post content") + // Should still have default image from site config expect(seo.meta.twitter?.card).toBe("summary_large_image") }) @@ -91,12 +88,11 @@ describe("resolveSEO", () => { publishedAt: undefined } const provider = createProvider([draft]) - const match: RouteMatch = { + const routeInfo: RouteInfo = { type: "post", - params: { slug: "draft" }, - metadata: { title: "Draft" } + params: { slug: "draft" } } - const seo = await resolveSEO(match, provider, site) + const seo = await resolveSEO(routeInfo, provider, site) expect(seo.meta.robots).toBe("noindex,nofollow") }) }) diff --git a/packages/better-blog/src/router/__tests__/tanstack-head.test.ts b/packages/better-blog/src/router/__tests__/tanstack-head.test.ts deleted file mode 100644 index d4595de..0000000 --- a/packages/better-blog/src/router/__tests__/tanstack-head.test.ts +++ /dev/null @@ -1,60 +0,0 @@ -import type { BlogDataProvider, Post, SeoSiteConfig } from "@/types" -import { buildTanStackHead } from "../tanstack-head" - -function providerWith(posts: Post[]): BlogDataProvider { - return { - async getAllPosts(filter) { - if (!filter?.slug) return posts - return posts.filter((p) => p.slug === filter.slug) - }, - async getPostBySlug(slug) { - return posts.find((p) => p.slug === slug) ?? null - } - } -} - -const post: Post = { - id: "1", - slug: "hello-world", - title: "Hello World", - excerpt: "Intro", - content: "...", - image: "https://img/og.jpg", - published: true, - status: "PUBLISHED", - publishedAt: new Date("2024-01-01T00:00:00Z"), - tags: [], - createdAt: new Date("2023-12-31T00:00:00Z"), - updatedAt: new Date("2024-01-02T00:00:00Z"), - author: { id: "a", name: "A" } -} - -const site: SeoSiteConfig = { siteUrl: "https://example.com", siteName: "Site" } - -describe("buildTanStackHead", () => { - test("maps SEO into TanStack meta & links", async () => { - const head = await buildTanStackHead({ - path: "hello-world", - provider: providerWith([post]), - site - }) - const meta = head.meta || [] - expect(meta.some((m) => m.title === "Hello World")).toBe(true) - expect( - meta.some((m) => m.name === "description" && m.content === "Intro") - ).toBe(true) - expect( - meta.some( - (m) => m.property === "og:title" && m.content === "Hello World" - ) - ).toBe(true) - expect( - meta.some( - (m) => - m.name === "twitter:card" && - m.content === "summary_large_image" - ) - ).toBe(true) - expect(head.links?.some((l) => l.rel === "canonical")).toBe(true) - }) -}) diff --git a/packages/better-blog/src/router/blog-client-router.tsx b/packages/better-blog/src/router/blog-client-router.tsx new file mode 100644 index 0000000..b0d7a7e --- /dev/null +++ b/packages/better-blog/src/router/blog-client-router.tsx @@ -0,0 +1,39 @@ +"use client" + +/** + * Shared client-side router instance with React components + * Used by BlogPageRouter and BlogMetaTags + */ + +import { createRouter } from "@olliethedev/yar" +import { + draftsRoute, + editPostRoute, + homeRoute, + newPostRoute, + postRoute, + tagRoute +} from "./pluggable-routes" + +/** + * All blog routes with components in a single object + * Order matters: more specific routes should come before dynamic ones + */ +const clientRoutes = { + home: homeRoute, + new: newPostRoute, + drafts: draftsRoute, + tag: tagRoute, + edit: editPostRoute, + post: postRoute +} as const + +/** + * Shared client-side blog router instance with components + */ +export const blogClientRouter = createRouter(clientRoutes) + +/** + * Export route type for type inference + */ +export type BlogClientRoutes = typeof clientRoutes diff --git a/packages/better-blog/src/router/blog-router-client.tsx b/packages/better-blog/src/router/blog-router-client.tsx deleted file mode 100644 index 29cf2b3..0000000 --- a/packages/better-blog/src/router/blog-router-client.tsx +++ /dev/null @@ -1,108 +0,0 @@ -"use client" - -// Client-side blog router with components -import { createRouter } from "@olliethedev/yar" - -import type { RouteMatch } from "@/types" -import { - draftsRoute, - editPostRoute, - homeRoute, - newPostRoute, - postRoute, - tagRoute -} from "./pluggable-routes" - -/** - * All blog routes with components in a single object - * Order matters: more specific routes should come before dynamic ones - */ -const clientRoutes = { - home: homeRoute, - new: newPostRoute, - drafts: draftsRoute, - tag: tagRoute, - edit: editPostRoute, - post: postRoute -} as const - -/** - * Create and export the client-side blog router instance with components - */ -export const blogRouterClient = createRouter(clientRoutes) - -/** - * Export route type for type inference - */ -export type BlogRoutesClient = typeof clientRoutes - -/** - * Match a route based on path segments and return route information - * Uses yar's synchronous getRoute (v1.0.3+) for route matching - */ -export function matchRouteClient( - pathSegments?: string[], - basePath?: string -): RouteMatch { - const normalizedSlug = pathSegments || [] - - if ( - basePath && - normalizedSlug[0] === basePath.split("/").filter(Boolean)[0] - ) { - normalizedSlug.shift() - } - - const path = normalizedSlug.length ? `/${normalizedSlug.join("/")}` : "/" - - // Use yar's synchronous getRoute to match the route - const route = blogRouterClient.getRoute(path) - - if (route) { - const { meta, params, extra } = route - const metaTags = meta ? meta() : [] - - // Extract title and description from meta tags - const titleTag = metaTags.find( - ( - tag: React.JSX.IntrinsicElements["meta"] | undefined - ): tag is React.JSX.IntrinsicElements["meta"] => - tag !== undefined && "name" in tag && tag.name === "title" - ) - const descriptionTag = metaTags.find( - ( - tag: React.JSX.IntrinsicElements["meta"] | undefined - ): tag is React.JSX.IntrinsicElements["meta"] => - tag !== undefined && "name" in tag && tag.name === "description" - ) - - const title = - (titleTag && "content" in titleTag - ? titleTag.content - : undefined) || "Untitled" - const description = - descriptionTag && "content" in descriptionTag - ? descriptionTag.content - : undefined - - // Determine route type from path and params - const type = extra?.type || "unknown" - - return { - type: type, - params, - metadata: { - title, - description - } - } - } - - // Return unknown route if no match - return { - type: "unknown", - metadata: { - title: `Unknown route: ${path}` - } - } -} diff --git a/packages/better-blog/src/router/index.ts b/packages/better-blog/src/router/index.ts index a3743a4..e90598a 100644 --- a/packages/better-blog/src/router/index.ts +++ b/packages/better-blog/src/router/index.ts @@ -1,7 +1,104 @@ -// Core router exports (server-safe, no component imports) -export * from "./router" -export * from "./types" +// Import for use in helpers +import { blogRouter } from "./blog-router" + +// Core router exports export * from "./routes" export { blogRouter, type BlogRoutes } from "./blog-router" export { resolveMetadata, resolveSEO } from "./meta-resolver" -export { buildTanStackHead } from "./tanstack-head" +export type { RouteType, RouteInfo } from "@/types" + +/** + * Route path constants for building URLs + */ +export const ROUTE_PATHS = { + /** Home page path: / */ + HOME: "/", + /** New post form path: /new */ + NEW: "/new", + /** Drafts list path: /drafts */ + DRAFTS: "/drafts", + /** Tag page path builder */ + TAG: (tag: string) => `/tag/${tag}`, + /** Post detail path builder */ + POST: (slug: string) => `/${slug}`, + /** Edit post form path builder */ + EDIT: (slug: string) => `/${slug}/edit` +} as const + +/** + * Route type guards for checking route types + */ +export function isHomeRoute( + route: ReturnType +): boolean { + const extra = route?.extra as (() => { type: string }) | undefined + return extra?.()?.type === "home" +} + +export function isPostRoute( + route: ReturnType +): boolean { + const extra = route?.extra as (() => { type: string }) | undefined + return extra?.()?.type === "post" +} + +export function isTagRoute( + route: ReturnType +): boolean { + const extra = route?.extra as (() => { type: string }) | undefined + return extra?.()?.type === "tag" +} + +export function isDraftsRoute( + route: ReturnType +): boolean { + const extra = route?.extra as (() => { type: string }) | undefined + return extra?.()?.type === "drafts" +} + +export function isNewRoute( + route: ReturnType +): boolean { + const extra = route?.extra as (() => { type: string }) | undefined + return extra?.()?.type === "new" +} + +export function isEditRoute( + route: ReturnType +): boolean { + const extra = route?.extra as (() => { type: string }) | undefined + return extra?.()?.type === "edit" +} + +/** + * Helper to extract route info from yar route + */ +export function getRouteInfo(path: string): import("@/types").RouteInfo { + const route = blogRouter.getRoute(path) + const extra = route?.extra as (() => { type: string }) | undefined + const type = (extra?.()?.type || "unknown") as import("@/types").RouteType + + return { + type, + params: route?.params + } +} + +/** + * Helper to prefetch route data + */ +export async function prefetchRoute( + path: string, + provider: import("@/types").BlogDataProvider, + queryClient: import("@tanstack/react-query").QueryClient +): Promise { + const route = blogRouter.getRoute(path) + if (route?.loader) { + await ( + route.loader as ( + provider: import("@/types").BlogDataProvider, + queryClient: import("@tanstack/react-query").QueryClient + ) => Promise + )(provider, queryClient) + } +} diff --git a/packages/better-blog/src/router/meta-resolver.ts b/packages/better-blog/src/router/meta-resolver.ts index 5e948fd..7136791 100644 --- a/packages/better-blog/src/router/meta-resolver.ts +++ b/packages/better-blog/src/router/meta-resolver.ts @@ -4,7 +4,7 @@ import type { BlogPageMetadata, BlogPageSEO, Post, - RouteMatch, + RouteInfo, SeoSiteConfig } from "@/types" @@ -13,11 +13,11 @@ import type { * Prefer using {@link resolveSEO} for structured data as well. */ export async function resolveMetadata( - match: RouteMatch, + routeInfo: RouteInfo, provider: BlogDataProvider, site?: SeoSiteConfig ): Promise { - const seo = await resolveSEO(match, provider, site) + const seo = await resolveSEO(routeInfo, provider, site) return seo.meta } @@ -26,22 +26,22 @@ export async function resolveMetadata( * Builds rich metadata and JSON-LD for blog pages and posts. */ export async function resolveSEO( - match: RouteMatch, + routeInfo: RouteInfo, provider: BlogDataProvider, site?: SeoSiteConfig ): Promise { - const post = await fetchPostIfNeeded(match, provider) - const baseMeta = buildBasePageMetadata(match, post, site) - const structuredData = buildStructuredData(match, post, baseMeta, site) + const post = await fetchPostIfNeeded(routeInfo, provider) + const baseMeta = buildBasePageMetadata(routeInfo, post, site) + const structuredData = buildStructuredData(routeInfo, post, baseMeta, site) return { meta: baseMeta, structuredData } } async function fetchPostIfNeeded( - match: RouteMatch, + routeInfo: RouteInfo, provider: BlogDataProvider ): Promise { - if (match.type !== "post" || !match.params?.slug) return null - const slug = match.params.slug + if (routeInfo.type !== "post" || !routeInfo.params?.slug) return null + const slug = routeInfo.params.slug try { const direct = await provider.getPostBySlug?.(slug) if (direct) return direct @@ -53,19 +53,64 @@ async function fetchPostIfNeeded( } } +function getDefaultTitle(routeInfo: RouteInfo): string { + switch (routeInfo.type) { + case "home": + return "Blog Posts" + case "post": + return routeInfo.params?.slug + ? `Post: ${routeInfo.params.slug}` + : "Post" + case "tag": + return routeInfo.params?.tag + ? `Posts tagged: ${routeInfo.params.tag}` + : "Tag" + case "drafts": + return "My Drafts" + case "new": + return "Create New Post" + case "edit": + return routeInfo.params?.slug + ? `Editing: ${routeInfo.params.slug}` + : "Edit Post" + default: + return "Unknown" + } +} + +function getDefaultDescription(routeInfo: RouteInfo): string | undefined { + switch (routeInfo.type) { + case "home": + return "Latest blog posts" + case "post": + return "Blog post content" + case "tag": + return routeInfo.params?.tag + ? `All posts tagged with ${routeInfo.params.tag}` + : undefined + case "drafts": + return "Draft posts" + case "new": + return "Create a new blog post" + case "edit": + return "Edit blog post" + default: + return undefined + } +} + function buildBasePageMetadata( - match: RouteMatch, + routeInfo: RouteInfo, post: Post | null, site?: SeoSiteConfig ): BlogPageMetadata { const isPost = Boolean(post) - const title = post?.title ?? match.metadata.title - const description = post?.excerpt ?? match.metadata.description - const chosenImage = - post?.image ?? match.metadata.image ?? site?.defaultImageUrl + const title = post?.title ?? getDefaultTitle(routeInfo) + const description = post?.excerpt ?? getDefaultDescription(routeInfo) + const chosenImage = post?.image ?? site?.defaultImageUrl // Build canonical URL if siteUrl can be inferred - const slugPath = derivePathFromMatch(match) + const slugPath = derivePathFromRoute(routeInfo) const canonicalUrl = site?.siteUrl && slugPath ? normalizeUrl(`${site.siteUrl}/${slugPath}`) @@ -77,7 +122,7 @@ function buildBasePageMetadata( title, description, canonicalUrl, - robots: deriveRobotsTag(match, post), + robots: deriveRobotsTag(routeInfo, post), openGraph: { title, description, @@ -96,7 +141,7 @@ function buildBasePageMetadata( } function buildStructuredData( - match: RouteMatch, + routeInfo: RouteInfo, post: Post | null, meta: BlogPageMetadata, site?: SeoSiteConfig @@ -108,13 +153,13 @@ function buildStructuredData( } // Breadcrumbs for all pages with a path - const path = derivePathFromMatch(match) + const path = derivePathFromRoute(routeInfo) if (site?.siteUrl && path) { data.push( buildBreadcrumbJsonLd( site.siteUrl, path, - post?.title ?? match.metadata.title + post?.title ?? getDefaultTitle(routeInfo) ) ) } @@ -220,16 +265,17 @@ function buildAuthorJsonLd( } } -function derivePathFromMatch(match: RouteMatch): string | undefined { - if (match.type === "home") return undefined - if (match.type === "post" && match.params?.slug) return match.params.slug - if (match.type === "tag" && match.params?.tag) - return `tag/${match.params.tag}` +function derivePathFromRoute(routeInfo: RouteInfo): string | undefined { + if (routeInfo.type === "home") return undefined + if (routeInfo.type === "post" && routeInfo.params?.slug) + return routeInfo.params.slug + if (routeInfo.type === "tag" && routeInfo.params?.tag) + return `tag/${routeInfo.params.tag}` // drafts/new/edit treated as-is for canonical construction - if (match.type === "drafts") return "drafts" - if (match.type === "new") return "new" - if (match.type === "edit" && match.params?.slug) - return `${match.params.slug}/edit` + if (routeInfo.type === "drafts") return "drafts" + if (routeInfo.type === "new") return "new" + if (routeInfo.type === "edit" && routeInfo.params?.slug) + return `${routeInfo.params.slug}/edit` return undefined } @@ -242,7 +288,7 @@ function capitalize(input: string): string { } function deriveRobotsTag( - match: RouteMatch, + routeInfo: RouteInfo, post: Post | null ): string | undefined { // Default: index all non-unknown routes @@ -253,12 +299,12 @@ function deriveRobotsTag( return isPublished ? "index,follow" : "noindex,nofollow" } if ( - match.type === "drafts" || - match.type === "new" || - match.type === "edit" + routeInfo.type === "drafts" || + routeInfo.type === "new" || + routeInfo.type === "edit" ) { return "noindex,nofollow" } - if (match.type === "unknown") return "noindex,nofollow" + if (routeInfo.type === "unknown") return "noindex,nofollow" return "index,follow" } diff --git a/packages/better-blog/src/router/pluggable-routes.tsx b/packages/better-blog/src/router/pluggable-routes.tsx index b2a6404..0961585 100644 --- a/packages/better-blog/src/router/pluggable-routes.tsx +++ b/packages/better-blog/src/router/pluggable-routes.tsx @@ -1,5 +1,15 @@ "use client" +/** + * Client-side routes with React components + * + * NOTE: These routes mirror the server-safe routes in routes.ts but add client components. + * The server routes (routes.ts) provide: meta, loader, seo (for SSR/SSG) + * These client routes provide: PageComponent, LoadingComponent, ErrorComponent (for CSR) + * + * Both define the same paths and route types to work seamlessly in hybrid SSR/CSR scenarios. + */ + import { FormPageSkeleton } from "@/components/better-blog/form-page-skeleton" import { ListPageSkeleton } from "@/components/better-blog/list-page-skeleton" import { @@ -13,8 +23,7 @@ import { import { PostPageSkeleton } from "@/components/better-blog/post-page-skeleton" import { DefaultError } from "@/components/better-blog/default-error" -import type { RouteMatch } from "@/types" -// Pluggable route definitions with components for client-side use +import type { RouteType } from "@/types" import { createRoute } from "@olliethedev/yar" // Default loading components @@ -43,106 +52,67 @@ function PostLoading() { } /** - * Home route with components - displays list of all published posts + * Home route with components - mirrors server route but adds UI components * Path: / */ export const homeRoute = createRoute("/", () => ({ PageComponent: HomePageComponent, LoadingComponent: PostsLoading, ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: "Blog Posts" }, - { name: "description", content: "Latest blog posts" } - ], - extra: { - type: "home" as RouteMatch["type"] - } + extra: () => ({ type: "home" as RouteType }) })) /** - * Post route with components - displays a single post by slug + * Post route with components - mirrors server route but adds UI components * Path: /:slug */ -export const postRoute = createRoute("/:slug", ({ params }) => ({ +export const postRoute = createRoute("/:slug", () => ({ PageComponent: PostPageComponent, LoadingComponent: PostLoading, ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: `Post: ${params.slug || ""}` }, - { name: "description", content: "Blog post content" } - ], - extra: { - type: "post" as RouteMatch["type"] - } + extra: () => ({ type: "post" as RouteType }) })) /** - * Tag route with components - displays posts filtered by tag + * Tag route with components - mirrors server route but adds UI components * Path: /tag/:tag */ -export const tagRoute = createRoute("/tag/:tag", ({ params }) => ({ +export const tagRoute = createRoute("/tag/:tag", () => ({ PageComponent: TagPageComponent, LoadingComponent: PostsLoading, ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: `Posts tagged: ${params.tag || ""}` }, - { - name: "description", - content: `All posts tagged with ${params.tag || ""}` - } - ], - extra: { - type: "tag" as RouteMatch["type"] - } + extra: () => ({ type: "tag" as RouteType }) })) /** - * Drafts route with components - displays all draft posts + * Drafts route with components - mirrors server route but adds UI components * Path: /drafts */ export const draftsRoute = createRoute("/drafts", () => ({ PageComponent: DraftsPageComponent, LoadingComponent: PostsLoading, ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: "My Drafts" }, - { name: "description", content: "Draft posts" } - ], - extra: { - type: "drafts" as RouteMatch["type"] - } + extra: () => ({ type: "drafts" as RouteType }) })) /** - * New post route with components - form to create a new post + * New post route with components - mirrors server route but adds UI components * Path: /new */ export const newPostRoute = createRoute("/new", () => ({ PageComponent: NewPostPageComponent, LoadingComponent: FormLoading, ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: "Create New Post" }, - { name: "description", content: "Create a new blog post" } - ], - extra: { - type: "new" as RouteMatch["type"] - } + extra: () => ({ type: "new" as RouteType }) })) /** - * Edit post route with components - form to edit an existing post + * Edit post route with components - mirrors server route but adds UI components * Path: /:slug/edit */ -export const editPostRoute = createRoute("/:slug/edit", ({ params }) => ({ +export const editPostRoute = createRoute("/:slug/edit", () => ({ PageComponent: EditPostPageComponent, LoadingComponent: FormLoading, ErrorComponent: DefaultError, - meta: () => [ - { name: "title", content: `Editing: ${params.slug || ""}` }, - { name: "description", content: "Edit blog post" } - ], - extra: { - type: "edit" as RouteMatch["type"] - } + extra: () => ({ type: "edit" as RouteType }) })) diff --git a/packages/better-blog/src/router/router.ts b/packages/better-blog/src/router/router.ts deleted file mode 100644 index 9c0a3e2..0000000 --- a/packages/better-blog/src/router/router.ts +++ /dev/null @@ -1,78 +0,0 @@ -import type { RouteMatch } from "@/types" -import { blogRouter } from "./blog-router" - -/** - * Match a route based on path segments and return route information - * Uses yar's synchronous getRoute (v1.0.3+) for route matching - */ -export function matchRoute( - pathSegments?: string[], - basePath?: string -): RouteMatch { - const normalizedSlug = pathSegments || [] - - if ( - basePath && - normalizedSlug[0] === basePath.split("/").filter(Boolean)[0] - ) { - normalizedSlug.shift() - } - - const path = normalizedSlug.length ? `/${normalizedSlug.join("/")}` : "/" - - // Use yar's synchronous getRoute to match the route - const route = blogRouter.getRoute(path) - - if (route) { - const { meta, params, extra } = route - const metaTags = meta ? meta() : [] - - // Extract title and description from meta tags - const titleTag = metaTags.find( - ( - tag: React.JSX.IntrinsicElements["meta"] | undefined - ): tag is React.JSX.IntrinsicElements["meta"] => - tag !== undefined && "name" in tag && tag.name === "title" - ) - const descriptionTag = metaTags.find( - ( - tag: React.JSX.IntrinsicElements["meta"] | undefined - ): tag is React.JSX.IntrinsicElements["meta"] => - tag !== undefined && "name" in tag && tag.name === "description" - ) - - const title = - (titleTag && "content" in titleTag - ? titleTag.content - : undefined) || "Untitled" - const description = - descriptionTag && "content" in descriptionTag - ? descriptionTag.content - : undefined - - // Determine route type from path and params - const type = extra?.type || "unknown" - - return { - type, - params, - metadata: { - title, - description - } - } - } - - // Return unknown route if no match - return { - type: "unknown", - metadata: { - title: `Unknown route: ${path}` - } - } -} - -/** - * Export the blog router for advanced use cases - */ -export { blogRouter } from "./blog-router" diff --git a/packages/better-blog/src/router/routes.ts b/packages/better-blog/src/router/routes.ts index 98acdc3..cc79986 100644 --- a/packages/better-blog/src/router/routes.ts +++ b/packages/better-blog/src/router/routes.ts @@ -1,20 +1,123 @@ // Server-safe route definitions (no component imports) // This file can be imported in both server and client contexts -import type { RouteMatch } from "@/types" +import type { + BlogDataProvider, + BlogPageSEO, + RouteInfo, + RouteType, + SeoSiteConfig +} from "@/types" import { createRoute } from "@olliethedev/yar" +import type { QueryClient } from "@tanstack/react-query" +import { createBlogQueryKeys } from "../queries" +import { resolveSEO } from "./meta-resolver" + +/** + * SEO resolver type for routes + */ +export type SEOResolver = ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig +) => Promise + +/** + * Extended route extra with SEO resolver + */ +export interface RouteExtraWithMeta { + type: RouteType + seo: SEOResolver +} + +/** + * Helper to convert BlogPageSEO to JSX meta elements + */ +function seoToMetaElements( + seo: BlogPageSEO +): Array { + const meta: Array = [] + + if (seo.meta.title) meta.push({ name: "title", content: seo.meta.title }) + if (seo.meta.description) + meta.push({ name: "description", content: seo.meta.description }) + if (seo.meta.robots) meta.push({ name: "robots", content: seo.meta.robots }) + + // Open Graph + if (seo.meta.openGraph?.type) + meta.push({ property: "og:type", content: seo.meta.openGraph.type }) + if (seo.meta.openGraph?.title) + meta.push({ property: "og:title", content: seo.meta.openGraph.title }) + if (seo.meta.openGraph?.description) + meta.push({ + property: "og:description", + content: seo.meta.openGraph.description + }) + if (seo.meta.openGraph?.url) + meta.push({ property: "og:url", content: seo.meta.openGraph.url }) + if (seo.meta.openGraph?.siteName) + meta.push({ + property: "og:site_name", + content: seo.meta.openGraph.siteName + }) + + const ogImages = seo.meta.openGraph?.images || [] + for (const img of ogImages) { + const imgUrl = typeof img === "string" ? img : img.url + if (imgUrl) meta.push({ property: "og:image", content: imgUrl }) + } + + // Twitter + if (seo.meta.twitter?.card) + meta.push({ name: "twitter:card", content: seo.meta.twitter.card }) + if (seo.meta.twitter?.title) + meta.push({ name: "twitter:title", content: seo.meta.twitter.title }) + if (seo.meta.twitter?.description) + meta.push({ + name: "twitter:description", + content: seo.meta.twitter.description + }) + + const twitterImages = seo.meta.twitter?.images || [] + for (const img of twitterImages) { + if (img) meta.push({ name: "twitter:image", content: img }) + } + + return meta +} /** * Home route - displays list of all published posts * Path: / */ export const homeRoute = createRoute("/", () => ({ - meta: () => [ - { name: "title", content: "Blog Posts" }, - { name: "description", content: "Latest blog posts" } - ], - extra: { - type: "home" as RouteMatch["type"] - } + meta: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ) => { + const seo = await resolveSEO(routeInfo, serverConfig, site) + return seoToMetaElements(seo) + }, + loader: async (provider: BlogDataProvider, queryClient: QueryClient) => { + const queries = createBlogQueryKeys(provider) + const base = queries.posts.list({ limit: 10, published: true }) + await queryClient.prefetchInfiniteQuery({ + ...base, + initialPageParam: 0, + staleTime: 1000 * 60 * 5 + }) + }, + extra: () => + ({ + type: "home", + seo: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ): Promise => { + return await resolveSEO(routeInfo, serverConfig, site) + } + }) satisfies RouteExtraWithMeta })) /** @@ -22,13 +125,35 @@ export const homeRoute = createRoute("/", () => ({ * Path: /:slug */ export const postRoute = createRoute("/:slug", ({ params }) => ({ - meta: () => [ - { name: "title", content: `Post: ${params.slug || ""}` }, - { name: "description", content: "Blog post content" } - ], - extra: { - type: "post" as RouteMatch["type"] - } + meta: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ) => { + const seo = await resolveSEO(routeInfo, serverConfig, site) + return seoToMetaElements(seo) + }, + loader: async (provider: BlogDataProvider, queryClient: QueryClient) => { + const slug = params.slug + if (!slug) return + const queries = createBlogQueryKeys(provider) + const base = queries.posts.detail(slug) + await queryClient.prefetchQuery({ + ...base, + staleTime: 1000 * 60 * 5 + }) + }, + extra: () => + ({ + type: "post", + seo: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ): Promise => { + return await resolveSEO(routeInfo, serverConfig, site) + } + }) satisfies RouteExtraWithMeta })) /** @@ -36,16 +161,36 @@ export const postRoute = createRoute("/:slug", ({ params }) => ({ * Path: /tag/:tag */ export const tagRoute = createRoute("/tag/:tag", ({ params }) => ({ - meta: () => [ - { name: "title", content: `Posts tagged: ${params.tag || ""}` }, - { - name: "description", - content: `All posts tagged with ${params.tag || ""}` - } - ], - extra: { - type: "tag" as RouteMatch["type"] - } + meta: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ) => { + const seo = await resolveSEO(routeInfo, serverConfig, site) + return seoToMetaElements(seo) + }, + loader: async (provider: BlogDataProvider, queryClient: QueryClient) => { + const tag = params.tag + if (!tag) return + const queries = createBlogQueryKeys(provider) + const base = queries.posts.list({ tag, limit: 10 }) + await queryClient.prefetchInfiniteQuery({ + ...base, + initialPageParam: 0, + staleTime: 1000 * 60 * 5 + }) + }, + extra: () => + ({ + type: "tag" as RouteType, + seo: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ): Promise => { + return await resolveSEO(routeInfo, serverConfig, site) + } + }) satisfies RouteExtraWithMeta })) /** @@ -53,39 +198,106 @@ export const tagRoute = createRoute("/tag/:tag", ({ params }) => ({ * Path: /drafts */ export const draftsRoute = createRoute("/drafts", () => ({ - meta: () => [ - { name: "title", content: "My Drafts" }, - { name: "description", content: "Draft posts" } - ], - extra: { - type: "drafts" as RouteMatch["type"] - } + meta: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ) => { + const seo = await resolveSEO(routeInfo, serverConfig, site) + return seoToMetaElements(seo) + }, + loader: async (provider: BlogDataProvider, queryClient: QueryClient) => { + const queries = createBlogQueryKeys(provider) + const base = queries.drafts.list({ limit: 10 }) + await queryClient.prefetchInfiniteQuery({ + ...base, + initialPageParam: 0, + staleTime: 1000 * 60 * 5 + }) + }, + extra: () => + ({ + type: "drafts" as RouteType, + seo: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ): Promise => { + return await resolveSEO(routeInfo, serverConfig, site) + } + }) satisfies RouteExtraWithMeta })) /** * New post route - form to create a new post * Path: /new */ -export const newPostRoute = createRoute("/new", () => ({ - meta: () => [ - { name: "title", content: "Create New Post" }, - { name: "description", content: "Create a new blog post" } - ], - extra: { - type: "new" as RouteMatch["type"] - } -})) +export const newPostRoute = createRoute( + "/new", + () => ({ + meta: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ) => { + const seo = await resolveSEO(routeInfo, serverConfig, site) + return seoToMetaElements(seo) + }, + loader: async ( + _provider: BlogDataProvider, + _queryClient: QueryClient + ) => { + // No data to prefetch for new post form + return + }, + extra: () => + ({ + type: "new" as RouteType, + seo: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ): Promise => { + return await resolveSEO(routeInfo, serverConfig, site) + } + }) satisfies RouteExtraWithMeta + }), + undefined, + { isStatic: true } +) /** * Edit post route - form to edit an existing post * Path: /:slug/edit */ export const editPostRoute = createRoute("/:slug/edit", ({ params }) => ({ - meta: () => [ - { name: "title", content: `Editing: ${params.slug || ""}` }, - { name: "description", content: "Edit blog post" } - ], - extra: { - type: "edit" as RouteMatch["type"] - } + meta: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ) => { + const seo = await resolveSEO(routeInfo, serverConfig, site) + return seoToMetaElements(seo) + }, + loader: async (provider: BlogDataProvider, queryClient: QueryClient) => { + const slug = params.slug + if (!slug) return + const queries = createBlogQueryKeys(provider) + const base = queries.posts.detail(slug) + await queryClient.prefetchQuery({ + ...base, + staleTime: 1000 * 60 * 5 + }) + }, + extra: () => + ({ + type: "edit" as RouteType, + seo: async ( + routeInfo: RouteInfo, + serverConfig: BlogDataProvider, + site?: SeoSiteConfig + ): Promise => { + return await resolveSEO(routeInfo, serverConfig, site) + } + }) satisfies RouteExtraWithMeta })) diff --git a/packages/better-blog/src/router/tanstack-head.ts b/packages/better-blog/src/router/tanstack-head.ts deleted file mode 100644 index 29641c4..0000000 --- a/packages/better-blog/src/router/tanstack-head.ts +++ /dev/null @@ -1,101 +0,0 @@ -import type { - BlogDataProvider, - BlogPageSEO, - RouteMatch, - SeoSiteConfig -} from "@/types" -import { resolveSEO } from "./meta-resolver" - -export type TanStackHead = { - meta?: Array<{ - name?: string - property?: string - content?: string - title?: string - }> - links?: Array<{ rel: string; href: string }> -} - -/** - * Build TanStack Router-compatible head() output from Better Blog SEO. - * Use either a precomputed match or a path string (no leading slash). - */ -export async function buildTanStackHead(options: { - match?: RouteMatch - path?: string - provider: BlogDataProvider - site?: SeoSiteConfig -}): Promise { - const match = - options.match ?? - (await import("./blog-router-client")).matchRouteClient( - options.path?.split("/").filter(Boolean) - ) - const seo: BlogPageSEO = await resolveSEO( - match, - options.provider, - options.site - ) - - // Map core tags - const meta: TanStackHead["meta"] = [] - - if (seo.meta.title) meta.push({ title: seo.meta.title }) - if (seo.meta.description) - meta.push({ name: "description", content: seo.meta.description }) - if (seo.meta.robots) meta.push({ name: "robots", content: seo.meta.robots }) - - // Open Graph - meta.push({ - property: "og:type", - content: (seo.meta.openGraph?.type ?? - (seo.meta.openGraph?.title ? "article" : "website")) as string - }) - if (seo.meta.openGraph?.title ?? seo.meta.title) { - meta.push({ - property: "og:title", - content: (seo.meta.openGraph?.title ?? seo.meta.title) as string - }) - } - if (seo.meta.openGraph?.description ?? seo.meta.description) { - meta.push({ - property: "og:description", - content: (seo.meta.openGraph?.description ?? - seo.meta.description) as string - }) - } - if (seo.meta.openGraph?.url) - meta.push({ property: "og:url", content: seo.meta.openGraph.url }) - const ogImage = seo.meta.openGraph?.images?.[0] - const ogImageUrl = typeof ogImage === "string" ? ogImage : ogImage?.url - if (ogImageUrl) meta.push({ property: "og:image", content: ogImageUrl }) - - // Twitter - meta.push({ - name: "twitter:card", - content: - seo.meta.twitter?.card ?? - (ogImageUrl ? "summary_large_image" : "summary") - }) - if (seo.meta.twitter?.title ?? seo.meta.title) { - meta.push({ - name: "twitter:title", - content: (seo.meta.twitter?.title ?? seo.meta.title) as string - }) - } - if (seo.meta.twitter?.description ?? seo.meta.description) { - meta.push({ - name: "twitter:description", - content: (seo.meta.twitter?.description ?? - seo.meta.description) as string - }) - } - if (ogImageUrl) meta.push({ name: "twitter:image", content: ogImageUrl }) - - // Links - const links: TanStackHead["links"] = [] - if (seo.meta.canonicalUrl) - links.push({ rel: "canonical", href: seo.meta.canonicalUrl }) - - return { meta: meta.filter(Boolean), links } -} diff --git a/packages/better-blog/src/router/types.ts b/packages/better-blog/src/router/types.ts deleted file mode 100644 index dd20716..0000000 --- a/packages/better-blog/src/router/types.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { RouteMatch } from "@/types" - -export interface RouteDefinition { - /** Route type identifier */ - type: RouteMatch["type"] - - /** URL pattern to match (e.g., [], ['posts', ':slug'], ['tag', ':tag']) */ - pattern: (string | ":slug" | ":tag" | ":id")[] - - /** Static routes to generate for SSG (if applicable) */ - staticRoutes?: Array<{ slug: string[] }> - - /** Default metadata for this route */ - metadata: { - title: string | ((params: Record) => string) - description?: string | ((params: Record) => string) - image?: string | ((params: Record) => string) - } -} -export interface RouteSchema { - routes: RouteDefinition[] -} diff --git a/packages/better-blog/src/server/pages/index.tsx b/packages/better-blog/src/server/pages/index.tsx index 9b9c9ca..f18524b 100644 --- a/packages/better-blog/src/server/pages/index.tsx +++ b/packages/better-blog/src/server/pages/index.tsx @@ -1,3 +1,2 @@ export * from "./server-adapter" -export * from "./prefetch" export * from "./types" diff --git a/packages/better-blog/src/server/pages/prefetch.ts b/packages/better-blog/src/server/pages/prefetch.ts deleted file mode 100644 index d1f7168..0000000 --- a/packages/better-blog/src/server/pages/prefetch.ts +++ /dev/null @@ -1,61 +0,0 @@ -// Server-safe prefetch utilities -// NO "use client" directive - can be called from server components - -import type { BlogDataProvider } from "@/types" -import type { RouteMatch } from "@/types" -import type { QueryClient } from "@tanstack/react-query" -import { createBlogQueryKeys } from "../../queries" - -export async function prefetchBlogData(options: { - match: RouteMatch - provider: BlogDataProvider - queryClient: QueryClient -}): Promise { - const { match, provider, queryClient } = options - const queries = createBlogQueryKeys(provider) - - switch (match.type) { - case "home": { - const base = queries.posts.list({ limit: 10, published: true }) - await queryClient.prefetchInfiniteQuery({ - ...base, - initialPageParam: 0, - staleTime: 1000 * 60 * 5 - }) - return - } - case "tag": { - const tag = match.params?.tag - if (!tag) return - const base = queries.posts.list({ tag, limit: 10 }) - await queryClient.prefetchInfiniteQuery({ - ...base, - initialPageParam: 0, - staleTime: 1000 * 60 * 5 - }) - return - } - case "post": - case "edit": { - const slug = match.params?.slug - if (!slug) return - const base = queries.posts.detail(slug) - await queryClient.prefetchQuery({ - ...base, - staleTime: 1000 * 60 * 5 - }) - return - } - case "drafts": { - const base = queries.drafts.list({ limit: 10 }) - await queryClient.prefetchInfiniteQuery({ - ...base, - initialPageParam: 0, - staleTime: 1000 * 60 * 5 - }) - return - } - default: - return - } -} diff --git a/packages/better-blog/src/server/pages/server-adapter.tsx b/packages/better-blog/src/server/pages/server-adapter.tsx index ce57023..e50e75b 100644 --- a/packages/better-blog/src/server/pages/server-adapter.tsx +++ b/packages/better-blog/src/server/pages/server-adapter.tsx @@ -1,17 +1,90 @@ -import { resolveMetadata, resolveSEO } from "@/router/meta-resolver" import type { BlogDataProvider, BlogPageMetadata, - RouteMatch, + BlogPageSEO, + RouteInfo, SeoSiteConfig } from "@/types" import type { QueryClient } from "@tanstack/react-query" import { HydrationBoundary, dehydrate } from "@tanstack/react-query" import { BlogPageRouter } from "../../components/better-blog/blog-router-page" -import { matchRoute } from "../../router/router" -import { prefetchBlogData } from "./prefetch" +import { blogRouter, getRouteInfo, prefetchRoute } from "../../router" import type { BlogServerAdapter, CreateBlogServerAdapterOptions } from "./types" +/** + * Convert JSX meta elements to BlogPageMetadata structure + */ +function metaElementsToMetadata( + metaElements: Array +): BlogPageMetadata { + const metadata: BlogPageMetadata = { title: "" } + + for (const meta of metaElements) { + if (!meta) continue + + if ("name" in meta && meta.name === "title" && "content" in meta) { + metadata.title = meta.content as string + } else if ( + "name" in meta && + meta.name === "description" && + "content" in meta + ) { + metadata.description = meta.content as string + } else if ( + "name" in meta && + meta.name === "robots" && + "content" in meta + ) { + metadata.robots = meta.content as string + } else if ("property" in meta && "content" in meta) { + // Open Graph tags + if (!metadata.openGraph) metadata.openGraph = {} + + const prop = meta.property as string + const content = meta.content as string + + if (prop === "og:type") metadata.openGraph.type = content + else if (prop === "og:title") metadata.openGraph.title = content + else if (prop === "og:description") + metadata.openGraph.description = content + else if (prop === "og:url") { + metadata.openGraph.url = content + // Also use og:url as canonical URL + metadata.canonicalUrl = content + } else if (prop === "og:site_name") + metadata.openGraph.siteName = content + else if (prop === "og:image") { + if (!metadata.openGraph.images) metadata.openGraph.images = [] + metadata.openGraph.images.push(content) + } + } else if ("name" in meta && "content" in meta) { + // Twitter tags + const name = meta.name as string + const content = meta.content as string + + if (name.startsWith("twitter:")) { + if (!metadata.twitter) metadata.twitter = {} + + if ( + name === "twitter:card" && + (content === "summary" || content === "summary_large_image") + ) { + metadata.twitter.card = content + } else if (name === "twitter:title") { + metadata.twitter.title = content + } else if (name === "twitter:description") { + metadata.twitter.description = content + } else if (name === "twitter:image") { + if (!metadata.twitter.images) metadata.twitter.images = [] + metadata.twitter.images.push(content) + } + } + } + } + + return metadata +} + /** * Create a server adapter to integrate Better Blog with SSR/SSG frameworks. * @@ -33,71 +106,127 @@ export function createBlogServerAdapter( }, async generateMetadata(path?: string): Promise { - const match = matchRoute(path?.split("/").filter(Boolean)) - return resolveMetadata(match, serverConfig, site) + const pathSegments = path?.split("/").filter(Boolean) || [] + const routePath = pathSegments.length + ? `/${pathSegments.join("/")}` + : "/" + const route = blogRouter.getRoute(routePath) + const routeInfo = getRouteInfo(routePath) + + if (route?.meta && typeof route.meta === "function") { + const metaElements = await route.meta( + routeInfo, + serverConfig, + site + ) + return metaElementsToMetadata(metaElements) + } + + // Fallback for unknown routes + return { + title: "Not Found" + } }, async generateNextMetadata( path?: string ): Promise> { - const match = matchRoute(path?.split("/").filter(Boolean)) - const seo = await resolveSEO(match, serverConfig, site) - return mapSeoToNextMetadata(seo) + const pathSegments = path?.split("/").filter(Boolean) || [] + const routePath = pathSegments.length + ? `/${pathSegments.join("/")}` + : "/" + const route = blogRouter.getRoute(routePath) + const routeInfo = getRouteInfo(routePath) + + // Get metadata from route's meta field + let metadata: BlogPageMetadata = { + title: "Not Found" + } + + if (route?.meta && typeof route.meta === "function") { + const metaElements = await route.meta( + routeInfo, + serverConfig, + site + ) + metadata = metaElementsToMetadata(metaElements) + } + + // Get structured data from route's seo function in extra + let structuredData: Array> = [] + if (route?.extra && typeof route.extra === "function") { + const extra = route.extra() + if ( + extra && + "seo" in extra && + typeof extra.seo === "function" + ) { + const seo = await extra.seo(routeInfo, serverConfig, site) + structuredData = seo.structuredData + } + } + + return mapSeoToNextMetadata({ meta: metadata, structuredData }) }, BlogServerRouter: async function BlogServerRouter({ path }) { - const routeMatch = matchRoute(path?.split("/").filter(Boolean)) + const pathSegments = path?.split("/").filter(Boolean) || [] + const routePath = pathSegments.length + ? `/${pathSegments.join("/")}` + : "/" + const route = blogRouter.getRoute(routePath) + const routeInfo = getRouteInfo(routePath) + return ( ) - }, - - prefetch: async function prefetch({ path }) { - const routeMatch = matchRoute(path?.split("/").filter(Boolean)) - await prefetchBlogData({ - match: routeMatch, - provider: serverConfig, - queryClient - }) } } } async function BlogServerRouterContent({ path, - routeMatch, + routeInfo, + route, serverConfig, queryClient, site }: { path?: string - routeMatch: RouteMatch + routeInfo: RouteInfo + route: ReturnType serverConfig: BlogDataProvider queryClient: QueryClient site?: SeoSiteConfig }) { - // Prefetch data on the server - await prefetchBlogData({ - match: routeMatch, - provider: serverConfig, - queryClient - }) + // Prefetch data on the server using the route's loader + const pathSegments = path?.split("/").filter(Boolean) || [] + const routePath = pathSegments.length ? `/${pathSegments.join("/")}` : "/" + await prefetchRoute(routePath, serverConfig, queryClient) // Dehydrate the state for hydration on the client const dehydratedState = dehydrate(queryClient) // Build SEO (metadata + JSON-LD) on the server so frameworks can consume - const seo = await resolveSEO(routeMatch, serverConfig, site) + + let seo: BlogPageSEO | undefined + if (route?.extra && typeof route.extra === "function") { + const extra = route.extra() + if (extra && "seo" in extra && typeof extra.seo === "function") { + seo = await extra.seo(routeInfo, serverConfig, site) + } + } return ( {/* Embed JSON-LD on the server for crawlers without JS */} - {seo.structuredData.map((obj, idx) => ( + {seo?.structuredData.map((obj, idx) => ( @@ -143,12 +272,28 @@ function mapSeoToNextMetadata( function generateStaticRoutes(): Array<{ slug: string[] }> { // Static routes for SSG generation - // These are the routes that don't require dynamic parameters - const staticRoutes: Array<{ slug: string[] }> = [ - { slug: [] }, // home route - { slug: ["new"] }, // new post route - { slug: ["drafts"] } // drafts route - ] + // Filter route definitions that have isStatic in their extra configuration + const staticRoutes: Array<{ slug: string[] }> = [] + + for (const routeDef of Object.values(blogRouter.routes)) { + // Call the route function to get its configuration + // For static routes without params, we can safely call with empty context + // biome-ignore lint/suspicious/noExplicitAny: Route definitions require context + const config = routeDef({ params: undefined, query: undefined } as any) + + // Check if isStatic property exists and is true + if ( + config.extra && + "isStatic" in config.extra && + config.extra.isStatic + ) { + // Extract the path from the route definition + const path = routeDef.path + staticRoutes.push({ + slug: path === "/" ? [] : path.split("/").filter(Boolean) + }) + } + } return staticRoutes } diff --git a/packages/better-blog/src/server/pages/types.ts b/packages/better-blog/src/server/pages/types.ts index 0b151f1..1a93caa 100644 --- a/packages/better-blog/src/server/pages/types.ts +++ b/packages/better-blog/src/server/pages/types.ts @@ -27,9 +27,6 @@ export interface BlogServerAdapter { /** Optional path string like "posts/my-post" (no leading slash). */ path?: string }> - prefetch: (options: { - path?: string - }) => Promise } export interface CreateBlogServerAdapterOptions { diff --git a/packages/better-blog/src/types/index.ts b/packages/better-blog/src/types/index.ts index 392a0a9..48e18dc 100644 --- a/packages/better-blog/src/types/index.ts +++ b/packages/better-blog/src/types/index.ts @@ -44,18 +44,24 @@ export interface BlogDataProviderConfig { getAuthor?: (id: string) => Promise defaultLocale?: string } -export interface RouteMatch { - type: "home" | "post" | "tag" | "drafts" | "new" | "edit" | "unknown" - params?: { - slug?: string - tag?: string - postSlug?: string - } - metadata: { - title: string - description?: string - image?: string - } +/** + * Route type union for all blog routes + */ +export type RouteType = + | "home" + | "post" + | "tag" + | "drafts" + | "new" + | "edit" + | "unknown" + +/** + * Simple route info extracted from yar router + */ +export interface RouteInfo { + type: RouteType + params?: Record } /** * @deprecated PageComponentOverrides is deprecated in favor of creating custom routes with yar. diff --git a/packages/better-blog/tsup.config.ts b/packages/better-blog/tsup.config.ts index 29427b0..c2df8a2 100644 --- a/packages/better-blog/tsup.config.ts +++ b/packages/better-blog/tsup.config.ts @@ -11,7 +11,6 @@ export default defineConfig((env) => { queries: "./src/queries/index.ts", hooks: "./src/hooks/index.ts", router: "./src/router/index.ts", - "router/client": "./src/router/blog-router-client.tsx", context: "./src/context/index.ts", api: "./src/api/index.ts", "server/pages": "./src/server/pages/index.tsx", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6ad107..4566432 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -373,8 +373,8 @@ importers: specifier: ^7.15.3 version: 7.16.0(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(typescript@5.9.3) '@olliethedev/yar': - specifier: ^1.0.6 - version: 1.0.6(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0) + specifier: ^1.1.0 + version: 1.1.0(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0) '@radix-ui/react-accordion': specifier: '>=1.2.0' version: 1.2.12(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -516,7 +516,7 @@ importers: version: 5.22.0(prisma@5.22.0) '@tailwindcss/typography': specifier: ^0.5.16 - version: 0.5.19(tailwindcss@4.1.14) + version: 0.5.19 '@testing-library/jest-dom': specifier: ^6.6.4 version: 6.9.1 @@ -573,7 +573,7 @@ importers: version: 5.22.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.14) + version: 1.0.7 ts-jest: specifier: ^29.4.0 version: 29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(esbuild@0.25.10)(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@5.9.3) @@ -2198,8 +2198,8 @@ packages: '@ocavue/utils@0.7.1': resolution: {integrity: sha512-gY/YWdyTPGx8YTT0q/0tQJs6kPJ2XeXRPfdzWLt+wefIOuwb1n5Nq3GwKM/AY+Wab3dbx6w+MkX8VSbrm3l6Xg==} - '@olliethedev/yar@1.0.6': - resolution: {integrity: sha512-j3I/VDKh7e7eRRMSnCqbFbVfjBZlnLruNamd78h/y2cE2mD7eRdIRT11Vgm2rZXSpuR0uqvUQfjXlp2EhgmfbA==} + '@olliethedev/yar@1.1.0': + resolution: {integrity: sha512-upJHm+jp0u6sD1uiQJfyBYhsaWw1Z7MJlA2Rj+PoAP83tE1yimLem9UXqicVF5j2musTU+v66DDlKDNlIT62Uw==} peerDependencies: '@types/react': ^19.1.16 '@types/react-dom': ^19.1.9 @@ -10675,7 +10675,7 @@ snapshots: '@ocavue/utils@0.7.1': {} - '@olliethedev/yar@1.0.6(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)': + '@olliethedev/yar@1.1.0(@types/react-dom@19.2.0(@types/react@19.2.0))(@types/react@19.2.0)': dependencies: '@types/react': 19.2.0 '@types/react-dom': 19.2.0(@types/react@19.2.0) @@ -11714,10 +11714,9 @@ snapshots: postcss: 8.5.6 tailwindcss: 4.1.14 - '@tailwindcss/typography@0.5.19(tailwindcss@4.1.14)': + '@tailwindcss/typography@0.5.19': dependencies: postcss-selector-parser: 6.0.10 - tailwindcss: 4.1.14 '@tailwindcss/vite@4.1.14(vite@7.1.3(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6))': dependencies: @@ -17672,9 +17671,7 @@ snapshots: tailwind-merge@3.3.1: {} - tailwindcss-animate@1.0.7(tailwindcss@4.1.14): - dependencies: - tailwindcss: 4.1.14 + tailwindcss-animate@1.0.7: {} tailwindcss@4.1.14: {} From 03f0e61fb792351843034580d490c5ed246e5d78 Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Mon, 6 Oct 2025 08:02:47 -0400 Subject: [PATCH 09/15] feat: fix e2e --- e2e/tests/smoke.posts.spec.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/e2e/tests/smoke.posts.spec.ts b/e2e/tests/smoke.posts.spec.ts index 058fc66..87bc1a3 100644 --- a/e2e/tests/smoke.posts.spec.ts +++ b/e2e/tests/smoke.posts.spec.ts @@ -141,8 +141,10 @@ test("unknown tag page state renders", async ({ page }) => { await page.goto("/posts/tag/unknown", { waitUntil: "networkidle" }) await expect(page.locator(contentSelector)).toBeVisible() await expect(page).toHaveTitle(/Posts tagged: unknown|Unknown route/i) - // Unknown tag should render an empty-state - await expect(page.locator(emptySelector)).toBeVisible() + // Unknown tag should render empty-state or error placeholder; wait for either to appear + await expect( + page.locator(`${emptySelector}, ${errorSelector}`) + ).toBeVisible() // expect(errors, `Console errors detected: \n${errors.join("\n")}`).toEqual([]) }) From 05a6d9d050418a55732c80431f2afa275d11762f Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Mon, 6 Oct 2025 08:39:49 -0400 Subject: [PATCH 10/15] fix: path normalization --- .../components/better-blog/blog-meta-tags.tsx | 5 +- .../better-blog/blog-router-page.tsx | 20 +-- .../src/lib/__tests__/utils.test.ts | 154 ++++++++++++++++++ packages/better-blog/src/lib/utils.ts | 29 ++++ 4 files changed, 194 insertions(+), 14 deletions(-) create mode 100644 packages/better-blog/src/lib/__tests__/utils.test.ts diff --git a/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx b/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx index 64b0300..7f5b1c7 100644 --- a/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx +++ b/packages/better-blog/src/components/better-blog/blog-meta-tags.tsx @@ -1,6 +1,7 @@ "use client" import { BlogContext } from "@/context/better-blog-context" +import { stripBasePath } from "@/lib/utils" import { blogClientRouter } from "@/router/blog-client-router" import { resolveSEO } from "@/router/meta-resolver" import type { BlogDataProvider, SeoSiteConfig } from "@/types" @@ -44,7 +45,9 @@ export function BlogMetaTags({ const effectiveProvider = provider ?? blog?.dataProvider if (!effectiveProvider) return - const normalizedPath = path?.replace(blog?.basePath ?? "", "") ?? "/" + const normalizedPath = blog?.basePath + ? stripBasePath(path ?? "/", blog.basePath) + : (path ?? "/") const route = blogClientRouter.getRoute(normalizedPath) if (!route) return diff --git a/packages/better-blog/src/components/better-blog/blog-router-page.tsx b/packages/better-blog/src/components/better-blog/blog-router-page.tsx index 77ad0ff..11359e2 100644 --- a/packages/better-blog/src/components/better-blog/blog-router-page.tsx +++ b/packages/better-blog/src/components/better-blog/blog-router-page.tsx @@ -4,6 +4,7 @@ import { ListPageSkeleton } from "@/components/better-blog/list-page-skeleton" import { BlogContext } from "@/context/better-blog-context" import { RouteProvider } from "@/context/route-context" import type { useBlogContext } from "@/hooks/context-hooks" +import { stripBasePath } from "@/lib/utils" import React, { Suspense } from "react" import { blogClientRouter } from "../../router/blog-client-router" import { NotFoundPage } from "./pages/404-page" @@ -90,20 +91,13 @@ export function BlogPageRouter({ path?: string basePath?: string }) { - const pathSegments = path?.split("/").filter(Boolean) || [] + // Normalize the incoming path + const normalizedPath = path?.startsWith("/") ? path : `/${path || ""}` - // Strip basePath if present - let normalizedPath = pathSegments - if ( - basePath && - pathSegments[0] === basePath.split("/").filter(Boolean)[0] - ) { - normalizedPath = pathSegments.slice(1) - } - - const fullPath = normalizedPath.length - ? `/${normalizedPath.join("/")}` - : "/" + // Strip basePath if present (handles multi-segment base paths correctly) + const fullPath = basePath + ? stripBasePath(normalizedPath, basePath) + : normalizedPath // Use yar router directly to get the route const route = blogClientRouter.getRoute(fullPath) diff --git a/packages/better-blog/src/lib/__tests__/utils.test.ts b/packages/better-blog/src/lib/__tests__/utils.test.ts new file mode 100644 index 0000000..a97530b --- /dev/null +++ b/packages/better-blog/src/lib/__tests__/utils.test.ts @@ -0,0 +1,154 @@ +import { buildPath, normalizeBasePath, stripBasePath } from "../utils" + +describe("stripBasePath", () => { + describe("single-segment basePath", () => { + it("strips single-segment basePath from path", () => { + expect(stripBasePath("/blog/my-post", "/blog")).toBe("/my-post") + }) + + it("handles path equal to basePath", () => { + expect(stripBasePath("/blog", "/blog")).toBe("/") + }) + + it("does not strip if path doesn't start with basePath", () => { + expect(stripBasePath("/posts/my-post", "/blog")).toBe( + "/posts/my-post" + ) + }) + }) + + describe("multi-segment basePath", () => { + it("strips multi-segment basePath correctly", () => { + expect(stripBasePath("/blog/posts/my-article", "/blog/posts")).toBe( + "/my-article" + ) + }) + + it("strips three-segment basePath", () => { + expect( + stripBasePath("/app/blog/posts/my-article", "/app/blog/posts") + ).toBe("/my-article") + }) + + it("handles nested paths with multi-segment basePath", () => { + expect( + stripBasePath( + "/blog/posts/category/tech/my-post", + "/blog/posts" + ) + ).toBe("/category/tech/my-post") + }) + + it("handles path equal to multi-segment basePath", () => { + expect(stripBasePath("/blog/posts", "/blog/posts")).toBe("/") + }) + + it("does not strip if only first segment matches", () => { + // This tests the bug we fixed - should NOT strip if only first segment matches + expect(stripBasePath("/blog/other/my-post", "/blog/posts")).toBe( + "/blog/other/my-post" + ) + }) + }) + + describe("edge cases", () => { + it("handles empty basePath", () => { + expect(stripBasePath("/blog/my-post", "")).toBe("/blog/my-post") + }) + + it("handles root basePath", () => { + expect(stripBasePath("/blog/my-post", "/")).toBe("/blog/my-post") + }) + + it("handles basePath without leading slash", () => { + expect(stripBasePath("/blog/my-post", "blog")).toBe("/my-post") + }) + + it("handles path without leading slash", () => { + expect(stripBasePath("blog/my-post", "/blog")).toBe("/my-post") + }) + + it("handles basePath with trailing slash", () => { + expect(stripBasePath("/blog/posts/my-post", "/blog/posts/")).toBe( + "/my-post" + ) + }) + }) + + describe("realistic scenarios", () => { + it("works with tag routes", () => { + expect( + stripBasePath("/blog/posts/tag/typescript", "/blog/posts") + ).toBe("/tag/typescript") + }) + + it("works with drafts routes", () => { + expect(stripBasePath("/blog/posts/drafts", "/blog/posts")).toBe( + "/drafts" + ) + }) + + it("works with edit routes", () => { + expect( + stripBasePath("/blog/posts/edit/my-post", "/blog/posts") + ).toBe("/edit/my-post") + }) + + it("works with deeply nested paths", () => { + expect( + stripBasePath( + "/api/v2/blog/posts/2024/01/my-post", + "/api/v2/blog/posts" + ) + ).toBe("/2024/01/my-post") + }) + }) +}) + +describe("normalizeBasePath", () => { + it("adds leading slash if missing", () => { + expect(normalizeBasePath("blog")).toBe("/blog") + }) + + it("removes trailing slash", () => { + expect(normalizeBasePath("/blog/")).toBe("/blog") + }) + + it("keeps root path as is", () => { + expect(normalizeBasePath("/")).toBe("/") + }) + + it("handles already normalized paths", () => { + expect(normalizeBasePath("/blog/posts")).toBe("/blog/posts") + }) +}) + +describe("buildPath", () => { + it("builds path with single-segment basePath", () => { + expect(buildPath("/blog", "my-post")).toBe("/blog/my-post") + }) + + it("builds path with multi-segment basePath", () => { + expect(buildPath("/blog/posts", "my-post")).toBe("/blog/posts/my-post") + }) + + it("handles multiple segments", () => { + expect(buildPath("/blog", "tag", "typescript")).toBe( + "/blog/tag/typescript" + ) + }) + + it("filters out undefined and null segments", () => { + expect(buildPath("/blog", undefined, "my-post", null)).toBe( + "/blog/my-post" + ) + }) + + it("handles root basePath", () => { + expect(buildPath("/", "my-post")).toBe("/my-post") + }) + + it("handles empty basePath", () => { + expect(buildPath("", "my-post")).toBe("/my-post") + }) +}) diff --git a/packages/better-blog/src/lib/utils.ts b/packages/better-blog/src/lib/utils.ts index 0f10e8f..bcf9bd1 100644 --- a/packages/better-blog/src/lib/utils.ts +++ b/packages/better-blog/src/lib/utils.ts @@ -121,3 +121,32 @@ export function buildPath( } return suffix ? `${basePath}/${suffix}` : basePath } + +/** + * Strips basePath from the beginning of path if present. + * Handles multi-segment base paths correctly. + * + * @example + * stripBasePath("/blog/posts/my-article", "/blog/posts") // => "/my-article" + * stripBasePath("/blog/posts", "/blog/posts") // => "/" + * stripBasePath("/other/path", "/blog/posts") // => "/other/path" + */ +export function stripBasePath(path: string, basePath: string): string { + if (!basePath || basePath === "/" || basePath === "") { + return path + } + + const normalizedBasePath = normalizeBasePath(basePath) + const normalizedPath = path.startsWith("/") ? path : `/${path}` + + // Check if path starts with basePath + if (normalizedPath === normalizedBasePath) { + return "/" + } + + if (normalizedPath.startsWith(`${normalizedBasePath}/`)) { + return normalizedPath.slice(normalizedBasePath.length) + } + + return normalizedPath +} From e307be49b67b8942f819a88d2fc52bbb46661c19 Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Mon, 6 Oct 2025 09:56:07 -0400 Subject: [PATCH 11/15] fix: post page hook usage --- .../components/better-blog/pages/edit-post-page.tsx | 4 ++-- .../src/components/better-blog/pages/post-page.tsx | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx b/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx index 86659bb..b826db4 100644 --- a/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx @@ -10,8 +10,8 @@ import { PageWrapper } from "./page-wrapper" export function EditPostPageComponent() { const { params } = useRoute() - const slug = params!.slug - const { post } = useSuspensePost(slug!) + const slug = params?.slug || "" + const { post } = useSuspensePost(slug) const { localization } = useBlogContext() if (!post) { diff --git a/packages/better-blog/src/components/better-blog/pages/post-page.tsx b/packages/better-blog/src/components/better-blog/pages/post-page.tsx index e2b6e9c..38d5bbc 100644 --- a/packages/better-blog/src/components/better-blog/pages/post-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/post-page.tsx @@ -1,10 +1,10 @@ "use client" import { Badge } from "@/components/ui/badge" -import { useBlogContext } from "@/hooks/context-hooks" +import { useBasePath, useBlogContext } from "@/hooks/context-hooks" import { useComponents } from "@/hooks/context-hooks" -import { useBlogPath } from "@/hooks/context-hooks" import { useRoute } from "@/hooks/context-hooks" +import { buildPath } from "@/lib/utils" import { formatDate } from "date-fns" import { useSuspensePost } from "../../../hooks" import { EmptyList } from "../empty-list" @@ -14,11 +14,11 @@ import { PageWrapper } from "./page-wrapper" export function PostPageComponent() { const { params } = useRoute() - const slug = params!.slug - const { post } = useSuspensePost(slug!) + const slug = params?.slug || "" + const { post } = useSuspensePost(slug) const { localization } = useBlogContext() const { Link, Image } = useComponents() - const blogPath = useBlogPath + const basePath = useBasePath() if (!post) { return @@ -48,7 +48,7 @@ export function PostPageComponent() { className="tag" variant="secondary" > - + {tag.name} From 2079408e52e54fb45dc8b2b200b013161c13705c Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Mon, 6 Oct 2025 10:34:47 -0400 Subject: [PATCH 12/15] fix: path issues --- .../better-blog/blog-router-page.tsx | 34 +++++++++++++++---- .../better-blog/pages/edit-post-page.tsx | 9 +++-- .../better-blog/pages/post-page.tsx | 9 +++-- 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/packages/better-blog/src/components/better-blog/blog-router-page.tsx b/packages/better-blog/src/components/better-blog/blog-router-page.tsx index 11359e2..7f2aab9 100644 --- a/packages/better-blog/src/components/better-blog/blog-router-page.tsx +++ b/packages/better-blog/src/components/better-blog/blog-router-page.tsx @@ -4,7 +4,9 @@ import { ListPageSkeleton } from "@/components/better-blog/list-page-skeleton" import { BlogContext } from "@/context/better-blog-context" import { RouteProvider } from "@/context/route-context" import type { useBlogContext } from "@/hooks/context-hooks" +import { DEFAULT_PAGES_BASE_PATH } from "@/lib/constants" import { stripBasePath } from "@/lib/utils" +import type { RouteType } from "@/types" import React, { Suspense } from "react" import { blogClientRouter } from "../../router/blog-client-router" import { NotFoundPage } from "./pages/404-page" @@ -84,26 +86,46 @@ class RouteErrorBoundary extends React.Component< } // Main component that handles routing using yar +// Note: This is a server component. Pass basePath explicitly from your server pages. +// Client components within the tree can use useBasePath() hook from context. export function BlogPageRouter({ path, - basePath + basePath = DEFAULT_PAGES_BASE_PATH }: { path?: string + /** + * Base path for the blog routes. Should match the basePath in BlogProvider. + * Defaults to "/posts" if not provided. + * + * @example + * // Next.js App Router + * + * + * // TanStack Router + * + */ basePath?: string }) { // Normalize the incoming path const normalizedPath = path?.startsWith("/") ? path : `/${path || ""}` // Strip basePath if present (handles multi-segment base paths correctly) - const fullPath = basePath - ? stripBasePath(normalizedPath, basePath) - : normalizedPath + const fullPath = + basePath && basePath !== "/" + ? stripBasePath(normalizedPath, basePath) + : normalizedPath // Use yar router directly to get the route const route = blogClientRouter.getRoute(fullPath) - // Extract type from extra and params from route - const type = route?.extra?.()?.type || "unknown" + // Extract type from extra and params from route - protect against errors + let type: RouteType = "unknown" + try { + type = (route?.extra?.()?.type as RouteType) || "unknown" + } catch { + // If extra() throws, default to "unknown" + type = "unknown" + } const params = route?.params return ( diff --git a/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx b/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx index b826db4..6c586e0 100644 --- a/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx @@ -10,10 +10,15 @@ import { PageWrapper } from "./page-wrapper" export function EditPostPageComponent() { const { params } = useRoute() - const slug = params?.slug || "" - const { post } = useSuspensePost(slug) const { localization } = useBlogContext() + // Early return if slug is missing - prevents invalid API calls + if (!params?.slug) { + return + } + + const { post } = useSuspensePost(params.slug) + if (!post) { return } diff --git a/packages/better-blog/src/components/better-blog/pages/post-page.tsx b/packages/better-blog/src/components/better-blog/pages/post-page.tsx index 38d5bbc..8863fc7 100644 --- a/packages/better-blog/src/components/better-blog/pages/post-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/post-page.tsx @@ -14,12 +14,17 @@ import { PageWrapper } from "./page-wrapper" export function PostPageComponent() { const { params } = useRoute() - const slug = params?.slug || "" - const { post } = useSuspensePost(slug) const { localization } = useBlogContext() const { Link, Image } = useComponents() const basePath = useBasePath() + // Early return if slug is missing - prevents invalid API calls + if (!params?.slug) { + return + } + + const { post } = useSuspensePost(params.slug) + if (!post) { return } From 64df6b29d920210b7d08df9f9f1f43f773ff16ff Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Mon, 6 Oct 2025 11:09:49 -0400 Subject: [PATCH 13/15] fix: hook order and static route lookup --- .../better-blog/pages/edit-post-page.tsx | 11 ++++------- .../components/better-blog/pages/post-page.tsx | 11 ++++------- .../src/server/pages/server-adapter.tsx | 15 +++------------ 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx b/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx index 6c586e0..b9439d6 100644 --- a/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/edit-post-page.tsx @@ -12,14 +12,11 @@ export function EditPostPageComponent() { const { params } = useRoute() const { localization } = useBlogContext() - // Early return if slug is missing - prevents invalid API calls - if (!params?.slug) { - return - } - - const { post } = useSuspensePost(params.slug) + // Call hook unconditionally to comply with Rules of Hooks + const { post } = useSuspensePost(params?.slug ?? "") - if (!post) { + // Check for missing slug or post after hook call + if (!params?.slug || !post) { return } diff --git a/packages/better-blog/src/components/better-blog/pages/post-page.tsx b/packages/better-blog/src/components/better-blog/pages/post-page.tsx index 8863fc7..66461dc 100644 --- a/packages/better-blog/src/components/better-blog/pages/post-page.tsx +++ b/packages/better-blog/src/components/better-blog/pages/post-page.tsx @@ -18,14 +18,11 @@ export function PostPageComponent() { const { Link, Image } = useComponents() const basePath = useBasePath() - // Early return if slug is missing - prevents invalid API calls - if (!params?.slug) { - return - } - - const { post } = useSuspensePost(params.slug) + // Call hook unconditionally to comply with Rules of Hooks + const { post } = useSuspensePost(params?.slug ?? "") - if (!post) { + // Check for missing slug or post after hook call + if (!params?.slug || !post) { return } diff --git a/packages/better-blog/src/server/pages/server-adapter.tsx b/packages/better-blog/src/server/pages/server-adapter.tsx index e50e75b..d994266 100644 --- a/packages/better-blog/src/server/pages/server-adapter.tsx +++ b/packages/better-blog/src/server/pages/server-adapter.tsx @@ -272,21 +272,12 @@ function mapSeoToNextMetadata( function generateStaticRoutes(): Array<{ slug: string[] }> { // Static routes for SSG generation - // Filter route definitions that have isStatic in their extra configuration + // Filter route definitions that have isStatic in their meta configuration const staticRoutes: Array<{ slug: string[] }> = [] for (const routeDef of Object.values(blogRouter.routes)) { - // Call the route function to get its configuration - // For static routes without params, we can safely call with empty context - // biome-ignore lint/suspicious/noExplicitAny: Route definitions require context - const config = routeDef({ params: undefined, query: undefined } as any) - - // Check if isStatic property exists and is true - if ( - config.extra && - "isStatic" in config.extra && - config.extra.isStatic - ) { + // Check if route-level meta has isStatic property + if (routeDef.meta && "isStatic" in routeDef.meta && routeDef.meta.isStatic) { // Extract the path from the route definition const path = routeDef.path staticRoutes.push({ From 493b138c6472fe4a0b9d2820a37b88ecc33e7cc7 Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Mon, 6 Oct 2025 11:17:27 -0400 Subject: [PATCH 14/15] chore: cleanup pageoverrides --- .../docs/content/docs/api-reference/hooks.mdx | 4 -- apps/docs/content/docs/overrides.mdx | 40 ++++++++++++++----- .../src/context/better-blog-context.tsx | 2 - packages/better-blog/src/context/types.ts | 10 +---- .../better-blog/src/hooks/context-hooks.ts | 5 --- packages/better-blog/src/types/index.ts | 32 --------------- 6 files changed, 31 insertions(+), 62 deletions(-) diff --git a/apps/docs/content/docs/api-reference/hooks.mdx b/apps/docs/content/docs/api-reference/hooks.mdx index e3183a9..66859a8 100644 --- a/apps/docs/content/docs/api-reference/hooks.mdx +++ b/apps/docs/content/docs/api-reference/hooks.mdx @@ -108,10 +108,6 @@ Utilities for consuming Better Blog context and routing information. -#### usePageOverrides — Result - - - #### useBasePath — Result Returns: string diff --git a/apps/docs/content/docs/overrides.mdx b/apps/docs/content/docs/overrides.mdx index 128e18f..5a49f31 100644 --- a/apps/docs/content/docs/overrides.mdx +++ b/apps/docs/content/docs/overrides.mdx @@ -1,9 +1,9 @@ --- title: Overriding components -description: Replace built-in pages and wire your own Link/Image +description: Wire your own Link/Image and customize UI components --- -Use `pageOverrides` to replace any built-in page or loading component, and `components` to wire your router-specific `Link`/`Image`. +Use the `components` prop to wire your router-specific `Link`/`Image` components and customize the blog's UI building blocks. ```tsx import { BlogProvider } from 'better-blog/client'; @@ -11,25 +11,45 @@ import { BlogProvider } from 'better-blog/client'; function MyLink({ href, children, className }) { return {children}; } + function MyImage({ src, alt, className, width, height }) { return {alt}; } -function MyHome() { return
Custom Home
; } -function MyHomeLoading() { return
Loading home…
; } +function MyPostCard({ post }) { + return ( +
+

{post.title}

+

{post.excerpt}

+
+ ); +} + +function MyPostCardSkeleton() { + return
Loading...
; +} {children} ``` -Common overrides: +## Available Component Overrides + +- **Link**: Component used for navigation (integrate with your router framework) +- **Image**: Component used for rendering images (e.g., Next.js Image) +- **PostCard**: Component for rendering individual blog post cards in lists +- **PostCardSkeleton**: Skeleton component shown while post cards are loading + +## Customizing Pages -- Replace home, post list, tag list, post detail pages -- Swap loading/skeleton components for each route -- Inject your design system primitives via `components` +To customize entire pages, use the yar router to create custom routes. See the [routing documentation](/docs/routing) for more details. diff --git a/packages/better-blog/src/context/better-blog-context.tsx b/packages/better-blog/src/context/better-blog-context.tsx index 243fa45..a89742d 100644 --- a/packages/better-blog/src/context/better-blog-context.tsx +++ b/packages/better-blog/src/context/better-blog-context.tsx @@ -21,7 +21,6 @@ export const BlogContext = React.createContext(null) export function BlogProvider({ dataProvider, components = defaultUIComponents, - pageOverrides, basePath = DEFAULT_PAGES_BASE_PATH, localization: localizationProp, adminPermissions, @@ -48,7 +47,6 @@ export function BlogProvider({ ...defaultUIComponents, ...components }, - pageOverrides, basePath: normalizeBasePath(basePath), localization, adminPermissions: adminPermissions diff --git a/packages/better-blog/src/context/types.ts b/packages/better-blog/src/context/types.ts index c2914aa..3f9a9e0 100644 --- a/packages/better-blog/src/context/types.ts +++ b/packages/better-blog/src/context/types.ts @@ -1,5 +1,5 @@ import type { BlogLocalization } from "@/localization/blog-localization" -import type { BlogDataProvider, PageComponentOverrides, Post } from "@/types" +import type { BlogDataProvider, Post } from "@/types" import type React from "react" import type { defaultNavigate, defaultReplace } from "./defaults" @@ -13,10 +13,6 @@ export interface BlogContextType { * Set of UI building-block components used throughout the blog UI. */ components: BlogComponents - /** - * Optional page-level component overrides (e.g., swapping list/detail implementations). - */ - pageOverrides?: PageComponentOverrides /** * Base path for blog pages (used to build blog URLs). * @default {@link DEFAULT_PAGES_BASE_PATH} @@ -61,10 +57,6 @@ export interface BlogProviderProps { * Overrides for internal UI components; falls back to standard HTML elements. */ components?: BlogUIComponents - /** - * Optional page-level component overrides (swap list/detail page components). - */ - pageOverrides?: PageComponentOverrides /** * Base path for blog pages (used to build blog URLs) * @default {@link DEFAULT_PAGES_BASE_PATH} diff --git a/packages/better-blog/src/hooks/context-hooks.ts b/packages/better-blog/src/hooks/context-hooks.ts index 7ff3484..70d1038 100644 --- a/packages/better-blog/src/hooks/context-hooks.ts +++ b/packages/better-blog/src/hooks/context-hooks.ts @@ -8,7 +8,6 @@ import { import { BlogContext } from "@/context/better-blog-context" import { RouteContext } from "@/context/route-context" import { buildPath } from "@/lib/utils" -import type { PageComponentOverrides } from "@/types" import React from "react" export interface Foo { @@ -26,10 +25,6 @@ export function useComponents(): BlogComponents { return components } -export function usePageOverrides(): PageComponentOverrides | undefined { - const { pageOverrides } = useBlogContext() - return pageOverrides -} export function useBasePath(): string { const { basePath } = useBlogContext() return basePath diff --git a/packages/better-blog/src/types/index.ts b/packages/better-blog/src/types/index.ts index 48e18dc..2cf14a9 100644 --- a/packages/better-blog/src/types/index.ts +++ b/packages/better-blog/src/types/index.ts @@ -3,7 +3,6 @@ import type { PostCreateExtendedInput, PostUpdateExtendedInput } from "@/schema/post" -import type React from "react" export type Post = { id: string @@ -63,37 +62,6 @@ export interface RouteInfo { type: RouteType params?: Record } -/** - * @deprecated PageComponentOverrides is deprecated in favor of creating custom routes with yar. - * Instead of using pageOverrides, create custom routes using createRoute from @olliethedev/yar - * and combine them with Better Blog's routes. - * - * This interface is kept for backward compatibility but will be removed in a future version. - */ -export interface PageComponentOverrides { - HomeComponent?: React.ComponentType - PostComponent?: React.ComponentType - TagComponent?: React.ComponentType - DraftsComponent?: React.ComponentType - NewPostComponent?: React.ComponentType - EditPostComponent?: React.ComponentType - - HomeLoadingComponent?: React.ComponentType - PostLoadingComponent?: React.ComponentType - TagLoadingComponent?: React.ComponentType - DraftsLoadingComponent?: React.ComponentType - NewPostLoadingComponent?: React.ComponentType - EditPostLoadingComponent?: React.ComponentType - - HomeErrorComponent?: React.ComponentType<{ message?: string }> - PostErrorComponent?: React.ComponentType<{ message?: string }> - TagErrorComponent?: React.ComponentType<{ message?: string }> - DraftsErrorComponent?: React.ComponentType<{ message?: string }> - NewPostErrorComponent?: React.ComponentType<{ message?: string }> - EditPostErrorComponent?: React.ComponentType<{ message?: string }> - - NotFoundComponent?: React.ComponentType<{ message: string }> -} export type Author = { id: string name: string From 079b5d8ef2188ca8a8ea941f8b2ab8489f52887e Mon Sep 17 00:00:00 2001 From: olliethedev <3martynov@gmail.com> Date: Mon, 6 Oct 2025 11:17:57 -0400 Subject: [PATCH 15/15] fix: lint errors --- packages/better-blog/src/server/pages/server-adapter.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/better-blog/src/server/pages/server-adapter.tsx b/packages/better-blog/src/server/pages/server-adapter.tsx index d994266..0a424f6 100644 --- a/packages/better-blog/src/server/pages/server-adapter.tsx +++ b/packages/better-blog/src/server/pages/server-adapter.tsx @@ -277,7 +277,11 @@ function generateStaticRoutes(): Array<{ slug: string[] }> { for (const routeDef of Object.values(blogRouter.routes)) { // Check if route-level meta has isStatic property - if (routeDef.meta && "isStatic" in routeDef.meta && routeDef.meta.isStatic) { + if ( + routeDef.meta && + "isStatic" in routeDef.meta && + routeDef.meta.isStatic + ) { // Extract the path from the route definition const path = routeDef.path staticRoutes.push({