[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-trpc-react-query-classic-migration":3,"mdc--wfpxpn-key":38,"related-org-trpc-react-query-classic-migration":2673,"related-repo-trpc-react-query-classic-migration":2840},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":33,"sourceUrl":36,"mdContent":37},"react-query-classic-migration","migrate tRPC to TanStack React Query","Migrate from @trpc\u002Freact-query (classic) to @trpc\u002Ftanstack-react-query. Run npx @trpc\u002Fupgrade CLI for automated codemod. Manually migrate remaining patterns: hook-based to options-factory, utils.invalidate to queryClient.invalidateQueries with queryFilter, provider changes.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"trpc","tRPC","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ftrpc.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"React","react","tag",{"name":17,"slug":18,"type":15},"TypeScript","typescript",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Migration","migration",40424,"https:\u002F\u002Fgithub.com\u002Ftrpc\u002Ftrpc","2026-07-18T05:47:11.380533",null,1636,[29,30,31,32,14,18],"api","next","nextjs","prisma",{"repoUrl":24,"stars":23,"forks":27,"topics":34,"description":35},[29,30,31,32,14,18],"🧙‍♀️  Move Fast and Break Nothing. End-to-end typesafe APIs made easy. ","https:\u002F\u002Fgithub.com\u002Ftrpc\u002Ftrpc\u002Ftree\u002FHEAD\u002Fpackages\u002Ftanstack-react-query\u002Fskills\u002Freact-query-classic-migration","---\nname: react-query-classic-migration\ndescription: >\n  Migrate from @trpc\u002Freact-query (classic) to @trpc\u002Ftanstack-react-query.\n  Run npx @trpc\u002Fupgrade CLI for automated codemod. Manually migrate\n  remaining patterns: hook-based to options-factory, utils.invalidate\n  to queryClient.invalidateQueries with queryFilter, provider changes.\ntype: lifecycle\nlibrary: trpc\nlibrary_version: '11.16.0'\nrequires:\n  - react-query-setup\nsources:\n  - www\u002Fdocs\u002Fclient\u002Ftanstack-react-query\u002Fmigrating.mdx\n---\n\nThis skill builds on [react-query-setup]. Read it first for foundational concepts.\n\n# tRPC -- Classic React Query Migration\n\n## Overview\n\nThis skill covers migrating from `@trpc\u002Freact-query` (the classic tRPC React hooks) to `@trpc\u002Ftanstack-react-query` (the new options-factory client). The two packages can coexist in the same application, so you can migrate incrementally.\n\n## Step 1: Run the upgrade CLI\n\n```sh\nnpx @trpc\u002Fupgrade\n```\n\nWhen prompted, select:\n\n- `Migrate Hooks to queryOptions\u002FmutationOptions API`\n- `Migrate context provider setup`\n\nThe codemod handles common patterns but is a work in progress. Always typecheck after running it.\n\n## Step 2: Install the new package\n\n```sh\nnpm install @trpc\u002Ftanstack-react-query\n```\n\nYou can keep `@trpc\u002Freact-query` installed during the migration period.\n\n## Step 3: Set up the new provider\n\nReplace the classic `createTRPCReact` setup with `createTRPCContext`:\n\n```ts title=\"utils\u002Ftrpc.ts\"\n\u002F\u002F BEFORE (classic)\nimport { createTRPCReact } from '@trpc\u002Freact-query';\nimport type { AppRouter } from '..\u002Fserver\u002Frouter';\nexport const trpc = createTRPCReact\u003CAppRouter>();\n\n\u002F\u002F AFTER (new)\nimport { createTRPCContext } from '@trpc\u002Ftanstack-react-query';\nimport type { AppRouter } from '..\u002Fserver\u002Frouter';\nexport const { TRPCProvider, useTRPC } = createTRPCContext\u003CAppRouter>();\n```\n\nUpdate the provider in your app root:\n\n```tsx title=\"App.tsx\"\n\u002F\u002F BEFORE (classic)\n\n\u002F\u002F trpc.Provider wrapping with queryClient and client props\n\n\u002F\u002F AFTER (new)\nimport { QueryClientProvider } from '@tanstack\u002Freact-query';\nimport { TRPCProvider } from '..\u002Futils\u002Ftrpc';\n\n\u003CQueryClientProvider client={queryClient}>\n  \u003CTRPCProvider trpcClient={trpcClient} queryClient={queryClient}>\n    {children}\n  \u003C\u002FTRPCProvider>\n\u003C\u002FQueryClientProvider>;\n```\n\n## Migration Patterns\n\n### Queries\n\n```tsx\n\u002F\u002F BEFORE (classic)\nimport { trpc } from '.\u002Ftrpc';\n\nfunction Users() {\n  const greeting = trpc.greeting.useQuery({ name: 'Jerry' });\n}\n\n\u002F\u002F AFTER (new)\nimport { useQuery } from '@tanstack\u002Freact-query';\nimport { useTRPC } from '.\u002Ftrpc';\n\nfunction Users() {\n  const trpc = useTRPC();\n  const greeting = useQuery(trpc.greeting.queryOptions({ name: 'Jerry' }));\n}\n```\n\n### Mutations\n\n```tsx\n\u002F\u002F BEFORE (classic)\nimport { trpc } from '.\u002Ftrpc';\n\nfunction Users() {\n  const createUser = trpc.createUser.useMutation();\n  createUser.mutate({ name: 'Jerry' });\n}\n\n\u002F\u002F AFTER (new)\nimport { useMutation } from '@tanstack\u002Freact-query';\nimport { useTRPC } from '.\u002Ftrpc';\n\nfunction Users() {\n  const trpc = useTRPC();\n  const createUser = useMutation(trpc.createUser.mutationOptions());\n  createUser.mutate({ name: 'Jerry' });\n}\n```\n\n### Query invalidation\n\n```tsx\n\u002F\u002F BEFORE (classic)\nimport { trpc } from '.\u002Ftrpc';\n\nfunction Users() {\n  const utils = trpc.useUtils();\n  async function invalidateGreeting() {\n    await utils.greeting.invalidate({ name: 'Jerry' });\n  }\n}\n\n\u002F\u002F AFTER (new)\nimport { useQueryClient } from '@tanstack\u002Freact-query';\nimport { useTRPC } from '.\u002Ftrpc';\n\nfunction Users() {\n  const trpc = useTRPC();\n  const queryClient = useQueryClient();\n  async function invalidateGreeting() {\n    await queryClient.invalidateQueries(\n      trpc.greeting.queryFilter({ name: 'Jerry' }),\n    );\n  }\n}\n```\n\n### Other QueryClient operations\n\nAny classic `trpc.useUtils()` usage maps to standard TanStack Query `useQueryClient()` calls:\n\n| Classic (`utils.xxx`)         | New (queryClient + trpc)                                     |\n| ----------------------------- | ------------------------------------------------------------ |\n| `utils.post.invalidate()`     | `queryClient.invalidateQueries(trpc.post.queryFilter())`     |\n| `utils.post.refetch()`        | `queryClient.refetchQueries(trpc.post.queryFilter())`        |\n| `utils.post.getData(input)`   | `queryClient.getQueryData(trpc.post.byId.queryKey(input))`   |\n| `utils.post.setData(input,d)` | `queryClient.setQueryData(trpc.post.byId.queryKey(input),d)` |\n\n## Step 4: Typecheck and fix\n\nAfter migrating all files (or a batch of files), run TypeScript to catch remaining issues:\n\n```sh\nnpx tsc --noEmit\n```\n\nCommon type errors after migration:\n\n- Missing `useTRPC()` call (the new pattern requires calling the hook inside the component)\n- Incorrect options shape (`queryOptions` takes the procedure input as the first arg; `mutationOptions` takes TanStack Query options like `onSuccess`\u002F`onError`, with mutation variables passed later to `mutate(...)`)\n- `useUtils()` references that need to become `useQueryClient()` + `useTRPC()` pairs\n\n## Step 5: Remove classic package\n\nOnce all files are migrated and TypeScript passes:\n\n```sh\nnpm uninstall @trpc\u002Freact-query\n```\n\n## Common Mistakes\n\n### Assuming the codemod handles everything\n\n`npx @trpc\u002Fupgrade` is a work-in-progress codemod. It handles common patterns but may miss complex cases like dynamic query keys, conditional hooks, or custom wrappers around tRPC hooks. Always run `tsc --noEmit` after the codemod completes and fix remaining errors manually.\n\n### Mixing classic and new hooks in the same component\n\nWhile the classic and new packages can coexist in the same app, mixing their hooks in the same component creates confusing dual-provider requirements and makes the code harder to reason about. Migrate one component at a time, converting all hooks in that component from classic to new in a single pass.\n\n## See Also\n\n- [react-query-setup] -- full setup guide for the new @trpc\u002Ftanstack-react-query package\n- [nextjs-app-router] -- if migrating a Next.js app to App Router at the same time\n",{"data":39,"body":46},{"name":4,"description":6,"type":40,"library":8,"library_version":41,"requires":42,"sources":44},"lifecycle","11.16.0",[43],"react-query-setup",[45],"www\u002Fdocs\u002Fclient\u002Ftanstack-react-query\u002Fmigrating.mdx",{"type":47,"children":48},"root",[49,64,71,78,100,106,134,139,162,167,173,198,210,216,237,577,582,852,858,865,1283,1289,1741,1747,2293,2299,2320,2439,2445,2450,2474,2479,2562,2568,2573,2597,2603,2609,2628,2634,2639,2645,2667],{"type":50,"tag":51,"props":52,"children":53},"element","p",{},[54,57,62],{"type":55,"value":56},"text","This skill builds on ",{"type":50,"tag":58,"props":59,"children":60},"span",{},[61],{"type":55,"value":43},{"type":55,"value":63},". Read it first for foundational concepts.",{"type":50,"tag":65,"props":66,"children":68},"h1",{"id":67},"trpc-classic-react-query-migration",[69],{"type":55,"value":70},"tRPC -- Classic React Query Migration",{"type":50,"tag":72,"props":73,"children":75},"h2",{"id":74},"overview",[76],{"type":55,"value":77},"Overview",{"type":50,"tag":51,"props":79,"children":80},{},[81,83,90,92,98],{"type":55,"value":82},"This skill covers migrating from ",{"type":50,"tag":84,"props":85,"children":87},"code",{"className":86},[],[88],{"type":55,"value":89},"@trpc\u002Freact-query",{"type":55,"value":91}," (the classic tRPC React hooks) to ",{"type":50,"tag":84,"props":93,"children":95},{"className":94},[],[96],{"type":55,"value":97},"@trpc\u002Ftanstack-react-query",{"type":55,"value":99}," (the new options-factory client). The two packages can coexist in the same application, so you can migrate incrementally.",{"type":50,"tag":72,"props":101,"children":103},{"id":102},"step-1-run-the-upgrade-cli",[104],{"type":55,"value":105},"Step 1: Run the upgrade CLI",{"type":50,"tag":107,"props":108,"children":113},"pre",{"className":109,"code":110,"language":111,"meta":112,"style":112},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx @trpc\u002Fupgrade\n","sh","",[114],{"type":50,"tag":84,"props":115,"children":116},{"__ignoreMap":112},[117],{"type":50,"tag":58,"props":118,"children":121},{"class":119,"line":120},"line",1,[122,128],{"type":50,"tag":58,"props":123,"children":125},{"style":124},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[126],{"type":55,"value":127},"npx",{"type":50,"tag":58,"props":129,"children":131},{"style":130},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[132],{"type":55,"value":133}," @trpc\u002Fupgrade\n",{"type":50,"tag":51,"props":135,"children":136},{},[137],{"type":55,"value":138},"When prompted, select:",{"type":50,"tag":140,"props":141,"children":142},"ul",{},[143,153],{"type":50,"tag":144,"props":145,"children":146},"li",{},[147],{"type":50,"tag":84,"props":148,"children":150},{"className":149},[],[151],{"type":55,"value":152},"Migrate Hooks to queryOptions\u002FmutationOptions API",{"type":50,"tag":144,"props":154,"children":155},{},[156],{"type":50,"tag":84,"props":157,"children":159},{"className":158},[],[160],{"type":55,"value":161},"Migrate context provider setup",{"type":50,"tag":51,"props":163,"children":164},{},[165],{"type":55,"value":166},"The codemod handles common patterns but is a work in progress. Always typecheck after running it.",{"type":50,"tag":72,"props":168,"children":170},{"id":169},"step-2-install-the-new-package",[171],{"type":55,"value":172},"Step 2: Install the new package",{"type":50,"tag":107,"props":174,"children":176},{"className":109,"code":175,"language":111,"meta":112,"style":112},"npm install @trpc\u002Ftanstack-react-query\n",[177],{"type":50,"tag":84,"props":178,"children":179},{"__ignoreMap":112},[180],{"type":50,"tag":58,"props":181,"children":182},{"class":119,"line":120},[183,188,193],{"type":50,"tag":58,"props":184,"children":185},{"style":124},[186],{"type":55,"value":187},"npm",{"type":50,"tag":58,"props":189,"children":190},{"style":130},[191],{"type":55,"value":192}," install",{"type":50,"tag":58,"props":194,"children":195},{"style":130},[196],{"type":55,"value":197}," @trpc\u002Ftanstack-react-query\n",{"type":50,"tag":51,"props":199,"children":200},{},[201,203,208],{"type":55,"value":202},"You can keep ",{"type":50,"tag":84,"props":204,"children":206},{"className":205},[],[207],{"type":55,"value":89},{"type":55,"value":209}," installed during the migration period.",{"type":50,"tag":72,"props":211,"children":213},{"id":212},"step-3-set-up-the-new-provider",[214],{"type":55,"value":215},"Step 3: Set up the new provider",{"type":50,"tag":51,"props":217,"children":218},{},[219,221,227,229,235],{"type":55,"value":220},"Replace the classic ",{"type":50,"tag":84,"props":222,"children":224},{"className":223},[],[225],{"type":55,"value":226},"createTRPCReact",{"type":55,"value":228}," setup with ",{"type":50,"tag":84,"props":230,"children":232},{"className":231},[],[233],{"type":55,"value":234},"createTRPCContext",{"type":55,"value":236},":",{"type":50,"tag":107,"props":238,"children":243},{"className":239,"code":240,"language":241,"meta":242,"style":112},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F BEFORE (classic)\nimport { createTRPCReact } from '@trpc\u002Freact-query';\nimport type { AppRouter } from '..\u002Fserver\u002Frouter';\nexport const trpc = createTRPCReact\u003CAppRouter>();\n\n\u002F\u002F AFTER (new)\nimport { createTRPCContext } from '@trpc\u002Ftanstack-react-query';\nimport type { AppRouter } from '..\u002Fserver\u002Frouter';\nexport const { TRPCProvider, useTRPC } = createTRPCContext\u003CAppRouter>();\n","ts","title=\"utils\u002Ftrpc.ts\"",[244],{"type":50,"tag":84,"props":245,"children":246},{"__ignoreMap":112},[247,256,307,354,408,418,427,468,512],{"type":50,"tag":58,"props":248,"children":249},{"class":119,"line":120},[250],{"type":50,"tag":58,"props":251,"children":253},{"style":252},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[254],{"type":55,"value":255},"\u002F\u002F BEFORE (classic)\n",{"type":50,"tag":58,"props":257,"children":259},{"class":119,"line":258},2,[260,266,272,278,283,288,293,297,302],{"type":50,"tag":58,"props":261,"children":263},{"style":262},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[264],{"type":55,"value":265},"import",{"type":50,"tag":58,"props":267,"children":269},{"style":268},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[270],{"type":55,"value":271}," {",{"type":50,"tag":58,"props":273,"children":275},{"style":274},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[276],{"type":55,"value":277}," createTRPCReact",{"type":50,"tag":58,"props":279,"children":280},{"style":268},[281],{"type":55,"value":282}," }",{"type":50,"tag":58,"props":284,"children":285},{"style":262},[286],{"type":55,"value":287}," from",{"type":50,"tag":58,"props":289,"children":290},{"style":268},[291],{"type":55,"value":292}," '",{"type":50,"tag":58,"props":294,"children":295},{"style":130},[296],{"type":55,"value":89},{"type":50,"tag":58,"props":298,"children":299},{"style":268},[300],{"type":55,"value":301},"'",{"type":50,"tag":58,"props":303,"children":304},{"style":268},[305],{"type":55,"value":306},";\n",{"type":50,"tag":58,"props":308,"children":310},{"class":119,"line":309},3,[311,315,320,324,329,333,337,341,346,350],{"type":50,"tag":58,"props":312,"children":313},{"style":262},[314],{"type":55,"value":265},{"type":50,"tag":58,"props":316,"children":317},{"style":262},[318],{"type":55,"value":319}," type",{"type":50,"tag":58,"props":321,"children":322},{"style":268},[323],{"type":55,"value":271},{"type":50,"tag":58,"props":325,"children":326},{"style":274},[327],{"type":55,"value":328}," AppRouter",{"type":50,"tag":58,"props":330,"children":331},{"style":268},[332],{"type":55,"value":282},{"type":50,"tag":58,"props":334,"children":335},{"style":262},[336],{"type":55,"value":287},{"type":50,"tag":58,"props":338,"children":339},{"style":268},[340],{"type":55,"value":292},{"type":50,"tag":58,"props":342,"children":343},{"style":130},[344],{"type":55,"value":345},"..\u002Fserver\u002Frouter",{"type":50,"tag":58,"props":347,"children":348},{"style":268},[349],{"type":55,"value":301},{"type":50,"tag":58,"props":351,"children":352},{"style":268},[353],{"type":55,"value":306},{"type":50,"tag":58,"props":355,"children":357},{"class":119,"line":356},4,[358,363,369,374,379,384,389,394,399,404],{"type":50,"tag":58,"props":359,"children":360},{"style":262},[361],{"type":55,"value":362},"export",{"type":50,"tag":58,"props":364,"children":366},{"style":365},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[367],{"type":55,"value":368}," const",{"type":50,"tag":58,"props":370,"children":371},{"style":274},[372],{"type":55,"value":373}," trpc ",{"type":50,"tag":58,"props":375,"children":376},{"style":268},[377],{"type":55,"value":378},"=",{"type":50,"tag":58,"props":380,"children":382},{"style":381},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[383],{"type":55,"value":277},{"type":50,"tag":58,"props":385,"children":386},{"style":268},[387],{"type":55,"value":388},"\u003C",{"type":50,"tag":58,"props":390,"children":391},{"style":124},[392],{"type":55,"value":393},"AppRouter",{"type":50,"tag":58,"props":395,"children":396},{"style":268},[397],{"type":55,"value":398},">",{"type":50,"tag":58,"props":400,"children":401},{"style":274},[402],{"type":55,"value":403},"()",{"type":50,"tag":58,"props":405,"children":406},{"style":268},[407],{"type":55,"value":306},{"type":50,"tag":58,"props":409,"children":411},{"class":119,"line":410},5,[412],{"type":50,"tag":58,"props":413,"children":415},{"emptyLinePlaceholder":414},true,[416],{"type":55,"value":417},"\n",{"type":50,"tag":58,"props":419,"children":421},{"class":119,"line":420},6,[422],{"type":50,"tag":58,"props":423,"children":424},{"style":252},[425],{"type":55,"value":426},"\u002F\u002F AFTER (new)\n",{"type":50,"tag":58,"props":428,"children":430},{"class":119,"line":429},7,[431,435,439,444,448,452,456,460,464],{"type":50,"tag":58,"props":432,"children":433},{"style":262},[434],{"type":55,"value":265},{"type":50,"tag":58,"props":436,"children":437},{"style":268},[438],{"type":55,"value":271},{"type":50,"tag":58,"props":440,"children":441},{"style":274},[442],{"type":55,"value":443}," createTRPCContext",{"type":50,"tag":58,"props":445,"children":446},{"style":268},[447],{"type":55,"value":282},{"type":50,"tag":58,"props":449,"children":450},{"style":262},[451],{"type":55,"value":287},{"type":50,"tag":58,"props":453,"children":454},{"style":268},[455],{"type":55,"value":292},{"type":50,"tag":58,"props":457,"children":458},{"style":130},[459],{"type":55,"value":97},{"type":50,"tag":58,"props":461,"children":462},{"style":268},[463],{"type":55,"value":301},{"type":50,"tag":58,"props":465,"children":466},{"style":268},[467],{"type":55,"value":306},{"type":50,"tag":58,"props":469,"children":471},{"class":119,"line":470},8,[472,476,480,484,488,492,496,500,504,508],{"type":50,"tag":58,"props":473,"children":474},{"style":262},[475],{"type":55,"value":265},{"type":50,"tag":58,"props":477,"children":478},{"style":262},[479],{"type":55,"value":319},{"type":50,"tag":58,"props":481,"children":482},{"style":268},[483],{"type":55,"value":271},{"type":50,"tag":58,"props":485,"children":486},{"style":274},[487],{"type":55,"value":328},{"type":50,"tag":58,"props":489,"children":490},{"style":268},[491],{"type":55,"value":282},{"type":50,"tag":58,"props":493,"children":494},{"style":262},[495],{"type":55,"value":287},{"type":50,"tag":58,"props":497,"children":498},{"style":268},[499],{"type":55,"value":292},{"type":50,"tag":58,"props":501,"children":502},{"style":130},[503],{"type":55,"value":345},{"type":50,"tag":58,"props":505,"children":506},{"style":268},[507],{"type":55,"value":301},{"type":50,"tag":58,"props":509,"children":510},{"style":268},[511],{"type":55,"value":306},{"type":50,"tag":58,"props":513,"children":515},{"class":119,"line":514},9,[516,520,524,528,533,538,543,548,553,557,561,565,569,573],{"type":50,"tag":58,"props":517,"children":518},{"style":262},[519],{"type":55,"value":362},{"type":50,"tag":58,"props":521,"children":522},{"style":365},[523],{"type":55,"value":368},{"type":50,"tag":58,"props":525,"children":526},{"style":268},[527],{"type":55,"value":271},{"type":50,"tag":58,"props":529,"children":530},{"style":274},[531],{"type":55,"value":532}," TRPCProvider",{"type":50,"tag":58,"props":534,"children":535},{"style":268},[536],{"type":55,"value":537},",",{"type":50,"tag":58,"props":539,"children":540},{"style":274},[541],{"type":55,"value":542}," useTRPC ",{"type":50,"tag":58,"props":544,"children":545},{"style":268},[546],{"type":55,"value":547},"}",{"type":50,"tag":58,"props":549,"children":550},{"style":268},[551],{"type":55,"value":552}," =",{"type":50,"tag":58,"props":554,"children":555},{"style":381},[556],{"type":55,"value":443},{"type":50,"tag":58,"props":558,"children":559},{"style":268},[560],{"type":55,"value":388},{"type":50,"tag":58,"props":562,"children":563},{"style":124},[564],{"type":55,"value":393},{"type":50,"tag":58,"props":566,"children":567},{"style":268},[568],{"type":55,"value":398},{"type":50,"tag":58,"props":570,"children":571},{"style":274},[572],{"type":55,"value":403},{"type":50,"tag":58,"props":574,"children":575},{"style":268},[576],{"type":55,"value":306},{"type":50,"tag":51,"props":578,"children":579},{},[580],{"type":55,"value":581},"Update the provider in your app root:",{"type":50,"tag":107,"props":583,"children":588},{"className":584,"code":585,"language":586,"meta":587,"style":112},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F BEFORE (classic)\n\n\u002F\u002F trpc.Provider wrapping with queryClient and client props\n\n\u002F\u002F AFTER (new)\nimport { QueryClientProvider } from '@tanstack\u002Freact-query';\nimport { TRPCProvider } from '..\u002Futils\u002Ftrpc';\n\n\u003CQueryClientProvider client={queryClient}>\n  \u003CTRPCProvider trpcClient={trpcClient} queryClient={queryClient}>\n    {children}\n  \u003C\u002FTRPCProvider>\n\u003C\u002FQueryClientProvider>;\n","tsx","title=\"App.tsx\"",[589],{"type":50,"tag":84,"props":590,"children":591},{"__ignoreMap":112},[592,599,606,614,621,628,669,709,716,748,797,816,834],{"type":50,"tag":58,"props":593,"children":594},{"class":119,"line":120},[595],{"type":50,"tag":58,"props":596,"children":597},{"style":252},[598],{"type":55,"value":255},{"type":50,"tag":58,"props":600,"children":601},{"class":119,"line":258},[602],{"type":50,"tag":58,"props":603,"children":604},{"emptyLinePlaceholder":414},[605],{"type":55,"value":417},{"type":50,"tag":58,"props":607,"children":608},{"class":119,"line":309},[609],{"type":50,"tag":58,"props":610,"children":611},{"style":252},[612],{"type":55,"value":613},"\u002F\u002F trpc.Provider wrapping with queryClient and client props\n",{"type":50,"tag":58,"props":615,"children":616},{"class":119,"line":356},[617],{"type":50,"tag":58,"props":618,"children":619},{"emptyLinePlaceholder":414},[620],{"type":55,"value":417},{"type":50,"tag":58,"props":622,"children":623},{"class":119,"line":410},[624],{"type":50,"tag":58,"props":625,"children":626},{"style":252},[627],{"type":55,"value":426},{"type":50,"tag":58,"props":629,"children":630},{"class":119,"line":420},[631,635,639,644,648,652,656,661,665],{"type":50,"tag":58,"props":632,"children":633},{"style":262},[634],{"type":55,"value":265},{"type":50,"tag":58,"props":636,"children":637},{"style":268},[638],{"type":55,"value":271},{"type":50,"tag":58,"props":640,"children":641},{"style":274},[642],{"type":55,"value":643}," QueryClientProvider",{"type":50,"tag":58,"props":645,"children":646},{"style":268},[647],{"type":55,"value":282},{"type":50,"tag":58,"props":649,"children":650},{"style":262},[651],{"type":55,"value":287},{"type":50,"tag":58,"props":653,"children":654},{"style":268},[655],{"type":55,"value":292},{"type":50,"tag":58,"props":657,"children":658},{"style":130},[659],{"type":55,"value":660},"@tanstack\u002Freact-query",{"type":50,"tag":58,"props":662,"children":663},{"style":268},[664],{"type":55,"value":301},{"type":50,"tag":58,"props":666,"children":667},{"style":268},[668],{"type":55,"value":306},{"type":50,"tag":58,"props":670,"children":671},{"class":119,"line":429},[672,676,680,684,688,692,696,701,705],{"type":50,"tag":58,"props":673,"children":674},{"style":262},[675],{"type":55,"value":265},{"type":50,"tag":58,"props":677,"children":678},{"style":268},[679],{"type":55,"value":271},{"type":50,"tag":58,"props":681,"children":682},{"style":274},[683],{"type":55,"value":532},{"type":50,"tag":58,"props":685,"children":686},{"style":268},[687],{"type":55,"value":282},{"type":50,"tag":58,"props":689,"children":690},{"style":262},[691],{"type":55,"value":287},{"type":50,"tag":58,"props":693,"children":694},{"style":268},[695],{"type":55,"value":292},{"type":50,"tag":58,"props":697,"children":698},{"style":130},[699],{"type":55,"value":700},"..\u002Futils\u002Ftrpc",{"type":50,"tag":58,"props":702,"children":703},{"style":268},[704],{"type":55,"value":301},{"type":50,"tag":58,"props":706,"children":707},{"style":268},[708],{"type":55,"value":306},{"type":50,"tag":58,"props":710,"children":711},{"class":119,"line":470},[712],{"type":50,"tag":58,"props":713,"children":714},{"emptyLinePlaceholder":414},[715],{"type":55,"value":417},{"type":50,"tag":58,"props":717,"children":718},{"class":119,"line":514},[719,723,728,733,738,743],{"type":50,"tag":58,"props":720,"children":721},{"style":268},[722],{"type":55,"value":388},{"type":50,"tag":58,"props":724,"children":725},{"style":124},[726],{"type":55,"value":727},"QueryClientProvider",{"type":50,"tag":58,"props":729,"children":730},{"style":365},[731],{"type":55,"value":732}," client",{"type":50,"tag":58,"props":734,"children":735},{"style":268},[736],{"type":55,"value":737},"={",{"type":50,"tag":58,"props":739,"children":740},{"style":274},[741],{"type":55,"value":742},"queryClient",{"type":50,"tag":58,"props":744,"children":745},{"style":268},[746],{"type":55,"value":747},"}>\n",{"type":50,"tag":58,"props":749,"children":751},{"class":119,"line":750},10,[752,757,762,767,771,776,781,785,789,793],{"type":50,"tag":58,"props":753,"children":754},{"style":268},[755],{"type":55,"value":756},"  \u003C",{"type":50,"tag":58,"props":758,"children":759},{"style":124},[760],{"type":55,"value":761},"TRPCProvider",{"type":50,"tag":58,"props":763,"children":764},{"style":365},[765],{"type":55,"value":766}," trpcClient",{"type":50,"tag":58,"props":768,"children":769},{"style":268},[770],{"type":55,"value":737},{"type":50,"tag":58,"props":772,"children":773},{"style":274},[774],{"type":55,"value":775},"trpcClient",{"type":50,"tag":58,"props":777,"children":778},{"style":268},[779],{"type":55,"value":780},"} ",{"type":50,"tag":58,"props":782,"children":783},{"style":365},[784],{"type":55,"value":742},{"type":50,"tag":58,"props":786,"children":787},{"style":268},[788],{"type":55,"value":737},{"type":50,"tag":58,"props":790,"children":791},{"style":274},[792],{"type":55,"value":742},{"type":50,"tag":58,"props":794,"children":795},{"style":268},[796],{"type":55,"value":747},{"type":50,"tag":58,"props":798,"children":800},{"class":119,"line":799},11,[801,806,811],{"type":50,"tag":58,"props":802,"children":803},{"style":268},[804],{"type":55,"value":805},"    {",{"type":50,"tag":58,"props":807,"children":808},{"style":274},[809],{"type":55,"value":810},"children",{"type":50,"tag":58,"props":812,"children":813},{"style":268},[814],{"type":55,"value":815},"}\n",{"type":50,"tag":58,"props":817,"children":819},{"class":119,"line":818},12,[820,825,829],{"type":50,"tag":58,"props":821,"children":822},{"style":268},[823],{"type":55,"value":824},"  \u003C\u002F",{"type":50,"tag":58,"props":826,"children":827},{"style":124},[828],{"type":55,"value":761},{"type":50,"tag":58,"props":830,"children":831},{"style":268},[832],{"type":55,"value":833},">\n",{"type":50,"tag":58,"props":835,"children":837},{"class":119,"line":836},13,[838,843,847],{"type":50,"tag":58,"props":839,"children":840},{"style":268},[841],{"type":55,"value":842},"\u003C\u002F",{"type":50,"tag":58,"props":844,"children":845},{"style":124},[846],{"type":55,"value":727},{"type":50,"tag":58,"props":848,"children":849},{"style":268},[850],{"type":55,"value":851},">;\n",{"type":50,"tag":72,"props":853,"children":855},{"id":854},"migration-patterns",[856],{"type":55,"value":857},"Migration Patterns",{"type":50,"tag":859,"props":860,"children":862},"h3",{"id":861},"queries",[863],{"type":55,"value":864},"Queries",{"type":50,"tag":107,"props":866,"children":868},{"className":584,"code":867,"language":586,"meta":112,"style":112},"\u002F\u002F BEFORE (classic)\nimport { trpc } from '.\u002Ftrpc';\n\nfunction Users() {\n  const greeting = trpc.greeting.useQuery({ name: 'Jerry' });\n}\n\n\u002F\u002F AFTER (new)\nimport { useQuery } from '@tanstack\u002Freact-query';\nimport { useTRPC } from '.\u002Ftrpc';\n\nfunction Users() {\n  const trpc = useTRPC();\n  const greeting = useQuery(trpc.greeting.queryOptions({ name: 'Jerry' }));\n}\n",[869],{"type":50,"tag":84,"props":870,"children":871},{"__ignoreMap":112},[872,879,920,927,949,1035,1042,1049,1056,1096,1136,1143,1162,1189,1275],{"type":50,"tag":58,"props":873,"children":874},{"class":119,"line":120},[875],{"type":50,"tag":58,"props":876,"children":877},{"style":252},[878],{"type":55,"value":255},{"type":50,"tag":58,"props":880,"children":881},{"class":119,"line":258},[882,886,890,895,899,903,907,912,916],{"type":50,"tag":58,"props":883,"children":884},{"style":262},[885],{"type":55,"value":265},{"type":50,"tag":58,"props":887,"children":888},{"style":268},[889],{"type":55,"value":271},{"type":50,"tag":58,"props":891,"children":892},{"style":274},[893],{"type":55,"value":894}," trpc",{"type":50,"tag":58,"props":896,"children":897},{"style":268},[898],{"type":55,"value":282},{"type":50,"tag":58,"props":900,"children":901},{"style":262},[902],{"type":55,"value":287},{"type":50,"tag":58,"props":904,"children":905},{"style":268},[906],{"type":55,"value":292},{"type":50,"tag":58,"props":908,"children":909},{"style":130},[910],{"type":55,"value":911},".\u002Ftrpc",{"type":50,"tag":58,"props":913,"children":914},{"style":268},[915],{"type":55,"value":301},{"type":50,"tag":58,"props":917,"children":918},{"style":268},[919],{"type":55,"value":306},{"type":50,"tag":58,"props":921,"children":922},{"class":119,"line":309},[923],{"type":50,"tag":58,"props":924,"children":925},{"emptyLinePlaceholder":414},[926],{"type":55,"value":417},{"type":50,"tag":58,"props":928,"children":929},{"class":119,"line":356},[930,935,940,944],{"type":50,"tag":58,"props":931,"children":932},{"style":365},[933],{"type":55,"value":934},"function",{"type":50,"tag":58,"props":936,"children":937},{"style":381},[938],{"type":55,"value":939}," Users",{"type":50,"tag":58,"props":941,"children":942},{"style":268},[943],{"type":55,"value":403},{"type":50,"tag":58,"props":945,"children":946},{"style":268},[947],{"type":55,"value":948}," {\n",{"type":50,"tag":58,"props":950,"children":951},{"class":119,"line":410},[952,957,962,966,970,975,980,984,989,995,1000,1005,1009,1013,1018,1022,1026,1031],{"type":50,"tag":58,"props":953,"children":954},{"style":365},[955],{"type":55,"value":956},"  const",{"type":50,"tag":58,"props":958,"children":959},{"style":274},[960],{"type":55,"value":961}," greeting",{"type":50,"tag":58,"props":963,"children":964},{"style":268},[965],{"type":55,"value":552},{"type":50,"tag":58,"props":967,"children":968},{"style":274},[969],{"type":55,"value":894},{"type":50,"tag":58,"props":971,"children":972},{"style":268},[973],{"type":55,"value":974},".",{"type":50,"tag":58,"props":976,"children":977},{"style":274},[978],{"type":55,"value":979},"greeting",{"type":50,"tag":58,"props":981,"children":982},{"style":268},[983],{"type":55,"value":974},{"type":50,"tag":58,"props":985,"children":986},{"style":381},[987],{"type":55,"value":988},"useQuery",{"type":50,"tag":58,"props":990,"children":992},{"style":991},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[993],{"type":55,"value":994},"(",{"type":50,"tag":58,"props":996,"children":997},{"style":268},[998],{"type":55,"value":999},"{",{"type":50,"tag":58,"props":1001,"children":1002},{"style":991},[1003],{"type":55,"value":1004}," name",{"type":50,"tag":58,"props":1006,"children":1007},{"style":268},[1008],{"type":55,"value":236},{"type":50,"tag":58,"props":1010,"children":1011},{"style":268},[1012],{"type":55,"value":292},{"type":50,"tag":58,"props":1014,"children":1015},{"style":130},[1016],{"type":55,"value":1017},"Jerry",{"type":50,"tag":58,"props":1019,"children":1020},{"style":268},[1021],{"type":55,"value":301},{"type":50,"tag":58,"props":1023,"children":1024},{"style":268},[1025],{"type":55,"value":282},{"type":50,"tag":58,"props":1027,"children":1028},{"style":991},[1029],{"type":55,"value":1030},")",{"type":50,"tag":58,"props":1032,"children":1033},{"style":268},[1034],{"type":55,"value":306},{"type":50,"tag":58,"props":1036,"children":1037},{"class":119,"line":420},[1038],{"type":50,"tag":58,"props":1039,"children":1040},{"style":268},[1041],{"type":55,"value":815},{"type":50,"tag":58,"props":1043,"children":1044},{"class":119,"line":429},[1045],{"type":50,"tag":58,"props":1046,"children":1047},{"emptyLinePlaceholder":414},[1048],{"type":55,"value":417},{"type":50,"tag":58,"props":1050,"children":1051},{"class":119,"line":470},[1052],{"type":50,"tag":58,"props":1053,"children":1054},{"style":252},[1055],{"type":55,"value":426},{"type":50,"tag":58,"props":1057,"children":1058},{"class":119,"line":514},[1059,1063,1067,1072,1076,1080,1084,1088,1092],{"type":50,"tag":58,"props":1060,"children":1061},{"style":262},[1062],{"type":55,"value":265},{"type":50,"tag":58,"props":1064,"children":1065},{"style":268},[1066],{"type":55,"value":271},{"type":50,"tag":58,"props":1068,"children":1069},{"style":274},[1070],{"type":55,"value":1071}," useQuery",{"type":50,"tag":58,"props":1073,"children":1074},{"style":268},[1075],{"type":55,"value":282},{"type":50,"tag":58,"props":1077,"children":1078},{"style":262},[1079],{"type":55,"value":287},{"type":50,"tag":58,"props":1081,"children":1082},{"style":268},[1083],{"type":55,"value":292},{"type":50,"tag":58,"props":1085,"children":1086},{"style":130},[1087],{"type":55,"value":660},{"type":50,"tag":58,"props":1089,"children":1090},{"style":268},[1091],{"type":55,"value":301},{"type":50,"tag":58,"props":1093,"children":1094},{"style":268},[1095],{"type":55,"value":306},{"type":50,"tag":58,"props":1097,"children":1098},{"class":119,"line":750},[1099,1103,1107,1112,1116,1120,1124,1128,1132],{"type":50,"tag":58,"props":1100,"children":1101},{"style":262},[1102],{"type":55,"value":265},{"type":50,"tag":58,"props":1104,"children":1105},{"style":268},[1106],{"type":55,"value":271},{"type":50,"tag":58,"props":1108,"children":1109},{"style":274},[1110],{"type":55,"value":1111}," useTRPC",{"type":50,"tag":58,"props":1113,"children":1114},{"style":268},[1115],{"type":55,"value":282},{"type":50,"tag":58,"props":1117,"children":1118},{"style":262},[1119],{"type":55,"value":287},{"type":50,"tag":58,"props":1121,"children":1122},{"style":268},[1123],{"type":55,"value":292},{"type":50,"tag":58,"props":1125,"children":1126},{"style":130},[1127],{"type":55,"value":911},{"type":50,"tag":58,"props":1129,"children":1130},{"style":268},[1131],{"type":55,"value":301},{"type":50,"tag":58,"props":1133,"children":1134},{"style":268},[1135],{"type":55,"value":306},{"type":50,"tag":58,"props":1137,"children":1138},{"class":119,"line":799},[1139],{"type":50,"tag":58,"props":1140,"children":1141},{"emptyLinePlaceholder":414},[1142],{"type":55,"value":417},{"type":50,"tag":58,"props":1144,"children":1145},{"class":119,"line":818},[1146,1150,1154,1158],{"type":50,"tag":58,"props":1147,"children":1148},{"style":365},[1149],{"type":55,"value":934},{"type":50,"tag":58,"props":1151,"children":1152},{"style":381},[1153],{"type":55,"value":939},{"type":50,"tag":58,"props":1155,"children":1156},{"style":268},[1157],{"type":55,"value":403},{"type":50,"tag":58,"props":1159,"children":1160},{"style":268},[1161],{"type":55,"value":948},{"type":50,"tag":58,"props":1163,"children":1164},{"class":119,"line":836},[1165,1169,1173,1177,1181,1185],{"type":50,"tag":58,"props":1166,"children":1167},{"style":365},[1168],{"type":55,"value":956},{"type":50,"tag":58,"props":1170,"children":1171},{"style":274},[1172],{"type":55,"value":894},{"type":50,"tag":58,"props":1174,"children":1175},{"style":268},[1176],{"type":55,"value":552},{"type":50,"tag":58,"props":1178,"children":1179},{"style":381},[1180],{"type":55,"value":1111},{"type":50,"tag":58,"props":1182,"children":1183},{"style":991},[1184],{"type":55,"value":403},{"type":50,"tag":58,"props":1186,"children":1187},{"style":268},[1188],{"type":55,"value":306},{"type":50,"tag":58,"props":1190,"children":1192},{"class":119,"line":1191},14,[1193,1197,1201,1205,1209,1213,1217,1221,1225,1229,1234,1238,1242,1246,1250,1254,1258,1262,1266,1271],{"type":50,"tag":58,"props":1194,"children":1195},{"style":365},[1196],{"type":55,"value":956},{"type":50,"tag":58,"props":1198,"children":1199},{"style":274},[1200],{"type":55,"value":961},{"type":50,"tag":58,"props":1202,"children":1203},{"style":268},[1204],{"type":55,"value":552},{"type":50,"tag":58,"props":1206,"children":1207},{"style":381},[1208],{"type":55,"value":1071},{"type":50,"tag":58,"props":1210,"children":1211},{"style":991},[1212],{"type":55,"value":994},{"type":50,"tag":58,"props":1214,"children":1215},{"style":274},[1216],{"type":55,"value":8},{"type":50,"tag":58,"props":1218,"children":1219},{"style":268},[1220],{"type":55,"value":974},{"type":50,"tag":58,"props":1222,"children":1223},{"style":274},[1224],{"type":55,"value":979},{"type":50,"tag":58,"props":1226,"children":1227},{"style":268},[1228],{"type":55,"value":974},{"type":50,"tag":58,"props":1230,"children":1231},{"style":381},[1232],{"type":55,"value":1233},"queryOptions",{"type":50,"tag":58,"props":1235,"children":1236},{"style":991},[1237],{"type":55,"value":994},{"type":50,"tag":58,"props":1239,"children":1240},{"style":268},[1241],{"type":55,"value":999},{"type":50,"tag":58,"props":1243,"children":1244},{"style":991},[1245],{"type":55,"value":1004},{"type":50,"tag":58,"props":1247,"children":1248},{"style":268},[1249],{"type":55,"value":236},{"type":50,"tag":58,"props":1251,"children":1252},{"style":268},[1253],{"type":55,"value":292},{"type":50,"tag":58,"props":1255,"children":1256},{"style":130},[1257],{"type":55,"value":1017},{"type":50,"tag":58,"props":1259,"children":1260},{"style":268},[1261],{"type":55,"value":301},{"type":50,"tag":58,"props":1263,"children":1264},{"style":268},[1265],{"type":55,"value":282},{"type":50,"tag":58,"props":1267,"children":1268},{"style":991},[1269],{"type":55,"value":1270},"))",{"type":50,"tag":58,"props":1272,"children":1273},{"style":268},[1274],{"type":55,"value":306},{"type":50,"tag":58,"props":1276,"children":1278},{"class":119,"line":1277},15,[1279],{"type":50,"tag":58,"props":1280,"children":1281},{"style":268},[1282],{"type":55,"value":815},{"type":50,"tag":859,"props":1284,"children":1286},{"id":1285},"mutations",[1287],{"type":55,"value":1288},"Mutations",{"type":50,"tag":107,"props":1290,"children":1292},{"className":584,"code":1291,"language":586,"meta":112,"style":112},"\u002F\u002F BEFORE (classic)\nimport { trpc } from '.\u002Ftrpc';\n\nfunction Users() {\n  const createUser = trpc.createUser.useMutation();\n  createUser.mutate({ name: 'Jerry' });\n}\n\n\u002F\u002F AFTER (new)\nimport { useMutation } from '@tanstack\u002Freact-query';\nimport { useTRPC } from '.\u002Ftrpc';\n\nfunction Users() {\n  const trpc = useTRPC();\n  const createUser = useMutation(trpc.createUser.mutationOptions());\n  createUser.mutate({ name: 'Jerry' });\n}\n",[1293],{"type":50,"tag":84,"props":1294,"children":1295},{"__ignoreMap":112},[1296,1303,1342,1349,1368,1414,1471,1478,1485,1492,1532,1571,1578,1597,1624,1677,1733],{"type":50,"tag":58,"props":1297,"children":1298},{"class":119,"line":120},[1299],{"type":50,"tag":58,"props":1300,"children":1301},{"style":252},[1302],{"type":55,"value":255},{"type":50,"tag":58,"props":1304,"children":1305},{"class":119,"line":258},[1306,1310,1314,1318,1322,1326,1330,1334,1338],{"type":50,"tag":58,"props":1307,"children":1308},{"style":262},[1309],{"type":55,"value":265},{"type":50,"tag":58,"props":1311,"children":1312},{"style":268},[1313],{"type":55,"value":271},{"type":50,"tag":58,"props":1315,"children":1316},{"style":274},[1317],{"type":55,"value":894},{"type":50,"tag":58,"props":1319,"children":1320},{"style":268},[1321],{"type":55,"value":282},{"type":50,"tag":58,"props":1323,"children":1324},{"style":262},[1325],{"type":55,"value":287},{"type":50,"tag":58,"props":1327,"children":1328},{"style":268},[1329],{"type":55,"value":292},{"type":50,"tag":58,"props":1331,"children":1332},{"style":130},[1333],{"type":55,"value":911},{"type":50,"tag":58,"props":1335,"children":1336},{"style":268},[1337],{"type":55,"value":301},{"type":50,"tag":58,"props":1339,"children":1340},{"style":268},[1341],{"type":55,"value":306},{"type":50,"tag":58,"props":1343,"children":1344},{"class":119,"line":309},[1345],{"type":50,"tag":58,"props":1346,"children":1347},{"emptyLinePlaceholder":414},[1348],{"type":55,"value":417},{"type":50,"tag":58,"props":1350,"children":1351},{"class":119,"line":356},[1352,1356,1360,1364],{"type":50,"tag":58,"props":1353,"children":1354},{"style":365},[1355],{"type":55,"value":934},{"type":50,"tag":58,"props":1357,"children":1358},{"style":381},[1359],{"type":55,"value":939},{"type":50,"tag":58,"props":1361,"children":1362},{"style":268},[1363],{"type":55,"value":403},{"type":50,"tag":58,"props":1365,"children":1366},{"style":268},[1367],{"type":55,"value":948},{"type":50,"tag":58,"props":1369,"children":1370},{"class":119,"line":410},[1371,1375,1380,1384,1388,1392,1397,1401,1406,1410],{"type":50,"tag":58,"props":1372,"children":1373},{"style":365},[1374],{"type":55,"value":956},{"type":50,"tag":58,"props":1376,"children":1377},{"style":274},[1378],{"type":55,"value":1379}," createUser",{"type":50,"tag":58,"props":1381,"children":1382},{"style":268},[1383],{"type":55,"value":552},{"type":50,"tag":58,"props":1385,"children":1386},{"style":274},[1387],{"type":55,"value":894},{"type":50,"tag":58,"props":1389,"children":1390},{"style":268},[1391],{"type":55,"value":974},{"type":50,"tag":58,"props":1393,"children":1394},{"style":274},[1395],{"type":55,"value":1396},"createUser",{"type":50,"tag":58,"props":1398,"children":1399},{"style":268},[1400],{"type":55,"value":974},{"type":50,"tag":58,"props":1402,"children":1403},{"style":381},[1404],{"type":55,"value":1405},"useMutation",{"type":50,"tag":58,"props":1407,"children":1408},{"style":991},[1409],{"type":55,"value":403},{"type":50,"tag":58,"props":1411,"children":1412},{"style":268},[1413],{"type":55,"value":306},{"type":50,"tag":58,"props":1415,"children":1416},{"class":119,"line":420},[1417,1422,1426,1431,1435,1439,1443,1447,1451,1455,1459,1463,1467],{"type":50,"tag":58,"props":1418,"children":1419},{"style":274},[1420],{"type":55,"value":1421},"  createUser",{"type":50,"tag":58,"props":1423,"children":1424},{"style":268},[1425],{"type":55,"value":974},{"type":50,"tag":58,"props":1427,"children":1428},{"style":381},[1429],{"type":55,"value":1430},"mutate",{"type":50,"tag":58,"props":1432,"children":1433},{"style":991},[1434],{"type":55,"value":994},{"type":50,"tag":58,"props":1436,"children":1437},{"style":268},[1438],{"type":55,"value":999},{"type":50,"tag":58,"props":1440,"children":1441},{"style":991},[1442],{"type":55,"value":1004},{"type":50,"tag":58,"props":1444,"children":1445},{"style":268},[1446],{"type":55,"value":236},{"type":50,"tag":58,"props":1448,"children":1449},{"style":268},[1450],{"type":55,"value":292},{"type":50,"tag":58,"props":1452,"children":1453},{"style":130},[1454],{"type":55,"value":1017},{"type":50,"tag":58,"props":1456,"children":1457},{"style":268},[1458],{"type":55,"value":301},{"type":50,"tag":58,"props":1460,"children":1461},{"style":268},[1462],{"type":55,"value":282},{"type":50,"tag":58,"props":1464,"children":1465},{"style":991},[1466],{"type":55,"value":1030},{"type":50,"tag":58,"props":1468,"children":1469},{"style":268},[1470],{"type":55,"value":306},{"type":50,"tag":58,"props":1472,"children":1473},{"class":119,"line":429},[1474],{"type":50,"tag":58,"props":1475,"children":1476},{"style":268},[1477],{"type":55,"value":815},{"type":50,"tag":58,"props":1479,"children":1480},{"class":119,"line":470},[1481],{"type":50,"tag":58,"props":1482,"children":1483},{"emptyLinePlaceholder":414},[1484],{"type":55,"value":417},{"type":50,"tag":58,"props":1486,"children":1487},{"class":119,"line":514},[1488],{"type":50,"tag":58,"props":1489,"children":1490},{"style":252},[1491],{"type":55,"value":426},{"type":50,"tag":58,"props":1493,"children":1494},{"class":119,"line":750},[1495,1499,1503,1508,1512,1516,1520,1524,1528],{"type":50,"tag":58,"props":1496,"children":1497},{"style":262},[1498],{"type":55,"value":265},{"type":50,"tag":58,"props":1500,"children":1501},{"style":268},[1502],{"type":55,"value":271},{"type":50,"tag":58,"props":1504,"children":1505},{"style":274},[1506],{"type":55,"value":1507}," useMutation",{"type":50,"tag":58,"props":1509,"children":1510},{"style":268},[1511],{"type":55,"value":282},{"type":50,"tag":58,"props":1513,"children":1514},{"style":262},[1515],{"type":55,"value":287},{"type":50,"tag":58,"props":1517,"children":1518},{"style":268},[1519],{"type":55,"value":292},{"type":50,"tag":58,"props":1521,"children":1522},{"style":130},[1523],{"type":55,"value":660},{"type":50,"tag":58,"props":1525,"children":1526},{"style":268},[1527],{"type":55,"value":301},{"type":50,"tag":58,"props":1529,"children":1530},{"style":268},[1531],{"type":55,"value":306},{"type":50,"tag":58,"props":1533,"children":1534},{"class":119,"line":799},[1535,1539,1543,1547,1551,1555,1559,1563,1567],{"type":50,"tag":58,"props":1536,"children":1537},{"style":262},[1538],{"type":55,"value":265},{"type":50,"tag":58,"props":1540,"children":1541},{"style":268},[1542],{"type":55,"value":271},{"type":50,"tag":58,"props":1544,"children":1545},{"style":274},[1546],{"type":55,"value":1111},{"type":50,"tag":58,"props":1548,"children":1549},{"style":268},[1550],{"type":55,"value":282},{"type":50,"tag":58,"props":1552,"children":1553},{"style":262},[1554],{"type":55,"value":287},{"type":50,"tag":58,"props":1556,"children":1557},{"style":268},[1558],{"type":55,"value":292},{"type":50,"tag":58,"props":1560,"children":1561},{"style":130},[1562],{"type":55,"value":911},{"type":50,"tag":58,"props":1564,"children":1565},{"style":268},[1566],{"type":55,"value":301},{"type":50,"tag":58,"props":1568,"children":1569},{"style":268},[1570],{"type":55,"value":306},{"type":50,"tag":58,"props":1572,"children":1573},{"class":119,"line":818},[1574],{"type":50,"tag":58,"props":1575,"children":1576},{"emptyLinePlaceholder":414},[1577],{"type":55,"value":417},{"type":50,"tag":58,"props":1579,"children":1580},{"class":119,"line":836},[1581,1585,1589,1593],{"type":50,"tag":58,"props":1582,"children":1583},{"style":365},[1584],{"type":55,"value":934},{"type":50,"tag":58,"props":1586,"children":1587},{"style":381},[1588],{"type":55,"value":939},{"type":50,"tag":58,"props":1590,"children":1591},{"style":268},[1592],{"type":55,"value":403},{"type":50,"tag":58,"props":1594,"children":1595},{"style":268},[1596],{"type":55,"value":948},{"type":50,"tag":58,"props":1598,"children":1599},{"class":119,"line":1191},[1600,1604,1608,1612,1616,1620],{"type":50,"tag":58,"props":1601,"children":1602},{"style":365},[1603],{"type":55,"value":956},{"type":50,"tag":58,"props":1605,"children":1606},{"style":274},[1607],{"type":55,"value":894},{"type":50,"tag":58,"props":1609,"children":1610},{"style":268},[1611],{"type":55,"value":552},{"type":50,"tag":58,"props":1613,"children":1614},{"style":381},[1615],{"type":55,"value":1111},{"type":50,"tag":58,"props":1617,"children":1618},{"style":991},[1619],{"type":55,"value":403},{"type":50,"tag":58,"props":1621,"children":1622},{"style":268},[1623],{"type":55,"value":306},{"type":50,"tag":58,"props":1625,"children":1626},{"class":119,"line":1277},[1627,1631,1635,1639,1643,1647,1651,1655,1659,1663,1668,1673],{"type":50,"tag":58,"props":1628,"children":1629},{"style":365},[1630],{"type":55,"value":956},{"type":50,"tag":58,"props":1632,"children":1633},{"style":274},[1634],{"type":55,"value":1379},{"type":50,"tag":58,"props":1636,"children":1637},{"style":268},[1638],{"type":55,"value":552},{"type":50,"tag":58,"props":1640,"children":1641},{"style":381},[1642],{"type":55,"value":1507},{"type":50,"tag":58,"props":1644,"children":1645},{"style":991},[1646],{"type":55,"value":994},{"type":50,"tag":58,"props":1648,"children":1649},{"style":274},[1650],{"type":55,"value":8},{"type":50,"tag":58,"props":1652,"children":1653},{"style":268},[1654],{"type":55,"value":974},{"type":50,"tag":58,"props":1656,"children":1657},{"style":274},[1658],{"type":55,"value":1396},{"type":50,"tag":58,"props":1660,"children":1661},{"style":268},[1662],{"type":55,"value":974},{"type":50,"tag":58,"props":1664,"children":1665},{"style":381},[1666],{"type":55,"value":1667},"mutationOptions",{"type":50,"tag":58,"props":1669,"children":1670},{"style":991},[1671],{"type":55,"value":1672},"())",{"type":50,"tag":58,"props":1674,"children":1675},{"style":268},[1676],{"type":55,"value":306},{"type":50,"tag":58,"props":1678,"children":1680},{"class":119,"line":1679},16,[1681,1685,1689,1693,1697,1701,1705,1709,1713,1717,1721,1725,1729],{"type":50,"tag":58,"props":1682,"children":1683},{"style":274},[1684],{"type":55,"value":1421},{"type":50,"tag":58,"props":1686,"children":1687},{"style":268},[1688],{"type":55,"value":974},{"type":50,"tag":58,"props":1690,"children":1691},{"style":381},[1692],{"type":55,"value":1430},{"type":50,"tag":58,"props":1694,"children":1695},{"style":991},[1696],{"type":55,"value":994},{"type":50,"tag":58,"props":1698,"children":1699},{"style":268},[1700],{"type":55,"value":999},{"type":50,"tag":58,"props":1702,"children":1703},{"style":991},[1704],{"type":55,"value":1004},{"type":50,"tag":58,"props":1706,"children":1707},{"style":268},[1708],{"type":55,"value":236},{"type":50,"tag":58,"props":1710,"children":1711},{"style":268},[1712],{"type":55,"value":292},{"type":50,"tag":58,"props":1714,"children":1715},{"style":130},[1716],{"type":55,"value":1017},{"type":50,"tag":58,"props":1718,"children":1719},{"style":268},[1720],{"type":55,"value":301},{"type":50,"tag":58,"props":1722,"children":1723},{"style":268},[1724],{"type":55,"value":282},{"type":50,"tag":58,"props":1726,"children":1727},{"style":991},[1728],{"type":55,"value":1030},{"type":50,"tag":58,"props":1730,"children":1731},{"style":268},[1732],{"type":55,"value":306},{"type":50,"tag":58,"props":1734,"children":1736},{"class":119,"line":1735},17,[1737],{"type":50,"tag":58,"props":1738,"children":1739},{"style":268},[1740],{"type":55,"value":815},{"type":50,"tag":859,"props":1742,"children":1744},{"id":1743},"query-invalidation",[1745],{"type":55,"value":1746},"Query invalidation",{"type":50,"tag":107,"props":1748,"children":1750},{"className":584,"code":1749,"language":586,"meta":112,"style":112},"\u002F\u002F BEFORE (classic)\nimport { trpc } from '.\u002Ftrpc';\n\nfunction Users() {\n  const utils = trpc.useUtils();\n  async function invalidateGreeting() {\n    await utils.greeting.invalidate({ name: 'Jerry' });\n  }\n}\n\n\u002F\u002F AFTER (new)\nimport { useQueryClient } from '@tanstack\u002Freact-query';\nimport { useTRPC } from '.\u002Ftrpc';\n\nfunction Users() {\n  const trpc = useTRPC();\n  const queryClient = useQueryClient();\n  async function invalidateGreeting() {\n    await queryClient.invalidateQueries(\n      trpc.greeting.queryFilter({ name: 'Jerry' }),\n    );\n  }\n}\n",[1751],{"type":50,"tag":84,"props":1752,"children":1753},{"__ignoreMap":112},[1754,1761,1800,1807,1826,1863,1889,1958,1966,1973,1980,1987,2027,2066,2073,2092,2119,2147,2171,2197,2264,2277,2285],{"type":50,"tag":58,"props":1755,"children":1756},{"class":119,"line":120},[1757],{"type":50,"tag":58,"props":1758,"children":1759},{"style":252},[1760],{"type":55,"value":255},{"type":50,"tag":58,"props":1762,"children":1763},{"class":119,"line":258},[1764,1768,1772,1776,1780,1784,1788,1792,1796],{"type":50,"tag":58,"props":1765,"children":1766},{"style":262},[1767],{"type":55,"value":265},{"type":50,"tag":58,"props":1769,"children":1770},{"style":268},[1771],{"type":55,"value":271},{"type":50,"tag":58,"props":1773,"children":1774},{"style":274},[1775],{"type":55,"value":894},{"type":50,"tag":58,"props":1777,"children":1778},{"style":268},[1779],{"type":55,"value":282},{"type":50,"tag":58,"props":1781,"children":1782},{"style":262},[1783],{"type":55,"value":287},{"type":50,"tag":58,"props":1785,"children":1786},{"style":268},[1787],{"type":55,"value":292},{"type":50,"tag":58,"props":1789,"children":1790},{"style":130},[1791],{"type":55,"value":911},{"type":50,"tag":58,"props":1793,"children":1794},{"style":268},[1795],{"type":55,"value":301},{"type":50,"tag":58,"props":1797,"children":1798},{"style":268},[1799],{"type":55,"value":306},{"type":50,"tag":58,"props":1801,"children":1802},{"class":119,"line":309},[1803],{"type":50,"tag":58,"props":1804,"children":1805},{"emptyLinePlaceholder":414},[1806],{"type":55,"value":417},{"type":50,"tag":58,"props":1808,"children":1809},{"class":119,"line":356},[1810,1814,1818,1822],{"type":50,"tag":58,"props":1811,"children":1812},{"style":365},[1813],{"type":55,"value":934},{"type":50,"tag":58,"props":1815,"children":1816},{"style":381},[1817],{"type":55,"value":939},{"type":50,"tag":58,"props":1819,"children":1820},{"style":268},[1821],{"type":55,"value":403},{"type":50,"tag":58,"props":1823,"children":1824},{"style":268},[1825],{"type":55,"value":948},{"type":50,"tag":58,"props":1827,"children":1828},{"class":119,"line":410},[1829,1833,1838,1842,1846,1850,1855,1859],{"type":50,"tag":58,"props":1830,"children":1831},{"style":365},[1832],{"type":55,"value":956},{"type":50,"tag":58,"props":1834,"children":1835},{"style":274},[1836],{"type":55,"value":1837}," utils",{"type":50,"tag":58,"props":1839,"children":1840},{"style":268},[1841],{"type":55,"value":552},{"type":50,"tag":58,"props":1843,"children":1844},{"style":274},[1845],{"type":55,"value":894},{"type":50,"tag":58,"props":1847,"children":1848},{"style":268},[1849],{"type":55,"value":974},{"type":50,"tag":58,"props":1851,"children":1852},{"style":381},[1853],{"type":55,"value":1854},"useUtils",{"type":50,"tag":58,"props":1856,"children":1857},{"style":991},[1858],{"type":55,"value":403},{"type":50,"tag":58,"props":1860,"children":1861},{"style":268},[1862],{"type":55,"value":306},{"type":50,"tag":58,"props":1864,"children":1865},{"class":119,"line":420},[1866,1871,1876,1881,1885],{"type":50,"tag":58,"props":1867,"children":1868},{"style":365},[1869],{"type":55,"value":1870},"  async",{"type":50,"tag":58,"props":1872,"children":1873},{"style":365},[1874],{"type":55,"value":1875}," function",{"type":50,"tag":58,"props":1877,"children":1878},{"style":381},[1879],{"type":55,"value":1880}," invalidateGreeting",{"type":50,"tag":58,"props":1882,"children":1883},{"style":268},[1884],{"type":55,"value":403},{"type":50,"tag":58,"props":1886,"children":1887},{"style":268},[1888],{"type":55,"value":948},{"type":50,"tag":58,"props":1890,"children":1891},{"class":119,"line":429},[1892,1897,1901,1905,1909,1913,1918,1922,1926,1930,1934,1938,1942,1946,1950,1954],{"type":50,"tag":58,"props":1893,"children":1894},{"style":262},[1895],{"type":55,"value":1896},"    await",{"type":50,"tag":58,"props":1898,"children":1899},{"style":274},[1900],{"type":55,"value":1837},{"type":50,"tag":58,"props":1902,"children":1903},{"style":268},[1904],{"type":55,"value":974},{"type":50,"tag":58,"props":1906,"children":1907},{"style":274},[1908],{"type":55,"value":979},{"type":50,"tag":58,"props":1910,"children":1911},{"style":268},[1912],{"type":55,"value":974},{"type":50,"tag":58,"props":1914,"children":1915},{"style":381},[1916],{"type":55,"value":1917},"invalidate",{"type":50,"tag":58,"props":1919,"children":1920},{"style":991},[1921],{"type":55,"value":994},{"type":50,"tag":58,"props":1923,"children":1924},{"style":268},[1925],{"type":55,"value":999},{"type":50,"tag":58,"props":1927,"children":1928},{"style":991},[1929],{"type":55,"value":1004},{"type":50,"tag":58,"props":1931,"children":1932},{"style":268},[1933],{"type":55,"value":236},{"type":50,"tag":58,"props":1935,"children":1936},{"style":268},[1937],{"type":55,"value":292},{"type":50,"tag":58,"props":1939,"children":1940},{"style":130},[1941],{"type":55,"value":1017},{"type":50,"tag":58,"props":1943,"children":1944},{"style":268},[1945],{"type":55,"value":301},{"type":50,"tag":58,"props":1947,"children":1948},{"style":268},[1949],{"type":55,"value":282},{"type":50,"tag":58,"props":1951,"children":1952},{"style":991},[1953],{"type":55,"value":1030},{"type":50,"tag":58,"props":1955,"children":1956},{"style":268},[1957],{"type":55,"value":306},{"type":50,"tag":58,"props":1959,"children":1960},{"class":119,"line":470},[1961],{"type":50,"tag":58,"props":1962,"children":1963},{"style":268},[1964],{"type":55,"value":1965},"  }\n",{"type":50,"tag":58,"props":1967,"children":1968},{"class":119,"line":514},[1969],{"type":50,"tag":58,"props":1970,"children":1971},{"style":268},[1972],{"type":55,"value":815},{"type":50,"tag":58,"props":1974,"children":1975},{"class":119,"line":750},[1976],{"type":50,"tag":58,"props":1977,"children":1978},{"emptyLinePlaceholder":414},[1979],{"type":55,"value":417},{"type":50,"tag":58,"props":1981,"children":1982},{"class":119,"line":799},[1983],{"type":50,"tag":58,"props":1984,"children":1985},{"style":252},[1986],{"type":55,"value":426},{"type":50,"tag":58,"props":1988,"children":1989},{"class":119,"line":818},[1990,1994,1998,2003,2007,2011,2015,2019,2023],{"type":50,"tag":58,"props":1991,"children":1992},{"style":262},[1993],{"type":55,"value":265},{"type":50,"tag":58,"props":1995,"children":1996},{"style":268},[1997],{"type":55,"value":271},{"type":50,"tag":58,"props":1999,"children":2000},{"style":274},[2001],{"type":55,"value":2002}," useQueryClient",{"type":50,"tag":58,"props":2004,"children":2005},{"style":268},[2006],{"type":55,"value":282},{"type":50,"tag":58,"props":2008,"children":2009},{"style":262},[2010],{"type":55,"value":287},{"type":50,"tag":58,"props":2012,"children":2013},{"style":268},[2014],{"type":55,"value":292},{"type":50,"tag":58,"props":2016,"children":2017},{"style":130},[2018],{"type":55,"value":660},{"type":50,"tag":58,"props":2020,"children":2021},{"style":268},[2022],{"type":55,"value":301},{"type":50,"tag":58,"props":2024,"children":2025},{"style":268},[2026],{"type":55,"value":306},{"type":50,"tag":58,"props":2028,"children":2029},{"class":119,"line":836},[2030,2034,2038,2042,2046,2050,2054,2058,2062],{"type":50,"tag":58,"props":2031,"children":2032},{"style":262},[2033],{"type":55,"value":265},{"type":50,"tag":58,"props":2035,"children":2036},{"style":268},[2037],{"type":55,"value":271},{"type":50,"tag":58,"props":2039,"children":2040},{"style":274},[2041],{"type":55,"value":1111},{"type":50,"tag":58,"props":2043,"children":2044},{"style":268},[2045],{"type":55,"value":282},{"type":50,"tag":58,"props":2047,"children":2048},{"style":262},[2049],{"type":55,"value":287},{"type":50,"tag":58,"props":2051,"children":2052},{"style":268},[2053],{"type":55,"value":292},{"type":50,"tag":58,"props":2055,"children":2056},{"style":130},[2057],{"type":55,"value":911},{"type":50,"tag":58,"props":2059,"children":2060},{"style":268},[2061],{"type":55,"value":301},{"type":50,"tag":58,"props":2063,"children":2064},{"style":268},[2065],{"type":55,"value":306},{"type":50,"tag":58,"props":2067,"children":2068},{"class":119,"line":1191},[2069],{"type":50,"tag":58,"props":2070,"children":2071},{"emptyLinePlaceholder":414},[2072],{"type":55,"value":417},{"type":50,"tag":58,"props":2074,"children":2075},{"class":119,"line":1277},[2076,2080,2084,2088],{"type":50,"tag":58,"props":2077,"children":2078},{"style":365},[2079],{"type":55,"value":934},{"type":50,"tag":58,"props":2081,"children":2082},{"style":381},[2083],{"type":55,"value":939},{"type":50,"tag":58,"props":2085,"children":2086},{"style":268},[2087],{"type":55,"value":403},{"type":50,"tag":58,"props":2089,"children":2090},{"style":268},[2091],{"type":55,"value":948},{"type":50,"tag":58,"props":2093,"children":2094},{"class":119,"line":1679},[2095,2099,2103,2107,2111,2115],{"type":50,"tag":58,"props":2096,"children":2097},{"style":365},[2098],{"type":55,"value":956},{"type":50,"tag":58,"props":2100,"children":2101},{"style":274},[2102],{"type":55,"value":894},{"type":50,"tag":58,"props":2104,"children":2105},{"style":268},[2106],{"type":55,"value":552},{"type":50,"tag":58,"props":2108,"children":2109},{"style":381},[2110],{"type":55,"value":1111},{"type":50,"tag":58,"props":2112,"children":2113},{"style":991},[2114],{"type":55,"value":403},{"type":50,"tag":58,"props":2116,"children":2117},{"style":268},[2118],{"type":55,"value":306},{"type":50,"tag":58,"props":2120,"children":2121},{"class":119,"line":1735},[2122,2126,2131,2135,2139,2143],{"type":50,"tag":58,"props":2123,"children":2124},{"style":365},[2125],{"type":55,"value":956},{"type":50,"tag":58,"props":2127,"children":2128},{"style":274},[2129],{"type":55,"value":2130}," queryClient",{"type":50,"tag":58,"props":2132,"children":2133},{"style":268},[2134],{"type":55,"value":552},{"type":50,"tag":58,"props":2136,"children":2137},{"style":381},[2138],{"type":55,"value":2002},{"type":50,"tag":58,"props":2140,"children":2141},{"style":991},[2142],{"type":55,"value":403},{"type":50,"tag":58,"props":2144,"children":2145},{"style":268},[2146],{"type":55,"value":306},{"type":50,"tag":58,"props":2148,"children":2150},{"class":119,"line":2149},18,[2151,2155,2159,2163,2167],{"type":50,"tag":58,"props":2152,"children":2153},{"style":365},[2154],{"type":55,"value":1870},{"type":50,"tag":58,"props":2156,"children":2157},{"style":365},[2158],{"type":55,"value":1875},{"type":50,"tag":58,"props":2160,"children":2161},{"style":381},[2162],{"type":55,"value":1880},{"type":50,"tag":58,"props":2164,"children":2165},{"style":268},[2166],{"type":55,"value":403},{"type":50,"tag":58,"props":2168,"children":2169},{"style":268},[2170],{"type":55,"value":948},{"type":50,"tag":58,"props":2172,"children":2174},{"class":119,"line":2173},19,[2175,2179,2183,2187,2192],{"type":50,"tag":58,"props":2176,"children":2177},{"style":262},[2178],{"type":55,"value":1896},{"type":50,"tag":58,"props":2180,"children":2181},{"style":274},[2182],{"type":55,"value":2130},{"type":50,"tag":58,"props":2184,"children":2185},{"style":268},[2186],{"type":55,"value":974},{"type":50,"tag":58,"props":2188,"children":2189},{"style":381},[2190],{"type":55,"value":2191},"invalidateQueries",{"type":50,"tag":58,"props":2193,"children":2194},{"style":991},[2195],{"type":55,"value":2196},"(\n",{"type":50,"tag":58,"props":2198,"children":2200},{"class":119,"line":2199},20,[2201,2206,2210,2214,2218,2223,2227,2231,2235,2239,2243,2247,2251,2255,2259],{"type":50,"tag":58,"props":2202,"children":2203},{"style":274},[2204],{"type":55,"value":2205},"      trpc",{"type":50,"tag":58,"props":2207,"children":2208},{"style":268},[2209],{"type":55,"value":974},{"type":50,"tag":58,"props":2211,"children":2212},{"style":274},[2213],{"type":55,"value":979},{"type":50,"tag":58,"props":2215,"children":2216},{"style":268},[2217],{"type":55,"value":974},{"type":50,"tag":58,"props":2219,"children":2220},{"style":381},[2221],{"type":55,"value":2222},"queryFilter",{"type":50,"tag":58,"props":2224,"children":2225},{"style":991},[2226],{"type":55,"value":994},{"type":50,"tag":58,"props":2228,"children":2229},{"style":268},[2230],{"type":55,"value":999},{"type":50,"tag":58,"props":2232,"children":2233},{"style":991},[2234],{"type":55,"value":1004},{"type":50,"tag":58,"props":2236,"children":2237},{"style":268},[2238],{"type":55,"value":236},{"type":50,"tag":58,"props":2240,"children":2241},{"style":268},[2242],{"type":55,"value":292},{"type":50,"tag":58,"props":2244,"children":2245},{"style":130},[2246],{"type":55,"value":1017},{"type":50,"tag":58,"props":2248,"children":2249},{"style":268},[2250],{"type":55,"value":301},{"type":50,"tag":58,"props":2252,"children":2253},{"style":268},[2254],{"type":55,"value":282},{"type":50,"tag":58,"props":2256,"children":2257},{"style":991},[2258],{"type":55,"value":1030},{"type":50,"tag":58,"props":2260,"children":2261},{"style":268},[2262],{"type":55,"value":2263},",\n",{"type":50,"tag":58,"props":2265,"children":2267},{"class":119,"line":2266},21,[2268,2273],{"type":50,"tag":58,"props":2269,"children":2270},{"style":991},[2271],{"type":55,"value":2272},"    )",{"type":50,"tag":58,"props":2274,"children":2275},{"style":268},[2276],{"type":55,"value":306},{"type":50,"tag":58,"props":2278,"children":2280},{"class":119,"line":2279},22,[2281],{"type":50,"tag":58,"props":2282,"children":2283},{"style":268},[2284],{"type":55,"value":1965},{"type":50,"tag":58,"props":2286,"children":2288},{"class":119,"line":2287},23,[2289],{"type":50,"tag":58,"props":2290,"children":2291},{"style":268},[2292],{"type":55,"value":815},{"type":50,"tag":859,"props":2294,"children":2296},{"id":2295},"other-queryclient-operations",[2297],{"type":55,"value":2298},"Other QueryClient operations",{"type":50,"tag":51,"props":2300,"children":2301},{},[2302,2304,2310,2312,2318],{"type":55,"value":2303},"Any classic ",{"type":50,"tag":84,"props":2305,"children":2307},{"className":2306},[],[2308],{"type":55,"value":2309},"trpc.useUtils()",{"type":55,"value":2311}," usage maps to standard TanStack Query ",{"type":50,"tag":84,"props":2313,"children":2315},{"className":2314},[],[2316],{"type":55,"value":2317},"useQueryClient()",{"type":55,"value":2319}," calls:",{"type":50,"tag":2321,"props":2322,"children":2323},"table",{},[2324,2350],{"type":50,"tag":2325,"props":2326,"children":2327},"thead",{},[2328],{"type":50,"tag":2329,"props":2330,"children":2331},"tr",{},[2332,2345],{"type":50,"tag":2333,"props":2334,"children":2335},"th",{},[2336,2338,2344],{"type":55,"value":2337},"Classic (",{"type":50,"tag":84,"props":2339,"children":2341},{"className":2340},[],[2342],{"type":55,"value":2343},"utils.xxx",{"type":55,"value":1030},{"type":50,"tag":2333,"props":2346,"children":2347},{},[2348],{"type":55,"value":2349},"New (queryClient + trpc)",{"type":50,"tag":2351,"props":2352,"children":2353},"tbody",{},[2354,2376,2397,2418],{"type":50,"tag":2329,"props":2355,"children":2356},{},[2357,2367],{"type":50,"tag":2358,"props":2359,"children":2360},"td",{},[2361],{"type":50,"tag":84,"props":2362,"children":2364},{"className":2363},[],[2365],{"type":55,"value":2366},"utils.post.invalidate()",{"type":50,"tag":2358,"props":2368,"children":2369},{},[2370],{"type":50,"tag":84,"props":2371,"children":2373},{"className":2372},[],[2374],{"type":55,"value":2375},"queryClient.invalidateQueries(trpc.post.queryFilter())",{"type":50,"tag":2329,"props":2377,"children":2378},{},[2379,2388],{"type":50,"tag":2358,"props":2380,"children":2381},{},[2382],{"type":50,"tag":84,"props":2383,"children":2385},{"className":2384},[],[2386],{"type":55,"value":2387},"utils.post.refetch()",{"type":50,"tag":2358,"props":2389,"children":2390},{},[2391],{"type":50,"tag":84,"props":2392,"children":2394},{"className":2393},[],[2395],{"type":55,"value":2396},"queryClient.refetchQueries(trpc.post.queryFilter())",{"type":50,"tag":2329,"props":2398,"children":2399},{},[2400,2409],{"type":50,"tag":2358,"props":2401,"children":2402},{},[2403],{"type":50,"tag":84,"props":2404,"children":2406},{"className":2405},[],[2407],{"type":55,"value":2408},"utils.post.getData(input)",{"type":50,"tag":2358,"props":2410,"children":2411},{},[2412],{"type":50,"tag":84,"props":2413,"children":2415},{"className":2414},[],[2416],{"type":55,"value":2417},"queryClient.getQueryData(trpc.post.byId.queryKey(input))",{"type":50,"tag":2329,"props":2419,"children":2420},{},[2421,2430],{"type":50,"tag":2358,"props":2422,"children":2423},{},[2424],{"type":50,"tag":84,"props":2425,"children":2427},{"className":2426},[],[2428],{"type":55,"value":2429},"utils.post.setData(input,d)",{"type":50,"tag":2358,"props":2431,"children":2432},{},[2433],{"type":50,"tag":84,"props":2434,"children":2436},{"className":2435},[],[2437],{"type":55,"value":2438},"queryClient.setQueryData(trpc.post.byId.queryKey(input),d)",{"type":50,"tag":72,"props":2440,"children":2442},{"id":2441},"step-4-typecheck-and-fix",[2443],{"type":55,"value":2444},"Step 4: Typecheck and fix",{"type":50,"tag":51,"props":2446,"children":2447},{},[2448],{"type":55,"value":2449},"After migrating all files (or a batch of files), run TypeScript to catch remaining issues:",{"type":50,"tag":107,"props":2451,"children":2453},{"className":109,"code":2452,"language":111,"meta":112,"style":112},"npx tsc --noEmit\n",[2454],{"type":50,"tag":84,"props":2455,"children":2456},{"__ignoreMap":112},[2457],{"type":50,"tag":58,"props":2458,"children":2459},{"class":119,"line":120},[2460,2464,2469],{"type":50,"tag":58,"props":2461,"children":2462},{"style":124},[2463],{"type":55,"value":127},{"type":50,"tag":58,"props":2465,"children":2466},{"style":130},[2467],{"type":55,"value":2468}," tsc",{"type":50,"tag":58,"props":2470,"children":2471},{"style":130},[2472],{"type":55,"value":2473}," --noEmit\n",{"type":50,"tag":51,"props":2475,"children":2476},{},[2477],{"type":55,"value":2478},"Common type errors after migration:",{"type":50,"tag":140,"props":2480,"children":2481},{},[2482,2495,2537],{"type":50,"tag":144,"props":2483,"children":2484},{},[2485,2487,2493],{"type":55,"value":2486},"Missing ",{"type":50,"tag":84,"props":2488,"children":2490},{"className":2489},[],[2491],{"type":55,"value":2492},"useTRPC()",{"type":55,"value":2494}," call (the new pattern requires calling the hook inside the component)",{"type":50,"tag":144,"props":2496,"children":2497},{},[2498,2500,2505,2507,2512,2514,2520,2522,2528,2530,2536],{"type":55,"value":2499},"Incorrect options shape (",{"type":50,"tag":84,"props":2501,"children":2503},{"className":2502},[],[2504],{"type":55,"value":1233},{"type":55,"value":2506}," takes the procedure input as the first arg; ",{"type":50,"tag":84,"props":2508,"children":2510},{"className":2509},[],[2511],{"type":55,"value":1667},{"type":55,"value":2513}," takes TanStack Query options like ",{"type":50,"tag":84,"props":2515,"children":2517},{"className":2516},[],[2518],{"type":55,"value":2519},"onSuccess",{"type":55,"value":2521},"\u002F",{"type":50,"tag":84,"props":2523,"children":2525},{"className":2524},[],[2526],{"type":55,"value":2527},"onError",{"type":55,"value":2529},", with mutation variables passed later to ",{"type":50,"tag":84,"props":2531,"children":2533},{"className":2532},[],[2534],{"type":55,"value":2535},"mutate(...)",{"type":55,"value":1030},{"type":50,"tag":144,"props":2538,"children":2539},{},[2540,2546,2548,2553,2555,2560],{"type":50,"tag":84,"props":2541,"children":2543},{"className":2542},[],[2544],{"type":55,"value":2545},"useUtils()",{"type":55,"value":2547}," references that need to become ",{"type":50,"tag":84,"props":2549,"children":2551},{"className":2550},[],[2552],{"type":55,"value":2317},{"type":55,"value":2554}," + ",{"type":50,"tag":84,"props":2556,"children":2558},{"className":2557},[],[2559],{"type":55,"value":2492},{"type":55,"value":2561}," pairs",{"type":50,"tag":72,"props":2563,"children":2565},{"id":2564},"step-5-remove-classic-package",[2566],{"type":55,"value":2567},"Step 5: Remove classic package",{"type":50,"tag":51,"props":2569,"children":2570},{},[2571],{"type":55,"value":2572},"Once all files are migrated and TypeScript passes:",{"type":50,"tag":107,"props":2574,"children":2576},{"className":109,"code":2575,"language":111,"meta":112,"style":112},"npm uninstall @trpc\u002Freact-query\n",[2577],{"type":50,"tag":84,"props":2578,"children":2579},{"__ignoreMap":112},[2580],{"type":50,"tag":58,"props":2581,"children":2582},{"class":119,"line":120},[2583,2587,2592],{"type":50,"tag":58,"props":2584,"children":2585},{"style":124},[2586],{"type":55,"value":187},{"type":50,"tag":58,"props":2588,"children":2589},{"style":130},[2590],{"type":55,"value":2591}," uninstall",{"type":50,"tag":58,"props":2593,"children":2594},{"style":130},[2595],{"type":55,"value":2596}," @trpc\u002Freact-query\n",{"type":50,"tag":72,"props":2598,"children":2600},{"id":2599},"common-mistakes",[2601],{"type":55,"value":2602},"Common Mistakes",{"type":50,"tag":859,"props":2604,"children":2606},{"id":2605},"assuming-the-codemod-handles-everything",[2607],{"type":55,"value":2608},"Assuming the codemod handles everything",{"type":50,"tag":51,"props":2610,"children":2611},{},[2612,2618,2620,2626],{"type":50,"tag":84,"props":2613,"children":2615},{"className":2614},[],[2616],{"type":55,"value":2617},"npx @trpc\u002Fupgrade",{"type":55,"value":2619}," is a work-in-progress codemod. It handles common patterns but may miss complex cases like dynamic query keys, conditional hooks, or custom wrappers around tRPC hooks. Always run ",{"type":50,"tag":84,"props":2621,"children":2623},{"className":2622},[],[2624],{"type":55,"value":2625},"tsc --noEmit",{"type":55,"value":2627}," after the codemod completes and fix remaining errors manually.",{"type":50,"tag":859,"props":2629,"children":2631},{"id":2630},"mixing-classic-and-new-hooks-in-the-same-component",[2632],{"type":55,"value":2633},"Mixing classic and new hooks in the same component",{"type":50,"tag":51,"props":2635,"children":2636},{},[2637],{"type":55,"value":2638},"While the classic and new packages can coexist in the same app, mixing their hooks in the same component creates confusing dual-provider requirements and makes the code harder to reason about. Migrate one component at a time, converting all hooks in that component from classic to new in a single pass.",{"type":50,"tag":72,"props":2640,"children":2642},{"id":2641},"see-also",[2643],{"type":55,"value":2644},"See Also",{"type":50,"tag":140,"props":2646,"children":2647},{},[2648,2657],{"type":50,"tag":144,"props":2649,"children":2650},{},[2651,2655],{"type":50,"tag":58,"props":2652,"children":2653},{},[2654],{"type":55,"value":43},{"type":55,"value":2656}," -- full setup guide for the new @trpc\u002Ftanstack-react-query package",{"type":50,"tag":144,"props":2658,"children":2659},{},[2660,2665],{"type":50,"tag":58,"props":2661,"children":2662},{},[2663],{"type":55,"value":2664},"nextjs-app-router",{"type":55,"value":2666}," -- if migrating a Next.js app to App Router at the same time",{"type":50,"tag":2668,"props":2669,"children":2670},"style",{},[2671],{"type":55,"value":2672},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2674,"total":2839},[2675,2692,2705,2718,2738,2751,2765,2779,2791,2804,2814,2826],{"slug":2676,"name":2676,"fn":2677,"description":2678,"org":2679,"tags":2680,"stars":23,"repoUrl":24,"updatedAt":2691},"adapter-aws-lambda","deploy tRPC APIs on AWS Lambda","Deploy tRPC on AWS Lambda with awsLambdaRequestHandler() from @trpc\u002Fserver\u002Fadapters\u002Faws-lambda for API Gateway v1 (REST, APIGatewayProxyEvent) and v2 (HTTP, APIGatewayProxyEventV2), and Lambda Function URLs. Enable response streaming with awsLambdaStreamingRequestHandler() wrapped in awslambda.streamifyResponse(). CreateAWSLambdaContextOptions provides event and context for context creation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2681,2684,2687,2690],{"name":2682,"slug":2683,"type":15},"API Development","api-development",{"name":2685,"slug":2686,"type":15},"AWS","aws",{"name":2688,"slug":2689,"type":15},"Backend","backend",{"name":9,"slug":8,"type":15},"2026-07-18T05:47:05.451869",{"slug":2693,"name":2693,"fn":2694,"description":2695,"org":2696,"tags":2697,"stars":23,"repoUrl":24,"updatedAt":2704},"adapter-express","mount tRPC as Express middleware","Mount tRPC as Express middleware with createExpressMiddleware() from @trpc\u002Fserver\u002Fadapters\u002Fexpress. Access Express req\u002Fres in createContext via CreateExpressContextOptions. Mount at a path prefix like app.use('\u002Ftrpc', ...). Avoid global express.json() conflicting with tRPC body parsing for FormData.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2698,2699,2700,2703],{"name":2682,"slug":2683,"type":15},{"name":2688,"slug":2689,"type":15},{"name":2701,"slug":2702,"type":15},"Express","express",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:53.274248",{"slug":2706,"name":2706,"fn":2707,"description":2708,"org":2709,"tags":2710,"stars":23,"repoUrl":24,"updatedAt":2717},"adapter-fastify","mount tRPC as a Fastify plugin","Mount tRPC as a Fastify plugin with fastifyTRPCPlugin from @trpc\u002Fserver\u002Fadapters\u002Ffastify. Configure prefix, trpcOptions (router, createContext, onError). Enable WebSocket subscriptions with useWSS and @fastify\u002Fwebsocket. Set routerOptions.maxParamLength for batch requests. Requires Fastify v5+. FastifyTRPCPluginOptions for type-safe onError. CreateFastifyContextOptions provides req, res.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2711,2712,2713,2716],{"name":2682,"slug":2683,"type":15},{"name":2688,"slug":2689,"type":15},{"name":2714,"slug":2715,"type":15},"Fastify","fastify",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:53.746621",{"slug":2719,"name":2719,"fn":2720,"description":2721,"org":2722,"tags":2723,"stars":23,"repoUrl":24,"updatedAt":2737},"adapter-fetch","deploy tRPC on edge runtimes","Deploy tRPC on WinterCG-compliant edge runtimes with fetchRequestHandler() from @trpc\u002Fserver\u002Fadapters\u002Ffetch. Supports Cloudflare Workers, Deno Deploy, Vercel Edge Runtime, Astro, Remix, SolidStart. FetchCreateContextFnOptions provides req (Request) and resHeaders (Headers) for context creation. The endpoint option must match the URL path prefix where the handler is mounted.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2724,2727,2730,2733,2734],{"name":2725,"slug":2726,"type":15},"Cloudflare","cloudflare",{"name":2728,"slug":2729,"type":15},"Deployment","deployment",{"name":2731,"slug":2732,"type":15},"Edge","edge",{"name":9,"slug":8,"type":15},{"name":2735,"slug":2736,"type":15},"Vercel","vercel","2026-07-18T05:46:50.548228",{"slug":2739,"name":2739,"fn":2740,"description":2741,"org":2742,"tags":2743,"stars":23,"repoUrl":24,"updatedAt":2750},"adapter-standalone","mount tRPC on Node.js servers","Mount tRPC on Node.js built-in HTTP server with createHTTPServer() from @trpc\u002Fserver\u002Fadapters\u002Fstandalone, createHTTPHandler() for custom http.createServer, createHTTP2Handler() for HTTP\u002F2 with TLS. Configure basePath to slice URL prefix, CORS via the cors npm package passed as middleware option. CreateHTTPContextOptions provides req and res for context creation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2744,2745,2746,2749],{"name":2682,"slug":2683,"type":15},{"name":2688,"slug":2689,"type":15},{"name":2747,"slug":2748,"type":15},"Node.js","node-js",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:58.093869",{"slug":2752,"name":2752,"fn":2753,"description":2754,"org":2755,"tags":2756,"stars":23,"repoUrl":24,"updatedAt":2764},"auth","implement authentication in tRPC applications","Implement JWT\u002Fcookie authentication and authorization in tRPC using createContext for user extraction, t.middleware with opts.next({ ctx }) for context narrowing to non-null user, protectedProcedure base pattern, client-side Authorization headers via httpBatchLink headers(), WebSocket connectionParams, and SSE auth via cookies or EventSource polyfill custom headers.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2757,2759,2762,2763],{"name":2758,"slug":2752,"type":15},"Auth",{"name":2760,"slug":2761,"type":15},"Authentication","authentication",{"name":2688,"slug":2689,"type":15},{"name":9,"slug":8,"type":15},"2026-07-18T05:46:45.347628",{"slug":2766,"name":2766,"fn":2767,"description":2768,"org":2769,"tags":2770,"stars":23,"repoUrl":24,"updatedAt":2778},"caching","configure HTTP caching for tRPC queries","Set HTTP cache headers on tRPC query responses via responseMeta callback for CDN and browser caching. Configure Cache-Control, s-maxage, stale-while-revalidate. Handle caching with batching and authenticated requests. Avoid caching mutations, errors, and authenticated responses.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2771,2772,2774,2777],{"name":2688,"slug":2689,"type":15},{"name":2773,"slug":2766,"type":15},"Caching",{"name":2775,"slug":2776,"type":15},"Performance","performance",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:45.86443",{"slug":2780,"name":2780,"fn":2781,"description":2782,"org":2783,"tags":2784,"stars":23,"repoUrl":24,"updatedAt":2790},"client-setup","set up vanilla tRPC clients","Create a vanilla tRPC client with createTRPCClient\u003CAppRouter>(), configure link chain with httpBatchLink\u002FhttpLink, dynamic headers for auth, transformer on links (not client constructor). Infer types with inferRouterInputs and inferRouterOutputs. AbortController signal support. TRPCClientError typing.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2785,2786,2789],{"name":2682,"slug":2683,"type":15},{"name":2787,"slug":2788,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},"2026-07-18T05:48:11.437946",{"slug":2792,"name":2792,"fn":2793,"description":2794,"org":2795,"tags":2796,"stars":23,"repoUrl":24,"updatedAt":2803},"error-handling","implement typed error handling in tRPC","Throw typed errors with TRPCError and error codes (NOT_FOUND, UNAUTHORIZED, BAD_REQUEST, INTERNAL_SERVER_ERROR), configure errorFormatter for client-side Zod error display, handle errors globally with onError callback, map tRPC errors to HTTP status codes with getHTTPStatusCodeFromError().\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2797,2798,2801,2802],{"name":2688,"slug":2689,"type":15},{"name":2799,"slug":2800,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-18T05:46:52.798151",{"slug":2805,"name":2805,"fn":2806,"description":2807,"org":2808,"tags":2809,"stars":23,"repoUrl":24,"updatedAt":2813},"links","configure tRPC client link chains","Configure the tRPC client link chain: httpLink, httpBatchLink, httpBatchStreamLink, splitLink, loggerLink, wsLink, createWSClient, httpSubscriptionLink, unstable_localLink, retryLink. Choose the right terminating link. Route subscriptions via splitLink. Build custom links for SOA routing. Link options: url, headers, transformer, maxURLLength, maxItems, connectionParams, EventSource ponyfill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2810,2811,2812],{"name":2682,"slug":2683,"type":15},{"name":2787,"slug":2788,"type":15},{"name":9,"slug":8,"type":15},"2026-07-18T05:47:06.847309",{"slug":2815,"name":2815,"fn":2816,"description":2817,"org":2818,"tags":2819,"stars":23,"repoUrl":24,"updatedAt":2825},"middlewares","compose middleware for tRPC procedures","Create and compose tRPC middleware with t.procedure.use(), extend context via opts.next({ ctx }), build reusable middleware with .concat() and .unstable_pipe(), define base procedures like publicProcedure and authedProcedure. Access raw input with getRawInput(). Logging, timing, OTEL tracing patterns.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2820,2821,2824],{"name":2688,"slug":2689,"type":15},{"name":2822,"slug":2823,"type":15},"Middleware","middleware",{"name":9,"slug":8,"type":15},"2026-07-18T05:46:49.132255",{"slug":2664,"name":2664,"fn":2827,"description":2828,"org":2829,"tags":2830,"stars":23,"repoUrl":24,"updatedAt":2838},"implement tRPC in Next.js App Router","Full end-to-end tRPC setup for Next.js App Router. Covers route handler with fetchRequestHandler (GET + POST exports), TRPCProvider with QueryClientProvider, createTRPCOptionsProxy for RSC prefetching, HydrateClient\u002FHydrationBoundary for hydration, useSuspenseQuery for Suspense, and server-side callers.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2831,2832,2833,2836,2837],{"name":2688,"slug":2689,"type":15},{"name":2787,"slug":2788,"type":15},{"name":2834,"slug":2835,"type":15},"Next.js","next-js",{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},"2026-07-18T05:47:10.468453",24,{"items":2841,"total":2839},[2842,2849,2856,2863,2871,2878,2885],{"slug":2676,"name":2676,"fn":2677,"description":2678,"org":2843,"tags":2844,"stars":23,"repoUrl":24,"updatedAt":2691},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2845,2846,2847,2848],{"name":2682,"slug":2683,"type":15},{"name":2685,"slug":2686,"type":15},{"name":2688,"slug":2689,"type":15},{"name":9,"slug":8,"type":15},{"slug":2693,"name":2693,"fn":2694,"description":2695,"org":2850,"tags":2851,"stars":23,"repoUrl":24,"updatedAt":2704},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2852,2853,2854,2855],{"name":2682,"slug":2683,"type":15},{"name":2688,"slug":2689,"type":15},{"name":2701,"slug":2702,"type":15},{"name":9,"slug":8,"type":15},{"slug":2706,"name":2706,"fn":2707,"description":2708,"org":2857,"tags":2858,"stars":23,"repoUrl":24,"updatedAt":2717},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2859,2860,2861,2862],{"name":2682,"slug":2683,"type":15},{"name":2688,"slug":2689,"type":15},{"name":2714,"slug":2715,"type":15},{"name":9,"slug":8,"type":15},{"slug":2719,"name":2719,"fn":2720,"description":2721,"org":2864,"tags":2865,"stars":23,"repoUrl":24,"updatedAt":2737},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2866,2867,2868,2869,2870],{"name":2725,"slug":2726,"type":15},{"name":2728,"slug":2729,"type":15},{"name":2731,"slug":2732,"type":15},{"name":9,"slug":8,"type":15},{"name":2735,"slug":2736,"type":15},{"slug":2739,"name":2739,"fn":2740,"description":2741,"org":2872,"tags":2873,"stars":23,"repoUrl":24,"updatedAt":2750},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2874,2875,2876,2877],{"name":2682,"slug":2683,"type":15},{"name":2688,"slug":2689,"type":15},{"name":2747,"slug":2748,"type":15},{"name":9,"slug":8,"type":15},{"slug":2752,"name":2752,"fn":2753,"description":2754,"org":2879,"tags":2880,"stars":23,"repoUrl":24,"updatedAt":2764},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2881,2882,2883,2884],{"name":2758,"slug":2752,"type":15},{"name":2760,"slug":2761,"type":15},{"name":2688,"slug":2689,"type":15},{"name":9,"slug":8,"type":15},{"slug":2766,"name":2766,"fn":2767,"description":2768,"org":2886,"tags":2887,"stars":23,"repoUrl":24,"updatedAt":2778},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2888,2889,2890,2891],{"name":2688,"slug":2689,"type":15},{"name":2773,"slug":2766,"type":15},{"name":2775,"slug":2776,"type":15},{"name":9,"slug":8,"type":15}]