From c456efa6fa6e846ae7e8dab333f2b8fd1f32b19a Mon Sep 17 00:00:00 2001 From: Julius Date: Fri, 2 Jan 2026 18:59:33 +0100 Subject: [PATCH 1/6] prefer `React.use` instead of throwing promises --- packages/react-query/src/suspense.ts | 14 ++++++++++++++ packages/react-query/src/useBaseQuery.ts | 5 ++++- packages/react-query/src/useQueries.ts | 3 ++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/react-query/src/suspense.ts b/packages/react-query/src/suspense.ts index d87569f103..ff157827be 100644 --- a/packages/react-query/src/suspense.ts +++ b/packages/react-query/src/suspense.ts @@ -1,3 +1,4 @@ +import * as React from 'react' import type { DefaultError, DefaultedQueryObserverOptions, @@ -8,6 +9,19 @@ import type { } from '@tanstack/query-core' import type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary' +/** + * TODO (v6): Bump peer dependency to React 19 and use `React.use` directly. + */ +export function suspend(promise: Promise): void { + if (typeof React.use === 'function') { + // `React.use` can be called conditionally + // eslint-disable-next-line react-hooks/rules-of-hooks + React.use(promise) + } else { + throw promise + } +} + export const defaultThrowOnError = < TQueryFnData = unknown, TError = DefaultError, diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index 2a151fe113..c79345ef9a 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -14,6 +14,7 @@ import { ensureSuspenseTimers, fetchOptimistic, shouldSuspend, + suspend, willFetch, } from './suspense' import type { @@ -125,7 +126,9 @@ export function useBaseQuery< // Handle suspense if (shouldSuspend(defaultedOptions, result)) { - throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary) + const promise = fetchOptimistic(defaultedOptions, observer, errorResetBoundary) + suspend(promise) + observer.updateResult() } // Handle error boundary diff --git a/packages/react-query/src/useQueries.ts b/packages/react-query/src/useQueries.ts index 6eabef4060..f25a1d3f06 100644 --- a/packages/react-query/src/useQueries.ts +++ b/packages/react-query/src/useQueries.ts @@ -19,6 +19,7 @@ import { ensureSuspenseTimers, fetchOptimistic, shouldSuspend, + suspend, willFetch, } from './suspense' import type { @@ -307,7 +308,7 @@ export function useQueries< : [] if (suspensePromises.length > 0) { - throw Promise.all(suspensePromises) + suspend(Promise.all(suspensePromises)) } const firstSingleResultWhichShouldThrow = optimisticResult.find( (result, index) => { From 9cbb8331a7c82458c62c748626a652e94c906fc6 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 2 Jan 2026 18:02:30 +0000 Subject: [PATCH 2/6] ci: apply automated fixes --- packages/react-query/src/useBaseQuery.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index c79345ef9a..589cae0b2a 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -126,7 +126,11 @@ export function useBaseQuery< // Handle suspense if (shouldSuspend(defaultedOptions, result)) { - const promise = fetchOptimistic(defaultedOptions, observer, errorResetBoundary) + const promise = fetchOptimistic( + defaultedOptions, + observer, + errorResetBoundary, + ) suspend(promise) observer.updateResult() } From c0781f5e151b3c656004aadecf6b32d900486789 Mon Sep 17 00:00:00 2001 From: Julius Date: Fri, 2 Jan 2026 19:06:11 +0100 Subject: [PATCH 3/6] fianlly --- packages/react-query/src/useBaseQuery.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index 589cae0b2a..3a6d2b7ec3 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -131,8 +131,7 @@ export function useBaseQuery< observer, errorResetBoundary, ) - suspend(promise) - observer.updateResult() + suspend(promise.finally(() => observer.updateResult())) } // Handle error boundary From a54628b4ab3421919c2f4849f9ff9591e3e6969b Mon Sep 17 00:00:00 2001 From: Julius Date: Fri, 2 Jan 2026 21:39:12 +0100 Subject: [PATCH 4/6] add simple start example --- examples/react/react-start/.gitignore | 18 + examples/react/react-start/.prettierignore | 4 + .../react/react-start/.vscode/settings.json | 11 + examples/react/react-start/README.md | 42 + examples/react/react-start/package.json | 30 + .../react-start/src/components/Button.tsx | 27 + .../src/components/DefaultCatchBoundary.tsx | 53 + .../react-start/src/components/NotFound.tsx | 25 + .../react-start/src/components/Spinner.tsx | 13 + .../react/react-start/src/routeTree.gen.ts | 86 + examples/react/react-start/src/router.tsx | 32 + .../react/react-start/src/routes/__root.tsx | 54 + .../react/react-start/src/routes/index.tsx | 31 + .../src/routes/projects.$projectId.tsx | 31 + .../react/react-start/src/utils/queries.ts | 36 + examples/react/react-start/tsconfig.json | 18 + examples/react/react-start/vite.config.ts | 13 + examples/react/suspense/src/index.tsx | 6 +- packages/react-query/src/suspense.ts | 4 +- packages/react-query/src/useBaseQuery.ts | 51 +- packages/vue-query-devtools/package.json | 3 +- packages/vue-query/package.json | 3 +- pnpm-lock.yaml | 1377 ++++++++++++++++- 23 files changed, 1925 insertions(+), 43 deletions(-) create mode 100644 examples/react/react-start/.gitignore create mode 100644 examples/react/react-start/.prettierignore create mode 100644 examples/react/react-start/.vscode/settings.json create mode 100644 examples/react/react-start/README.md create mode 100644 examples/react/react-start/package.json create mode 100644 examples/react/react-start/src/components/Button.tsx create mode 100644 examples/react/react-start/src/components/DefaultCatchBoundary.tsx create mode 100644 examples/react/react-start/src/components/NotFound.tsx create mode 100644 examples/react/react-start/src/components/Spinner.tsx create mode 100644 examples/react/react-start/src/routeTree.gen.ts create mode 100644 examples/react/react-start/src/router.tsx create mode 100644 examples/react/react-start/src/routes/__root.tsx create mode 100644 examples/react/react-start/src/routes/index.tsx create mode 100644 examples/react/react-start/src/routes/projects.$projectId.tsx create mode 100644 examples/react/react-start/src/utils/queries.ts create mode 100644 examples/react/react-start/tsconfig.json create mode 100644 examples/react/react-start/vite.config.ts diff --git a/examples/react/react-start/.gitignore b/examples/react/react-start/.gitignore new file mode 100644 index 0000000000..ca63f49885 --- /dev/null +++ b/examples/react/react-start/.gitignore @@ -0,0 +1,18 @@ +node_modules +package-lock.json +yarn.lock + +.DS_Store +.cache +.env +.vercel +.output +/build/ +/api/ +/server/build +/public/build# Sentry Config File +.env.sentry-build-plugin +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ diff --git a/examples/react/react-start/.prettierignore b/examples/react/react-start/.prettierignore new file mode 100644 index 0000000000..2be5eaa6ec --- /dev/null +++ b/examples/react/react-start/.prettierignore @@ -0,0 +1,4 @@ +**/build +**/public +pnpm-lock.yaml +routeTree.gen.ts \ No newline at end of file diff --git a/examples/react/react-start/.vscode/settings.json b/examples/react/react-start/.vscode/settings.json new file mode 100644 index 0000000000..00b5278e58 --- /dev/null +++ b/examples/react/react-start/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "files.watcherExclude": { + "**/routeTree.gen.ts": true + }, + "search.exclude": { + "**/routeTree.gen.ts": true + }, + "files.readonlyInclude": { + "**/routeTree.gen.ts": true + } +} diff --git a/examples/react/react-start/README.md b/examples/react/react-start/README.md new file mode 100644 index 0000000000..77c61c2504 --- /dev/null +++ b/examples/react/react-start/README.md @@ -0,0 +1,42 @@ +# TanStack Start - Basic React Query Example + +A TanStack Start example demonstrating integration with TanStack Query (React Query). + +- [TanStack Router Docs](https://tanstack.com/router) +- [TanStack Query Docs](https://tanstack.com/query) + +## Start a new project based on this example + +To start a new project based on this example, run: + +```sh +npx gitpick TanStack/router/tree/main/examples/react/start-basic-react-query start-basic-react-query +``` + +## Getting Started + +From your terminal: + +```sh +pnpm install +pnpm dev +``` + +This starts your app in development mode, rebuilding assets on file changes. + +## Build + +To build the app for production: + +```sh +pnpm build +``` + +## TanStack Query Integration + +This example demonstrates how to use TanStack Query with TanStack Start for: + +- Server-side data fetching +- Client-side caching and synchronization +- Optimistic updates +- Automatic refetching diff --git a/examples/react/react-start/package.json b/examples/react/react-start/package.json new file mode 100644 index 0000000000..719d0a7cfb --- /dev/null +++ b/examples/react/react-start/package.json @@ -0,0 +1,30 @@ +{ + "name": "@tanstack/query-example-react-start", + "private": true, + "sideEffects": false, + "type": "module", + "scripts": { + "dev": "vite dev", + "build": "vite build && tsc --noEmit", + "preview": "vite preview", + "start": "pnpx srvx --prod -s ../client dist/server/server.js" + }, + "dependencies": { + "@tanstack/react-query": "^5.90.16", + "@tanstack/react-query-devtools": "^5.91.2", + "@tanstack/react-router": "^1.144.0", + "@tanstack/react-router-devtools": "^1.144.0", + "@tanstack/react-router-ssr-query": "^1.144.0", + "@tanstack/react-start": "^1.145.3", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@types/node": "^22.5.4", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "@vitejs/plugin-react": "^4.3.4", + "typescript": "5.8.3", + "vite": "^6.3.6" + } +} diff --git a/examples/react/react-start/src/components/Button.tsx b/examples/react/react-start/src/components/Button.tsx new file mode 100644 index 0000000000..252272ff74 --- /dev/null +++ b/examples/react/react-start/src/components/Button.tsx @@ -0,0 +1,27 @@ +import React from 'react' + +import Spinner from './Spinner' + +export default function Button({ + children, + onClick, +}: { + children: React.ReactNode + onClick: any +}) { + const [isPending, startTransition] = React.useTransition() + + const handleClick = (e: any) => { + startTransition(() => { + onClick(e) + }) + } + + return ( + <> + + + ) +} diff --git a/examples/react/react-start/src/components/DefaultCatchBoundary.tsx b/examples/react/react-start/src/components/DefaultCatchBoundary.tsx new file mode 100644 index 0000000000..ef2daa1ea1 --- /dev/null +++ b/examples/react/react-start/src/components/DefaultCatchBoundary.tsx @@ -0,0 +1,53 @@ +import { + ErrorComponent, + Link, + rootRouteId, + useMatch, + useRouter, +} from '@tanstack/react-router' +import type { ErrorComponentProps } from '@tanstack/react-router' + +export function DefaultCatchBoundary({ error }: ErrorComponentProps) { + const router = useRouter() + const isRoot = useMatch({ + strict: false, + select: (state) => state.id === rootRouteId, + }) + + console.error(error) + + return ( +
+ +
+ + {isRoot ? ( + + Home + + ) : ( + { + e.preventDefault() + window.history.back() + }} + > + Go Back + + )} +
+
+ ) +} diff --git a/examples/react/react-start/src/components/NotFound.tsx b/examples/react/react-start/src/components/NotFound.tsx new file mode 100644 index 0000000000..fd4e75befe --- /dev/null +++ b/examples/react/react-start/src/components/NotFound.tsx @@ -0,0 +1,25 @@ +import { Link } from '@tanstack/react-router' + +export function NotFound({ children }: { children?: any }) { + return ( +
+
+ {children ||

The page you are looking for does not exist.

} +
+

+ + + Start Over + +

+
+ ) +} diff --git a/examples/react/react-start/src/components/Spinner.tsx b/examples/react/react-start/src/components/Spinner.tsx new file mode 100644 index 0000000000..c68cb061ab --- /dev/null +++ b/examples/react/react-start/src/components/Spinner.tsx @@ -0,0 +1,13 @@ +import React from 'react' + +export default function Spinner() { + return ( + + ) +} diff --git a/examples/react/react-start/src/routeTree.gen.ts b/examples/react/react-start/src/routeTree.gen.ts new file mode 100644 index 0000000000..93ac92eb52 --- /dev/null +++ b/examples/react/react-start/src/routeTree.gen.ts @@ -0,0 +1,86 @@ +/* eslint-disable */ + +// @ts-nocheck + +// noinspection JSUnusedGlobalSymbols + +// This file was automatically generated by TanStack Router. +// 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 { Route as rootRouteImport } from './routes/__root' +import { Route as IndexRouteImport } from './routes/index' +import { Route as ProjectsProjectIdRouteImport } from './routes/projects.$projectId' + +const IndexRoute = IndexRouteImport.update({ + id: '/', + path: '/', + getParentRoute: () => rootRouteImport, +} as any) +const ProjectsProjectIdRoute = ProjectsProjectIdRouteImport.update({ + id: '/projects/$projectId', + path: '/projects/$projectId', + getParentRoute: () => rootRouteImport, +} as any) + +export interface FileRoutesByFullPath { + '/': typeof IndexRoute + '/projects/$projectId': typeof ProjectsProjectIdRoute +} +export interface FileRoutesByTo { + '/': typeof IndexRoute + '/projects/$projectId': typeof ProjectsProjectIdRoute +} +export interface FileRoutesById { + __root__: typeof rootRouteImport + '/': typeof IndexRoute + '/projects/$projectId': typeof ProjectsProjectIdRoute +} +export interface FileRouteTypes { + fileRoutesByFullPath: FileRoutesByFullPath + fullPaths: '/' | '/projects/$projectId' + fileRoutesByTo: FileRoutesByTo + to: '/' | '/projects/$projectId' + id: '__root__' | '/' | '/projects/$projectId' + fileRoutesById: FileRoutesById +} +export interface RootRouteChildren { + IndexRoute: typeof IndexRoute + ProjectsProjectIdRoute: typeof ProjectsProjectIdRoute +} + +declare module '@tanstack/react-router' { + interface FileRoutesByPath { + '/': { + id: '/' + path: '/' + fullPath: '/' + preLoaderRoute: typeof IndexRouteImport + parentRoute: typeof rootRouteImport + } + '/projects/$projectId': { + id: '/projects/$projectId' + path: '/projects/$projectId' + fullPath: '/projects/$projectId' + preLoaderRoute: typeof ProjectsProjectIdRouteImport + parentRoute: typeof rootRouteImport + } + } +} + +const rootRouteChildren: RootRouteChildren = { + IndexRoute: IndexRoute, + ProjectsProjectIdRoute: ProjectsProjectIdRoute, +} +export const routeTree = rootRouteImport + ._addFileChildren(rootRouteChildren) + ._addFileTypes() + +import type { getRouter } from './router.tsx' +import type { createStart } from '@tanstack/react-start' +declare module '@tanstack/react-start' { + interface Register { + ssr: true + router: Awaited> + } +} diff --git a/examples/react/react-start/src/router.tsx b/examples/react/react-start/src/router.tsx new file mode 100644 index 0000000000..396f6211b4 --- /dev/null +++ b/examples/react/react-start/src/router.tsx @@ -0,0 +1,32 @@ +import { QueryClient, QueryClientProvider } from '@tanstack/react-query' +import { createRouter } from '@tanstack/react-router' +import { setupRouterSsrQueryIntegration } from '@tanstack/react-router-ssr-query' +import { routeTree } from './routeTree.gen' +import { DefaultCatchBoundary } from './components/DefaultCatchBoundary' +import { NotFound } from './components/NotFound' + +export function getRouter() { + const queryClient = new QueryClient() + + const router = createRouter({ + routeTree, + context: { queryClient }, + defaultPreload: 'intent', + defaultErrorComponent: DefaultCatchBoundary, + defaultNotFoundComponent: () => , + Wrap: ({ children }) => {children}, + }) + setupRouterSsrQueryIntegration({ + router, + queryClient, + wrapQueryClient: false, + }) + + return router +} + +declare module '@tanstack/react-router' { + interface Register { + router: ReturnType + } +} diff --git a/examples/react/react-start/src/routes/__root.tsx b/examples/react/react-start/src/routes/__root.tsx new file mode 100644 index 0000000000..8a0aec33b2 --- /dev/null +++ b/examples/react/react-start/src/routes/__root.tsx @@ -0,0 +1,54 @@ +/// +import { + HeadContent, + Outlet, + Scripts, + createRootRouteWithContext, +} from '@tanstack/react-router' +import * as React from 'react' +import { ReactQueryDevtools } from '@tanstack/react-query-devtools' +import { DefaultCatchBoundary } from '../components/DefaultCatchBoundary' +import { NotFound } from '../components/NotFound' +import type { QueryClient } from '@tanstack/react-query' + +export const Route = createRootRouteWithContext<{ + queryClient: QueryClient +}>()({ + ssr: false, + head: () => ({ + meta: [ + { + charSet: 'utf-8', + }, + { + name: 'viewport', + content: 'width=device-width, initial-scale=1', + }, + ], + }), + shellComponent: RootDocument, + errorComponent: (props) => { + return ( + + + + ) + }, + notFoundComponent: () => , + component: Outlet, +}) + +function RootDocument({ children }: { children: React.ReactNode }) { + return ( + + + + + + {children} + + + + + ) +} diff --git a/examples/react/react-start/src/routes/index.tsx b/examples/react/react-start/src/routes/index.tsx new file mode 100644 index 0000000000..85eed2fadd --- /dev/null +++ b/examples/react/react-start/src/routes/index.tsx @@ -0,0 +1,31 @@ +import { Link, createFileRoute } from '@tanstack/react-router' +import { useSuspenseQuery } from '@tanstack/react-query' +import { projectsQuery } from '../utils/queries' +import Spinner from '../components/Spinner' + +export const Route = createFileRoute('/')({ + component: ProjectsComponent, + pendingComponent: () =>
Loading projects...
, +}) + +function ProjectsComponent() { + const { data, isFetching } = useSuspenseQuery(projectsQuery()) + + return ( +
+

TanStack Repositories {isFetching ? : null}

+ Back + {data.map((project) => ( +

+ + Load + {' '} + {project.name} +

+ ))} +
+ ) +} diff --git a/examples/react/react-start/src/routes/projects.$projectId.tsx b/examples/react/react-start/src/routes/projects.$projectId.tsx new file mode 100644 index 0000000000..a040afa260 --- /dev/null +++ b/examples/react/react-start/src/routes/projects.$projectId.tsx @@ -0,0 +1,31 @@ +import { Link, createFileRoute } from '@tanstack/react-router' +import { useSuspenseQuery } from '@tanstack/react-query' +import { projectQuery } from '../utils/queries' +import Spinner from '../components/Spinner' + +export const Route = createFileRoute('/projects/$projectId')({ + component: RouteComponent, + pendingComponent: () =>
Loading project...
, +}) + +function RouteComponent() { + const projectId = Route.useParams({ select: (params) => params.projectId }) + const { data, isFetching } = useSuspenseQuery(projectQuery(projectId)) + + return ( +
+

TanStack Repositories

+ Back +

+ {projectId} {isFetching ? : null} +

+
+

forks: {data.forks_count}

+

stars: {data.stargazers_count}

+

watchers: {data.watchers_count}

+
+
+
+
+ ) +} diff --git a/examples/react/react-start/src/utils/queries.ts b/examples/react/react-start/src/utils/queries.ts new file mode 100644 index 0000000000..c0e7e97e79 --- /dev/null +++ b/examples/react/react-start/src/utils/queries.ts @@ -0,0 +1,36 @@ +import { queryOptions } from "@tanstack/react-query"; + +export async function fetchProjects(): Promise< + Array<{ name: string; full_name: string }> +> { + console.info('Fetching projects') + + const response = await fetch( + `https://api.github.com/users/TanStack/repos?sort=updated`, + ) + await new Promise((r) => setTimeout(r, 1000)) + return await response.json() +} + +export const projectsQuery = () => queryOptions({ + queryKey: ['projects'], + queryFn: fetchProjects, +}) + +export async function fetchProject(id: string): Promise<{ + full_name: string + forks_count: number + stargazers_count: number + watchers_count: number +}> { + console.info('Fetching project:', id) + + const response = await fetch(`https://api.github.com/repos/${id}`) + await new Promise((r) => setTimeout(r, 1000)) + return await response.json() +} + +export const projectQuery = (id: string) => queryOptions({ + queryKey: ['project', id], + queryFn: () => fetchProject(id), +}) \ No newline at end of file diff --git a/examples/react/react-start/tsconfig.json b/examples/react/react-start/tsconfig.json new file mode 100644 index 0000000000..2afe40d931 --- /dev/null +++ b/examples/react/react-start/tsconfig.json @@ -0,0 +1,18 @@ +{ + "include": ["**/*.ts", "**/*.tsx"], + "compilerOptions": { + "strict": true, + "esModuleInterop": true, + "jsx": "react-jsx", + "module": "ESNext", + "moduleResolution": "Bundler", + "lib": ["DOM", "DOM.Iterable", "ES2022"], + "isolatedModules": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "target": "ES2022", + "allowJs": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true + } +} diff --git a/examples/react/react-start/vite.config.ts b/examples/react/react-start/vite.config.ts new file mode 100644 index 0000000000..462830eb4f --- /dev/null +++ b/examples/react/react-start/vite.config.ts @@ -0,0 +1,13 @@ +import { tanstackStart } from '@tanstack/react-start/plugin/vite' +import { defineConfig } from 'vite' +import viteReact from '@vitejs/plugin-react' + +export default defineConfig({ + server: { + port: 3000, + }, + plugins: [ + tanstackStart(), + viteReact(), + ], +}) diff --git a/examples/react/suspense/src/index.tsx b/examples/react/suspense/src/index.tsx index 2402fa9393..e09f85a65d 100755 --- a/examples/react/suspense/src/index.tsx +++ b/examples/react/suspense/src/index.tsx @@ -91,4 +91,8 @@ function Example() { } const rootElement = document.getElementById('root') as HTMLElement -ReactDOM.createRoot(rootElement).render() +ReactDOM.createRoot(rootElement).render( + + + , +) diff --git a/packages/react-query/src/suspense.ts b/packages/react-query/src/suspense.ts index ff157827be..d0729ebdcf 100644 --- a/packages/react-query/src/suspense.ts +++ b/packages/react-query/src/suspense.ts @@ -12,12 +12,14 @@ import type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary' /** * TODO (v6): Bump peer dependency to React 19 and use `React.use` directly. */ -export function suspend(promise: Promise): void { +export function suspend>(promise: T, debugId?: string): void { if (typeof React.use === 'function') { + console.debug(`Suspending ${debugId} using React.use`) // `React.use` can be called conditionally // eslint-disable-next-line react-hooks/rules-of-hooks React.use(promise) } else { + console.debug(`Suspending ${debugId} by throwing promise`) throw promise } } diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index 3a6d2b7ec3..790fc3dd2e 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -1,7 +1,7 @@ 'use client' import * as React from 'react' -import { isServer, noop, notifyManager } from '@tanstack/query-core' +import { noop, notifyManager } from '@tanstack/query-core' import { useQueryClient } from './QueryClientProvider' import { useQueryErrorResetBoundary } from './QueryErrorResetBoundary' import { @@ -15,7 +15,7 @@ import { fetchOptimistic, shouldSuspend, suspend, - willFetch, + } from './suspense' import type { QueryClient, @@ -126,13 +126,16 @@ export function useBaseQuery< // Handle suspense if (shouldSuspend(defaultedOptions, result)) { - const promise = fetchOptimistic( - defaultedOptions, - observer, - errorResetBoundary, - ) - suspend(promise.finally(() => observer.updateResult())) + const promise = isNewCacheEntry + ? // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted + fetchOptimistic(defaultedOptions, observer, errorResetBoundary) + : // subscribe to the "cache promise" so that we can finalize the currentThenable once data comes in + query?.promise + if (promise) { + suspend(promise, defaultedOptions.queryHash) + } } + console.debug(`${defaultedOptions.queryHash} after suspend. Result:`, result) // Handle error boundary if ( @@ -152,22 +155,22 @@ export function useBaseQuery< result, ) - if ( - defaultedOptions.experimental_prefetchInRender && - !isServer && - willFetch(result, isRestoring) - ) { - const promise = isNewCacheEntry - ? // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted - fetchOptimistic(defaultedOptions, observer, errorResetBoundary) - : // subscribe to the "cache promise" so that we can finalize the currentThenable once data comes in - query?.promise - - promise?.catch(noop).finally(() => { - // `.updateResult()` will trigger `.#currentThenable` to finalize - observer.updateResult() - }) - } + // if ( + // defaultedOptions.experimental_prefetchInRender && + // !isServer && + // willFetch(result, isRestoring) + // ) { + // const promise = isNewCacheEntry + // ? // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted + // fetchOptimistic(defaultedOptions, observer, errorResetBoundary) + // : // subscribe to the "cache promise" so that we can finalize the currentThenable once data comes in + // query?.promise + + // promise?.catch(noop).finally(() => { + // // `.updateResult()` will trigger `.#currentThenable` to finalize + // observer.updateResult() + // }) + // } // Handle result property usage tracking return !defaultedOptions.notifyOnChangeProps diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 817901bb90..19035a4c8f 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -19,8 +19,7 @@ "compile": "vue-tsc --build", "test:eslint": "eslint --concurrency=auto ./src", "test:types": "vue-tsc --build", - "test:build": "publint --strict && attw --pack", - "build": "pnpm run compile && vite build" + "test:build": "publint --strict && attw --pack" }, "type": "module", "types": "dist/esm/index.d.ts", diff --git a/packages/vue-query/package.json b/packages/vue-query/package.json index 248897cc46..54a3d81f47 100644 --- a/packages/vue-query/package.json +++ b/packages/vue-query/package.json @@ -33,8 +33,7 @@ "test:lib:2.7": "vue-demi-switch 2.7 vue2.7 && vitest", "test:lib:3": "vue-demi-switch 3 && vitest", "test:lib:dev": "pnpm run test:lib --watch", - "test:build": "publint --strict && attw --pack", - "build": "tsup --tsconfig tsconfig.prod.json" + "test:build": "publint --strict && attw --pack" }, "type": "module", "types": "build/legacy/index.d.ts", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16fb4e9ca3..5a38de9c70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1293,6 +1293,52 @@ importers: specifier: ^6.3.6 version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + examples/react/react-start: + dependencies: + '@tanstack/react-query': + specifier: ^5.90.16 + version: link:../../../packages/react-query + '@tanstack/react-query-devtools': + specifier: ^5.91.2 + version: link:../../../packages/react-query-devtools + '@tanstack/react-router': + specifier: ^1.144.0 + version: 1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/react-router-devtools': + specifier: ^1.144.0 + version: 1.144.0(@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@tanstack/router-core@1.144.0)(csstype@3.1.3)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(solid-js@1.9.7) + '@tanstack/react-router-ssr-query': + specifier: ^1.144.0 + version: 1.144.0(@tanstack/query-core@packages+query-core)(@tanstack/react-query@packages+react-query)(@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@tanstack/router-core@1.144.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/react-start': + specifier: ^1.145.3 + version: 1.145.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(webpack@5.98.0(esbuild@0.25.5)) + react: + specifier: ^19.0.0 + version: 19.2.1 + react-dom: + specifier: ^19.0.0 + version: 19.2.1(react@19.2.1) + devDependencies: + '@types/node': + specifier: ^22.5.4 + version: 22.15.3 + '@types/react': + specifier: ^19.0.1 + version: 19.0.1 + '@types/react-dom': + specifier: ^19.0.2 + version: 19.0.2(@types/react@19.0.1) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + typescript: + specifier: 5.8.3 + version: 5.8.3 + vite: + specifier: ^6.3.6 + version: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + examples/react/rick-morty: dependencies: '@tanstack/react-query': @@ -2400,7 +2446,7 @@ importers: version: 17.3.0 jscodeshift: specifier: 17.3.0 - version: 17.3.0(@babel/preset-env@7.27.2(@babel/core@7.27.1)) + version: 17.3.0(@babel/preset-env@7.27.2(@babel/core@7.28.5)) packages/query-core: devDependencies: @@ -3127,10 +3173,18 @@ packages: resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} engines: {node: '>=6.9.0'} + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.27.1': resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.1': resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==} engines: {node: '>=6.9.0'} @@ -3156,6 +3210,10 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.27.1': resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} @@ -3174,6 +3232,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.27.1': resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} @@ -3210,6 +3274,10 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -3222,6 +3290,10 @@ packages: resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + '@babel/highlight@7.25.7': resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} @@ -3231,6 +3303,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} engines: {node: '>=6.9.0'} @@ -3827,14 +3904,26 @@ packages: resolution: {integrity: sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.1': resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.27.1': resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + '@bundled-es-modules/cookie@2.0.1': resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} @@ -5457,6 +5546,9 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -5481,6 +5573,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -6038,6 +6133,22 @@ packages: cpu: [x64] os: [win32] + '@oozcitak/dom@2.0.2': + resolution: {integrity: sha512-GjpKhkSYC3Mj4+lfwEyI1dqnsKTgwGy48ytZEhm4A/xnH/8z9M3ZVXKr/YGQi3uCLs1AEBS+x5T2JPiueEDW8w==} + engines: {node: '>=20.0'} + + '@oozcitak/infra@2.0.2': + resolution: {integrity: sha512-2g+E7hoE2dgCz/APPOEK5s3rMhJvNxSMBrP+U+j1OWsIbtSpWxxlUjq1lU8RIsFJNYv7NMlnVsCuHcUzJW+8vA==} + engines: {node: '>=20.0'} + + '@oozcitak/url@3.0.0': + resolution: {integrity: sha512-ZKfET8Ak1wsLAiLWNfFkZc/BraDccuTJKR6svTYc7sVjbR+Iu0vtXdiDMY4o6jaFl5TW2TlS7jbLl4VovtAJWQ==} + engines: {node: '>=20.0'} + + '@oozcitak/util@10.0.0': + resolution: {integrity: sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA==} + engines: {node: '>=20.0'} + '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -6387,6 +6498,9 @@ packages: resolution: {integrity: sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw==} engines: {node: '>=14.0.0'} + '@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'} @@ -6981,6 +7095,10 @@ packages: resolution: {integrity: sha512-2g+PuGR3GuvvCiR3xZs+IMqAvnYU9bvH+jRml0BFBSxHBj22xFCTNvJWhvgj7uICFF9IchDkFUto91xDPMu5cg==} engines: {node: '>=18'} + '@tanstack/history@1.141.0': + resolution: {integrity: sha512-LS54XNyxyTs5m/pl1lkwlg7uZM3lvsv2FIIV1rsJgnfwVCnI+n4ZGZ2CcjNT13BPu/3hPP+iHmliBSscJxW5FQ==} + engines: {node: '>=12'} + '@tanstack/match-sorter-utils@8.19.4': resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==} engines: {node: '>=12'} @@ -6992,18 +7110,155 @@ packages: react: '>=16' react-dom: '>=16' + '@tanstack/react-router-devtools@1.144.0': + resolution: {integrity: sha512-nstjZvZbOM4U0/Hzi82rtsP1DsR2tfigBidK+WuaDRVVstBsnwVor3DQXTGY5CcfgIiMI3eKzI17VOy3SQDDoQ==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/react-router': ^1.144.0 + '@tanstack/router-core': ^1.144.0 + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + peerDependenciesMeta: + '@tanstack/router-core': + optional: true + + '@tanstack/react-router-ssr-query@1.144.0': + resolution: {integrity: sha512-re83VQxo586dSCmo8qUQvOwRGZljElN1/7pkYVYxaRRhtW2hrVVnr7Z2B6UF7XHp6FtScU7QAvMjPj8i0mTm6g==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/query-core': '>=5.90.0' + '@tanstack/react-query': '>=5.90.0' + '@tanstack/react-router': '>=1.127.0' + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + + '@tanstack/react-router@1.144.0': + resolution: {integrity: sha512-GmRyIGmHtGj3VLTHXepIwXAxTcHyL5W7Vw7O1CnVEtFxQQWKMVOnWgI7tPY6FhlNwMKVb3n0mPFWz9KMYyd2GA==} + engines: {node: '>=12'} + peerDependencies: + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + + '@tanstack/react-start-client@1.145.0': + resolution: {integrity: sha512-UC/+ONaOzuFnlHbOEudYS+AHOrcwAJaqbnfh9zZ5pUtTkJToBawW3YabDbMnS3o6lEiKggc8uGpsiCglUJrBcA==} + engines: {node: '>=22.12.0'} + peerDependencies: + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + + '@tanstack/react-start-server@1.145.3': + resolution: {integrity: sha512-HHFq8KTUUsgjifNpYfU7o1jJaVmrwhrjtqQuabGiRseaeIRd4qIGsIS6M1bmOM4+5sYZLKm+lkP6oxgOBuvvaQ==} + engines: {node: '>=22.12.0'} + peerDependencies: + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + + '@tanstack/react-start@1.145.3': + resolution: {integrity: sha512-ZRd0VbcpPSmYTGdR7PF5LdyPnB7rd4zfyuf8bjtUbjphh4P0wjE3DUTA7Mk29RMvvo6sS7Advjsax9ZqEevLgg==} + engines: {node: '>=22.12.0'} + peerDependencies: + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + vite: '>=7.0.0' + + '@tanstack/react-store@0.8.0': + resolution: {integrity: sha512-1vG9beLIuB7q69skxK9r5xiLN3ztzIPfSQSs0GfeqWGO2tGIyInZx0x1COhpx97RKaONSoAb8C3dxacWksm1ow==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tanstack/router-core@1.144.0': + resolution: {integrity: sha512-6oVERtK9XDHCP4XojgHsdHO56ZSj11YaWjF5g/zw39LhyA6Lx+/X86AEIHO4y0BUrMQaJfcjdAQMVSAs6Vjtdg==} + engines: {node: '>=12'} + + '@tanstack/router-devtools-core@1.144.0': + resolution: {integrity: sha512-rbpQn1aHUtcfY3U3SyJqOZRqDu0a2uPK+TE2CH50HieJApmCuNKj5RsjVQYHgwiFFvR0w0LUmueTnl2X2hiWTg==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/router-core': ^1.144.0 + csstype: ^3.0.10 + solid-js: '>=1.9.5' + peerDependenciesMeta: + csstype: + optional: true + + '@tanstack/router-generator@1.145.2': + resolution: {integrity: sha512-6DLwfqhexgxw2T2QuS9Y349Vb49hCXBIz9mjWyynjMrpejLXJL+PaHaKJw0Y+H7Ao6RE2vlvXCc2cMjgbz5c7Q==} + engines: {node: '>=12'} + + '@tanstack/router-plugin@1.145.2': + resolution: {integrity: sha512-dOABjCE4M2KxB+f/mY71dDZduwVTpf+tCPb4NxmAqbF5Rxes24QaaIZQmiU12jte/L8zYyIA/yX9fi93xZue5Q==} + engines: {node: '>=12'} + peerDependencies: + '@rsbuild/core': '>=1.0.2' + '@tanstack/react-router': ^1.144.0 + vite: '>=5.0.0 || >=6.0.0 || >=7.0.0' + vite-plugin-solid: ^2.11.10 + webpack: '>=5.92.0' + peerDependenciesMeta: + '@rsbuild/core': + optional: true + '@tanstack/react-router': + optional: true + vite: + optional: true + vite-plugin-solid: + optional: true + webpack: + optional: true + + '@tanstack/router-ssr-query-core@1.144.0': + resolution: {integrity: sha512-ECM4T6Gtj768Oi62iprDr45KDR6J/jvmVifJK9SRmoXW9WtiASymxB9H8tkPsX+yPEs22ZCs/j38hv63Mo30sQ==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/query-core': '>=5.90.0' + '@tanstack/router-core': '>=1.127.0' + '@tanstack/router-utils@1.114.29': resolution: {integrity: sha512-RDn3aMOHPrXYCQGXNaN4P0MvwiuCZHBKTO9srtLqYYCzW2iipqbyZ53RI54TzPgNLE37jtN5XaEH4FNF0Ydodg==} engines: {node: '>=12'} + '@tanstack/router-utils@1.143.11': + resolution: {integrity: sha512-N24G4LpfyK8dOlnP8BvNdkuxg1xQljkyl6PcrdiPSA301pOjatRT1y8wuCCJZKVVD8gkd0MpCZ0VEjRMGILOtA==} + engines: {node: '>=12'} + '@tanstack/server-functions-plugin@1.114.32': resolution: {integrity: sha512-l4RonnJM8gOLeyzThSEd/ZTDhrMGQGm9ZdXtmoLPF17L6Z6neJkNmfYSvVXPPUpL9aQOVncAR0OWDgZgsxIjFw==} engines: {node: '>=12'} + '@tanstack/start-client-core@1.145.0': + resolution: {integrity: sha512-pqINeN7ZqdfTZrkhy9C7isxRr8U3cByH5ZtLVnUxJp9fvLgwX7LlI+OWpGI0q3E8f/mHMUqJdeE56+atSs8Khw==} + engines: {node: '>=22.12.0'} + + '@tanstack/start-fn-stubs@1.143.8': + resolution: {integrity: sha512-2IKUPh/TlxwzwHMiHNeFw95+L2sD4M03Es27SxMR0A60Qc4WclpaD6gpC8FsbuNASM2jBxk2UyeYClJxW1GOAQ==} + engines: {node: '>=22.12.0'} + + '@tanstack/start-plugin-core@1.145.3': + resolution: {integrity: sha512-PUWKI/8OMyvq8Yjn8ccbEwenASBs5YPEHpXmUjeZ0qb8REGJ6v71Twlqtuva6/fBqZrAKl+2CZrWjgbYZr/h8g==} + engines: {node: '>=22.12.0'} + peerDependencies: + vite: '>=7.0.0' + + '@tanstack/start-server-core@1.145.3': + resolution: {integrity: sha512-atsi0fyzymG9BRDJL4kb0oJjhCdB+Wqds+OGPDiWj5VOteCXLpop0ulDlak6wNL2QJZbqqv5BgtGbTQ6rlNyJg==} + engines: {node: '>=22.12.0'} + + '@tanstack/start-storage-context@1.144.0': + resolution: {integrity: sha512-DuUx5CXfLNettyJlsHDQp66y5haeqzXJkUor7kp5p10SVv24p76dTYqBOpw+wQz//RfJlOciIZFVBcKezXXY0w==} + engines: {node: '>=22.12.0'} + + '@tanstack/store@0.8.0': + resolution: {integrity: sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ==} + '@tanstack/typedoc-config@0.3.1': resolution: {integrity: sha512-frgA1vjzxbdU5/xn/Z/UqyOd1yuegEfAnx9QNbcX+1XQ3TCzD+x89cMZH9iyxdTC1Tasx2gq7DCNCvX962X9WA==} engines: {node: '>=18'} + '@tanstack/virtual-file-routes@1.141.0': + resolution: {integrity: sha512-CJrWtr6L9TVzEImm9S7dQINx+xJcYP/aDkIi6gnaWtIgbZs1pnzsE0yJc2noqXZ+yAOqLx3TBGpBEs9tS0P9/A==} + engines: {node: '>=12'} + '@tanstack/vite-config@0.4.3': resolution: {integrity: sha512-bqXfdPmD6DuAZdE08ih5bSqpcge9Im9nEym3CKcQ9OsPo0jmGW7WrJarLaoVB6qWEysh3FIwWQN1gtfeC7q8UQ==} engines: {node: '>=18'} @@ -7970,6 +8225,10 @@ packages: resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} engines: {node: '>=14'} + ansis@4.2.0: + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} + engines: {node: '>=14'} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -8149,6 +8408,9 @@ packages: babel-dead-code-elimination@1.0.10: resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} + babel-dead-code-elimination@1.0.11: + resolution: {integrity: sha512-mwq3W3e/pKSI6TG8lXMiDWvEi1VXYlSBlJlB3l+I0bAb5u1RNUl88udos85eOPNK3m5EXK9uO7d2g08pesTySQ==} + babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9260,6 +9522,10 @@ packages: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} + diff@8.0.2: + resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} + engines: {node: '>=0.3.1'} + diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -9860,6 +10126,9 @@ packages: exsolve@1.0.4: resolution: {integrity: sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -10331,6 +10600,15 @@ packages: h3@1.15.1: resolution: {integrity: sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==} + h3@2.0.1-rc.7: + resolution: {integrity: sha512-qbrRu1OLXmUYnysWOCVrYhtC/m8ZuXu/zCbo3U/KyphJxbPFiC76jHYwVrmEcss9uNAHO5BoUguQ46yEpgI2PA==} + engines: {node: '>=20.11.1'} + peerDependencies: + crossws: ^0.4.1 + peerDependenciesMeta: + crossws: + optional: true + has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} @@ -10990,6 +11268,10 @@ packages: isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isbot@5.1.32: + resolution: {integrity: sha512-VNfjM73zz2IBZmdShMfAUg10prm6t7HFUQmNAEOAVS4YH92ZrZcvkMcGX6cIgBJAzWDzPent/EeAtYEHNPNPBQ==} + engines: {node: '>=18'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -13731,6 +14013,9 @@ packages: react: 19.0.0 react-dom: 19.0.0 + rou3@0.7.12: + resolution: {integrity: sha512-iFE4hLDuloSWcD7mjdCDhx2bKcIsYbtOTpfH5MHHLSKMOUyjqQXTeZVa289uuwEGEKFoE/BAPbhaU4B774nceg==} + rrweb-cssom@0.7.1: resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} @@ -13867,10 +14152,20 @@ packages: peerDependencies: seroval: ^1.0 + seroval-plugins@1.4.2: + resolution: {integrity: sha512-X7p4MEDTi+60o2sXZ4bnDBhgsUYDSkQEvzYZuJyFqWg9jcoPsHts5nrg5O956py2wyt28lUrBxk0M0/wU8URpA==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + seroval@1.3.2: resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} engines: {node: '>=10'} + seroval@1.4.2: + resolution: {integrity: sha512-N3HEHRCZYn3cQbsC4B5ldj9j+tHdf4JZoYPlcI4rRYu0Xy4qN8MQf1Z08EibzB0WpgRG5BGK08FTrmM66eSzKQ==} + engines: {node: '>=10'} + serve-placeholder@2.0.2: resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} @@ -14187,6 +14482,11 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + srvx@0.10.0: + resolution: {integrity: sha512-NqIsR+wQCfkvvwczBh8J8uM4wTZx41K2lLSEp/3oMp917ODVVMtW5Me4epCmQ3gH8D+0b+/t4xxkUKutyhimTA==} + engines: {node: '>=20.16.0'} + hasBin: true + ssri@10.0.6: resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -14604,6 +14904,9 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -15220,6 +15523,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} engines: {node: '>=0.10.0'} @@ -15459,6 +15767,14 @@ packages: vite: optional: true + vitefu@1.1.1: + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -15940,6 +16256,10 @@ packages: resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} engines: {node: '>=4.0.0'} + xmlbuilder2@4.0.3: + resolution: {integrity: sha512-bx8Q1STctnNaaDymWnkfQLKofs0mGNN7rLLapJlGuV3VlvegD7Ls4ggMjE3aUSWItCCzU0PEv45lI87iSigiCA==} + engines: {node: '>=20.0'} + xmlbuilder@11.0.1: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} @@ -16503,6 +16823,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/remapping': 2.3.5 + 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/generator@7.27.1': dependencies: '@babel/parser': 7.27.1 @@ -16511,6 +16851,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.1': dependencies: '@babel/types': 7.27.1 @@ -16536,6 +16884,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.1 + '@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.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.27.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16543,6 +16905,14 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.1 + regexpu-core: 6.2.0 + semver: 6.3.1 + optional: true + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16554,6 +16924,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.1 + lodash.debounce: 4.0.8 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + optional: true + + '@babel/helper-globals@7.28.0': {} + '@babel/helper-member-expression-to-functions@7.27.1': dependencies: '@babel/traverse': 7.27.1 @@ -16581,6 +16965,25 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.27.1': dependencies: '@babel/types': 7.27.1 @@ -16596,6 +16999,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-wrap-function': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16605,6 +17018,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: '@babel/traverse': 7.27.1 @@ -16620,6 +17043,8 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.27.1': @@ -16635,6 +17060,11 @@ snapshots: '@babel/template': 7.27.1 '@babel/types': 7.27.1 + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + '@babel/highlight@7.25.7': dependencies: '@babel/helper-validator-identifier': 7.27.1 @@ -16646,6 +17076,10 @@ snapshots: dependencies: '@babel/types': 7.27.1 + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16654,16 +17088,37 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16673,26 +17128,45 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color + optional: true - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.1)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.27.1)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.27.1) transitivePeerDependencies: @@ -16723,6 +17197,11 @@ snapshots: dependencies: '@babel/core': 7.27.1 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + optional: true + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16768,11 +17247,23 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16788,6 +17279,11 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16833,17 +17329,35 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16853,6 +17367,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16862,16 +17386,38 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@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.5) + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16880,6 +17426,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16888,6 +17443,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16900,49 +17464,113 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.27.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.1 + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.1 + optional: true + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16957,6 +17585,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16966,26 +17603,60 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -16994,6 +17665,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17002,6 +17682,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17012,6 +17701,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17020,27 +17720,61 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17049,6 +17783,15 @@ snapshots: '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.27.1) '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.28.5) + optional: true + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17057,11 +17800,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17070,11 +17828,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17083,6 +17856,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17092,11 +17874,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17141,17 +17939,36 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-runtime@7.26.10(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17169,6 +17986,12 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17177,21 +18000,48 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.1)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + optional: true '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17208,24 +18058,51 @@ snapshots: '@babel/core': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/preset-env@7.27.2(@babel/core@7.27.1)': dependencies: '@babel/compat-data': 7.27.2 @@ -17301,6 +18178,82 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-env@7.27.2(@babel/core@7.28.5)': + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/core': 7.28.5 + '@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.5) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.27.2(@babel/core@7.28.5) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.28.5) + core-js-compat: 3.40.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/preset-flow@7.24.7(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17315,6 +18268,14 @@ snapshots: '@babel/types': 7.27.1 esutils: 2.0.3 + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.27.1 + esutils: 2.0.3 + optional: true + '@babel/preset-react@7.25.9(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 @@ -17361,6 +18322,12 @@ snapshots: '@babel/parser': 7.27.1 '@babel/types': 7.27.1 + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@babel/traverse@7.27.1': dependencies: '@babel/code-frame': 7.27.1 @@ -17373,11 +18340,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + '@babel/types@7.27.1': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@bundled-es-modules/cookie@2.0.1': dependencies: cookie: 0.7.2 @@ -19045,6 +20029,11 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -19072,6 +20061,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -19572,6 +20566,23 @@ snapshots: '@nx/nx-win32-x64-msvc@22.1.3': optional: true + '@oozcitak/dom@2.0.2': + dependencies: + '@oozcitak/infra': 2.0.2 + '@oozcitak/url': 3.0.0 + '@oozcitak/util': 10.0.0 + + '@oozcitak/infra@2.0.2': + dependencies: + '@oozcitak/util': 10.0.0 + + '@oozcitak/url@3.0.0': + dependencies: + '@oozcitak/infra': 2.0.2 + '@oozcitak/util': 10.0.0 + + '@oozcitak/util@10.0.0': {} + '@open-draft/deferred-promise@2.2.0': {} '@open-draft/logger@0.3.0': @@ -19969,6 +20980,8 @@ snapshots: '@remix-run/router@1.18.0': {} + '@rolldown/pluginutils@1.0.0-beta.40': {} + '@rollup/plugin-alias@5.1.1(rollup@4.40.2)': optionalDependencies: rollup: 4.40.2 @@ -20647,6 +21660,8 @@ snapshots: - supports-color - typescript + '@tanstack/history@1.141.0': {} + '@tanstack/match-sorter-utils@8.19.4': dependencies: remove-accents: 0.5.0 @@ -20658,6 +21673,150 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) + '@tanstack/react-router-devtools@1.144.0(@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@tanstack/router-core@1.144.0)(csstype@3.1.3)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(solid-js@1.9.7)': + dependencies: + '@tanstack/react-router': 1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/router-devtools-core': 1.144.0(@tanstack/router-core@1.144.0)(csstype@3.1.3)(solid-js@1.9.7) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + optionalDependencies: + '@tanstack/router-core': 1.144.0 + transitivePeerDependencies: + - csstype + - solid-js + + '@tanstack/react-router-ssr-query@1.144.0(@tanstack/query-core@packages+query-core)(@tanstack/react-query@packages+react-query)(@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(@tanstack/router-core@1.144.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + dependencies: + '@tanstack/query-core': link:packages/query-core + '@tanstack/react-query': link:packages/react-query + '@tanstack/react-router': 1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/router-ssr-query-core': 1.144.0(@tanstack/query-core@packages+query-core)(@tanstack/router-core@1.144.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + transitivePeerDependencies: + - '@tanstack/router-core' + + '@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + dependencies: + '@tanstack/history': 1.141.0 + '@tanstack/react-store': 0.8.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/router-core': 1.144.0 + isbot: 5.1.32 + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/react-start-client@1.145.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + dependencies: + '@tanstack/react-router': 1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/router-core': 1.144.0 + '@tanstack/start-client-core': 1.145.0 + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/react-start-server@1.145.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + dependencies: + '@tanstack/history': 1.141.0 + '@tanstack/react-router': 1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/router-core': 1.144.0 + '@tanstack/start-client-core': 1.145.0 + '@tanstack/start-server-core': 1.145.3 + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + transitivePeerDependencies: + - crossws + + '@tanstack/react-start@1.145.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(webpack@5.98.0(esbuild@0.25.5))': + dependencies: + '@tanstack/react-router': 1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/react-start-client': 1.145.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/react-start-server': 1.145.3(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + '@tanstack/router-utils': 1.143.11 + '@tanstack/start-client-core': 1.145.0 + '@tanstack/start-plugin-core': 1.145.3(@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(webpack@5.98.0(esbuild@0.25.5)) + '@tanstack/start-server-core': 1.145.3 + pathe: 2.0.3 + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + transitivePeerDependencies: + - '@rsbuild/core' + - crossws + - supports-color + - vite-plugin-solid + - webpack + + '@tanstack/react-store@0.8.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': + dependencies: + '@tanstack/store': 0.8.0 + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + use-sync-external-store: 1.6.0(react@19.2.1) + + '@tanstack/router-core@1.144.0': + dependencies: + '@tanstack/history': 1.141.0 + '@tanstack/store': 0.8.0 + cookie-es: 2.0.0 + seroval: 1.4.2 + seroval-plugins: 1.4.2(seroval@1.4.2) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/router-devtools-core@1.144.0(@tanstack/router-core@1.144.0)(csstype@3.1.3)(solid-js@1.9.7)': + dependencies: + '@tanstack/router-core': 1.144.0 + clsx: 2.1.1 + goober: 2.1.16(csstype@3.1.3) + solid-js: 1.9.7 + tiny-invariant: 1.3.3 + optionalDependencies: + csstype: 3.1.3 + + '@tanstack/router-generator@1.145.2': + dependencies: + '@tanstack/router-core': 1.144.0 + '@tanstack/router-utils': 1.143.11 + '@tanstack/virtual-file-routes': 1.141.0 + prettier: 3.7.4 + recast: 0.23.11 + source-map: 0.7.4 + tsx: 4.20.1 + zod: 3.25.76 + transitivePeerDependencies: + - supports-color + + '@tanstack/router-plugin@1.145.2(@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(webpack@5.98.0(esbuild@0.25.5))': + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@tanstack/router-core': 1.144.0 + '@tanstack/router-generator': 1.145.2 + '@tanstack/router-utils': 1.143.11 + '@tanstack/virtual-file-routes': 1.141.0 + babel-dead-code-elimination: 1.0.11 + chokidar: 3.6.0 + unplugin: 2.2.2 + zod: 3.25.76 + optionalDependencies: + '@tanstack/react-router': 1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + webpack: 5.98.0(esbuild@0.25.5) + transitivePeerDependencies: + - supports-color + + '@tanstack/router-ssr-query-core@1.144.0(@tanstack/query-core@packages+query-core)(@tanstack/router-core@1.144.0)': + dependencies: + '@tanstack/query-core': link:packages/query-core + '@tanstack/router-core': 1.144.0 + '@tanstack/router-utils@1.114.29': dependencies: '@babel/generator': 7.27.1 @@ -20665,6 +21824,18 @@ snapshots: ansis: 3.17.0 diff: 7.0.0 + '@tanstack/router-utils@1.143.11': + dependencies: + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + ansis: 4.2.0 + diff: 8.0.2 + pathe: 2.0.3 + tinyglobby: 0.2.15 + transitivePeerDependencies: + - supports-color + '@tanstack/server-functions-plugin@1.114.32(@types/node@22.15.3)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)': dependencies: '@babel/code-frame': 7.26.2 @@ -20693,6 +21864,66 @@ snapshots: - tsx - yaml + '@tanstack/start-client-core@1.145.0': + dependencies: + '@tanstack/router-core': 1.144.0 + '@tanstack/start-fn-stubs': 1.143.8 + '@tanstack/start-storage-context': 1.144.0 + seroval: 1.4.2 + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/start-fn-stubs@1.143.8': {} + + '@tanstack/start-plugin-core@1.145.3(@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(webpack@5.98.0(esbuild@0.25.5))': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.5 + '@babel/types': 7.28.5 + '@rolldown/pluginutils': 1.0.0-beta.40 + '@tanstack/router-core': 1.144.0 + '@tanstack/router-generator': 1.145.2 + '@tanstack/router-plugin': 1.145.2(@tanstack/react-router@1.144.0(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))(webpack@5.98.0(esbuild@0.25.5)) + '@tanstack/router-utils': 1.143.11 + '@tanstack/start-client-core': 1.145.0 + '@tanstack/start-server-core': 1.145.3 + babel-dead-code-elimination: 1.0.11 + cheerio: 1.0.0 + exsolve: 1.0.8 + pathe: 2.0.3 + srvx: 0.10.0 + tinyglobby: 0.2.15 + ufo: 1.5.4 + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vitefu: 1.1.1(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)) + xmlbuilder2: 4.0.3 + zod: 3.25.76 + transitivePeerDependencies: + - '@rsbuild/core' + - '@tanstack/react-router' + - crossws + - supports-color + - vite-plugin-solid + - webpack + + '@tanstack/start-server-core@1.145.3': + dependencies: + '@tanstack/history': 1.141.0 + '@tanstack/router-core': 1.144.0 + '@tanstack/start-client-core': 1.145.0 + '@tanstack/start-storage-context': 1.144.0 + h3-v2: h3@2.0.1-rc.7 + seroval: 1.4.2 + tiny-invariant: 1.3.3 + transitivePeerDependencies: + - crossws + + '@tanstack/start-storage-context@1.144.0': + dependencies: + '@tanstack/router-core': 1.144.0 + + '@tanstack/store@0.8.0': {} + '@tanstack/typedoc-config@0.3.1(typescript@5.8.3)': dependencies: typedoc: 0.28.14(typescript@5.8.3) @@ -20701,6 +21932,8 @@ snapshots: transitivePeerDependencies: - typescript + '@tanstack/virtual-file-routes@1.141.0': {} + '@tanstack/vite-config@0.4.3(@types/node@22.15.3)(rollup@4.40.2)(typescript@5.8.3)(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1))': dependencies: rollup-plugin-preserve-directives: 0.4.0(rollup@4.40.2) @@ -21850,6 +23083,8 @@ snapshots: ansis@3.17.0: {} + ansis@4.2.0: {} + any-promise@1.3.0: {} anymatch@2.0.0: @@ -22129,6 +23364,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-dead-code-elimination@1.0.11: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + babel-jest@29.7.0(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -22200,6 +23444,16 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.28.5): + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.28.5) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -22208,6 +23462,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.28.5) + core-js-compat: 3.40.0 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.27.1): dependencies: '@babel/core': 7.27.1 @@ -22215,6 +23478,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-react-compiler@0.0.0: optional: true @@ -23457,6 +24728,8 @@ snapshots: diff@7.0.0: {} + diff@8.0.2: {} + diffie-hellman@5.0.3: dependencies: bn.js: 4.12.0 @@ -24378,6 +25651,8 @@ snapshots: exsolve@1.0.4: {} + exsolve@1.0.8: {} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -24909,6 +26184,11 @@ snapshots: ufo: 1.5.4 uncrypto: 0.1.3 + h3@2.0.1-rc.7: + dependencies: + rou3: 0.7.12 + srvx: 0.10.0 + has-bigints@1.0.2: {} has-flag@3.0.0: {} @@ -25581,6 +26861,8 @@ snapshots: isarray@2.0.5: {} + isbot@5.1.32: {} + isexe@2.0.0: {} isexe@3.1.1: {} @@ -25820,7 +27102,7 @@ snapshots: transitivePeerDependencies: - supports-color - jscodeshift@17.3.0(@babel/preset-env@7.27.2(@babel/core@7.27.1)): + jscodeshift@17.3.0(@babel/preset-env@7.27.2(@babel/core@7.28.5)): dependencies: '@babel/core': 7.27.1 '@babel/parser': 7.27.1 @@ -25841,7 +27123,7 @@ snapshots: tmp: 0.2.3 write-file-atomic: 5.0.1 optionalDependencies: - '@babel/preset-env': 7.27.2(@babel/core@7.27.1) + '@babel/preset-env': 7.27.2(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -29180,6 +30462,8 @@ snapshots: react-dom: 19.0.0(react@19.0.0) use-sync-external-store: 1.5.0(react@19.0.0) + rou3@0.7.12: {} + rrweb-cssom@0.7.1: {} rrweb-cssom@0.8.0: {} @@ -29356,8 +30640,14 @@ snapshots: dependencies: seroval: 1.3.2 + seroval-plugins@1.4.2(seroval@1.4.2): + dependencies: + seroval: 1.4.2 + seroval@1.3.2: {} + seroval@1.4.2: {} + serve-placeholder@2.0.2: dependencies: defu: 6.1.4 @@ -29759,6 +31049,8 @@ snapshots: sprintf-js@1.1.3: {} + srvx@0.10.0: {} + ssri@10.0.6: dependencies: minipass: 7.1.2 @@ -30153,6 +31445,18 @@ snapshots: webpack-sources: 1.4.3 worker-farm: 1.7.0 + terser-webpack-plugin@5.3.11(esbuild@0.25.5)(webpack@5.98.0(esbuild@0.25.5)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 4.3.0 + serialize-javascript: 6.0.2 + terser: 5.39.1 + webpack: 5.98.0(esbuild@0.25.5) + optionalDependencies: + esbuild: 0.25.5 + optional: true + terser-webpack-plugin@5.3.11(esbuild@0.25.5)(webpack@5.98.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -30217,6 +31521,8 @@ snapshots: tiny-invariant@1.3.3: {} + tiny-warning@1.0.3: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -30407,7 +31713,6 @@ snapshots: get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 - optional: true tty-browserify@0.0.0: {} @@ -30828,6 +32133,10 @@ snapshots: dependencies: react: 19.0.0 + use-sync-external-store@1.6.0(react@19.2.1): + dependencies: + react: 19.2.1 + use@3.1.1: {} util-deprecate@1.0.2: {} @@ -31098,6 +32407,10 @@ snapshots: optionalDependencies: vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vitefu@1.1.1(vite@6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1)): + optionalDependencies: + vite: 6.3.6(@types/node@22.15.3)(jiti@2.5.1)(less@4.3.0)(lightningcss@1.30.1)(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1) + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.15.3)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(less@4.3.0)(lightningcss@1.30.1)(msw@2.6.6(@types/node@22.15.3)(typescript@5.8.3))(sass@1.88.0)(terser@5.39.1)(tsx@4.20.1)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 @@ -31431,6 +32744,37 @@ snapshots: transitivePeerDependencies: - supports-color + webpack@5.98.0(esbuild@0.25.5): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.7 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + browserslist: 4.24.4 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.3 + es-module-lexer: 1.7.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.11(esbuild@0.25.5)(webpack@5.98.0(esbuild@0.25.5)) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + optional: true + webpack@5.98.0(esbuild@0.25.5)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 @@ -31621,6 +32965,13 @@ snapshots: sax: 1.4.1 xmlbuilder: 11.0.1 + xmlbuilder2@4.0.3: + dependencies: + '@oozcitak/dom': 2.0.2 + '@oozcitak/infra': 2.0.2 + '@oozcitak/util': 10.0.0 + js-yaml: 4.1.1 + xmlbuilder@11.0.1: {} xmlbuilder@14.0.0: {} From cc7a99ffd62c22bce7217bb2ad50f7f629b6a7f3 Mon Sep 17 00:00:00 2001 From: Julius Date: Fri, 2 Jan 2026 21:43:02 +0100 Subject: [PATCH 5/6] try manual wrap, no difference --- examples/react/react-start/src/routes/index.tsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/examples/react/react-start/src/routes/index.tsx b/examples/react/react-start/src/routes/index.tsx index 85eed2fadd..23c9ce6088 100644 --- a/examples/react/react-start/src/routes/index.tsx +++ b/examples/react/react-start/src/routes/index.tsx @@ -1,20 +1,30 @@ import { Link, createFileRoute } from '@tanstack/react-router' import { useSuspenseQuery } from '@tanstack/react-query' +import { Suspense } from 'react' import { projectsQuery } from '../utils/queries' import Spinner from '../components/Spinner' export const Route = createFileRoute('/')({ - component: ProjectsComponent, - pendingComponent: () =>
Loading projects...
, + component: RouteComponent, + // pendingComponent: () =>
Loading projects...
, + wrapInSuspense: false }) +function RouteComponent() { + return ( + Loading projects...}> + + + ) +} + function ProjectsComponent() { const { data, isFetching } = useSuspenseQuery(projectsQuery()) return (

TanStack Repositories {isFetching ? : null}

- Back + Back {data.map((project) => (

Date: Fri, 2 Jan 2026 20:44:09 +0000 Subject: [PATCH 6/6] ci: apply automated fixes --- examples/react/react-start/src/router.tsx | 4 +++- .../react/react-start/src/routes/index.tsx | 2 +- .../src/routes/projects.$projectId.tsx | 2 +- .../react/react-start/src/utils/queries.ts | 20 ++++++++++--------- examples/react/react-start/vite.config.ts | 5 +---- packages/react-query/src/suspense.ts | 5 ++++- packages/react-query/src/useBaseQuery.ts | 9 ++++----- 7 files changed, 25 insertions(+), 22 deletions(-) diff --git a/examples/react/react-start/src/router.tsx b/examples/react/react-start/src/router.tsx index 396f6211b4..86438e26a6 100644 --- a/examples/react/react-start/src/router.tsx +++ b/examples/react/react-start/src/router.tsx @@ -14,7 +14,9 @@ export function getRouter() { defaultPreload: 'intent', defaultErrorComponent: DefaultCatchBoundary, defaultNotFoundComponent: () => , - Wrap: ({ children }) => {children}, + Wrap: ({ children }) => ( + {children} + ), }) setupRouterSsrQueryIntegration({ router, diff --git a/examples/react/react-start/src/routes/index.tsx b/examples/react/react-start/src/routes/index.tsx index 23c9ce6088..af4360b001 100644 --- a/examples/react/react-start/src/routes/index.tsx +++ b/examples/react/react-start/src/routes/index.tsx @@ -7,7 +7,7 @@ import Spinner from '../components/Spinner' export const Route = createFileRoute('/')({ component: RouteComponent, // pendingComponent: () =>

Loading projects...
, - wrapInSuspense: false + wrapInSuspense: false, }) function RouteComponent() { diff --git a/examples/react/react-start/src/routes/projects.$projectId.tsx b/examples/react/react-start/src/routes/projects.$projectId.tsx index a040afa260..0ce2bcf04f 100644 --- a/examples/react/react-start/src/routes/projects.$projectId.tsx +++ b/examples/react/react-start/src/routes/projects.$projectId.tsx @@ -15,7 +15,7 @@ function RouteComponent() { return (

TanStack Repositories

- Back + Back

{projectId} {isFetching ? : null}

diff --git a/examples/react/react-start/src/utils/queries.ts b/examples/react/react-start/src/utils/queries.ts index c0e7e97e79..a794702740 100644 --- a/examples/react/react-start/src/utils/queries.ts +++ b/examples/react/react-start/src/utils/queries.ts @@ -1,4 +1,4 @@ -import { queryOptions } from "@tanstack/react-query"; +import { queryOptions } from '@tanstack/react-query' export async function fetchProjects(): Promise< Array<{ name: string; full_name: string }> @@ -12,10 +12,11 @@ export async function fetchProjects(): Promise< return await response.json() } -export const projectsQuery = () => queryOptions({ - queryKey: ['projects'], - queryFn: fetchProjects, -}) +export const projectsQuery = () => + queryOptions({ + queryKey: ['projects'], + queryFn: fetchProjects, + }) export async function fetchProject(id: string): Promise<{ full_name: string @@ -30,7 +31,8 @@ export async function fetchProject(id: string): Promise<{ return await response.json() } -export const projectQuery = (id: string) => queryOptions({ - queryKey: ['project', id], - queryFn: () => fetchProject(id), -}) \ No newline at end of file +export const projectQuery = (id: string) => + queryOptions({ + queryKey: ['project', id], + queryFn: () => fetchProject(id), + }) diff --git a/examples/react/react-start/vite.config.ts b/examples/react/react-start/vite.config.ts index 462830eb4f..bae3acaefe 100644 --- a/examples/react/react-start/vite.config.ts +++ b/examples/react/react-start/vite.config.ts @@ -6,8 +6,5 @@ export default defineConfig({ server: { port: 3000, }, - plugins: [ - tanstackStart(), - viteReact(), - ], + plugins: [tanstackStart(), viteReact()], }) diff --git a/packages/react-query/src/suspense.ts b/packages/react-query/src/suspense.ts index d0729ebdcf..5de5a7782a 100644 --- a/packages/react-query/src/suspense.ts +++ b/packages/react-query/src/suspense.ts @@ -12,7 +12,10 @@ import type { QueryErrorResetBoundaryValue } from './QueryErrorResetBoundary' /** * TODO (v6): Bump peer dependency to React 19 and use `React.use` directly. */ -export function suspend>(promise: T, debugId?: string): void { +export function suspend>( + promise: T, + debugId?: string, +): void { if (typeof React.use === 'function') { console.debug(`Suspending ${debugId} using React.use`) // `React.use` can be called conditionally diff --git a/packages/react-query/src/useBaseQuery.ts b/packages/react-query/src/useBaseQuery.ts index 790fc3dd2e..117b22510a 100644 --- a/packages/react-query/src/useBaseQuery.ts +++ b/packages/react-query/src/useBaseQuery.ts @@ -1,7 +1,7 @@ 'use client' import * as React from 'react' -import { noop, notifyManager } from '@tanstack/query-core' +import { noop, notifyManager } from '@tanstack/query-core' import { useQueryClient } from './QueryClientProvider' import { useQueryErrorResetBoundary } from './QueryErrorResetBoundary' import { @@ -15,7 +15,6 @@ import { fetchOptimistic, shouldSuspend, suspend, - } from './suspense' import type { QueryClient, @@ -131,9 +130,9 @@ export function useBaseQuery< fetchOptimistic(defaultedOptions, observer, errorResetBoundary) : // subscribe to the "cache promise" so that we can finalize the currentThenable once data comes in query?.promise - if (promise) { - suspend(promise, defaultedOptions.queryHash) - } + if (promise) { + suspend(promise, defaultedOptions.queryHash) + } } console.debug(`${defaultedOptions.queryHash} after suspend. Result:`, result)