Openstatus www.openstatus.dev

chore: react-query v5 + trpc v11 (#1029)

* feat: react-query

* ci: apply automated fixes

* chore: bump trpc and react-query

* chore: replace deprecated function

* wip:

* chore: rq-server

* fix: lint

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Thibault Le Ouay <thibaultleouay@gmail.Com>

authored by

Maximilian Kaske
autofix-ci[bot]
Thibault Le Ouay
and committed by
GitHub
34b0eded a5660b7c

+213 -88
+6 -5
apps/web/package.json
··· 23 23 "@openstatus/emails": "workspace:*", 24 24 "@openstatus/error": "workspace:*", 25 25 "@openstatus/header-analysis": "workspace:*", 26 - "@openstatus/next-monitoring": "0.0.4", 27 26 "@openstatus/notification-discord": "workspace:*", 28 27 "@openstatus/notification-emails": "workspace:*", 29 28 "@openstatus/notification-pagerduty": "workspace:*", ··· 41 40 "@t3-oss/env-nextjs": "0.7.0", 42 41 "@tailwindcss/container-queries": "0.1.1", 43 42 "@tailwindcss/typography": "0.5.10", 43 + "@tanstack/react-query": "^5.59.0", 44 + "@tanstack/react-query-devtools": "^5.59.0", 44 45 "@tanstack/react-table": "8.10.3", 45 46 "@tremor/react": "3.17.4", 46 - "@trpc/client": "10.45.2", 47 - "@trpc/next": "10.45.2", 48 - "@trpc/react-query": "10.45.2", 49 - "@trpc/server": "10.45.2", 47 + "@trpc/client": "11.0.0-rc.553", 48 + "@trpc/next": "11.0.0-rc.553", 49 + "@trpc/react-query": "11.0.0-rc.553", 50 + "@trpc/server": "11.0.0-rc.553", 50 51 "@unkey/api": "0.23.0", 51 52 "@upstash/qstash": "2.6.2", 52 53 "@upstash/redis": "1.22.1",
+6 -4
apps/web/src/app/layout.tsx
··· 5 5 import LocalFont from "next/font/local"; 6 6 7 7 import { Toaster } from "@/components/ui/sonner"; 8 - import { OpenStatusProvider } from "@openstatus/next-monitoring"; 9 8 10 9 import { 11 10 defaultMetadata, ··· 14 13 } from "@/app/shared-metadata"; 15 14 import { TailwindIndicator } from "@/components/tailwind-indicator"; 16 15 import { ThemeProvider } from "@/components/theme-provider"; 16 + import { TRPCReactQueryProvider } from "@/trpc/rq-client"; 17 17 import Background from "./_components/background"; 18 18 19 19 const inter = Inter({ subsets: ["latin"] }); ··· 47 47 } ${calSans.variable}`} 48 48 > 49 49 <ThemeProvider attribute="class" defaultTheme="light" enableSystem> 50 - <Background>{children}</Background> 51 - <Toaster richColors closeButton /> 52 - <TailwindIndicator /> 50 + <TRPCReactQueryProvider> 51 + <Background>{children}</Background> 52 + <Toaster richColors closeButton /> 53 + <TailwindIndicator /> 54 + </TRPCReactQueryProvider> 53 55 </ThemeProvider> 54 56 </body> 55 57 </html>
+2 -4
apps/web/src/trpc/client.ts
··· 1 - import { createTRPCProxyClient, loggerLink } from "@trpc/client"; 2 - import superjson from "superjson"; 1 + import { createTRPCClient, loggerLink } from "@trpc/client"; 3 2 4 3 import type { AppRouter } from "@openstatus/api"; 5 4 6 5 import { endingLink } from "./shared"; 7 6 8 - export const api = createTRPCProxyClient<AppRouter>({ 9 - transformer: superjson, 7 + export const api = createTRPCClient<AppRouter>({ 10 8 links: [ 11 9 loggerLink({ 12 10 enabled: (opts) =>
+24
apps/web/src/trpc/query-client.ts
··· 1 + import { 2 + QueryClient, 3 + defaultShouldDehydrateQuery, 4 + } from "@tanstack/react-query"; 5 + import superjson from "superjson"; 6 + 7 + export function makeQueryClient() { 8 + return new QueryClient({ 9 + defaultOptions: { 10 + queries: { 11 + staleTime: 30 * 1000, 12 + }, 13 + dehydrate: { 14 + serializeData: superjson.serialize, 15 + shouldDehydrateQuery: (query) => 16 + defaultShouldDehydrateQuery(query) || 17 + query.state.status === "pending", 18 + }, 19 + hydrate: { 20 + deserializeData: superjson.deserialize, 21 + }, 22 + }, 23 + }); 24 + }
+53
apps/web/src/trpc/rq-client.tsx
··· 1 + "use client"; 2 + 3 + import type { AppRouter } from "@openstatus/api"; 4 + import type { QueryClient } from "@tanstack/react-query"; 5 + import { QueryClientProvider } from "@tanstack/react-query"; 6 + import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; 7 + import { createTRPCReact } from "@trpc/react-query"; 8 + import { useState } from "react"; 9 + import { makeQueryClient } from "./query-client"; 10 + import { endingLink } from "./shared"; 11 + 12 + export const api = createTRPCReact<AppRouter>(); 13 + let clientQueryClientSingleton: QueryClient; 14 + function getQueryClient() { 15 + if (typeof window === "undefined") { 16 + // Server: always make a new query client 17 + return makeQueryClient(); 18 + } 19 + // Browser: use singleton pattern to keep the same query client 20 + // biome-ignore lint/suspicious/noAssignInExpressions: <explanation> 21 + return (clientQueryClientSingleton ??= makeQueryClient()); 22 + } 23 + 24 + export function TRPCReactQueryProvider( 25 + props: Readonly<{ 26 + children: React.ReactNode; 27 + }>, 28 + ) { 29 + // NOTE: Avoid useState when initializing the query client if you don't 30 + // have a suspense boundary between this and the code that may 31 + // suspend because React will throw away the client on the initial 32 + // render if it suspends and there is no boundary 33 + const queryClient = getQueryClient(); 34 + const [trpcClient] = useState(() => 35 + api.createClient({ 36 + links: [ 37 + endingLink({ 38 + headers: { 39 + "x-trpc-source": "client", 40 + }, 41 + }), 42 + ], 43 + }), 44 + ); 45 + return ( 46 + <api.Provider client={trpcClient} queryClient={queryClient}> 47 + <QueryClientProvider client={queryClient}> 48 + {props.children} 49 + <ReactQueryDevtools initialIsOpen={false} /> 50 + </QueryClientProvider> 51 + </api.Provider> 52 + ); 53 + }
+30
apps/web/src/trpc/rq-server.ts
··· 1 + import "server-only"; 2 + 3 + import { auth } from "@/lib/auth"; 4 + import { type AppRouter, appRouter, t } from "@openstatus/api"; 5 + import type { Context } from "@openstatus/api/src/trpc"; 6 + import { db } from "@openstatus/db"; 7 + import { createHydrationHelpers } from "@trpc/react-query/rsc"; 8 + import { cache } from "react"; 9 + import { makeQueryClient } from "./query-client"; 10 + 11 + const createContextCached = cache( 12 + async (...args: unknown[]): Promise<Context> => { 13 + const session = await auth(); 14 + 15 + return { 16 + req: undefined, 17 + db, 18 + session, 19 + }; 20 + }, 21 + ); 22 + 23 + // IMPORTANT: Create a stable getter for the query client that 24 + // will return the same client during the same request. 25 + export const getQueryClient = cache(makeQueryClient); 26 + const caller = t.createCallerFactory(appRouter)(createContextCached); 27 + export const { trpc: api, HydrateClient } = createHydrationHelpers<AppRouter>( 28 + caller, 29 + getQueryClient, 30 + );
+2 -4
apps/web/src/trpc/server.ts
··· 1 - import { createTRPCProxyClient, loggerLink } from "@trpc/client"; 1 + import { createTRPCClient, loggerLink } from "@trpc/client"; 2 2 import { headers } from "next/headers"; 3 - import superjson from "superjson"; 4 3 5 4 import type { AppRouter } from "@openstatus/api"; 6 5 7 6 import { endingLink } from "./shared"; 8 7 9 - export const api = createTRPCProxyClient<AppRouter>({ 10 - transformer: superjson, 8 + export const api = createTRPCClient<AppRouter>({ 11 9 links: [ 12 10 loggerLink({ 13 11 enabled: (opts) =>
+4 -1
apps/web/src/trpc/shared.ts
··· 2 2 import { httpBatchLink } from "@trpc/client"; 3 3 4 4 import type { AppRouter } from "@openstatus/api"; 5 + import superjson from "superjson"; 5 6 6 7 const getBaseUrl = () => { 7 8 if (typeof window !== "undefined") return ""; ··· 18 19 ((runtime) => { 19 20 const sharedOpts = { 20 21 headers: opts?.headers, // REMINDER: fails when trying to `getTotalActiveMonitors()` 21 - } satisfies Partial<HTTPBatchLinkOptions>; 22 + transformer: superjson, 23 + // biome-ignore lint/suspicious/noExplicitAny: FIXME: remove any 24 + } satisfies Partial<HTTPBatchLinkOptions<any>>; 22 25 23 26 const edgeLink = httpBatchLink({ 24 27 ...sharedOpts,
+1
packages/api/index.ts
··· 8 8 export { t } from "./src/trpc"; 9 9 10 10 export type { AppRouter } from "./src/root"; 11 + export { appRouter } from "./src/root"; 11 12 12 13 /** 13 14 * Inference helpers for input types
+2 -2
packages/api/package.json
··· 14 14 "@openstatus/error": "workspace:*", 15 15 "@openstatus/tinybird": "workspace:*", 16 16 "@t3-oss/env-core": "0.7.0", 17 - "@trpc/client": "10.45.2", 18 - "@trpc/server": "10.45.2", 17 + "@trpc/client": "11.0.0-rc.553", 18 + "@trpc/server": "11.0.0-rc.553", 19 19 "nanoid": "5.0.7", 20 20 "nanoid-dictionary": "5.0.0-beta.1", 21 21 "next": "14.2.4",
+1 -1
packages/api/src/root.ts
··· 2 2 import { lambdaRouter } from "./lambda"; 3 3 import { mergeRouters } from "./trpc"; 4 4 5 - const appRouter = mergeRouters(edgeRouter, lambdaRouter); 5 + export const appRouter = mergeRouters(edgeRouter, lambdaRouter); 6 6 export type AppRouter = typeof appRouter;
+3 -3
packages/api/src/trpc.ts
··· 1 - import { TRPCError, type inferAsyncReturnType, initTRPC } from "@trpc/server"; 1 + import { TRPCError, initTRPC } from "@trpc/server"; 2 2 import type { NextRequest } from "next/server"; 3 3 import superjson from "superjson"; 4 4 import { ZodError } from "zod"; ··· 65 65 }); 66 66 }; 67 67 68 - export type Context = inferAsyncReturnType<typeof createTRPCContext>; 68 + export type Context = Awaited<ReturnType<typeof createTRPCContext>>; 69 69 70 70 /** 71 71 * 2. INITIALIZATION ··· 190 190 if (!formData) throw new TRPCError({ code: "BAD_REQUEST" }); 191 191 192 192 return opts.next({ 193 - rawInput: formData, 193 + input: formData, 194 194 }); 195 195 }); 196 196 /**
+79 -64
pnpm-lock.yaml
··· 204 204 '@openstatus/header-analysis': 205 205 specifier: workspace:* 206 206 version: link:../../packages/header-analysis 207 - '@openstatus/next-monitoring': 208 - specifier: 0.0.4 209 - version: 0.0.4(next@14.2.4(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) 210 207 '@openstatus/notification-discord': 211 208 specifier: workspace:* 212 209 version: link:../../packages/notifications/discord ··· 258 255 '@tailwindcss/typography': 259 256 specifier: 0.5.10 260 257 version: 0.5.10(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.5.2))) 258 + '@tanstack/react-query': 259 + specifier: ^5.59.0 260 + version: 5.59.0(react@18.3.1) 261 + '@tanstack/react-query-devtools': 262 + specifier: ^5.59.0 263 + version: 5.59.0(@tanstack/react-query@5.59.0(react@18.3.1))(react@18.3.1) 261 264 '@tanstack/react-table': 262 265 specifier: 8.10.3 263 266 version: 8.10.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ··· 265 268 specifier: 3.17.4 266 269 version: 3.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.5.2))) 267 270 '@trpc/client': 268 - specifier: 10.45.2 269 - version: 10.45.2(@trpc/server@10.45.2) 271 + specifier: 11.0.0-rc.553 272 + version: 11.0.0-rc.553(@trpc/server@11.0.0-rc.553) 270 273 '@trpc/next': 271 - specifier: 10.45.2 272 - version: 10.45.2(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@10.45.2)(next@14.2.4(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 274 + specifier: 11.0.0-rc.553 275 + version: 11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/react-query@11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.553)(next@14.2.4(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 273 276 '@trpc/react-query': 274 - specifier: 10.45.2 275 - version: 10.45.2(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 277 + specifier: 11.0.0-rc.553 278 + version: 11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 276 279 '@trpc/server': 277 - specifier: 10.45.2 278 - version: 10.45.2 280 + specifier: 11.0.0-rc.553 281 + version: 11.0.0-rc.553 279 282 '@unkey/api': 280 283 specifier: 0.23.0 281 284 version: 0.23.0 ··· 492 495 specifier: 0.7.0 493 496 version: 0.7.0(typescript@5.5.2)(zod@3.23.8) 494 497 '@trpc/client': 495 - specifier: 10.45.2 496 - version: 10.45.2(@trpc/server@10.45.2) 498 + specifier: 11.0.0-rc.553 499 + version: 11.0.0-rc.553(@trpc/server@11.0.0-rc.553) 497 500 '@trpc/server': 498 - specifier: 10.45.2 499 - version: 10.45.2 501 + specifier: 11.0.0-rc.553 502 + version: 11.0.0-rc.553 500 503 nanoid: 501 504 specifier: 5.0.7 502 505 version: 5.0.7 ··· 3254 3257 '@one-ini/wasm@0.1.1': 3255 3258 resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} 3256 3259 3257 - '@openstatus/next-monitoring@0.0.4': 3258 - resolution: {integrity: sha512-/UXWRt6hKfgGtuqvO9umBgBHDMIgs/Pkrrlt/3SWPGywkW7N5j7GGSCBwMzjs4SthPWBQRL1++lERZvaGkgEyA==} 3259 - peerDependencies: 3260 - next: '>=14.0.0' 3261 - react: '>=18.2.0' 3262 - 3263 3260 '@opentelemetry/api-logs@0.39.1': 3264 3261 resolution: {integrity: sha512-9BJ8lMcOzEN0lu+Qji801y707oFO4xT3db6cosPvl+k7ItUHKN5ofWqtSbM9gbt1H4JJ/4/2TVrqI9Rq7hNv6Q==} 3265 3262 engines: {node: '>=14'} ··· 4718 4715 peerDependencies: 4719 4716 tailwindcss: '>=3.0.0 || insiders' 4720 4717 4721 - '@tanstack/query-core@5.36.1': 4722 - resolution: {integrity: sha512-BteWYEPUcucEu3NBcDAgKuI4U25R9aPrHSP6YSf2NvaD2pSlIQTdqOfLRsxH9WdRYg7k0Uom35Uacb6nvbIMJg==} 4718 + '@tanstack/query-core@5.59.0': 4719 + resolution: {integrity: sha512-WGD8uIhX6/deH/tkZqPNcRyAhDUqs729bWKoByYHSogcshXfFbppOdTER5+qY7mFvu8KEFJwT0nxr8RfPTVh0Q==} 4720 + 4721 + '@tanstack/query-devtools@5.58.0': 4722 + resolution: {integrity: sha512-iFdQEFXaYYxqgrv63ots+65FGI+tNp5ZS5PdMU1DWisxk3fez5HG3FyVlbUva+RdYS5hSLbxZ9aw3yEs97GNTw==} 4723 + 4724 + '@tanstack/react-query-devtools@5.59.0': 4725 + resolution: {integrity: sha512-Kz7577FQGU8qmJxROIT/aOwmkTcxfBqgTP6r1AIvuJxVMVHPkp8eQxWQ7BnfBsy/KTJHiV9vMtRVo1+R1tB3vg==} 4726 + peerDependencies: 4727 + '@tanstack/react-query': ^5.59.0 4728 + react: ^18 || ^19 4723 4729 4724 - '@tanstack/react-query@5.37.1': 4725 - resolution: {integrity: sha512-EhtBNA8GL3XFeSx6VYUjXQ96n44xe3JGKZCzBINrCYlxbZP6UwBafv7ti4eSRWc2Fy+fybQre0w17gR6lMzULA==} 4730 + '@tanstack/react-query@5.59.0': 4731 + resolution: {integrity: sha512-YDXp3OORbYR+8HNQx+lf4F73NoiCmCcSvZvgxE29OifmQFk0sBlO26NWLHpcNERo92tVk3w+JQ53/vkcRUY1hA==} 4726 4732 peerDependencies: 4727 - react: ^18.0.0 4733 + react: ^18 || ^19 4728 4734 4729 4735 '@tanstack/react-table@8.10.3': 4730 4736 resolution: {integrity: sha512-Qya1cJ+91arAlW7IRDWksRDnYw28O446jJ/ljkRSc663EaftJoBCAU10M+VV1K6MpCBLrXq1BD5IQc1zj/ZEjA==} ··· 4798 4804 react: ^18.0.0 4799 4805 react-dom: '>=16.6.0' 4800 4806 4801 - '@trpc/client@10.45.2': 4802 - resolution: {integrity: sha512-ykALM5kYWTLn1zYuUOZ2cPWlVfrXhc18HzBDyRhoPYN0jey4iQHEFSEowfnhg1RvYnrAVjNBgHNeSAXjrDbGwg==} 4807 + '@trpc/client@11.0.0-rc.553': 4808 + resolution: {integrity: sha512-ICgziilbuAslRgHIVJZ162KaHQRpHXA1C1LPRsNpxPa9aStPF7eThAjn4V3JmDyJsuDLQgAmqLVRImlLPMYR5Q==} 4803 4809 peerDependencies: 4804 - '@trpc/server': 10.45.2 4810 + '@trpc/server': 11.0.0-rc.553+9b629cc67 4805 4811 4806 - '@trpc/next@10.45.2': 4807 - resolution: {integrity: sha512-RSORmfC+/nXdmRY1pQ0AalsVgSzwNAFbZLYHiTvPM5QQ8wmMEHilseCYMXpu0se/TbPt9zVR6Ka2d7O6zxKkXg==} 4812 + '@trpc/next@11.0.0-rc.553': 4813 + resolution: {integrity: sha512-1bIuG4nKYmTuVFqgsqSbOGgIz2LsUcb1wXrK1zlfikRQHhssSMmpXSLSANfZffs/6lbFLVs057XaS9LX5HmCsw==} 4808 4814 peerDependencies: 4809 - '@tanstack/react-query': ^4.18.0 4810 - '@trpc/client': 10.45.2 4811 - '@trpc/react-query': 10.45.2 4812 - '@trpc/server': 10.45.2 4815 + '@tanstack/react-query': ^5.54.1 4816 + '@trpc/client': 11.0.0-rc.553+9b629cc67 4817 + '@trpc/react-query': 11.0.0-rc.553+9b629cc67 4818 + '@trpc/server': 11.0.0-rc.553+9b629cc67 4813 4819 next: '*' 4814 4820 react: '>=16.8.0' 4815 4821 react-dom: '>=16.8.0' 4822 + peerDependenciesMeta: 4823 + '@tanstack/react-query': 4824 + optional: true 4825 + '@trpc/react-query': 4826 + optional: true 4816 4827 4817 - '@trpc/react-query@10.45.2': 4818 - resolution: {integrity: sha512-BAqb9bGZIscroradlNx+Cc9522R+idY3BOSf5z0jHUtkxdMbjeGKxSSMxxu7JzoLqSIEC+LVzL3VvF8sdDWaZQ==} 4828 + '@trpc/react-query@11.0.0-rc.553': 4829 + resolution: {integrity: sha512-m88HBhpfIDJccJCXycHtkGS82RG2TVPsZUFIWswR8m6ip5eFNmqWASanu7DiiFbY6sufLT1S8ee28towrPUgoA==} 4819 4830 peerDependencies: 4820 - '@tanstack/react-query': ^4.18.0 4821 - '@trpc/client': 10.45.2 4822 - '@trpc/server': 10.45.2 4823 - react: '>=16.8.0' 4824 - react-dom: '>=16.8.0' 4831 + '@tanstack/react-query': ^5.54.1 4832 + '@trpc/client': 11.0.0-rc.553+9b629cc67 4833 + '@trpc/server': 11.0.0-rc.553+9b629cc67 4834 + react: '>=18.2.0' 4835 + react-dom: '>=18.2.0' 4825 4836 4826 - '@trpc/server@10.45.2': 4827 - resolution: {integrity: sha512-wOrSThNNE4HUnuhJG6PfDRp4L2009KDVxsd+2VYH8ro6o/7/jwYZ8Uu5j+VaW+mOmc8EHerHzGcdbGNQSAUPgg==} 4837 + '@trpc/server@11.0.0-rc.553': 4838 + resolution: {integrity: sha512-pYUhxV3QU834jP1ugJk1uhtPwwaY1ymIuupb4DiWOhNCl68syuXPlUdD8IYsYKd3BjLkmnjlsOUMoyd/aoOF/Q==} 4828 4839 4829 4840 '@tsconfig/node10@1.0.11': 4830 4841 resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} ··· 12533 12544 12534 12545 '@one-ini/wasm@0.1.1': {} 12535 12546 12536 - '@openstatus/next-monitoring@0.0.4(next@14.2.4(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': 12537 - dependencies: 12538 - next: 14.2.4(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 12539 - react: 18.3.1 12540 - 12541 12547 '@opentelemetry/api-logs@0.39.1': 12542 12548 dependencies: 12543 12549 '@opentelemetry/api': 1.8.0 ··· 14492 14498 postcss-selector-parser: 6.0.10 14493 14499 tailwindcss: 3.4.3(ts-node@10.9.2(@types/node@20.14.8)(typescript@5.5.2)) 14494 14500 14495 - '@tanstack/query-core@5.36.1': {} 14501 + '@tanstack/query-core@5.59.0': {} 14502 + 14503 + '@tanstack/query-devtools@5.58.0': {} 14496 14504 14497 - '@tanstack/react-query@5.37.1(react@18.3.1)': 14505 + '@tanstack/react-query-devtools@5.59.0(@tanstack/react-query@5.59.0(react@18.3.1))(react@18.3.1)': 14498 14506 dependencies: 14499 - '@tanstack/query-core': 5.36.1 14507 + '@tanstack/query-devtools': 5.58.0 14508 + '@tanstack/react-query': 5.59.0(react@18.3.1) 14509 + react: 18.3.1 14510 + 14511 + '@tanstack/react-query@5.59.0(react@18.3.1)': 14512 + dependencies: 14513 + '@tanstack/query-core': 5.59.0 14500 14514 react: 18.3.1 14501 14515 14502 14516 '@tanstack/react-table@8.10.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': ··· 14567 14581 transitivePeerDependencies: 14568 14582 - tailwindcss 14569 14583 14570 - '@trpc/client@10.45.2(@trpc/server@10.45.2)': 14584 + '@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553)': 14571 14585 dependencies: 14572 - '@trpc/server': 10.45.2 14586 + '@trpc/server': 11.0.0-rc.553 14573 14587 14574 - '@trpc/next@10.45.2(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/react-query@10.45.2(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@10.45.2)(next@14.2.4(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 14588 + '@trpc/next@11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/react-query@11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.553)(next@14.2.4(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 14575 14589 dependencies: 14576 - '@tanstack/react-query': 5.37.1(react@18.3.1) 14577 - '@trpc/client': 10.45.2(@trpc/server@10.45.2) 14578 - '@trpc/react-query': 10.45.2(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 14579 - '@trpc/server': 10.45.2 14590 + '@trpc/client': 11.0.0-rc.553(@trpc/server@11.0.0-rc.553) 14591 + '@trpc/server': 11.0.0-rc.553 14580 14592 next: 14.2.4(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 14581 14593 react: 18.3.1 14582 14594 react-dom: 18.3.1(react@18.3.1) 14595 + optionalDependencies: 14596 + '@tanstack/react-query': 5.59.0(react@18.3.1) 14597 + '@trpc/react-query': 11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 14583 14598 14584 - '@trpc/react-query@10.45.2(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@10.45.2(@trpc/server@10.45.2))(@trpc/server@10.45.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 14599 + '@trpc/react-query@11.0.0-rc.553(@tanstack/react-query@5.59.0(react@18.3.1))(@trpc/client@11.0.0-rc.553(@trpc/server@11.0.0-rc.553))(@trpc/server@11.0.0-rc.553)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 14585 14600 dependencies: 14586 - '@tanstack/react-query': 5.37.1(react@18.3.1) 14587 - '@trpc/client': 10.45.2(@trpc/server@10.45.2) 14588 - '@trpc/server': 10.45.2 14601 + '@tanstack/react-query': 5.59.0(react@18.3.1) 14602 + '@trpc/client': 11.0.0-rc.553(@trpc/server@11.0.0-rc.553) 14603 + '@trpc/server': 11.0.0-rc.553 14589 14604 react: 18.3.1 14590 14605 react-dom: 18.3.1(react@18.3.1) 14591 14606 14592 - '@trpc/server@10.45.2': {} 14607 + '@trpc/server@11.0.0-rc.553': {} 14593 14608 14594 14609 '@tsconfig/node10@1.0.11': {} 14595 14610